SOURCE_FILE@0..389 FN@0..389 VISIBILITY@0..10 PUB_KW@0..3 L_PAREN@3..4 SUPER_KW@4..9 R_PAREN@9..10 WHITESPACE@10..11 FN_KW@11..13 WHITESPACE@13..14 NAME@14..21 IDENT@14..21 "process" GENERIC_PARAM_LIST@21..38 L_ANGLE@21..22 LIFETIME_PARAM@22..24 LIFETIME@22..24 "'a" COMMA@24..25 WHITESPACE@25..26 TYPE_PARAM@26..37 NAME@26..27 IDENT@26..27 "S" COLON@27..28 WHITESPACE@28..29 PATH@29..37 PATH_SEGMENT@29..37 NAME_REF@29..33 IDENT@29..33 "Sink" GENERIC_ARG_LIST@33..37 L_ANGLE@33..34 LIFETIME_ARG@34..36 LIFETIME@34..36 "'a" R_ANGLE@36..37 R_ANGLE@37..38 PARAM_LIST@38..93 L_PAREN@38..39 PARAM@39..54 IDENT_PAT@39..46 NAME@39..46 IDENT@39..46 "builder" COLON@46..47 WHITESPACE@47..48 REF_TYPE@48..54 AMP@48..49 MUT_KW@49..52 WHITESPACE@52..53 PATH_TYPE@53..54 PATH@53..54 PATH_SEGMENT@53..54 NAME_REF@53..54 IDENT@53..54 "S" COMMA@54..55 WHITESPACE@55..56 PARAM@56..72 IDENT_PAT@56..62 NAME@56..62 IDENT@56..62 "tokens" COLON@62..63 WHITESPACE@63..64 REF_TYPE@64..72 AMP@64..65 SLICE_TYPE@65..72 L_BRACK@65..66 PATH_TYPE@66..71 PATH@66..71 PATH_SEGMENT@66..71 NAME_REF@66..71 IDENT@66..71 "Token" R_BRACK@71..72 COMMA@72..73 WHITESPACE@73..74 PARAM@74..92 IDENT_PAT@74..80 NAME@74..80 IDENT@74..80 "events" COLON@80..81 WHITESPACE@81..82 PATH_TYPE@82..92 PATH@82..92 PATH_SEGMENT@82..92 NAME_REF@82..85 IDENT@82..85 "Vec" GENERIC_ARG_LIST@85..92 L_ANGLE@85..86 TYPE_ARG@86..91 PATH_TYPE@86..91 PATH@86..91 PATH_SEGMENT@86..91 NAME_REF@86..91 IDENT@86..91 "Event" R_ANGLE@91..92 R_PAREN@92..93 WHITESPACE@93..94 BLOCK_EXPR@94..389 L_CURLY@94..95 WHITESPACE@95..100 LET_STMT@100..125 LET_KW@100..103 WHITESPACE@103..104 IDENT_PAT@104..120 MUT_KW@104..107 WHITESPACE@107..108 NAME@108..120 IDENT@108..120 "next_tok_idx" WHITESPACE@120..121 EQ@121..122 WHITESPACE@122..123 LITERAL@123..124 INT_NUMBER@123..124 "0" SEMICOLON@124..125 WHITESPACE@125..130 LET_STMT@130..389 LET_KW@130..133 WHITESPACE@133..134 IDENT_PAT@134..140 NAME@134..140 IDENT@134..140 "eat_ws" WHITESPACE@140..141 EQ@141..142 WHITESPACE@142..143 CLOSURE_EXPR@143..389 PARAM_LIST@143..388 PIPE@143..144 PARAM@144..159 IDENT_PAT@144..147 NAME@144..147 IDENT@144..147 "idx" COLON@147..148 WHITESPACE@148..149 REF_TYPE@149..159 AMP@149..150 MUT_KW@150..153 WHITESPACE@153..154 PATH_TYPE@154..159 PATH@154..159 PATH_SEGMENT@154..159 NAME_REF@154..159 IDENT@154..159 "usize" COMMA@159..160 WHITESPACE@160..161 PARAM@161..167 REF_PAT@161..167 AMP@161..162 MUT_KW@162..165 WHITESPACE@165..166 err: `expected pattern` ERROR@166..167 PIPE@166..167 err: `expected COMMA` WHITESPACE@167..168 err: `expected pattern` PARAM@168..169 ERROR@168..169 L_CURLY@168..169 err: `expected COMMA` WHITESPACE@169..178 err: `expected pattern` PARAM@178..183 ERROR@178..183 WHILE_KW@178..183 err: `expected COMMA` WHITESPACE@183..184 err: `expected pattern` PARAM@184..187 ERROR@184..187 LET_KW@184..187 err: `expected COMMA` WHITESPACE@187..188 PARAM@188..199 TUPLE_STRUCT_PAT@188..199 PATH@188..192 PATH_SEGMENT@188..192 NAME_REF@188..192 IDENT@188..192 "Some" L_PAREN@192..193 IDENT_PAT@193..198 NAME@193..198 IDENT@193..198 "token" R_PAREN@198..199 err: `expected COMMA` WHITESPACE@199..200 err: `expected pattern` PARAM@200..201 ERROR@200..201 EQ@200..201 err: `expected COMMA` WHITESPACE@201..202 PARAM@202..208 IDENT_PAT@202..208 NAME@202..208 IDENT@202..208 "tokens" err: `expected COMMA` err: `expected pattern` PARAM@208..209 ERROR@208..209 DOT@208..209 err: `expected COMMA` PARAM@209..218 TUPLE_STRUCT_PAT@209..218 PATH@209..212 PATH_SEGMENT@209..212 NAME_REF@209..212 IDENT@209..212 "get" L_PAREN@212..213 err: `expected pattern` ERROR@213..214 STAR@213..214 err: `expected COMMA` IDENT_PAT@214..217 NAME@214..217 IDENT@214..217 "idx" R_PAREN@217..218 err: `expected COMMA` WHITESPACE@218..219 err: `expected pattern` PARAM@219..220 ERROR@219..220 L_CURLY@219..220 err: `expected COMMA` WHITESPACE@220..233 err: `expected pattern` PARAM@233..235 ERROR@233..235 IF_KW@233..235 err: `expected COMMA` WHITESPACE@235..236 err: `expected pattern` PARAM@236..237 ERROR@236..237 BANG@236..237 err: `expected COMMA` PARAM@237..242 IDENT_PAT@237..242 NAME@237..242 IDENT@237..242 "token" err: `expected COMMA` err: `expected pattern` PARAM@242..243 ERROR@242..243 DOT@242..243 err: `expected COMMA` PARAM@243..247 IDENT_PAT@243..247 NAME@243..247 IDENT@243..247 "kind" err: `expected COMMA` err: `expected pattern` PARAM@247..248 ERROR@247..248 DOT@247..248 err: `expected COMMA` PARAM@248..259 TUPLE_STRUCT_PAT@248..259 PATH@248..257 PATH_SEGMENT@248..257 NAME_REF@248..257 IDENT@248..257 "is_trivia" L_PAREN@257..258 R_PAREN@258..259 err: `expected COMMA` WHITESPACE@259..260 err: `expected pattern` PARAM@260..261 ERROR@260..261 L_CURLY@260..261 err: `expected COMMA` WHITESPACE@261..278 PARAM@278..283 IDENT_PAT@278..283 NAME@278..283 IDENT@278..283 "break" err: `expected COMMA` err: `expected pattern` PARAM@283..284 ERROR@283..284 SEMICOLON@283..284 err: `expected COMMA` WHITESPACE@284..297 err: `expected pattern` PARAM@297..298 ERROR@297..298 R_CURLY@297..298 err: `expected COMMA` WHITESPACE@298..311 PARAM@311..318 IDENT_PAT@311..318 NAME@311..318 IDENT@311..318 "builder" err: `expected COMMA` err: `expected pattern` PARAM@318..319 ERROR@318..319 DOT@318..319 err: `expected COMMA` PARAM@319..346 TUPLE_STRUCT_PAT@319..346 PATH@319..323 PATH_SEGMENT@319..323 NAME_REF@319..323 IDENT@319..323 "leaf" L_PAREN@323..324 IDENT_PAT@324..329 NAME@324..329 IDENT@324..329 "token" err: `expected COMMA` err: `expected pattern` ERROR@329..330 DOT@329..330 err: `expected COMMA` IDENT_PAT@330..334 NAME@330..334 IDENT@330..334 "kind" COMMA@334..335 WHITESPACE@335..336 IDENT_PAT@336..341 NAME@336..341 IDENT@336..341 "token" err: `expected COMMA` err: `expected pattern` ERROR@341..342 DOT@341..342 err: `expected COMMA` IDENT_PAT@342..345 NAME@342..345 IDENT@342..345 "len" R_PAREN@345..346 err: `expected COMMA` err: `expected pattern` PARAM@346..347 ERROR@346..347 SEMICOLON@346..347 err: `expected COMMA` WHITESPACE@347..360 err: `expected pattern` PARAM@360..361 ERROR@360..361 STAR@360..361 err: `expected COMMA` PARAM@361..364 IDENT_PAT@361..364 NAME@361..364 IDENT@361..364 "idx" err: `expected COMMA` WHITESPACE@364..365 err: `expected pattern` PARAM@365..366 ERROR@365..366 PLUS@365..366 err: `expected COMMA` err: `expected pattern` PARAM@366..367 ERROR@366..367 EQ@366..367 err: `expected COMMA` WHITESPACE@367..368 PARAM@368..369 LITERAL@368..369 INT_NUMBER@368..369 "1" err: `expected COMMA` WHITESPACE@369..378 err: `expected pattern` PARAM@378..379 ERROR@378..379 R_CURLY@378..379 err: `expected COMMA` WHITESPACE@379..384 err: `expected pattern` PARAM@384..385 ERROR@384..385 R_CURLY@384..385 err: `expected COMMA` err: `expected pattern` PARAM@385..386 ERROR@385..386 SEMICOLON@385..386 err: `expected COMMA` WHITESPACE@386..387 err: `expected pattern` PARAM@387..388 ERROR@387..388 R_CURLY@387..388 err: `expected COMMA` err: `expected PIPE` WHITESPACE@388..389 err: `expected expression` err: `expected SEMI` err: `expected R_CURLY` ERROR@389..389