ra_ap_syntax 0.0.83

Comment and whitespace preserving parser for the Rust language
Documentation
SOURCE_FILE@0..102
  FN@0..101
    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..101
      STMT_LIST@9..101
        L_CURLY@9..10 "{"
        WHITESPACE@10..15 "\n    "
        LOOP_EXPR@15..99
          LOOP_KW@15..19 "loop"
          WHITESPACE@19..20 " "
          BLOCK_EXPR@20..99
            STMT_LIST@20..99
              L_CURLY@20..21 "{"
              WHITESPACE@21..30 "\n        "
              EXPR_STMT@30..36
                BREAK_EXPR@30..35
                  BREAK_KW@30..35 "break"
                SEMICOLON@35..36 ";"
              WHITESPACE@36..45 "\n        "
              EXPR_STMT@45..54
                BREAK_EXPR@45..53
                  BREAK_KW@45..50 "break"
                  WHITESPACE@50..51 " "
                  LIFETIME@51..53
                    LIFETIME_IDENT@51..53 "'l"
                SEMICOLON@53..54 ";"
              WHITESPACE@54..63 "\n        "
              EXPR_STMT@63..72
                BREAK_EXPR@63..71
                  BREAK_KW@63..68 "break"
                  WHITESPACE@68..69 " "
                  LITERAL@69..71
                    INT_NUMBER@69..71 "92"
                SEMICOLON@71..72 ";"
              WHITESPACE@72..81 "\n        "
              EXPR_STMT@81..93
                BREAK_EXPR@81..92
                  BREAK_KW@81..86 "break"
                  WHITESPACE@86..87 " "
                  LIFETIME@87..89
                    LIFETIME_IDENT@87..89 "'l"
                  WHITESPACE@89..90 " "
                  LITERAL@90..92
                    INT_NUMBER@90..92 "92"
                SEMICOLON@92..93 ";"
              WHITESPACE@93..98 "\n    "
              R_CURLY@98..99 "}"
        WHITESPACE@99..100 "\n"
        R_CURLY@100..101 "}"
  WHITESPACE@101..102 "\n"