mun_syntax 0.4.0

Parsing functionality for the Mun programming language
Documentation
---
source: crates/mun_syntax/src/tests/parser.rs
expression: "fn main() {\n    let a = [1,2,3,]\n    let a = []\n    let a = [call(123)]\n    let a = [Struct { }, Struct { }]\n}"
---
SOURCE_FILE@0..110
  FUNCTION_DEF@0..110
    FN_KW@0..2 "fn"
    WHITESPACE@2..3 " "
    NAME@3..7
      IDENT@3..7 "main"
    PARAM_LIST@7..9
      L_PAREN@7..8 "("
      R_PAREN@8..9 ")"
    WHITESPACE@9..10 " "
    BLOCK_EXPR@10..110
      L_CURLY@10..11 "{"
      WHITESPACE@11..16 "\n    "
      LET_STMT@16..32
        LET_KW@16..19 "let"
        WHITESPACE@19..20 " "
        BIND_PAT@20..21
          NAME@20..21
            IDENT@20..21 "a"
        WHITESPACE@21..22 " "
        EQ@22..23 "="
        WHITESPACE@23..24 " "
        ARRAY_EXPR@24..32
          L_BRACKET@24..25 "["
          LITERAL@25..26
            INT_NUMBER@25..26 "1"
          COMMA@26..27 ","
          LITERAL@27..28
            INT_NUMBER@27..28 "2"
          COMMA@28..29 ","
          LITERAL@29..30
            INT_NUMBER@29..30 "3"
          COMMA@30..31 ","
          R_BRACKET@31..32 "]"
      WHITESPACE@32..37 "\n    "
      LET_STMT@37..47
        LET_KW@37..40 "let"
        WHITESPACE@40..41 " "
        BIND_PAT@41..42
          NAME@41..42
            IDENT@41..42 "a"
        WHITESPACE@42..43 " "
        EQ@43..44 "="
        WHITESPACE@44..45 " "
        ARRAY_EXPR@45..47
          L_BRACKET@45..46 "["
          R_BRACKET@46..47 "]"
      WHITESPACE@47..52 "\n    "
      LET_STMT@52..71
        LET_KW@52..55 "let"
        WHITESPACE@55..56 " "
        BIND_PAT@56..57
          NAME@56..57
            IDENT@56..57 "a"
        WHITESPACE@57..58 " "
        EQ@58..59 "="
        WHITESPACE@59..60 " "
        ARRAY_EXPR@60..71
          L_BRACKET@60..61 "["
          CALL_EXPR@61..70
            PATH_EXPR@61..65
              PATH@61..65
                PATH_SEGMENT@61..65
                  NAME_REF@61..65
                    IDENT@61..65 "call"
            ARG_LIST@65..70
              L_PAREN@65..66 "("
              LITERAL@66..69
                INT_NUMBER@66..69 "123"
              R_PAREN@69..70 ")"
          R_BRACKET@70..71 "]"
      WHITESPACE@71..76 "\n    "
      LET_STMT@76..108
        LET_KW@76..79 "let"
        WHITESPACE@79..80 " "
        BIND_PAT@80..81
          NAME@80..81
            IDENT@80..81 "a"
        WHITESPACE@81..82 " "
        EQ@82..83 "="
        WHITESPACE@83..84 " "
        ARRAY_EXPR@84..108
          L_BRACKET@84..85 "["
          RECORD_LIT@85..95
            PATH_TYPE@85..91
              PATH@85..91
                PATH_SEGMENT@85..91
                  NAME_REF@85..91
                    IDENT@85..91 "Struct"
            WHITESPACE@91..92 " "
            RECORD_FIELD_LIST@92..95
              L_CURLY@92..93 "{"
              WHITESPACE@93..94 " "
              R_CURLY@94..95 "}"
          COMMA@95..96 ","
          WHITESPACE@96..97 " "
          RECORD_LIT@97..107
            PATH_TYPE@97..103
              PATH@97..103
                PATH_SEGMENT@97..103
                  NAME_REF@97..103
                    IDENT@97..103 "Struct"
            WHITESPACE@103..104 " "
            RECORD_FIELD_LIST@104..107
              L_CURLY@104..105 "{"
              WHITESPACE@105..106 " "
              R_CURLY@106..107 "}"
          R_BRACKET@107..108 "]"
      WHITESPACE@108..109 "\n"
      R_CURLY@109..110 "}"