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/switch.as
---
Ok:
  initial_script:
    - Switch:
        target:
          span:
            start: 7
            end: 8
            file: 0
          value:
            Constant:
              Identifier: x
        elements:
          - Case:
              span:
                start: 18
                end: 19
                file: 0
              value:
                Constant:
                  Integer: 1
          - Statement:
              Expr:
                span:
                  start: 21
                  end: 32
                  file: 0
                value:
                  Trace:
                    span:
                      start: 27
                      end: 31
                      file: 0
                    value:
                      Constant:
                        String: 1!
          - Case:
              span:
                start: 40
                end: 41
                file: 0
              value:
                Constant:
                  Integer: 2
          - Statement:
              Block:
                - Expr:
                    span:
                      start: 47
                      end: 63
                      file: 0
                    value:
                      Trace:
                        span:
                          start: 53
                          end: 62
                          file: 0
                        value:
                          Constant:
                            String: 1 or 2!
                - Break
          - Case:
              span:
                start: 83
                end: 84
                file: 0
              value:
                Constant:
                  Identifier: c
          - Statement:
              Block:
                - Expr:
                    span:
                      start: 90
                      end: 101
                      file: 0
                    value:
                      Trace:
                        span:
                          start: 96
                          end: 100
                          file: 0
                        value:
                          Constant:
                            String: c!
          - Default
          - Statement:
              Expr:
                span:
                  start: 118
                  end: 140
                  file: 0
                value:
                  Trace:
                    span:
                      start: 124
                      end: 139
                      file: 0
                    value:
                      Constant:
                        String: c or default!
          - Statement:
              Expr:
                span:
                  start: 143
                  end: 182
                  file: 0
                value:
                  Trace:
                    span:
                      start: 149
                      end: 181
                      file: 0
                    value:
                      Constant:
                        String: still c or default! no braces!
          - Statement: Break
          - Case:
              span:
                start: 198
                end: 202
                file: 0
              value:
                Constant:
                  Identifier: "null"
          - Statement:
              Expr:
                span:
                  start: 206
                  end: 220
                  file: 0
                value:
                  Trace:
                    span:
                      start: 212
                      end: 219
                      file: 0
                    value:
                      Constant:
                        String: null!
    - Expr:
        span:
          start: 224
          end: 235
          file: 0
        value:
          Trace:
            span:
              start: 230
              end: 234
              file: 0
            value:
              Constant:
                String: "--"
    - Switch:
        target:
          span:
            start: 244
            end: 245
            file: 0
          value:
            Constant:
              Identifier: x
        elements:
          - Statement:
              Expr:
                span:
                  start: 250
                  end: 267
                  file: 0
                value:
                  Trace:
                    span:
                      start: 256
                      end: 266
                      file: 0
                    value:
                      Constant:
                        String: no case!
    - Expr:
        span:
          start: 270
          end: 281
          file: 0
        value:
          Trace:
            span:
              start: 276
              end: 280
              file: 0
            value:
              Constant:
                String: "--"
    - Switch:
        target:
          span:
            start: 290
            end: 291
            file: 0
          value:
            Constant:
              Identifier: x
        elements:
          - Default
          - Statement:
              Expr:
                span:
                  start: 305
                  end: 327
                  file: 0
                value:
                  Trace:
                    span:
                      start: 311
                      end: 326
                      file: 0
                    value:
                      Constant:
                        String: only default!
    - Expr:
        span:
          start: 330
          end: 341
          file: 0
        value:
          Trace:
            span:
              start: 336
              end: 340
              file: 0
            value:
              Constant:
                String: "--"
    - Switch:
        target:
          span:
            start: 350
            end: 351
            file: 0
          value:
            Constant:
              Identifier: x
        elements:
          - Case:
              span:
                start: 361
                end: 365
                file: 0
              value:
                Constant:
                  Boolean: true
    - Expr:
        span:
          start: 369
          end: 381
          file: 0
        value:
          Trace:
            span:
              start: 375
              end: 380
              file: 0
            value:
              Constant:
                String: end
  interfaces: []
  classes: []
  custom_pcodes: []
  compile_options:
    swf_version: 15
    optimizations:
      fold_constants: true
      promote_variables_to_registers: true