rascal 0.2.2

A parser and compiler for Flash ActionScript 2 files into SWFs
Documentation
---
source: crates/rascal/src/program.rs
expression: parsed
input_file: samples/as2/try_catch_stack.as
---
Ok:
  initial_script:
    - Declare:
        - name:
            span:
              start: 4
              end: 7
            value: bad
          value:
            span:
              start: 10
              end: 46
            value:
              Function:
                signature:
                  name: ~
                  args: []
                  return_type: ~
                body:
                  - Throw:
                      - span:
                          start: 33
                          end: 43
                        value:
                          Constant:
                            String: oh noes!
          type_name: ~
    - Declare:
        - name:
            span:
              start: 53
              end: 56
            value: foo
          value:
            span:
              start: 59
              end: 188
            value:
              Function:
                signature:
                  name: ~
                  args: []
                  return_type: ~
                body:
                  - Try:
                      try_body:
                        - Return:
                            - span:
                                start: 97
                                end: 112
                              value:
                                BinaryOperator:
                                  - Add
                                  - span:
                                      start: 97
                                      end: 98
                                    value:
                                      Constant:
                                        Integer: 1
                                  - span:
                                      start: 102
                                      end: 111
                                    value:
                                      BinaryOperator:
                                        - Add
                                        - span:
                                            start: 102
                                            end: 103
                                          value:
                                            Constant:
                                              Integer: 1
                                        - span:
                                            start: 106
                                            end: 111
                                          value:
                                            Call:
                                              name:
                                                span:
                                                  start: 106
                                                  end: 109
                                                value:
                                                  Constant:
                                                    Identifier: bad
                                              args: []
                      typed_catches: []
                      catch_all:
                        name:
                          span:
                            start: 127
                            end: 128
                          value: e
                        body:
                          - Expr:
                              span:
                                start: 140
                                end: 161
                              value:
                                Trace:
                                  span:
                                    start: 146
                                    end: 160
                                  value:
                                    BinaryOperator:
                                      - Add
                                      - span:
                                          start: 146
                                          end: 156
                                        value:
                                          Constant:
                                            String: "caught: "
                                      - span:
                                          start: 159
                                          end: 160
                                        value:
                                          Constant:
                                            Identifier: e
                          - Return:
                              - span:
                                  start: 178
                                  end: 179
                                value:
                                  Constant:
                                    Integer: 5
                      finally: []
          type_name: ~
    - Expr:
        span:
          start: 191
          end: 203
        value:
          Trace:
            span:
              start: 197
              end: 202
            value:
              Call:
                name:
                  span:
                    start: 197
                    end: 200
                  value:
                    Constant:
                      Identifier: foo
                args: []
    - Expr:
        span:
          start: 205
          end: 225
        value:
          Trace:
            span:
              start: 211
              end: 224
            value:
              BinaryOperator:
                - Add
                - span:
                    start: 211
                    end: 216
                  value:
                    Call:
                      name:
                        span:
                          start: 211
                          end: 214
                        value:
                          Constant:
                            Identifier: foo
                      args: []
                - span:
                    start: 219
                    end: 224
                  value:
                    Call:
                      name:
                        span:
                          start: 219
                          end: 222
                        value:
                          Constant:
                            Identifier: foo
                      args: []
  interfaces: []
  classes: []
  custom_pcodes: []