SOURCE_FILE@[0; 349) MACRO_CALL@[0; 41) PATH@[0; 5) PATH_SEGMENT@[0; 5) NAME_REF@[0; 5) IDENT@[0; 5) "macro" err: `expected EXCL` WHITESPACE@[5; 6) " " NAME@[6; 21) IDENT@[6; 21) "parse_use_trees" TOKEN_TREE@[21; 41) L_PAREN@[21; 22) "(" DOLLAR@[22; 23) "$" TOKEN_TREE@[23; 32) L_PAREN@[23; 24) "(" DOLLAR@[24; 25) "$" IDENT@[25; 26) "s" COLON@[26; 27) ":" IDENT@[27; 31) "expr" R_PAREN@[31; 32) ")" COMMA@[32; 33) "," STAR@[33; 34) "*" WHITESPACE@[34; 35) " " DOLLAR@[35; 36) "$" TOKEN_TREE@[36; 39) L_PAREN@[36; 37) "(" COMMA@[37; 38) "," R_PAREN@[38; 39) ")" STAR@[39; 40) "*" R_PAREN@[40; 41) ")" err: `expected SEMI` WHITESPACE@[41; 42) " " err: `expected an item` ERROR@[42; 93) L_CURLY@[42; 43) "{" WHITESPACE@[43; 48) "\n " MACRO_CALL@[48; 91) PATH@[48; 51) PATH_SEGMENT@[48; 51) NAME_REF@[48; 51) IDENT@[48; 51) "vec" EXCL@[51; 52) "!" TOKEN_TREE@[52; 91) L_BRACK@[52; 53) "[" WHITESPACE@[53; 62) "\n " DOLLAR@[62; 63) "$" TOKEN_TREE@[63; 84) L_PAREN@[63; 64) "(" IDENT@[64; 78) "parse_use_tree" TOKEN_TREE@[78; 82) L_PAREN@[78; 79) "(" DOLLAR@[79; 80) "$" IDENT@[80; 81) "s" R_PAREN@[81; 82) ")" COMMA@[82; 83) "," R_PAREN@[83; 84) ")" STAR@[84; 85) "*" WHITESPACE@[85; 90) "\n " R_BRACK@[90; 91) "]" WHITESPACE@[91; 92) "\n" R_CURLY@[92; 93) "}" WHITESPACE@[93; 95) "\n\n" FN_DEF@[95; 348) ATTR@[95; 102) POUND@[95; 96) "#" TOKEN_TREE@[96; 102) L_BRACK@[96; 97) "[" IDENT@[97; 101) "test" R_BRACK@[101; 102) "]" WHITESPACE@[102; 103) "\n" FN_KW@[103; 105) "fn" WHITESPACE@[105; 106) " " NAME@[106; 125) IDENT@[106; 125) "test_use_tree_merge" PARAM_LIST@[125; 127) L_PAREN@[125; 126) "(" R_PAREN@[126; 127) ")" WHITESPACE@[127; 128) " " BLOCK@[128; 348) L_CURLY@[128; 129) "{" WHITESPACE@[129; 134) "\n " EXPR_STMT@[134; 139) PATH_EXPR@[134; 139) PATH@[134; 139) PATH_SEGMENT@[134; 139) NAME_REF@[134; 139) IDENT@[134; 139) "macro" err: `expected SEMI` WHITESPACE@[139; 140) " " EXPR_STMT@[140; 154) CALL_EXPR@[140; 154) PATH_EXPR@[140; 150) PATH@[140; 150) PATH_SEGMENT@[140; 150) NAME_REF@[140; 150) IDENT@[140; 150) "test_merge" ARG_LIST@[150; 154) L_PAREN@[150; 151) "(" ARRAY_EXPR@[151; 154) L_BRACK@[151; 152) "[" err: `expected expression` ERROR@[152; 153) DOLLAR@[152; 153) "$" err: `expected COMMA` PAREN_EXPR@[153; 154) L_PAREN@[153; 154) "(" err: `expected expression` err: `expected R_PAREN` err: `expected COMMA` err: `expected expression` err: `expected R_BRACK` err: `expected COMMA` err: `expected SEMI` err: `expected expression` EXPR_STMT@[154; 155) ERROR@[154; 155) DOLLAR@[154; 155) "$" err: `expected SEMI` EXPR_STMT@[155; 160) PATH_EXPR@[155; 160) PATH@[155; 160) PATH_SEGMENT@[155; 160) NAME_REF@[155; 160) IDENT@[155; 160) "input" err: `expected SEMI` err: `expected expression` EXPR_STMT@[160; 161) ERROR@[160; 161) COLON@[160; 161) ":" err: `expected SEMI` EXPR_STMT@[161; 165) PATH_EXPR@[161; 165) PATH@[161; 165) PATH_SEGMENT@[161; 165) NAME_REF@[161; 165) IDENT@[161; 165) "expr" err: `expected SEMI` err: `expected expression` EXPR_STMT@[165; 166) ERROR@[165; 166) R_PAREN@[165; 166) ")" err: `expected SEMI` err: `expected expression` EXPR_STMT@[166; 167) ERROR@[166; 167) COMMA@[166; 167) "," err: `expected SEMI` EXPR_STMT@[167; 170) PREFIX_EXPR@[167; 170) STAR@[167; 168) "*" WHITESPACE@[168; 169) " " err: `expected expression` ERROR@[169; 170) DOLLAR@[169; 170) "$" err: `expected SEMI` EXPR_STMT@[170; 171) PAREN_EXPR@[170; 171) L_PAREN@[170; 171) "(" err: `expected expression` err: `expected R_PAREN` err: `expected SEMI` err: `expected expression` EXPR_STMT@[171; 172) ERROR@[171; 172) COMMA@[171; 172) "," err: `expected SEMI` err: `expected expression` EXPR_STMT@[172; 173) ERROR@[172; 173) R_PAREN@[172; 173) ")" err: `expected SEMI` EXPR_STMT@[173; 175) PREFIX_EXPR@[173; 175) STAR@[173; 174) "*" err: `expected expression` ERROR@[174; 175) R_BRACK@[174; 175) "]" err: `expected SEMI` err: `expected expression` EXPR_STMT@[175; 176) ERROR@[175; 176) COMMA@[175; 176) "," err: `expected SEMI` WHITESPACE@[176; 177) " " EXPR_STMT@[177; 180) ARRAY_EXPR@[177; 180) L_BRACK@[177; 178) "[" err: `expected expression` ERROR@[178; 179) DOLLAR@[178; 179) "$" err: `expected COMMA` PAREN_EXPR@[179; 180) L_PAREN@[179; 180) "(" err: `expected expression` err: `expected R_PAREN` err: `expected COMMA` err: `expected expression` err: `expected R_BRACK` err: `expected SEMI` err: `expected expression` EXPR_STMT@[180; 181) ERROR@[180; 181) DOLLAR@[180; 181) "$" err: `expected SEMI` EXPR_STMT@[181; 187) PATH_EXPR@[181; 187) PATH@[181; 187) PATH_SEGMENT@[181; 187) NAME_REF@[181; 187) IDENT@[181; 187) "output" err: `expected SEMI` err: `expected expression` EXPR_STMT@[187; 188) ERROR@[187; 188) COLON@[187; 188) ":" err: `expected SEMI` EXPR_STMT@[188; 192) PATH_EXPR@[188; 192) PATH@[188; 192) PATH_SEGMENT@[188; 192) NAME_REF@[188; 192) IDENT@[188; 192) "expr" err: `expected SEMI` err: `expected expression` EXPR_STMT@[192; 193) ERROR@[192; 193) R_PAREN@[192; 193) ")" err: `expected SEMI` err: `expected expression` EXPR_STMT@[193; 194) ERROR@[193; 194) COMMA@[193; 194) "," err: `expected SEMI` EXPR_STMT@[194; 197) PREFIX_EXPR@[194; 197) STAR@[194; 195) "*" WHITESPACE@[195; 196) " " err: `expected expression` ERROR@[196; 197) DOLLAR@[196; 197) "$" err: `expected SEMI` EXPR_STMT@[197; 198) PAREN_EXPR@[197; 198) L_PAREN@[197; 198) "(" err: `expected expression` err: `expected R_PAREN` err: `expected SEMI` err: `expected expression` EXPR_STMT@[198; 199) ERROR@[198; 199) COMMA@[198; 199) "," err: `expected SEMI` err: `expected expression` EXPR_STMT@[199; 200) ERROR@[199; 200) R_PAREN@[199; 200) ")" err: `expected SEMI` EXPR_STMT@[200; 202) PREFIX_EXPR@[200; 202) STAR@[200; 201) "*" err: `expected expression` ERROR@[201; 202) R_BRACK@[201; 202) "]" err: `expected SEMI` err: `expected expression` EXPR_STMT@[202; 203) ERROR@[202; 203) R_PAREN@[202; 203) ")" err: `expected SEMI` WHITESPACE@[203; 204) " " BLOCK_EXPR@[204; 346) BLOCK@[204; 346) L_CURLY@[204; 205) "{" WHITESPACE@[205; 214) "\n " EXPR_STMT@[214; 340) MACRO_CALL@[214; 339) PATH@[214; 223) PATH_SEGMENT@[214; 223) NAME_REF@[214; 223) IDENT@[214; 223) "assert_eq" EXCL@[223; 224) "!" TOKEN_TREE@[224; 339) L_PAREN@[224; 225) "(" WHITESPACE@[225; 238) "\n " IDENT@[238; 253) "merge_use_trees" TOKEN_TREE@[253; 284) L_PAREN@[253; 254) "(" IDENT@[254; 269) "parse_use_trees" EXCL@[269; 270) "!" TOKEN_TREE@[270; 283) L_PAREN@[270; 271) "(" DOLLAR@[271; 272) "$" TOKEN_TREE@[272; 281) L_PAREN@[272; 273) "(" DOLLAR@[273; 274) "$" IDENT@[274; 279) "input" COMMA@[279; 280) "," R_PAREN@[280; 281) ")" STAR@[281; 282) "*" R_PAREN@[282; 283) ")" R_PAREN@[283; 284) ")" COMMA@[284; 285) "," WHITESPACE@[285; 298) "\n " IDENT@[298; 313) "parse_use_trees" EXCL@[313; 314) "!" TOKEN_TREE@[314; 328) L_PAREN@[314; 315) "(" DOLLAR@[315; 316) "$" TOKEN_TREE@[316; 326) L_PAREN@[316; 317) "(" DOLLAR@[317; 318) "$" IDENT@[318; 324) "output" COMMA@[324; 325) "," R_PAREN@[325; 326) ")" STAR@[326; 327) "*" R_PAREN@[327; 328) ")" COMMA@[328; 329) "," WHITESPACE@[329; 338) "\n " R_PAREN@[338; 339) ")" SEMI@[339; 340) ";" WHITESPACE@[340; 345) "\n " R_CURLY@[345; 346) "}" WHITESPACE@[346; 347) "\n" R_CURLY@[347; 348) "}" WHITESPACE@[348; 349) "\n"