From 55ebe449c98a2e96e677e68b54b5c0e5496bc534 Mon Sep 17 00:00:00 2001 From: DJMcNab <36049421+DJMcNab@users.noreply.github.com> Date: Thu, 20 Dec 2018 19:46:03 +0000 Subject: Fix parsing of contextual_keyword union --- crates/ra_syntax/src/grammar/items.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ra_syntax/src/grammar/items.rs b/crates/ra_syntax/src/grammar/items.rs index b646dd070..aa5fe0777 100644 --- a/crates/ra_syntax/src/grammar/items.rs +++ b/crates/ra_syntax/src/grammar/items.rs @@ -202,7 +202,7 @@ fn items_without_modifiers(p: &mut Parser) -> Option { } STRUCT_DEF } - IDENT if p.at_contextual_kw("union") => { + IDENT if p.at_contextual_kw("union") && p.nth(1) == IDENT => { // test union_items // union Foo {} // union Foo { -- cgit v1.2.3 From da6be9fdda23213813883cec6493b93f22b8c6ea Mon Sep 17 00:00:00 2001 From: DJMcNab <36049421+DJMcNab@users.noreply.github.com> Date: Thu, 20 Dec 2018 19:47:29 +0000 Subject: Add weird_exprs test --- .../tests/data/parser/ok/0035_weird_exprs.rs | 149 ++ .../tests/data/parser/ok/0035_weird_exprs.txt | 2236 ++++++++++++++++++++ 2 files changed, 2385 insertions(+) create mode 100644 crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs create mode 100644 crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs new file mode 100644 index 000000000..74edc6354 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs @@ -0,0 +1,149 @@ +#![allow(non_camel_case_types)] +#![allow(dead_code)] +#![allow(unreachable_code)] +#![allow(unused_parens)] + +#![recursion_limit = "128"] + +use std::cell::Cell; +use std::mem::swap; + +// Just a grab bag of stuff that you wouldn't want to actually write. + +fn strange() -> bool { let _x: bool = return true; } + +fn funny() { + fn f(_x: ()) { } + f(return); +} + +fn what() { + fn the(x: &Cell) { + return while !x.get() { x.set(true); }; + } + let i = &Cell::new(false); + let dont = {||the(i)}; + dont(); + assert!((i.get())); +} + +fn zombiejesus() { + loop { + while (return) { + if (return) { + match (return) { + 1 => { + if (return) { + return + } else { + return + } + } + _ => { return } + }; + } else if (return) { + return; + } + } + if (return) { break; } + } +} + +fn notsure() { + let mut _x: isize; + let mut _y = (_x = 0) == (_x = 0); + let mut _z = (_x = 0) < (_x = 0); + let _a = (_x += 0) == (_x = 0); + let _b = swap(&mut _y, &mut _z) == swap(&mut _y, &mut _z); +} + +fn canttouchthis() -> usize { + fn p() -> bool { true } + let _a = (assert!((true)) == (assert!(p()))); + let _c = (assert!((p())) == ()); + let _b: bool = (println!("{}", 0) == (return 0)); +} + +fn angrydome() { + loop { if break { } } + let mut i = 0; + loop { i += 1; if i == 1 { match (continue) { 1 => { }, _ => panic!("wat") } } + break; } +} + +fn evil_lincoln() { let _evil = println!("lincoln"); } + +fn dots() { + assert_eq!(String::from(".................................................."), + format!("{:?}", .. .. .. .. .. .. .. .. .. .. .. .. .. + .. .. .. .. .. .. .. .. .. .. .. ..)); +} + +fn u8(u8: u8) { + if u8 != 0u8 { + assert_eq!(8u8, { + macro_rules! u8 { + (u8) => { + mod u8 { + pub fn u8<'u8: 'u8 + 'u8>(u8: &'u8 u8) -> &'u8 u8 { + "u8"; + u8 + } + } + }; + } + + u8!(u8); + let &u8: &u8 = u8::u8(&8u8); + crate::u8(0u8); + u8 + }); + } +} + +fn fishy() { + assert_eq!(String::from("><>"), + String::<>::from::<>("><>").chars::<>().rev::<>().collect::()); +} + +fn union() { + union union<'union> { union: &'union union<'union>, } +} + +fn special_characters() { + let val = !((|(..):(_,_),__@_|__)((&*"\\",'🤔')/**/,{})=={&[..=..][..];})// + ; + assert!(!val); +} + +fn punch_card() -> impl std::fmt::Debug { + ..=..=.. .. .. .. .. .. .. .. .. .. .. ..=.. .. + ..=.. ..=.. .. .. .. .. .. .. .. .. ..=..=..=.. + ..=.. ..=.. ..=.. ..=.. .. ..=..=.. .. ..=.. .. + ..=..=.. .. ..=.. ..=.. ..=.. .. .. .. ..=.. .. + ..=.. ..=.. ..=.. ..=.. .. ..=.. .. .. ..=.. .. + ..=.. ..=.. ..=.. ..=.. .. .. ..=.. .. ..=.. .. + ..=.. ..=.. .. ..=..=.. ..=..=.. .. .. ..=.. .. +} + +fn ktulhu() { + ;;;();;;;;;;;;() +} + +pub fn main() { + strange(); + funny(); + what(); + zombiejesus(); + notsure(); + canttouchthis(); + angrydome(); + evil_lincoln(); + dots(); + u8(8u8); + fishy(); + union(); + special_characters(); + punch_card(); + ktulhu(); +} diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt new file mode 100644 index 000000000..e4507c553 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt @@ -0,0 +1,2236 @@ +SOURCE_FILE@[0; 3542) + ATTR@[0; 31) + POUND@[0; 1) + EXCL@[1; 2) + TOKEN_TREE@[2; 31) + L_BRACK@[2; 3) + IDENT@[3; 8) "allow" + TOKEN_TREE@[8; 30) + L_PAREN@[8; 9) + IDENT@[9; 29) "non_camel_case_types" + R_PAREN@[29; 30) + R_BRACK@[30; 31) + WHITESPACE@[31; 32) + ATTR@[32; 52) + POUND@[32; 33) + EXCL@[33; 34) + TOKEN_TREE@[34; 52) + L_BRACK@[34; 35) + IDENT@[35; 40) "allow" + TOKEN_TREE@[40; 51) + L_PAREN@[40; 41) + IDENT@[41; 50) "dead_code" + R_PAREN@[50; 51) + R_BRACK@[51; 52) + WHITESPACE@[52; 53) + ATTR@[53; 80) + POUND@[53; 54) + EXCL@[54; 55) + TOKEN_TREE@[55; 80) + L_BRACK@[55; 56) + IDENT@[56; 61) "allow" + TOKEN_TREE@[61; 79) + L_PAREN@[61; 62) + IDENT@[62; 78) "unreachable_code" + R_PAREN@[78; 79) + R_BRACK@[79; 80) + WHITESPACE@[80; 81) + ATTR@[81; 105) + POUND@[81; 82) + EXCL@[82; 83) + TOKEN_TREE@[83; 105) + L_BRACK@[83; 84) + IDENT@[84; 89) "allow" + TOKEN_TREE@[89; 104) + L_PAREN@[89; 90) + IDENT@[90; 103) "unused_parens" + R_PAREN@[103; 104) + R_BRACK@[104; 105) + WHITESPACE@[105; 107) + ATTR@[107; 134) + POUND@[107; 108) + EXCL@[108; 109) + TOKEN_TREE@[109; 134) + L_BRACK@[109; 110) + IDENT@[110; 125) "recursion_limit" + WHITESPACE@[125; 126) + EQ@[126; 127) + WHITESPACE@[127; 128) + STRING@[128; 133) + R_BRACK@[133; 134) + WHITESPACE@[134; 136) + USE_ITEM@[136; 156) + USE_KW@[136; 139) + WHITESPACE@[139; 140) + USE_TREE@[140; 155) + PATH@[140; 155) + PATH@[140; 149) + PATH@[140; 143) + PATH_SEGMENT@[140; 143) + NAME_REF@[140; 143) + IDENT@[140; 143) "std" + COLONCOLON@[143; 145) + PATH_SEGMENT@[145; 149) + NAME_REF@[145; 149) + IDENT@[145; 149) "cell" + COLONCOLON@[149; 151) + PATH_SEGMENT@[151; 155) + NAME_REF@[151; 155) + IDENT@[151; 155) "Cell" + SEMI@[155; 156) + WHITESPACE@[156; 157) + USE_ITEM@[157; 176) + USE_KW@[157; 160) + WHITESPACE@[160; 161) + USE_TREE@[161; 175) + PATH@[161; 175) + PATH@[161; 169) + PATH@[161; 164) + PATH_SEGMENT@[161; 164) + NAME_REF@[161; 164) + IDENT@[161; 164) "std" + COLONCOLON@[164; 166) + PATH_SEGMENT@[166; 169) + NAME_REF@[166; 169) + IDENT@[166; 169) "mem" + COLONCOLON@[169; 171) + PATH_SEGMENT@[171; 175) + NAME_REF@[171; 175) + IDENT@[171; 175) "swap" + SEMI@[175; 176) + WHITESPACE@[176; 178) + COMMENT@[178; 247) + WHITESPACE@[247; 249) + FN_DEF@[249; 301) + FN_KW@[249; 251) + WHITESPACE@[251; 252) + NAME@[252; 259) + IDENT@[252; 259) "strange" + PARAM_LIST@[259; 261) + L_PAREN@[259; 260) + R_PAREN@[260; 261) + WHITESPACE@[261; 262) + RET_TYPE@[262; 269) + THIN_ARROW@[262; 264) + WHITESPACE@[264; 265) + PATH_TYPE@[265; 269) + PATH@[265; 269) + PATH_SEGMENT@[265; 269) + NAME_REF@[265; 269) + IDENT@[265; 269) "bool" + WHITESPACE@[269; 270) + BLOCK@[270; 301) + L_CURLY@[270; 271) + WHITESPACE@[271; 272) + LET_STMT@[272; 299) + LET_KW@[272; 275) + WHITESPACE@[275; 276) + BIND_PAT@[276; 278) + NAME@[276; 278) + IDENT@[276; 278) "_x" + COLON@[278; 279) + WHITESPACE@[279; 280) + PATH_TYPE@[280; 284) + PATH@[280; 284) + PATH_SEGMENT@[280; 284) + NAME_REF@[280; 284) + IDENT@[280; 284) "bool" + WHITESPACE@[284; 285) + EQ@[285; 286) + WHITESPACE@[286; 287) + RETURN_EXPR@[287; 298) + RETURN_KW@[287; 293) + WHITESPACE@[293; 294) + LITERAL@[294; 298) + TRUE_KW@[294; 298) + SEMI@[298; 299) + WHITESPACE@[299; 300) + R_CURLY@[300; 301) + WHITESPACE@[301; 303) + FN_DEF@[303; 353) + FN_KW@[303; 305) + WHITESPACE@[305; 306) + NAME@[306; 311) + IDENT@[306; 311) "funny" + PARAM_LIST@[311; 313) + L_PAREN@[311; 312) + R_PAREN@[312; 313) + WHITESPACE@[313; 314) + BLOCK@[314; 353) + L_CURLY@[314; 315) + WHITESPACE@[315; 320) + FN_DEF@[320; 336) + FN_KW@[320; 322) + WHITESPACE@[322; 323) + NAME@[323; 324) + IDENT@[323; 324) "f" + PARAM_LIST@[324; 332) + L_PAREN@[324; 325) + PARAM@[325; 331) + BIND_PAT@[325; 327) + NAME@[325; 327) + IDENT@[325; 327) "_x" + COLON@[327; 328) + WHITESPACE@[328; 329) + TUPLE_TYPE@[329; 331) + L_PAREN@[329; 330) + R_PAREN@[330; 331) + R_PAREN@[331; 332) + WHITESPACE@[332; 333) + BLOCK@[333; 336) + L_CURLY@[333; 334) + WHITESPACE@[334; 335) + R_CURLY@[335; 336) + WHITESPACE@[336; 341) + EXPR_STMT@[341; 351) + CALL_EXPR@[341; 350) + PATH_EXPR@[341; 342) + PATH@[341; 342) + PATH_SEGMENT@[341; 342) + NAME_REF@[341; 342) + IDENT@[341; 342) "f" + ARG_LIST@[342; 350) + L_PAREN@[342; 343) + RETURN_EXPR@[343; 349) + RETURN_KW@[343; 349) + R_PAREN@[349; 350) + SEMI@[350; 351) + WHITESPACE@[351; 352) + R_CURLY@[352; 353) + WHITESPACE@[353; 355) + FN_DEF@[355; 545) + FN_KW@[355; 357) + WHITESPACE@[357; 358) + NAME@[358; 362) + IDENT@[358; 362) "what" + PARAM_LIST@[362; 364) + L_PAREN@[362; 363) + R_PAREN@[363; 364) + WHITESPACE@[364; 365) + BLOCK@[365; 545) + L_CURLY@[365; 366) + WHITESPACE@[366; 371) + FN_DEF@[371; 449) + FN_KW@[371; 373) + WHITESPACE@[373; 374) + NAME@[374; 377) + IDENT@[374; 377) "the" + PARAM_LIST@[377; 393) + L_PAREN@[377; 378) + PARAM@[378; 392) + BIND_PAT@[378; 379) + NAME@[378; 379) + IDENT@[378; 379) "x" + COLON@[379; 380) + WHITESPACE@[380; 381) + REFERENCE_TYPE@[381; 392) + AMP@[381; 382) + PATH_TYPE@[382; 392) + PATH@[382; 392) + PATH_SEGMENT@[382; 392) + NAME_REF@[382; 386) + IDENT@[382; 386) "Cell" + TYPE_ARG_LIST@[386; 392) + L_ANGLE@[386; 387) + TYPE_ARG@[387; 391) + PATH_TYPE@[387; 391) + PATH@[387; 391) + PATH_SEGMENT@[387; 391) + NAME_REF@[387; 391) + IDENT@[387; 391) "bool" + R_ANGLE@[391; 392) + R_PAREN@[392; 393) + WHITESPACE@[393; 394) + BLOCK@[394; 449) + L_CURLY@[394; 395) + WHITESPACE@[395; 404) + EXPR_STMT@[404; 443) + RETURN_EXPR@[404; 442) + RETURN_KW@[404; 410) + WHITESPACE@[410; 411) + WHILE_EXPR@[411; 442) + WHILE_KW@[411; 416) + WHITESPACE@[416; 417) + CONDITION@[417; 425) + PREFIX_EXPR@[417; 425) + EXCL@[417; 418) + METHOD_CALL_EXPR@[418; 425) + PATH_EXPR@[418; 419) + PATH@[418; 419) + PATH_SEGMENT@[418; 419) + NAME_REF@[418; 419) + IDENT@[418; 419) "x" + DOT@[419; 420) + NAME_REF@[420; 423) + IDENT@[420; 423) "get" + ARG_LIST@[423; 425) + L_PAREN@[423; 424) + R_PAREN@[424; 425) + WHITESPACE@[425; 426) + BLOCK@[426; 442) + L_CURLY@[426; 427) + WHITESPACE@[427; 428) + EXPR_STMT@[428; 440) + METHOD_CALL_EXPR@[428; 439) + PATH_EXPR@[428; 429) + PATH@[428; 429) + PATH_SEGMENT@[428; 429) + NAME_REF@[428; 429) + IDENT@[428; 429) "x" + DOT@[429; 430) + NAME_REF@[430; 433) + IDENT@[430; 433) "set" + ARG_LIST@[433; 439) + L_PAREN@[433; 434) + LITERAL@[434; 438) + TRUE_KW@[434; 438) + R_PAREN@[438; 439) + SEMI@[439; 440) + WHITESPACE@[440; 441) + R_CURLY@[441; 442) + SEMI@[442; 443) + WHITESPACE@[443; 448) + R_CURLY@[448; 449) + WHITESPACE@[449; 454) + LET_STMT@[454; 480) + LET_KW@[454; 457) + WHITESPACE@[457; 458) + BIND_PAT@[458; 459) + NAME@[458; 459) + IDENT@[458; 459) "i" + WHITESPACE@[459; 460) + EQ@[460; 461) + WHITESPACE@[461; 462) + REF_EXPR@[462; 479) + AMP@[462; 463) + CALL_EXPR@[463; 479) + PATH_EXPR@[463; 472) + PATH@[463; 472) + PATH@[463; 467) + PATH_SEGMENT@[463; 467) + NAME_REF@[463; 467) + IDENT@[463; 467) "Cell" + COLONCOLON@[467; 469) + PATH_SEGMENT@[469; 472) + NAME_REF@[469; 472) + IDENT@[469; 472) "new" + ARG_LIST@[472; 479) + L_PAREN@[472; 473) + LITERAL@[473; 478) + FALSE_KW@[473; 478) + R_PAREN@[478; 479) + SEMI@[479; 480) + WHITESPACE@[480; 485) + LET_STMT@[485; 507) + LET_KW@[485; 488) + WHITESPACE@[488; 489) + BIND_PAT@[489; 493) + NAME@[489; 493) + IDENT@[489; 493) "dont" + WHITESPACE@[493; 494) + EQ@[494; 495) + WHITESPACE@[495; 496) + BLOCK_EXPR@[496; 506) + BLOCK@[496; 506) + L_CURLY@[496; 497) + LAMBDA_EXPR@[497; 505) + PARAM_LIST@[497; 499) + PIPE@[497; 498) + PIPE@[498; 499) + CALL_EXPR@[499; 505) + PATH_EXPR@[499; 502) + PATH@[499; 502) + PATH_SEGMENT@[499; 502) + NAME_REF@[499; 502) + IDENT@[499; 502) "the" + ARG_LIST@[502; 505) + L_PAREN@[502; 503) + PATH_EXPR@[503; 504) + PATH@[503; 504) + PATH_SEGMENT@[503; 504) + NAME_REF@[503; 504) + IDENT@[503; 504) "i" + R_PAREN@[504; 505) + R_CURLY@[505; 506) + SEMI@[506; 507) + WHITESPACE@[507; 512) + EXPR_STMT@[512; 519) + CALL_EXPR@[512; 518) + PATH_EXPR@[512; 516) + PATH@[512; 516) + PATH_SEGMENT@[512; 516) + NAME_REF@[512; 516) + IDENT@[512; 516) "dont" + ARG_LIST@[516; 518) + L_PAREN@[516; 517) + R_PAREN@[517; 518) + SEMI@[518; 519) + WHITESPACE@[519; 524) + EXPR_STMT@[524; 543) + MACRO_CALL@[524; 542) + PATH@[524; 530) + PATH_SEGMENT@[524; 530) + NAME_REF@[524; 530) + IDENT@[524; 530) "assert" + EXCL@[530; 531) + TOKEN_TREE@[531; 542) + L_PAREN@[531; 532) + TOKEN_TREE@[532; 541) + L_PAREN@[532; 533) + IDENT@[533; 534) "i" + DOT@[534; 535) + IDENT@[535; 538) "get" + TOKEN_TREE@[538; 540) + L_PAREN@[538; 539) + R_PAREN@[539; 540) + R_PAREN@[540; 541) + R_PAREN@[541; 542) + SEMI@[542; 543) + WHITESPACE@[543; 544) + R_CURLY@[544; 545) + WHITESPACE@[545; 547) + FN_DEF@[547; 1051) + FN_KW@[547; 549) + WHITESPACE@[549; 550) + NAME@[550; 561) + IDENT@[550; 561) "zombiejesus" + PARAM_LIST@[561; 563) + L_PAREN@[561; 562) + R_PAREN@[562; 563) + WHITESPACE@[563; 564) + BLOCK@[564; 1051) + L_CURLY@[564; 565) + WHITESPACE@[565; 570) + LOOP_EXPR@[570; 1049) + LOOP_KW@[570; 574) + WHITESPACE@[574; 575) + BLOCK@[575; 1049) + L_CURLY@[575; 576) + WHITESPACE@[576; 585) + EXPR_STMT@[585; 1012) + WHILE_EXPR@[585; 1012) + WHILE_KW@[585; 590) + WHITESPACE@[590; 591) + CONDITION@[591; 599) + PAREN_EXPR@[591; 599) + L_PAREN@[591; 592) + RETURN_EXPR@[592; 598) + RETURN_KW@[592; 598) + R_PAREN@[598; 599) + WHITESPACE@[599; 600) + BLOCK@[600; 1012) + L_CURLY@[600; 601) + WHITESPACE@[601; 614) + IF_EXPR@[614; 1002) + IF_KW@[614; 616) + WHITESPACE@[616; 617) + CONDITION@[617; 625) + PAREN_EXPR@[617; 625) + L_PAREN@[617; 618) + RETURN_EXPR@[618; 624) + RETURN_KW@[618; 624) + R_PAREN@[624; 625) + WHITESPACE@[625; 626) + BLOCK@[626; 945) + L_CURLY@[626; 627) + WHITESPACE@[627; 644) + EXPR_STMT@[644; 931) + MATCH_EXPR@[644; 930) + MATCH_KW@[644; 649) + WHITESPACE@[649; 650) + PAREN_EXPR@[650; 658) + L_PAREN@[650; 651) + RETURN_EXPR@[651; 657) + RETURN_KW@[651; 657) + R_PAREN@[657; 658) + WHITESPACE@[658; 659) + MATCH_ARM_LIST@[659; 930) + L_CURLY@[659; 660) + WHITESPACE@[660; 681) + MATCH_ARM@[681; 876) + LITERAL@[681; 682) + INT_NUMBER@[681; 682) "1" + WHITESPACE@[682; 683) + FAT_ARROW@[683; 685) + WHITESPACE@[685; 686) + BLOCK_EXPR@[686; 876) + BLOCK@[686; 876) + L_CURLY@[686; 687) + WHITESPACE@[687; 712) + IF_EXPR@[712; 854) + IF_KW@[712; 714) + WHITESPACE@[714; 715) + CONDITION@[715; 723) + PAREN_EXPR@[715; 723) + L_PAREN@[715; 716) + RETURN_EXPR@[716; 722) + RETURN_KW@[716; 722) + R_PAREN@[722; 723) + WHITESPACE@[723; 724) + BLOCK@[724; 786) + L_CURLY@[724; 725) + WHITESPACE@[725; 754) + RETURN_EXPR@[754; 760) + RETURN_KW@[754; 760) + WHITESPACE@[760; 785) + R_CURLY@[785; 786) + WHITESPACE@[786; 787) + ELSE_KW@[787; 791) + WHITESPACE@[791; 792) + BLOCK@[792; 854) + L_CURLY@[792; 793) + WHITESPACE@[793; 822) + RETURN_EXPR@[822; 828) + RETURN_KW@[822; 828) + WHITESPACE@[828; 853) + R_CURLY@[853; 854) + WHITESPACE@[854; 875) + R_CURLY@[875; 876) + WHITESPACE@[876; 897) + MATCH_ARM@[897; 912) + PLACEHOLDER_PAT@[897; 898) + UNDERSCORE@[897; 898) + WHITESPACE@[898; 899) + FAT_ARROW@[899; 901) + WHITESPACE@[901; 902) + BLOCK_EXPR@[902; 912) + BLOCK@[902; 912) + L_CURLY@[902; 903) + WHITESPACE@[903; 904) + RETURN_EXPR@[904; 910) + RETURN_KW@[904; 910) + WHITESPACE@[910; 911) + R_CURLY@[911; 912) + WHITESPACE@[912; 929) + R_CURLY@[929; 930) + SEMI@[930; 931) + WHITESPACE@[931; 944) + R_CURLY@[944; 945) + WHITESPACE@[945; 946) + ELSE_KW@[946; 950) + WHITESPACE@[950; 951) + IF_EXPR@[951; 1002) + IF_KW@[951; 953) + WHITESPACE@[953; 954) + CONDITION@[954; 962) + PAREN_EXPR@[954; 962) + L_PAREN@[954; 955) + RETURN_EXPR@[955; 961) + RETURN_KW@[955; 961) + R_PAREN@[961; 962) + WHITESPACE@[962; 963) + BLOCK@[963; 1002) + L_CURLY@[963; 964) + WHITESPACE@[964; 981) + EXPR_STMT@[981; 988) + RETURN_EXPR@[981; 987) + RETURN_KW@[981; 987) + SEMI@[987; 988) + WHITESPACE@[988; 1001) + R_CURLY@[1001; 1002) + WHITESPACE@[1002; 1011) + R_CURLY@[1011; 1012) + WHITESPACE@[1012; 1021) + IF_EXPR@[1021; 1043) + IF_KW@[1021; 1023) + WHITESPACE@[1023; 1024) + CONDITION@[1024; 1032) + PAREN_EXPR@[1024; 1032) + L_PAREN@[1024; 1025) + RETURN_EXPR@[1025; 1031) + RETURN_KW@[1025; 1031) + R_PAREN@[1031; 1032) + WHITESPACE@[1032; 1033) + BLOCK@[1033; 1043) + L_CURLY@[1033; 1034) + WHITESPACE@[1034; 1035) + EXPR_STMT@[1035; 1041) + BREAK_EXPR@[1035; 1040) + BREAK_KW@[1035; 1040) + SEMI@[1040; 1041) + WHITESPACE@[1041; 1042) + R_CURLY@[1042; 1043) + WHITESPACE@[1043; 1048) + R_CURLY@[1048; 1049) + WHITESPACE@[1049; 1050) + R_CURLY@[1050; 1051) + WHITESPACE@[1051; 1053) + FN_DEF@[1053; 1268) + FN_KW@[1053; 1055) + WHITESPACE@[1055; 1056) + NAME@[1056; 1063) + IDENT@[1056; 1063) "notsure" + PARAM_LIST@[1063; 1065) + L_PAREN@[1063; 1064) + R_PAREN@[1064; 1065) + WHITESPACE@[1065; 1066) + BLOCK@[1066; 1268) + L_CURLY@[1066; 1067) + WHITESPACE@[1067; 1072) + LET_STMT@[1072; 1090) + LET_KW@[1072; 1075) + WHITESPACE@[1075; 1076) + BIND_PAT@[1076; 1082) + MUT_KW@[1076; 1079) + WHITESPACE@[1079; 1080) + NAME@[1080; 1082) + IDENT@[1080; 1082) "_x" + COLON@[1082; 1083) + WHITESPACE@[1083; 1084) + PATH_TYPE@[1084; 1089) + PATH@[1084; 1089) + PATH_SEGMENT@[1084; 1089) + NAME_REF@[1084; 1089) + IDENT@[1084; 1089) "isize" + SEMI@[1089; 1090) + WHITESPACE@[1090; 1095) + LET_STMT@[1095; 1129) + LET_KW@[1095; 1098) + WHITESPACE@[1098; 1099) + BIND_PAT@[1099; 1105) + MUT_KW@[1099; 1102) + WHITESPACE@[1102; 1103) + NAME@[1103; 1105) + IDENT@[1103; 1105) "_y" + WHITESPACE@[1105; 1106) + EQ@[1106; 1107) + WHITESPACE@[1107; 1108) + BIN_EXPR@[1108; 1128) + PAREN_EXPR@[1108; 1116) + L_PAREN@[1108; 1109) + BIN_EXPR@[1109; 1115) + PATH_EXPR@[1109; 1111) + PATH@[1109; 1111) + PATH_SEGMENT@[1109; 1111) + NAME_REF@[1109; 1111) + IDENT@[1109; 1111) "_x" + WHITESPACE@[1111; 1112) + EQ@[1112; 1113) + WHITESPACE@[1113; 1114) + LITERAL@[1114; 1115) + INT_NUMBER@[1114; 1115) "0" + R_PAREN@[1115; 1116) + WHITESPACE@[1116; 1117) + EQEQ@[1117; 1119) + WHITESPACE@[1119; 1120) + PAREN_EXPR@[1120; 1128) + L_PAREN@[1120; 1121) + BIN_EXPR@[1121; 1127) + PATH_EXPR@[1121; 1123) + PATH@[1121; 1123) + PATH_SEGMENT@[1121; 1123) + NAME_REF@[1121; 1123) + IDENT@[1121; 1123) "_x" + WHITESPACE@[1123; 1124) + EQ@[1124; 1125) + WHITESPACE@[1125; 1126) + LITERAL@[1126; 1127) + INT_NUMBER@[1126; 1127) "0" + R_PAREN@[1127; 1128) + SEMI@[1128; 1129) + WHITESPACE@[1129; 1134) + LET_STMT@[1134; 1167) + LET_KW@[1134; 1137) + WHITESPACE@[1137; 1138) + BIND_PAT@[1138; 1144) + MUT_KW@[1138; 1141) + WHITESPACE@[1141; 1142) + NAME@[1142; 1144) + IDENT@[1142; 1144) "_z" + WHITESPACE@[1144; 1145) + EQ@[1145; 1146) + WHITESPACE@[1146; 1147) + BIN_EXPR@[1147; 1166) + PAREN_EXPR@[1147; 1155) + L_PAREN@[1147; 1148) + BIN_EXPR@[1148; 1154) + PATH_EXPR@[1148; 1150) + PATH@[1148; 1150) + PATH_SEGMENT@[1148; 1150) + NAME_REF@[1148; 1150) + IDENT@[1148; 1150) "_x" + WHITESPACE@[1150; 1151) + EQ@[1151; 1152) + WHITESPACE@[1152; 1153) + LITERAL@[1153; 1154) + INT_NUMBER@[1153; 1154) "0" + R_PAREN@[1154; 1155) + WHITESPACE@[1155; 1156) + L_ANGLE@[1156; 1157) + WHITESPACE@[1157; 1158) + PAREN_EXPR@[1158; 1166) + L_PAREN@[1158; 1159) + BIN_EXPR@[1159; 1165) + PATH_EXPR@[1159; 1161) + PATH@[1159; 1161) + PATH_SEGMENT@[1159; 1161) + NAME_REF@[1159; 1161) + IDENT@[1159; 1161) "_x" + WHITESPACE@[1161; 1162) + EQ@[1162; 1163) + WHITESPACE@[1163; 1164) + LITERAL@[1164; 1165) + INT_NUMBER@[1164; 1165) "0" + R_PAREN@[1165; 1166) + SEMI@[1166; 1167) + WHITESPACE@[1167; 1172) + LET_STMT@[1172; 1203) + LET_KW@[1172; 1175) + WHITESPACE@[1175; 1176) + BIND_PAT@[1176; 1178) + NAME@[1176; 1178) + IDENT@[1176; 1178) "_a" + WHITESPACE@[1178; 1179) + EQ@[1179; 1180) + WHITESPACE@[1180; 1181) + BIN_EXPR@[1181; 1202) + PAREN_EXPR@[1181; 1190) + L_PAREN@[1181; 1182) + BIN_EXPR@[1182; 1189) + PATH_EXPR@[1182; 1184) + PATH@[1182; 1184) + PATH_SEGMENT@[1182; 1184) + NAME_REF@[1182; 1184) + IDENT@[1182; 1184) "_x" + WHITESPACE@[1184; 1185) + PLUSEQ@[1185; 1187) + WHITESPACE@[1187; 1188) + LITERAL@[1188; 1189) + INT_NUMBER@[1188; 1189) "0" + R_PAREN@[1189; 1190) + WHITESPACE@[1190; 1191) + EQEQ@[1191; 1193) + WHITESPACE@[1193; 1194) + PAREN_EXPR@[1194; 1202) + L_PAREN@[1194; 1195) + BIN_EXPR@[1195; 1201) + PATH_EXPR@[1195; 1197) + PATH@[1195; 1197) + PATH_SEGMENT@[1195; 1197) + NAME_REF@[1195; 1197) + IDENT@[1195; 1197) "_x" + WHITESPACE@[1197; 1198) + EQ@[1198; 1199) + WHITESPACE@[1199; 1200) + LITERAL@[1200; 1201) + INT_NUMBER@[1200; 1201) "0" + R_PAREN@[1201; 1202) + SEMI@[1202; 1203) + WHITESPACE@[1203; 1208) + LET_STMT@[1208; 1266) + LET_KW@[1208; 1211) + WHITESPACE@[1211; 1212) + BIND_PAT@[1212; 1214) + NAME@[1212; 1214) + IDENT@[1212; 1214) "_b" + WHITESPACE@[1214; 1215) + EQ@[1215; 1216) + WHITESPACE@[1216; 1217) + BIN_EXPR@[1217; 1265) + CALL_EXPR@[1217; 1239) + PATH_EXPR@[1217; 1221) + PATH@[1217; 1221) + PATH_SEGMENT@[1217; 1221) + NAME_REF@[1217; 1221) + IDENT@[1217; 1221) "swap" + ARG_LIST@[1221; 1239) + L_PAREN@[1221; 1222) + REF_EXPR@[1222; 1229) + AMP@[1222; 1223) + MUT_KW@[1223; 1226) + WHITESPACE@[1226; 1227) + PATH_EXPR@[1227; 1229) + PATH@[1227; 1229) + PATH_SEGMENT@[1227; 1229) + NAME_REF@[1227; 1229) + IDENT@[1227; 1229) "_y" + COMMA@[1229; 1230) + WHITESPACE@[1230; 1231) + REF_EXPR@[1231; 1238) + AMP@[1231; 1232) + MUT_KW@[1232; 1235) + WHITESPACE@[1235; 1236) + PATH_EXPR@[1236; 1238) + PATH@[1236; 1238) + PATH_SEGMENT@[1236; 1238) + NAME_REF@[1236; 1238) + IDENT@[1236; 1238) "_z" + R_PAREN@[1238; 1239) + WHITESPACE@[1239; 1240) + EQEQ@[1240; 1242) + WHITESPACE@[1242; 1243) + CALL_EXPR@[1243; 1265) + PATH_EXPR@[1243; 1247) + PATH@[1243; 1247) + PATH_SEGMENT@[1243; 1247) + NAME_REF@[1243; 1247) + IDENT@[1243; 1247) "swap" + ARG_LIST@[1247; 1265) + L_PAREN@[1247; 1248) + REF_EXPR@[1248; 1255) + AMP@[1248; 1249) + MUT_KW@[1249; 1252) + WHITESPACE@[1252; 1253) + PATH_EXPR@[1253; 1255) + PATH@[1253; 1255) + PATH_SEGMENT@[1253; 1255) + NAME_REF@[1253; 1255) + IDENT@[1253; 1255) "_y" + COMMA@[1255; 1256) + WHITESPACE@[1256; 1257) + REF_EXPR@[1257; 1264) + AMP@[1257; 1258) + MUT_KW@[1258; 1261) + WHITESPACE@[1261; 1262) + PATH_EXPR@[1262; 1264) + PATH@[1262; 1264) + PATH_SEGMENT@[1262; 1264) + NAME_REF@[1262; 1264) + IDENT@[1262; 1264) "_z" + R_PAREN@[1264; 1265) + SEMI@[1265; 1266) + WHITESPACE@[1266; 1267) + R_CURLY@[1267; 1268) + WHITESPACE@[1268; 1270) + FN_DEF@[1270; 1470) + FN_KW@[1270; 1272) + WHITESPACE@[1272; 1273) + NAME@[1273; 1286) + IDENT@[1273; 1286) "canttouchthis" + PARAM_LIST@[1286; 1288) + L_PAREN@[1286; 1287) + R_PAREN@[1287; 1288) + WHITESPACE@[1288; 1289) + RET_TYPE@[1289; 1297) + THIN_ARROW@[1289; 1291) + WHITESPACE@[1291; 1292) + PATH_TYPE@[1292; 1297) + PATH@[1292; 1297) + PATH_SEGMENT@[1292; 1297) + NAME_REF@[1292; 1297) + IDENT@[1292; 1297) "usize" + WHITESPACE@[1297; 1298) + BLOCK@[1298; 1470) + L_CURLY@[1298; 1299) + WHITESPACE@[1299; 1304) + FN_DEF@[1304; 1327) + FN_KW@[1304; 1306) + WHITESPACE@[1306; 1307) + NAME@[1307; 1308) + IDENT@[1307; 1308) "p" + PARAM_LIST@[1308; 1310) + L_PAREN@[1308; 1309) + R_PAREN@[1309; 1310) + WHITESPACE@[1310; 1311) + RET_TYPE@[1311; 1318) + THIN_ARROW@[1311; 1313) + WHITESPACE@[1313; 1314) + PATH_TYPE@[1314; 1318) + PATH@[1314; 1318) + PATH_SEGMENT@[1314; 1318) + NAME_REF@[1314; 1318) + IDENT@[1314; 1318) "bool" + WHITESPACE@[1318; 1319) + BLOCK@[1319; 1327) + L_CURLY@[1319; 1320) + WHITESPACE@[1320; 1321) + LITERAL@[1321; 1325) + TRUE_KW@[1321; 1325) + WHITESPACE@[1325; 1326) + R_CURLY@[1326; 1327) + WHITESPACE@[1327; 1332) + LET_STMT@[1332; 1377) + LET_KW@[1332; 1335) + WHITESPACE@[1335; 1336) + BIND_PAT@[1336; 1338) + NAME@[1336; 1338) + IDENT@[1336; 1338) "_a" + WHITESPACE@[1338; 1339) + EQ@[1339; 1340) + WHITESPACE@[1340; 1341) + PAREN_EXPR@[1341; 1376) + L_PAREN@[1341; 1342) + BIN_EXPR@[1342; 1375) + MACRO_CALL@[1342; 1357) + PATH@[1342; 1348) + PATH_SEGMENT@[1342; 1348) + NAME_REF@[1342; 1348) + IDENT@[1342; 1348) "assert" + EXCL@[1348; 1349) + TOKEN_TREE@[1349; 1357) + L_PAREN@[1349; 1350) + TOKEN_TREE@[1350; 1356) + L_PAREN@[1350; 1351) + TRUE_KW@[1351; 1355) + R_PAREN@[1355; 1356) + R_PAREN@[1356; 1357) + WHITESPACE@[1357; 1358) + EQEQ@[1358; 1360) + WHITESPACE@[1360; 1361) + PAREN_EXPR@[1361; 1375) + L_PAREN@[1361; 1362) + MACRO_CALL@[1362; 1374) + PATH@[1362; 1368) + PATH_SEGMENT@[1362; 1368) + NAME_REF@[1362; 1368) + IDENT@[1362; 1368) "assert" + EXCL@[1368; 1369) + TOKEN_TREE@[1369; 1374) + L_PAREN@[1369; 1370) + IDENT@[1370; 1371) "p" + TOKEN_TREE@[1371; 1373) + L_PAREN@[1371; 1372) + R_PAREN@[1372; 1373) + R_PAREN@[1373; 1374) + R_PAREN@[1374; 1375) + R_PAREN@[1375; 1376) + SEMI@[1376; 1377) + WHITESPACE@[1377; 1382) + LET_STMT@[1382; 1414) + LET_KW@[1382; 1385) + WHITESPACE@[1385; 1386) + BIND_PAT@[1386; 1388) + NAME@[1386; 1388) + IDENT@[1386; 1388) "_c" + WHITESPACE@[1388; 1389) + EQ@[1389; 1390) + WHITESPACE@[1390; 1391) + PAREN_EXPR@[1391; 1413) + L_PAREN@[1391; 1392) + BIN_EXPR@[1392; 1412) + MACRO_CALL@[1392; 1406) + PATH@[1392; 1398) + PATH_SEGMENT@[1392; 1398) + NAME_REF@[1392; 1398) + IDENT@[1392; 1398) "assert" + EXCL@[1398; 1399) + TOKEN_TREE@[1399; 1406) + L_PAREN@[1399; 1400) + TOKEN_TREE@[1400; 1405) + L_PAREN@[1400; 1401) + IDENT@[1401; 1402) "p" + TOKEN_TREE@[1402; 1404) + L_PAREN@[1402; 1403) + R_PAREN@[1403; 1404) + R_PAREN@[1404; 1405) + R_PAREN@[1405; 1406) + WHITESPACE@[1406; 1407) + EQEQ@[1407; 1409) + WHITESPACE@[1409; 1410) + TUPLE_EXPR@[1410; 1412) + L_PAREN@[1410; 1411) + R_PAREN@[1411; 1412) + R_PAREN@[1412; 1413) + SEMI@[1413; 1414) + WHITESPACE@[1414; 1419) + LET_STMT@[1419; 1468) + LET_KW@[1419; 1422) + WHITESPACE@[1422; 1423) + BIND_PAT@[1423; 1425) + NAME@[1423; 1425) + IDENT@[1423; 1425) "_b" + COLON@[1425; 1426) + WHITESPACE@[1426; 1427) + PATH_TYPE@[1427; 1431) + PATH@[1427; 1431) + PATH_SEGMENT@[1427; 1431) + NAME_REF@[1427; 1431) + IDENT@[1427; 1431) "bool" + WHITESPACE@[1431; 1432) + EQ@[1432; 1433) + WHITESPACE@[1433; 1434) + PAREN_EXPR@[1434; 1467) + L_PAREN@[1434; 1435) + BIN_EXPR@[1435; 1466) + MACRO_CALL@[1435; 1452) + PATH@[1435; 1442) + PATH_SEGMENT@[1435; 1442) + NAME_REF@[1435; 1442) + IDENT@[1435; 1442) "println" + EXCL@[1442; 1443) + TOKEN_TREE@[1443; 1452) + L_PAREN@[1443; 1444) + STRING@[1444; 1448) + COMMA@[1448; 1449) + WHITESPACE@[1449; 1450) + INT_NUMBER@[1450; 1451) "0" + R_PAREN@[1451; 1452) + WHITESPACE@[1452; 1453) + EQEQ@[1453; 1455) + WHITESPACE@[1455; 1456) + PAREN_EXPR@[1456; 1466) + L_PAREN@[1456; 1457) + RETURN_EXPR@[1457; 1465) + RETURN_KW@[1457; 1463) + WHITESPACE@[1463; 1464) + LITERAL@[1464; 1465) + INT_NUMBER@[1464; 1465) "0" + R_PAREN@[1465; 1466) + R_PAREN@[1466; 1467) + SEMI@[1467; 1468) + WHITESPACE@[1468; 1469) + R_CURLY@[1469; 1470) + WHITESPACE@[1470; 1472) + FN_DEF@[1472; 1633) + FN_KW@[1472; 1474) + WHITESPACE@[1474; 1475) + NAME@[1475; 1484) + IDENT@[1475; 1484) "angrydome" + PARAM_LIST@[1484; 1486) + L_PAREN@[1484; 1485) + R_PAREN@[1485; 1486) + WHITESPACE@[1486; 1487) + BLOCK@[1487; 1633) + L_CURLY@[1487; 1488) + WHITESPACE@[1488; 1493) + EXPR_STMT@[1493; 1514) + LOOP_EXPR@[1493; 1514) + LOOP_KW@[1493; 1497) + WHITESPACE@[1497; 1498) + BLOCK@[1498; 1514) + L_CURLY@[1498; 1499) + WHITESPACE@[1499; 1500) + IF_EXPR@[1500; 1512) + IF_KW@[1500; 1502) + WHITESPACE@[1502; 1503) + CONDITION@[1503; 1508) + BREAK_EXPR@[1503; 1508) + BREAK_KW@[1503; 1508) + WHITESPACE@[1508; 1509) + BLOCK@[1509; 1512) + L_CURLY@[1509; 1510) + WHITESPACE@[1510; 1511) + R_CURLY@[1511; 1512) + WHITESPACE@[1512; 1513) + R_CURLY@[1513; 1514) + WHITESPACE@[1514; 1519) + LET_STMT@[1519; 1533) + LET_KW@[1519; 1522) + WHITESPACE@[1522; 1523) + BIND_PAT@[1523; 1528) + MUT_KW@[1523; 1526) + WHITESPACE@[1526; 1527) + NAME@[1527; 1528) + IDENT@[1527; 1528) "i" + WHITESPACE@[1528; 1529) + EQ@[1529; 1530) + WHITESPACE@[1530; 1531) + LITERAL@[1531; 1532) + INT_NUMBER@[1531; 1532) "0" + SEMI@[1532; 1533) + WHITESPACE@[1533; 1538) + LOOP_EXPR@[1538; 1631) + LOOP_KW@[1538; 1542) + WHITESPACE@[1542; 1543) + BLOCK@[1543; 1631) + L_CURLY@[1543; 1544) + WHITESPACE@[1544; 1545) + EXPR_STMT@[1545; 1552) + BIN_EXPR@[1545; 1551) + PATH_EXPR@[1545; 1546) + PATH@[1545; 1546) + PATH_SEGMENT@[1545; 1546) + NAME_REF@[1545; 1546) + IDENT@[1545; 1546) "i" + WHITESPACE@[1546; 1547) + PLUSEQ@[1547; 1549) + WHITESPACE@[1549; 1550) + LITERAL@[1550; 1551) + INT_NUMBER@[1550; 1551) "1" + SEMI@[1551; 1552) + WHITESPACE@[1552; 1553) + EXPR_STMT@[1553; 1616) + IF_EXPR@[1553; 1616) + IF_KW@[1553; 1555) + WHITESPACE@[1555; 1556) + CONDITION@[1556; 1562) + BIN_EXPR@[1556; 1562) + PATH_EXPR@[1556; 1557) + PATH@[1556; 1557) + PATH_SEGMENT@[1556; 1557) + NAME_REF@[1556; 1557) + IDENT@[1556; 1557) "i" + WHITESPACE@[1557; 1558) + EQEQ@[1558; 1560) + WHITESPACE@[1560; 1561) + LITERAL@[1561; 1562) + INT_NUMBER@[1561; 1562) "1" + WHITESPACE@[1562; 1563) + BLOCK@[1563; 1616) + L_CURLY@[1563; 1564) + WHITESPACE@[1564; 1565) + MATCH_EXPR@[1565; 1614) + MATCH_KW@[1565; 1570) + WHITESPACE@[1570; 1571) + PAREN_EXPR@[1571; 1581) + L_PAREN@[1571; 1572) + CONTINUE_EXPR@[1572; 1580) + CONTINUE_KW@[1572; 1580) + R_PAREN@[1580; 1581) + WHITESPACE@[1581; 1582) + MATCH_ARM_LIST@[1582; 1614) + L_CURLY@[1582; 1583) + WHITESPACE@[1583; 1584) + MATCH_ARM@[1584; 1592) + LITERAL@[1584; 1585) + INT_NUMBER@[1584; 1585) "1" + WHITESPACE@[1585; 1586) + FAT_ARROW@[1586; 1588) + WHITESPACE@[1588; 1589) + BLOCK_EXPR@[1589; 1592) + BLOCK@[1589; 1592) + L_CURLY@[1589; 1590) + WHITESPACE@[1590; 1591) + R_CURLY@[1591; 1592) + COMMA@[1592; 1593) + WHITESPACE@[1593; 1594) + MATCH_ARM@[1594; 1612) + PLACEHOLDER_PAT@[1594; 1595) + UNDERSCORE@[1594; 1595) + WHITESPACE@[1595; 1596) + FAT_ARROW@[1596; 1598) + WHITESPACE@[1598; 1599) + MACRO_CALL@[1599; 1612) + PATH@[1599; 1604) + PATH_SEGMENT@[1599; 1604) + NAME_REF@[1599; 1604) + IDENT@[1599; 1604) "panic" + EXCL@[1604; 1605) + TOKEN_TREE@[1605; 1612) + L_PAREN@[1605; 1606) + STRING@[1606; 1611) + R_PAREN@[1611; 1612) + WHITESPACE@[1612; 1613) + R_CURLY@[1613; 1614) + WHITESPACE@[1614; 1615) + R_CURLY@[1615; 1616) + WHITESPACE@[1616; 1623) + EXPR_STMT@[1623; 1629) + BREAK_EXPR@[1623; 1628) + BREAK_KW@[1623; 1628) + SEMI@[1628; 1629) + WHITESPACE@[1629; 1630) + R_CURLY@[1630; 1631) + WHITESPACE@[1631; 1632) + R_CURLY@[1632; 1633) + WHITESPACE@[1633; 1635) + FN_DEF@[1635; 1689) + FN_KW@[1635; 1637) + WHITESPACE@[1637; 1638) + NAME@[1638; 1650) + IDENT@[1638; 1650) "evil_lincoln" + PARAM_LIST@[1650; 1652) + L_PAREN@[1650; 1651) + R_PAREN@[1651; 1652) + WHITESPACE@[1652; 1653) + BLOCK@[1653; 1689) + L_CURLY@[1653; 1654) + WHITESPACE@[1654; 1655) + LET_STMT@[1655; 1687) + LET_KW@[1655; 1658) + WHITESPACE@[1658; 1659) + BIND_PAT@[1659; 1664) + NAME@[1659; 1664) + IDENT@[1659; 1664) "_evil" + WHITESPACE@[1664; 1665) + EQ@[1665; 1666) + WHITESPACE@[1666; 1667) + MACRO_CALL@[1667; 1686) + PATH@[1667; 1674) + PATH_SEGMENT@[1667; 1674) + NAME_REF@[1667; 1674) + IDENT@[1667; 1674) "println" + EXCL@[1674; 1675) + TOKEN_TREE@[1675; 1686) + L_PAREN@[1675; 1676) + STRING@[1676; 1685) + R_PAREN@[1685; 1686) + SEMI@[1686; 1687) + WHITESPACE@[1687; 1688) + R_CURLY@[1688; 1689) + WHITESPACE@[1689; 1691) + FN_DEF@[1691; 1927) + FN_KW@[1691; 1693) + WHITESPACE@[1693; 1694) + NAME@[1694; 1698) + IDENT@[1694; 1698) "dots" + PARAM_LIST@[1698; 1700) + L_PAREN@[1698; 1699) + R_PAREN@[1699; 1700) + WHITESPACE@[1700; 1701) + BLOCK@[1701; 1927) + L_CURLY@[1701; 1702) + WHITESPACE@[1702; 1707) + EXPR_STMT@[1707; 1925) + MACRO_CALL@[1707; 1924) + PATH@[1707; 1716) + PATH_SEGMENT@[1707; 1716) + NAME_REF@[1707; 1716) + IDENT@[1707; 1716) "assert_eq" + EXCL@[1716; 1717) + TOKEN_TREE@[1717; 1924) + L_PAREN@[1717; 1718) + IDENT@[1718; 1724) "String" + COLONCOLON@[1724; 1726) + IDENT@[1726; 1730) "from" + TOKEN_TREE@[1730; 1784) + L_PAREN@[1730; 1731) + STRING@[1731; 1783) + R_PAREN@[1783; 1784) + COMMA@[1784; 1785) + WHITESPACE@[1785; 1801) + IDENT@[1801; 1807) "format" + EXCL@[1807; 1808) + TOKEN_TREE@[1808; 1923) + L_PAREN@[1808; 1809) + STRING@[1809; 1815) + COMMA@[1815; 1816) + WHITESPACE@[1816; 1817) + DOTDOT@[1817; 1819) + WHITESPACE@[1819; 1820) + DOTDOT@[1820; 1822) + WHITESPACE@[1822; 1823) + DOTDOT@[1823; 1825) + WHITESPACE@[1825; 1826) + DOTDOT@[1826; 1828) + WHITESPACE@[1828; 1829) + DOTDOT@[1829; 1831) + WHITESPACE@[1831; 1832) + DOTDOT@[1832; 1834) + WHITESPACE@[1834; 1835) + DOTDOT@[1835; 1837) + WHITESPACE@[1837; 1838) + DOTDOT@[1838; 1840) + WHITESPACE@[1840; 1841) + DOTDOT@[1841; 1843) + WHITESPACE@[1843; 1844) + DOTDOT@[1844; 1846) + WHITESPACE@[1846; 1847) + DOTDOT@[1847; 1849) + WHITESPACE@[1849; 1850) + DOTDOT@[1850; 1852) + WHITESPACE@[1852; 1853) + DOTDOT@[1853; 1855) + WHITESPACE@[1855; 1887) + DOTDOT@[1887; 1889) + WHITESPACE@[1889; 1890) + DOTDOT@[1890; 1892) + WHITESPACE@[1892; 1893) + DOTDOT@[1893; 1895) + WHITESPACE@[1895; 1896) + DOTDOT@[1896; 1898) + WHITESPACE@[1898; 1899) + DOTDOT@[1899; 1901) + WHITESPACE@[1901; 1902) + DOTDOT@[1902; 1904) + WHITESPACE@[1904; 1905) + DOTDOT@[1905; 1907) + WHITESPACE@[1907; 1908) + DOTDOT@[1908; 1910) + WHITESPACE@[1910; 1911) + DOTDOT@[1911; 1913) + WHITESPACE@[1913; 1914) + DOTDOT@[1914; 1916) + WHITESPACE@[1916; 1917) + DOTDOT@[1917; 1919) + WHITESPACE@[1919; 1920) + DOTDOT@[1920; 1922) + R_PAREN@[1922; 1923) + R_PAREN@[1923; 1924) + SEMI@[1924; 1925) + WHITESPACE@[1925; 1926) + R_CURLY@[1926; 1927) + WHITESPACE@[1927; 1929) + FN_DEF@[1929; 2422) + FN_KW@[1929; 1931) + WHITESPACE@[1931; 1932) + NAME@[1932; 1934) + IDENT@[1932; 1934) "u8" + PARAM_LIST@[1934; 1942) + L_PAREN@[1934; 1935) + PARAM@[1935; 1941) + BIND_PAT@[1935; 1937) + NAME@[1935; 1937) + IDENT@[1935; 1937) "u8" + COLON@[1937; 1938) + WHITESPACE@[1938; 1939) + PATH_TYPE@[1939; 1941) + PATH@[1939; 1941) + PATH_SEGMENT@[1939; 1941) + NAME_REF@[1939; 1941) + IDENT@[1939; 1941) "u8" + R_PAREN@[1941; 1942) + WHITESPACE@[1942; 1943) + BLOCK@[1943; 2422) + L_CURLY@[1943; 1944) + WHITESPACE@[1944; 1949) + IF_EXPR@[1949; 2420) + IF_KW@[1949; 1951) + WHITESPACE@[1951; 1952) + CONDITION@[1952; 1961) + BIN_EXPR@[1952; 1961) + PATH_EXPR@[1952; 1954) + PATH@[1952; 1954) + PATH_SEGMENT@[1952; 1954) + NAME_REF@[1952; 1954) + IDENT@[1952; 1954) "u8" + WHITESPACE@[1954; 1955) + NEQ@[1955; 1957) + WHITESPACE@[1957; 1958) + LITERAL@[1958; 1961) + INT_NUMBER@[1958; 1961) "0u8" + WHITESPACE@[1961; 1962) + BLOCK@[1962; 2420) + L_CURLY@[1962; 1963) + WHITESPACE@[1963; 1972) + EXPR_STMT@[1972; 2414) + MACRO_CALL@[1972; 2413) + PATH@[1972; 1981) + PATH_SEGMENT@[1972; 1981) + NAME_REF@[1972; 1981) + IDENT@[1972; 1981) "assert_eq" + EXCL@[1981; 1982) + TOKEN_TREE@[1982; 2413) + L_PAREN@[1982; 1983) + INT_NUMBER@[1983; 1986) "8u8" + COMMA@[1986; 1987) + WHITESPACE@[1987; 1988) + TOKEN_TREE@[1988; 2412) + L_CURLY@[1988; 1989) + WHITESPACE@[1989; 2002) + IDENT@[2002; 2013) "macro_rules" + EXCL@[2013; 2014) + WHITESPACE@[2014; 2015) + IDENT@[2015; 2017) "u8" + WHITESPACE@[2017; 2018) + TOKEN_TREE@[2018; 2296) + L_CURLY@[2018; 2019) + WHITESPACE@[2019; 2036) + TOKEN_TREE@[2036; 2040) + L_PAREN@[2036; 2037) + IDENT@[2037; 2039) "u8" + R_PAREN@[2039; 2040) + WHITESPACE@[2040; 2041) + FAT_ARROW@[2041; 2043) + WHITESPACE@[2043; 2044) + TOKEN_TREE@[2044; 2281) + L_CURLY@[2044; 2045) + WHITESPACE@[2045; 2066) + MOD_KW@[2066; 2069) + WHITESPACE@[2069; 2070) + IDENT@[2070; 2072) "u8" + WHITESPACE@[2072; 2073) + TOKEN_TREE@[2073; 2263) + L_CURLY@[2073; 2074) + WHITESPACE@[2074; 2099) + PUB_KW@[2099; 2102) + WHITESPACE@[2102; 2103) + FN_KW@[2103; 2105) + WHITESPACE@[2105; 2106) + IDENT@[2106; 2108) "u8" + L_ANGLE@[2108; 2109) + LIFETIME@[2109; 2112) "'u8" + COLON@[2112; 2113) + WHITESPACE@[2113; 2114) + LIFETIME@[2114; 2117) "'u8" + WHITESPACE@[2117; 2118) + PLUS@[2118; 2119) + WHITESPACE@[2119; 2120) + LIFETIME@[2120; 2123) "'u8" + R_ANGLE@[2123; 2124) + TOKEN_TREE@[2124; 2137) + L_PAREN@[2124; 2125) + IDENT@[2125; 2127) "u8" + COLON@[2127; 2128) + WHITESPACE@[2128; 2129) + AMP@[2129; 2130) + LIFETIME@[2130; 2133) "'u8" + WHITESPACE@[2133; 2134) + IDENT@[2134; 2136) "u8" + R_PAREN@[2136; 2137) + WHITESPACE@[2137; 2138) + THIN_ARROW@[2138; 2140) + WHITESPACE@[2140; 2141) + AMP@[2141; 2142) + LIFETIME@[2142; 2145) "'u8" + WHITESPACE@[2145; 2146) + IDENT@[2146; 2148) "u8" + WHITESPACE@[2148; 2149) + TOKEN_TREE@[2149; 2241) + L_CURLY@[2149; 2150) + WHITESPACE@[2150; 2179) + STRING@[2179; 2183) + SEMI@[2183; 2184) + WHITESPACE@[2184; 2213) + IDENT@[2213; 2215) "u8" + WHITESPACE@[2215; 2240) + R_CURLY@[2240; 2241) + WHITESPACE@[2241; 2262) + R_CURLY@[2262; 2263) + WHITESPACE@[2263; 2280) + R_CURLY@[2280; 2281) + SEMI@[2281; 2282) + WHITESPACE@[2282; 2295) + R_CURLY@[2295; 2296) + WHITESPACE@[2296; 2310) + IDENT@[2310; 2312) "u8" + EXCL@[2312; 2313) + TOKEN_TREE@[2313; 2317) + L_PAREN@[2313; 2314) + IDENT@[2314; 2316) "u8" + R_PAREN@[2316; 2317) + SEMI@[2317; 2318) + WHITESPACE@[2318; 2331) + LET_KW@[2331; 2334) + WHITESPACE@[2334; 2335) + AMP@[2335; 2336) + IDENT@[2336; 2338) "u8" + COLON@[2338; 2339) + WHITESPACE@[2339; 2340) + AMP@[2340; 2341) + IDENT@[2341; 2343) "u8" + WHITESPACE@[2343; 2344) + EQ@[2344; 2345) + WHITESPACE@[2345; 2346) + IDENT@[2346; 2348) "u8" + COLONCOLON@[2348; 2350) + IDENT@[2350; 2352) "u8" + TOKEN_TREE@[2352; 2358) + L_PAREN@[2352; 2353) + AMP@[2353; 2354) + INT_NUMBER@[2354; 2357) "8u8" + R_PAREN@[2357; 2358) + SEMI@[2358; 2359) + WHITESPACE@[2359; 2372) + CRATE_KW@[2372; 2377) + COLONCOLON@[2377; 2379) + IDENT@[2379; 2381) "u8" + TOKEN_TREE@[2381; 2386) + L_PAREN@[2381; 2382) + INT_NUMBER@[2382; 2385) "0u8" + R_PAREN@[2385; 2386) + SEMI@[2386; 2387) + WHITESPACE@[2387; 2400) + IDENT@[2400; 2402) "u8" + WHITESPACE@[2402; 2411) + R_CURLY@[2411; 2412) + R_PAREN@[2412; 2413) + SEMI@[2413; 2414) + WHITESPACE@[2414; 2419) + R_CURLY@[2419; 2420) + WHITESPACE@[2420; 2421) + R_CURLY@[2421; 2422) + WHITESPACE@[2422; 2424) + FN_DEF@[2424; 2561) + FN_KW@[2424; 2426) + WHITESPACE@[2426; 2427) + NAME@[2427; 2432) + IDENT@[2427; 2432) "fishy" + PARAM_LIST@[2432; 2434) + L_PAREN@[2432; 2433) + R_PAREN@[2433; 2434) + WHITESPACE@[2434; 2435) + BLOCK@[2435; 2561) + L_CURLY@[2435; 2436) + WHITESPACE@[2436; 2441) + EXPR_STMT@[2441; 2559) + MACRO_CALL@[2441; 2558) + PATH@[2441; 2450) + PATH_SEGMENT@[2441; 2450) + NAME_REF@[2441; 2450) + IDENT@[2441; 2450) "assert_eq" + EXCL@[2450; 2451) + TOKEN_TREE@[2451; 2558) + L_PAREN@[2451; 2452) + IDENT@[2452; 2458) "String" + COLONCOLON@[2458; 2460) + IDENT@[2460; 2464) "from" + TOKEN_TREE@[2464; 2471) + L_PAREN@[2464; 2465) + STRING@[2465; 2470) + R_PAREN@[2470; 2471) + COMMA@[2471; 2472) + WHITESPACE@[2472; 2488) + IDENT@[2488; 2494) "String" + COLONCOLON@[2494; 2496) + L_ANGLE@[2496; 2497) + R_ANGLE@[2497; 2498) + COLONCOLON@[2498; 2500) + IDENT@[2500; 2504) "from" + COLONCOLON@[2504; 2506) + L_ANGLE@[2506; 2507) + R_ANGLE@[2507; 2508) + TOKEN_TREE@[2508; 2515) + L_PAREN@[2508; 2509) + STRING@[2509; 2514) + R_PAREN@[2514; 2515) + DOT@[2515; 2516) + IDENT@[2516; 2521) "chars" + COLONCOLON@[2521; 2523) + L_ANGLE@[2523; 2524) + R_ANGLE@[2524; 2525) + TOKEN_TREE@[2525; 2527) + L_PAREN@[2525; 2526) + R_PAREN@[2526; 2527) + DOT@[2527; 2528) + IDENT@[2528; 2531) "rev" + COLONCOLON@[2531; 2533) + L_ANGLE@[2533; 2534) + R_ANGLE@[2534; 2535) + TOKEN_TREE@[2535; 2537) + L_PAREN@[2535; 2536) + R_PAREN@[2536; 2537) + DOT@[2537; 2538) + IDENT@[2538; 2545) "collect" + COLONCOLON@[2545; 2547) + L_ANGLE@[2547; 2548) + IDENT@[2548; 2554) "String" + R_ANGLE@[2554; 2555) + TOKEN_TREE@[2555; 2557) + L_PAREN@[2555; 2556) + R_PAREN@[2556; 2557) + R_PAREN@[2557; 2558) + SEMI@[2558; 2559) + WHITESPACE@[2559; 2560) + R_CURLY@[2560; 2561) + WHITESPACE@[2561; 2563) + FN_DEF@[2563; 2635) + FN_KW@[2563; 2565) + WHITESPACE@[2565; 2566) + NAME@[2566; 2571) + IDENT@[2566; 2571) "union" + PARAM_LIST@[2571; 2573) + L_PAREN@[2571; 2572) + R_PAREN@[2572; 2573) + WHITESPACE@[2573; 2574) + BLOCK@[2574; 2635) + L_CURLY@[2574; 2575) + WHITESPACE@[2575; 2580) + STRUCT_DEF@[2580; 2633) + UNION_KW@[2580; 2585) + WHITESPACE@[2585; 2586) + NAME@[2586; 2591) + IDENT@[2586; 2591) "union" + TYPE_PARAM_LIST@[2591; 2599) + L_ANGLE@[2591; 2592) + LIFETIME_PARAM@[2592; 2598) + LIFETIME@[2592; 2598) "'union" + R_ANGLE@[2598; 2599) + WHITESPACE@[2599; 2600) + NAMED_FIELD_DEF_LIST@[2600; 2633) + L_CURLY@[2600; 2601) + WHITESPACE@[2601; 2602) + NAMED_FIELD_DEF@[2602; 2630) + NAME@[2602; 2607) + IDENT@[2602; 2607) "union" + COLON@[2607; 2608) + WHITESPACE@[2608; 2609) + REFERENCE_TYPE@[2609; 2630) + AMP@[2609; 2610) + LIFETIME@[2610; 2616) "'union" + WHITESPACE@[2616; 2617) + PATH_TYPE@[2617; 2630) + PATH@[2617; 2630) + PATH_SEGMENT@[2617; 2630) + NAME_REF@[2617; 2622) + IDENT@[2617; 2622) "union" + TYPE_ARG_LIST@[2622; 2630) + L_ANGLE@[2622; 2623) + LIFETIME_ARG@[2623; 2629) + LIFETIME@[2623; 2629) "'union" + R_ANGLE@[2629; 2630) + COMMA@[2630; 2631) + WHITESPACE@[2631; 2632) + R_CURLY@[2632; 2633) + WHITESPACE@[2633; 2634) + R_CURLY@[2634; 2635) + WHITESPACE@[2635; 2637) + FN_DEF@[2637; 2771) + FN_KW@[2637; 2639) + WHITESPACE@[2639; 2640) + NAME@[2640; 2658) + IDENT@[2640; 2658) "special_characters" + PARAM_LIST@[2658; 2660) + L_PAREN@[2658; 2659) + R_PAREN@[2659; 2660) + WHITESPACE@[2660; 2661) + BLOCK@[2661; 2771) + L_CURLY@[2661; 2662) + WHITESPACE@[2662; 2667) + LET_STMT@[2667; 2750) + LET_KW@[2667; 2670) + WHITESPACE@[2670; 2671) + BIND_PAT@[2671; 2674) + NAME@[2671; 2674) + IDENT@[2671; 2674) "val" + WHITESPACE@[2674; 2675) + EQ@[2675; 2676) + WHITESPACE@[2676; 2677) + PREFIX_EXPR@[2677; 2742) + EXCL@[2677; 2678) + PAREN_EXPR@[2678; 2742) + L_PAREN@[2678; 2679) + BIN_EXPR@[2679; 2741) + CALL_EXPR@[2679; 2724) + PAREN_EXPR@[2679; 2700) + L_PAREN@[2679; 2680) + LAMBDA_EXPR@[2680; 2699) + PARAM_LIST@[2680; 2697) + PIPE@[2680; 2681) + PARAM@[2681; 2691) + TUPLE_PAT@[2681; 2685) + L_PAREN@[2681; 2682) + DOTDOT@[2682; 2684) + R_PAREN@[2684; 2685) + COLON@[2685; 2686) + TUPLE_TYPE@[2686; 2691) + L_PAREN@[2686; 2687) + PLACEHOLDER_TYPE@[2687; 2688) + UNDERSCORE@[2687; 2688) + COMMA@[2688; 2689) + PLACEHOLDER_TYPE@[2689; 2690) + UNDERSCORE@[2689; 2690) + R_PAREN@[2690; 2691) + COMMA@[2691; 2692) + PARAM@[2692; 2696) + BIND_PAT@[2692; 2696) + NAME@[2692; 2694) + IDENT@[2692; 2694) "__" + AT@[2694; 2695) + PLACEHOLDER_PAT@[2695; 2696) + UNDERSCORE@[2695; 2696) + PIPE@[2696; 2697) + PATH_EXPR@[2697; 2699) + PATH@[2697; 2699) + PATH_SEGMENT@[2697; 2699) + NAME_REF@[2697; 2699) + IDENT@[2697; 2699) "__" + R_PAREN@[2699; 2700) + ARG_LIST@[2700; 2724) + L_PAREN@[2700; 2701) + TUPLE_EXPR@[2701; 2716) + L_PAREN@[2701; 2702) + REF_EXPR@[2702; 2708) + AMP@[2702; 2703) + PREFIX_EXPR@[2703; 2708) + STAR@[2703; 2704) + LITERAL@[2704; 2708) + STRING@[2704; 2708) + COMMA@[2708; 2709) + LITERAL@[2709; 2715) + CHAR@[2709; 2715) + R_PAREN@[2715; 2716) + COMMENT@[2716; 2720) + COMMA@[2720; 2721) + BLOCK_EXPR@[2721; 2723) + BLOCK@[2721; 2723) + L_CURLY@[2721; 2722) + R_CURLY@[2722; 2723) + R_PAREN@[2723; 2724) + EQEQ@[2724; 2726) + BLOCK_EXPR@[2726; 2741) + BLOCK@[2726; 2741) + L_CURLY@[2726; 2727) + EXPR_STMT@[2727; 2740) + REF_EXPR@[2727; 2739) + AMP@[2727; 2728) + INDEX_EXPR@[2728; 2739) + ARRAY_EXPR@[2728; 2735) + L_BRACK@[2728; 2729) + RANGE_EXPR@[2729; 2734) + DOTDOTEQ@[2729; 2732) + RANGE_EXPR@[2732; 2734) + DOTDOT@[2732; 2734) + R_BRACK@[2734; 2735) + L_BRACK@[2735; 2736) + RANGE_EXPR@[2736; 2738) + DOTDOT@[2736; 2738) + R_BRACK@[2738; 2739) + SEMI@[2739; 2740) + R_CURLY@[2740; 2741) + R_PAREN@[2741; 2742) + COMMENT@[2742; 2744) + WHITESPACE@[2744; 2749) + SEMI@[2749; 2750) + WHITESPACE@[2750; 2755) + EXPR_STMT@[2755; 2769) + MACRO_CALL@[2755; 2768) + PATH@[2755; 2761) + PATH_SEGMENT@[2755; 2761) + NAME_REF@[2755; 2761) + IDENT@[2755; 2761) "assert" + EXCL@[2761; 2762) + TOKEN_TREE@[2762; 2768) + L_PAREN@[2762; 2763) + EXCL@[2763; 2764) + IDENT@[2764; 2767) "val" + R_PAREN@[2767; 2768) + SEMI@[2768; 2769) + WHITESPACE@[2769; 2770) + R_CURLY@[2770; 2771) + WHITESPACE@[2771; 2773) + FN_DEF@[2773; 3243) + FN_KW@[2773; 2775) + WHITESPACE@[2775; 2776) + NAME@[2776; 2786) + IDENT@[2776; 2786) "punch_card" + PARAM_LIST@[2786; 2788) + L_PAREN@[2786; 2787) + R_PAREN@[2787; 2788) + WHITESPACE@[2788; 2789) + RET_TYPE@[2789; 2812) + THIN_ARROW@[2789; 2791) + WHITESPACE@[2791; 2792) + IMPL_TRAIT_TYPE@[2792; 2812) + IMPL_KW@[2792; 2796) + WHITESPACE@[2796; 2797) + PATH_TYPE@[2797; 2812) + PATH@[2797; 2812) + PATH@[2797; 2805) + PATH@[2797; 2800) + PATH_SEGMENT@[2797; 2800) + NAME_REF@[2797; 2800) + IDENT@[2797; 2800) "std" + COLONCOLON@[2800; 2802) + PATH_SEGMENT@[2802; 2805) + NAME_REF@[2802; 2805) + IDENT@[2802; 2805) "fmt" + COLONCOLON@[2805; 2807) + PATH_SEGMENT@[2807; 2812) + NAME_REF@[2807; 2812) + IDENT@[2807; 2812) "Debug" + WHITESPACE@[2812; 2813) + BLOCK@[2813; 3243) + L_CURLY@[2813; 2814) + WHITESPACE@[2814; 2819) + RANGE_EXPR@[2819; 3241) + DOTDOTEQ@[2819; 2822) + RANGE_EXPR@[2822; 3241) + DOTDOTEQ@[2822; 2825) + RANGE_EXPR@[2825; 3241) + DOTDOT@[2825; 2827) + WHITESPACE@[2827; 2828) + RANGE_EXPR@[2828; 3241) + DOTDOT@[2828; 2830) + WHITESPACE@[2830; 2834) + RANGE_EXPR@[2834; 3241) + DOTDOT@[2834; 2836) + WHITESPACE@[2836; 2837) + RANGE_EXPR@[2837; 3241) + DOTDOT@[2837; 2839) + WHITESPACE@[2839; 2840) + RANGE_EXPR@[2840; 3241) + DOTDOT@[2840; 2842) + WHITESPACE@[2842; 2843) + RANGE_EXPR@[2843; 3241) + DOTDOT@[2843; 2845) + WHITESPACE@[2845; 2849) + RANGE_EXPR@[2849; 3241) + DOTDOT@[2849; 2851) + WHITESPACE@[2851; 2852) + RANGE_EXPR@[2852; 3241) + DOTDOT@[2852; 2854) + WHITESPACE@[2854; 2855) + RANGE_EXPR@[2855; 3241) + DOTDOT@[2855; 2857) + WHITESPACE@[2857; 2858) + RANGE_EXPR@[2858; 3241) + DOTDOT@[2858; 2860) + WHITESPACE@[2860; 2864) + RANGE_EXPR@[2864; 3241) + DOTDOT@[2864; 2866) + WHITESPACE@[2866; 2867) + RANGE_EXPR@[2867; 3241) + DOTDOTEQ@[2867; 2870) + RANGE_EXPR@[2870; 3241) + DOTDOT@[2870; 2872) + WHITESPACE@[2872; 2873) + RANGE_EXPR@[2873; 3241) + DOTDOT@[2873; 2875) + WHITESPACE@[2875; 2880) + RANGE_EXPR@[2880; 3241) + DOTDOTEQ@[2880; 2883) + RANGE_EXPR@[2883; 3241) + DOTDOT@[2883; 2885) + WHITESPACE@[2885; 2886) + RANGE_EXPR@[2886; 3241) + DOTDOTEQ@[2886; 2889) + RANGE_EXPR@[2889; 3241) + DOTDOT@[2889; 2891) + WHITESPACE@[2891; 2895) + RANGE_EXPR@[2895; 3241) + DOTDOT@[2895; 2897) + WHITESPACE@[2897; 2898) + RANGE_EXPR@[2898; 3241) + DOTDOT@[2898; 2900) + WHITESPACE@[2900; 2901) + RANGE_EXPR@[2901; 3241) + DOTDOT@[2901; 2903) + WHITESPACE@[2903; 2904) + RANGE_EXPR@[2904; 3241) + DOTDOT@[2904; 2906) + WHITESPACE@[2906; 2910) + RANGE_EXPR@[2910; 3241) + DOTDOT@[2910; 2912) + WHITESPACE@[2912; 2913) + RANGE_EXPR@[2913; 3241) + DOTDOT@[2913; 2915) + WHITESPACE@[2915; 2916) + RANGE_EXPR@[2916; 3241) + DOTDOT@[2916; 2918) + WHITESPACE@[2918; 2919) + RANGE_EXPR@[2919; 3241) + DOTDOT@[2919; 2921) + WHITESPACE@[2921; 2925) + RANGE_EXPR@[2925; 3241) + DOTDOTEQ@[2925; 2928) + RANGE_EXPR@[2928; 3241) + DOTDOTEQ@[2928; 2931) + RANGE_EXPR@[2931; 3241) + DOTDOTEQ@[2931; 2934) + RANGE_EXPR@[2934; 3241) + DOTDOT@[2934; 2936) + WHITESPACE@[2936; 2941) + RANGE_EXPR@[2941; 3241) + DOTDOTEQ@[2941; 2944) + RANGE_EXPR@[2944; 3241) + DOTDOT@[2944; 2946) + WHITESPACE@[2946; 2947) + RANGE_EXPR@[2947; 3241) + DOTDOTEQ@[2947; 2950) + RANGE_EXPR@[2950; 3241) + DOTDOT@[2950; 2952) + WHITESPACE@[2952; 2956) + RANGE_EXPR@[2956; 3241) + DOTDOTEQ@[2956; 2959) + RANGE_EXPR@[2959; 3241) + DOTDOT@[2959; 2961) + WHITESPACE@[2961; 2962) + RANGE_EXPR@[2962; 3241) + DOTDOTEQ@[2962; 2965) + RANGE_EXPR@[2965; 3241) + DOTDOT@[2965; 2967) + WHITESPACE@[2967; 2971) + RANGE_EXPR@[2971; 3241) + DOTDOT@[2971; 2973) + WHITESPACE@[2973; 2974) + RANGE_EXPR@[2974; 3241) + DOTDOTEQ@[2974; 2977) + RANGE_EXPR@[2977; 3241) + DOTDOTEQ@[2977; 2980) + RANGE_EXPR@[2980; 3241) + DOTDOT@[2980; 2982) + WHITESPACE@[2982; 2986) + RANGE_EXPR@[2986; 3241) + DOTDOT@[2986; 2988) + WHITESPACE@[2988; 2989) + RANGE_EXPR@[2989; 3241) + DOTDOTEQ@[2989; 2992) + RANGE_EXPR@[2992; 3241) + DOTDOT@[2992; 2994) + WHITESPACE@[2994; 2995) + RANGE_EXPR@[2995; 3241) + DOTDOT@[2995; 2997) + WHITESPACE@[2997; 3002) + RANGE_EXPR@[3002; 3241) + DOTDOTEQ@[3002; 3005) + RANGE_EXPR@[3005; 3241) + DOTDOTEQ@[3005; 3008) + RANGE_EXPR@[3008; 3241) + DOTDOT@[3008; 3010) + WHITESPACE@[3010; 3011) + RANGE_EXPR@[3011; 3241) + DOTDOT@[3011; 3013) + WHITESPACE@[3013; 3017) + RANGE_EXPR@[3017; 3241) + DOTDOTEQ@[3017; 3020) + RANGE_EXPR@[3020; 3241) + DOTDOT@[3020; 3022) + WHITESPACE@[3022; 3023) + RANGE_EXPR@[3023; 3241) + DOTDOTEQ@[3023; 3026) + RANGE_EXPR@[3026; 3241) + DOTDOT@[3026; 3028) + WHITESPACE@[3028; 3032) + RANGE_EXPR@[3032; 3241) + DOTDOTEQ@[3032; 3035) + RANGE_EXPR@[3035; 3241) + DOTDOT@[3035; 3037) + WHITESPACE@[3037; 3038) + RANGE_EXPR@[3038; 3241) + DOTDOT@[3038; 3040) + WHITESPACE@[3040; 3041) + RANGE_EXPR@[3041; 3241) + DOTDOT@[3041; 3043) + WHITESPACE@[3043; 3047) + RANGE_EXPR@[3047; 3241) + DOTDOT@[3047; 3049) + WHITESPACE@[3049; 3050) + RANGE_EXPR@[3050; 3241) + DOTDOTEQ@[3050; 3053) + RANGE_EXPR@[3053; 3241) + DOTDOT@[3053; 3055) + WHITESPACE@[3055; 3056) + RANGE_EXPR@[3056; 3241) + DOTDOT@[3056; 3058) + WHITESPACE@[3058; 3063) + RANGE_EXPR@[3063; 3241) + DOTDOTEQ@[3063; 3066) + RANGE_EXPR@[3066; 3241) + DOTDOT@[3066; 3068) + WHITESPACE@[3068; 3069) + RANGE_EXPR@[3069; 3241) + DOTDOTEQ@[3069; 3072) + RANGE_EXPR@[3072; 3241) + DOTDOT@[3072; 3074) + WHITESPACE@[3074; 3078) + RANGE_EXPR@[3078; 3241) + DOTDOTEQ@[3078; 3081) + RANGE_EXPR@[3081; 3241) + DOTDOT@[3081; 3083) + WHITESPACE@[3083; 3084) + RANGE_EXPR@[3084; 3241) + DOTDOTEQ@[3084; 3087) + RANGE_EXPR@[3087; 3241) + DOTDOT@[3087; 3089) + WHITESPACE@[3089; 3093) + RANGE_EXPR@[3093; 3241) + DOTDOT@[3093; 3095) + WHITESPACE@[3095; 3096) + RANGE_EXPR@[3096; 3241) + DOTDOTEQ@[3096; 3099) + RANGE_EXPR@[3099; 3241) + DOTDOT@[3099; 3101) + WHITESPACE@[3101; 3102) + RANGE_EXPR@[3102; 3241) + DOTDOT@[3102; 3104) + WHITESPACE@[3104; 3108) + RANGE_EXPR@[3108; 3241) + DOTDOT@[3108; 3110) + WHITESPACE@[3110; 3111) + RANGE_EXPR@[3111; 3241) + DOTDOTEQ@[3111; 3114) + RANGE_EXPR@[3114; 3241) + DOTDOT@[3114; 3116) + WHITESPACE@[3116; 3117) + RANGE_EXPR@[3117; 3241) + DOTDOT@[3117; 3119) + WHITESPACE@[3119; 3124) + RANGE_EXPR@[3124; 3241) + DOTDOTEQ@[3124; 3127) + RANGE_EXPR@[3127; 3241) + DOTDOT@[3127; 3129) + WHITESPACE@[3129; 3130) + RANGE_EXPR@[3130; 3241) + DOTDOTEQ@[3130; 3133) + RANGE_EXPR@[3133; 3241) + DOTDOT@[3133; 3135) + WHITESPACE@[3135; 3139) + RANGE_EXPR@[3139; 3241) + DOTDOTEQ@[3139; 3142) + RANGE_EXPR@[3142; 3241) + DOTDOT@[3142; 3144) + WHITESPACE@[3144; 3145) + RANGE_EXPR@[3145; 3241) + DOTDOTEQ@[3145; 3148) + RANGE_EXPR@[3148; 3241) + DOTDOT@[3148; 3150) + WHITESPACE@[3150; 3154) + RANGE_EXPR@[3154; 3241) + DOTDOT@[3154; 3156) + WHITESPACE@[3156; 3157) + RANGE_EXPR@[3157; 3241) + DOTDOT@[3157; 3159) + WHITESPACE@[3159; 3160) + RANGE_EXPR@[3160; 3241) + DOTDOTEQ@[3160; 3163) + RANGE_EXPR@[3163; 3241) + DOTDOT@[3163; 3165) + WHITESPACE@[3165; 3169) + RANGE_EXPR@[3169; 3241) + DOTDOT@[3169; 3171) + WHITESPACE@[3171; 3172) + RANGE_EXPR@[3172; 3241) + DOTDOTEQ@[3172; 3175) + RANGE_EXPR@[3175; 3241) + DOTDOT@[3175; 3177) + WHITESPACE@[3177; 3178) + RANGE_EXPR@[3178; 3241) + DOTDOT@[3178; 3180) + WHITESPACE@[3180; 3185) + RANGE_EXPR@[3185; 3241) + DOTDOTEQ@[3185; 3188) + RANGE_EXPR@[3188; 3241) + DOTDOT@[3188; 3190) + WHITESPACE@[3190; 3191) + RANGE_EXPR@[3191; 3241) + DOTDOTEQ@[3191; 3194) + RANGE_EXPR@[3194; 3241) + DOTDOT@[3194; 3196) + WHITESPACE@[3196; 3200) + RANGE_EXPR@[3200; 3241) + DOTDOT@[3200; 3202) + WHITESPACE@[3202; 3203) + RANGE_EXPR@[3203; 3241) + DOTDOTEQ@[3203; 3206) + RANGE_EXPR@[3206; 3241) + DOTDOTEQ@[3206; 3209) + RANGE_EXPR@[3209; 3241) + DOTDOT@[3209; 3211) + WHITESPACE@[3211; 3215) + RANGE_EXPR@[3215; 3241) + DOTDOTEQ@[3215; 3218) + RANGE_EXPR@[3218; 3241) + DOTDOTEQ@[3218; 3221) + RANGE_EXPR@[3221; 3241) + DOTDOT@[3221; 3223) + WHITESPACE@[3223; 3224) + RANGE_EXPR@[3224; 3241) + DOTDOT@[3224; 3226) + WHITESPACE@[3226; 3230) + RANGE_EXPR@[3230; 3241) + DOTDOT@[3230; 3232) + WHITESPACE@[3232; 3233) + RANGE_EXPR@[3233; 3241) + DOTDOTEQ@[3233; 3236) + RANGE_EXPR@[3236; 3241) + DOTDOT@[3236; 3238) + WHITESPACE@[3238; 3239) + RANGE_EXPR@[3239; 3241) + DOTDOT@[3239; 3241) + WHITESPACE@[3241; 3242) + R_CURLY@[3242; 3243) + WHITESPACE@[3243; 3245) + FN_DEF@[3245; 3281) + FN_KW@[3245; 3247) + WHITESPACE@[3247; 3248) + NAME@[3248; 3254) + IDENT@[3248; 3254) "ktulhu" + PARAM_LIST@[3254; 3256) + L_PAREN@[3254; 3255) + R_PAREN@[3255; 3256) + WHITESPACE@[3256; 3257) + BLOCK@[3257; 3281) + L_CURLY@[3257; 3258) + WHITESPACE@[3258; 3263) + SEMI@[3263; 3264) + SEMI@[3264; 3265) + SEMI@[3265; 3266) + EXPR_STMT@[3266; 3269) + TUPLE_EXPR@[3266; 3268) + L_PAREN@[3266; 3267) + R_PAREN@[3267; 3268) + SEMI@[3268; 3269) + SEMI@[3269; 3270) + SEMI@[3270; 3271) + SEMI@[3271; 3272) + SEMI@[3272; 3273) + SEMI@[3273; 3274) + SEMI@[3274; 3275) + SEMI@[3275; 3276) + SEMI@[3276; 3277) + TUPLE_EXPR@[3277; 3279) + L_PAREN@[3277; 3278) + R_PAREN@[3278; 3279) + WHITESPACE@[3279; 3280) + R_CURLY@[3280; 3281) + WHITESPACE@[3281; 3283) + FN_DEF@[3283; 3541) + VISIBILITY@[3283; 3286) + PUB_KW@[3283; 3286) + WHITESPACE@[3286; 3287) + FN_KW@[3287; 3289) + WHITESPACE@[3289; 3290) + NAME@[3290; 3294) + IDENT@[3290; 3294) "main" + PARAM_LIST@[3294; 3296) + L_PAREN@[3294; 3295) + R_PAREN@[3295; 3296) + WHITESPACE@[3296; 3297) + BLOCK@[3297; 3541) + L_CURLY@[3297; 3298) + WHITESPACE@[3298; 3303) + EXPR_STMT@[3303; 3313) + CALL_EXPR@[3303; 3312) + PATH_EXPR@[3303; 3310) + PATH@[3303; 3310) + PATH_SEGMENT@[3303; 3310) + NAME_REF@[3303; 3310) + IDENT@[3303; 3310) "strange" + ARG_LIST@[3310; 3312) + L_PAREN@[3310; 3311) + R_PAREN@[3311; 3312) + SEMI@[3312; 3313) + WHITESPACE@[3313; 3318) + EXPR_STMT@[3318; 3326) + CALL_EXPR@[3318; 3325) + PATH_EXPR@[3318; 3323) + PATH@[3318; 3323) + PATH_SEGMENT@[3318; 3323) + NAME_REF@[3318; 3323) + IDENT@[3318; 3323) "funny" + ARG_LIST@[3323; 3325) + L_PAREN@[3323; 3324) + R_PAREN@[3324; 3325) + SEMI@[3325; 3326) + WHITESPACE@[3326; 3331) + EXPR_STMT@[3331; 3338) + CALL_EXPR@[3331; 3337) + PATH_EXPR@[3331; 3335) + PATH@[3331; 3335) + PATH_SEGMENT@[3331; 3335) + NAME_REF@[3331; 3335) + IDENT@[3331; 3335) "what" + ARG_LIST@[3335; 3337) + L_PAREN@[3335; 3336) + R_PAREN@[3336; 3337) + SEMI@[3337; 3338) + WHITESPACE@[3338; 3343) + EXPR_STMT@[3343; 3357) + CALL_EXPR@[3343; 3356) + PATH_EXPR@[3343; 3354) + PATH@[3343; 3354) + PATH_SEGMENT@[3343; 3354) + NAME_REF@[3343; 3354) + IDENT@[3343; 3354) "zombiejesus" + ARG_LIST@[3354; 3356) + L_PAREN@[3354; 3355) + R_PAREN@[3355; 3356) + SEMI@[3356; 3357) + WHITESPACE@[3357; 3362) + EXPR_STMT@[3362; 3372) + CALL_EXPR@[3362; 3371) + PATH_EXPR@[3362; 3369) + PATH@[3362; 3369) + PATH_SEGMENT@[3362; 3369) + NAME_REF@[3362; 3369) + IDENT@[3362; 3369) "notsure" + ARG_LIST@[3369; 3371) + L_PAREN@[3369; 3370) + R_PAREN@[3370; 3371) + SEMI@[3371; 3372) + WHITESPACE@[3372; 3377) + EXPR_STMT@[3377; 3393) + CALL_EXPR@[3377; 3392) + PATH_EXPR@[3377; 3390) + PATH@[3377; 3390) + PATH_SEGMENT@[3377; 3390) + NAME_REF@[3377; 3390) + IDENT@[3377; 3390) "canttouchthis" + ARG_LIST@[3390; 3392) + L_PAREN@[3390; 3391) + R_PAREN@[3391; 3392) + SEMI@[3392; 3393) + WHITESPACE@[3393; 3398) + EXPR_STMT@[3398; 3410) + CALL_EXPR@[3398; 3409) + PATH_EXPR@[3398; 3407) + PATH@[3398; 3407) + PATH_SEGMENT@[3398; 3407) + NAME_REF@[3398; 3407) + IDENT@[3398; 3407) "angrydome" + ARG_LIST@[3407; 3409) + L_PAREN@[3407; 3408) + R_PAREN@[3408; 3409) + SEMI@[3409; 3410) + WHITESPACE@[3410; 3415) + EXPR_STMT@[3415; 3430) + CALL_EXPR@[3415; 3429) + PATH_EXPR@[3415; 3427) + PATH@[3415; 3427) + PATH_SEGMENT@[3415; 3427) + NAME_REF@[3415; 3427) + IDENT@[3415; 3427) "evil_lincoln" + ARG_LIST@[3427; 3429) + L_PAREN@[3427; 3428) + R_PAREN@[3428; 3429) + SEMI@[3429; 3430) + WHITESPACE@[3430; 3435) + EXPR_STMT@[3435; 3442) + CALL_EXPR@[3435; 3441) + PATH_EXPR@[3435; 3439) + PATH@[3435; 3439) + PATH_SEGMENT@[3435; 3439) + NAME_REF@[3435; 3439) + IDENT@[3435; 3439) "dots" + ARG_LIST@[3439; 3441) + L_PAREN@[3439; 3440) + R_PAREN@[3440; 3441) + SEMI@[3441; 3442) + WHITESPACE@[3442; 3447) + EXPR_STMT@[3447; 3455) + CALL_EXPR@[3447; 3454) + PATH_EXPR@[3447; 3449) + PATH@[3447; 3449) + PATH_SEGMENT@[3447; 3449) + NAME_REF@[3447; 3449) + IDENT@[3447; 3449) "u8" + ARG_LIST@[3449; 3454) + L_PAREN@[3449; 3450) + LITERAL@[3450; 3453) + INT_NUMBER@[3450; 3453) "8u8" + R_PAREN@[3453; 3454) + SEMI@[3454; 3455) + WHITESPACE@[3455; 3460) + EXPR_STMT@[3460; 3468) + CALL_EXPR@[3460; 3467) + PATH_EXPR@[3460; 3465) + PATH@[3460; 3465) + PATH_SEGMENT@[3460; 3465) + NAME_REF@[3460; 3465) + IDENT@[3460; 3465) "fishy" + ARG_LIST@[3465; 3467) + L_PAREN@[3465; 3466) + R_PAREN@[3466; 3467) + SEMI@[3467; 3468) + WHITESPACE@[3468; 3473) + EXPR_STMT@[3473; 3481) + CALL_EXPR@[3473; 3480) + PATH_EXPR@[3473; 3478) + PATH@[3473; 3478) + PATH_SEGMENT@[3473; 3478) + NAME_REF@[3473; 3478) + IDENT@[3473; 3478) "union" + ARG_LIST@[3478; 3480) + L_PAREN@[3478; 3479) + R_PAREN@[3479; 3480) + SEMI@[3480; 3481) + WHITESPACE@[3481; 3486) + EXPR_STMT@[3486; 3507) + CALL_EXPR@[3486; 3506) + PATH_EXPR@[3486; 3504) + PATH@[3486; 3504) + PATH_SEGMENT@[3486; 3504) + NAME_REF@[3486; 3504) + IDENT@[3486; 3504) "special_characters" + ARG_LIST@[3504; 3506) + L_PAREN@[3504; 3505) + R_PAREN@[3505; 3506) + SEMI@[3506; 3507) + WHITESPACE@[3507; 3512) + EXPR_STMT@[3512; 3525) + CALL_EXPR@[3512; 3524) + PATH_EXPR@[3512; 3522) + PATH@[3512; 3522) + PATH_SEGMENT@[3512; 3522) + NAME_REF@[3512; 3522) + IDENT@[3512; 3522) "punch_card" + ARG_LIST@[3522; 3524) + L_PAREN@[3522; 3523) + R_PAREN@[3523; 3524) + SEMI@[3524; 3525) + WHITESPACE@[3525; 3530) + EXPR_STMT@[3530; 3539) + CALL_EXPR@[3530; 3538) + PATH_EXPR@[3530; 3536) + PATH@[3530; 3536) + PATH_SEGMENT@[3530; 3536) + NAME_REF@[3530; 3536) + IDENT@[3530; 3536) "ktulhu" + ARG_LIST@[3536; 3538) + L_PAREN@[3536; 3537) + R_PAREN@[3537; 3538) + SEMI@[3538; 3539) + WHITESPACE@[3539; 3540) + R_CURLY@[3540; 3541) + WHITESPACE@[3541; 3542) -- cgit v1.2.3 From 9beee92500bfb5953717a67c18217722ea82be49 Mon Sep 17 00:00:00 2001 From: DJMcNab <36049421+DJMcNab@users.noreply.github.com> Date: Fri, 21 Dec 2018 10:03:02 +0000 Subject: Add comment about the source of the weird_exprs test --- .../tests/data/parser/ok/0035_weird_exprs.rs | 5 + .../tests/data/parser/ok/0035_weird_exprs.txt | 4478 ++++++++++---------- 2 files changed, 2248 insertions(+), 2235 deletions(-) diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs index 74edc6354..8c1323163 100644 --- a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs +++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.rs @@ -1,3 +1,8 @@ +//! Adapted from a `rustc` test, which can be found at +//! https://github.com/rust-lang/rust/blob/6d34ec18c7d7e574553f6347ecf08e1e1c45c13d/src/test/run-pass/weird-exprs.rs. +//! +//! Reported to rust-analyzer in https://github.com/rust-analyzer/rust-analyzer/issues/290 + #![allow(non_camel_case_types)] #![allow(dead_code)] #![allow(unreachable_code)] diff --git a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt index e4507c553..20932a837 100644 --- a/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt +++ b/crates/ra_syntax/tests/data/parser/ok/0035_weird_exprs.txt @@ -1,2236 +1,2244 @@ -SOURCE_FILE@[0; 3542) - ATTR@[0; 31) - POUND@[0; 1) - EXCL@[1; 2) - TOKEN_TREE@[2; 31) - L_BRACK@[2; 3) - IDENT@[3; 8) "allow" - TOKEN_TREE@[8; 30) - L_PAREN@[8; 9) - IDENT@[9; 29) "non_camel_case_types" - R_PAREN@[29; 30) - R_BRACK@[30; 31) - WHITESPACE@[31; 32) - ATTR@[32; 52) - POUND@[32; 33) - EXCL@[33; 34) - TOKEN_TREE@[34; 52) - L_BRACK@[34; 35) - IDENT@[35; 40) "allow" - TOKEN_TREE@[40; 51) - L_PAREN@[40; 41) - IDENT@[41; 50) "dead_code" - R_PAREN@[50; 51) - R_BRACK@[51; 52) - WHITESPACE@[52; 53) - ATTR@[53; 80) - POUND@[53; 54) - EXCL@[54; 55) - TOKEN_TREE@[55; 80) - L_BRACK@[55; 56) - IDENT@[56; 61) "allow" - TOKEN_TREE@[61; 79) - L_PAREN@[61; 62) - IDENT@[62; 78) "unreachable_code" - R_PAREN@[78; 79) - R_BRACK@[79; 80) - WHITESPACE@[80; 81) - ATTR@[81; 105) - POUND@[81; 82) - EXCL@[82; 83) - TOKEN_TREE@[83; 105) - L_BRACK@[83; 84) - IDENT@[84; 89) "allow" - TOKEN_TREE@[89; 104) - L_PAREN@[89; 90) - IDENT@[90; 103) "unused_parens" - R_PAREN@[103; 104) - R_BRACK@[104; 105) - WHITESPACE@[105; 107) - ATTR@[107; 134) - POUND@[107; 108) - EXCL@[108; 109) - TOKEN_TREE@[109; 134) - L_BRACK@[109; 110) - IDENT@[110; 125) "recursion_limit" - WHITESPACE@[125; 126) - EQ@[126; 127) - WHITESPACE@[127; 128) - STRING@[128; 133) - R_BRACK@[133; 134) - WHITESPACE@[134; 136) - USE_ITEM@[136; 156) - USE_KW@[136; 139) - WHITESPACE@[139; 140) - USE_TREE@[140; 155) - PATH@[140; 155) - PATH@[140; 149) - PATH@[140; 143) - PATH_SEGMENT@[140; 143) - NAME_REF@[140; 143) - IDENT@[140; 143) "std" - COLONCOLON@[143; 145) - PATH_SEGMENT@[145; 149) - NAME_REF@[145; 149) - IDENT@[145; 149) "cell" - COLONCOLON@[149; 151) - PATH_SEGMENT@[151; 155) - NAME_REF@[151; 155) - IDENT@[151; 155) "Cell" - SEMI@[155; 156) - WHITESPACE@[156; 157) - USE_ITEM@[157; 176) - USE_KW@[157; 160) - WHITESPACE@[160; 161) - USE_TREE@[161; 175) - PATH@[161; 175) - PATH@[161; 169) - PATH@[161; 164) - PATH_SEGMENT@[161; 164) - NAME_REF@[161; 164) - IDENT@[161; 164) "std" - COLONCOLON@[164; 166) - PATH_SEGMENT@[166; 169) - NAME_REF@[166; 169) - IDENT@[166; 169) "mem" - COLONCOLON@[169; 171) - PATH_SEGMENT@[171; 175) - NAME_REF@[171; 175) - IDENT@[171; 175) "swap" - SEMI@[175; 176) - WHITESPACE@[176; 178) - COMMENT@[178; 247) - WHITESPACE@[247; 249) - FN_DEF@[249; 301) - FN_KW@[249; 251) - WHITESPACE@[251; 252) - NAME@[252; 259) - IDENT@[252; 259) "strange" - PARAM_LIST@[259; 261) - L_PAREN@[259; 260) - R_PAREN@[260; 261) - WHITESPACE@[261; 262) - RET_TYPE@[262; 269) - THIN_ARROW@[262; 264) - WHITESPACE@[264; 265) - PATH_TYPE@[265; 269) - PATH@[265; 269) - PATH_SEGMENT@[265; 269) - NAME_REF@[265; 269) - IDENT@[265; 269) "bool" - WHITESPACE@[269; 270) - BLOCK@[270; 301) - L_CURLY@[270; 271) - WHITESPACE@[271; 272) - LET_STMT@[272; 299) - LET_KW@[272; 275) - WHITESPACE@[275; 276) - BIND_PAT@[276; 278) - NAME@[276; 278) - IDENT@[276; 278) "_x" - COLON@[278; 279) - WHITESPACE@[279; 280) - PATH_TYPE@[280; 284) - PATH@[280; 284) - PATH_SEGMENT@[280; 284) - NAME_REF@[280; 284) - IDENT@[280; 284) "bool" - WHITESPACE@[284; 285) - EQ@[285; 286) - WHITESPACE@[286; 287) - RETURN_EXPR@[287; 298) - RETURN_KW@[287; 293) - WHITESPACE@[293; 294) - LITERAL@[294; 298) - TRUE_KW@[294; 298) - SEMI@[298; 299) - WHITESPACE@[299; 300) - R_CURLY@[300; 301) - WHITESPACE@[301; 303) - FN_DEF@[303; 353) - FN_KW@[303; 305) - WHITESPACE@[305; 306) - NAME@[306; 311) - IDENT@[306; 311) "funny" - PARAM_LIST@[311; 313) - L_PAREN@[311; 312) - R_PAREN@[312; 313) - WHITESPACE@[313; 314) - BLOCK@[314; 353) - L_CURLY@[314; 315) - WHITESPACE@[315; 320) - FN_DEF@[320; 336) - FN_KW@[320; 322) - WHITESPACE@[322; 323) - NAME@[323; 324) - IDENT@[323; 324) "f" - PARAM_LIST@[324; 332) - L_PAREN@[324; 325) - PARAM@[325; 331) - BIND_PAT@[325; 327) - NAME@[325; 327) - IDENT@[325; 327) "_x" - COLON@[327; 328) - WHITESPACE@[328; 329) - TUPLE_TYPE@[329; 331) - L_PAREN@[329; 330) - R_PAREN@[330; 331) - R_PAREN@[331; 332) - WHITESPACE@[332; 333) - BLOCK@[333; 336) - L_CURLY@[333; 334) - WHITESPACE@[334; 335) - R_CURLY@[335; 336) - WHITESPACE@[336; 341) - EXPR_STMT@[341; 351) - CALL_EXPR@[341; 350) - PATH_EXPR@[341; 342) - PATH@[341; 342) - PATH_SEGMENT@[341; 342) - NAME_REF@[341; 342) - IDENT@[341; 342) "f" - ARG_LIST@[342; 350) - L_PAREN@[342; 343) - RETURN_EXPR@[343; 349) - RETURN_KW@[343; 349) - R_PAREN@[349; 350) - SEMI@[350; 351) - WHITESPACE@[351; 352) - R_CURLY@[352; 353) - WHITESPACE@[353; 355) - FN_DEF@[355; 545) - FN_KW@[355; 357) - WHITESPACE@[357; 358) - NAME@[358; 362) - IDENT@[358; 362) "what" - PARAM_LIST@[362; 364) - L_PAREN@[362; 363) - R_PAREN@[363; 364) - WHITESPACE@[364; 365) - BLOCK@[365; 545) - L_CURLY@[365; 366) - WHITESPACE@[366; 371) - FN_DEF@[371; 449) - FN_KW@[371; 373) - WHITESPACE@[373; 374) - NAME@[374; 377) - IDENT@[374; 377) "the" - PARAM_LIST@[377; 393) - L_PAREN@[377; 378) - PARAM@[378; 392) - BIND_PAT@[378; 379) - NAME@[378; 379) - IDENT@[378; 379) "x" - COLON@[379; 380) - WHITESPACE@[380; 381) - REFERENCE_TYPE@[381; 392) - AMP@[381; 382) - PATH_TYPE@[382; 392) - PATH@[382; 392) - PATH_SEGMENT@[382; 392) - NAME_REF@[382; 386) - IDENT@[382; 386) "Cell" - TYPE_ARG_LIST@[386; 392) - L_ANGLE@[386; 387) - TYPE_ARG@[387; 391) - PATH_TYPE@[387; 391) - PATH@[387; 391) - PATH_SEGMENT@[387; 391) - NAME_REF@[387; 391) - IDENT@[387; 391) "bool" - R_ANGLE@[391; 392) - R_PAREN@[392; 393) - WHITESPACE@[393; 394) - BLOCK@[394; 449) - L_CURLY@[394; 395) - WHITESPACE@[395; 404) - EXPR_STMT@[404; 443) - RETURN_EXPR@[404; 442) - RETURN_KW@[404; 410) - WHITESPACE@[410; 411) - WHILE_EXPR@[411; 442) - WHILE_KW@[411; 416) - WHITESPACE@[416; 417) - CONDITION@[417; 425) - PREFIX_EXPR@[417; 425) - EXCL@[417; 418) - METHOD_CALL_EXPR@[418; 425) - PATH_EXPR@[418; 419) - PATH@[418; 419) - PATH_SEGMENT@[418; 419) - NAME_REF@[418; 419) - IDENT@[418; 419) "x" - DOT@[419; 420) - NAME_REF@[420; 423) - IDENT@[420; 423) "get" - ARG_LIST@[423; 425) - L_PAREN@[423; 424) - R_PAREN@[424; 425) - WHITESPACE@[425; 426) - BLOCK@[426; 442) - L_CURLY@[426; 427) - WHITESPACE@[427; 428) - EXPR_STMT@[428; 440) - METHOD_CALL_EXPR@[428; 439) - PATH_EXPR@[428; 429) - PATH@[428; 429) - PATH_SEGMENT@[428; 429) - NAME_REF@[428; 429) - IDENT@[428; 429) "x" - DOT@[429; 430) - NAME_REF@[430; 433) - IDENT@[430; 433) "set" - ARG_LIST@[433; 439) - L_PAREN@[433; 434) - LITERAL@[434; 438) - TRUE_KW@[434; 438) - R_PAREN@[438; 439) - SEMI@[439; 440) - WHITESPACE@[440; 441) - R_CURLY@[441; 442) - SEMI@[442; 443) - WHITESPACE@[443; 448) - R_CURLY@[448; 449) - WHITESPACE@[449; 454) - LET_STMT@[454; 480) - LET_KW@[454; 457) - WHITESPACE@[457; 458) - BIND_PAT@[458; 459) - NAME@[458; 459) - IDENT@[458; 459) "i" - WHITESPACE@[459; 460) - EQ@[460; 461) - WHITESPACE@[461; 462) - REF_EXPR@[462; 479) - AMP@[462; 463) - CALL_EXPR@[463; 479) - PATH_EXPR@[463; 472) - PATH@[463; 472) - PATH@[463; 467) - PATH_SEGMENT@[463; 467) - NAME_REF@[463; 467) - IDENT@[463; 467) "Cell" - COLONCOLON@[467; 469) - PATH_SEGMENT@[469; 472) - NAME_REF@[469; 472) - IDENT@[469; 472) "new" - ARG_LIST@[472; 479) - L_PAREN@[472; 473) - LITERAL@[473; 478) - FALSE_KW@[473; 478) - R_PAREN@[478; 479) - SEMI@[479; 480) - WHITESPACE@[480; 485) - LET_STMT@[485; 507) - LET_KW@[485; 488) - WHITESPACE@[488; 489) - BIND_PAT@[489; 493) - NAME@[489; 493) - IDENT@[489; 493) "dont" - WHITESPACE@[493; 494) - EQ@[494; 495) - WHITESPACE@[495; 496) - BLOCK_EXPR@[496; 506) - BLOCK@[496; 506) - L_CURLY@[496; 497) - LAMBDA_EXPR@[497; 505) - PARAM_LIST@[497; 499) - PIPE@[497; 498) - PIPE@[498; 499) - CALL_EXPR@[499; 505) - PATH_EXPR@[499; 502) - PATH@[499; 502) - PATH_SEGMENT@[499; 502) - NAME_REF@[499; 502) - IDENT@[499; 502) "the" - ARG_LIST@[502; 505) - L_PAREN@[502; 503) - PATH_EXPR@[503; 504) - PATH@[503; 504) - PATH_SEGMENT@[503; 504) - NAME_REF@[503; 504) - IDENT@[503; 504) "i" - R_PAREN@[504; 505) - R_CURLY@[505; 506) - SEMI@[506; 507) - WHITESPACE@[507; 512) - EXPR_STMT@[512; 519) - CALL_EXPR@[512; 518) - PATH_EXPR@[512; 516) - PATH@[512; 516) - PATH_SEGMENT@[512; 516) - NAME_REF@[512; 516) - IDENT@[512; 516) "dont" - ARG_LIST@[516; 518) - L_PAREN@[516; 517) - R_PAREN@[517; 518) - SEMI@[518; 519) - WHITESPACE@[519; 524) - EXPR_STMT@[524; 543) - MACRO_CALL@[524; 542) - PATH@[524; 530) - PATH_SEGMENT@[524; 530) - NAME_REF@[524; 530) - IDENT@[524; 530) "assert" - EXCL@[530; 531) - TOKEN_TREE@[531; 542) - L_PAREN@[531; 532) - TOKEN_TREE@[532; 541) - L_PAREN@[532; 533) - IDENT@[533; 534) "i" - DOT@[534; 535) - IDENT@[535; 538) "get" - TOKEN_TREE@[538; 540) - L_PAREN@[538; 539) - R_PAREN@[539; 540) - R_PAREN@[540; 541) - R_PAREN@[541; 542) - SEMI@[542; 543) - WHITESPACE@[543; 544) - R_CURLY@[544; 545) - WHITESPACE@[545; 547) - FN_DEF@[547; 1051) - FN_KW@[547; 549) - WHITESPACE@[549; 550) - NAME@[550; 561) - IDENT@[550; 561) "zombiejesus" - PARAM_LIST@[561; 563) - L_PAREN@[561; 562) - R_PAREN@[562; 563) - WHITESPACE@[563; 564) - BLOCK@[564; 1051) - L_CURLY@[564; 565) - WHITESPACE@[565; 570) - LOOP_EXPR@[570; 1049) - LOOP_KW@[570; 574) - WHITESPACE@[574; 575) - BLOCK@[575; 1049) - L_CURLY@[575; 576) - WHITESPACE@[576; 585) - EXPR_STMT@[585; 1012) - WHILE_EXPR@[585; 1012) - WHILE_KW@[585; 590) - WHITESPACE@[590; 591) - CONDITION@[591; 599) - PAREN_EXPR@[591; 599) - L_PAREN@[591; 592) - RETURN_EXPR@[592; 598) - RETURN_KW@[592; 598) - R_PAREN@[598; 599) - WHITESPACE@[599; 600) - BLOCK@[600; 1012) - L_CURLY@[600; 601) - WHITESPACE@[601; 614) - IF_EXPR@[614; 1002) - IF_KW@[614; 616) - WHITESPACE@[616; 617) - CONDITION@[617; 625) - PAREN_EXPR@[617; 625) - L_PAREN@[617; 618) - RETURN_EXPR@[618; 624) - RETURN_KW@[618; 624) - R_PAREN@[624; 625) - WHITESPACE@[625; 626) - BLOCK@[626; 945) - L_CURLY@[626; 627) - WHITESPACE@[627; 644) - EXPR_STMT@[644; 931) - MATCH_EXPR@[644; 930) - MATCH_KW@[644; 649) - WHITESPACE@[649; 650) - PAREN_EXPR@[650; 658) - L_PAREN@[650; 651) - RETURN_EXPR@[651; 657) - RETURN_KW@[651; 657) - R_PAREN@[657; 658) - WHITESPACE@[658; 659) - MATCH_ARM_LIST@[659; 930) - L_CURLY@[659; 660) - WHITESPACE@[660; 681) - MATCH_ARM@[681; 876) - LITERAL@[681; 682) - INT_NUMBER@[681; 682) "1" - WHITESPACE@[682; 683) - FAT_ARROW@[683; 685) - WHITESPACE@[685; 686) - BLOCK_EXPR@[686; 876) - BLOCK@[686; 876) - L_CURLY@[686; 687) - WHITESPACE@[687; 712) - IF_EXPR@[712; 854) - IF_KW@[712; 714) - WHITESPACE@[714; 715) - CONDITION@[715; 723) - PAREN_EXPR@[715; 723) - L_PAREN@[715; 716) - RETURN_EXPR@[716; 722) - RETURN_KW@[716; 722) - R_PAREN@[722; 723) - WHITESPACE@[723; 724) - BLOCK@[724; 786) - L_CURLY@[724; 725) - WHITESPACE@[725; 754) - RETURN_EXPR@[754; 760) - RETURN_KW@[754; 760) - WHITESPACE@[760; 785) - R_CURLY@[785; 786) - WHITESPACE@[786; 787) - ELSE_KW@[787; 791) - WHITESPACE@[791; 792) - BLOCK@[792; 854) - L_CURLY@[792; 793) - WHITESPACE@[793; 822) - RETURN_EXPR@[822; 828) - RETURN_KW@[822; 828) - WHITESPACE@[828; 853) - R_CURLY@[853; 854) - WHITESPACE@[854; 875) - R_CURLY@[875; 876) - WHITESPACE@[876; 897) - MATCH_ARM@[897; 912) - PLACEHOLDER_PAT@[897; 898) - UNDERSCORE@[897; 898) - WHITESPACE@[898; 899) - FAT_ARROW@[899; 901) - WHITESPACE@[901; 902) - BLOCK_EXPR@[902; 912) - BLOCK@[902; 912) - L_CURLY@[902; 903) - WHITESPACE@[903; 904) - RETURN_EXPR@[904; 910) - RETURN_KW@[904; 910) - WHITESPACE@[910; 911) - R_CURLY@[911; 912) - WHITESPACE@[912; 929) - R_CURLY@[929; 930) - SEMI@[930; 931) - WHITESPACE@[931; 944) - R_CURLY@[944; 945) - WHITESPACE@[945; 946) - ELSE_KW@[946; 950) - WHITESPACE@[950; 951) - IF_EXPR@[951; 1002) - IF_KW@[951; 953) - WHITESPACE@[953; 954) - CONDITION@[954; 962) - PAREN_EXPR@[954; 962) - L_PAREN@[954; 955) - RETURN_EXPR@[955; 961) - RETURN_KW@[955; 961) - R_PAREN@[961; 962) - WHITESPACE@[962; 963) - BLOCK@[963; 1002) - L_CURLY@[963; 964) - WHITESPACE@[964; 981) - EXPR_STMT@[981; 988) - RETURN_EXPR@[981; 987) - RETURN_KW@[981; 987) - SEMI@[987; 988) - WHITESPACE@[988; 1001) - R_CURLY@[1001; 1002) - WHITESPACE@[1002; 1011) - R_CURLY@[1011; 1012) - WHITESPACE@[1012; 1021) - IF_EXPR@[1021; 1043) - IF_KW@[1021; 1023) - WHITESPACE@[1023; 1024) - CONDITION@[1024; 1032) - PAREN_EXPR@[1024; 1032) - L_PAREN@[1024; 1025) - RETURN_EXPR@[1025; 1031) - RETURN_KW@[1025; 1031) - R_PAREN@[1031; 1032) - WHITESPACE@[1032; 1033) - BLOCK@[1033; 1043) - L_CURLY@[1033; 1034) - WHITESPACE@[1034; 1035) - EXPR_STMT@[1035; 1041) - BREAK_EXPR@[1035; 1040) - BREAK_KW@[1035; 1040) - SEMI@[1040; 1041) - WHITESPACE@[1041; 1042) - R_CURLY@[1042; 1043) - WHITESPACE@[1043; 1048) - R_CURLY@[1048; 1049) - WHITESPACE@[1049; 1050) - R_CURLY@[1050; 1051) - WHITESPACE@[1051; 1053) - FN_DEF@[1053; 1268) - FN_KW@[1053; 1055) - WHITESPACE@[1055; 1056) - NAME@[1056; 1063) - IDENT@[1056; 1063) "notsure" - PARAM_LIST@[1063; 1065) - L_PAREN@[1063; 1064) - R_PAREN@[1064; 1065) - WHITESPACE@[1065; 1066) - BLOCK@[1066; 1268) - L_CURLY@[1066; 1067) - WHITESPACE@[1067; 1072) - LET_STMT@[1072; 1090) - LET_KW@[1072; 1075) - WHITESPACE@[1075; 1076) - BIND_PAT@[1076; 1082) - MUT_KW@[1076; 1079) - WHITESPACE@[1079; 1080) - NAME@[1080; 1082) - IDENT@[1080; 1082) "_x" - COLON@[1082; 1083) - WHITESPACE@[1083; 1084) - PATH_TYPE@[1084; 1089) - PATH@[1084; 1089) - PATH_SEGMENT@[1084; 1089) - NAME_REF@[1084; 1089) - IDENT@[1084; 1089) "isize" - SEMI@[1089; 1090) - WHITESPACE@[1090; 1095) - LET_STMT@[1095; 1129) - LET_KW@[1095; 1098) - WHITESPACE@[1098; 1099) - BIND_PAT@[1099; 1105) - MUT_KW@[1099; 1102) - WHITESPACE@[1102; 1103) - NAME@[1103; 1105) - IDENT@[1103; 1105) "_y" - WHITESPACE@[1105; 1106) - EQ@[1106; 1107) - WHITESPACE@[1107; 1108) - BIN_EXPR@[1108; 1128) - PAREN_EXPR@[1108; 1116) - L_PAREN@[1108; 1109) - BIN_EXPR@[1109; 1115) - PATH_EXPR@[1109; 1111) - PATH@[1109; 1111) - PATH_SEGMENT@[1109; 1111) - NAME_REF@[1109; 1111) - IDENT@[1109; 1111) "_x" - WHITESPACE@[1111; 1112) - EQ@[1112; 1113) - WHITESPACE@[1113; 1114) - LITERAL@[1114; 1115) - INT_NUMBER@[1114; 1115) "0" - R_PAREN@[1115; 1116) - WHITESPACE@[1116; 1117) - EQEQ@[1117; 1119) - WHITESPACE@[1119; 1120) - PAREN_EXPR@[1120; 1128) - L_PAREN@[1120; 1121) - BIN_EXPR@[1121; 1127) - PATH_EXPR@[1121; 1123) - PATH@[1121; 1123) - PATH_SEGMENT@[1121; 1123) - NAME_REF@[1121; 1123) - IDENT@[1121; 1123) "_x" - WHITESPACE@[1123; 1124) - EQ@[1124; 1125) - WHITESPACE@[1125; 1126) - LITERAL@[1126; 1127) - INT_NUMBER@[1126; 1127) "0" - R_PAREN@[1127; 1128) - SEMI@[1128; 1129) - WHITESPACE@[1129; 1134) - LET_STMT@[1134; 1167) - LET_KW@[1134; 1137) - WHITESPACE@[1137; 1138) - BIND_PAT@[1138; 1144) - MUT_KW@[1138; 1141) - WHITESPACE@[1141; 1142) - NAME@[1142; 1144) - IDENT@[1142; 1144) "_z" - WHITESPACE@[1144; 1145) - EQ@[1145; 1146) - WHITESPACE@[1146; 1147) - BIN_EXPR@[1147; 1166) - PAREN_EXPR@[1147; 1155) - L_PAREN@[1147; 1148) - BIN_EXPR@[1148; 1154) - PATH_EXPR@[1148; 1150) - PATH@[1148; 1150) - PATH_SEGMENT@[1148; 1150) - NAME_REF@[1148; 1150) - IDENT@[1148; 1150) "_x" - WHITESPACE@[1150; 1151) - EQ@[1151; 1152) - WHITESPACE@[1152; 1153) - LITERAL@[1153; 1154) - INT_NUMBER@[1153; 1154) "0" - R_PAREN@[1154; 1155) - WHITESPACE@[1155; 1156) - L_ANGLE@[1156; 1157) - WHITESPACE@[1157; 1158) - PAREN_EXPR@[1158; 1166) - L_PAREN@[1158; 1159) - BIN_EXPR@[1159; 1165) - PATH_EXPR@[1159; 1161) - PATH@[1159; 1161) - PATH_SEGMENT@[1159; 1161) - NAME_REF@[1159; 1161) - IDENT@[1159; 1161) "_x" - WHITESPACE@[1161; 1162) - EQ@[1162; 1163) - WHITESPACE@[1163; 1164) - LITERAL@[1164; 1165) - INT_NUMBER@[1164; 1165) "0" - R_PAREN@[1165; 1166) - SEMI@[1166; 1167) - WHITESPACE@[1167; 1172) - LET_STMT@[1172; 1203) - LET_KW@[1172; 1175) - WHITESPACE@[1175; 1176) - BIND_PAT@[1176; 1178) - NAME@[1176; 1178) - IDENT@[1176; 1178) "_a" - WHITESPACE@[1178; 1179) - EQ@[1179; 1180) - WHITESPACE@[1180; 1181) - BIN_EXPR@[1181; 1202) - PAREN_EXPR@[1181; 1190) - L_PAREN@[1181; 1182) - BIN_EXPR@[1182; 1189) - PATH_EXPR@[1182; 1184) - PATH@[1182; 1184) - PATH_SEGMENT@[1182; 1184) - NAME_REF@[1182; 1184) - IDENT@[1182; 1184) "_x" - WHITESPACE@[1184; 1185) - PLUSEQ@[1185; 1187) - WHITESPACE@[1187; 1188) - LITERAL@[1188; 1189) - INT_NUMBER@[1188; 1189) "0" - R_PAREN@[1189; 1190) - WHITESPACE@[1190; 1191) - EQEQ@[1191; 1193) - WHITESPACE@[1193; 1194) - PAREN_EXPR@[1194; 1202) - L_PAREN@[1194; 1195) - BIN_EXPR@[1195; 1201) - PATH_EXPR@[1195; 1197) - PATH@[1195; 1197) - PATH_SEGMENT@[1195; 1197) - NAME_REF@[1195; 1197) - IDENT@[1195; 1197) "_x" - WHITESPACE@[1197; 1198) - EQ@[1198; 1199) - WHITESPACE@[1199; 1200) - LITERAL@[1200; 1201) - INT_NUMBER@[1200; 1201) "0" - R_PAREN@[1201; 1202) - SEMI@[1202; 1203) - WHITESPACE@[1203; 1208) - LET_STMT@[1208; 1266) - LET_KW@[1208; 1211) - WHITESPACE@[1211; 1212) - BIND_PAT@[1212; 1214) - NAME@[1212; 1214) - IDENT@[1212; 1214) "_b" - WHITESPACE@[1214; 1215) - EQ@[1215; 1216) - WHITESPACE@[1216; 1217) - BIN_EXPR@[1217; 1265) - CALL_EXPR@[1217; 1239) - PATH_EXPR@[1217; 1221) - PATH@[1217; 1221) - PATH_SEGMENT@[1217; 1221) - NAME_REF@[1217; 1221) - IDENT@[1217; 1221) "swap" - ARG_LIST@[1221; 1239) - L_PAREN@[1221; 1222) - REF_EXPR@[1222; 1229) - AMP@[1222; 1223) - MUT_KW@[1223; 1226) - WHITESPACE@[1226; 1227) - PATH_EXPR@[1227; 1229) - PATH@[1227; 1229) - PATH_SEGMENT@[1227; 1229) - NAME_REF@[1227; 1229) - IDENT@[1227; 1229) "_y" - COMMA@[1229; 1230) - WHITESPACE@[1230; 1231) - REF_EXPR@[1231; 1238) - AMP@[1231; 1232) - MUT_KW@[1232; 1235) - WHITESPACE@[1235; 1236) - PATH_EXPR@[1236; 1238) - PATH@[1236; 1238) - PATH_SEGMENT@[1236; 1238) - NAME_REF@[1236; 1238) - IDENT@[1236; 1238) "_z" - R_PAREN@[1238; 1239) - WHITESPACE@[1239; 1240) - EQEQ@[1240; 1242) - WHITESPACE@[1242; 1243) - CALL_EXPR@[1243; 1265) - PATH_EXPR@[1243; 1247) - PATH@[1243; 1247) - PATH_SEGMENT@[1243; 1247) - NAME_REF@[1243; 1247) - IDENT@[1243; 1247) "swap" - ARG_LIST@[1247; 1265) - L_PAREN@[1247; 1248) - REF_EXPR@[1248; 1255) - AMP@[1248; 1249) - MUT_KW@[1249; 1252) - WHITESPACE@[1252; 1253) - PATH_EXPR@[1253; 1255) - PATH@[1253; 1255) - PATH_SEGMENT@[1253; 1255) - NAME_REF@[1253; 1255) - IDENT@[1253; 1255) "_y" - COMMA@[1255; 1256) - WHITESPACE@[1256; 1257) - REF_EXPR@[1257; 1264) - AMP@[1257; 1258) - MUT_KW@[1258; 1261) - WHITESPACE@[1261; 1262) - PATH_EXPR@[1262; 1264) - PATH@[1262; 1264) - PATH_SEGMENT@[1262; 1264) - NAME_REF@[1262; 1264) - IDENT@[1262; 1264) "_z" - R_PAREN@[1264; 1265) - SEMI@[1265; 1266) - WHITESPACE@[1266; 1267) - R_CURLY@[1267; 1268) - WHITESPACE@[1268; 1270) - FN_DEF@[1270; 1470) - FN_KW@[1270; 1272) - WHITESPACE@[1272; 1273) - NAME@[1273; 1286) - IDENT@[1273; 1286) "canttouchthis" - PARAM_LIST@[1286; 1288) - L_PAREN@[1286; 1287) - R_PAREN@[1287; 1288) - WHITESPACE@[1288; 1289) - RET_TYPE@[1289; 1297) - THIN_ARROW@[1289; 1291) - WHITESPACE@[1291; 1292) - PATH_TYPE@[1292; 1297) - PATH@[1292; 1297) - PATH_SEGMENT@[1292; 1297) - NAME_REF@[1292; 1297) - IDENT@[1292; 1297) "usize" - WHITESPACE@[1297; 1298) - BLOCK@[1298; 1470) - L_CURLY@[1298; 1299) - WHITESPACE@[1299; 1304) - FN_DEF@[1304; 1327) - FN_KW@[1304; 1306) - WHITESPACE@[1306; 1307) - NAME@[1307; 1308) - IDENT@[1307; 1308) "p" - PARAM_LIST@[1308; 1310) - L_PAREN@[1308; 1309) - R_PAREN@[1309; 1310) - WHITESPACE@[1310; 1311) - RET_TYPE@[1311; 1318) - THIN_ARROW@[1311; 1313) - WHITESPACE@[1313; 1314) - PATH_TYPE@[1314; 1318) - PATH@[1314; 1318) - PATH_SEGMENT@[1314; 1318) - NAME_REF@[1314; 1318) - IDENT@[1314; 1318) "bool" - WHITESPACE@[1318; 1319) - BLOCK@[1319; 1327) - L_CURLY@[1319; 1320) - WHITESPACE@[1320; 1321) - LITERAL@[1321; 1325) - TRUE_KW@[1321; 1325) - WHITESPACE@[1325; 1326) - R_CURLY@[1326; 1327) - WHITESPACE@[1327; 1332) - LET_STMT@[1332; 1377) - LET_KW@[1332; 1335) - WHITESPACE@[1335; 1336) - BIND_PAT@[1336; 1338) - NAME@[1336; 1338) - IDENT@[1336; 1338) "_a" - WHITESPACE@[1338; 1339) - EQ@[1339; 1340) - WHITESPACE@[1340; 1341) - PAREN_EXPR@[1341; 1376) - L_PAREN@[1341; 1342) - BIN_EXPR@[1342; 1375) - MACRO_CALL@[1342; 1357) - PATH@[1342; 1348) - PATH_SEGMENT@[1342; 1348) - NAME_REF@[1342; 1348) - IDENT@[1342; 1348) "assert" - EXCL@[1348; 1349) - TOKEN_TREE@[1349; 1357) - L_PAREN@[1349; 1350) - TOKEN_TREE@[1350; 1356) - L_PAREN@[1350; 1351) - TRUE_KW@[1351; 1355) - R_PAREN@[1355; 1356) - R_PAREN@[1356; 1357) - WHITESPACE@[1357; 1358) - EQEQ@[1358; 1360) - WHITESPACE@[1360; 1361) - PAREN_EXPR@[1361; 1375) - L_PAREN@[1361; 1362) - MACRO_CALL@[1362; 1374) - PATH@[1362; 1368) - PATH_SEGMENT@[1362; 1368) - NAME_REF@[1362; 1368) - IDENT@[1362; 1368) "assert" - EXCL@[1368; 1369) - TOKEN_TREE@[1369; 1374) - L_PAREN@[1369; 1370) - IDENT@[1370; 1371) "p" - TOKEN_TREE@[1371; 1373) - L_PAREN@[1371; 1372) - R_PAREN@[1372; 1373) - R_PAREN@[1373; 1374) - R_PAREN@[1374; 1375) - R_PAREN@[1375; 1376) - SEMI@[1376; 1377) - WHITESPACE@[1377; 1382) - LET_STMT@[1382; 1414) - LET_KW@[1382; 1385) - WHITESPACE@[1385; 1386) - BIND_PAT@[1386; 1388) - NAME@[1386; 1388) - IDENT@[1386; 1388) "_c" - WHITESPACE@[1388; 1389) - EQ@[1389; 1390) - WHITESPACE@[1390; 1391) - PAREN_EXPR@[1391; 1413) - L_PAREN@[1391; 1392) - BIN_EXPR@[1392; 1412) - MACRO_CALL@[1392; 1406) - PATH@[1392; 1398) - PATH_SEGMENT@[1392; 1398) - NAME_REF@[1392; 1398) - IDENT@[1392; 1398) "assert" - EXCL@[1398; 1399) - TOKEN_TREE@[1399; 1406) - L_PAREN@[1399; 1400) - TOKEN_TREE@[1400; 1405) - L_PAREN@[1400; 1401) - IDENT@[1401; 1402) "p" - TOKEN_TREE@[1402; 1404) - L_PAREN@[1402; 1403) - R_PAREN@[1403; 1404) - R_PAREN@[1404; 1405) - R_PAREN@[1405; 1406) - WHITESPACE@[1406; 1407) - EQEQ@[1407; 1409) - WHITESPACE@[1409; 1410) - TUPLE_EXPR@[1410; 1412) - L_PAREN@[1410; 1411) - R_PAREN@[1411; 1412) - R_PAREN@[1412; 1413) - SEMI@[1413; 1414) - WHITESPACE@[1414; 1419) - LET_STMT@[1419; 1468) - LET_KW@[1419; 1422) - WHITESPACE@[1422; 1423) - BIND_PAT@[1423; 1425) - NAME@[1423; 1425) - IDENT@[1423; 1425) "_b" - COLON@[1425; 1426) - WHITESPACE@[1426; 1427) - PATH_TYPE@[1427; 1431) - PATH@[1427; 1431) - PATH_SEGMENT@[1427; 1431) - NAME_REF@[1427; 1431) - IDENT@[1427; 1431) "bool" - WHITESPACE@[1431; 1432) - EQ@[1432; 1433) - WHITESPACE@[1433; 1434) - PAREN_EXPR@[1434; 1467) - L_PAREN@[1434; 1435) - BIN_EXPR@[1435; 1466) - MACRO_CALL@[1435; 1452) - PATH@[1435; 1442) - PATH_SEGMENT@[1435; 1442) - NAME_REF@[1435; 1442) - IDENT@[1435; 1442) "println" - EXCL@[1442; 1443) - TOKEN_TREE@[1443; 1452) - L_PAREN@[1443; 1444) - STRING@[1444; 1448) - COMMA@[1448; 1449) - WHITESPACE@[1449; 1450) - INT_NUMBER@[1450; 1451) "0" - R_PAREN@[1451; 1452) - WHITESPACE@[1452; 1453) - EQEQ@[1453; 1455) - WHITESPACE@[1455; 1456) - PAREN_EXPR@[1456; 1466) - L_PAREN@[1456; 1457) - RETURN_EXPR@[1457; 1465) - RETURN_KW@[1457; 1463) - WHITESPACE@[1463; 1464) - LITERAL@[1464; 1465) - INT_NUMBER@[1464; 1465) "0" - R_PAREN@[1465; 1466) - R_PAREN@[1466; 1467) - SEMI@[1467; 1468) - WHITESPACE@[1468; 1469) - R_CURLY@[1469; 1470) - WHITESPACE@[1470; 1472) - FN_DEF@[1472; 1633) - FN_KW@[1472; 1474) - WHITESPACE@[1474; 1475) - NAME@[1475; 1484) - IDENT@[1475; 1484) "angrydome" - PARAM_LIST@[1484; 1486) - L_PAREN@[1484; 1485) - R_PAREN@[1485; 1486) - WHITESPACE@[1486; 1487) - BLOCK@[1487; 1633) - L_CURLY@[1487; 1488) - WHITESPACE@[1488; 1493) - EXPR_STMT@[1493; 1514) - LOOP_EXPR@[1493; 1514) - LOOP_KW@[1493; 1497) - WHITESPACE@[1497; 1498) - BLOCK@[1498; 1514) - L_CURLY@[1498; 1499) - WHITESPACE@[1499; 1500) - IF_EXPR@[1500; 1512) - IF_KW@[1500; 1502) - WHITESPACE@[1502; 1503) - CONDITION@[1503; 1508) - BREAK_EXPR@[1503; 1508) - BREAK_KW@[1503; 1508) - WHITESPACE@[1508; 1509) - BLOCK@[1509; 1512) - L_CURLY@[1509; 1510) - WHITESPACE@[1510; 1511) - R_CURLY@[1511; 1512) - WHITESPACE@[1512; 1513) - R_CURLY@[1513; 1514) - WHITESPACE@[1514; 1519) - LET_STMT@[1519; 1533) - LET_KW@[1519; 1522) - WHITESPACE@[1522; 1523) - BIND_PAT@[1523; 1528) - MUT_KW@[1523; 1526) - WHITESPACE@[1526; 1527) - NAME@[1527; 1528) - IDENT@[1527; 1528) "i" - WHITESPACE@[1528; 1529) - EQ@[1529; 1530) - WHITESPACE@[1530; 1531) - LITERAL@[1531; 1532) - INT_NUMBER@[1531; 1532) "0" - SEMI@[1532; 1533) - WHITESPACE@[1533; 1538) - LOOP_EXPR@[1538; 1631) - LOOP_KW@[1538; 1542) - WHITESPACE@[1542; 1543) - BLOCK@[1543; 1631) - L_CURLY@[1543; 1544) - WHITESPACE@[1544; 1545) - EXPR_STMT@[1545; 1552) - BIN_EXPR@[1545; 1551) - PATH_EXPR@[1545; 1546) - PATH@[1545; 1546) - PATH_SEGMENT@[1545; 1546) - NAME_REF@[1545; 1546) - IDENT@[1545; 1546) "i" - WHITESPACE@[1546; 1547) - PLUSEQ@[1547; 1549) - WHITESPACE@[1549; 1550) - LITERAL@[1550; 1551) - INT_NUMBER@[1550; 1551) "1" - SEMI@[1551; 1552) - WHITESPACE@[1552; 1553) - EXPR_STMT@[1553; 1616) - IF_EXPR@[1553; 1616) - IF_KW@[1553; 1555) - WHITESPACE@[1555; 1556) - CONDITION@[1556; 1562) - BIN_EXPR@[1556; 1562) - PATH_EXPR@[1556; 1557) - PATH@[1556; 1557) - PATH_SEGMENT@[1556; 1557) - NAME_REF@[1556; 1557) - IDENT@[1556; 1557) "i" - WHITESPACE@[1557; 1558) - EQEQ@[1558; 1560) - WHITESPACE@[1560; 1561) - LITERAL@[1561; 1562) - INT_NUMBER@[1561; 1562) "1" - WHITESPACE@[1562; 1563) - BLOCK@[1563; 1616) - L_CURLY@[1563; 1564) - WHITESPACE@[1564; 1565) - MATCH_EXPR@[1565; 1614) - MATCH_KW@[1565; 1570) - WHITESPACE@[1570; 1571) - PAREN_EXPR@[1571; 1581) - L_PAREN@[1571; 1572) - CONTINUE_EXPR@[1572; 1580) - CONTINUE_KW@[1572; 1580) - R_PAREN@[1580; 1581) - WHITESPACE@[1581; 1582) - MATCH_ARM_LIST@[1582; 1614) - L_CURLY@[1582; 1583) - WHITESPACE@[1583; 1584) - MATCH_ARM@[1584; 1592) - LITERAL@[1584; 1585) - INT_NUMBER@[1584; 1585) "1" - WHITESPACE@[1585; 1586) - FAT_ARROW@[1586; 1588) - WHITESPACE@[1588; 1589) - BLOCK_EXPR@[1589; 1592) - BLOCK@[1589; 1592) - L_CURLY@[1589; 1590) - WHITESPACE@[1590; 1591) - R_CURLY@[1591; 1592) - COMMA@[1592; 1593) - WHITESPACE@[1593; 1594) - MATCH_ARM@[1594; 1612) - PLACEHOLDER_PAT@[1594; 1595) - UNDERSCORE@[1594; 1595) - WHITESPACE@[1595; 1596) - FAT_ARROW@[1596; 1598) - WHITESPACE@[1598; 1599) - MACRO_CALL@[1599; 1612) - PATH@[1599; 1604) - PATH_SEGMENT@[1599; 1604) - NAME_REF@[1599; 1604) - IDENT@[1599; 1604) "panic" - EXCL@[1604; 1605) - TOKEN_TREE@[1605; 1612) - L_PAREN@[1605; 1606) - STRING@[1606; 1611) - R_PAREN@[1611; 1612) - WHITESPACE@[1612; 1613) - R_CURLY@[1613; 1614) - WHITESPACE@[1614; 1615) - R_CURLY@[1615; 1616) - WHITESPACE@[1616; 1623) - EXPR_STMT@[1623; 1629) - BREAK_EXPR@[1623; 1628) - BREAK_KW@[1623; 1628) - SEMI@[1628; 1629) - WHITESPACE@[1629; 1630) - R_CURLY@[1630; 1631) - WHITESPACE@[1631; 1632) - R_CURLY@[1632; 1633) - WHITESPACE@[1633; 1635) - FN_DEF@[1635; 1689) - FN_KW@[1635; 1637) - WHITESPACE@[1637; 1638) - NAME@[1638; 1650) - IDENT@[1638; 1650) "evil_lincoln" - PARAM_LIST@[1650; 1652) - L_PAREN@[1650; 1651) - R_PAREN@[1651; 1652) - WHITESPACE@[1652; 1653) - BLOCK@[1653; 1689) - L_CURLY@[1653; 1654) - WHITESPACE@[1654; 1655) - LET_STMT@[1655; 1687) - LET_KW@[1655; 1658) - WHITESPACE@[1658; 1659) - BIND_PAT@[1659; 1664) - NAME@[1659; 1664) - IDENT@[1659; 1664) "_evil" - WHITESPACE@[1664; 1665) - EQ@[1665; 1666) - WHITESPACE@[1666; 1667) - MACRO_CALL@[1667; 1686) - PATH@[1667; 1674) - PATH_SEGMENT@[1667; 1674) - NAME_REF@[1667; 1674) - IDENT@[1667; 1674) "println" - EXCL@[1674; 1675) - TOKEN_TREE@[1675; 1686) - L_PAREN@[1675; 1676) - STRING@[1676; 1685) - R_PAREN@[1685; 1686) - SEMI@[1686; 1687) - WHITESPACE@[1687; 1688) - R_CURLY@[1688; 1689) - WHITESPACE@[1689; 1691) - FN_DEF@[1691; 1927) - FN_KW@[1691; 1693) - WHITESPACE@[1693; 1694) - NAME@[1694; 1698) - IDENT@[1694; 1698) "dots" - PARAM_LIST@[1698; 1700) - L_PAREN@[1698; 1699) - R_PAREN@[1699; 1700) - WHITESPACE@[1700; 1701) - BLOCK@[1701; 1927) - L_CURLY@[1701; 1702) - WHITESPACE@[1702; 1707) - EXPR_STMT@[1707; 1925) - MACRO_CALL@[1707; 1924) - PATH@[1707; 1716) - PATH_SEGMENT@[1707; 1716) - NAME_REF@[1707; 1716) - IDENT@[1707; 1716) "assert_eq" - EXCL@[1716; 1717) - TOKEN_TREE@[1717; 1924) - L_PAREN@[1717; 1718) - IDENT@[1718; 1724) "String" - COLONCOLON@[1724; 1726) - IDENT@[1726; 1730) "from" - TOKEN_TREE@[1730; 1784) - L_PAREN@[1730; 1731) - STRING@[1731; 1783) - R_PAREN@[1783; 1784) - COMMA@[1784; 1785) - WHITESPACE@[1785; 1801) - IDENT@[1801; 1807) "format" - EXCL@[1807; 1808) - TOKEN_TREE@[1808; 1923) - L_PAREN@[1808; 1809) - STRING@[1809; 1815) - COMMA@[1815; 1816) - WHITESPACE@[1816; 1817) - DOTDOT@[1817; 1819) - WHITESPACE@[1819; 1820) - DOTDOT@[1820; 1822) - WHITESPACE@[1822; 1823) - DOTDOT@[1823; 1825) - WHITESPACE@[1825; 1826) - DOTDOT@[1826; 1828) - WHITESPACE@[1828; 1829) - DOTDOT@[1829; 1831) - WHITESPACE@[1831; 1832) - DOTDOT@[1832; 1834) - WHITESPACE@[1834; 1835) - DOTDOT@[1835; 1837) - WHITESPACE@[1837; 1838) - DOTDOT@[1838; 1840) - WHITESPACE@[1840; 1841) - DOTDOT@[1841; 1843) - WHITESPACE@[1843; 1844) - DOTDOT@[1844; 1846) - WHITESPACE@[1846; 1847) - DOTDOT@[1847; 1849) - WHITESPACE@[1849; 1850) - DOTDOT@[1850; 1852) - WHITESPACE@[1852; 1853) - DOTDOT@[1853; 1855) - WHITESPACE@[1855; 1887) - DOTDOT@[1887; 1889) - WHITESPACE@[1889; 1890) - DOTDOT@[1890; 1892) - WHITESPACE@[1892; 1893) - DOTDOT@[1893; 1895) - WHITESPACE@[1895; 1896) - DOTDOT@[1896; 1898) - WHITESPACE@[1898; 1899) - DOTDOT@[1899; 1901) - WHITESPACE@[1901; 1902) - DOTDOT@[1902; 1904) - WHITESPACE@[1904; 1905) - DOTDOT@[1905; 1907) - WHITESPACE@[1907; 1908) - DOTDOT@[1908; 1910) - WHITESPACE@[1910; 1911) - DOTDOT@[1911; 1913) - WHITESPACE@[1913; 1914) - DOTDOT@[1914; 1916) - WHITESPACE@[1916; 1917) - DOTDOT@[1917; 1919) - WHITESPACE@[1919; 1920) - DOTDOT@[1920; 1922) - R_PAREN@[1922; 1923) - R_PAREN@[1923; 1924) - SEMI@[1924; 1925) +SOURCE_FILE@[0; 3813) + COMMENT@[0; 55) + WHITESPACE@[55; 56) + COMMENT@[56; 173) + WHITESPACE@[173; 174) + COMMENT@[174; 178) + WHITESPACE@[178; 179) + COMMENT@[179; 269) + WHITESPACE@[269; 271) + ATTR@[271; 302) + POUND@[271; 272) + EXCL@[272; 273) + TOKEN_TREE@[273; 302) + L_BRACK@[273; 274) + IDENT@[274; 279) "allow" + TOKEN_TREE@[279; 301) + L_PAREN@[279; 280) + IDENT@[280; 300) "non_camel_case_types" + R_PAREN@[300; 301) + R_BRACK@[301; 302) + WHITESPACE@[302; 303) + ATTR@[303; 323) + POUND@[303; 304) + EXCL@[304; 305) + TOKEN_TREE@[305; 323) + L_BRACK@[305; 306) + IDENT@[306; 311) "allow" + TOKEN_TREE@[311; 322) + L_PAREN@[311; 312) + IDENT@[312; 321) "dead_code" + R_PAREN@[321; 322) + R_BRACK@[322; 323) + WHITESPACE@[323; 324) + ATTR@[324; 351) + POUND@[324; 325) + EXCL@[325; 326) + TOKEN_TREE@[326; 351) + L_BRACK@[326; 327) + IDENT@[327; 332) "allow" + TOKEN_TREE@[332; 350) + L_PAREN@[332; 333) + IDENT@[333; 349) "unreachable_code" + R_PAREN@[349; 350) + R_BRACK@[350; 351) + WHITESPACE@[351; 352) + ATTR@[352; 376) + POUND@[352; 353) + EXCL@[353; 354) + TOKEN_TREE@[354; 376) + L_BRACK@[354; 355) + IDENT@[355; 360) "allow" + TOKEN_TREE@[360; 375) + L_PAREN@[360; 361) + IDENT@[361; 374) "unused_parens" + R_PAREN@[374; 375) + R_BRACK@[375; 376) + WHITESPACE@[376; 378) + ATTR@[378; 405) + POUND@[378; 379) + EXCL@[379; 380) + TOKEN_TREE@[380; 405) + L_BRACK@[380; 381) + IDENT@[381; 396) "recursion_limit" + WHITESPACE@[396; 397) + EQ@[397; 398) + WHITESPACE@[398; 399) + STRING@[399; 404) + R_BRACK@[404; 405) + WHITESPACE@[405; 407) + USE_ITEM@[407; 427) + USE_KW@[407; 410) + WHITESPACE@[410; 411) + USE_TREE@[411; 426) + PATH@[411; 426) + PATH@[411; 420) + PATH@[411; 414) + PATH_SEGMENT@[411; 414) + NAME_REF@[411; 414) + IDENT@[411; 414) "std" + COLONCOLON@[414; 416) + PATH_SEGMENT@[416; 420) + NAME_REF@[416; 420) + IDENT@[416; 420) "cell" + COLONCOLON@[420; 422) + PATH_SEGMENT@[422; 426) + NAME_REF@[422; 426) + IDENT@[422; 426) "Cell" + SEMI@[426; 427) + WHITESPACE@[427; 428) + USE_ITEM@[428; 447) + USE_KW@[428; 431) + WHITESPACE@[431; 432) + USE_TREE@[432; 446) + PATH@[432; 446) + PATH@[432; 440) + PATH@[432; 435) + PATH_SEGMENT@[432; 435) + NAME_REF@[432; 435) + IDENT@[432; 435) "std" + COLONCOLON@[435; 437) + PATH_SEGMENT@[437; 440) + NAME_REF@[437; 440) + IDENT@[437; 440) "mem" + COLONCOLON@[440; 442) + PATH_SEGMENT@[442; 446) + NAME_REF@[442; 446) + IDENT@[442; 446) "swap" + SEMI@[446; 447) + WHITESPACE@[447; 449) + COMMENT@[449; 518) + WHITESPACE@[518; 520) + FN_DEF@[520; 572) + FN_KW@[520; 522) + WHITESPACE@[522; 523) + NAME@[523; 530) + IDENT@[523; 530) "strange" + PARAM_LIST@[530; 532) + L_PAREN@[530; 531) + R_PAREN@[531; 532) + WHITESPACE@[532; 533) + RET_TYPE@[533; 540) + THIN_ARROW@[533; 535) + WHITESPACE@[535; 536) + PATH_TYPE@[536; 540) + PATH@[536; 540) + PATH_SEGMENT@[536; 540) + NAME_REF@[536; 540) + IDENT@[536; 540) "bool" + WHITESPACE@[540; 541) + BLOCK@[541; 572) + L_CURLY@[541; 542) + WHITESPACE@[542; 543) + LET_STMT@[543; 570) + LET_KW@[543; 546) + WHITESPACE@[546; 547) + BIND_PAT@[547; 549) + NAME@[547; 549) + IDENT@[547; 549) "_x" + COLON@[549; 550) + WHITESPACE@[550; 551) + PATH_TYPE@[551; 555) + PATH@[551; 555) + PATH_SEGMENT@[551; 555) + NAME_REF@[551; 555) + IDENT@[551; 555) "bool" + WHITESPACE@[555; 556) + EQ@[556; 557) + WHITESPACE@[557; 558) + RETURN_EXPR@[558; 569) + RETURN_KW@[558; 564) + WHITESPACE@[564; 565) + LITERAL@[565; 569) + TRUE_KW@[565; 569) + SEMI@[569; 570) + WHITESPACE@[570; 571) + R_CURLY@[571; 572) + WHITESPACE@[572; 574) + FN_DEF@[574; 624) + FN_KW@[574; 576) + WHITESPACE@[576; 577) + NAME@[577; 582) + IDENT@[577; 582) "funny" + PARAM_LIST@[582; 584) + L_PAREN@[582; 583) + R_PAREN@[583; 584) + WHITESPACE@[584; 585) + BLOCK@[585; 624) + L_CURLY@[585; 586) + WHITESPACE@[586; 591) + FN_DEF@[591; 607) + FN_KW@[591; 593) + WHITESPACE@[593; 594) + NAME@[594; 595) + IDENT@[594; 595) "f" + PARAM_LIST@[595; 603) + L_PAREN@[595; 596) + PARAM@[596; 602) + BIND_PAT@[596; 598) + NAME@[596; 598) + IDENT@[596; 598) "_x" + COLON@[598; 599) + WHITESPACE@[599; 600) + TUPLE_TYPE@[600; 602) + L_PAREN@[600; 601) + R_PAREN@[601; 602) + R_PAREN@[602; 603) + WHITESPACE@[603; 604) + BLOCK@[604; 607) + L_CURLY@[604; 605) + WHITESPACE@[605; 606) + R_CURLY@[606; 607) + WHITESPACE@[607; 612) + EXPR_STMT@[612; 622) + CALL_EXPR@[612; 621) + PATH_EXPR@[612; 613) + PATH@[612; 613) + PATH_SEGMENT@[612; 613) + NAME_REF@[612; 613) + IDENT@[612; 613) "f" + ARG_LIST@[613; 621) + L_PAREN@[613; 614) + RETURN_EXPR@[614; 620) + RETURN_KW@[614; 620) + R_PAREN@[620; 621) + SEMI@[621; 622) + WHITESPACE@[622; 623) + R_CURLY@[623; 624) + WHITESPACE@[624; 626) + FN_DEF@[626; 816) + FN_KW@[626; 628) + WHITESPACE@[628; 629) + NAME@[629; 633) + IDENT@[629; 633) "what" + PARAM_LIST@[633; 635) + L_PAREN@[633; 634) + R_PAREN@[634; 635) + WHITESPACE@[635; 636) + BLOCK@[636; 816) + L_CURLY@[636; 637) + WHITESPACE@[637; 642) + FN_DEF@[642; 720) + FN_KW@[642; 644) + WHITESPACE@[644; 645) + NAME@[645; 648) + IDENT@[645; 648) "the" + PARAM_LIST@[648; 664) + L_PAREN@[648; 649) + PARAM@[649; 663) + BIND_PAT@[649; 650) + NAME@[649; 650) + IDENT@[649; 650) "x" + COLON@[650; 651) + WHITESPACE@[651; 652) + REFERENCE_TYPE@[652; 663) + AMP@[652; 653) + PATH_TYPE@[653; 663) + PATH@[653; 663) + PATH_SEGMENT@[653; 663) + NAME_REF@[653; 657) + IDENT@[653; 657) "Cell" + TYPE_ARG_LIST@[657; 663) + L_ANGLE@[657; 658) + TYPE_ARG@[658; 662) + PATH_TYPE@[658; 662) + PATH@[658; 662) + PATH_SEGMENT@[658; 662) + NAME_REF@[658; 662) + IDENT@[658; 662) "bool" + R_ANGLE@[662; 663) + R_PAREN@[663; 664) + WHITESPACE@[664; 665) + BLOCK@[665; 720) + L_CURLY@[665; 666) + WHITESPACE@[666; 675) + EXPR_STMT@[675; 714) + RETURN_EXPR@[675; 713) + RETURN_KW@[675; 681) + WHITESPACE@[681; 682) + WHILE_EXPR@[682; 713) + WHILE_KW@[682; 687) + WHITESPACE@[687; 688) + CONDITION@[688; 696) + PREFIX_EXPR@[688; 696) + EXCL@[688; 689) + METHOD_CALL_EXPR@[689; 696) + PATH_EXPR@[689; 690) + PATH@[689; 690) + PATH_SEGMENT@[689; 690) + NAME_REF@[689; 690) + IDENT@[689; 690) "x" + DOT@[690; 691) + NAME_REF@[691; 694) + IDENT@[691; 694) "get" + ARG_LIST@[694; 696) + L_PAREN@[694; 695) + R_PAREN@[695; 696) + WHITESPACE@[696; 697) + BLOCK@[697; 713) + L_CURLY@[697; 698) + WHITESPACE@[698; 699) + EXPR_STMT@[699; 711) + METHOD_CALL_EXPR@[699; 710) + PATH_EXPR@[699; 700) + PATH@[699; 700) + PATH_SEGMENT@[699; 700) + NAME_REF@[699; 700) + IDENT@[699; 700) "x" + DOT@[700; 701) + NAME_REF@[701; 704) + IDENT@[701; 704) "set" + ARG_LIST@[704; 710) + L_PAREN@[704; 705) + LITERAL@[705; 709) + TRUE_KW@[705; 709) + R_PAREN@[709; 710) + SEMI@[710; 711) + WHITESPACE@[711; 712) + R_CURLY@[712; 713) + SEMI@[713; 714) + WHITESPACE@[714; 719) + R_CURLY@[719; 720) + WHITESPACE@[720; 725) + LET_STMT@[725; 751) + LET_KW@[725; 728) + WHITESPACE@[728; 729) + BIND_PAT@[729; 730) + NAME@[729; 730) + IDENT@[729; 730) "i" + WHITESPACE@[730; 731) + EQ@[731; 732) + WHITESPACE@[732; 733) + REF_EXPR@[733; 750) + AMP@[733; 734) + CALL_EXPR@[734; 750) + PATH_EXPR@[734; 743) + PATH@[734; 743) + PATH@[734; 738) + PATH_SEGMENT@[734; 738) + NAME_REF@[734; 738) + IDENT@[734; 738) "Cell" + COLONCOLON@[738; 740) + PATH_SEGMENT@[740; 743) + NAME_REF@[740; 743) + IDENT@[740; 743) "new" + ARG_LIST@[743; 750) + L_PAREN@[743; 744) + LITERAL@[744; 749) + FALSE_KW@[744; 749) + R_PAREN@[749; 750) + SEMI@[750; 751) + WHITESPACE@[751; 756) + LET_STMT@[756; 778) + LET_KW@[756; 759) + WHITESPACE@[759; 760) + BIND_PAT@[760; 764) + NAME@[760; 764) + IDENT@[760; 764) "dont" + WHITESPACE@[764; 765) + EQ@[765; 766) + WHITESPACE@[766; 767) + BLOCK_EXPR@[767; 777) + BLOCK@[767; 777) + L_CURLY@[767; 768) + LAMBDA_EXPR@[768; 776) + PARAM_LIST@[768; 770) + PIPE@[768; 769) + PIPE@[769; 770) + CALL_EXPR@[770; 776) + PATH_EXPR@[770; 773) + PATH@[770; 773) + PATH_SEGMENT@[770; 773) + NAME_REF@[770; 773) + IDENT@[770; 773) "the" + ARG_LIST@[773; 776) + L_PAREN@[773; 774) + PATH_EXPR@[774; 775) + PATH@[774; 775) + PATH_SEGMENT@[774; 775) + NAME_REF@[774; 775) + IDENT@[774; 775) "i" + R_PAREN@[775; 776) + R_CURLY@[776; 777) + SEMI@[777; 778) + WHITESPACE@[778; 783) + EXPR_STMT@[783; 790) + CALL_EXPR@[783; 789) + PATH_EXPR@[783; 787) + PATH@[783; 787) + PATH_SEGMENT@[783; 787) + NAME_REF@[783; 787) + IDENT@[783; 787) "dont" + ARG_LIST@[787; 789) + L_PAREN@[787; 788) + R_PAREN@[788; 789) + SEMI@[789; 790) + WHITESPACE@[790; 795) + EXPR_STMT@[795; 814) + MACRO_CALL@[795; 813) + PATH@[795; 801) + PATH_SEGMENT@[795; 801) + NAME_REF@[795; 801) + IDENT@[795; 801) "assert" + EXCL@[801; 802) + TOKEN_TREE@[802; 813) + L_PAREN@[802; 803) + TOKEN_TREE@[803; 812) + L_PAREN@[803; 804) + IDENT@[804; 805) "i" + DOT@[805; 806) + IDENT@[806; 809) "get" + TOKEN_TREE@[809; 811) + L_PAREN@[809; 810) + R_PAREN@[810; 811) + R_PAREN@[811; 812) + R_PAREN@[812; 813) + SEMI@[813; 814) + WHITESPACE@[814; 815) + R_CURLY@[815; 816) + WHITESPACE@[816; 818) + FN_DEF@[818; 1322) + FN_KW@[818; 820) + WHITESPACE@[820; 821) + NAME@[821; 832) + IDENT@[821; 832) "zombiejesus" + PARAM_LIST@[832; 834) + L_PAREN@[832; 833) + R_PAREN@[833; 834) + WHITESPACE@[834; 835) + BLOCK@[835; 1322) + L_CURLY@[835; 836) + WHITESPACE@[836; 841) + LOOP_EXPR@[841; 1320) + LOOP_KW@[841; 845) + WHITESPACE@[845; 846) + BLOCK@[846; 1320) + L_CURLY@[846; 847) + WHITESPACE@[847; 856) + EXPR_STMT@[856; 1283) + WHILE_EXPR@[856; 1283) + WHILE_KW@[856; 861) + WHITESPACE@[861; 862) + CONDITION@[862; 870) + PAREN_EXPR@[862; 870) + L_PAREN@[862; 863) + RETURN_EXPR@[863; 869) + RETURN_KW@[863; 869) + R_PAREN@[869; 870) + WHITESPACE@[870; 871) + BLOCK@[871; 1283) + L_CURLY@[871; 872) + WHITESPACE@[872; 885) + IF_EXPR@[885; 1273) + IF_KW@[885; 887) + WHITESPACE@[887; 888) + CONDITION@[888; 896) + PAREN_EXPR@[888; 896) + L_PAREN@[888; 889) + RETURN_EXPR@[889; 895) + RETURN_KW@[889; 895) + R_PAREN@[895; 896) + WHITESPACE@[896; 897) + BLOCK@[897; 1216) + L_CURLY@[897; 898) + WHITESPACE@[898; 915) + EXPR_STMT@[915; 1202) + MATCH_EXPR@[915; 1201) + MATCH_KW@[915; 920) + WHITESPACE@[920; 921) + PAREN_EXPR@[921; 929) + L_PAREN@[921; 922) + RETURN_EXPR@[922; 928) + RETURN_KW@[922; 928) + R_PAREN@[928; 929) + WHITESPACE@[929; 930) + MATCH_ARM_LIST@[930; 1201) + L_CURLY@[930; 931) + WHITESPACE@[931; 952) + MATCH_ARM@[952; 1147) + LITERAL@[952; 953) + INT_NUMBER@[952; 953) "1" + WHITESPACE@[953; 954) + FAT_ARROW@[954; 956) + WHITESPACE@[956; 957) + BLOCK_EXPR@[957; 1147) + BLOCK@[957; 1147) + L_CURLY@[957; 958) + WHITESPACE@[958; 983) + IF_EXPR@[983; 1125) + IF_KW@[983; 985) + WHITESPACE@[985; 986) + CONDITION@[986; 994) + PAREN_EXPR@[986; 994) + L_PAREN@[986; 987) + RETURN_EXPR@[987; 993) + RETURN_KW@[987; 993) + R_PAREN@[993; 994) + WHITESPACE@[994; 995) + BLOCK@[995; 1057) + L_CURLY@[995; 996) + WHITESPACE@[996; 1025) + RETURN_EXPR@[1025; 1031) + RETURN_KW@[1025; 1031) + WHITESPACE@[1031; 1056) + R_CURLY@[1056; 1057) + WHITESPACE@[1057; 1058) + ELSE_KW@[1058; 1062) + WHITESPACE@[1062; 1063) + BLOCK@[1063; 1125) + L_CURLY@[1063; 1064) + WHITESPACE@[1064; 1093) + RETURN_EXPR@[1093; 1099) + RETURN_KW@[1093; 1099) + WHITESPACE@[1099; 1124) + R_CURLY@[1124; 1125) + WHITESPACE@[1125; 1146) + R_CURLY@[1146; 1147) + WHITESPACE@[1147; 1168) + MATCH_ARM@[1168; 1183) + PLACEHOLDER_PAT@[1168; 1169) + UNDERSCORE@[1168; 1169) + WHITESPACE@[1169; 1170) + FAT_ARROW@[1170; 1172) + WHITESPACE@[1172; 1173) + BLOCK_EXPR@[1173; 1183) + BLOCK@[1173; 1183) + L_CURLY@[1173; 1174) + WHITESPACE@[1174; 1175) + RETURN_EXPR@[1175; 1181) + RETURN_KW@[1175; 1181) + WHITESPACE@[1181; 1182) + R_CURLY@[1182; 1183) + WHITESPACE@[1183; 1200) + R_CURLY@[1200; 1201) + SEMI@[1201; 1202) + WHITESPACE@[1202; 1215) + R_CURLY@[1215; 1216) + WHITESPACE@[1216; 1217) + ELSE_KW@[1217; 1221) + WHITESPACE@[1221; 1222) + IF_EXPR@[1222; 1273) + IF_KW@[1222; 1224) + WHITESPACE@[1224; 1225) + CONDITION@[1225; 1233) + PAREN_EXPR@[1225; 1233) + L_PAREN@[1225; 1226) + RETURN_EXPR@[1226; 1232) + RETURN_KW@[1226; 1232) + R_PAREN@[1232; 1233) + WHITESPACE@[1233; 1234) + BLOCK@[1234; 1273) + L_CURLY@[1234; 1235) + WHITESPACE@[1235; 1252) + EXPR_STMT@[1252; 1259) + RETURN_EXPR@[1252; 1258) + RETURN_KW@[1252; 1258) + SEMI@[1258; 1259) + WHITESPACE@[1259; 1272) + R_CURLY@[1272; 1273) + WHITESPACE@[1273; 1282) + R_CURLY@[1282; 1283) + WHITESPACE@[1283; 1292) + IF_EXPR@[1292; 1314) + IF_KW@[1292; 1294) + WHITESPACE@[1294; 1295) + CONDITION@[1295; 1303) + PAREN_EXPR@[1295; 1303) + L_PAREN@[1295; 1296) + RETURN_EXPR@[1296; 1302) + RETURN_KW@[1296; 1302) + R_PAREN@[1302; 1303) + WHITESPACE@[1303; 1304) + BLOCK@[1304; 1314) + L_CURLY@[1304; 1305) + WHITESPACE@[1305; 1306) + EXPR_STMT@[1306; 1312) + BREAK_EXPR@[1306; 1311) + BREAK_KW@[1306; 1311) + SEMI@[1311; 1312) + WHITESPACE@[1312; 1313) + R_CURLY@[1313; 1314) + WHITESPACE@[1314; 1319) + R_CURLY@[1319; 1320) + WHITESPACE@[1320; 1321) + R_CURLY@[1321; 1322) + WHITESPACE@[1322; 1324) + FN_DEF@[1324; 1539) + FN_KW@[1324; 1326) + WHITESPACE@[1326; 1327) + NAME@[1327; 1334) + IDENT@[1327; 1334) "notsure" + PARAM_LIST@[1334; 1336) + L_PAREN@[1334; 1335) + R_PAREN@[1335; 1336) + WHITESPACE@[1336; 1337) + BLOCK@[1337; 1539) + L_CURLY@[1337; 1338) + WHITESPACE@[1338; 1343) + LET_STMT@[1343; 1361) + LET_KW@[1343; 1346) + WHITESPACE@[1346; 1347) + BIND_PAT@[1347; 1353) + MUT_KW@[1347; 1350) + WHITESPACE@[1350; 1351) + NAME@[1351; 1353) + IDENT@[1351; 1353) "_x" + COLON@[1353; 1354) + WHITESPACE@[1354; 1355) + PATH_TYPE@[1355; 1360) + PATH@[1355; 1360) + PATH_SEGMENT@[1355; 1360) + NAME_REF@[1355; 1360) + IDENT@[1355; 1360) "isize" + SEMI@[1360; 1361) + WHITESPACE@[1361; 1366) + LET_STMT@[1366; 1400) + LET_KW@[1366; 1369) + WHITESPACE@[1369; 1370) + BIND_PAT@[1370; 1376) + MUT_KW@[1370; 1373) + WHITESPACE@[1373; 1374) + NAME@[1374; 1376) + IDENT@[1374; 1376) "_y" + WHITESPACE@[1376; 1377) + EQ@[1377; 1378) + WHITESPACE@[1378; 1379) + BIN_EXPR@[1379; 1399) + PAREN_EXPR@[1379; 1387) + L_PAREN@[1379; 1380) + BIN_EXPR@[1380; 1386) + PATH_EXPR@[1380; 1382) + PATH@[1380; 1382) + PATH_SEGMENT@[1380; 1382) + NAME_REF@[1380; 1382) + IDENT@[1380; 1382) "_x" + WHITESPACE@[1382; 1383) + EQ@[1383; 1384) + WHITESPACE@[1384; 1385) + LITERAL@[1385; 1386) + INT_NUMBER@[1385; 1386) "0" + R_PAREN@[1386; 1387) + WHITESPACE@[1387; 1388) + EQEQ@[1388; 1390) + WHITESPACE@[1390; 1391) + PAREN_EXPR@[1391; 1399) + L_PAREN@[1391; 1392) + BIN_EXPR@[1392; 1398) + PATH_EXPR@[1392; 1394) + PATH@[1392; 1394) + PATH_SEGMENT@[1392; 1394) + NAME_REF@[1392; 1394) + IDENT@[1392; 1394) "_x" + WHITESPACE@[1394; 1395) + EQ@[1395; 1396) + WHITESPACE@[1396; 1397) + LITERAL@[1397; 1398) + INT_NUMBER@[1397; 1398) "0" + R_PAREN@[1398; 1399) + SEMI@[1399; 1400) + WHITESPACE@[1400; 1405) + LET_STMT@[1405; 1438) + LET_KW@[1405; 1408) + WHITESPACE@[1408; 1409) + BIND_PAT@[1409; 1415) + MUT_KW@[1409; 1412) + WHITESPACE@[1412; 1413) + NAME@[1413; 1415) + IDENT@[1413; 1415) "_z" + WHITESPACE@[1415; 1416) + EQ@[1416; 1417) + WHITESPACE@[1417; 1418) + BIN_EXPR@[1418; 1437) + PAREN_EXPR@[1418; 1426) + L_PAREN@[1418; 1419) + BIN_EXPR@[1419; 1425) + PATH_EXPR@[1419; 1421) + PATH@[1419; 1421) + PATH_SEGMENT@[1419; 1421) + NAME_REF@[1419; 1421) + IDENT@[1419; 1421) "_x" + WHITESPACE@[1421; 1422) + EQ@[1422; 1423) + WHITESPACE@[1423; 1424) + LITERAL@[1424; 1425) + INT_NUMBER@[1424; 1425) "0" + R_PAREN@[1425; 1426) + WHITESPACE@[1426; 1427) + L_ANGLE@[1427; 1428) + WHITESPACE@[1428; 1429) + PAREN_EXPR@[1429; 1437) + L_PAREN@[1429; 1430) + BIN_EXPR@[1430; 1436) + PATH_EXPR@[1430; 1432) + PATH@[1430; 1432) + PATH_SEGMENT@[1430; 1432) + NAME_REF@[1430; 1432) + IDENT@[1430; 1432) "_x" + WHITESPACE@[1432; 1433) + EQ@[1433; 1434) + WHITESPACE@[1434; 1435) + LITERAL@[1435; 1436) + INT_NUMBER@[1435; 1436) "0" + R_PAREN@[1436; 1437) + SEMI@[1437; 1438) + WHITESPACE@[1438; 1443) + LET_STMT@[1443; 1474) + LET_KW@[1443; 1446) + WHITESPACE@[1446; 1447) + BIND_PAT@[1447; 1449) + NAME@[1447; 1449) + IDENT@[1447; 1449) "_a" + WHITESPACE@[1449; 1450) + EQ@[1450; 1451) + WHITESPACE@[1451; 1452) + BIN_EXPR@[1452; 1473) + PAREN_EXPR@[1452; 1461) + L_PAREN@[1452; 1453) + BIN_EXPR@[1453; 1460) + PATH_EXPR@[1453; 1455) + PATH@[1453; 1455) + PATH_SEGMENT@[1453; 1455) + NAME_REF@[1453; 1455) + IDENT@[1453; 1455) "_x" + WHITESPACE@[1455; 1456) + PLUSEQ@[1456; 1458) + WHITESPACE@[1458; 1459) + LITERAL@[1459; 1460) + INT_NUMBER@[1459; 1460) "0" + R_PAREN@[1460; 1461) + WHITESPACE@[1461; 1462) + EQEQ@[1462; 1464) + WHITESPACE@[1464; 1465) + PAREN_EXPR@[1465; 1473) + L_PAREN@[1465; 1466) + BIN_EXPR@[1466; 1472) + PATH_EXPR@[1466; 1468) + PATH@[1466; 1468) + PATH_SEGMENT@[1466; 1468) + NAME_REF@[1466; 1468) + IDENT@[1466; 1468) "_x" + WHITESPACE@[1468; 1469) + EQ@[1469; 1470) + WHITESPACE@[1470; 1471) + LITERAL@[1471; 1472) + INT_NUMBER@[1471; 1472) "0" + R_PAREN@[1472; 1473) + SEMI@[1473; 1474) + WHITESPACE@[1474; 1479) + LET_STMT@[1479; 1537) + LET_KW@[1479; 1482) + WHITESPACE@[1482; 1483) + BIND_PAT@[1483; 1485) + NAME@[1483; 1485) + IDENT@[1483; 1485) "_b" + WHITESPACE@[1485; 1486) + EQ@[1486; 1487) + WHITESPACE@[1487; 1488) + BIN_EXPR@[1488; 1536) + CALL_EXPR@[1488; 1510) + PATH_EXPR@[1488; 1492) + PATH@[1488; 1492) + PATH_SEGMENT@[1488; 1492) + NAME_REF@[1488; 1492) + IDENT@[1488; 1492) "swap" + ARG_LIST@[1492; 1510) + L_PAREN@[1492; 1493) + REF_EXPR@[1493; 1500) + AMP@[1493; 1494) + MUT_KW@[1494; 1497) + WHITESPACE@[1497; 1498) + PATH_EXPR@[1498; 1500) + PATH@[1498; 1500) + PATH_SEGMENT@[1498; 1500) + NAME_REF@[1498; 1500) + IDENT@[1498; 1500) "_y" + COMMA@[1500; 1501) + WHITESPACE@[1501; 1502) + REF_EXPR@[1502; 1509) + AMP@[1502; 1503) + MUT_KW@[1503; 1506) + WHITESPACE@[1506; 1507) + PATH_EXPR@[1507; 1509) + PATH@[1507; 1509) + PATH_SEGMENT@[1507; 1509) + NAME_REF@[1507; 1509) + IDENT@[1507; 1509) "_z" + R_PAREN@[1509; 1510) + WHITESPACE@[1510; 1511) + EQEQ@[1511; 1513) + WHITESPACE@[1513; 1514) + CALL_EXPR@[1514; 1536) + PATH_EXPR@[1514; 1518) + PATH@[1514; 1518) + PATH_SEGMENT@[1514; 1518) + NAME_REF@[1514; 1518) + IDENT@[1514; 1518) "swap" + ARG_LIST@[1518; 1536) + L_PAREN@[1518; 1519) + REF_EXPR@[1519; 1526) + AMP@[1519; 1520) + MUT_KW@[1520; 1523) + WHITESPACE@[1523; 1524) + PATH_EXPR@[1524; 1526) + PATH@[1524; 1526) + PATH_SEGMENT@[1524; 1526) + NAME_REF@[1524; 1526) + IDENT@[1524; 1526) "_y" + COMMA@[1526; 1527) + WHITESPACE@[1527; 1528) + REF_EXPR@[1528; 1535) + AMP@[1528; 1529) + MUT_KW@[1529; 1532) + WHITESPACE@[1532; 1533) + PATH_EXPR@[1533; 1535) + PATH@[1533; 1535) + PATH_SEGMENT@[1533; 1535) + NAME_REF@[1533; 1535) + IDENT@[1533; 1535) "_z" + R_PAREN@[1535; 1536) + SEMI@[1536; 1537) + WHITESPACE@[1537; 1538) + R_CURLY@[1538; 1539) + WHITESPACE@[1539; 1541) + FN_DEF@[1541; 1741) + FN_KW@[1541; 1543) + WHITESPACE@[1543; 1544) + NAME@[1544; 1557) + IDENT@[1544; 1557) "canttouchthis" + PARAM_LIST@[1557; 1559) + L_PAREN@[1557; 1558) + R_PAREN@[1558; 1559) + WHITESPACE@[1559; 1560) + RET_TYPE@[1560; 1568) + THIN_ARROW@[1560; 1562) + WHITESPACE@[1562; 1563) + PATH_TYPE@[1563; 1568) + PATH@[1563; 1568) + PATH_SEGMENT@[1563; 1568) + NAME_REF@[1563; 1568) + IDENT@[1563; 1568) "usize" + WHITESPACE@[1568; 1569) + BLOCK@[1569; 1741) + L_CURLY@[1569; 1570) + WHITESPACE@[1570; 1575) + FN_DEF@[1575; 1598) + FN_KW@[1575; 1577) + WHITESPACE@[1577; 1578) + NAME@[1578; 1579) + IDENT@[1578; 1579) "p" + PARAM_LIST@[1579; 1581) + L_PAREN@[1579; 1580) + R_PAREN@[1580; 1581) + WHITESPACE@[1581; 1582) + RET_TYPE@[1582; 1589) + THIN_ARROW@[1582; 1584) + WHITESPACE@[1584; 1585) + PATH_TYPE@[1585; 1589) + PATH@[1585; 1589) + PATH_SEGMENT@[1585; 1589) + NAME_REF@[1585; 1589) + IDENT@[1585; 1589) "bool" + WHITESPACE@[1589; 1590) + BLOCK@[1590; 1598) + L_CURLY@[1590; 1591) + WHITESPACE@[1591; 1592) + LITERAL@[1592; 1596) + TRUE_KW@[1592; 1596) + WHITESPACE@[1596; 1597) + R_CURLY@[1597; 1598) + WHITESPACE@[1598; 1603) + LET_STMT@[1603; 1648) + LET_KW@[1603; 1606) + WHITESPACE@[1606; 1607) + BIND_PAT@[1607; 1609) + NAME@[1607; 1609) + IDENT@[1607; 1609) "_a" + WHITESPACE@[1609; 1610) + EQ@[1610; 1611) + WHITESPACE@[1611; 1612) + PAREN_EXPR@[1612; 1647) + L_PAREN@[1612; 1613) + BIN_EXPR@[1613; 1646) + MACRO_CALL@[1613; 1628) + PATH@[1613; 1619) + PATH_SEGMENT@[1613; 1619) + NAME_REF@[1613; 1619) + IDENT@[1613; 1619) "assert" + EXCL@[1619; 1620) + TOKEN_TREE@[1620; 1628) + L_PAREN@[1620; 1621) + TOKEN_TREE@[1621; 1627) + L_PAREN@[1621; 1622) + TRUE_KW@[1622; 1626) + R_PAREN@[1626; 1627) + R_PAREN@[1627; 1628) + WHITESPACE@[1628; 1629) + EQEQ@[1629; 1631) + WHITESPACE@[1631; 1632) + PAREN_EXPR@[1632; 1646) + L_PAREN@[1632; 1633) + MACRO_CALL@[1633; 1645) + PATH@[1633; 1639) + PATH_SEGMENT@[1633; 1639) + NAME_REF@[1633; 1639) + IDENT@[1633; 1639) "assert" + EXCL@[1639; 1640) + TOKEN_TREE@[1640; 1645) + L_PAREN@[1640; 1641) + IDENT@[1641; 1642) "p" + TOKEN_TREE@[1642; 1644) + L_PAREN@[1642; 1643) + R_PAREN@[1643; 1644) + R_PAREN@[1644; 1645) + R_PAREN@[1645; 1646) + R_PAREN@[1646; 1647) + SEMI@[1647; 1648) + WHITESPACE@[1648; 1653) + LET_STMT@[1653; 1685) + LET_KW@[1653; 1656) + WHITESPACE@[1656; 1657) + BIND_PAT@[1657; 1659) + NAME@[1657; 1659) + IDENT@[1657; 1659) "_c" + WHITESPACE@[1659; 1660) + EQ@[1660; 1661) + WHITESPACE@[1661; 1662) + PAREN_EXPR@[1662; 1684) + L_PAREN@[1662; 1663) + BIN_EXPR@[1663; 1683) + MACRO_CALL@[1663; 1677) + PATH@[1663; 1669) + PATH_SEGMENT@[1663; 1669) + NAME_REF@[1663; 1669) + IDENT@[1663; 1669) "assert" + EXCL@[1669; 1670) + TOKEN_TREE@[1670; 1677) + L_PAREN@[1670; 1671) + TOKEN_TREE@[1671; 1676) + L_PAREN@[1671; 1672) + IDENT@[1672; 1673) "p" + TOKEN_TREE@[1673; 1675) + L_PAREN@[1673; 1674) + R_PAREN@[1674; 1675) + R_PAREN@[1675; 1676) + R_PAREN@[1676; 1677) + WHITESPACE@[1677; 1678) + EQEQ@[1678; 1680) + WHITESPACE@[1680; 1681) + TUPLE_EXPR@[1681; 1683) + L_PAREN@[1681; 1682) + R_PAREN@[1682; 1683) + R_PAREN@[1683; 1684) + SEMI@[1684; 1685) + WHITESPACE@[1685; 1690) + LET_STMT@[1690; 1739) + LET_KW@[1690; 1693) + WHITESPACE@[1693; 1694) + BIND_PAT@[1694; 1696) + NAME@[1694; 1696) + IDENT@[1694; 1696) "_b" + COLON@[1696; 1697) + WHITESPACE@[1697; 1698) + PATH_TYPE@[1698; 1702) + PATH@[1698; 1702) + PATH_SEGMENT@[1698; 1702) + NAME_REF@[1698; 1702) + IDENT@[1698; 1702) "bool" + WHITESPACE@[1702; 1703) + EQ@[1703; 1704) + WHITESPACE@[1704; 1705) + PAREN_EXPR@[1705; 1738) + L_PAREN@[1705; 1706) + BIN_EXPR@[1706; 1737) + MACRO_CALL@[1706; 1723) + PATH@[1706; 1713) + PATH_SEGMENT@[1706; 1713) + NAME_REF@[1706; 1713) + IDENT@[1706; 1713) "println" + EXCL@[1713; 1714) + TOKEN_TREE@[1714; 1723) + L_PAREN@[1714; 1715) + STRING@[1715; 1719) + COMMA@[1719; 1720) + WHITESPACE@[1720; 1721) + INT_NUMBER@[1721; 1722) "0" + R_PAREN@[1722; 1723) + WHITESPACE@[1723; 1724) + EQEQ@[1724; 1726) + WHITESPACE@[1726; 1727) + PAREN_EXPR@[1727; 1737) + L_PAREN@[1727; 1728) + RETURN_EXPR@[1728; 1736) + RETURN_KW@[1728; 1734) + WHITESPACE@[1734; 1735) + LITERAL@[1735; 1736) + INT_NUMBER@[1735; 1736) "0" + R_PAREN@[1736; 1737) + R_PAREN@[1737; 1738) + SEMI@[1738; 1739) + WHITESPACE@[1739; 1740) + R_CURLY@[1740; 1741) + WHITESPACE@[1741; 1743) + FN_DEF@[1743; 1904) + FN_KW@[1743; 1745) + WHITESPACE@[1745; 1746) + NAME@[1746; 1755) + IDENT@[1746; 1755) "angrydome" + PARAM_LIST@[1755; 1757) + L_PAREN@[1755; 1756) + R_PAREN@[1756; 1757) + WHITESPACE@[1757; 1758) + BLOCK@[1758; 1904) + L_CURLY@[1758; 1759) + WHITESPACE@[1759; 1764) + EXPR_STMT@[1764; 1785) + LOOP_EXPR@[1764; 1785) + LOOP_KW@[1764; 1768) + WHITESPACE@[1768; 1769) + BLOCK@[1769; 1785) + L_CURLY@[1769; 1770) + WHITESPACE@[1770; 1771) + IF_EXPR@[1771; 1783) + IF_KW@[1771; 1773) + WHITESPACE@[1773; 1774) + CONDITION@[1774; 1779) + BREAK_EXPR@[1774; 1779) + BREAK_KW@[1774; 1779) + WHITESPACE@[1779; 1780) + BLOCK@[1780; 1783) + L_CURLY@[1780; 1781) + WHITESPACE@[1781; 1782) + R_CURLY@[1782; 1783) + WHITESPACE@[1783; 1784) + R_CURLY@[1784; 1785) + WHITESPACE@[1785; 1790) + LET_STMT@[1790; 1804) + LET_KW@[1790; 1793) + WHITESPACE@[1793; 1794) + BIND_PAT@[1794; 1799) + MUT_KW@[1794; 1797) + WHITESPACE@[1797; 1798) + NAME@[1798; 1799) + IDENT@[1798; 1799) "i" + WHITESPACE@[1799; 1800) + EQ@[1800; 1801) + WHITESPACE@[1801; 1802) + LITERAL@[1802; 1803) + INT_NUMBER@[1802; 1803) "0" + SEMI@[1803; 1804) + WHITESPACE@[1804; 1809) + LOOP_EXPR@[1809; 1902) + LOOP_KW@[1809; 1813) + WHITESPACE@[1813; 1814) + BLOCK@[1814; 1902) + L_CURLY@[1814; 1815) + WHITESPACE@[1815; 1816) + EXPR_STMT@[1816; 1823) + BIN_EXPR@[1816; 1822) + PATH_EXPR@[1816; 1817) + PATH@[1816; 1817) + PATH_SEGMENT@[1816; 1817) + NAME_REF@[1816; 1817) + IDENT@[1816; 1817) "i" + WHITESPACE@[1817; 1818) + PLUSEQ@[1818; 1820) + WHITESPACE@[1820; 1821) + LITERAL@[1821; 1822) + INT_NUMBER@[1821; 1822) "1" + SEMI@[1822; 1823) + WHITESPACE@[1823; 1824) + EXPR_STMT@[1824; 1887) + IF_EXPR@[1824; 1887) + IF_KW@[1824; 1826) + WHITESPACE@[1826; 1827) + CONDITION@[1827; 1833) + BIN_EXPR@[1827; 1833) + PATH_EXPR@[1827; 1828) + PATH@[1827; 1828) + PATH_SEGMENT@[1827; 1828) + NAME_REF@[1827; 1828) + IDENT@[1827; 1828) "i" + WHITESPACE@[1828; 1829) + EQEQ@[1829; 1831) + WHITESPACE@[1831; 1832) + LITERAL@[1832; 1833) + INT_NUMBER@[1832; 1833) "1" + WHITESPACE@[1833; 1834) + BLOCK@[1834; 1887) + L_CURLY@[1834; 1835) + WHITESPACE@[1835; 1836) + MATCH_EXPR@[1836; 1885) + MATCH_KW@[1836; 1841) + WHITESPACE@[1841; 1842) + PAREN_EXPR@[1842; 1852) + L_PAREN@[1842; 1843) + CONTINUE_EXPR@[1843; 1851) + CONTINUE_KW@[1843; 1851) + R_PAREN@[1851; 1852) + WHITESPACE@[1852; 1853) + MATCH_ARM_LIST@[1853; 1885) + L_CURLY@[1853; 1854) + WHITESPACE@[1854; 1855) + MATCH_ARM@[1855; 1863) + LITERAL@[1855; 1856) + INT_NUMBER@[1855; 1856) "1" + WHITESPACE@[1856; 1857) + FAT_ARROW@[1857; 1859) + WHITESPACE@[1859; 1860) + BLOCK_EXPR@[1860; 1863) + BLOCK@[1860; 1863) + L_CURLY@[1860; 1861) + WHITESPACE@[1861; 1862) + R_CURLY@[1862; 1863) + COMMA@[1863; 1864) + WHITESPACE@[1864; 1865) + MATCH_ARM@[1865; 1883) + PLACEHOLDER_PAT@[1865; 1866) + UNDERSCORE@[1865; 1866) + WHITESPACE@[1866; 1867) + FAT_ARROW@[1867; 1869) + WHITESPACE@[1869; 1870) + MACRO_CALL@[1870; 1883) + PATH@[1870; 1875) + PATH_SEGMENT@[1870; 1875) + NAME_REF@[1870; 1875) + IDENT@[1870; 1875) "panic" + EXCL@[1875; 1876) + TOKEN_TREE@[1876; 1883) + L_PAREN@[1876; 1877) + STRING@[1877; 1882) + R_PAREN@[1882; 1883) + WHITESPACE@[1883; 1884) + R_CURLY@[1884; 1885) + WHITESPACE@[1885; 1886) + R_CURLY@[1886; 1887) + WHITESPACE@[1887; 1894) + EXPR_STMT@[1894; 1900) + BREAK_EXPR@[1894; 1899) + BREAK_KW@[1894; 1899) + SEMI@[1899; 1900) + WHITESPACE@[1900; 1901) + R_CURLY@[1901; 1902) + WHITESPACE@[1902; 1903) + R_CURLY@[1903; 1904) + WHITESPACE@[1904; 1906) + FN_DEF@[1906; 1960) + FN_KW@[1906; 1908) + WHITESPACE@[1908; 1909) + NAME@[1909; 1921) + IDENT@[1909; 1921) "evil_lincoln" + PARAM_LIST@[1921; 1923) + L_PAREN@[1921; 1922) + R_PAREN@[1922; 1923) + WHITESPACE@[1923; 1924) + BLOCK@[1924; 1960) + L_CURLY@[1924; 1925) WHITESPACE@[1925; 1926) - R_CURLY@[1926; 1927) - WHITESPACE@[1927; 1929) - FN_DEF@[1929; 2422) - FN_KW@[1929; 1931) - WHITESPACE@[1931; 1932) - NAME@[1932; 1934) - IDENT@[1932; 1934) "u8" - PARAM_LIST@[1934; 1942) - L_PAREN@[1934; 1935) - PARAM@[1935; 1941) - BIND_PAT@[1935; 1937) - NAME@[1935; 1937) - IDENT@[1935; 1937) "u8" - COLON@[1937; 1938) - WHITESPACE@[1938; 1939) - PATH_TYPE@[1939; 1941) - PATH@[1939; 1941) - PATH_SEGMENT@[1939; 1941) - NAME_REF@[1939; 1941) - IDENT@[1939; 1941) "u8" - R_PAREN@[1941; 1942) - WHITESPACE@[1942; 1943) - BLOCK@[1943; 2422) - L_CURLY@[1943; 1944) - WHITESPACE@[1944; 1949) - IF_EXPR@[1949; 2420) - IF_KW@[1949; 1951) - WHITESPACE@[1951; 1952) - CONDITION@[1952; 1961) - BIN_EXPR@[1952; 1961) - PATH_EXPR@[1952; 1954) - PATH@[1952; 1954) - PATH_SEGMENT@[1952; 1954) - NAME_REF@[1952; 1954) - IDENT@[1952; 1954) "u8" - WHITESPACE@[1954; 1955) - NEQ@[1955; 1957) - WHITESPACE@[1957; 1958) - LITERAL@[1958; 1961) - INT_NUMBER@[1958; 1961) "0u8" - WHITESPACE@[1961; 1962) - BLOCK@[1962; 2420) - L_CURLY@[1962; 1963) - WHITESPACE@[1963; 1972) - EXPR_STMT@[1972; 2414) - MACRO_CALL@[1972; 2413) - PATH@[1972; 1981) - PATH_SEGMENT@[1972; 1981) - NAME_REF@[1972; 1981) - IDENT@[1972; 1981) "assert_eq" - EXCL@[1981; 1982) - TOKEN_TREE@[1982; 2413) - L_PAREN@[1982; 1983) - INT_NUMBER@[1983; 1986) "8u8" - COMMA@[1986; 1987) - WHITESPACE@[1987; 1988) - TOKEN_TREE@[1988; 2412) - L_CURLY@[1988; 1989) - WHITESPACE@[1989; 2002) - IDENT@[2002; 2013) "macro_rules" - EXCL@[2013; 2014) - WHITESPACE@[2014; 2015) - IDENT@[2015; 2017) "u8" - WHITESPACE@[2017; 2018) - TOKEN_TREE@[2018; 2296) - L_CURLY@[2018; 2019) - WHITESPACE@[2019; 2036) - TOKEN_TREE@[2036; 2040) - L_PAREN@[2036; 2037) - IDENT@[2037; 2039) "u8" - R_PAREN@[2039; 2040) - WHITESPACE@[2040; 2041) - FAT_ARROW@[2041; 2043) - WHITESPACE@[2043; 2044) - TOKEN_TREE@[2044; 2281) - L_CURLY@[2044; 2045) - WHITESPACE@[2045; 2066) - MOD_KW@[2066; 2069) - WHITESPACE@[2069; 2070) - IDENT@[2070; 2072) "u8" - WHITESPACE@[2072; 2073) - TOKEN_TREE@[2073; 2263) - L_CURLY@[2073; 2074) - WHITESPACE@[2074; 2099) - PUB_KW@[2099; 2102) - WHITESPACE@[2102; 2103) - FN_KW@[2103; 2105) - WHITESPACE@[2105; 2106) - IDENT@[2106; 2108) "u8" - L_ANGLE@[2108; 2109) - LIFETIME@[2109; 2112) "'u8" - COLON@[2112; 2113) - WHITESPACE@[2113; 2114) - LIFETIME@[2114; 2117) "'u8" - WHITESPACE@[2117; 2118) - PLUS@[2118; 2119) - WHITESPACE@[2119; 2120) - LIFETIME@[2120; 2123) "'u8" - R_ANGLE@[2123; 2124) - TOKEN_TREE@[2124; 2137) - L_PAREN@[2124; 2125) - IDENT@[2125; 2127) "u8" - COLON@[2127; 2128) - WHITESPACE@[2128; 2129) - AMP@[2129; 2130) - LIFETIME@[2130; 2133) "'u8" - WHITESPACE@[2133; 2134) - IDENT@[2134; 2136) "u8" - R_PAREN@[2136; 2137) - WHITESPACE@[2137; 2138) - THIN_ARROW@[2138; 2140) - WHITESPACE@[2140; 2141) - AMP@[2141; 2142) - LIFETIME@[2142; 2145) "'u8" - WHITESPACE@[2145; 2146) - IDENT@[2146; 2148) "u8" - WHITESPACE@[2148; 2149) - TOKEN_TREE@[2149; 2241) - L_CURLY@[2149; 2150) - WHITESPACE@[2150; 2179) - STRING@[2179; 2183) - SEMI@[2183; 2184) - WHITESPACE@[2184; 2213) - IDENT@[2213; 2215) "u8" - WHITESPACE@[2215; 2240) - R_CURLY@[2240; 2241) - WHITESPACE@[2241; 2262) - R_CURLY@[2262; 2263) - WHITESPACE@[2263; 2280) - R_CURLY@[2280; 2281) - SEMI@[2281; 2282) - WHITESPACE@[2282; 2295) - R_CURLY@[2295; 2296) - WHITESPACE@[2296; 2310) - IDENT@[2310; 2312) "u8" - EXCL@[2312; 2313) - TOKEN_TREE@[2313; 2317) - L_PAREN@[2313; 2314) - IDENT@[2314; 2316) "u8" - R_PAREN@[2316; 2317) - SEMI@[2317; 2318) - WHITESPACE@[2318; 2331) - LET_KW@[2331; 2334) - WHITESPACE@[2334; 2335) - AMP@[2335; 2336) - IDENT@[2336; 2338) "u8" - COLON@[2338; 2339) - WHITESPACE@[2339; 2340) - AMP@[2340; 2341) - IDENT@[2341; 2343) "u8" - WHITESPACE@[2343; 2344) - EQ@[2344; 2345) - WHITESPACE@[2345; 2346) - IDENT@[2346; 2348) "u8" - COLONCOLON@[2348; 2350) - IDENT@[2350; 2352) "u8" - TOKEN_TREE@[2352; 2358) - L_PAREN@[2352; 2353) - AMP@[2353; 2354) - INT_NUMBER@[2354; 2357) "8u8" - R_PAREN@[2357; 2358) - SEMI@[2358; 2359) - WHITESPACE@[2359; 2372) - CRATE_KW@[2372; 2377) - COLONCOLON@[2377; 2379) - IDENT@[2379; 2381) "u8" - TOKEN_TREE@[2381; 2386) - L_PAREN@[2381; 2382) - INT_NUMBER@[2382; 2385) "0u8" - R_PAREN@[2385; 2386) - SEMI@[2386; 2387) - WHITESPACE@[2387; 2400) - IDENT@[2400; 2402) "u8" - WHITESPACE@[2402; 2411) - R_CURLY@[2411; 2412) - R_PAREN@[2412; 2413) - SEMI@[2413; 2414) - WHITESPACE@[2414; 2419) - R_CURLY@[2419; 2420) - WHITESPACE@[2420; 2421) - R_CURLY@[2421; 2422) - WHITESPACE@[2422; 2424) - FN_DEF@[2424; 2561) - FN_KW@[2424; 2426) - WHITESPACE@[2426; 2427) - NAME@[2427; 2432) - IDENT@[2427; 2432) "fishy" - PARAM_LIST@[2432; 2434) - L_PAREN@[2432; 2433) - R_PAREN@[2433; 2434) - WHITESPACE@[2434; 2435) - BLOCK@[2435; 2561) - L_CURLY@[2435; 2436) - WHITESPACE@[2436; 2441) - EXPR_STMT@[2441; 2559) - MACRO_CALL@[2441; 2558) - PATH@[2441; 2450) - PATH_SEGMENT@[2441; 2450) - NAME_REF@[2441; 2450) - IDENT@[2441; 2450) "assert_eq" - EXCL@[2450; 2451) - TOKEN_TREE@[2451; 2558) - L_PAREN@[2451; 2452) - IDENT@[2452; 2458) "String" - COLONCOLON@[2458; 2460) - IDENT@[2460; 2464) "from" - TOKEN_TREE@[2464; 2471) - L_PAREN@[2464; 2465) - STRING@[2465; 2470) - R_PAREN@[2470; 2471) - COMMA@[2471; 2472) - WHITESPACE@[2472; 2488) - IDENT@[2488; 2494) "String" - COLONCOLON@[2494; 2496) - L_ANGLE@[2496; 2497) - R_ANGLE@[2497; 2498) - COLONCOLON@[2498; 2500) - IDENT@[2500; 2504) "from" - COLONCOLON@[2504; 2506) - L_ANGLE@[2506; 2507) - R_ANGLE@[2507; 2508) - TOKEN_TREE@[2508; 2515) - L_PAREN@[2508; 2509) - STRING@[2509; 2514) - R_PAREN@[2514; 2515) - DOT@[2515; 2516) - IDENT@[2516; 2521) "chars" - COLONCOLON@[2521; 2523) - L_ANGLE@[2523; 2524) - R_ANGLE@[2524; 2525) - TOKEN_TREE@[2525; 2527) - L_PAREN@[2525; 2526) - R_PAREN@[2526; 2527) - DOT@[2527; 2528) - IDENT@[2528; 2531) "rev" - COLONCOLON@[2531; 2533) - L_ANGLE@[2533; 2534) - R_ANGLE@[2534; 2535) - TOKEN_TREE@[2535; 2537) - L_PAREN@[2535; 2536) - R_PAREN@[2536; 2537) - DOT@[2537; 2538) - IDENT@[2538; 2545) "collect" - COLONCOLON@[2545; 2547) - L_ANGLE@[2547; 2548) - IDENT@[2548; 2554) "String" - R_ANGLE@[2554; 2555) - TOKEN_TREE@[2555; 2557) - L_PAREN@[2555; 2556) - R_PAREN@[2556; 2557) - R_PAREN@[2557; 2558) - SEMI@[2558; 2559) - WHITESPACE@[2559; 2560) - R_CURLY@[2560; 2561) - WHITESPACE@[2561; 2563) - FN_DEF@[2563; 2635) - FN_KW@[2563; 2565) - WHITESPACE@[2565; 2566) - NAME@[2566; 2571) - IDENT@[2566; 2571) "union" - PARAM_LIST@[2571; 2573) - L_PAREN@[2571; 2572) - R_PAREN@[2572; 2573) - WHITESPACE@[2573; 2574) - BLOCK@[2574; 2635) - L_CURLY@[2574; 2575) - WHITESPACE@[2575; 2580) - STRUCT_DEF@[2580; 2633) - UNION_KW@[2580; 2585) - WHITESPACE@[2585; 2586) - NAME@[2586; 2591) - IDENT@[2586; 2591) "union" - TYPE_PARAM_LIST@[2591; 2599) - L_ANGLE@[2591; 2592) - LIFETIME_PARAM@[2592; 2598) - LIFETIME@[2592; 2598) "'union" - R_ANGLE@[2598; 2599) - WHITESPACE@[2599; 2600) - NAMED_FIELD_DEF_LIST@[2600; 2633) - L_CURLY@[2600; 2601) - WHITESPACE@[2601; 2602) - NAMED_FIELD_DEF@[2602; 2630) - NAME@[2602; 2607) - IDENT@[2602; 2607) "union" - COLON@[2607; 2608) - WHITESPACE@[2608; 2609) - REFERENCE_TYPE@[2609; 2630) - AMP@[2609; 2610) - LIFETIME@[2610; 2616) "'union" - WHITESPACE@[2616; 2617) - PATH_TYPE@[2617; 2630) - PATH@[2617; 2630) - PATH_SEGMENT@[2617; 2630) - NAME_REF@[2617; 2622) - IDENT@[2617; 2622) "union" - TYPE_ARG_LIST@[2622; 2630) - L_ANGLE@[2622; 2623) - LIFETIME_ARG@[2623; 2629) - LIFETIME@[2623; 2629) "'union" - R_ANGLE@[2629; 2630) - COMMA@[2630; 2631) - WHITESPACE@[2631; 2632) - R_CURLY@[2632; 2633) - WHITESPACE@[2633; 2634) - R_CURLY@[2634; 2635) - WHITESPACE@[2635; 2637) - FN_DEF@[2637; 2771) - FN_KW@[2637; 2639) - WHITESPACE@[2639; 2640) - NAME@[2640; 2658) - IDENT@[2640; 2658) "special_characters" - PARAM_LIST@[2658; 2660) - L_PAREN@[2658; 2659) - R_PAREN@[2659; 2660) - WHITESPACE@[2660; 2661) - BLOCK@[2661; 2771) - L_CURLY@[2661; 2662) - WHITESPACE@[2662; 2667) - LET_STMT@[2667; 2750) - LET_KW@[2667; 2670) - WHITESPACE@[2670; 2671) - BIND_PAT@[2671; 2674) - NAME@[2671; 2674) - IDENT@[2671; 2674) "val" - WHITESPACE@[2674; 2675) - EQ@[2675; 2676) - WHITESPACE@[2676; 2677) - PREFIX_EXPR@[2677; 2742) - EXCL@[2677; 2678) - PAREN_EXPR@[2678; 2742) - L_PAREN@[2678; 2679) - BIN_EXPR@[2679; 2741) - CALL_EXPR@[2679; 2724) - PAREN_EXPR@[2679; 2700) - L_PAREN@[2679; 2680) - LAMBDA_EXPR@[2680; 2699) - PARAM_LIST@[2680; 2697) - PIPE@[2680; 2681) - PARAM@[2681; 2691) - TUPLE_PAT@[2681; 2685) - L_PAREN@[2681; 2682) - DOTDOT@[2682; 2684) - R_PAREN@[2684; 2685) - COLON@[2685; 2686) - TUPLE_TYPE@[2686; 2691) - L_PAREN@[2686; 2687) - PLACEHOLDER_TYPE@[2687; 2688) - UNDERSCORE@[2687; 2688) - COMMA@[2688; 2689) - PLACEHOLDER_TYPE@[2689; 2690) - UNDERSCORE@[2689; 2690) - R_PAREN@[2690; 2691) - COMMA@[2691; 2692) - PARAM@[2692; 2696) - BIND_PAT@[2692; 2696) - NAME@[2692; 2694) - IDENT@[2692; 2694) "__" - AT@[2694; 2695) - PLACEHOLDER_PAT@[2695; 2696) - UNDERSCORE@[2695; 2696) - PIPE@[2696; 2697) - PATH_EXPR@[2697; 2699) - PATH@[2697; 2699) - PATH_SEGMENT@[2697; 2699) - NAME_REF@[2697; 2699) - IDENT@[2697; 2699) "__" - R_PAREN@[2699; 2700) - ARG_LIST@[2700; 2724) - L_PAREN@[2700; 2701) - TUPLE_EXPR@[2701; 2716) - L_PAREN@[2701; 2702) - REF_EXPR@[2702; 2708) - AMP@[2702; 2703) - PREFIX_EXPR@[2703; 2708) - STAR@[2703; 2704) - LITERAL@[2704; 2708) - STRING@[2704; 2708) - COMMA@[2708; 2709) - LITERAL@[2709; 2715) - CHAR@[2709; 2715) - R_PAREN@[2715; 2716) - COMMENT@[2716; 2720) - COMMA@[2720; 2721) - BLOCK_EXPR@[2721; 2723) - BLOCK@[2721; 2723) - L_CURLY@[2721; 2722) - R_CURLY@[2722; 2723) - R_PAREN@[2723; 2724) - EQEQ@[2724; 2726) - BLOCK_EXPR@[2726; 2741) - BLOCK@[2726; 2741) - L_CURLY@[2726; 2727) - EXPR_STMT@[2727; 2740) - REF_EXPR@[2727; 2739) - AMP@[2727; 2728) - INDEX_EXPR@[2728; 2739) - ARRAY_EXPR@[2728; 2735) - L_BRACK@[2728; 2729) - RANGE_EXPR@[2729; 2734) - DOTDOTEQ@[2729; 2732) - RANGE_EXPR@[2732; 2734) - DOTDOT@[2732; 2734) - R_BRACK@[2734; 2735) - L_BRACK@[2735; 2736) - RANGE_EXPR@[2736; 2738) - DOTDOT@[2736; 2738) - R_BRACK@[2738; 2739) - SEMI@[2739; 2740) - R_CURLY@[2740; 2741) - R_PAREN@[2741; 2742) - COMMENT@[2742; 2744) - WHITESPACE@[2744; 2749) - SEMI@[2749; 2750) - WHITESPACE@[2750; 2755) - EXPR_STMT@[2755; 2769) - MACRO_CALL@[2755; 2768) - PATH@[2755; 2761) - PATH_SEGMENT@[2755; 2761) - NAME_REF@[2755; 2761) - IDENT@[2755; 2761) "assert" - EXCL@[2761; 2762) - TOKEN_TREE@[2762; 2768) - L_PAREN@[2762; 2763) - EXCL@[2763; 2764) - IDENT@[2764; 2767) "val" - R_PAREN@[2767; 2768) - SEMI@[2768; 2769) - WHITESPACE@[2769; 2770) - R_CURLY@[2770; 2771) - WHITESPACE@[2771; 2773) - FN_DEF@[2773; 3243) - FN_KW@[2773; 2775) - WHITESPACE@[2775; 2776) - NAME@[2776; 2786) - IDENT@[2776; 2786) "punch_card" - PARAM_LIST@[2786; 2788) - L_PAREN@[2786; 2787) - R_PAREN@[2787; 2788) - WHITESPACE@[2788; 2789) - RET_TYPE@[2789; 2812) - THIN_ARROW@[2789; 2791) - WHITESPACE@[2791; 2792) - IMPL_TRAIT_TYPE@[2792; 2812) - IMPL_KW@[2792; 2796) - WHITESPACE@[2796; 2797) - PATH_TYPE@[2797; 2812) - PATH@[2797; 2812) - PATH@[2797; 2805) - PATH@[2797; 2800) - PATH_SEGMENT@[2797; 2800) - NAME_REF@[2797; 2800) - IDENT@[2797; 2800) "std" - COLONCOLON@[2800; 2802) - PATH_SEGMENT@[2802; 2805) - NAME_REF@[2802; 2805) - IDENT@[2802; 2805) "fmt" - COLONCOLON@[2805; 2807) - PATH_SEGMENT@[2807; 2812) - NAME_REF@[2807; 2812) - IDENT@[2807; 2812) "Debug" - WHITESPACE@[2812; 2813) - BLOCK@[2813; 3243) - L_CURLY@[2813; 2814) - WHITESPACE@[2814; 2819) - RANGE_EXPR@[2819; 3241) - DOTDOTEQ@[2819; 2822) - RANGE_EXPR@[2822; 3241) - DOTDOTEQ@[2822; 2825) - RANGE_EXPR@[2825; 3241) - DOTDOT@[2825; 2827) - WHITESPACE@[2827; 2828) - RANGE_EXPR@[2828; 3241) - DOTDOT@[2828; 2830) - WHITESPACE@[2830; 2834) - RANGE_EXPR@[2834; 3241) - DOTDOT@[2834; 2836) - WHITESPACE@[2836; 2837) - RANGE_EXPR@[2837; 3241) - DOTDOT@[2837; 2839) - WHITESPACE@[2839; 2840) - RANGE_EXPR@[2840; 3241) - DOTDOT@[2840; 2842) - WHITESPACE@[2842; 2843) - RANGE_EXPR@[2843; 3241) - DOTDOT@[2843; 2845) - WHITESPACE@[2845; 2849) - RANGE_EXPR@[2849; 3241) - DOTDOT@[2849; 2851) - WHITESPACE@[2851; 2852) - RANGE_EXPR@[2852; 3241) - DOTDOT@[2852; 2854) - WHITESPACE@[2854; 2855) - RANGE_EXPR@[2855; 3241) - DOTDOT@[2855; 2857) - WHITESPACE@[2857; 2858) - RANGE_EXPR@[2858; 3241) - DOTDOT@[2858; 2860) - WHITESPACE@[2860; 2864) - RANGE_EXPR@[2864; 3241) - DOTDOT@[2864; 2866) - WHITESPACE@[2866; 2867) - RANGE_EXPR@[2867; 3241) - DOTDOTEQ@[2867; 2870) - RANGE_EXPR@[2870; 3241) - DOTDOT@[2870; 2872) - WHITESPACE@[2872; 2873) - RANGE_EXPR@[2873; 3241) - DOTDOT@[2873; 2875) - WHITESPACE@[2875; 2880) - RANGE_EXPR@[2880; 3241) - DOTDOTEQ@[2880; 2883) - RANGE_EXPR@[2883; 3241) - DOTDOT@[2883; 2885) - WHITESPACE@[2885; 2886) - RANGE_EXPR@[2886; 3241) - DOTDOTEQ@[2886; 2889) - RANGE_EXPR@[2889; 3241) - DOTDOT@[2889; 2891) - WHITESPACE@[2891; 2895) - RANGE_EXPR@[2895; 3241) - DOTDOT@[2895; 2897) - WHITESPACE@[2897; 2898) - RANGE_EXPR@[2898; 3241) - DOTDOT@[2898; 2900) - WHITESPACE@[2900; 2901) - RANGE_EXPR@[2901; 3241) - DOTDOT@[2901; 2903) - WHITESPACE@[2903; 2904) - RANGE_EXPR@[2904; 3241) - DOTDOT@[2904; 2906) - WHITESPACE@[2906; 2910) - RANGE_EXPR@[2910; 3241) - DOTDOT@[2910; 2912) - WHITESPACE@[2912; 2913) - RANGE_EXPR@[2913; 3241) - DOTDOT@[2913; 2915) - WHITESPACE@[2915; 2916) - RANGE_EXPR@[2916; 3241) - DOTDOT@[2916; 2918) - WHITESPACE@[2918; 2919) - RANGE_EXPR@[2919; 3241) - DOTDOT@[2919; 2921) - WHITESPACE@[2921; 2925) - RANGE_EXPR@[2925; 3241) - DOTDOTEQ@[2925; 2928) - RANGE_EXPR@[2928; 3241) - DOTDOTEQ@[2928; 2931) - RANGE_EXPR@[2931; 3241) - DOTDOTEQ@[2931; 2934) - RANGE_EXPR@[2934; 3241) - DOTDOT@[2934; 2936) - WHITESPACE@[2936; 2941) - RANGE_EXPR@[2941; 3241) - DOTDOTEQ@[2941; 2944) - RANGE_EXPR@[2944; 3241) - DOTDOT@[2944; 2946) - WHITESPACE@[2946; 2947) - RANGE_EXPR@[2947; 3241) - DOTDOTEQ@[2947; 2950) - RANGE_EXPR@[2950; 3241) - DOTDOT@[2950; 2952) - WHITESPACE@[2952; 2956) - RANGE_EXPR@[2956; 3241) - DOTDOTEQ@[2956; 2959) - RANGE_EXPR@[2959; 3241) - DOTDOT@[2959; 2961) - WHITESPACE@[2961; 2962) - RANGE_EXPR@[2962; 3241) - DOTDOTEQ@[2962; 2965) - RANGE_EXPR@[2965; 3241) - DOTDOT@[2965; 2967) - WHITESPACE@[2967; 2971) - RANGE_EXPR@[2971; 3241) - DOTDOT@[2971; 2973) - WHITESPACE@[2973; 2974) - RANGE_EXPR@[2974; 3241) - DOTDOTEQ@[2974; 2977) - RANGE_EXPR@[2977; 3241) - DOTDOTEQ@[2977; 2980) - RANGE_EXPR@[2980; 3241) - DOTDOT@[2980; 2982) - WHITESPACE@[2982; 2986) - RANGE_EXPR@[2986; 3241) - DOTDOT@[2986; 2988) - WHITESPACE@[2988; 2989) - RANGE_EXPR@[2989; 3241) - DOTDOTEQ@[2989; 2992) - RANGE_EXPR@[2992; 3241) - DOTDOT@[2992; 2994) - WHITESPACE@[2994; 2995) - RANGE_EXPR@[2995; 3241) - DOTDOT@[2995; 2997) - WHITESPACE@[2997; 3002) - RANGE_EXPR@[3002; 3241) - DOTDOTEQ@[3002; 3005) - RANGE_EXPR@[3005; 3241) - DOTDOTEQ@[3005; 3008) - RANGE_EXPR@[3008; 3241) - DOTDOT@[3008; 3010) - WHITESPACE@[3010; 3011) - RANGE_EXPR@[3011; 3241) - DOTDOT@[3011; 3013) - WHITESPACE@[3013; 3017) - RANGE_EXPR@[3017; 3241) - DOTDOTEQ@[3017; 3020) - RANGE_EXPR@[3020; 3241) - DOTDOT@[3020; 3022) - WHITESPACE@[3022; 3023) - RANGE_EXPR@[3023; 3241) - DOTDOTEQ@[3023; 3026) - RANGE_EXPR@[3026; 3241) - DOTDOT@[3026; 3028) - WHITESPACE@[3028; 3032) - RANGE_EXPR@[3032; 3241) - DOTDOTEQ@[3032; 3035) - RANGE_EXPR@[3035; 3241) - DOTDOT@[3035; 3037) - WHITESPACE@[3037; 3038) - RANGE_EXPR@[3038; 3241) - DOTDOT@[3038; 3040) - WHITESPACE@[3040; 3041) - RANGE_EXPR@[3041; 3241) - DOTDOT@[3041; 3043) - WHITESPACE@[3043; 3047) - RANGE_EXPR@[3047; 3241) - DOTDOT@[3047; 3049) - WHITESPACE@[3049; 3050) - RANGE_EXPR@[3050; 3241) - DOTDOTEQ@[3050; 3053) - RANGE_EXPR@[3053; 3241) - DOTDOT@[3053; 3055) - WHITESPACE@[3055; 3056) - RANGE_EXPR@[3056; 3241) - DOTDOT@[3056; 3058) - WHITESPACE@[3058; 3063) - RANGE_EXPR@[3063; 3241) - DOTDOTEQ@[3063; 3066) - RANGE_EXPR@[3066; 3241) - DOTDOT@[3066; 3068) - WHITESPACE@[3068; 3069) - RANGE_EXPR@[3069; 3241) - DOTDOTEQ@[3069; 3072) - RANGE_EXPR@[3072; 3241) - DOTDOT@[3072; 3074) - WHITESPACE@[3074; 3078) - RANGE_EXPR@[3078; 3241) - DOTDOTEQ@[3078; 3081) - RANGE_EXPR@[3081; 3241) - DOTDOT@[3081; 3083) - WHITESPACE@[3083; 3084) - RANGE_EXPR@[3084; 3241) - DOTDOTEQ@[3084; 3087) - RANGE_EXPR@[3087; 3241) - DOTDOT@[3087; 3089) - WHITESPACE@[3089; 3093) - RANGE_EXPR@[3093; 3241) - DOTDOT@[3093; 3095) - WHITESPACE@[3095; 3096) - RANGE_EXPR@[3096; 3241) - DOTDOTEQ@[3096; 3099) - RANGE_EXPR@[3099; 3241) - DOTDOT@[3099; 3101) - WHITESPACE@[3101; 3102) - RANGE_EXPR@[3102; 3241) - DOTDOT@[3102; 3104) - WHITESPACE@[3104; 3108) - RANGE_EXPR@[3108; 3241) - DOTDOT@[3108; 3110) - WHITESPACE@[3110; 3111) - RANGE_EXPR@[3111; 3241) - DOTDOTEQ@[3111; 3114) - RANGE_EXPR@[3114; 3241) - DOTDOT@[3114; 3116) - WHITESPACE@[3116; 3117) - RANGE_EXPR@[3117; 3241) - DOTDOT@[3117; 3119) - WHITESPACE@[3119; 3124) - RANGE_EXPR@[3124; 3241) - DOTDOTEQ@[3124; 3127) - RANGE_EXPR@[3127; 3241) - DOTDOT@[3127; 3129) - WHITESPACE@[3129; 3130) - RANGE_EXPR@[3130; 3241) - DOTDOTEQ@[3130; 3133) - RANGE_EXPR@[3133; 3241) - DOTDOT@[3133; 3135) - WHITESPACE@[3135; 3139) - RANGE_EXPR@[3139; 3241) - DOTDOTEQ@[3139; 3142) - RANGE_EXPR@[3142; 3241) - DOTDOT@[3142; 3144) - WHITESPACE@[3144; 3145) - RANGE_EXPR@[3145; 3241) - DOTDOTEQ@[3145; 3148) - RANGE_EXPR@[3148; 3241) - DOTDOT@[3148; 3150) - WHITESPACE@[3150; 3154) - RANGE_EXPR@[3154; 3241) - DOTDOT@[3154; 3156) - WHITESPACE@[3156; 3157) - RANGE_EXPR@[3157; 3241) - DOTDOT@[3157; 3159) - WHITESPACE@[3159; 3160) - RANGE_EXPR@[3160; 3241) - DOTDOTEQ@[3160; 3163) - RANGE_EXPR@[3163; 3241) - DOTDOT@[3163; 3165) - WHITESPACE@[3165; 3169) - RANGE_EXPR@[3169; 3241) - DOTDOT@[3169; 3171) - WHITESPACE@[3171; 3172) - RANGE_EXPR@[3172; 3241) - DOTDOTEQ@[3172; 3175) - RANGE_EXPR@[3175; 3241) - DOTDOT@[3175; 3177) - WHITESPACE@[3177; 3178) - RANGE_EXPR@[3178; 3241) - DOTDOT@[3178; 3180) - WHITESPACE@[3180; 3185) - RANGE_EXPR@[3185; 3241) - DOTDOTEQ@[3185; 3188) - RANGE_EXPR@[3188; 3241) - DOTDOT@[3188; 3190) - WHITESPACE@[3190; 3191) - RANGE_EXPR@[3191; 3241) - DOTDOTEQ@[3191; 3194) - RANGE_EXPR@[3194; 3241) - DOTDOT@[3194; 3196) - WHITESPACE@[3196; 3200) - RANGE_EXPR@[3200; 3241) - DOTDOT@[3200; 3202) - WHITESPACE@[3202; 3203) - RANGE_EXPR@[3203; 3241) - DOTDOTEQ@[3203; 3206) - RANGE_EXPR@[3206; 3241) - DOTDOTEQ@[3206; 3209) - RANGE_EXPR@[3209; 3241) - DOTDOT@[3209; 3211) - WHITESPACE@[3211; 3215) - RANGE_EXPR@[3215; 3241) - DOTDOTEQ@[3215; 3218) - RANGE_EXPR@[3218; 3241) - DOTDOTEQ@[3218; 3221) - RANGE_EXPR@[3221; 3241) - DOTDOT@[3221; 3223) - WHITESPACE@[3223; 3224) - RANGE_EXPR@[3224; 3241) - DOTDOT@[3224; 3226) - WHITESPACE@[3226; 3230) - RANGE_EXPR@[3230; 3241) - DOTDOT@[3230; 3232) - WHITESPACE@[3232; 3233) - RANGE_EXPR@[3233; 3241) - DOTDOTEQ@[3233; 3236) - RANGE_EXPR@[3236; 3241) - DOTDOT@[3236; 3238) - WHITESPACE@[3238; 3239) - RANGE_EXPR@[3239; 3241) - DOTDOT@[3239; 3241) - WHITESPACE@[3241; 3242) - R_CURLY@[3242; 3243) - WHITESPACE@[3243; 3245) - FN_DEF@[3245; 3281) - FN_KW@[3245; 3247) - WHITESPACE@[3247; 3248) - NAME@[3248; 3254) - IDENT@[3248; 3254) "ktulhu" - PARAM_LIST@[3254; 3256) - L_PAREN@[3254; 3255) - R_PAREN@[3255; 3256) - WHITESPACE@[3256; 3257) - BLOCK@[3257; 3281) - L_CURLY@[3257; 3258) - WHITESPACE@[3258; 3263) - SEMI@[3263; 3264) - SEMI@[3264; 3265) - SEMI@[3265; 3266) - EXPR_STMT@[3266; 3269) - TUPLE_EXPR@[3266; 3268) - L_PAREN@[3266; 3267) - R_PAREN@[3267; 3268) - SEMI@[3268; 3269) - SEMI@[3269; 3270) - SEMI@[3270; 3271) - SEMI@[3271; 3272) - SEMI@[3272; 3273) - SEMI@[3273; 3274) - SEMI@[3274; 3275) - SEMI@[3275; 3276) - SEMI@[3276; 3277) - TUPLE_EXPR@[3277; 3279) - L_PAREN@[3277; 3278) - R_PAREN@[3278; 3279) - WHITESPACE@[3279; 3280) - R_CURLY@[3280; 3281) - WHITESPACE@[3281; 3283) - FN_DEF@[3283; 3541) - VISIBILITY@[3283; 3286) - PUB_KW@[3283; 3286) - WHITESPACE@[3286; 3287) - FN_KW@[3287; 3289) - WHITESPACE@[3289; 3290) - NAME@[3290; 3294) - IDENT@[3290; 3294) "main" - PARAM_LIST@[3294; 3296) - L_PAREN@[3294; 3295) - R_PAREN@[3295; 3296) - WHITESPACE@[3296; 3297) - BLOCK@[3297; 3541) - L_CURLY@[3297; 3298) - WHITESPACE@[3298; 3303) - EXPR_STMT@[3303; 3313) - CALL_EXPR@[3303; 3312) - PATH_EXPR@[3303; 3310) - PATH@[3303; 3310) - PATH_SEGMENT@[3303; 3310) - NAME_REF@[3303; 3310) - IDENT@[3303; 3310) "strange" - ARG_LIST@[3310; 3312) - L_PAREN@[3310; 3311) - R_PAREN@[3311; 3312) - SEMI@[3312; 3313) - WHITESPACE@[3313; 3318) - EXPR_STMT@[3318; 3326) - CALL_EXPR@[3318; 3325) - PATH_EXPR@[3318; 3323) - PATH@[3318; 3323) - PATH_SEGMENT@[3318; 3323) - NAME_REF@[3318; 3323) - IDENT@[3318; 3323) "funny" - ARG_LIST@[3323; 3325) - L_PAREN@[3323; 3324) - R_PAREN@[3324; 3325) - SEMI@[3325; 3326) - WHITESPACE@[3326; 3331) - EXPR_STMT@[3331; 3338) - CALL_EXPR@[3331; 3337) - PATH_EXPR@[3331; 3335) - PATH@[3331; 3335) - PATH_SEGMENT@[3331; 3335) - NAME_REF@[3331; 3335) - IDENT@[3331; 3335) "what" - ARG_LIST@[3335; 3337) - L_PAREN@[3335; 3336) - R_PAREN@[3336; 3337) - SEMI@[3337; 3338) - WHITESPACE@[3338; 3343) - EXPR_STMT@[3343; 3357) - CALL_EXPR@[3343; 3356) - PATH_EXPR@[3343; 3354) - PATH@[3343; 3354) - PATH_SEGMENT@[3343; 3354) - NAME_REF@[3343; 3354) - IDENT@[3343; 3354) "zombiejesus" - ARG_LIST@[3354; 3356) - L_PAREN@[3354; 3355) - R_PAREN@[3355; 3356) - SEMI@[3356; 3357) - WHITESPACE@[3357; 3362) - EXPR_STMT@[3362; 3372) - CALL_EXPR@[3362; 3371) - PATH_EXPR@[3362; 3369) - PATH@[3362; 3369) - PATH_SEGMENT@[3362; 3369) - NAME_REF@[3362; 3369) - IDENT@[3362; 3369) "notsure" - ARG_LIST@[3369; 3371) - L_PAREN@[3369; 3370) - R_PAREN@[3370; 3371) - SEMI@[3371; 3372) - WHITESPACE@[3372; 3377) - EXPR_STMT@[3377; 3393) - CALL_EXPR@[3377; 3392) - PATH_EXPR@[3377; 3390) - PATH@[3377; 3390) - PATH_SEGMENT@[3377; 3390) - NAME_REF@[3377; 3390) - IDENT@[3377; 3390) "canttouchthis" - ARG_LIST@[3390; 3392) - L_PAREN@[3390; 3391) - R_PAREN@[3391; 3392) - SEMI@[3392; 3393) - WHITESPACE@[3393; 3398) - EXPR_STMT@[3398; 3410) - CALL_EXPR@[3398; 3409) - PATH_EXPR@[3398; 3407) - PATH@[3398; 3407) - PATH_SEGMENT@[3398; 3407) - NAME_REF@[3398; 3407) - IDENT@[3398; 3407) "angrydome" - ARG_LIST@[3407; 3409) - L_PAREN@[3407; 3408) - R_PAREN@[3408; 3409) - SEMI@[3409; 3410) - WHITESPACE@[3410; 3415) - EXPR_STMT@[3415; 3430) - CALL_EXPR@[3415; 3429) - PATH_EXPR@[3415; 3427) - PATH@[3415; 3427) - PATH_SEGMENT@[3415; 3427) - NAME_REF@[3415; 3427) - IDENT@[3415; 3427) "evil_lincoln" - ARG_LIST@[3427; 3429) - L_PAREN@[3427; 3428) - R_PAREN@[3428; 3429) - SEMI@[3429; 3430) - WHITESPACE@[3430; 3435) - EXPR_STMT@[3435; 3442) - CALL_EXPR@[3435; 3441) - PATH_EXPR@[3435; 3439) - PATH@[3435; 3439) - PATH_SEGMENT@[3435; 3439) - NAME_REF@[3435; 3439) - IDENT@[3435; 3439) "dots" - ARG_LIST@[3439; 3441) - L_PAREN@[3439; 3440) - R_PAREN@[3440; 3441) - SEMI@[3441; 3442) - WHITESPACE@[3442; 3447) - EXPR_STMT@[3447; 3455) - CALL_EXPR@[3447; 3454) - PATH_EXPR@[3447; 3449) - PATH@[3447; 3449) - PATH_SEGMENT@[3447; 3449) - NAME_REF@[3447; 3449) - IDENT@[3447; 3449) "u8" - ARG_LIST@[3449; 3454) - L_PAREN@[3449; 3450) - LITERAL@[3450; 3453) - INT_NUMBER@[3450; 3453) "8u8" - R_PAREN@[3453; 3454) - SEMI@[3454; 3455) - WHITESPACE@[3455; 3460) - EXPR_STMT@[3460; 3468) - CALL_EXPR@[3460; 3467) - PATH_EXPR@[3460; 3465) - PATH@[3460; 3465) - PATH_SEGMENT@[3460; 3465) - NAME_REF@[3460; 3465) - IDENT@[3460; 3465) "fishy" - ARG_LIST@[3465; 3467) - L_PAREN@[3465; 3466) - R_PAREN@[3466; 3467) - SEMI@[3467; 3468) - WHITESPACE@[3468; 3473) - EXPR_STMT@[3473; 3481) - CALL_EXPR@[3473; 3480) - PATH_EXPR@[3473; 3478) - PATH@[3473; 3478) - PATH_SEGMENT@[3473; 3478) - NAME_REF@[3473; 3478) - IDENT@[3473; 3478) "union" - ARG_LIST@[3478; 3480) - L_PAREN@[3478; 3479) - R_PAREN@[3479; 3480) - SEMI@[3480; 3481) - WHITESPACE@[3481; 3486) - EXPR_STMT@[3486; 3507) - CALL_EXPR@[3486; 3506) - PATH_EXPR@[3486; 3504) - PATH@[3486; 3504) - PATH_SEGMENT@[3486; 3504) - NAME_REF@[3486; 3504) - IDENT@[3486; 3504) "special_characters" - ARG_LIST@[3504; 3506) - L_PAREN@[3504; 3505) - R_PAREN@[3505; 3506) - SEMI@[3506; 3507) - WHITESPACE@[3507; 3512) - EXPR_STMT@[3512; 3525) - CALL_EXPR@[3512; 3524) - PATH_EXPR@[3512; 3522) - PATH@[3512; 3522) - PATH_SEGMENT@[3512; 3522) - NAME_REF@[3512; 3522) - IDENT@[3512; 3522) "punch_card" - ARG_LIST@[3522; 3524) - L_PAREN@[3522; 3523) - R_PAREN@[3523; 3524) - SEMI@[3524; 3525) - WHITESPACE@[3525; 3530) - EXPR_STMT@[3530; 3539) - CALL_EXPR@[3530; 3538) - PATH_EXPR@[3530; 3536) - PATH@[3530; 3536) - PATH_SEGMENT@[3530; 3536) - NAME_REF@[3530; 3536) - IDENT@[3530; 3536) "ktulhu" - ARG_LIST@[3536; 3538) - L_PAREN@[3536; 3537) - R_PAREN@[3537; 3538) - SEMI@[3538; 3539) - WHITESPACE@[3539; 3540) - R_CURLY@[3540; 3541) - WHITESPACE@[3541; 3542) + LET_STMT@[1926; 1958) + LET_KW@[1926; 1929) + WHITESPACE@[1929; 1930) + BIND_PAT@[1930; 1935) + NAME@[1930; 1935) + IDENT@[1930; 1935) "_evil" + WHITESPACE@[1935; 1936) + EQ@[1936; 1937) + WHITESPACE@[1937; 1938) + MACRO_CALL@[1938; 1957) + PATH@[1938; 1945) + PATH_SEGMENT@[1938; 1945) + NAME_REF@[1938; 1945) + IDENT@[1938; 1945) "println" + EXCL@[1945; 1946) + TOKEN_TREE@[1946; 1957) + L_PAREN@[1946; 1947) + STRING@[1947; 1956) + R_PAREN@[1956; 1957) + SEMI@[1957; 1958) + WHITESPACE@[1958; 1959) + R_CURLY@[1959; 1960) + WHITESPACE@[1960; 1962) + FN_DEF@[1962; 2198) + FN_KW@[1962; 1964) + WHITESPACE@[1964; 1965) + NAME@[1965; 1969) + IDENT@[1965; 1969) "dots" + PARAM_LIST@[1969; 1971) + L_PAREN@[1969; 1970) + R_PAREN@[1970; 1971) + WHITESPACE@[1971; 1972) + BLOCK@[1972; 2198) + L_CURLY@[1972; 1973) + WHITESPACE@[1973; 1978) + EXPR_STMT@[1978; 2196) + MACRO_CALL@[1978; 2195) + PATH@[1978; 1987) + PATH_SEGMENT@[1978; 1987) + NAME_REF@[1978; 1987) + IDENT@[1978; 1987) "assert_eq" + EXCL@[1987; 1988) + TOKEN_TREE@[1988; 2195) + L_PAREN@[1988; 1989) + IDENT@[1989; 1995) "String" + COLONCOLON@[1995; 1997) + IDENT@[1997; 2001) "from" + TOKEN_TREE@[2001; 2055) + L_PAREN@[2001; 2002) + STRING@[2002; 2054) + R_PAREN@[2054; 2055) + COMMA@[2055; 2056) + WHITESPACE@[2056; 2072) + IDENT@[2072; 2078) "format" + EXCL@[2078; 2079) + TOKEN_TREE@[2079; 2194) + L_PAREN@[2079; 2080) + STRING@[2080; 2086) + COMMA@[2086; 2087) + WHITESPACE@[2087; 2088) + DOTDOT@[2088; 2090) + WHITESPACE@[2090; 2091) + DOTDOT@[2091; 2093) + WHITESPACE@[2093; 2094) + DOTDOT@[2094; 2096) + WHITESPACE@[2096; 2097) + DOTDOT@[2097; 2099) + WHITESPACE@[2099; 2100) + DOTDOT@[2100; 2102) + WHITESPACE@[2102; 2103) + DOTDOT@[2103; 2105) + WHITESPACE@[2105; 2106) + DOTDOT@[2106; 2108) + WHITESPACE@[2108; 2109) + DOTDOT@[2109; 2111) + WHITESPACE@[2111; 2112) + DOTDOT@[2112; 2114) + WHITESPACE@[2114; 2115) + DOTDOT@[2115; 2117) + WHITESPACE@[2117; 2118) + DOTDOT@[2118; 2120) + WHITESPACE@[2120; 2121) + DOTDOT@[2121; 2123) + WHITESPACE@[2123; 2124) + DOTDOT@[2124; 2126) + WHITESPACE@[2126; 2158) + DOTDOT@[2158; 2160) + WHITESPACE@[2160; 2161) + DOTDOT@[2161; 2163) + WHITESPACE@[2163; 2164) + DOTDOT@[2164; 2166) + WHITESPACE@[2166; 2167) + DOTDOT@[2167; 2169) + WHITESPACE@[2169; 2170) + DOTDOT@[2170; 2172) + WHITESPACE@[2172; 2173) + DOTDOT@[2173; 2175) + WHITESPACE@[2175; 2176) + DOTDOT@[2176; 2178) + WHITESPACE@[2178; 2179) + DOTDOT@[2179; 2181) + WHITESPACE@[2181; 2182) + DOTDOT@[2182; 2184) + WHITESPACE@[2184; 2185) + DOTDOT@[2185; 2187) + WHITESPACE@[2187; 2188) + DOTDOT@[2188; 2190) + WHITESPACE@[2190; 2191) + DOTDOT@[2191; 2193) + R_PAREN@[2193; 2194) + R_PAREN@[2194; 2195) + SEMI@[2195; 2196) + WHITESPACE@[2196; 2197) + R_CURLY@[2197; 2198) + WHITESPACE@[2198; 2200) + FN_DEF@[2200; 2693) + FN_KW@[2200; 2202) + WHITESPACE@[2202; 2203) + NAME@[2203; 2205) + IDENT@[2203; 2205) "u8" + PARAM_LIST@[2205; 2213) + L_PAREN@[2205; 2206) + PARAM@[2206; 2212) + BIND_PAT@[2206; 2208) + NAME@[2206; 2208) + IDENT@[2206; 2208) "u8" + COLON@[2208; 2209) + WHITESPACE@[2209; 2210) + PATH_TYPE@[2210; 2212) + PATH@[2210; 2212) + PATH_SEGMENT@[2210; 2212) + NAME_REF@[2210; 2212) + IDENT@[2210; 2212) "u8" + R_PAREN@[2212; 2213) + WHITESPACE@[2213; 2214) + BLOCK@[2214; 2693) + L_CURLY@[2214; 2215) + WHITESPACE@[2215; 2220) + IF_EXPR@[2220; 2691) + IF_KW@[2220; 2222) + WHITESPACE@[2222; 2223) + CONDITION@[2223; 2232) + BIN_EXPR@[2223; 2232) + PATH_EXPR@[2223; 2225) + PATH@[2223; 2225) + PATH_SEGMENT@[2223; 2225) + NAME_REF@[2223; 2225) + IDENT@[2223; 2225) "u8" + WHITESPACE@[2225; 2226) + NEQ@[2226; 2228) + WHITESPACE@[2228; 2229) + LITERAL@[2229; 2232) + INT_NUMBER@[2229; 2232) "0u8" + WHITESPACE@[2232; 2233) + BLOCK@[2233; 2691) + L_CURLY@[2233; 2234) + WHITESPACE@[2234; 2243) + EXPR_STMT@[2243; 2685) + MACRO_CALL@[2243; 2684) + PATH@[2243; 2252) + PATH_SEGMENT@[2243; 2252) + NAME_REF@[2243; 2252) + IDENT@[2243; 2252) "assert_eq" + EXCL@[2252; 2253) + TOKEN_TREE@[2253; 2684) + L_PAREN@[2253; 2254) + INT_NUMBER@[2254; 2257) "8u8" + COMMA@[2257; 2258) + WHITESPACE@[2258; 2259) + TOKEN_TREE@[2259; 2683) + L_CURLY@[2259; 2260) + WHITESPACE@[2260; 2273) + IDENT@[2273; 2284) "macro_rules" + EXCL@[2284; 2285) + WHITESPACE@[2285; 2286) + IDENT@[2286; 2288) "u8" + WHITESPACE@[2288; 2289) + TOKEN_TREE@[2289; 2567) + L_CURLY@[2289; 2290) + WHITESPACE@[2290; 2307) + TOKEN_TREE@[2307; 2311) + L_PAREN@[2307; 2308) + IDENT@[2308; 2310) "u8" + R_PAREN@[2310; 2311) + WHITESPACE@[2311; 2312) + FAT_ARROW@[2312; 2314) + WHITESPACE@[2314; 2315) + TOKEN_TREE@[2315; 2552) + L_CURLY@[2315; 2316) + WHITESPACE@[2316; 2337) + MOD_KW@[2337; 2340) + WHITESPACE@[2340; 2341) + IDENT@[2341; 2343) "u8" + WHITESPACE@[2343; 2344) + TOKEN_TREE@[2344; 2534) + L_CURLY@[2344; 2345) + WHITESPACE@[2345; 2370) + PUB_KW@[2370; 2373) + WHITESPACE@[2373; 2374) + FN_KW@[2374; 2376) + WHITESPACE@[2376; 2377) + IDENT@[2377; 2379) "u8" + L_ANGLE@[2379; 2380) + LIFETIME@[2380; 2383) "'u8" + COLON@[2383; 2384) + WHITESPACE@[2384; 2385) + LIFETIME@[2385; 2388) "'u8" + WHITESPACE@[2388; 2389) + PLUS@[2389; 2390) + WHITESPACE@[2390; 2391) + LIFETIME@[2391; 2394) "'u8" + R_ANGLE@[2394; 2395) + TOKEN_TREE@[2395; 2408) + L_PAREN@[2395; 2396) + IDENT@[2396; 2398) "u8" + COLON@[2398; 2399) + WHITESPACE@[2399; 2400) + AMP@[2400; 2401) + LIFETIME@[2401; 2404) "'u8" + WHITESPACE@[2404; 2405) + IDENT@[2405; 2407) "u8" + R_PAREN@[2407; 2408) + WHITESPACE@[2408; 2409) + THIN_ARROW@[2409; 2411) + WHITESPACE@[2411; 2412) + AMP@[2412; 2413) + LIFETIME@[2413; 2416) "'u8" + WHITESPACE@[2416; 2417) + IDENT@[2417; 2419) "u8" + WHITESPACE@[2419; 2420) + TOKEN_TREE@[2420; 2512) + L_CURLY@[2420; 2421) + WHITESPACE@[2421; 2450) + STRING@[2450; 2454) + SEMI@[2454; 2455) + WHITESPACE@[2455; 2484) + IDENT@[2484; 2486) "u8" + WHITESPACE@[2486; 2511) + R_CURLY@[2511; 2512) + WHITESPACE@[2512; 2533) + R_CURLY@[2533; 2534) + WHITESPACE@[2534; 2551) + R_CURLY@[2551; 2552) + SEMI@[2552; 2553) + WHITESPACE@[2553; 2566) + R_CURLY@[2566; 2567) + WHITESPACE@[2567; 2581) + IDENT@[2581; 2583) "u8" + EXCL@[2583; 2584) + TOKEN_TREE@[2584; 2588) + L_PAREN@[2584; 2585) + IDENT@[2585; 2587) "u8" + R_PAREN@[2587; 2588) + SEMI@[2588; 2589) + WHITESPACE@[2589; 2602) + LET_KW@[2602; 2605) + WHITESPACE@[2605; 2606) + AMP@[2606; 2607) + IDENT@[2607; 2609) "u8" + COLON@[2609; 2610) + WHITESPACE@[2610; 2611) + AMP@[2611; 2612) + IDENT@[2612; 2614) "u8" + WHITESPACE@[2614; 2615) + EQ@[2615; 2616) + WHITESPACE@[2616; 2617) + IDENT@[2617; 2619) "u8" + COLONCOLON@[2619; 2621) + IDENT@[2621; 2623) "u8" + TOKEN_TREE@[2623; 2629) + L_PAREN@[2623; 2624) + AMP@[2624; 2625) + INT_NUMBER@[2625; 2628) "8u8" + R_PAREN@[2628; 2629) + SEMI@[2629; 2630) + WHITESPACE@[2630; 2643) + CRATE_KW@[2643; 2648) + COLONCOLON@[2648; 2650) + IDENT@[2650; 2652) "u8" + TOKEN_TREE@[2652; 2657) + L_PAREN@[2652; 2653) + INT_NUMBER@[2653; 2656) "0u8" + R_PAREN@[2656; 2657) + SEMI@[2657; 2658) + WHITESPACE@[2658; 2671) + IDENT@[2671; 2673) "u8" + WHITESPACE@[2673; 2682) + R_CURLY@[2682; 2683) + R_PAREN@[2683; 2684) + SEMI@[2684; 2685) + WHITESPACE@[2685; 2690) + R_CURLY@[2690; 2691) + WHITESPACE@[2691; 2692) + R_CURLY@[2692; 2693) + WHITESPACE@[2693; 2695) + FN_DEF@[2695; 2832) + FN_KW@[2695; 2697) + WHITESPACE@[2697; 2698) + NAME@[2698; 2703) + IDENT@[2698; 2703) "fishy" + PARAM_LIST@[2703; 2705) + L_PAREN@[2703; 2704) + R_PAREN@[2704; 2705) + WHITESPACE@[2705; 2706) + BLOCK@[2706; 2832) + L_CURLY@[2706; 2707) + WHITESPACE@[2707; 2712) + EXPR_STMT@[2712; 2830) + MACRO_CALL@[2712; 2829) + PATH@[2712; 2721) + PATH_SEGMENT@[2712; 2721) + NAME_REF@[2712; 2721) + IDENT@[2712; 2721) "assert_eq" + EXCL@[2721; 2722) + TOKEN_TREE@[2722; 2829) + L_PAREN@[2722; 2723) + IDENT@[2723; 2729) "String" + COLONCOLON@[2729; 2731) + IDENT@[2731; 2735) "from" + TOKEN_TREE@[2735; 2742) + L_PAREN@[2735; 2736) + STRING@[2736; 2741) + R_PAREN@[2741; 2742) + COMMA@[2742; 2743) + WHITESPACE@[2743; 2759) + IDENT@[2759; 2765) "String" + COLONCOLON@[2765; 2767) + L_ANGLE@[2767; 2768) + R_ANGLE@[2768; 2769) + COLONCOLON@[2769; 2771) + IDENT@[2771; 2775) "from" + COLONCOLON@[2775; 2777) + L_ANGLE@[2777; 2778) + R_ANGLE@[2778; 2779) + TOKEN_TREE@[2779; 2786) + L_PAREN@[2779; 2780) + STRING@[2780; 2785) + R_PAREN@[2785; 2786) + DOT@[2786; 2787) + IDENT@[2787; 2792) "chars" + COLONCOLON@[2792; 2794) + L_ANGLE@[2794; 2795) + R_ANGLE@[2795; 2796) + TOKEN_TREE@[2796; 2798) + L_PAREN@[2796; 2797) + R_PAREN@[2797; 2798) + DOT@[2798; 2799) + IDENT@[2799; 2802) "rev" + COLONCOLON@[2802; 2804) + L_ANGLE@[2804; 2805) + R_ANGLE@[2805; 2806) + TOKEN_TREE@[2806; 2808) + L_PAREN@[2806; 2807) + R_PAREN@[2807; 2808) + DOT@[2808; 2809) + IDENT@[2809; 2816) "collect" + COLONCOLON@[2816; 2818) + L_ANGLE@[2818; 2819) + IDENT@[2819; 2825) "String" + R_ANGLE@[2825; 2826) + TOKEN_TREE@[2826; 2828) + L_PAREN@[2826; 2827) + R_PAREN@[2827; 2828) + R_PAREN@[2828; 2829) + SEMI@[2829; 2830) + WHITESPACE@[2830; 2831) + R_CURLY@[2831; 2832) + WHITESPACE@[2832; 2834) + FN_DEF@[2834; 2906) + FN_KW@[2834; 2836) + WHITESPACE@[2836; 2837) + NAME@[2837; 2842) + IDENT@[2837; 2842) "union" + PARAM_LIST@[2842; 2844) + L_PAREN@[2842; 2843) + R_PAREN@[2843; 2844) + WHITESPACE@[2844; 2845) + BLOCK@[2845; 2906) + L_CURLY@[2845; 2846) + WHITESPACE@[2846; 2851) + STRUCT_DEF@[2851; 2904) + UNION_KW@[2851; 2856) + WHITESPACE@[2856; 2857) + NAME@[2857; 2862) + IDENT@[2857; 2862) "union" + TYPE_PARAM_LIST@[2862; 2870) + L_ANGLE@[2862; 2863) + LIFETIME_PARAM@[2863; 2869) + LIFETIME@[2863; 2869) "'union" + R_ANGLE@[2869; 2870) + WHITESPACE@[2870; 2871) + NAMED_FIELD_DEF_LIST@[2871; 2904) + L_CURLY@[2871; 2872) + WHITESPACE@[2872; 2873) + NAMED_FIELD_DEF@[2873; 2901) + NAME@[2873; 2878) + IDENT@[2873; 2878) "union" + COLON@[2878; 2879) + WHITESPACE@[2879; 2880) + REFERENCE_TYPE@[2880; 2901) + AMP@[2880; 2881) + LIFETIME@[2881; 2887) "'union" + WHITESPACE@[2887; 2888) + PATH_TYPE@[2888; 2901) + PATH@[2888; 2901) + PATH_SEGMENT@[2888; 2901) + NAME_REF@[2888; 2893) + IDENT@[2888; 2893) "union" + TYPE_ARG_LIST@[2893; 2901) + L_ANGLE@[2893; 2894) + LIFETIME_ARG@[2894; 2900) + LIFETIME@[2894; 2900) "'union" + R_ANGLE@[2900; 2901) + COMMA@[2901; 2902) + WHITESPACE@[2902; 2903) + R_CURLY@[2903; 2904) + WHITESPACE@[2904; 2905) + R_CURLY@[2905; 2906) + WHITESPACE@[2906; 2908) + FN_DEF@[2908; 3042) + FN_KW@[2908; 2910) + WHITESPACE@[2910; 2911) + NAME@[2911; 2929) + IDENT@[2911; 2929) "special_characters" + PARAM_LIST@[2929; 2931) + L_PAREN@[2929; 2930) + R_PAREN@[2930; 2931) + WHITESPACE@[2931; 2932) + BLOCK@[2932; 3042) + L_CURLY@[2932; 2933) + WHITESPACE@[2933; 2938) + LET_STMT@[2938; 3021) + LET_KW@[2938; 2941) + WHITESPACE@[2941; 2942) + BIND_PAT@[2942; 2945) + NAME@[2942; 2945) + IDENT@[2942; 2945) "val" + WHITESPACE@[2945; 2946) + EQ@[2946; 2947) + WHITESPACE@[2947; 2948) + PREFIX_EXPR@[2948; 3013) + EXCL@[2948; 2949) + PAREN_EXPR@[2949; 3013) + L_PAREN@[2949; 2950) + BIN_EXPR@[2950; 3012) + CALL_EXPR@[2950; 2995) + PAREN_EXPR@[2950; 2971) + L_PAREN@[2950; 2951) + LAMBDA_EXPR@[2951; 2970) + PARAM_LIST@[2951; 2968) + PIPE@[2951; 2952) + PARAM@[2952; 2962) + TUPLE_PAT@[2952; 2956) + L_PAREN@[2952; 2953) + DOTDOT@[2953; 2955) + R_PAREN@[2955; 2956) + COLON@[2956; 2957) + TUPLE_TYPE@[2957; 2962) + L_PAREN@[2957; 2958) + PLACEHOLDER_TYPE@[2958; 2959) + UNDERSCORE@[2958; 2959) + COMMA@[2959; 2960) + PLACEHOLDER_TYPE@[2960; 2961) + UNDERSCORE@[2960; 2961) + R_PAREN@[2961; 2962) + COMMA@[2962; 2963) + PARAM@[2963; 2967) + BIND_PAT@[2963; 2967) + NAME@[2963; 2965) + IDENT@[2963; 2965) "__" + AT@[2965; 2966) + PLACEHOLDER_PAT@[2966; 2967) + UNDERSCORE@[2966; 2967) + PIPE@[2967; 2968) + PATH_EXPR@[2968; 2970) + PATH@[2968; 2970) + PATH_SEGMENT@[2968; 2970) + NAME_REF@[2968; 2970) + IDENT@[2968; 2970) "__" + R_PAREN@[2970; 2971) + ARG_LIST@[2971; 2995) + L_PAREN@[2971; 2972) + TUPLE_EXPR@[2972; 2987) + L_PAREN@[2972; 2973) + REF_EXPR@[2973; 2979) + AMP@[2973; 2974) + PREFIX_EXPR@[2974; 2979) + STAR@[2974; 2975) + LITERAL@[2975; 2979) + STRING@[2975; 2979) + COMMA@[2979; 2980) + LITERAL@[2980; 2986) + CHAR@[2980; 2986) + R_PAREN@[2986; 2987) + COMMENT@[2987; 2991) + COMMA@[2991; 2992) + BLOCK_EXPR@[2992; 2994) + BLOCK@[2992; 2994) + L_CURLY@[2992; 2993) + R_CURLY@[2993; 2994) + R_PAREN@[2994; 2995) + EQEQ@[2995; 2997) + BLOCK_EXPR@[2997; 3012) + BLOCK@[2997; 3012) + L_CURLY@[2997; 2998) + EXPR_STMT@[2998; 3011) + REF_EXPR@[2998; 3010) + AMP@[2998; 2999) + INDEX_EXPR@[2999; 3010) + ARRAY_EXPR@[2999; 3006) + L_BRACK@[2999; 3000) + RANGE_EXPR@[3000; 3005) + DOTDOTEQ@[3000; 3003) + RANGE_EXPR@[3003; 3005) + DOTDOT@[3003; 3005) + R_BRACK@[3005; 3006) + L_BRACK@[3006; 3007) + RANGE_EXPR@[3007; 3009) + DOTDOT@[3007; 3009) + R_BRACK@[3009; 3010) + SEMI@[3010; 3011) + R_CURLY@[3011; 3012) + R_PAREN@[3012; 3013) + COMMENT@[3013; 3015) + WHITESPACE@[3015; 3020) + SEMI@[3020; 3021) + WHITESPACE@[3021; 3026) + EXPR_STMT@[3026; 3040) + MACRO_CALL@[3026; 3039) + PATH@[3026; 3032) + PATH_SEGMENT@[3026; 3032) + NAME_REF@[3026; 3032) + IDENT@[3026; 3032) "assert" + EXCL@[3032; 3033) + TOKEN_TREE@[3033; 3039) + L_PAREN@[3033; 3034) + EXCL@[3034; 3035) + IDENT@[3035; 3038) "val" + R_PAREN@[3038; 3039) + SEMI@[3039; 3040) + WHITESPACE@[3040; 3041) + R_CURLY@[3041; 3042) + WHITESPACE@[3042; 3044) + FN_DEF@[3044; 3514) + FN_KW@[3044; 3046) + WHITESPACE@[3046; 3047) + NAME@[3047; 3057) + IDENT@[3047; 3057) "punch_card" + PARAM_LIST@[3057; 3059) + L_PAREN@[3057; 3058) + R_PAREN@[3058; 3059) + WHITESPACE@[3059; 3060) + RET_TYPE@[3060; 3083) + THIN_ARROW@[3060; 3062) + WHITESPACE@[3062; 3063) + IMPL_TRAIT_TYPE@[3063; 3083) + IMPL_KW@[3063; 3067) + WHITESPACE@[3067; 3068) + PATH_TYPE@[3068; 3083) + PATH@[3068; 3083) + PATH@[3068; 3076) + PATH@[3068; 3071) + PATH_SEGMENT@[3068; 3071) + NAME_REF@[3068; 3071) + IDENT@[3068; 3071) "std" + COLONCOLON@[3071; 3073) + PATH_SEGMENT@[3073; 3076) + NAME_REF@[3073; 3076) + IDENT@[3073; 3076) "fmt" + COLONCOLON@[3076; 3078) + PATH_SEGMENT@[3078; 3083) + NAME_REF@[3078; 3083) + IDENT@[3078; 3083) "Debug" + WHITESPACE@[3083; 3084) + BLOCK@[3084; 3514) + L_CURLY@[3084; 3085) + WHITESPACE@[3085; 3090) + RANGE_EXPR@[3090; 3512) + DOTDOTEQ@[3090; 3093) + RANGE_EXPR@[3093; 3512) + DOTDOTEQ@[3093; 3096) + RANGE_EXPR@[3096; 3512) + DOTDOT@[3096; 3098) + WHITESPACE@[3098; 3099) + RANGE_EXPR@[3099; 3512) + DOTDOT@[3099; 3101) + WHITESPACE@[3101; 3105) + RANGE_EXPR@[3105; 3512) + DOTDOT@[3105; 3107) + WHITESPACE@[3107; 3108) + RANGE_EXPR@[3108; 3512) + DOTDOT@[3108; 3110) + WHITESPACE@[3110; 3111) + RANGE_EXPR@[3111; 3512) + DOTDOT@[3111; 3113) + WHITESPACE@[3113; 3114) + RANGE_EXPR@[3114; 3512) + DOTDOT@[3114; 3116) + WHITESPACE@[3116; 3120) + RANGE_EXPR@[3120; 3512) + DOTDOT@[3120; 3122) + WHITESPACE@[3122; 3123) + RANGE_EXPR@[3123; 3512) + DOTDOT@[3123; 3125) + WHITESPACE@[3125; 3126) + RANGE_EXPR@[3126; 3512) + DOTDOT@[3126; 3128) + WHITESPACE@[3128; 3129) + RANGE_EXPR@[3129; 3512) + DOTDOT@[3129; 3131) + WHITESPACE@[3131; 3135) + RANGE_EXPR@[3135; 3512) + DOTDOT@[3135; 3137) + WHITESPACE@[3137; 3138) + RANGE_EXPR@[3138; 3512) + DOTDOTEQ@[3138; 3141) + RANGE_EXPR@[3141; 3512) + DOTDOT@[3141; 3143) + WHITESPACE@[3143; 3144) + RANGE_EXPR@[3144; 3512) + DOTDOT@[3144; 3146) + WHITESPACE@[3146; 3151) + RANGE_EXPR@[3151; 3512) + DOTDOTEQ@[3151; 3154) + RANGE_EXPR@[3154; 3512) + DOTDOT@[3154; 3156) + WHITESPACE@[3156; 3157) + RANGE_EXPR@[3157; 3512) + DOTDOTEQ@[3157; 3160) + RANGE_EXPR@[3160; 3512) + DOTDOT@[3160; 3162) + WHITESPACE@[3162; 3166) + RANGE_EXPR@[3166; 3512) + DOTDOT@[3166; 3168) + WHITESPACE@[3168; 3169) + RANGE_EXPR@[3169; 3512) + DOTDOT@[3169; 3171) + WHITESPACE@[3171; 3172) + RANGE_EXPR@[3172; 3512) + DOTDOT@[3172; 3174) + WHITESPACE@[3174; 3175) + RANGE_EXPR@[3175; 3512) + DOTDOT@[3175; 3177) + WHITESPACE@[3177; 3181) + RANGE_EXPR@[3181; 3512) + DOTDOT@[3181; 3183) + WHITESPACE@[3183; 3184) + RANGE_EXPR@[3184; 3512) + DOTDOT@[3184; 3186) + WHITESPACE@[3186; 3187) + RANGE_EXPR@[3187; 3512) + DOTDOT@[3187; 3189) + WHITESPACE@[3189; 3190) + RANGE_EXPR@[3190; 3512) + DOTDOT@[3190; 3192) + WHITESPACE@[3192; 3196) + RANGE_EXPR@[3196; 3512) + DOTDOTEQ@[3196; 3199) + RANGE_EXPR@[3199; 3512) + DOTDOTEQ@[3199; 3202) + RANGE_EXPR@[3202; 3512) + DOTDOTEQ@[3202; 3205) + RANGE_EXPR@[3205; 3512) + DOTDOT@[3205; 3207) + WHITESPACE@[3207; 3212) + RANGE_EXPR@[3212; 3512) + DOTDOTEQ@[3212; 3215) + RANGE_EXPR@[3215; 3512) + DOTDOT@[3215; 3217) + WHITESPACE@[3217; 3218) + RANGE_EXPR@[3218; 3512) + DOTDOTEQ@[3218; 3221) + RANGE_EXPR@[3221; 3512) + DOTDOT@[3221; 3223) + WHITESPACE@[3223; 3227) + RANGE_EXPR@[3227; 3512) + DOTDOTEQ@[3227; 3230) + RANGE_EXPR@[3230; 3512) + DOTDOT@[3230; 3232) + WHITESPACE@[3232; 3233) + RANGE_EXPR@[3233; 3512) + DOTDOTEQ@[3233; 3236) + RANGE_EXPR@[3236; 3512) + DOTDOT@[3236; 3238) + WHITESPACE@[3238; 3242) + RANGE_EXPR@[3242; 3512) + DOTDOT@[3242; 3244) + WHITESPACE@[3244; 3245) + RANGE_EXPR@[3245; 3512) + DOTDOTEQ@[3245; 3248) + RANGE_EXPR@[3248; 3512) + DOTDOTEQ@[3248; 3251) + RANGE_EXPR@[3251; 3512) + DOTDOT@[3251; 3253) + WHITESPACE@[3253; 3257) + RANGE_EXPR@[3257; 3512) + DOTDOT@[3257; 3259) + WHITESPACE@[3259; 3260) + RANGE_EXPR@[3260; 3512) + DOTDOTEQ@[3260; 3263) + RANGE_EXPR@[3263; 3512) + DOTDOT@[3263; 3265) + WHITESPACE@[3265; 3266) + RANGE_EXPR@[3266; 3512) + DOTDOT@[3266; 3268) + WHITESPACE@[3268; 3273) + RANGE_EXPR@[3273; 3512) + DOTDOTEQ@[3273; 3276) + RANGE_EXPR@[3276; 3512) + DOTDOTEQ@[3276; 3279) + RANGE_EXPR@[3279; 3512) + DOTDOT@[3279; 3281) + WHITESPACE@[3281; 3282) + RANGE_EXPR@[3282; 3512) + DOTDOT@[3282; 3284) + WHITESPACE@[3284; 3288) + RANGE_EXPR@[3288; 3512) + DOTDOTEQ@[3288; 3291) + RANGE_EXPR@[3291; 3512) + DOTDOT@[3291; 3293) + WHITESPACE@[3293; 3294) + RANGE_EXPR@[3294; 3512) + DOTDOTEQ@[3294; 3297) + RANGE_EXPR@[3297; 3512) + DOTDOT@[3297; 3299) + WHITESPACE@[3299; 3303) + RANGE_EXPR@[3303; 3512) + DOTDOTEQ@[3303; 3306) + RANGE_EXPR@[3306; 3512) + DOTDOT@[3306; 3308) + WHITESPACE@[3308; 3309) + RANGE_EXPR@[3309; 3512) + DOTDOT@[3309; 3311) + WHITESPACE@[3311; 3312) + RANGE_EXPR@[3312; 3512) + DOTDOT@[3312; 3314) + WHITESPACE@[3314; 3318) + RANGE_EXPR@[3318; 3512) + DOTDOT@[3318; 3320) + WHITESPACE@[3320; 3321) + RANGE_EXPR@[3321; 3512) + DOTDOTEQ@[3321; 3324) + RANGE_EXPR@[3324; 3512) + DOTDOT@[3324; 3326) + WHITESPACE@[3326; 3327) + RANGE_EXPR@[3327; 3512) + DOTDOT@[3327; 3329) + WHITESPACE@[3329; 3334) + RANGE_EXPR@[3334; 3512) + DOTDOTEQ@[3334; 3337) + RANGE_EXPR@[3337; 3512) + DOTDOT@[3337; 3339) + WHITESPACE@[3339; 3340) + RANGE_EXPR@[3340; 3512) + DOTDOTEQ@[3340; 3343) + RANGE_EXPR@[3343; 3512) + DOTDOT@[3343; 3345) + WHITESPACE@[3345; 3349) + RANGE_EXPR@[3349; 3512) + DOTDOTEQ@[3349; 3352) + RANGE_EXPR@[3352; 3512) + DOTDOT@[3352; 3354) + WHITESPACE@[3354; 3355) + RANGE_EXPR@[3355; 3512) + DOTDOTEQ@[3355; 3358) + RANGE_EXPR@[3358; 3512) + DOTDOT@[3358; 3360) + WHITESPACE@[3360; 3364) + RANGE_EXPR@[3364; 3512) + DOTDOT@[3364; 3366) + WHITESPACE@[3366; 3367) + RANGE_EXPR@[3367; 3512) + DOTDOTEQ@[3367; 3370) + RANGE_EXPR@[3370; 3512) + DOTDOT@[3370; 3372) + WHITESPACE@[3372; 3373) + RANGE_EXPR@[3373; 3512) + DOTDOT@[3373; 3375) + WHITESPACE@[3375; 3379) + RANGE_EXPR@[3379; 3512) + DOTDOT@[3379; 3381) + WHITESPACE@[3381; 3382) + RANGE_EXPR@[3382; 3512) + DOTDOTEQ@[3382; 3385) + RANGE_EXPR@[3385; 3512) + DOTDOT@[3385; 3387) + WHITESPACE@[3387; 3388) + RANGE_EXPR@[3388; 3512) + DOTDOT@[3388; 3390) + WHITESPACE@[3390; 3395) + RANGE_EXPR@[3395; 3512) + DOTDOTEQ@[3395; 3398) + RANGE_EXPR@[3398; 3512) + DOTDOT@[3398; 3400) + WHITESPACE@[3400; 3401) + RANGE_EXPR@[3401; 3512) + DOTDOTEQ@[3401; 3404) + RANGE_EXPR@[3404; 3512) + DOTDOT@[3404; 3406) + WHITESPACE@[3406; 3410) + RANGE_EXPR@[3410; 3512) + DOTDOTEQ@[3410; 3413) + RANGE_EXPR@[3413; 3512) + DOTDOT@[3413; 3415) + WHITESPACE@[3415; 3416) + RANGE_EXPR@[3416; 3512) + DOTDOTEQ@[3416; 3419) + RANGE_EXPR@[3419; 3512) + DOTDOT@[3419; 3421) + WHITESPACE@[3421; 3425) + RANGE_EXPR@[3425; 3512) + DOTDOT@[3425; 3427) + WHITESPACE@[3427; 3428) + RANGE_EXPR@[3428; 3512) + DOTDOT@[3428; 3430) + WHITESPACE@[3430; 3431) + RANGE_EXPR@[3431; 3512) + DOTDOTEQ@[3431; 3434) + RANGE_EXPR@[3434; 3512) + DOTDOT@[3434; 3436) + WHITESPACE@[3436; 3440) + RANGE_EXPR@[3440; 3512) + DOTDOT@[3440; 3442) + WHITESPACE@[3442; 3443) + RANGE_EXPR@[3443; 3512) + DOTDOTEQ@[3443; 3446) + RANGE_EXPR@[3446; 3512) + DOTDOT@[3446; 3448) + WHITESPACE@[3448; 3449) + RANGE_EXPR@[3449; 3512) + DOTDOT@[3449; 3451) + WHITESPACE@[3451; 3456) + RANGE_EXPR@[3456; 3512) + DOTDOTEQ@[3456; 3459) + RANGE_EXPR@[3459; 3512) + DOTDOT@[3459; 3461) + WHITESPACE@[3461; 3462) + RANGE_EXPR@[3462; 3512) + DOTDOTEQ@[3462; 3465) + RANGE_EXPR@[3465; 3512) + DOTDOT@[3465; 3467) + WHITESPACE@[3467; 3471) + RANGE_EXPR@[3471; 3512) + DOTDOT@[3471; 3473) + WHITESPACE@[3473; 3474) + RANGE_EXPR@[3474; 3512) + DOTDOTEQ@[3474; 3477) + RANGE_EXPR@[3477; 3512) + DOTDOTEQ@[3477; 3480) + RANGE_EXPR@[3480; 3512) + DOTDOT@[3480; 3482) + WHITESPACE@[3482; 3486) + RANGE_EXPR@[3486; 3512) + DOTDOTEQ@[3486; 3489) + RANGE_EXPR@[3489; 3512) + DOTDOTEQ@[3489; 3492) + RANGE_EXPR@[3492; 3512) + DOTDOT@[3492; 3494) + WHITESPACE@[3494; 3495) + RANGE_EXPR@[3495; 3512) + DOTDOT@[3495; 3497) + WHITESPACE@[3497; 3501) + RANGE_EXPR@[3501; 3512) + DOTDOT@[3501; 3503) + WHITESPACE@[3503; 3504) + RANGE_EXPR@[3504; 3512) + DOTDOTEQ@[3504; 3507) + RANGE_EXPR@[3507; 3512) + DOTDOT@[3507; 3509) + WHITESPACE@[3509; 3510) + RANGE_EXPR@[3510; 3512) + DOTDOT@[3510; 3512) + WHITESPACE@[3512; 3513) + R_CURLY@[3513; 3514) + WHITESPACE@[3514; 3516) + FN_DEF@[3516; 3552) + FN_KW@[3516; 3518) + WHITESPACE@[3518; 3519) + NAME@[3519; 3525) + IDENT@[3519; 3525) "ktulhu" + PARAM_LIST@[3525; 3527) + L_PAREN@[3525; 3526) + R_PAREN@[3526; 3527) + WHITESPACE@[3527; 3528) + BLOCK@[3528; 3552) + L_CURLY@[3528; 3529) + WHITESPACE@[3529; 3534) + SEMI@[3534; 3535) + SEMI@[3535; 3536) + SEMI@[3536; 3537) + EXPR_STMT@[3537; 3540) + TUPLE_EXPR@[3537; 3539) + L_PAREN@[3537; 3538) + R_PAREN@[3538; 3539) + SEMI@[3539; 3540) + SEMI@[3540; 3541) + SEMI@[3541; 3542) + SEMI@[3542; 3543) + SEMI@[3543; 3544) + SEMI@[3544; 3545) + SEMI@[3545; 3546) + SEMI@[3546; 3547) + SEMI@[3547; 3548) + TUPLE_EXPR@[3548; 3550) + L_PAREN@[3548; 3549) + R_PAREN@[3549; 3550) + WHITESPACE@[3550; 3551) + R_CURLY@[3551; 3552) + WHITESPACE@[3552; 3554) + FN_DEF@[3554; 3812) + VISIBILITY@[3554; 3557) + PUB_KW@[3554; 3557) + WHITESPACE@[3557; 3558) + FN_KW@[3558; 3560) + WHITESPACE@[3560; 3561) + NAME@[3561; 3565) + IDENT@[3561; 3565) "main" + PARAM_LIST@[3565; 3567) + L_PAREN@[3565; 3566) + R_PAREN@[3566; 3567) + WHITESPACE@[3567; 3568) + BLOCK@[3568; 3812) + L_CURLY@[3568; 3569) + WHITESPACE@[3569; 3574) + EXPR_STMT@[3574; 3584) + CALL_EXPR@[3574; 3583) + PATH_EXPR@[3574; 3581) + PATH@[3574; 3581) + PATH_SEGMENT@[3574; 3581) + NAME_REF@[3574; 3581) + IDENT@[3574; 3581) "strange" + ARG_LIST@[3581; 3583) + L_PAREN@[3581; 3582) + R_PAREN@[3582; 3583) + SEMI@[3583; 3584) + WHITESPACE@[3584; 3589) + EXPR_STMT@[3589; 3597) + CALL_EXPR@[3589; 3596) + PATH_EXPR@[3589; 3594) + PATH@[3589; 3594) + PATH_SEGMENT@[3589; 3594) + NAME_REF@[3589; 3594) + IDENT@[3589; 3594) "funny" + ARG_LIST@[3594; 3596) + L_PAREN@[3594; 3595) + R_PAREN@[3595; 3596) + SEMI@[3596; 3597) + WHITESPACE@[3597; 3602) + EXPR_STMT@[3602; 3609) + CALL_EXPR@[3602; 3608) + PATH_EXPR@[3602; 3606) + PATH@[3602; 3606) + PATH_SEGMENT@[3602; 3606) + NAME_REF@[3602; 3606) + IDENT@[3602; 3606) "what" + ARG_LIST@[3606; 3608) + L_PAREN@[3606; 3607) + R_PAREN@[3607; 3608) + SEMI@[3608; 3609) + WHITESPACE@[3609; 3614) + EXPR_STMT@[3614; 3628) + CALL_EXPR@[3614; 3627) + PATH_EXPR@[3614; 3625) + PATH@[3614; 3625) + PATH_SEGMENT@[3614; 3625) + NAME_REF@[3614; 3625) + IDENT@[3614; 3625) "zombiejesus" + ARG_LIST@[3625; 3627) + L_PAREN@[3625; 3626) + R_PAREN@[3626; 3627) + SEMI@[3627; 3628) + WHITESPACE@[3628; 3633) + EXPR_STMT@[3633; 3643) + CALL_EXPR@[3633; 3642) + PATH_EXPR@[3633; 3640) + PATH@[3633; 3640) + PATH_SEGMENT@[3633; 3640) + NAME_REF@[3633; 3640) + IDENT@[3633; 3640) "notsure" + ARG_LIST@[3640; 3642) + L_PAREN@[3640; 3641) + R_PAREN@[3641; 3642) + SEMI@[3642; 3643) + WHITESPACE@[3643; 3648) + EXPR_STMT@[3648; 3664) + CALL_EXPR@[3648; 3663) + PATH_EXPR@[3648; 3661) + PATH@[3648; 3661) + PATH_SEGMENT@[3648; 3661) + NAME_REF@[3648; 3661) + IDENT@[3648; 3661) "canttouchthis" + ARG_LIST@[3661; 3663) + L_PAREN@[3661; 3662) + R_PAREN@[3662; 3663) + SEMI@[3663; 3664) + WHITESPACE@[3664; 3669) + EXPR_STMT@[3669; 3681) + CALL_EXPR@[3669; 3680) + PATH_EXPR@[3669; 3678) + PATH@[3669; 3678) + PATH_SEGMENT@[3669; 3678) + NAME_REF@[3669; 3678) + IDENT@[3669; 3678) "angrydome" + ARG_LIST@[3678; 3680) + L_PAREN@[3678; 3679) + R_PAREN@[3679; 3680) + SEMI@[3680; 3681) + WHITESPACE@[3681; 3686) + EXPR_STMT@[3686; 3701) + CALL_EXPR@[3686; 3700) + PATH_EXPR@[3686; 3698) + PATH@[3686; 3698) + PATH_SEGMENT@[3686; 3698) + NAME_REF@[3686; 3698) + IDENT@[3686; 3698) "evil_lincoln" + ARG_LIST@[3698; 3700) + L_PAREN@[3698; 3699) + R_PAREN@[3699; 3700) + SEMI@[3700; 3701) + WHITESPACE@[3701; 3706) + EXPR_STMT@[3706; 3713) + CALL_EXPR@[3706; 3712) + PATH_EXPR@[3706; 3710) + PATH@[3706; 3710) + PATH_SEGMENT@[3706; 3710) + NAME_REF@[3706; 3710) + IDENT@[3706; 3710) "dots" + ARG_LIST@[3710; 3712) + L_PAREN@[3710; 3711) + R_PAREN@[3711; 3712) + SEMI@[3712; 3713) + WHITESPACE@[3713; 3718) + EXPR_STMT@[3718; 3726) + CALL_EXPR@[3718; 3725) + PATH_EXPR@[3718; 3720) + PATH@[3718; 3720) + PATH_SEGMENT@[3718; 3720) + NAME_REF@[3718; 3720) + IDENT@[3718; 3720) "u8" + ARG_LIST@[3720; 3725) + L_PAREN@[3720; 3721) + LITERAL@[3721; 3724) + INT_NUMBER@[3721; 3724) "8u8" + R_PAREN@[3724; 3725) + SEMI@[3725; 3726) + WHITESPACE@[3726; 3731) + EXPR_STMT@[3731; 3739) + CALL_EXPR@[3731; 3738) + PATH_EXPR@[3731; 3736) + PATH@[3731; 3736) + PATH_SEGMENT@[3731; 3736) + NAME_REF@[3731; 3736) + IDENT@[3731; 3736) "fishy" + ARG_LIST@[3736; 3738) + L_PAREN@[3736; 3737) + R_PAREN@[3737; 3738) + SEMI@[3738; 3739) + WHITESPACE@[3739; 3744) + EXPR_STMT@[3744; 3752) + CALL_EXPR@[3744; 3751) + PATH_EXPR@[3744; 3749) + PATH@[3744; 3749) + PATH_SEGMENT@[3744; 3749) + NAME_REF@[3744; 3749) + IDENT@[3744; 3749) "union" + ARG_LIST@[3749; 3751) + L_PAREN@[3749; 3750) + R_PAREN@[3750; 3751) + SEMI@[3751; 3752) + WHITESPACE@[3752; 3757) + EXPR_STMT@[3757; 3778) + CALL_EXPR@[3757; 3777) + PATH_EXPR@[3757; 3775) + PATH@[3757; 3775) + PATH_SEGMENT@[3757; 3775) + NAME_REF@[3757; 3775) + IDENT@[3757; 3775) "special_characters" + ARG_LIST@[3775; 3777) + L_PAREN@[3775; 3776) + R_PAREN@[3776; 3777) + SEMI@[3777; 3778) + WHITESPACE@[3778; 3783) + EXPR_STMT@[3783; 3796) + CALL_EXPR@[3783; 3795) + PATH_EXPR@[3783; 3793) + PATH@[3783; 3793) + PATH_SEGMENT@[3783; 3793) + NAME_REF@[3783; 3793) + IDENT@[3783; 3793) "punch_card" + ARG_LIST@[3793; 3795) + L_PAREN@[3793; 3794) + R_PAREN@[3794; 3795) + SEMI@[3795; 3796) + WHITESPACE@[3796; 3801) + EXPR_STMT@[3801; 3810) + CALL_EXPR@[3801; 3809) + PATH_EXPR@[3801; 3807) + PATH@[3801; 3807) + PATH_SEGMENT@[3801; 3807) + NAME_REF@[3801; 3807) + IDENT@[3801; 3807) "ktulhu" + ARG_LIST@[3807; 3809) + L_PAREN@[3807; 3808) + R_PAREN@[3808; 3809) + SEMI@[3809; 3810) + WHITESPACE@[3810; 3811) + R_CURLY@[3811; 3812) + WHITESPACE@[3812; 3813) -- cgit v1.2.3