rascal 0.2.3

A parser and compiler for Flash ActionScript 2 files into SWFs
Documentation
---
source: crates/rascal/src/program.rs
expression: parsed
input_file: samples/as2/nested_break_continue.as
---
Ok:
  initial_script:
    - ForIn:
        condition:
          Classic:
            initialize:
              Declare:
                - name:
                    span:
                      start: 9
                      end: 10
                    value: i
                  value:
                    span:
                      start: 13
                      end: 14
                    value:
                      Constant:
                        Integer: 0
                  type_name: ~
            condition:
              - span:
                  start: 16
                  end: 21
                value:
                  BinaryOperator:
                    - LessThan
                    - span:
                        start: 16
                        end: 17
                      value:
                        Constant:
                          Identifier: i
                    - span:
                        start: 20
                        end: 21
                      value:
                        Constant:
                          Integer: 4
            update:
              - span:
                  start: 24
                  end: 26
                value:
                  UnaryOperator:
                    - Increment: Postfix
                    - span:
                        start: 23
                        end: 24
                      value:
                        Constant:
                          Identifier: i
        body:
          Block:
            - Expr:
                span:
                  start: 31
                  end: 48
                value:
                  Trace:
                    span:
                      start: 37
                      end: 47
                    value:
                      BinaryOperator:
                        - Add
                        - span:
                            start: 37
                            end: 43
                          value:
                            Constant:
                              String: "i = "
                        - span:
                            start: 46
                            end: 47
                          value:
                            Constant:
                              Identifier: i
            - ForIn:
                condition:
                  Classic:
                    initialize:
                      Declare:
                        - name:
                            span:
                              start: 60
                              end: 61
                            value: j
                          value:
                            span:
                              start: 64
                              end: 65
                            value:
                              Constant:
                                Integer: 0
                          type_name: ~
                    condition:
                      - span:
                          start: 67
                          end: 72
                        value:
                          BinaryOperator:
                            - LessThan
                            - span:
                                start: 67
                                end: 68
                              value:
                                Constant:
                                  Identifier: j
                            - span:
                                start: 71
                                end: 72
                              value:
                                Constant:
                                  Integer: 4
                    update:
                      - span:
                          start: 75
                          end: 77
                        value:
                          UnaryOperator:
                            - Increment: Postfix
                            - span:
                                start: 74
                                end: 75
                              value:
                                Constant:
                                  Identifier: j
                body:
                  Block:
                    - Declare:
                        - name:
                            span:
                              start: 87
                              end: 89
                            value: fn
                          value:
                            span:
                              start: 92
                              end: 155
                            value:
                              Function:
                                signature:
                                  name: ~
                                  args: []
                                  return_type: ~
                                body:
                                  - Expr:
                                      span:
                                        start: 108
                                        end: 140
                                      value:
                                        Trace:
                                          span:
                                            start: 114
                                            end: 139
                                          value:
                                            Constant:
                                              String: trying to break from fn
                                  - Break
                          type_name: ~
                    - Expr:
                        span:
                          start: 158
                          end: 175
                        value:
                          Trace:
                            span:
                              start: 164
                              end: 174
                            value:
                              BinaryOperator:
                                - Add
                                - span:
                                    start: 164
                                    end: 170
                                  value:
                                    Constant:
                                      String: "j = "
                                - span:
                                    start: 173
                                    end: 174
                                  value:
                                    Constant:
                                      Identifier: j
                    - If:
                        condition:
                          span:
                            start: 183
                            end: 189
                          value:
                            BinaryOperator:
                              - Equal
                              - span:
                                  start: 183
                                  end: 184
                                value:
                                  Constant:
                                    Identifier: j
                              - span:
                                  start: 188
                                  end: 189
                                value:
                                  Constant:
                                    Integer: 1
                        "yes":
                          Block:
                            - Expr:
                                span:
                                  start: 196
                                  end: 200
                                value:
                                  Call:
                                    name:
                                      span:
                                        start: 196
                                        end: 198
                                      value:
                                        Constant:
                                          Identifier: fn
                                    args: []
                            - Continue
                        "no": ~
                    - If:
                        condition:
                          span:
                            start: 225
                            end: 231
                          value:
                            BinaryOperator:
                              - Equal
                              - span:
                                  start: 225
                                  end: 226
                                value:
                                  Constant:
                                    Identifier: j
                              - span:
                                  start: 230
                                  end: 231
                                value:
                                  Constant:
                                    Integer: 2
                        "yes":
                          Block:
                            - Break
                        "no": ~
            - If:
                condition:
                  span:
                    start: 257
                    end: 263
                  value:
                    BinaryOperator:
                      - Equal
                      - span:
                          start: 257
                          end: 258
                        value:
                          Constant:
                            Identifier: i
                      - span:
                          start: 262
                          end: 263
                        value:
                          Constant:
                            Integer: 1
                "yes":
                  Block:
                    - Continue
                "no": ~
            - If:
                condition:
                  span:
                    start: 287
                    end: 293
                  value:
                    BinaryOperator:
                      - Equal
                      - span:
                          start: 287
                          end: 288
                        value:
                          Constant:
                            Identifier: i
                      - span:
                          start: 292
                          end: 293
                        value:
                          Constant:
                            Integer: 2
                "yes":
                  Block:
                    - Break
                "no": ~
  interfaces: []
  classes: []
  custom_pcodes: []