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/op_precedence/inc_dec.as
---
Ok:
  initial_script:
    - Declare:
        name:
          span:
            start: 4
            end: 5
            file: 0
          value: a
        value:
          span:
            start: 8
            end: 10
            file: 0
          value:
            Constant:
              Integer: 10
        type_name: ~
    - Declare:
        name:
          span:
            start: 126
            end: 129
            file: 0
          value: trc
        value:
          span:
            start: 132
            end: 165
            file: 0
          value:
            Function:
              signature:
                name: ~
                args:
                  - name: msg
                    type_name: ~
                    register: 1
                return_type: ~
              body:
                - Expr:
                    span:
                      start: 152
                      end: 162
                      file: 0
                    value:
                      Trace:
                        span:
                          start: 158
                          end: 161
                          file: 0
                        value:
                          Constant:
                            Register: 1
              scope:
                defined_variables:
                  this:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  arguments:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  super:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  _root:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  _parent:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  _global:
                    used: false
                    used_in_inner_scope: false
                    type_name: ~
                  msg:
                    used: true
                    used_in_inner_scope: false
                    type_name: ~
                referenced_variables: []
                could_reference_anything: false
              register_count: 2
              preload_this: false
              suppress_this: true
              preload_arguments: false
              suppress_arguments: true
              preload_super: false
              suppress_super: true
              preload_root: false
              preload_parent: false
              preload_global: false
        type_name: ~
    - Expr:
        span:
          start: 167
          end: 175
          file: 0
        value:
          Call:
            name:
              span:
                start: 167
                end: 170
                file: 0
              value:
                Constant:
                  Identifier: trc
            args:
              - span:
                  start: 172
                  end: 174
                  file: 0
                value:
                  UnaryOperator:
                    - Increment: Postfix
                    - span:
                        start: 171
                        end: 172
                        file: 0
                      value:
                        Constant:
                          Identifier: a
    - Expr:
        span:
          start: 177
          end: 185
          file: 0
        value:
          Call:
            name:
              span:
                start: 177
                end: 180
                file: 0
              value:
                Constant:
                  Identifier: trc
            args:
              - span:
                  start: 182
                  end: 184
                  file: 0
                value:
                  UnaryOperator:
                    - Decrement: Postfix
                    - span:
                        start: 181
                        end: 182
                        file: 0
                      value:
                        Constant:
                          Identifier: a
    - Expr:
        span:
          start: 187
          end: 195
          file: 0
        value:
          Call:
            name:
              span:
                start: 187
                end: 190
                file: 0
              value:
                Constant:
                  Identifier: trc
            args:
              - span:
                  start: 191
                  end: 194
                  file: 0
                value:
                  UnaryOperator:
                    - Increment: Prefix
                    - span:
                        start: 193
                        end: 194
                        file: 0
                      value:
                        Constant:
                          Identifier: a
    - Expr:
        span:
          start: 197
          end: 205
          file: 0
        value:
          Call:
            name:
              span:
                start: 197
                end: 200
                file: 0
              value:
                Constant:
                  Identifier: trc
            args:
              - span:
                  start: 201
                  end: 204
                  file: 0
                value:
                  UnaryOperator:
                    - Decrement: Prefix
                    - span:
                        start: 203
                        end: 204
                        file: 0
                      value:
                        Constant:
                          Identifier: a
  interfaces: []
  classes: []
  custom_pcodes: []
  compile_options:
    swf_version: 15
    optimizations:
      fold_constants: true
      promote_variables_to_registers: true