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"