SOURCE_FILE@[0; 82) FN_DEF@[0; 81) 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@[9; 81) L_CURLY@[9; 10) "{" WHITESPACE@[10; 15) "\n " EXPR_STMT@[15; 26) ATTR@[15; 19) POUND@[15; 16) "#" TOKEN_TREE@[16; 19) L_BRACK@[16; 17) "[" IDENT@[17; 18) "A" R_BRACK@[18; 19) "]" WHITESPACE@[19; 20) " " CALL_EXPR@[20; 25) PATH_EXPR@[20; 23) PATH@[20; 23) PATH_SEGMENT@[20; 23) NAME_REF@[20; 23) IDENT@[20; 23) "foo" ARG_LIST@[23; 25) L_PAREN@[23; 24) "(" R_PAREN@[24; 25) ")" SEMI@[25; 26) ";" WHITESPACE@[26; 31) "\n " EXPR_STMT@[31; 42) ATTR@[31; 35) POUND@[31; 32) "#" TOKEN_TREE@[32; 35) L_BRACK@[32; 33) "[" IDENT@[33; 34) "B" R_BRACK@[34; 35) "]" WHITESPACE@[35; 36) " " MACRO_CALL@[36; 42) PATH@[36; 39) PATH_SEGMENT@[36; 39) NAME_REF@[36; 39) IDENT@[36; 39) "bar" EXCL@[39; 40) "!" TOKEN_TREE@[40; 42) L_CURLY@[40; 41) "{" R_CURLY@[41; 42) "}" WHITESPACE@[42; 47) "\n " EXPR_STMT@[47; 59) ATTR@[47; 51) POUND@[47; 48) "#" TOKEN_TREE@[48; 51) L_BRACK@[48; 49) "[" IDENT@[49; 50) "C" R_BRACK@[50; 51) "]" WHITESPACE@[51; 52) " " ATTR@[52; 56) POUND@[52; 53) "#" TOKEN_TREE@[53; 56) L_BRACK@[53; 54) "[" IDENT@[54; 55) "D" R_BRACK@[55; 56) "]" WHITESPACE@[56; 57) " " BLOCK_EXPR@[57; 59) BLOCK@[57; 59) L_CURLY@[57; 58) "{" R_CURLY@[58; 59) "}" WHITESPACE@[59; 64) "\n " EXPR_STMT@[64; 79) ATTR@[64; 68) POUND@[64; 65) "#" TOKEN_TREE@[65; 68) L_BRACK@[65; 66) "[" IDENT@[66; 67) "D" R_BRACK@[67; 68) "]" WHITESPACE@[68; 69) " " RETURN_EXPR@[69; 78) RETURN_KW@[69; 75) "return" WHITESPACE@[75; 76) " " TUPLE_EXPR@[76; 78) L_PAREN@[76; 77) "(" R_PAREN@[77; 78) ")" SEMI@[78; 79) ";" WHITESPACE@[79; 80) "\n" R_CURLY@[80; 81) "}" WHITESPACE@[81; 82) "\n"