full_moon 2.2.0

A lossless Lua parser
Documentation
---
source: full-moon/tests/pass_cases.rs
expression: ast.nodes()
input_file: full-moon/tests/cases/pass/function-declaration-1

---
stmts:
  - - FunctionDeclaration:
        function_token:
          leading_trivia: []
          token:
            start_position:
              bytes: 0
              line: 1
              character: 1
            end_position:
              bytes: 8
              line: 1
              character: 9
            token_type:
              type: Symbol
              symbol: function
          trailing_trivia:
            - start_position:
                bytes: 8
                line: 1
                character: 9
              end_position:
                bytes: 9
                line: 1
                character: 10
              token_type:
                type: Whitespace
                characters: " "
        name:
          names:
            pairs:
              - End:
                  leading_trivia: []
                  token:
                    start_position:
                      bytes: 9
                      line: 1
                      character: 10
                    end_position:
                      bytes: 10
                      line: 1
                      character: 11
                    token_type:
                      type: Identifier
                      identifier: x
                  trailing_trivia: []
          colon_name: ~
        body:
          parameters_parentheses:
            tokens:
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 10
                    line: 1
                    character: 11
                  end_position:
                    bytes: 11
                    line: 1
                    character: 12
                  token_type:
                    type: Symbol
                    symbol: (
                trailing_trivia: []
              - leading_trivia: []
                token:
                  start_position:
                    bytes: 11
                    line: 1
                    character: 12
                  end_position:
                    bytes: 12
                    line: 1
                    character: 13
                  token_type:
                    type: Symbol
                    symbol: )
                trailing_trivia:
                  - start_position:
                      bytes: 12
                      line: 1
                      character: 13
                    end_position:
                      bytes: 13
                      line: 1
                      character: 13
                    token_type:
                      type: Whitespace
                      characters: "\n"
          parameters:
            pairs: []
          block:
            stmts:
              - - FunctionCall:
                    prefix:
                      Name:
                        leading_trivia:
                          - start_position:
                              bytes: 13
                              line: 2
                              character: 1
                            end_position:
                              bytes: 14
                              line: 2
                              character: 2
                            token_type:
                              type: Whitespace
                              characters: "\t"
                        token:
                          start_position:
                            bytes: 14
                            line: 2
                            character: 2
                          end_position:
                            bytes: 18
                            line: 2
                            character: 6
                          token_type:
                            type: Identifier
                            identifier: call
                        trailing_trivia: []
                    suffixes:
                      - Call:
                          AnonymousCall:
                            Parentheses:
                              parentheses:
                                tokens:
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 18
                                        line: 2
                                        character: 6
                                      end_position:
                                        bytes: 19
                                        line: 2
                                        character: 7
                                      token_type:
                                        type: Symbol
                                        symbol: (
                                    trailing_trivia: []
                                  - leading_trivia: []
                                    token:
                                      start_position:
                                        bytes: 19
                                        line: 2
                                        character: 7
                                      end_position:
                                        bytes: 20
                                        line: 2
                                        character: 8
                                      token_type:
                                        type: Symbol
                                        symbol: )
                                    trailing_trivia:
                                      - start_position:
                                          bytes: 20
                                          line: 2
                                          character: 8
                                        end_position:
                                          bytes: 21
                                          line: 2
                                          character: 8
                                        token_type:
                                          type: Whitespace
                                          characters: "\n"
                              arguments:
                                pairs: []
                - ~
          end_token:
            leading_trivia: []
            token:
              start_position:
                bytes: 21
                line: 3
                character: 1
              end_position:
                bytes: 24
                line: 3
                character: 4
              token_type:
                type: Symbol
                symbol: end
            trailing_trivia: []
    - ~