rascal 0.3.4

A parser and compiler for Flash ActionScript 2 files into SWFs
Documentation
---
source: crates/rascal/src/program.rs
expression: parsed
input_file: samples/as2/assign_variable_many_ways.as
---
Ok:
  initial_script:
    - Declare:
        name:
          span:
            start: 4
            end: 11
            file: 0
          value: message
        value:
          span:
            start: 14
            end: 27
            file: 0
          value:
            Constant:
              String: "Hello "
        type_name: ~
    - Expr:
        span:
          start: 29
          end: 47
          file: 0
        value:
          BinaryOperator:
            - AddAssign
            - span:
                start: 29
                end: 36
                file: 0
              value:
                Constant:
                  Identifier: message
            - span:
                start: 40
                end: 47
                file: 0
              value:
                Constant:
                  String: World
    - Expr:
        span:
          start: 49
          end: 72
          file: 0
        value:
          BinaryOperator:
            - Assign
            - span:
                start: 49
                end: 56
                file: 0
              value:
                Constant:
                  Identifier: message
            - span:
                start: 59
                end: 72
                file: 0
              value:
                BinaryOperator:
                  - Add
                  - span:
                      start: 59
                      end: 66
                      file: 0
                    value:
                      Constant:
                        Identifier: message
                  - span:
                      start: 69
                      end: 72
                      file: 0
                    value:
                      Constant:
                        String: "!"
    - Expr:
        span:
          start: 74
          end: 88
          file: 0
        value:
          Trace:
            span:
              start: 80
              end: 87
              file: 0
            value:
              Constant:
                Identifier: message
    - Block:
        - Declare:
            name:
              span:
                start: 95
                end: 96
                file: 0
              value: a
            value:
              span:
                start: 97
                end: 98
                file: 0
              value:
                Constant:
                  Integer: 1
            type_name: ~
        - Declare:
            name:
              span:
                start: 100
                end: 101
                file: 0
              value: b
            value: ~
            type_name: ~
        - Declare:
            name:
              span:
                start: 103
                end: 104
                file: 0
              value: c
            value:
              span:
                start: 105
                end: 106
                file: 0
              value:
                Constant:
                  Integer: 3
            type_name: ~
    - Expr:
        span:
          start: 108
          end: 124
          file: 0
        value:
          Trace:
            span:
              start: 114
              end: 123
              file: 0
            value:
              BinaryOperator:
                - Add
                - span:
                    start: 114
                    end: 119
                    file: 0
                  value:
                    Constant:
                      String: "a: "
                - span:
                    start: 122
                    end: 123
                    file: 0
                  value:
                    Constant:
                      Identifier: a
    - Expr:
        span:
          start: 131
          end: 147
          file: 0
        value:
          Trace:
            span:
              start: 137
              end: 146
              file: 0
            value:
              BinaryOperator:
                - Add
                - span:
                    start: 137
                    end: 142
                    file: 0
                  value:
                    Constant:
                      String: "b: "
                - span:
                    start: 145
                    end: 146
                    file: 0
                  value:
                    Constant:
                      Identifier: b
    - Expr:
        span:
          start: 162
          end: 178
          file: 0
        value:
          Trace:
            span:
              start: 168
              end: 177
              file: 0
            value:
              BinaryOperator:
                - Add
                - span:
                    start: 168
                    end: 173
                    file: 0
                  value:
                    Constant:
                      String: "c: "
                - span:
                    start: 176
                    end: 177
                    file: 0
                  value:
                    Constant:
                      Identifier: c
  interfaces: []
  classes: []
  custom_pcodes: []
  compile_options:
    swf_version: 15
    optimizations:
      fold_constants: true
      promote_variables_to_registers: true