ra_ap_syntax 0.0.80

Comment and whitespace preserving parser for the Rust language
Documentation
SOURCE_FILE@0..89
  FN@0..88
    FN_KW@0..2 "fn"
    WHITESPACE@2..3 " "
    NAME@3..6
      IDENT@3..6 "foo"
    PARAM_LIST@6..8
      L_PAREN@6..7 "("
      R_PAREN@7..8 ")"
    WHITESPACE@8..9 " "
    BLOCK_EXPR@9..88
      STMT_LIST@9..88
        L_CURLY@9..10 "{"
        WHITESPACE@10..15 "\n    "
        LET_STMT@15..27
          LET_KW@15..18 "let"
          WHITESPACE@18..19 " "
          IDENT_PAT@19..20
            NAME@19..20
              IDENT@19..20 "x"
          WHITESPACE@20..21 " "
          EQ@21..22 "="
          WHITESPACE@22..23 " "
          RANGE_EXPR@23..26
            LITERAL@23..24
              INT_NUMBER@23..24 "1"
            DOT2@24..26 ".."
          SEMICOLON@26..27 ";"
        WHITESPACE@27..32 "\n    "
        EXPR_STMT@32..54
          MATCH_EXPR@32..53
            MATCH_KW@32..37 "match"
            WHITESPACE@37..38 " "
            RANGE_EXPR@38..41
              LITERAL@38..39
                INT_NUMBER@38..39 "1"
              DOT2@39..41 ".."
            WHITESPACE@41..42 " "
            MATCH_ARM_LIST@42..53
              L_CURLY@42..43 "{"
              WHITESPACE@43..44 " "
              MATCH_ARM@44..51
                WILDCARD_PAT@44..45
                  UNDERSCORE@44..45 "_"
                WHITESPACE@45..46 " "
                FAT_ARROW@46..48 "=>"
                WHITESPACE@48..49 " "
                TUPLE_EXPR@49..51
                  L_PAREN@49..50 "("
                  R_PAREN@50..51 ")"
              WHITESPACE@51..52 " "
              R_CURLY@52..53 "}"
          SEMICOLON@53..54 ";"
        WHITESPACE@54..59 "\n    "
        EXPR_STMT@59..86
          MATCH_EXPR@59..85
            MATCH_KW@59..64 "match"
            WHITESPACE@64..65 " "
            RANGE_EXPR@65..73
              METHOD_CALL_EXPR@65..70
                PATH_EXPR@65..66
                  PATH@65..66
                    PATH_SEGMENT@65..66
                      NAME_REF@65..66
                        IDENT@65..66 "a"
                DOT@66..67 "."
                NAME_REF@67..68
                  IDENT@67..68 "b"
                ARG_LIST@68..70
                  L_PAREN@68..69 "("
                  R_PAREN@69..70 ")"
              DOT2@70..72 ".."
              PATH_EXPR@72..73
                PATH@72..73
                  PATH_SEGMENT@72..73
                    NAME_REF@72..73
                      IDENT@72..73 "S"
            WHITESPACE@73..74 " "
            MATCH_ARM_LIST@74..85
              L_CURLY@74..75 "{"
              WHITESPACE@75..76 " "
              MATCH_ARM@76..83
                WILDCARD_PAT@76..77
                  UNDERSCORE@76..77 "_"
                WHITESPACE@77..78 " "
                FAT_ARROW@78..80 "=>"
                WHITESPACE@80..81 " "
                TUPLE_EXPR@81..83
                  L_PAREN@81..82 "("
                  R_PAREN@82..83 ")"
              WHITESPACE@83..84 " "
              R_CURLY@84..85 "}"
          SEMICOLON@85..86 ";"
        WHITESPACE@86..87 "\n"
        R_CURLY@87..88 "}"
  WHITESPACE@88..89 "\n"