ra_ap_syntax 0.0.80

Comment and whitespace preserving parser for the Rust language
Documentation
SOURCE_FILE@0..134
  FN@0..133
    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..133
      STMT_LIST@9..133
        L_CURLY@9..10 "{"
        WHITESPACE@10..15 "\n    "
        EXPR_STMT@15..21
          CLOSURE_EXPR@15..20
            PARAM_LIST@15..17
              PIPE@15..16 "|"
              PIPE@16..17 "|"
            WHITESPACE@17..18 " "
            TUPLE_EXPR@18..20
              L_PAREN@18..19 "("
              R_PAREN@19..20 ")"
          SEMICOLON@20..21 ";"
        WHITESPACE@21..26 "\n    "
        EXPR_STMT@26..43
          CLOSURE_EXPR@26..42
            PARAM_LIST@26..28
              PIPE@26..27 "|"
              PIPE@27..28 "|"
            WHITESPACE@28..29 " "
            RET_TYPE@29..35
              THIN_ARROW@29..31 "->"
              WHITESPACE@31..32 " "
              PATH_TYPE@32..35
                PATH@32..35
                  PATH_SEGMENT@32..35
                    NAME_REF@32..35
                      IDENT@32..35 "i32"
            WHITESPACE@35..36 " "
            BLOCK_EXPR@36..42
              STMT_LIST@36..42
                L_CURLY@36..37 "{"
                WHITESPACE@37..38 " "
                LITERAL@38..40
                  INT_NUMBER@38..40 "92"
                WHITESPACE@40..41 " "
                R_CURLY@41..42 "}"
          SEMICOLON@42..43 ";"
        WHITESPACE@43..48 "\n    "
        EXPR_STMT@48..54
          CLOSURE_EXPR@48..53
            PARAM_LIST@48..51
              PIPE@48..49 "|"
              PARAM@49..50
                IDENT_PAT@49..50
                  NAME@49..50
                    IDENT@49..50 "x"
              PIPE@50..51 "|"
            WHITESPACE@51..52 " "
            PATH_EXPR@52..53
              PATH@52..53
                PATH_SEGMENT@52..53
                  NAME_REF@52..53
                    IDENT@52..53 "x"
          SEMICOLON@53..54 ";"
        WHITESPACE@54..59 "\n    "
        EXPR_STMT@59..76
          CLOSURE_EXPR@59..75
            MOVE_KW@59..63 "move"
            WHITESPACE@63..64 " "
            PARAM_LIST@64..73
              PIPE@64..65 "|"
              PARAM@65..71
                IDENT_PAT@65..66
                  NAME@65..66
                    IDENT@65..66 "x"
                COLON@66..67 ":"
                WHITESPACE@67..68 " "
                PATH_TYPE@68..71
                  PATH@68..71
                    PATH_SEGMENT@68..71
                      NAME_REF@68..71
                        IDENT@68..71 "i32"
              COMMA@71..72 ","
              PIPE@72..73 "|"
            WHITESPACE@73..74 " "
            PATH_EXPR@74..75
              PATH@74..75
                PATH_SEGMENT@74..75
                  NAME_REF@74..75
                    IDENT@74..75 "x"
          SEMICOLON@75..76 ";"
        WHITESPACE@76..81 "\n    "
        EXPR_STMT@81..93
          CLOSURE_EXPR@81..92
            ASYNC_KW@81..86 "async"
            WHITESPACE@86..87 " "
            PARAM_LIST@87..89
              PIPE@87..88 "|"
              PIPE@88..89 "|"
            WHITESPACE@89..90 " "
            BLOCK_EXPR@90..92
              STMT_LIST@90..92
                L_CURLY@90..91 "{"
                R_CURLY@91..92 "}"
          SEMICOLON@92..93 ";"
        WHITESPACE@93..98 "\n    "
        EXPR_STMT@98..109
          CLOSURE_EXPR@98..108
            MOVE_KW@98..102 "move"
            WHITESPACE@102..103 " "
            PARAM_LIST@103..105
              PIPE@103..104 "|"
              PIPE@104..105 "|"
            WHITESPACE@105..106 " "
            BLOCK_EXPR@106..108
              STMT_LIST@106..108
                L_CURLY@106..107 "{"
                R_CURLY@107..108 "}"
          SEMICOLON@108..109 ";"
        WHITESPACE@109..114 "\n    "
        EXPR_STMT@114..131
          CLOSURE_EXPR@114..130
            ASYNC_KW@114..119 "async"
            WHITESPACE@119..120 " "
            MOVE_KW@120..124 "move"
            WHITESPACE@124..125 " "
            PARAM_LIST@125..127
              PIPE@125..126 "|"
              PIPE@126..127 "|"
            WHITESPACE@127..128 " "
            BLOCK_EXPR@128..130
              STMT_LIST@128..130
                L_CURLY@128..129 "{"
                R_CURLY@129..130 "}"
          SEMICOLON@130..131 ";"
        WHITESPACE@131..132 "\n"
        R_CURLY@132..133 "}"
  WHITESPACE@133..134 "\n"