---
source: full-moon/tests/pass_cases.rs
assertion_line: 52
expression: ast.nodes()
input_file: full-moon/tests/roblox_cases/pass/if_expression
---
stmts:
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 0
              line: 1
              character: 1
            end_position:
              bytes: 5
              line: 1
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 5
                line: 1
                character: 6
              end_position:
                bytes: 6
                line: 1
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 6
                    line: 1
                    character: 7
                  end_position:
                    bytes: 7
                    line: 1
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: x
                trailing_trivia:
                  - start_position:
                      bytes: 7
                      line: 1
                      character: 8
                    end_position:
                      bytes: 8
                      line: 1
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 8
              line: 1
              character: 9
            end_position:
              bytes: 9
              line: 1
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 9
                line: 1
                character: 10
              end_position:
                bytes: 10
                line: 1
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                IfExpression:
                  if_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 10
                        line: 1
                        character: 11
                      end_position:
                        bytes: 12
                        line: 1
                        character: 13
                      token_type:
                        type: Symbol
                        symbol: if
                    trailing_trivia:
                      - start_position:
                          bytes: 12
                          line: 1
                          character: 13
                        end_position:
                          bytes: 13
                          line: 1
                          character: 14
                        token_type:
                          type: Whitespace
                          characters: " "
                  condition:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 13
                            line: 1
                            character: 14
                          end_position:
                            bytes: 16
                            line: 1
                            character: 17
                          token_type:
                            type: Identifier
                            identifier: foo
                        trailing_trivia:
                          - start_position:
                              bytes: 16
                              line: 1
                              character: 17
                            end_position:
                              bytes: 17
                              line: 1
                              character: 18
                            token_type:
                              type: Whitespace
                              characters: " "
                  then_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 17
                        line: 1
                        character: 18
                      end_position:
                        bytes: 21
                        line: 1
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: then
                    trailing_trivia:
                      - start_position:
                          bytes: 21
                          line: 1
                          character: 22
                        end_position:
                          bytes: 22
                          line: 1
                          character: 23
                        token_type:
                          type: Whitespace
                          characters: " "
                  if_expression:
                    Var:
                      Expression:
                        prefix:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 22
                                line: 1
                                character: 23
                              end_position:
                                bytes: 25
                                line: 1
                                character: 26
                              token_type:
                                type: Identifier
                                identifier: foo
                            trailing_trivia: []
                        suffixes:
                          - Index:
                              Dot:
                                dot:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 25
                                      line: 1
                                      character: 26
                                    end_position:
                                      bytes: 26
                                      line: 1
                                      character: 27
                                    token_type:
                                      type: Symbol
                                      symbol: "."
                                  trailing_trivia: []
                                name:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 26
                                      line: 1
                                      character: 27
                                    end_position:
                                      bytes: 27
                                      line: 1
                                      character: 28
                                    token_type:
                                      type: Identifier
                                      identifier: x
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 27
                                        line: 1
                                        character: 28
                                      end_position:
                                        bytes: 28
                                        line: 1
                                        character: 29
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                  else_if_expressions: ~
                  else_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 28
                        line: 1
                        character: 29
                      end_position:
                        bytes: 32
                        line: 1
                        character: 33
                      token_type:
                        type: Symbol
                        symbol: else
                    trailing_trivia:
                      - start_position:
                          bytes: 32
                          line: 1
                          character: 33
                        end_position:
                          bytes: 33
                          line: 1
                          character: 34
                        token_type:
                          type: Whitespace
                          characters: " "
                  else_expression:
                    Number:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 33
                          line: 1
                          character: 34
                        end_position:
                          bytes: 34
                          line: 1
                          character: 35
                        token_type:
                          type: Number
                          text: "5"
                      trailing_trivia:
                        - start_position:
                            bytes: 34
                            line: 1
                            character: 35
                          end_position:
                            bytes: 35
                            line: 1
                            character: 35
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 35
              line: 2
              character: 1
            end_position:
              bytes: 40
              line: 2
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 40
                line: 2
                character: 6
              end_position:
                bytes: 41
                line: 2
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 41
                    line: 2
                    character: 7
                  end_position:
                    bytes: 42
                    line: 2
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: y
                trailing_trivia:
                  - start_position:
                      bytes: 42
                      line: 2
                      character: 8
                    end_position:
                      bytes: 43
                      line: 2
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 43
              line: 2
              character: 9
            end_position:
              bytes: 44
              line: 2
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 44
                line: 2
                character: 10
              end_position:
                bytes: 45
                line: 2
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                FunctionCall:
                  prefix:
                    Expression:
                      Parentheses:
                        contained:
                          tokens:
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 45
                                  line: 2
                                  character: 11
                                end_position:
                                  bytes: 46
                                  line: 2
                                  character: 12
                                token_type:
                                  type: Symbol
                                  symbol: (
                              trailing_trivia: []
                            - leading_trivia: []
                              token:
                                start_position:
                                  bytes: 79
                                  line: 2
                                  character: 45
                                end_position:
                                  bytes: 80
                                  line: 2
                                  character: 46
                                token_type:
                                  type: Symbol
                                  symbol: )
                              trailing_trivia: []
                        expression:
                          IfExpression:
                            if_token:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 46
                                  line: 2
                                  character: 12
                                end_position:
                                  bytes: 48
                                  line: 2
                                  character: 14
                                token_type:
                                  type: Symbol
                                  symbol: if
                              trailing_trivia:
                                - start_position:
                                    bytes: 48
                                    line: 2
                                    character: 14
                                  end_position:
                                    bytes: 49
                                    line: 2
                                    character: 15
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            condition:
                              Var:
                                Name:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 49
                                      line: 2
                                      character: 15
                                    end_position:
                                      bytes: 50
                                      line: 2
                                      character: 16
                                    token_type:
                                      type: Identifier
                                      identifier: x
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 50
                                        line: 2
                                        character: 16
                                      end_position:
                                        bytes: 51
                                        line: 2
                                        character: 17
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                            then_token:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 51
                                  line: 2
                                  character: 17
                                end_position:
                                  bytes: 55
                                  line: 2
                                  character: 21
                                token_type:
                                  type: Symbol
                                  symbol: then
                              trailing_trivia:
                                - start_position:
                                    bytes: 55
                                    line: 2
                                    character: 21
                                  end_position:
                                    bytes: 56
                                    line: 2
                                    character: 22
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            if_expression:
                              Var:
                                Expression:
                                  prefix:
                                    Name:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 56
                                          line: 2
                                          character: 22
                                        end_position:
                                          bytes: 57
                                          line: 2
                                          character: 23
                                        token_type:
                                          type: Identifier
                                          identifier: x
                                      trailing_trivia: []
                                  suffixes:
                                    - Index:
                                        Dot:
                                          dot:
                                            leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 57
                                                line: 2
                                                character: 23
                                              end_position:
                                                bytes: 58
                                                line: 2
                                                character: 24
                                              token_type:
                                                type: Symbol
                                                symbol: "."
                                            trailing_trivia: []
                                          name:
                                            leading_trivia: []
                                            token:
                                              start_position:
                                                bytes: 58
                                                line: 2
                                                character: 24
                                              end_position:
                                                bytes: 65
                                                line: 2
                                                character: 31
                                              token_type:
                                                type: Identifier
                                                identifier: indices
                                            trailing_trivia:
                                              - start_position:
                                                  bytes: 65
                                                  line: 2
                                                  character: 31
                                                end_position:
                                                  bytes: 66
                                                  line: 2
                                                  character: 32
                                                token_type:
                                                  type: Whitespace
                                                  characters: " "
                            else_if_expressions: ~
                            else_token:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 66
                                  line: 2
                                  character: 32
                                end_position:
                                  bytes: 70
                                  line: 2
                                  character: 36
                                token_type:
                                  type: Symbol
                                  symbol: else
                              trailing_trivia:
                                - start_position:
                                    bytes: 70
                                    line: 2
                                    character: 36
                                  end_position:
                                    bytes: 71
                                    line: 2
                                    character: 37
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            else_expression:
                              FunctionCall:
                                prefix:
                                  Name:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 71
                                        line: 2
                                        character: 37
                                      end_position:
                                        bytes: 77
                                        line: 2
                                        character: 43
                                      token_type:
                                        type: Identifier
                                        identifier: create
                                    trailing_trivia: []
                                suffixes:
                                  - Call:
                                      AnonymousCall:
                                        Parentheses:
                                          parentheses:
                                            tokens:
                                              - leading_trivia: []
                                                token:
                                                  start_position:
                                                    bytes: 77
                                                    line: 2
                                                    character: 43
                                                  end_position:
                                                    bytes: 78
                                                    line: 2
                                                    character: 44
                                                  token_type:
                                                    type: Symbol
                                                    symbol: (
                                                trailing_trivia: []
                                              - leading_trivia: []
                                                token:
                                                  start_position:
                                                    bytes: 78
                                                    line: 2
                                                    character: 44
                                                  end_position:
                                                    bytes: 79
                                                    line: 2
                                                    character: 45
                                                  token_type:
                                                    type: Symbol
                                                    symbol: )
                                                trailing_trivia: []
                                          arguments:
                                            pairs: []
                  suffixes:
                    - Call:
                        MethodCall:
                          colon_token:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 80
                                line: 2
                                character: 46
                              end_position:
                                bytes: 81
                                line: 2
                                character: 47
                              token_type:
                                type: Symbol
                                symbol: ":"
                            trailing_trivia: []
                          name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 81
                                line: 2
                                character: 47
                              end_position:
                                bytes: 87
                                line: 2
                                character: 53
                              token_type:
                                type: Identifier
                                identifier: update
                            trailing_trivia: []
                          args:
                            Parentheses:
                              parentheses:
                                tokens:
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 87
                                        line: 2
                                        character: 53
                                      end_position:
                                        bytes: 88
                                        line: 2
                                        character: 54
                                      token_type:
                                        type: Symbol
                                        symbol: (
                                    trailing_trivia: []
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 134
                                        line: 2
                                        character: 100
                                      end_position:
                                        bytes: 135
                                        line: 2
                                        character: 101
                                      token_type:
                                        type: Symbol
                                        symbol: )
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 135
                                          line: 2
                                          character: 101
                                        end_position:
                                          bytes: 136
                                          line: 2
                                          character: 101
                                        token_type:
                                          type: Whitespace
                                          characters: "\n"
                              arguments:
                                pairs:
                                  - End:
                                      IfExpression:
                                        if_token:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 88
                                              line: 2
                                              character: 54
                                            end_position:
                                              bytes: 90
                                              line: 2
                                              character: 56
                                            token_type:
                                              type: Symbol
                                              symbol: if
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 90
                                                line: 2
                                                character: 56
                                              end_position:
                                                bytes: 91
                                                line: 2
                                                character: 57
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                        condition:
                                          Var:
                                            Name:
                                              leading_trivia: []
                                              token:
                                                start_position:
                                                  bytes: 91
                                                  line: 2
                                                  character: 57
                                                end_position:
                                                  bytes: 103
                                                  line: 2
                                                  character: 69
                                                token_type:
                                                  type: Identifier
                                                  identifier: shouldUpdate
                                              trailing_trivia:
                                                - start_position:
                                                    bytes: 103
                                                    line: 2
                                                    character: 69
                                                  end_position:
                                                    bytes: 104
                                                    line: 2
                                                    character: 70
                                                  token_type:
                                                    type: Whitespace
                                                    characters: " "
                                        then_token:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 104
                                              line: 2
                                              character: 70
                                            end_position:
                                              bytes: 108
                                              line: 2
                                              character: 74
                                            token_type:
                                              type: Symbol
                                              symbol: then
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 108
                                                line: 2
                                                character: 74
                                              end_position:
                                                bytes: 109
                                                line: 2
                                                character: 75
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                        if_expression:
                                          Var:
                                            Name:
                                              leading_trivia: []
                                              token:
                                                start_position:
                                                  bytes: 109
                                                  line: 2
                                                  character: 75
                                                end_position:
                                                  bytes: 120
                                                  line: 2
                                                  character: 86
                                                token_type:
                                                  type: Identifier
                                                  identifier: information
                                              trailing_trivia:
                                                - start_position:
                                                    bytes: 120
                                                    line: 2
                                                    character: 86
                                                  end_position:
                                                    bytes: 121
                                                    line: 2
                                                    character: 87
                                                  token_type:
                                                    type: Whitespace
                                                    characters: " "
                                        else_if_expressions: ~
                                        else_token:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 121
                                              line: 2
                                              character: 87
                                            end_position:
                                              bytes: 125
                                              line: 2
                                              character: 91
                                            token_type:
                                              type: Symbol
                                              symbol: else
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 125
                                                line: 2
                                                character: 91
                                              end_position:
                                                bytes: 126
                                                line: 2
                                                character: 92
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                        else_expression:
                                          Var:
                                            Name:
                                              leading_trivia: []
                                              token:
                                                start_position:
                                                  bytes: 126
                                                  line: 2
                                                  character: 92
                                                end_position:
                                                  bytes: 134
                                                  line: 2
                                                  character: 100
                                                token_type:
                                                  type: Identifier
                                                  identifier: defaults
                                              trailing_trivia: []
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 136
              line: 3
              character: 1
            end_position:
              bytes: 141
              line: 3
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 141
                line: 3
                character: 6
              end_position:
                bytes: 142
                line: 3
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 142
                    line: 3
                    character: 7
                  end_position:
                    bytes: 143
                    line: 3
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: z
                trailing_trivia:
                  - start_position:
                      bytes: 143
                      line: 3
                      character: 8
                    end_position:
                      bytes: 144
                      line: 3
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 144
              line: 3
              character: 9
            end_position:
              bytes: 145
              line: 3
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 145
                line: 3
                character: 10
              end_position:
                bytes: 146
                line: 3
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                TypeAssertion:
                  expression:
                    Parentheses:
                      contained:
                        tokens:
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 146
                                line: 3
                                character: 11
                              end_position:
                                bytes: 147
                                line: 3
                                character: 12
                              token_type:
                                type: Symbol
                                symbol: (
                            trailing_trivia: []
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 171
                                line: 3
                                character: 36
                              end_position:
                                bytes: 172
                                line: 3
                                character: 37
                              token_type:
                                type: Symbol
                                symbol: )
                            trailing_trivia:
                              - start_position:
                                  bytes: 172
                                  line: 3
                                  character: 37
                                end_position:
                                  bytes: 173
                                  line: 3
                                  character: 38
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      expression:
                        IfExpression:
                          if_token:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 147
                                line: 3
                                character: 12
                              end_position:
                                bytes: 149
                                line: 3
                                character: 14
                              token_type:
                                type: Symbol
                                symbol: if
                            trailing_trivia:
                              - start_position:
                                  bytes: 149
                                  line: 3
                                  character: 14
                                end_position:
                                  bytes: 150
                                  line: 3
                                  character: 15
                                token_type:
                                  type: Whitespace
                                  characters: " "
                          condition:
                            Var:
                              Name:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 150
                                    line: 3
                                    character: 15
                                  end_position:
                                    bytes: 153
                                    line: 3
                                    character: 18
                                  token_type:
                                    type: Identifier
                                    identifier: bar
                                trailing_trivia:
                                  - start_position:
                                      bytes: 153
                                      line: 3
                                      character: 18
                                    end_position:
                                      bytes: 154
                                      line: 3
                                      character: 19
                                    token_type:
                                      type: Whitespace
                                      characters: " "
                          then_token:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 154
                                line: 3
                                character: 19
                              end_position:
                                bytes: 158
                                line: 3
                                character: 23
                              token_type:
                                type: Symbol
                                symbol: then
                            trailing_trivia:
                              - start_position:
                                  bytes: 158
                                  line: 3
                                  character: 23
                                end_position:
                                  bytes: 159
                                  line: 3
                                  character: 24
                                token_type:
                                  type: Whitespace
                                  characters: " "
                          if_expression:
                            Var:
                              Expression:
                                prefix:
                                  Name:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 159
                                        line: 3
                                        character: 24
                                      end_position:
                                        bytes: 162
                                        line: 3
                                        character: 27
                                      token_type:
                                        type: Identifier
                                        identifier: foo
                                    trailing_trivia: []
                                suffixes:
                                  - Index:
                                      Dot:
                                        dot:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 162
                                              line: 3
                                              character: 27
                                            end_position:
                                              bytes: 163
                                              line: 3
                                              character: 28
                                            token_type:
                                              type: Symbol
                                              symbol: "."
                                          trailing_trivia: []
                                        name:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 163
                                              line: 3
                                              character: 28
                                            end_position:
                                              bytes: 164
                                              line: 3
                                              character: 29
                                            token_type:
                                              type: Identifier
                                              identifier: y
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 164
                                                line: 3
                                                character: 29
                                              end_position:
                                                bytes: 165
                                                line: 3
                                                character: 30
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                          else_if_expressions: ~
                          else_token:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 165
                                line: 3
                                character: 30
                              end_position:
                                bytes: 169
                                line: 3
                                character: 34
                              token_type:
                                type: Symbol
                                symbol: else
                            trailing_trivia:
                              - start_position:
                                  bytes: 169
                                  line: 3
                                  character: 34
                                end_position:
                                  bytes: 170
                                  line: 3
                                  character: 35
                                token_type:
                                  type: Whitespace
                                  characters: " "
                          else_expression:
                            Number:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 170
                                  line: 3
                                  character: 35
                                end_position:
                                  bytes: 171
                                  line: 3
                                  character: 36
                                token_type:
                                  type: Number
                                  text: "5"
                              trailing_trivia: []
                  type_assertion:
                    assertion_op:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 173
                          line: 3
                          character: 38
                        end_position:
                          bytes: 175
                          line: 3
                          character: 40
                        token_type:
                          type: Symbol
                          symbol: "::"
                      trailing_trivia:
                        - start_position:
                            bytes: 175
                            line: 3
                            character: 40
                          end_position:
                            bytes: 176
                            line: 3
                            character: 41
                          token_type:
                            type: Whitespace
                            characters: " "
                    cast_to:
                      Basic:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 176
                            line: 3
                            character: 41
                          end_position:
                            bytes: 182
                            line: 3
                            character: 47
                          token_type:
                            type: Identifier
                            identifier: number
                        trailing_trivia:
                          - start_position:
                              bytes: 182
                              line: 3
                              character: 47
                            end_position:
                              bytes: 183
                              line: 3
                              character: 47
                            token_type:
                              type: Whitespace
                              characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia:
            - start_position:
                bytes: 183
                line: 4
                character: 1
              end_position:
                bytes: 184
                line: 4
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 184
              line: 5
              character: 1
            end_position:
              bytes: 189
              line: 5
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 189
                line: 5
                character: 6
              end_position:
                bytes: 190
                line: 5
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 190
                    line: 5
                    character: 7
                  end_position:
                    bytes: 191
                    line: 5
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: a
                trailing_trivia:
                  - start_position:
                      bytes: 191
                      line: 5
                      character: 8
                    end_position:
                      bytes: 192
                      line: 5
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 192
              line: 5
              character: 9
            end_position:
              bytes: 193
              line: 5
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 193
                line: 5
                character: 10
              end_position:
                bytes: 194
                line: 5
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                IfExpression:
                  if_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 194
                        line: 5
                        character: 11
                      end_position:
                        bytes: 196
                        line: 5
                        character: 13
                      token_type:
                        type: Symbol
                        symbol: if
                    trailing_trivia:
                      - start_position:
                          bytes: 196
                          line: 5
                          character: 13
                        end_position:
                          bytes: 197
                          line: 5
                          character: 14
                        token_type:
                          type: Whitespace
                          characters: " "
                  condition:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 197
                            line: 5
                            character: 14
                          end_position:
                            bytes: 200
                            line: 5
                            character: 17
                          token_type:
                            type: Identifier
                            identifier: foo
                        trailing_trivia:
                          - start_position:
                              bytes: 200
                              line: 5
                              character: 17
                            end_position:
                              bytes: 201
                              line: 5
                              character: 18
                            token_type:
                              type: Whitespace
                              characters: " "
                  then_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 201
                        line: 5
                        character: 18
                      end_position:
                        bytes: 205
                        line: 5
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: then
                    trailing_trivia:
                      - start_position:
                          bytes: 205
                          line: 5
                          character: 22
                        end_position:
                          bytes: 206
                          line: 5
                          character: 23
                        token_type:
                          type: Whitespace
                          characters: " "
                  if_expression:
                    Var:
                      Expression:
                        prefix:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 206
                                line: 5
                                character: 23
                              end_position:
                                bytes: 209
                                line: 5
                                character: 26
                              token_type:
                                type: Identifier
                                identifier: foo
                            trailing_trivia: []
                        suffixes:
                          - Index:
                              Dot:
                                dot:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 209
                                      line: 5
                                      character: 26
                                    end_position:
                                      bytes: 210
                                      line: 5
                                      character: 27
                                    token_type:
                                      type: Symbol
                                      symbol: "."
                                  trailing_trivia: []
                                name:
                                  leading_trivia: []
                                  token:
                                    start_position:
                                      bytes: 210
                                      line: 5
                                      character: 27
                                    end_position:
                                      bytes: 211
                                      line: 5
                                      character: 28
                                    token_type:
                                      type: Identifier
                                      identifier: x
                                  trailing_trivia:
                                    - start_position:
                                        bytes: 211
                                        line: 5
                                        character: 28
                                      end_position:
                                        bytes: 212
                                        line: 5
                                        character: 29
                                      token_type:
                                        type: Whitespace
                                        characters: " "
                  else_if_expressions:
                    - else_if_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 212
                            line: 5
                            character: 29
                          end_position:
                            bytes: 218
                            line: 5
                            character: 35
                          token_type:
                            type: Symbol
                            symbol: elseif
                        trailing_trivia:
                          - start_position:
                              bytes: 218
                              line: 5
                              character: 35
                            end_position:
                              bytes: 219
                              line: 5
                              character: 36
                            token_type:
                              type: Whitespace
                              characters: " "
                      condition:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 219
                                line: 5
                                character: 36
                              end_position:
                                bytes: 222
                                line: 5
                                character: 39
                              token_type:
                                type: Identifier
                                identifier: bar
                            trailing_trivia:
                              - start_position:
                                  bytes: 222
                                  line: 5
                                  character: 39
                                end_position:
                                  bytes: 223
                                  line: 5
                                  character: 40
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      then_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 223
                            line: 5
                            character: 40
                          end_position:
                            bytes: 227
                            line: 5
                            character: 44
                          token_type:
                            type: Symbol
                            symbol: then
                        trailing_trivia:
                          - start_position:
                              bytes: 227
                              line: 5
                              character: 44
                            end_position:
                              bytes: 228
                              line: 5
                              character: 45
                            token_type:
                              type: Whitespace
                              characters: " "
                      expression:
                        Var:
                          Expression:
                            prefix:
                              Name:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 228
                                    line: 5
                                    character: 45
                                  end_position:
                                    bytes: 231
                                    line: 5
                                    character: 48
                                  token_type:
                                    type: Identifier
                                    identifier: bar
                                trailing_trivia: []
                            suffixes:
                              - Index:
                                  Dot:
                                    dot:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 231
                                          line: 5
                                          character: 48
                                        end_position:
                                          bytes: 232
                                          line: 5
                                          character: 49
                                        token_type:
                                          type: Symbol
                                          symbol: "."
                                      trailing_trivia: []
                                    name:
                                      leading_trivia: []
                                      token:
                                        start_position:
                                          bytes: 232
                                          line: 5
                                          character: 49
                                        end_position:
                                          bytes: 233
                                          line: 5
                                          character: 50
                                        token_type:
                                          type: Identifier
                                          identifier: x
                                      trailing_trivia:
                                        - start_position:
                                            bytes: 233
                                            line: 5
                                            character: 50
                                          end_position:
                                            bytes: 234
                                            line: 5
                                            character: 51
                                          token_type:
                                            type: Whitespace
                                            characters: " "
                  else_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 234
                        line: 5
                        character: 51
                      end_position:
                        bytes: 238
                        line: 5
                        character: 55
                      token_type:
                        type: Symbol
                        symbol: else
                    trailing_trivia:
                      - start_position:
                          bytes: 238
                          line: 5
                          character: 55
                        end_position:
                          bytes: 239
                          line: 5
                          character: 56
                        token_type:
                          type: Whitespace
                          characters: " "
                  else_expression:
                    Number:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 239
                          line: 5
                          character: 56
                        end_position:
                          bytes: 240
                          line: 5
                          character: 57
                        token_type:
                          type: Number
                          text: "5"
                      trailing_trivia:
                        - start_position:
                            bytes: 240
                            line: 5
                            character: 57
                          end_position:
                            bytes: 241
                            line: 5
                            character: 57
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 241
              line: 6
              character: 1
            end_position:
              bytes: 246
              line: 6
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 246
                line: 6
                character: 6
              end_position:
                bytes: 247
                line: 6
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 247
                    line: 6
                    character: 7
                  end_position:
                    bytes: 248
                    line: 6
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: b
                trailing_trivia:
                  - start_position:
                      bytes: 248
                      line: 6
                      character: 8
                    end_position:
                      bytes: 249
                      line: 6
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 249
              line: 6
              character: 9
            end_position:
              bytes: 250
              line: 6
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 250
                line: 6
                character: 10
              end_position:
                bytes: 251
                line: 6
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                IfExpression:
                  if_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 251
                        line: 6
                        character: 11
                      end_position:
                        bytes: 253
                        line: 6
                        character: 13
                      token_type:
                        type: Symbol
                        symbol: if
                    trailing_trivia:
                      - start_position:
                          bytes: 253
                          line: 6
                          character: 13
                        end_position:
                          bytes: 254
                          line: 6
                          character: 14
                        token_type:
                          type: Whitespace
                          characters: " "
                  condition:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 254
                            line: 6
                            character: 14
                          end_position:
                            bytes: 257
                            line: 6
                            character: 17
                          token_type:
                            type: Identifier
                            identifier: foo
                        trailing_trivia:
                          - start_position:
                              bytes: 257
                              line: 6
                              character: 17
                            end_position:
                              bytes: 258
                              line: 6
                              character: 18
                            token_type:
                              type: Whitespace
                              characters: " "
                  then_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 258
                        line: 6
                        character: 18
                      end_position:
                        bytes: 262
                        line: 6
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: then
                    trailing_trivia:
                      - start_position:
                          bytes: 262
                          line: 6
                          character: 22
                        end_position:
                          bytes: 263
                          line: 6
                          character: 23
                        token_type:
                          type: Whitespace
                          characters: " "
                  if_expression:
                    IfExpression:
                      if_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 263
                            line: 6
                            character: 23
                          end_position:
                            bytes: 265
                            line: 6
                            character: 25
                          token_type:
                            type: Symbol
                            symbol: if
                        trailing_trivia:
                          - start_position:
                              bytes: 265
                              line: 6
                              character: 25
                            end_position:
                              bytes: 266
                              line: 6
                              character: 26
                            token_type:
                              type: Whitespace
                              characters: " "
                      condition:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 266
                                line: 6
                                character: 26
                              end_position:
                                bytes: 269
                                line: 6
                                character: 29
                              token_type:
                                type: Identifier
                                identifier: bar
                            trailing_trivia:
                              - start_position:
                                  bytes: 269
                                  line: 6
                                  character: 29
                                end_position:
                                  bytes: 270
                                  line: 6
                                  character: 30
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      then_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 270
                            line: 6
                            character: 30
                          end_position:
                            bytes: 274
                            line: 6
                            character: 34
                          token_type:
                            type: Symbol
                            symbol: then
                        trailing_trivia:
                          - start_position:
                              bytes: 274
                              line: 6
                              character: 34
                            end_position:
                              bytes: 275
                              line: 6
                              character: 35
                            token_type:
                              type: Whitespace
                              characters: " "
                      if_expression:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 275
                                line: 6
                                character: 35
                              end_position:
                                bytes: 278
                                line: 6
                                character: 38
                              token_type:
                                type: Identifier
                                identifier: bar
                            trailing_trivia:
                              - start_position:
                                  bytes: 278
                                  line: 6
                                  character: 38
                                end_position:
                                  bytes: 279
                                  line: 6
                                  character: 39
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      else_if_expressions: ~
                      else_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 279
                            line: 6
                            character: 39
                          end_position:
                            bytes: 283
                            line: 6
                            character: 43
                          token_type:
                            type: Symbol
                            symbol: else
                        trailing_trivia:
                          - start_position:
                              bytes: 283
                              line: 6
                              character: 43
                            end_position:
                              bytes: 284
                              line: 6
                              character: 44
                            token_type:
                              type: Whitespace
                              characters: " "
                      else_expression:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 284
                                line: 6
                                character: 44
                              end_position:
                                bytes: 287
                                line: 6
                                character: 47
                              token_type:
                                type: Identifier
                                identifier: foo
                            trailing_trivia:
                              - start_position:
                                  bytes: 287
                                  line: 6
                                  character: 47
                                end_position:
                                  bytes: 288
                                  line: 6
                                  character: 48
                                token_type:
                                  type: Whitespace
                                  characters: " "
                  else_if_expressions: ~
                  else_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 288
                        line: 6
                        character: 48
                      end_position:
                        bytes: 292
                        line: 6
                        character: 52
                      token_type:
                        type: Symbol
                        symbol: else
                    trailing_trivia:
                      - start_position:
                          bytes: 292
                          line: 6
                          character: 52
                        end_position:
                          bytes: 293
                          line: 6
                          character: 53
                        token_type:
                          type: Whitespace
                          characters: " "
                  else_expression:
                    Number:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 293
                          line: 6
                          character: 53
                        end_position:
                          bytes: 294
                          line: 6
                          character: 54
                        token_type:
                          type: Number
                          text: "5"
                      trailing_trivia:
                        - start_position:
                            bytes: 294
                            line: 6
                            character: 54
                          end_position:
                            bytes: 295
                            line: 6
                            character: 54
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 295
              line: 7
              character: 1
            end_position:
              bytes: 300
              line: 7
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 300
                line: 7
                character: 6
              end_position:
                bytes: 301
                line: 7
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 301
                    line: 7
                    character: 7
                  end_position:
                    bytes: 302
                    line: 7
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: c
                trailing_trivia:
                  - start_position:
                      bytes: 302
                      line: 7
                      character: 8
                    end_position:
                      bytes: 303
                      line: 7
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 303
              line: 7
              character: 9
            end_position:
              bytes: 304
              line: 7
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 304
                line: 7
                character: 10
              end_position:
                bytes: 305
                line: 7
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                IfExpression:
                  if_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 305
                        line: 7
                        character: 11
                      end_position:
                        bytes: 307
                        line: 7
                        character: 13
                      token_type:
                        type: Symbol
                        symbol: if
                    trailing_trivia:
                      - start_position:
                          bytes: 307
                          line: 7
                          character: 13
                        end_position:
                          bytes: 308
                          line: 7
                          character: 14
                        token_type:
                          type: Whitespace
                          characters: " "
                  condition:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 308
                            line: 7
                            character: 14
                          end_position:
                            bytes: 311
                            line: 7
                            character: 17
                          token_type:
                            type: Identifier
                            identifier: foo
                        trailing_trivia:
                          - start_position:
                              bytes: 311
                              line: 7
                              character: 17
                            end_position:
                              bytes: 312
                              line: 7
                              character: 18
                            token_type:
                              type: Whitespace
                              characters: " "
                  then_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 312
                        line: 7
                        character: 18
                      end_position:
                        bytes: 316
                        line: 7
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: then
                    trailing_trivia:
                      - start_position:
                          bytes: 316
                          line: 7
                          character: 22
                        end_position:
                          bytes: 317
                          line: 7
                          character: 23
                        token_type:
                          type: Whitespace
                          characters: " "
                  if_expression:
                    Parentheses:
                      contained:
                        tokens:
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 317
                                line: 7
                                character: 23
                              end_position:
                                bytes: 318
                                line: 7
                                character: 24
                              token_type:
                                type: Symbol
                                symbol: (
                            trailing_trivia: []
                          - leading_trivia: []
                            token:
                              start_position:
                                bytes: 333
                                line: 7
                                character: 39
                              end_position:
                                bytes: 334
                                line: 7
                                character: 40
                              token_type:
                                type: Symbol
                                symbol: )
                            trailing_trivia:
                              - start_position:
                                  bytes: 334
                                  line: 7
                                  character: 40
                                end_position:
                                  bytes: 335
                                  line: 7
                                  character: 41
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      expression:
                        TypeAssertion:
                          expression:
                            Var:
                              Expression:
                                prefix:
                                  Name:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 318
                                        line: 7
                                        character: 24
                                      end_position:
                                        bytes: 321
                                        line: 7
                                        character: 27
                                      token_type:
                                        type: Identifier
                                        identifier: foo
                                    trailing_trivia: []
                                suffixes:
                                  - Index:
                                      Dot:
                                        dot:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 321
                                              line: 7
                                              character: 27
                                            end_position:
                                              bytes: 322
                                              line: 7
                                              character: 28
                                            token_type:
                                              type: Symbol
                                              symbol: "."
                                          trailing_trivia: []
                                        name:
                                          leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 322
                                              line: 7
                                              character: 28
                                            end_position:
                                              bytes: 323
                                              line: 7
                                              character: 29
                                            token_type:
                                              type: Identifier
                                              identifier: x
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 323
                                                line: 7
                                                character: 29
                                              end_position:
                                                bytes: 324
                                                line: 7
                                                character: 30
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                          type_assertion:
                            assertion_op:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 324
                                  line: 7
                                  character: 30
                                end_position:
                                  bytes: 326
                                  line: 7
                                  character: 32
                                token_type:
                                  type: Symbol
                                  symbol: "::"
                              trailing_trivia:
                                - start_position:
                                    bytes: 326
                                    line: 7
                                    character: 32
                                  end_position:
                                    bytes: 327
                                    line: 7
                                    character: 33
                                  token_type:
                                    type: Whitespace
                                    characters: " "
                            cast_to:
                              Basic:
                                leading_trivia: []
                                token:
                                  start_position:
                                    bytes: 327
                                    line: 7
                                    character: 33
                                  end_position:
                                    bytes: 333
                                    line: 7
                                    character: 39
                                  token_type:
                                    type: Identifier
                                    identifier: number
                                trailing_trivia: []
                  else_if_expressions:
                    - else_if_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 335
                            line: 7
                            character: 41
                          end_position:
                            bytes: 341
                            line: 7
                            character: 47
                          token_type:
                            type: Symbol
                            symbol: elseif
                        trailing_trivia:
                          - start_position:
                              bytes: 341
                              line: 7
                              character: 47
                            end_position:
                              bytes: 342
                              line: 7
                              character: 48
                            token_type:
                              type: Whitespace
                              characters: " "
                      condition:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 342
                                line: 7
                                character: 48
                              end_position:
                                bytes: 345
                                line: 7
                                character: 51
                              token_type:
                                type: Identifier
                                identifier: bar
                            trailing_trivia:
                              - start_position:
                                  bytes: 345
                                  line: 7
                                  character: 51
                                end_position:
                                  bytes: 346
                                  line: 7
                                  character: 52
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      then_token:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 346
                            line: 7
                            character: 52
                          end_position:
                            bytes: 350
                            line: 7
                            character: 56
                          token_type:
                            type: Symbol
                            symbol: then
                        trailing_trivia:
                          - start_position:
                              bytes: 350
                              line: 7
                              character: 56
                            end_position:
                              bytes: 351
                              line: 7
                              character: 57
                            token_type:
                              type: Whitespace
                              characters: " "
                      expression:
                        FunctionCall:
                          prefix:
                            Name:
                              leading_trivia: []
                              token:
                                start_position:
                                  bytes: 351
                                  line: 7
                                  character: 57
                                end_position:
                                  bytes: 354
                                  line: 7
                                  character: 60
                                token_type:
                                  type: Identifier
                                  identifier: bar
                              trailing_trivia: []
                          suffixes:
                            - Index:
                                Dot:
                                  dot:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 354
                                        line: 7
                                        character: 60
                                      end_position:
                                        bytes: 355
                                        line: 7
                                        character: 61
                                      token_type:
                                        type: Symbol
                                        symbol: "."
                                    trailing_trivia: []
                                  name:
                                    leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 355
                                        line: 7
                                        character: 61
                                      end_position:
                                        bytes: 356
                                        line: 7
                                        character: 62
                                      token_type:
                                        type: Identifier
                                        identifier: x
                                    trailing_trivia: []
                            - Call:
                                AnonymousCall:
                                  Parentheses:
                                    parentheses:
                                      tokens:
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 356
                                              line: 7
                                              character: 62
                                            end_position:
                                              bytes: 357
                                              line: 7
                                              character: 63
                                            token_type:
                                              type: Symbol
                                              symbol: (
                                          trailing_trivia: []
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 357
                                              line: 7
                                              character: 63
                                            end_position:
                                              bytes: 358
                                              line: 7
                                              character: 64
                                            token_type:
                                              type: Symbol
                                              symbol: )
                                          trailing_trivia: []
                                    arguments:
                                      pairs: []
                            - Call:
                                AnonymousCall:
                                  Parentheses:
                                    parentheses:
                                      tokens:
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 358
                                              line: 7
                                              character: 64
                                            end_position:
                                              bytes: 359
                                              line: 7
                                              character: 65
                                            token_type:
                                              type: Symbol
                                              symbol: (
                                          trailing_trivia: []
                                        - leading_trivia: []
                                          token:
                                            start_position:
                                              bytes: 359
                                              line: 7
                                              character: 65
                                            end_position:
                                              bytes: 360
                                              line: 7
                                              character: 66
                                            token_type:
                                              type: Symbol
                                              symbol: )
                                          trailing_trivia:
                                            - start_position:
                                                bytes: 360
                                                line: 7
                                                character: 66
                                              end_position:
                                                bytes: 361
                                                line: 7
                                                character: 67
                                              token_type:
                                                type: Whitespace
                                                characters: " "
                                    arguments:
                                      pairs: []
                  else_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 361
                        line: 7
                        character: 67
                      end_position:
                        bytes: 365
                        line: 7
                        character: 71
                      token_type:
                        type: Symbol
                        symbol: else
                    trailing_trivia:
                      - start_position:
                          bytes: 365
                          line: 7
                          character: 71
                        end_position:
                          bytes: 366
                          line: 7
                          character: 72
                        token_type:
                          type: Whitespace
                          characters: " "
                  else_expression:
                    Number:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 366
                          line: 7
                          character: 72
                        end_position:
                          bytes: 367
                          line: 7
                          character: 73
                        token_type:
                          type: Number
                          text: "5"
                      trailing_trivia:
                        - start_position:
                            bytes: 367
                            line: 7
                            character: 73
                          end_position:
                            bytes: 368
                            line: 7
                            character: 73
                          token_type:
                            type: Whitespace
                            characters: "\n"
    - ~
  - - LocalAssignment:
        local_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 368
              line: 8
              character: 1
            end_position:
              bytes: 373
              line: 8
              character: 6
            token_type:
              type: Symbol
              symbol: local
          trailing_trivia:
            - start_position:
                bytes: 373
                line: 8
                character: 6
              end_position:
                bytes: 374
                line: 8
                character: 7
              token_type:
                type: Whitespace
                characters: " "
        name_list:
          pairs:
            - End:
                leading_trivia: []
                token:
                  start_position:
                    bytes: 374
                    line: 8
                    character: 7
                  end_position:
                    bytes: 375
                    line: 8
                    character: 8
                  token_type:
                    type: Identifier
                    identifier: d
                trailing_trivia:
                  - start_position:
                      bytes: 375
                      line: 8
                      character: 8
                    end_position:
                      bytes: 376
                      line: 8
                      character: 9
                    token_type:
                      type: Whitespace
                      characters: " "
        equal_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 376
              line: 8
              character: 9
            end_position:
              bytes: 377
              line: 8
              character: 10
            token_type:
              type: Symbol
              symbol: "="
          trailing_trivia:
            - start_position:
                bytes: 377
                line: 8
                character: 10
              end_position:
                bytes: 378
                line: 8
                character: 11
              token_type:
                type: Whitespace
                characters: " "
        expr_list:
          pairs:
            - End:
                IfExpression:
                  if_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 378
                        line: 8
                        character: 11
                      end_position:
                        bytes: 380
                        line: 8
                        character: 13
                      token_type:
                        type: Symbol
                        symbol: if
                    trailing_trivia:
                      - start_position:
                          bytes: 380
                          line: 8
                          character: 13
                        end_position:
                          bytes: 381
                          line: 8
                          character: 14
                        token_type:
                          type: Whitespace
                          characters: " "
                  condition:
                    Var:
                      Name:
                        leading_trivia: []
                        token:
                          start_position:
                            bytes: 381
                            line: 8
                            character: 14
                          end_position:
                            bytes: 384
                            line: 8
                            character: 17
                          token_type:
                            type: Identifier
                            identifier: foo
                        trailing_trivia:
                          - start_position:
                              bytes: 384
                              line: 8
                              character: 17
                            end_position:
                              bytes: 385
                              line: 8
                              character: 18
                            token_type:
                              type: Whitespace
                              characters: " "
                  then_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 385
                        line: 8
                        character: 18
                      end_position:
                        bytes: 389
                        line: 8
                        character: 22
                      token_type:
                        type: Symbol
                        symbol: then
                    trailing_trivia:
                      - start_position:
                          bytes: 389
                          line: 8
                          character: 22
                        end_position:
                          bytes: 390
                          line: 8
                          character: 23
                        token_type:
                          type: Whitespace
                          characters: " "
                  if_expression:
                    Number:
                      leading_trivia: []
                      token:
                        start_position:
                          bytes: 390
                          line: 8
                          character: 23
                        end_position:
                          bytes: 391
                          line: 8
                          character: 24
                        token_type:
                          type: Number
                          text: "5"
                      trailing_trivia:
                        - start_position:
                            bytes: 391
                            line: 8
                            character: 24
                          end_position:
                            bytes: 392
                            line: 8
                            character: 25
                          token_type:
                            type: Whitespace
                            characters: " "
                  else_if_expressions: ~
                  else_token:
                    leading_trivia: []
                    token:
                      start_position:
                        bytes: 392
                        line: 8
                        character: 25
                      end_position:
                        bytes: 396
                        line: 8
                        character: 29
                      token_type:
                        type: Symbol
                        symbol: else
                    trailing_trivia:
                      - start_position:
                          bytes: 396
                          line: 8
                          character: 29
                        end_position:
                          bytes: 397
                          line: 8
                          character: 30
                        token_type:
                          type: Whitespace
                          characters: " "
                  else_expression:
                    TypeAssertion:
                      expression:
                        Var:
                          Name:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 397
                                line: 8
                                character: 30
                              end_position:
                                bytes: 400
                                line: 8
                                character: 33
                              token_type:
                                type: Identifier
                                identifier: baz
                            trailing_trivia:
                              - start_position:
                                  bytes: 400
                                  line: 8
                                  character: 33
                                end_position:
                                  bytes: 401
                                  line: 8
                                  character: 34
                                token_type:
                                  type: Whitespace
                                  characters: " "
                      type_assertion:
                        assertion_op:
                          leading_trivia: []
                          token:
                            start_position:
                              bytes: 401
                              line: 8
                              character: 34
                            end_position:
                              bytes: 403
                              line: 8
                              character: 36
                            token_type:
                              type: Symbol
                              symbol: "::"
                          trailing_trivia:
                            - start_position:
                                bytes: 403
                                line: 8
                                character: 36
                              end_position:
                                bytes: 404
                                line: 8
                                character: 37
                              token_type:
                                type: Whitespace
                                characters: " "
                        cast_to:
                          Basic:
                            leading_trivia: []
                            token:
                              start_position:
                                bytes: 404
                                line: 8
                                character: 37
                              end_position:
                                bytes: 410
                                line: 8
                                character: 43
                              token_type:
                                type: Identifier
                                identifier: number
                            trailing_trivia:
                              - start_position:
                                  bytes: 410
                                  line: 8
                                  character: 43
                                end_position:
                                  bytes: 411
                                  line: 8
                                  character: 43
                                token_type:
                                  type: Whitespace
                                  characters: "\n"
    - ~
  - - If:
        if_token:
          leading_trivia:
            - start_position:
                bytes: 411
                line: 9
                character: 1
              end_position:
                bytes: 412
                line: 9
                character: 1
              token_type:
                type: Whitespace
                characters: "\n"
          token:
            start_position:
              bytes: 412
              line: 10
              character: 1
            end_position:
              bytes: 414
              line: 10
              character: 3
            token_type:
              type: Symbol
              symbol: if
          trailing_trivia:
            - start_position:
                bytes: 414
                line: 10
                character: 3
              end_position:
                bytes: 415
                line: 10
                character: 4
              token_type:
                type: Whitespace
                characters: " "
        condition:
          IfExpression:
            if_token:
              leading_trivia: []
              token:
                start_position:
                  bytes: 415
                  line: 10
                  character: 4
                end_position:
                  bytes: 417
                  line: 10
                  character: 6
                token_type:
                  type: Symbol
                  symbol: if
              trailing_trivia:
                - start_position:
                    bytes: 417
                    line: 10
                    character: 6
                  end_position:
                    bytes: 418
                    line: 10
                    character: 7
                  token_type:
                    type: Whitespace
                    characters: " "
            condition:
              Var:
                Name:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 418
                      line: 10
                      character: 7
                    end_position:
                      bytes: 421
                      line: 10
                      character: 10
                    token_type:
                      type: Identifier
                      identifier: foo
                  trailing_trivia:
                    - start_position:
                        bytes: 421
                        line: 10
                        character: 10
                      end_position:
                        bytes: 422
                        line: 10
                        character: 11
                      token_type:
                        type: Whitespace
                        characters: " "
            then_token:
              leading_trivia: []
              token:
                start_position:
                  bytes: 422
                  line: 10
                  character: 11
                end_position:
                  bytes: 426
                  line: 10
                  character: 15
                token_type:
                  type: Symbol
                  symbol: then
              trailing_trivia:
                - start_position:
                    bytes: 426
                    line: 10
                    character: 15
                  end_position:
                    bytes: 427
                    line: 10
                    character: 16
                  token_type:
                    type: Whitespace
                    characters: " "
            if_expression:
              Var:
                Name:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 427
                      line: 10
                      character: 16
                    end_position:
                      bytes: 430
                      line: 10
                      character: 19
                    token_type:
                      type: Identifier
                      identifier: bar
                  trailing_trivia:
                    - start_position:
                        bytes: 430
                        line: 10
                        character: 19
                      end_position:
                        bytes: 431
                        line: 10
                        character: 20
                      token_type:
                        type: Whitespace
                        characters: " "
            else_if_expressions: ~
            else_token:
              leading_trivia: []
              token:
                start_position:
                  bytes: 431
                  line: 10
                  character: 20
                end_position:
                  bytes: 435
                  line: 10
                  character: 24
                token_type:
                  type: Symbol
                  symbol: else
              trailing_trivia:
                - start_position:
                    bytes: 435
                    line: 10
                    character: 24
                  end_position:
                    bytes: 436
                    line: 10
                    character: 25
                  token_type:
                    type: Whitespace
                    characters: " "
            else_expression:
              Var:
                Name:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 436
                      line: 10
                      character: 25
                    end_position:
                      bytes: 439
                      line: 10
                      character: 28
                    token_type:
                      type: Identifier
                      identifier: baz
                  trailing_trivia:
                    - start_position:
                        bytes: 439
                        line: 10
                        character: 28
                      end_position:
                        bytes: 440
                        line: 10
                        character: 29
                      token_type:
                        type: Whitespace
                        characters: " "
        then_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 440
              line: 10
              character: 29
            end_position:
              bytes: 444
              line: 10
              character: 33
            token_type:
              type: Symbol
              symbol: then
          trailing_trivia:
            - start_position:
                bytes: 444
                line: 10
                character: 33
              end_position:
                bytes: 445
                line: 10
                character: 33
              token_type:
                type: Whitespace
                characters: "\n"
        block:
          stmts: []
        else_if: ~
        else_token: ~
        else: ~
        end_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 445
              line: 11
              character: 1
            end_position:
              bytes: 448
              line: 11
              character: 4
            token_type:
              type: Symbol
              symbol: end
          trailing_trivia: []
    - ~

