SOURCE_FILE@[0; 395) COMMENT@[0; 60) "// https://github.com ..." WHITESPACE@[60; 62) "\n\n" FN_DEF@[62; 341) FN_KW@[62; 64) "fn" WHITESPACE@[64; 65) " " NAME@[65; 69) IDENT@[65; 69) "main" PARAM_LIST@[69; 71) L_PAREN@[69; 70) "(" R_PAREN@[70; 71) ")" WHITESPACE@[71; 72) " " BLOCK_EXPR@[72; 341) BLOCK@[72; 341) L_CURLY@[72; 73) "{" WHITESPACE@[73; 78) "\n " EXPR_STMT@[78; 141) MATCH_EXPR@[78; 141) MATCH_KW@[78; 83) "match" WHITESPACE@[83; 84) " " CALL_EXPR@[84; 92) PATH_EXPR@[84; 88) PATH@[84; 88) PATH_SEGMENT@[84; 88) NAME_REF@[84; 88) IDENT@[84; 88) "Some" ARG_LIST@[88; 92) L_PAREN@[88; 89) "(" PREFIX_EXPR@[89; 91) MINUS@[89; 90) "-" LITERAL@[90; 91) INT_NUMBER@[90; 91) "1" R_PAREN@[91; 92) ")" WHITESPACE@[92; 93) " " MATCH_ARM_LIST@[93; 141) L_CURLY@[93; 94) "{" WHITESPACE@[94; 103) "\n " MATCH_ARM@[103; 117) TUPLE_STRUCT_PAT@[103; 111) PATH@[103; 107) PATH_SEGMENT@[103; 107) NAME_REF@[103; 107) IDENT@[103; 107) "Some" L_PAREN@[107; 108) "(" LITERAL_PAT@[108; 110) MINUS@[108; 109) "-" LITERAL@[109; 110) INT_NUMBER@[109; 110) "1" R_PAREN@[110; 111) ")" WHITESPACE@[111; 112) " " FAT_ARROW@[112; 114) "=>" WHITESPACE@[114; 115) " " TUPLE_EXPR@[115; 117) L_PAREN@[115; 116) "(" R_PAREN@[116; 117) ")" COMMA@[117; 118) "," WHITESPACE@[118; 127) "\n " MATCH_ARM@[127; 134) PLACEHOLDER_PAT@[127; 128) UNDERSCORE@[127; 128) "_" WHITESPACE@[128; 129) " " FAT_ARROW@[129; 131) "=>" WHITESPACE@[131; 132) " " TUPLE_EXPR@[132; 134) L_PAREN@[132; 133) "(" R_PAREN@[133; 134) ")" COMMA@[134; 135) "," WHITESPACE@[135; 140) "\n " R_CURLY@[140; 141) "}" WHITESPACE@[141; 147) "\n\n " EXPR_STMT@[147; 222) MATCH_EXPR@[147; 222) MATCH_KW@[147; 152) "match" WHITESPACE@[152; 153) " " CALL_EXPR@[153; 167) PATH_EXPR@[153; 157) PATH@[153; 157) PATH_SEGMENT@[153; 157) NAME_REF@[153; 157) IDENT@[153; 157) "Some" ARG_LIST@[157; 167) L_PAREN@[157; 158) "(" TUPLE_EXPR@[158; 166) L_PAREN@[158; 159) "(" PREFIX_EXPR@[159; 161) MINUS@[159; 160) "-" LITERAL@[160; 161) INT_NUMBER@[160; 161) "1" COMMA@[161; 162) "," WHITESPACE@[162; 163) " " PREFIX_EXPR@[163; 165) MINUS@[163; 164) "-" LITERAL@[164; 165) INT_NUMBER@[164; 165) "1" R_PAREN@[165; 166) ")" R_PAREN@[166; 167) ")" WHITESPACE@[167; 168) " " MATCH_ARM_LIST@[168; 222) L_CURLY@[168; 169) "{" WHITESPACE@[169; 178) "\n " MATCH_ARM@[178; 198) TUPLE_STRUCT_PAT@[178; 192) PATH@[178; 182) PATH_SEGMENT@[178; 182) NAME_REF@[178; 182) IDENT@[178; 182) "Some" L_PAREN@[182; 183) "(" TUPLE_PAT@[183; 191) L_PAREN@[183; 184) "(" LITERAL_PAT@[184; 186) MINUS@[184; 185) "-" LITERAL@[185; 186) INT_NUMBER@[185; 186) "1" COMMA@[186; 187) "," WHITESPACE@[187; 188) " " LITERAL_PAT@[188; 190) MINUS@[188; 189) "-" LITERAL@[189; 190) INT_NUMBER@[189; 190) "1" R_PAREN@[190; 191) ")" R_PAREN@[191; 192) ")" WHITESPACE@[192; 193) " " FAT_ARROW@[193; 195) "=>" WHITESPACE@[195; 196) " " TUPLE_EXPR@[196; 198) L_PAREN@[196; 197) "(" R_PAREN@[197; 198) ")" COMMA@[198; 199) "," WHITESPACE@[199; 208) "\n " MATCH_ARM@[208; 215) PLACEHOLDER_PAT@[208; 209) UNDERSCORE@[208; 209) "_" WHITESPACE@[209; 210) " " FAT_ARROW@[210; 212) "=>" WHITESPACE@[212; 213) " " TUPLE_EXPR@[213; 215) L_PAREN@[213; 214) "(" R_PAREN@[214; 215) ")" COMMA@[215; 216) "," WHITESPACE@[216; 221) "\n " R_CURLY@[221; 222) "}" WHITESPACE@[222; 228) "\n\n " EXPR_STMT@[228; 299) MATCH_EXPR@[228; 299) MATCH_KW@[228; 233) "match" WHITESPACE@[233; 234) " " CALL_EXPR@[234; 246) PATH_EXPR@[234; 238) PATH@[234; 238) PATH@[234; 235) PATH_SEGMENT@[234; 235) NAME_REF@[234; 235) IDENT@[234; 235) "A" COLONCOLON@[235; 237) "::" PATH_SEGMENT@[237; 238) NAME_REF@[237; 238) IDENT@[237; 238) "B" ARG_LIST@[238; 246) L_PAREN@[238; 239) "(" PREFIX_EXPR@[239; 241) MINUS@[239; 240) "-" LITERAL@[240; 241) INT_NUMBER@[240; 241) "1" COMMA@[241; 242) "," WHITESPACE@[242; 243) " " PREFIX_EXPR@[243; 245) MINUS@[243; 244) "-" LITERAL@[244; 245) INT_NUMBER@[244; 245) "1" R_PAREN@[245; 246) ")" WHITESPACE@[246; 247) " " MATCH_ARM_LIST@[247; 299) L_CURLY@[247; 248) "{" WHITESPACE@[248; 257) "\n " MATCH_ARM@[257; 275) TUPLE_STRUCT_PAT@[257; 269) PATH@[257; 261) PATH@[257; 258) PATH_SEGMENT@[257; 258) NAME_REF@[257; 258) IDENT@[257; 258) "A" COLONCOLON@[258; 260) "::" PATH_SEGMENT@[260; 261) NAME_REF@[260; 261) IDENT@[260; 261) "B" L_PAREN@[261; 262) "(" LITERAL_PAT@[262; 264) MINUS@[262; 263) "-" LITERAL@[263; 264) INT_NUMBER@[263; 264) "1" COMMA@[264; 265) "," WHITESPACE@[265; 266) " " LITERAL_PAT@[266; 268) MINUS@[266; 267) "-" LITERAL@[267; 268) INT_NUMBER@[267; 268) "1" R_PAREN@[268; 269) ")" WHITESPACE@[269; 270) " " FAT_ARROW@[270; 272) "=>" WHITESPACE@[272; 273) " " TUPLE_EXPR@[273; 275) L_PAREN@[273; 274) "(" R_PAREN@[274; 275) ")" COMMA@[275; 276) "," WHITESPACE@[276; 285) "\n " MATCH_ARM@[285; 292) PLACEHOLDER_PAT@[285; 286) UNDERSCORE@[285; 286) "_" WHITESPACE@[286; 287) " " FAT_ARROW@[287; 289) "=>" WHITESPACE@[289; 290) " " TUPLE_EXPR@[290; 292) L_PAREN@[290; 291) "(" R_PAREN@[291; 292) ")" COMMA@[292; 293) "," WHITESPACE@[293; 298) "\n " R_CURLY@[298; 299) "}" WHITESPACE@[299; 305) "\n\n " IF_EXPR@[305; 339) IF_KW@[305; 307) "if" WHITESPACE@[307; 308) " " CONDITION@[308; 331) LET_KW@[308; 311) "let" WHITESPACE@[311; 312) " " TUPLE_STRUCT_PAT@[312; 320) PATH@[312; 316) PATH_SEGMENT@[312; 316) NAME_REF@[312; 316) IDENT@[312; 316) "Some" L_PAREN@[316; 317) "(" LITERAL_PAT@[317; 319) MINUS@[317; 318) "-" LITERAL@[318; 319) INT_NUMBER@[318; 319) "1" R_PAREN@[319; 320) ")" WHITESPACE@[320; 321) " " EQ@[321; 322) "=" WHITESPACE@[322; 323) " " CALL_EXPR@[323; 331) PATH_EXPR@[323; 327) PATH@[323; 327) PATH_SEGMENT@[323; 327) NAME_REF@[323; 327) IDENT@[323; 327) "Some" ARG_LIST@[327; 331) L_PAREN@[327; 328) "(" PREFIX_EXPR@[328; 330) MINUS@[328; 329) "-" LITERAL@[329; 330) INT_NUMBER@[329; 330) "1" R_PAREN@[330; 331) ")" WHITESPACE@[331; 332) " " BLOCK_EXPR@[332; 339) BLOCK@[332; 339) L_CURLY@[332; 333) "{" WHITESPACE@[333; 338) "\n " R_CURLY@[338; 339) "}" WHITESPACE@[339; 340) "\n" R_CURLY@[340; 341) "}" WHITESPACE@[341; 343) "\n\n" ENUM_DEF@[343; 367) ENUM_KW@[343; 347) "enum" WHITESPACE@[347; 348) " " NAME@[348; 349) IDENT@[348; 349) "A" WHITESPACE@[349; 350) " " ENUM_VARIANT_LIST@[350; 367) L_CURLY@[350; 351) "{" WHITESPACE@[351; 356) "\n " ENUM_VARIANT@[356; 365) NAME@[356; 357) IDENT@[356; 357) "B" TUPLE_FIELD_DEF_LIST@[357; 365) L_PAREN@[357; 358) "(" TUPLE_FIELD_DEF@[358; 360) PATH_TYPE@[358; 360) PATH@[358; 360) PATH_SEGMENT@[358; 360) NAME_REF@[358; 360) IDENT@[358; 360) "i8" COMMA@[360; 361) "," WHITESPACE@[361; 362) " " TUPLE_FIELD_DEF@[362; 364) PATH_TYPE@[362; 364) PATH@[362; 364) PATH_SEGMENT@[362; 364) NAME_REF@[362; 364) IDENT@[362; 364) "i8" R_PAREN@[364; 365) ")" WHITESPACE@[365; 366) "\n" R_CURLY@[366; 367) "}" WHITESPACE@[367; 369) "\n\n" FN_DEF@[369; 394) FN_KW@[369; 371) "fn" WHITESPACE@[371; 372) " " NAME@[372; 375) IDENT@[372; 375) "foo" PARAM_LIST@[375; 391) L_PAREN@[375; 376) "(" PARAM@[376; 390) RANGE_PAT@[376; 386) LITERAL_PAT@[376; 380) MINUS@[376; 377) "-" LITERAL@[377; 380) INT_NUMBER@[377; 380) "128" DOTDOTEQ@[380; 383) "..=" LITERAL_PAT@[383; 386) LITERAL@[383; 386) INT_NUMBER@[383; 386) "127" COLON@[386; 387) ":" WHITESPACE@[387; 388) " " PATH_TYPE@[388; 390) PATH@[388; 390) PATH_SEGMENT@[388; 390) NAME_REF@[388; 390) IDENT@[388; 390) "i8" R_PAREN@[390; 391) ")" WHITESPACE@[391; 392) " " BLOCK_EXPR@[392; 394) BLOCK@[392; 394) L_CURLY@[392; 393) "{" R_CURLY@[393; 394) "}" WHITESPACE@[394; 395) "\n"