SOURCE_FILE@0..3813 COMMENT@0..55 "//! Adapted from a `r ..." WHITESPACE@55..56 "\n" COMMENT@56..173 "//! https://github.co ..." WHITESPACE@173..174 "\n" COMMENT@174..178 "//! " WHITESPACE@178..179 "\n" COMMENT@179..269 "//! Reported to rust- ..." WHITESPACE@269..271 "\n\n" ATTR@271..302 POUND@271..272 "#" BANG@272..273 "!" L_BRACK@273..274 "[" META@274..301 PATH@274..279 PATH_SEGMENT@274..279 NAME_REF@274..279 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 "\n" ATTR@303..323 POUND@303..304 "#" BANG@304..305 "!" L_BRACK@305..306 "[" META@306..322 PATH@306..311 PATH_SEGMENT@306..311 NAME_REF@306..311 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 "\n" ATTR@324..351 POUND@324..325 "#" BANG@325..326 "!" L_BRACK@326..327 "[" META@327..350 PATH@327..332 PATH_SEGMENT@327..332 NAME_REF@327..332 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 "\n" ATTR@352..376 POUND@352..353 "#" BANG@353..354 "!" L_BRACK@354..355 "[" META@355..375 PATH@355..360 PATH_SEGMENT@355..360 NAME_REF@355..360 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 "\n\n" ATTR@378..405 POUND@378..379 "#" BANG@379..380 "!" L_BRACK@380..381 "[" META@381..404 PATH@381..396 PATH_SEGMENT@381..396 NAME_REF@381..396 IDENT@381..396 "recursion_limit" WHITESPACE@396..397 " " EQ@397..398 "=" WHITESPACE@398..399 " " LITERAL@399..404 STRING@399..404 "\"128\"" R_BRACK@404..405 "]" WHITESPACE@405..407 "\n\n" USE@407..427 USE_KW@407..410 "use" 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" COLON2@414..416 "::" PATH_SEGMENT@416..420 NAME_REF@416..420 IDENT@416..420 "cell" COLON2@420..422 "::" PATH_SEGMENT@422..426 NAME_REF@422..426 IDENT@422..426 "Cell" SEMICOLON@426..427 ";" WHITESPACE@427..428 "\n" USE@428..447 USE_KW@428..431 "use" 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" COLON2@435..437 "::" PATH_SEGMENT@437..440 NAME_REF@437..440 IDENT@437..440 "mem" COLON2@440..442 "::" PATH_SEGMENT@442..446 NAME_REF@442..446 IDENT@442..446 "swap" SEMICOLON@446..447 ";" WHITESPACE@447..449 "\n\n" COMMENT@449..518 "// Just a grab bag of ..." WHITESPACE@518..520 "\n\n" FN@520..572 FN_KW@520..522 "fn" 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_EXPR@541..572 STMT_LIST@541..572 L_CURLY@541..542 "{" WHITESPACE@542..543 " " LET_STMT@543..570 LET_KW@543..546 "let" WHITESPACE@546..547 " " IDENT_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 "return" WHITESPACE@564..565 " " LITERAL@565..569 TRUE_KW@565..569 "true" SEMICOLON@569..570 ";" WHITESPACE@570..571 " " R_CURLY@571..572 "}" WHITESPACE@572..574 "\n\n" FN@574..624 FN_KW@574..576 "fn" 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_EXPR@585..624 STMT_LIST@585..624 L_CURLY@585..586 "{" WHITESPACE@586..591 "\n " FN@591..607 FN_KW@591..593 "fn" WHITESPACE@593..594 " " NAME@594..595 IDENT@594..595 "f" PARAM_LIST@595..603 L_PAREN@595..596 "(" PARAM@596..602 IDENT_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_EXPR@604..607 STMT_LIST@604..607 L_CURLY@604..605 "{" WHITESPACE@605..606 " " R_CURLY@606..607 "}" WHITESPACE@607..612 "\n " 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 "return" R_PAREN@620..621 ")" SEMICOLON@621..622 ";" WHITESPACE@622..623 "\n" R_CURLY@623..624 "}" WHITESPACE@624..626 "\n\n" FN@626..816 FN_KW@626..628 "fn" 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_EXPR@636..816 STMT_LIST@636..816 L_CURLY@636..637 "{" WHITESPACE@637..642 "\n " FN@642..720 FN_KW@642..644 "fn" WHITESPACE@644..645 " " NAME@645..648 IDENT@645..648 "the" PARAM_LIST@648..664 L_PAREN@648..649 "(" PARAM@649..663 IDENT_PAT@649..650 NAME@649..650 IDENT@649..650 "x" COLON@650..651 ":" WHITESPACE@651..652 " " REF_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" GENERIC_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_EXPR@665..720 STMT_LIST@665..720 L_CURLY@665..666 "{" WHITESPACE@666..675 "\n " EXPR_STMT@675..714 RETURN_EXPR@675..713 RETURN_KW@675..681 "return" WHITESPACE@681..682 " " WHILE_EXPR@682..713 WHILE_KW@682..687 "while" WHITESPACE@687..688 " " CONDITION@688..696 PREFIX_EXPR@688..696 BANG@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_EXPR@697..713 STMT_LIST@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 "true" R_PAREN@709..710 ")" SEMICOLON@710..711 ";" WHITESPACE@711..712 " " R_CURLY@712..713 "}" SEMICOLON@713..714 ";" WHITESPACE@714..719 "\n " R_CURLY@719..720 "}" WHITESPACE@720..725 "\n " LET_STMT@725..751 LET_KW@725..728 "let" WHITESPACE@728..729 " " IDENT_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" COLON2@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 "false" R_PAREN@749..750 ")" SEMICOLON@750..751 ";" WHITESPACE@751..756 "\n " LET_STMT@756..778 LET_KW@756..759 "let" WHITESPACE@759..760 " " IDENT_PAT@760..764 NAME@760..764 IDENT@760..764 "dont" WHITESPACE@764..765 " " EQ@765..766 "=" WHITESPACE@766..767 " " BLOCK_EXPR@767..777 STMT_LIST@767..777 L_CURLY@767..768 "{" CLOSURE_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 "}" SEMICOLON@777..778 ";" WHITESPACE@778..783 "\n " 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 ")" SEMICOLON@789..790 ";" WHITESPACE@790..795 "\n " EXPR_STMT@795..814 MACRO_CALL@795..813 PATH@795..801 PATH_SEGMENT@795..801 NAME_REF@795..801 IDENT@795..801 "assert" BANG@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 ")" SEMICOLON@813..814 ";" WHITESPACE@814..815 "\n" R_CURLY@815..816 "}" WHITESPACE@816..818 "\n\n" FN@818..1322 FN_KW@818..820 "fn" 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_EXPR@835..1322 STMT_LIST@835..1322 L_CURLY@835..836 "{" WHITESPACE@836..841 "\n " LOOP_EXPR@841..1320 LOOP_KW@841..845 "loop" WHITESPACE@845..846 " " BLOCK_EXPR@846..1320 STMT_LIST@846..1320 L_CURLY@846..847 "{" WHITESPACE@847..856 "\n " EXPR_STMT@856..1283 WHILE_EXPR@856..1283 WHILE_KW@856..861 "while" WHITESPACE@861..862 " " CONDITION@862..870 PAREN_EXPR@862..870 L_PAREN@862..863 "(" RETURN_EXPR@863..869 RETURN_KW@863..869 "return" R_PAREN@869..870 ")" WHITESPACE@870..871 " " BLOCK_EXPR@871..1283 STMT_LIST@871..1283 L_CURLY@871..872 "{" WHITESPACE@872..885 "\n " IF_EXPR@885..1273 IF_KW@885..887 "if" WHITESPACE@887..888 " " CONDITION@888..896 PAREN_EXPR@888..896 L_PAREN@888..889 "(" RETURN_EXPR@889..895 RETURN_KW@889..895 "return" R_PAREN@895..896 ")" WHITESPACE@896..897 " " BLOCK_EXPR@897..1216 STMT_LIST@897..1216 L_CURLY@897..898 "{" WHITESPACE@898..915 "\n " EXPR_STMT@915..1202 MATCH_EXPR@915..1201 MATCH_KW@915..920 "match" WHITESPACE@920..921 " " PAREN_EXPR@921..929 L_PAREN@921..922 "(" RETURN_EXPR@922..928 RETURN_KW@922..928 "return" R_PAREN@928..929 ")" WHITESPACE@929..930 " " MATCH_ARM_LIST@930..1201 L_CURLY@930..931 "{" WHITESPACE@931..952 "\n " MATCH_ARM@952..1147 LITERAL_PAT@952..953 LITERAL@952..953 INT_NUMBER@952..953 "1" WHITESPACE@953..954 " " FAT_ARROW@954..956 "=>" WHITESPACE@956..957 " " BLOCK_EXPR@957..1147 STMT_LIST@957..1147 L_CURLY@957..958 "{" WHITESPACE@958..983 "\n ..." IF_EXPR@983..1125 IF_KW@983..985 "if" WHITESPACE@985..986 " " CONDITION@986..994 PAREN_EXPR@986..994 L_PAREN@986..987 "(" RETURN_EXPR@987..993 RETURN_KW@987..993 "return" R_PAREN@993..994 ")" WHITESPACE@994..995 " " BLOCK_EXPR@995..1057 STMT_LIST@995..1057 L_CURLY@995..996 "{" WHITESPACE@996..1025 "\n ..." RETURN_EXPR@1025..1031 RETURN_KW@1025..1031 "return" WHITESPACE@1031..1056 "\n ..." R_CURLY@1056..1057 "}" WHITESPACE@1057..1058 " " ELSE_KW@1058..1062 "else" WHITESPACE@1062..1063 " " BLOCK_EXPR@1063..1125 STMT_LIST@1063..1125 L_CURLY@1063..1064 "{" WHITESPACE@1064..1093 "\n ..." RETURN_EXPR@1093..1099 RETURN_KW@1093..1099 "return" WHITESPACE@1099..1124 "\n ..." R_CURLY@1124..1125 "}" WHITESPACE@1125..1146 "\n " R_CURLY@1146..1147 "}" WHITESPACE@1147..1168 "\n " MATCH_ARM@1168..1183 WILDCARD_PAT@1168..1169 UNDERSCORE@1168..1169 "_" WHITESPACE@1169..1170 " " FAT_ARROW@1170..1172 "=>" WHITESPACE@1172..1173 " " BLOCK_EXPR@1173..1183 STMT_LIST@1173..1183 L_CURLY@1173..1174 "{" WHITESPACE@1174..1175 " " RETURN_EXPR@1175..1181 RETURN_KW@1175..1181 "return" WHITESPACE@1181..1182 " " R_CURLY@1182..1183 "}" WHITESPACE@1183..1200 "\n " R_CURLY@1200..1201 "}" SEMICOLON@1201..1202 ";" WHITESPACE@1202..1215 "\n " R_CURLY@1215..1216 "}" WHITESPACE@1216..1217 " " ELSE_KW@1217..1221 "else" WHITESPACE@1221..1222 " " IF_EXPR@1222..1273 IF_KW@1222..1224 "if" WHITESPACE@1224..1225 " " CONDITION@1225..1233 PAREN_EXPR@1225..1233 L_PAREN@1225..1226 "(" RETURN_EXPR@1226..1232 RETURN_KW@1226..1232 "return" R_PAREN@1232..1233 ")" WHITESPACE@1233..1234 " " BLOCK_EXPR@1234..1273 STMT_LIST@1234..1273 L_CURLY@1234..1235 "{" WHITESPACE@1235..1252 "\n " EXPR_STMT@1252..1259 RETURN_EXPR@1252..1258 RETURN_KW@1252..1258 "return" SEMICOLON@1258..1259 ";" WHITESPACE@1259..1272 "\n " R_CURLY@1272..1273 "}" WHITESPACE@1273..1282 "\n " R_CURLY@1282..1283 "}" WHITESPACE@1283..1292 "\n " IF_EXPR@1292..1314 IF_KW@1292..1294 "if" WHITESPACE@1294..1295 " " CONDITION@1295..1303 PAREN_EXPR@1295..1303 L_PAREN@1295..1296 "(" RETURN_EXPR@1296..1302 RETURN_KW@1296..1302 "return" R_PAREN@1302..1303 ")" WHITESPACE@1303..1304 " " BLOCK_EXPR@1304..1314 STMT_LIST@1304..1314 L_CURLY@1304..1305 "{" WHITESPACE@1305..1306 " " EXPR_STMT@1306..1312 BREAK_EXPR@1306..1311 BREAK_KW@1306..1311 "break" SEMICOLON@1311..1312 ";" WHITESPACE@1312..1313 " " R_CURLY@1313..1314 "}" WHITESPACE@1314..1319 "\n " R_CURLY@1319..1320 "}" WHITESPACE@1320..1321 "\n" R_CURLY@1321..1322 "}" WHITESPACE@1322..1324 "\n\n" FN@1324..1539 FN_KW@1324..1326 "fn" 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_EXPR@1337..1539 STMT_LIST@1337..1539 L_CURLY@1337..1338 "{" WHITESPACE@1338..1343 "\n " LET_STMT@1343..1361 LET_KW@1343..1346 "let" WHITESPACE@1346..1347 " " IDENT_PAT@1347..1353 MUT_KW@1347..1350 "mut" 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" SEMICOLON@1360..1361 ";" WHITESPACE@1361..1366 "\n " LET_STMT@1366..1400 LET_KW@1366..1369 "let" WHITESPACE@1369..1370 " " IDENT_PAT@1370..1376 MUT_KW@1370..1373 "mut" 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 " " EQ2@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 ")" SEMICOLON@1399..1400 ";" WHITESPACE@1400..1405 "\n " LET_STMT@1405..1438 LET_KW@1405..1408 "let" WHITESPACE@1408..1409 " " IDENT_PAT@1409..1415 MUT_KW@1409..1412 "mut" 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 ")" SEMICOLON@1437..1438 ";" WHITESPACE@1438..1443 "\n " LET_STMT@1443..1474 LET_KW@1443..1446 "let" WHITESPACE@1446..1447 " " IDENT_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 " " EQ2@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 ")" SEMICOLON@1473..1474 ";" WHITESPACE@1474..1479 "\n " LET_STMT@1479..1537 LET_KW@1479..1482 "let" WHITESPACE@1482..1483 " " IDENT_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 "mut" 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 "mut" 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 " " EQ2@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 "mut" 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 "mut" 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 ")" SEMICOLON@1536..1537 ";" WHITESPACE@1537..1538 "\n" R_CURLY@1538..1539 "}" WHITESPACE@1539..1541 "\n\n" FN@1541..1741 FN_KW@1541..1543 "fn" 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_EXPR@1569..1741 STMT_LIST@1569..1741 L_CURLY@1569..1570 "{" WHITESPACE@1570..1575 "\n " FN@1575..1598 FN_KW@1575..1577 "fn" 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_EXPR@1590..1598 STMT_LIST@1590..1598 L_CURLY@1590..1591 "{" WHITESPACE@1591..1592 " " LITERAL@1592..1596 TRUE_KW@1592..1596 "true" WHITESPACE@1596..1597 " " R_CURLY@1597..1598 "}" WHITESPACE@1598..1603 "\n " LET_STMT@1603..1648 LET_KW@1603..1606 "let" WHITESPACE@1606..1607 " " IDENT_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" BANG@1619..1620 "!" TOKEN_TREE@1620..1628 L_PAREN@1620..1621 "(" TOKEN_TREE@1621..1627 L_PAREN@1621..1622 "(" TRUE_KW@1622..1626 "true" R_PAREN@1626..1627 ")" R_PAREN@1627..1628 ")" WHITESPACE@1628..1629 " " EQ2@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" BANG@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 ")" SEMICOLON@1647..1648 ";" WHITESPACE@1648..1653 "\n " LET_STMT@1653..1685 LET_KW@1653..1656 "let" WHITESPACE@1656..1657 " " IDENT_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" BANG@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 " " EQ2@1678..1680 "==" WHITESPACE@1680..1681 " " TUPLE_EXPR@1681..1683 L_PAREN@1681..1682 "(" R_PAREN@1682..1683 ")" R_PAREN@1683..1684 ")" SEMICOLON@1684..1685 ";" WHITESPACE@1685..1690 "\n " LET_STMT@1690..1739 LET_KW@1690..1693 "let" WHITESPACE@1693..1694 " " IDENT_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" BANG@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 " " EQ2@1724..1726 "==" WHITESPACE@1726..1727 " " PAREN_EXPR@1727..1737 L_PAREN@1727..1728 "(" RETURN_EXPR@1728..1736 RETURN_KW@1728..1734 "return" WHITESPACE@1734..1735 " " LITERAL@1735..1736 INT_NUMBER@1735..1736 "0" R_PAREN@1736..1737 ")" R_PAREN@1737..1738 ")" SEMICOLON@1738..1739 ";" WHITESPACE@1739..1740 "\n" R_CURLY@1740..1741 "}" WHITESPACE@1741..1743 "\n\n" FN@1743..1904 FN_KW@1743..1745 "fn" 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_EXPR@1758..1904 STMT_LIST@1758..1904 L_CURLY@1758..1759 "{" WHITESPACE@1759..1764 "\n " EXPR_STMT@1764..1785 LOOP_EXPR@1764..1785 LOOP_KW@1764..1768 "loop" WHITESPACE@1768..1769 " " BLOCK_EXPR@1769..1785 STMT_LIST@1769..1785 L_CURLY@1769..1770 "{" WHITESPACE@1770..1771 " " IF_EXPR@1771..1783 IF_KW@1771..1773 "if" WHITESPACE@1773..1774 " " CONDITION@1774..1779 BREAK_EXPR@1774..1779 BREAK_KW@1774..1779 "break" WHITESPACE@1779..1780 " " BLOCK_EXPR@1780..1783 STMT_LIST@1780..1783 L_CURLY@1780..1781 "{" WHITESPACE@1781..1782 " " R_CURLY@1782..1783 "}" WHITESPACE@1783..1784 " " R_CURLY@1784..1785 "}" WHITESPACE@1785..1790 "\n " LET_STMT@1790..1804 LET_KW@1790..1793 "let" WHITESPACE@1793..1794 " " IDENT_PAT@1794..1799 MUT_KW@1794..1797 "mut" 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" SEMICOLON@1803..1804 ";" WHITESPACE@1804..1809 "\n " LOOP_EXPR@1809..1902 LOOP_KW@1809..1813 "loop" WHITESPACE@1813..1814 " " BLOCK_EXPR@1814..1902 STMT_LIST@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" SEMICOLON@1822..1823 ";" WHITESPACE@1823..1824 " " EXPR_STMT@1824..1887 IF_EXPR@1824..1887 IF_KW@1824..1826 "if" 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 " " EQ2@1829..1831 "==" WHITESPACE@1831..1832 " " LITERAL@1832..1833 INT_NUMBER@1832..1833 "1" WHITESPACE@1833..1834 " " BLOCK_EXPR@1834..1887 STMT_LIST@1834..1887 L_CURLY@1834..1835 "{" WHITESPACE@1835..1836 " " MATCH_EXPR@1836..1885 MATCH_KW@1836..1841 "match" WHITESPACE@1841..1842 " " PAREN_EXPR@1842..1852 L_PAREN@1842..1843 "(" CONTINUE_EXPR@1843..1851 CONTINUE_KW@1843..1851 "continue" R_PAREN@1851..1852 ")" WHITESPACE@1852..1853 " " MATCH_ARM_LIST@1853..1885 L_CURLY@1853..1854 "{" WHITESPACE@1854..1855 " " MATCH_ARM@1855..1864 LITERAL_PAT@1855..1856 LITERAL@1855..1856 INT_NUMBER@1855..1856 "1" WHITESPACE@1856..1857 " " FAT_ARROW@1857..1859 "=>" WHITESPACE@1859..1860 " " BLOCK_EXPR@1860..1863 STMT_LIST@1860..1863 L_CURLY@1860..1861 "{" WHITESPACE@1861..1862 " " R_CURLY@1862..1863 "}" COMMA@1863..1864 "," WHITESPACE@1864..1865 " " MATCH_ARM@1865..1883 WILDCARD_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" BANG@1875..1876 "!" TOKEN_TREE@1876..1883 L_PAREN@1876..1877 "(" STRING@1877..1882 "\"wat\"" R_PAREN@1882..1883 ")" WHITESPACE@1883..1884 " " R_CURLY@1884..1885 "}" WHITESPACE@1885..1886 " " R_CURLY@1886..1887 "}" WHITESPACE@1887..1894 "\n " EXPR_STMT@1894..1900 BREAK_EXPR@1894..1899 BREAK_KW@1894..1899 "break" SEMICOLON@1899..1900 ";" WHITESPACE@1900..1901 " " R_CURLY@1901..1902 "}" WHITESPACE@1902..1903 "\n" R_CURLY@1903..1904 "}" WHITESPACE@1904..1906 "\n\n" FN@1906..1960 FN_KW@1906..1908 "fn" 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_EXPR@1924..1960 STMT_LIST@1924..1960 L_CURLY@1924..1925 "{" WHITESPACE@1925..1926 " " LET_STMT@1926..1958 LET_KW@1926..1929 "let" WHITESPACE@1929..1930 " " IDENT_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" BANG@1945..1946 "!" TOKEN_TREE@1946..1957 L_PAREN@1946..1947 "(" STRING@1947..1956 "\"lincoln\"" R_PAREN@1956..1957 ")" SEMICOLON@1957..1958 ";" WHITESPACE@1958..1959 " " R_CURLY@1959..1960 "}" WHITESPACE@1960..1962 "\n\n" FN@1962..2198 FN_KW@1962..1964 "fn" 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_EXPR@1972..2198 STMT_LIST@1972..2198 L_CURLY@1972..1973 "{" WHITESPACE@1973..1978 "\n " EXPR_STMT@1978..2196 MACRO_CALL@1978..2195 PATH@1978..1987 PATH_SEGMENT@1978..1987 NAME_REF@1978..1987 IDENT@1978..1987 "assert_eq" BANG@1987..1988 "!" TOKEN_TREE@1988..2195 L_PAREN@1988..1989 "(" IDENT@1989..1995 "String" COLON@1995..1996 ":" COLON@1996..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 "\n " IDENT@2072..2078 "format" BANG@2078..2079 "!" TOKEN_TREE@2079..2194 L_PAREN@2079..2080 "(" STRING@2080..2086 "\"{:?}\"" COMMA@2086..2087 "," WHITESPACE@2087..2088 " " DOT@2088..2089 "." DOT@2089..2090 "." WHITESPACE@2090..2091 " " DOT@2091..2092 "." DOT@2092..2093 "." WHITESPACE@2093..2094 " " DOT@2094..2095 "." DOT@2095..2096 "." WHITESPACE@2096..2097 " " DOT@2097..2098 "." DOT@2098..2099 "." WHITESPACE@2099..2100 " " DOT@2100..2101 "." DOT@2101..2102 "." WHITESPACE@2102..2103 " " DOT@2103..2104 "." DOT@2104..2105 "." WHITESPACE@2105..2106 " " DOT@2106..2107 "." DOT@2107..2108 "." WHITESPACE@2108..2109 " " DOT@2109..2110 "." DOT@2110..2111 "." WHITESPACE@2111..2112 " " DOT@2112..2113 "." DOT@2113..2114 "." WHITESPACE@2114..2115 " " DOT@2115..2116 "." DOT@2116..2117 "." WHITESPACE@2117..2118 " " DOT@2118..2119 "." DOT@2119..2120 "." WHITESPACE@2120..2121 " " DOT@2121..2122 "." DOT@2122..2123 "." WHITESPACE@2123..2124 " " DOT@2124..2125 "." DOT@2125..2126 "." WHITESPACE@2126..2158 "\n ..." DOT@2158..2159 "." DOT@2159..2160 "." WHITESPACE@2160..2161 " " DOT@2161..2162 "." DOT@2162..2163 "." WHITESPACE@2163..2164 " " DOT@2164..2165 "." DOT@2165..2166 "." WHITESPACE@2166..2167 " " DOT@2167..2168 "." DOT@2168..2169 "." WHITESPACE@2169..2170 " " DOT@2170..2171 "." DOT@2171..2172 "." WHITESPACE@2172..2173 " " DOT@2173..2174 "." DOT@2174..2175 "." WHITESPACE@2175..2176 " " DOT@2176..2177 "." DOT@2177..2178 "." WHITESPACE@2178..2179 " " DOT@2179..2180 "." DOT@2180..2181 "." WHITESPACE@2181..2182 " " DOT@2182..2183 "." DOT@2183..2184 "." WHITESPACE@2184..2185 " " DOT@2185..2186 "." DOT@2186..2187 "." WHITESPACE@2187..2188 " " DOT@2188..2189 "." DOT@2189..2190 "." WHITESPACE@2190..2191 " " DOT@2191..2192 "." DOT@2192..2193 "." R_PAREN@2193..2194 ")" R_PAREN@2194..2195 ")" SEMICOLON@2195..2196 ";" WHITESPACE@2196..2197 "\n" R_CURLY@2197..2198 "}" WHITESPACE@2198..2200 "\n\n" FN@2200..2693 FN_KW@2200..2202 "fn" WHITESPACE@2202..2203 " " NAME@2203..2205 IDENT@2203..2205 "u8" PARAM_LIST@2205..2213 L_PAREN@2205..2206 "(" PARAM@2206..2212 IDENT_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_EXPR@2214..2693 STMT_LIST@2214..2693 L_CURLY@2214..2215 "{" WHITESPACE@2215..2220 "\n " IF_EXPR@2220..2691 IF_KW@2220..2222 "if" 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_EXPR@2233..2691 STMT_LIST@2233..2691 L_CURLY@2233..2234 "{" WHITESPACE@2234..2243 "\n " EXPR_STMT@2243..2685 MACRO_CALL@2243..2684 PATH@2243..2252 PATH_SEGMENT@2243..2252 NAME_REF@2243..2252 IDENT@2243..2252 "assert_eq" BANG@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 "\n " IDENT@2273..2284 "macro_rules" BANG@2284..2285 "!" WHITESPACE@2285..2286 " " IDENT@2286..2288 "u8" WHITESPACE@2288..2289 " " TOKEN_TREE@2289..2567 L_CURLY@2289..2290 "{" WHITESPACE@2290..2307 "\n " TOKEN_TREE@2307..2311 L_PAREN@2307..2308 "(" IDENT@2308..2310 "u8" R_PAREN@2310..2311 ")" WHITESPACE@2311..2312 " " EQ@2312..2313 "=" R_ANGLE@2313..2314 ">" WHITESPACE@2314..2315 " " TOKEN_TREE@2315..2552 L_CURLY@2315..2316 "{" WHITESPACE@2316..2337 "\n " MOD_KW@2337..2340 "mod" WHITESPACE@2340..2341 " " IDENT@2341..2343 "u8" WHITESPACE@2343..2344 " " TOKEN_TREE@2344..2534 L_CURLY@2344..2345 "{" WHITESPACE@2345..2370 "\n ..." PUB_KW@2370..2373 "pub" WHITESPACE@2373..2374 " " FN_KW@2374..2376 "fn" WHITESPACE@2376..2377 " " IDENT@2377..2379 "u8" L_ANGLE@2379..2380 "<" LIFETIME_IDENT@2380..2383 "'u8" COLON@2383..2384 ":" WHITESPACE@2384..2385 " " LIFETIME_IDENT@2385..2388 "'u8" WHITESPACE@2388..2389 " " PLUS@2389..2390 "+" WHITESPACE@2390..2391 " " LIFETIME_IDENT@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_IDENT@2401..2404 "'u8" WHITESPACE@2404..2405 " " IDENT@2405..2407 "u8" R_PAREN@2407..2408 ")" WHITESPACE@2408..2409 " " MINUS@2409..2410 "-" R_ANGLE@2410..2411 ">" WHITESPACE@2411..2412 " " AMP@2412..2413 "&" LIFETIME_IDENT@2413..2416 "'u8" WHITESPACE@2416..2417 " " IDENT@2417..2419 "u8" WHITESPACE@2419..2420 " " TOKEN_TREE@2420..2512 L_CURLY@2420..2421 "{" WHITESPACE@2421..2450 "\n ..." STRING@2450..2454 "\"u8\"" SEMICOLON@2454..2455 ";" WHITESPACE@2455..2484 "\n ..." IDENT@2484..2486 "u8" WHITESPACE@2486..2511 "\n ..." R_CURLY@2511..2512 "}" WHITESPACE@2512..2533 "\n " R_CURLY@2533..2534 "}" WHITESPACE@2534..2551 "\n " R_CURLY@2551..2552 "}" SEMICOLON@2552..2553 ";" WHITESPACE@2553..2566 "\n " R_CURLY@2566..2567 "}" WHITESPACE@2567..2581 "\n\n " IDENT@2581..2583 "u8" BANG@2583..2584 "!" TOKEN_TREE@2584..2588 L_PAREN@2584..2585 "(" IDENT@2585..2587 "u8" R_PAREN@2587..2588 ")" SEMICOLON@2588..2589 ";" WHITESPACE@2589..2602 "\n " LET_KW@2602..2605 "let" 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" COLON@2619..2620 ":" COLON@2620..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 ")" SEMICOLON@2629..2630 ";" WHITESPACE@2630..2643 "\n " CRATE_KW@2643..2648 "crate" COLON@2648..2649 ":" COLON@2649..2650 ":" IDENT@2650..2652 "u8" TOKEN_TREE@2652..2657 L_PAREN@2652..2653 "(" INT_NUMBER@2653..2656 "0u8" R_PAREN@2656..2657 ")" SEMICOLON@2657..2658 ";" WHITESPACE@2658..2671 "\n " IDENT@2671..2673 "u8" WHITESPACE@2673..2682 "\n " R_CURLY@2682..2683 "}" R_PAREN@2683..2684 ")" SEMICOLON@2684..2685 ";" WHITESPACE@2685..2690 "\n " R_CURLY@2690..2691 "}" WHITESPACE@2691..2692 "\n" R_CURLY@2692..2693 "}" WHITESPACE@2693..2695 "\n\n" FN@2695..2832 FN_KW@2695..2697 "fn" 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_EXPR@2706..2832 STMT_LIST@2706..2832 L_CURLY@2706..2707 "{" WHITESPACE@2707..2712 "\n " EXPR_STMT@2712..2830 MACRO_CALL@2712..2829 PATH@2712..2721 PATH_SEGMENT@2712..2721 NAME_REF@2712..2721 IDENT@2712..2721 "assert_eq" BANG@2721..2722 "!" TOKEN_TREE@2722..2829 L_PAREN@2722..2723 "(" IDENT@2723..2729 "String" COLON@2729..2730 ":" COLON@2730..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 "\n " IDENT@2759..2765 "String" COLON@2765..2766 ":" COLON@2766..2767 ":" L_ANGLE@2767..2768 "<" R_ANGLE@2768..2769 ">" COLON@2769..2770 ":" COLON@2770..2771 ":" IDENT@2771..2775 "from" COLON@2775..2776 ":" COLON@2776..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" COLON@2792..2793 ":" COLON@2793..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" COLON@2802..2803 ":" COLON@2803..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" COLON@2816..2817 ":" COLON@2817..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 ")" SEMICOLON@2829..2830 ";" WHITESPACE@2830..2831 "\n" R_CURLY@2831..2832 "}" WHITESPACE@2832..2834 "\n\n" FN@2834..2906 FN_KW@2834..2836 "fn" 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_EXPR@2845..2906 STMT_LIST@2845..2906 L_CURLY@2845..2846 "{" WHITESPACE@2846..2851 "\n " UNION@2851..2904 UNION_KW@2851..2856 "union" WHITESPACE@2856..2857 " " NAME@2857..2862 IDENT@2857..2862 "union" GENERIC_PARAM_LIST@2862..2870 L_ANGLE@2862..2863 "<" LIFETIME_PARAM@2863..2869 LIFETIME@2863..2869 LIFETIME_IDENT@2863..2869 "'union" R_ANGLE@2869..2870 ">" WHITESPACE@2870..2871 " " RECORD_FIELD_LIST@2871..2904 L_CURLY@2871..2872 "{" WHITESPACE@2872..2873 " " RECORD_FIELD@2873..2901 NAME@2873..2878 IDENT@2873..2878 "union" COLON@2878..2879 ":" WHITESPACE@2879..2880 " " REF_TYPE@2880..2901 AMP@2880..2881 "&" LIFETIME@2881..2887 LIFETIME_IDENT@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" GENERIC_ARG_LIST@2893..2901 L_ANGLE@2893..2894 "<" LIFETIME_ARG@2894..2900 LIFETIME@2894..2900 LIFETIME_IDENT@2894..2900 "'union" R_ANGLE@2900..2901 ">" COMMA@2901..2902 "," WHITESPACE@2902..2903 " " R_CURLY@2903..2904 "}" WHITESPACE@2904..2905 "\n" R_CURLY@2905..2906 "}" WHITESPACE@2906..2908 "\n\n" FN@2908..3042 FN_KW@2908..2910 "fn" 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_EXPR@2932..3042 STMT_LIST@2932..3042 L_CURLY@2932..2933 "{" WHITESPACE@2933..2938 "\n " LET_STMT@2938..3021 LET_KW@2938..2941 "let" WHITESPACE@2941..2942 " " IDENT_PAT@2942..2945 NAME@2942..2945 IDENT@2942..2945 "val" WHITESPACE@2945..2946 " " EQ@2946..2947 "=" WHITESPACE@2947..2948 " " PREFIX_EXPR@2948..3013 BANG@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 "(" CLOSURE_EXPR@2951..2970 PARAM_LIST@2951..2968 PIPE@2951..2952 "|" PARAM@2952..2962 TUPLE_PAT@2952..2956 L_PAREN@2952..2953 "(" REST_PAT@2953..2955 DOT2@2953..2955 ".." R_PAREN@2955..2956 ")" COLON@2956..2957 ":" TUPLE_TYPE@2957..2962 L_PAREN@2957..2958 "(" INFER_TYPE@2958..2959 UNDERSCORE@2958..2959 "_" COMMA@2959..2960 "," INFER_TYPE@2960..2961 UNDERSCORE@2960..2961 "_" R_PAREN@2961..2962 ")" COMMA@2962..2963 "," PARAM@2963..2967 IDENT_PAT@2963..2967 NAME@2963..2965 IDENT@2963..2965 "__" AT@2965..2966 "@" WILDCARD_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 STMT_LIST@2992..2994 L_CURLY@2992..2993 "{" R_CURLY@2993..2994 "}" R_PAREN@2994..2995 ")" EQ2@2995..2997 "==" BLOCK_EXPR@2997..3012 STMT_LIST@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 DOT2EQ@3000..3003 "..=" RANGE_EXPR@3003..3005 DOT2@3003..3005 ".." R_BRACK@3005..3006 "]" L_BRACK@3006..3007 "[" RANGE_EXPR@3007..3009 DOT2@3007..3009 ".." R_BRACK@3009..3010 "]" SEMICOLON@3010..3011 ";" R_CURLY@3011..3012 "}" R_PAREN@3012..3013 ")" COMMENT@3013..3015 "//" WHITESPACE@3015..3020 "\n " SEMICOLON@3020..3021 ";" WHITESPACE@3021..3026 "\n " EXPR_STMT@3026..3040 MACRO_CALL@3026..3039 PATH@3026..3032 PATH_SEGMENT@3026..3032 NAME_REF@3026..3032 IDENT@3026..3032 "assert" BANG@3032..3033 "!" TOKEN_TREE@3033..3039 L_PAREN@3033..3034 "(" BANG@3034..3035 "!" IDENT@3035..3038 "val" R_PAREN@3038..3039 ")" SEMICOLON@3039..3040 ";" WHITESPACE@3040..3041 "\n" R_CURLY@3041..3042 "}" WHITESPACE@3042..3044 "\n\n" FN@3044..3514 FN_KW@3044..3046 "fn" 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 "impl" WHITESPACE@3067..3068 " " TYPE_BOUND_LIST@3068..3083 TYPE_BOUND@3068..3083 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" COLON2@3071..3073 "::" PATH_SEGMENT@3073..3076 NAME_REF@3073..3076 IDENT@3073..3076 "fmt" COLON2@3076..3078 "::" PATH_SEGMENT@3078..3083 NAME_REF@3078..3083 IDENT@3078..3083 "Debug" WHITESPACE@3083..3084 " " BLOCK_EXPR@3084..3514 STMT_LIST@3084..3514 L_CURLY@3084..3085 "{" WHITESPACE@3085..3090 "\n " RANGE_EXPR@3090..3512 DOT2EQ@3090..3093 "..=" RANGE_EXPR@3093..3512 DOT2EQ@3093..3096 "..=" RANGE_EXPR@3096..3512 DOT2@3096..3098 ".." WHITESPACE@3098..3099 " " RANGE_EXPR@3099..3512 DOT2@3099..3101 ".." WHITESPACE@3101..3105 " " RANGE_EXPR@3105..3512 DOT2@3105..3107 ".." WHITESPACE@3107..3108 " " RANGE_EXPR@3108..3512 DOT2@3108..3110 ".." WHITESPACE@3110..3111 " " RANGE_EXPR@3111..3512 DOT2@3111..3113 ".." WHITESPACE@3113..3114 " " RANGE_EXPR@3114..3512 DOT2@3114..3116 ".." WHITESPACE@3116..3120 " " RANGE_EXPR@3120..3512 DOT2@3120..3122 ".." WHITESPACE@3122..3123 " " RANGE_EXPR@3123..3512 DOT2@3123..3125 ".." WHITESPACE@3125..3126 " " RANGE_EXPR@3126..3512 DOT2@3126..3128 ".." WHITESPACE@3128..3129 " " RANGE_EXPR@3129..3512 DOT2@3129..3131 ".." WHITESPACE@3131..3135 " " RANGE_EXPR@3135..3512 DOT2@3135..3137 ".." WHITESPACE@3137..3138 " " RANGE_EXPR@3138..3512 DOT2EQ@3138..3141 "..=" RANGE_EXPR@3141..3512 DOT2@3141..3143 ".." WHITESPACE@3143..3144 " " RANGE_EXPR@3144..3512 DOT2@3144..3146 ".." WHITESPACE@3146..3151 "\n " RANGE_EXPR@3151..3512 DOT2EQ@3151..3154 "..=" RANGE_EXPR@3154..3512 DOT2@3154..3156 ".." WHITESPACE@3156..3157 " " RANGE_EXPR@3157..3512 DOT2EQ@3157..3160 "..=" RANGE_EXPR@3160..3512 DOT2@3160..3162 ".." WHITESPACE@3162..3166 " " RANGE_EXPR@3166..3512 DOT2@3166..3168 ".." WHITESPACE@3168..3169 " " RANGE_EXPR@3169..3512 DOT2@3169..3171 ".." WHITESPACE@3171..3172 " " RANGE_EXPR@3172..3512 DOT2@3172..3174 ".." WHITESPACE@3174..3175 " " RANGE_EXPR@3175..3512 DOT2@3175..3177 ".." WHITESPACE@3177..3181 " " RANGE_EXPR@3181..3512 DOT2@3181..3183 ".." WHITESPACE@3183..3184 " " RANGE_EXPR@3184..3512 DOT2@3184..3186 ".." WHITESPACE@3186..3187 " " RANGE_EXPR@3187..3512 DOT2@3187..3189 ".." WHITESPACE@3189..3190 " " RANGE_EXPR@3190..3512 DOT2@3190..3192 ".." WHITESPACE@3192..3196 " " RANGE_EXPR@3196..3512 DOT2EQ@3196..3199 "..=" RANGE_EXPR@3199..3512 DOT2EQ@3199..3202 "..=" RANGE_EXPR@3202..3512 DOT2EQ@3202..3205 "..=" RANGE_EXPR@3205..3512 DOT2@3205..3207 ".." WHITESPACE@3207..3212 "\n " RANGE_EXPR@3212..3512 DOT2EQ@3212..3215 "..=" RANGE_EXPR@3215..3512 DOT2@3215..3217 ".." WHITESPACE@3217..3218 " " RANGE_EXPR@3218..3512 DOT2EQ@3218..3221 "..=" RANGE_EXPR@3221..3512 DOT2@3221..3223 ".." WHITESPACE@3223..3227 " " RANGE_EXPR@3227..3512 DOT2EQ@3227..3230 "..=" RANGE_EXPR@3230..3512 DOT2@3230..3232 ".." WHITESPACE@3232..3233 " " RANGE_EXPR@3233..3512 DOT2EQ@3233..3236 "..=" RANGE_EXPR@3236..3512 DOT2@3236..3238 ".." WHITESPACE@3238..3242 " " RANGE_EXPR@3242..3512 DOT2@3242..3244 ".." WHITESPACE@3244..3245 " " RANGE_EXPR@3245..3512 DOT2EQ@3245..3248 "..=" RANGE_EXPR@3248..3512 DOT2EQ@3248..3251 "..=" RANGE_EXPR@3251..3512 DOT2@3251..3253 ".." WHITESPACE@3253..3257 " " RANGE_EXPR@3257..3512 DOT2@3257..3259 ".." WHITESPACE@3259..3260 " " RANGE_EXPR@3260..3512 DOT2EQ@3260..3263 "..=" RANGE_EXPR@3263..3512 DOT2@3263..3265 ".." WHITESPACE@3265..3266 " " RANGE_EXPR@3266..3512 DOT2@3266..3268 ".." WHITESPACE@3268..3273 "\n " RANGE_EXPR@3273..3512 DOT2EQ@3273..3276 "..=" RANGE_EXPR@3276..3512 DOT2EQ@3276..3279 "..=" RANGE_EXPR@3279..3512 DOT2@3279..3281 ".." WHITESPACE@3281..3282 " " RANGE_EXPR@3282..3512 DOT2@3282..3284 ".." WHITESPACE@3284..3288 " " RANGE_EXPR@3288..3512 DOT2EQ@3288..3291 "..=" RANGE_EXPR@3291..3512 DOT2@3291..3293 ".." WHITESPACE@3293..3294 " " RANGE_EXPR@3294..3512 DOT2EQ@3294..3297 "..=" RANGE_EXPR@3297..3512 DOT2@3297..3299 ".." WHITESPACE@3299..3303 " " RANGE_EXPR@3303..3512 DOT2EQ@3303..3306 "..=" RANGE_EXPR@3306..3512 DOT2@3306..3308 ".." WHITESPACE@3308..3309 " " RANGE_EXPR@3309..3512 DOT2@3309..3311 ".." WHITESPACE@3311..3312 " " RANGE_EXPR@3312..3512 DOT2@3312..3314 ".." WHITESPACE@3314..3318 " " RANGE_EXPR@3318..3512 DOT2@3318..3320 ".." WHITESPACE@3320..3321 " " RANGE_EXPR@3321..3512 DOT2EQ@3321..3324 "..=" RANGE_EXPR@3324..3512 DOT2@3324..3326 ".." WHITESPACE@3326..3327 " " RANGE_EXPR@3327..3512 DOT2@3327..3329 ".." WHITESPACE@3329..3334 "\n " RANGE_EXPR@3334..3512 DOT2EQ@3334..3337 "..=" RANGE_EXPR@3337..3512 DOT2@3337..3339 ".." WHITESPACE@3339..3340 " " RANGE_EXPR@3340..3512 DOT2EQ@3340..3343 "..=" RANGE_EXPR@3343..3512 DOT2@3343..3345 ".." WHITESPACE@3345..3349 " " RANGE_EXPR@3349..3512 DOT2EQ@3349..3352 "..=" RANGE_EXPR@3352..3512 DOT2@3352..3354 ".." WHITESPACE@3354..3355 " " RANGE_EXPR@3355..3512 DOT2EQ@3355..3358 "..=" RANGE_EXPR@3358..3512 DOT2@3358..3360 ".." WHITESPACE@3360..3364 " " RANGE_EXPR@3364..3512 DOT2@3364..3366 ".." WHITESPACE@3366..3367 " " RANGE_EXPR@3367..3512 DOT2EQ@3367..3370 "..=" RANGE_EXPR@3370..3512 DOT2@3370..3372 ".." WHITESPACE@3372..3373 " " RANGE_EXPR@3373..3512 DOT2@3373..3375 ".." WHITESPACE@3375..3379 " " RANGE_EXPR@3379..3512 DOT2@3379..3381 ".." WHITESPACE@3381..3382 " " RANGE_EXPR@3382..3512 DOT2EQ@3382..3385 "..=" RANGE_EXPR@3385..3512 DOT2@3385..3387 ".." WHITESPACE@3387..3388 " " RANGE_EXPR@3388..3512 DOT2@3388..3390 ".." WHITESPACE@3390..3395 "\n " RANGE_EXPR@3395..3512 DOT2EQ@3395..3398 "..=" RANGE_EXPR@3398..3512 DOT2@3398..3400 ".." WHITESPACE@3400..3401 " " RANGE_EXPR@3401..3512 DOT2EQ@3401..3404 "..=" RANGE_EXPR@3404..3512 DOT2@3404..3406 ".." WHITESPACE@3406..3410 " " RANGE_EXPR@3410..3512 DOT2EQ@3410..3413 "..=" RANGE_EXPR@3413..3512 DOT2@3413..3415 ".." WHITESPACE@3415..3416 " " RANGE_EXPR@3416..3512 DOT2EQ@3416..3419 "..=" RANGE_EXPR@3419..3512 DOT2@3419..3421 ".." WHITESPACE@3421..3425 " " RANGE_EXPR@3425..3512 DOT2@3425..3427 ".." WHITESPACE@3427..3428 " " RANGE_EXPR@3428..3512 DOT2@3428..3430 ".." WHITESPACE@3430..3431 " " RANGE_EXPR@3431..3512 DOT2EQ@3431..3434 "..=" RANGE_EXPR@3434..3512 DOT2@3434..3436 ".." WHITESPACE@3436..3440 " " RANGE_EXPR@3440..3512 DOT2@3440..3442 ".." WHITESPACE@3442..3443 " " RANGE_EXPR@3443..3512 DOT2EQ@3443..3446 "..=" RANGE_EXPR@3446..3512 DOT2@3446..3448 ".." WHITESPACE@3448..3449 " " RANGE_EXPR@3449..3512 DOT2@3449..3451 ".." WHITESPACE@3451..3456 "\n " RANGE_EXPR@3456..3512 DOT2EQ@3456..3459 "..=" RANGE_EXPR@3459..3512 DOT2@3459..3461 ".." WHITESPACE@3461..3462 " " RANGE_EXPR@3462..3512 DOT2EQ@3462..3465 "..=" RANGE_EXPR@3465..3512 DOT2@3465..3467 ".." WHITESPACE@3467..3471 " " RANGE_EXPR@3471..3512 DOT2@3471..3473 ".." WHITESPACE@3473..3474 " " RANGE_EXPR@3474..3512 DOT2EQ@3474..3477 "..=" RANGE_EXPR@3477..3512 DOT2EQ@3477..3480 "..=" RANGE_EXPR@3480..3512 DOT2@3480..3482 ".." WHITESPACE@3482..3486 " " RANGE_EXPR@3486..3512 DOT2EQ@3486..3489 "..=" RANGE_EXPR@3489..3512 DOT2EQ@3489..3492 "..=" RANGE_EXPR@3492..3512 DOT2@3492..3494 ".." WHITESPACE@3494..3495 " " RANGE_EXPR@3495..3512 DOT2@3495..3497 ".." WHITESPACE@3497..3501 " " RANGE_EXPR@3501..3512 DOT2@3501..3503 ".." WHITESPACE@3503..3504 " " RANGE_EXPR@3504..3512 DOT2EQ@3504..3507 "..=" RANGE_EXPR@3507..3512 DOT2@3507..3509 ".." WHITESPACE@3509..3510 " " RANGE_EXPR@3510..3512 DOT2@3510..3512 ".." WHITESPACE@3512..3513 "\n" R_CURLY@3513..3514 "}" WHITESPACE@3514..3516 "\n\n" FN@3516..3552 FN_KW@3516..3518 "fn" 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_EXPR@3528..3552 STMT_LIST@3528..3552 L_CURLY@3528..3529 "{" WHITESPACE@3529..3534 "\n " SEMICOLON@3534..3535 ";" SEMICOLON@3535..3536 ";" SEMICOLON@3536..3537 ";" EXPR_STMT@3537..3540 TUPLE_EXPR@3537..3539 L_PAREN@3537..3538 "(" R_PAREN@3538..3539 ")" SEMICOLON@3539..3540 ";" SEMICOLON@3540..3541 ";" SEMICOLON@3541..3542 ";" SEMICOLON@3542..3543 ";" SEMICOLON@3543..3544 ";" SEMICOLON@3544..3545 ";" SEMICOLON@3545..3546 ";" SEMICOLON@3546..3547 ";" SEMICOLON@3547..3548 ";" TUPLE_EXPR@3548..3550 L_PAREN@3548..3549 "(" R_PAREN@3549..3550 ")" WHITESPACE@3550..3551 "\n" R_CURLY@3551..3552 "}" WHITESPACE@3552..3554 "\n\n" FN@3554..3812 VISIBILITY@3554..3557 PUB_KW@3554..3557 "pub" WHITESPACE@3557..3558 " " FN_KW@3558..3560 "fn" 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_EXPR@3568..3812 STMT_LIST@3568..3812 L_CURLY@3568..3569 "{" WHITESPACE@3569..3574 "\n " 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 ")" SEMICOLON@3583..3584 ";" WHITESPACE@3584..3589 "\n " 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 ")" SEMICOLON@3596..3597 ";" WHITESPACE@3597..3602 "\n " 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 ")" SEMICOLON@3608..3609 ";" WHITESPACE@3609..3614 "\n " 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 ")" SEMICOLON@3627..3628 ";" WHITESPACE@3628..3633 "\n " 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 ")" SEMICOLON@3642..3643 ";" WHITESPACE@3643..3648 "\n " 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 ")" SEMICOLON@3663..3664 ";" WHITESPACE@3664..3669 "\n " 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 ")" SEMICOLON@3680..3681 ";" WHITESPACE@3681..3686 "\n " 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 ")" SEMICOLON@3700..3701 ";" WHITESPACE@3701..3706 "\n " 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 ")" SEMICOLON@3712..3713 ";" WHITESPACE@3713..3718 "\n " 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 ")" SEMICOLON@3725..3726 ";" WHITESPACE@3726..3731 "\n " 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 ")" SEMICOLON@3738..3739 ";" WHITESPACE@3739..3744 "\n " 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 ")" SEMICOLON@3751..3752 ";" WHITESPACE@3752..3757 "\n " 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 ")" SEMICOLON@3777..3778 ";" WHITESPACE@3778..3783 "\n " 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 ")" SEMICOLON@3795..3796 ";" WHITESPACE@3796..3801 "\n " 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 ")" SEMICOLON@3809..3810 ";" WHITESPACE@3810..3811 "\n" R_CURLY@3811..3812 "}" WHITESPACE@3812..3813 "\n"