ra_ap_syntax 0.0.4

Comment and whitespace preserving parser for the Rust language
Documentation
SOURCE_FILE@0..93
  FN@0..92
    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..92
      L_CURLY@9..10 "{"
      WHITESPACE@10..15 "\n    "
      EXPR_STMT@15..29
        WHILE_EXPR@15..28
          WHILE_KW@15..20 "while"
          WHITESPACE@20..21 " "
          CONDITION@21..25
            LITERAL@21..25
              TRUE_KW@21..25 "true"
          WHITESPACE@25..26 " "
          BLOCK_EXPR@26..28
            L_CURLY@26..27 "{"
            R_CURLY@27..28 "}"
        SEMICOLON@28..29 ";"
      WHITESPACE@29..34 "\n    "
      EXPR_STMT@34..67
        WHILE_EXPR@34..66
          WHILE_KW@34..39 "while"
          WHITESPACE@39..40 " "
          CONDITION@40..63
            LET_KW@40..43 "let"
            WHITESPACE@43..44 " "
            TUPLE_STRUCT_PAT@44..51
              PATH@44..48
                PATH_SEGMENT@44..48
                  NAME_REF@44..48
                    IDENT@44..48 "Some"
              L_PAREN@48..49 "("
              IDENT_PAT@49..50
                NAME@49..50
                  IDENT@49..50 "x"
              R_PAREN@50..51 ")"
            WHITESPACE@51..52 " "
            EQ@52..53 "="
            WHITESPACE@53..54 " "
            METHOD_CALL_EXPR@54..63
              PATH_EXPR@54..56
                PATH@54..56
                  PATH_SEGMENT@54..56
                    NAME_REF@54..56
                      IDENT@54..56 "it"
              DOT@56..57 "."
              NAME_REF@57..61
                IDENT@57..61 "next"
              ARG_LIST@61..63
                L_PAREN@61..62 "("
                R_PAREN@62..63 ")"
          WHITESPACE@63..64 " "
          BLOCK_EXPR@64..66
            L_CURLY@64..65 "{"
            R_CURLY@65..66 "}"
        SEMICOLON@66..67 ";"
      WHITESPACE@67..72 "\n    "
      EXPR_STMT@72..90
        WHILE_EXPR@72..89
          WHILE_KW@72..77 "while"
          WHITESPACE@77..78 " "
          CONDITION@78..86
            BLOCK_EXPR@78..86
              L_CURLY@78..79 "{"
              WHITESPACE@79..80 " "
              LITERAL@80..84
                TRUE_KW@80..84 "true"
              WHITESPACE@84..85 " "
              R_CURLY@85..86 "}"
          WHITESPACE@86..87 " "
          BLOCK_EXPR@87..89
            L_CURLY@87..88 "{"
            R_CURLY@88..89 "}"
        SEMICOLON@89..90 ";"
      WHITESPACE@90..91 "\n"
      R_CURLY@91..92 "}"
  WHITESPACE@92..93 "\n"