| ... | ... | @@ -12062,24 +12062,24 @@ ContainerMembers <- ContainerDeclarations (ContainerField COMMA)* (ContainerFiel |
| 12062 | 12062 | |
| 12063 | 12063 | ContainerDeclarations |
| 12064 | 12064 | <- TestDecl ContainerDeclarations |
| 12065 | | / TopLevelComptime ContainerDeclarations |
| 12066 | | / doc_comment? KEYWORD_pub? TopLevelDecl ContainerDeclarations |
| 12065 | / ComptimeDecl ContainerDeclarations |
| 12066 | / doc_comment? KEYWORD_pub? Decl ContainerDeclarations |
| 12067 | 12067 | / |
| 12068 | 12068 | |
| 12069 | | TestDecl <- doc_comment? KEYWORD_test STRINGLITERALSINGLE? Block |
| 12069 | TestDecl <- KEYWORD_test STRINGLITERALSINGLE? Block |
| 12070 | 12070 | |
| 12071 | | TopLevelComptime <- doc_comment? KEYWORD_comptime BlockExpr |
| 12071 | ComptimeDecl <- KEYWORD_comptime Block |
| 12072 | 12072 | |
| 12073 | | TopLevelDecl |
| 12073 | Decl |
| 12074 | 12074 | <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block) |
| 12075 | 12075 | / (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl |
| 12076 | 12076 | / KEYWORD_usingnamespace Expr SEMICOLON |
| 12077 | 12077 | |
| 12078 | | FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr |
| 12078 | FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? AddrSpace? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr |
| 12079 | 12079 | |
| 12080 | | VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON |
| 12080 | VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? AddrSpace? LinkSection? (EQUAL Expr)? SEMICOLON |
| 12081 | 12081 | |
| 12082 | | ContainerField <- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)? |
| 12082 | ContainerField <- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON TypeExpr ByteAlign?)? (EQUAL Expr)? |
| 12083 | 12083 | |
| 12084 | 12084 | # *** Block Level *** |
| 12085 | 12085 | Statement |
| ... | ... | @@ -12240,6 +12240,8 @@ WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN |
| 12240 | 12240 | |
| 12241 | 12241 | LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN |
| 12242 | 12242 | |
| 12243 | AddrSpace <- KEYWORD_addrspace LPAREN Expr RPAREN |
| 12244 | |
| 12243 | 12245 | # Fn specific |
| 12244 | 12246 | CallConv <- KEYWORD_callconv LPAREN Expr RPAREN |
| 12245 | 12247 | |
| ... | ... | @@ -12267,7 +12269,7 @@ PtrIndexPayload <- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE |
| 12267 | 12269 | |
| 12268 | 12270 | |
| 12269 | 12271 | # Switch specific |
| 12270 | | SwitchProng <- SwitchCase EQUALRARROW PtrPayload? AssignExpr |
| 12272 | SwitchProng <- KEYWORD_inline? SwitchCase EQUALRARROW PtrIndexPayload? AssignExpr |
| 12271 | 12273 | |
| 12272 | 12274 | SwitchCase |
| 12273 | 12275 | <- SwitchItem (COMMA SwitchItem)* COMMA? |
| ... | ... | @@ -12278,11 +12280,15 @@ SwitchItem <- Expr (DOT3 Expr)? |
| 12278 | 12280 | # Operators |
| 12279 | 12281 | AssignOp |
| 12280 | 12282 | <- ASTERISKEQUAL |
| 12283 | / ASTERISKPIPEEQUAL |
| 12281 | 12284 | / SLASHEQUAL |
| 12282 | 12285 | / PERCENTEQUAL |
| 12283 | 12286 | / PLUSEQUAL |
| 12287 | / PLUSPIPEEQUAL |
| 12284 | 12288 | / MINUSEQUAL |
| 12289 | / MINUSPIPEEQUAL |
| 12285 | 12290 | / LARROW2EQUAL |
| 12291 | / LARROW2PIPEEQUAL |
| 12286 | 12292 | / RARROW2EQUAL |
| 12287 | 12293 | / AMPERSANDEQUAL |
| 12288 | 12294 | / CARETEQUAL |
| ... | ... | @@ -12310,6 +12316,7 @@ BitwiseOp |
| 12310 | 12316 | BitShiftOp |
| 12311 | 12317 | <- LARROW2 |
| 12312 | 12318 | / RARROW2 |
| 12319 | / LARROW2PIPE |
| 12313 | 12320 | |
| 12314 | 12321 | AdditionOp |
| 12315 | 12322 | <- PLUS |
| ... | ... | @@ -12317,6 +12324,8 @@ AdditionOp |
| 12317 | 12324 | / PLUS2 |
| 12318 | 12325 | / PLUSPERCENT |
| 12319 | 12326 | / MINUSPERCENT |
| 12327 | / PLUSPIPE |
| 12328 | / MINUSPIPE |
| 12320 | 12329 | |
| 12321 | 12330 | MultiplyOp |
| 12322 | 12331 | <- PIPE2 |
| ... | ... | @@ -12325,6 +12334,7 @@ MultiplyOp |
| 12325 | 12334 | / PERCENT |
| 12326 | 12335 | / ASTERISK2 |
| 12327 | 12336 | / ASTERISKPERCENT |
| 12337 | / ASTERISKPIPE |
| 12328 | 12338 | |
| 12329 | 12339 | PrefixOp |
| 12330 | 12340 | <- EXCLAMATIONMARK |
| ... | ... | @@ -12338,8 +12348,8 @@ PrefixOp |
| 12338 | 12348 | PrefixTypeOp |
| 12339 | 12349 | <- QUESTIONMARK |
| 12340 | 12350 | / KEYWORD_anyframe MINUSRARROW |
| 12341 | | / SliceTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 12342 | | / PtrTypeStart (KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 12351 | / SliceTypeStart (ByteAlign / AddrSpace / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 12352 | / PtrTypeStart (AddrSpace / KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 12343 | 12353 | / ArrayTypeStart |
| 12344 | 12354 | |
| 12345 | 12355 | SuffixOp |
| ... | ... | @@ -12364,7 +12374,7 @@ ArrayTypeStart <- LBRACKET Expr (COLON Expr)? RBRACKET |
| 12364 | 12374 | ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE |
| 12365 | 12375 | |
| 12366 | 12376 | ContainerDeclType |
| 12367 | | <- KEYWORD_struct |
| 12377 | <- KEYWORD_struct (LPAREN Expr RPAREN)? |
| 12368 | 12378 | / KEYWORD_opaque |
| 12369 | 12379 | / KEYWORD_enum (LPAREN Expr RPAREN)? |
| 12370 | 12380 | / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? |
| ... | ... | @@ -12455,7 +12465,7 @@ string_char |
| 12455 | 12465 | / [^\\"\n] |
| 12456 | 12466 | |
| 12457 | 12467 | container_doc_comment <- ('//!' [^\n]* [ \n]*)+ |
| 12458 | | doc_comment <- ('///' [^\n]* [ \n]*)+ |
| 12468 | doc_comment <- ('///' [^\n]* [ \n]*)+ skip |
| 12459 | 12469 | line_comment <- '//' ![!/][^\n]* / '////' [^\n]* |
| 12460 | 12470 | line_string <- ("\\\\" [^\n]* [ \n]*)+ |
| 12461 | 12471 | skip <- ([ \n] / line_comment)* |
| ... | ... | @@ -12483,11 +12493,13 @@ BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip |
| 12483 | 12493 | |
| 12484 | 12494 | AMPERSAND <- '&' ![=] skip |
| 12485 | 12495 | AMPERSANDEQUAL <- '&=' skip |
| 12486 | | ASTERISK <- '*' ![*%=] skip |
| 12496 | ASTERISK <- '*' ![*%=|] skip |
| 12487 | 12497 | ASTERISK2 <- '**' skip |
| 12488 | 12498 | ASTERISKEQUAL <- '*=' skip |
| 12489 | 12499 | ASTERISKPERCENT <- '*%' ![=] skip |
| 12490 | 12500 | ASTERISKPERCENTEQUAL <- '*%=' skip |
| 12501 | ASTERISKPIPE <- '*|' ![=] skip |
| 12502 | ASTERISKPIPEEQUAL <- '*|=' skip |
| 12491 | 12503 | CARET <- '^' ![=] skip |
| 12492 | 12504 | CARETEQUAL <- '^=' skip |
| 12493 | 12505 | COLON <- ':' skip |
| ... | ... | @@ -12503,27 +12515,33 @@ EQUALRARROW <- '=>' skip |
| 12503 | 12515 | EXCLAMATIONMARK <- '!' ![=] skip |
| 12504 | 12516 | EXCLAMATIONMARKEQUAL <- '!=' skip |
| 12505 | 12517 | LARROW <- '<' ![<=] skip |
| 12506 | | LARROW2 <- '<<' ![=] skip |
| 12518 | LARROW2 <- '<<' ![=|] skip |
| 12507 | 12519 | LARROW2EQUAL <- '<<=' skip |
| 12520 | LARROW2PIPE <- '<<|' ![=] skip |
| 12521 | LARROW2PIPEEQUAL <- '<<|=' skip |
| 12508 | 12522 | LARROWEQUAL <- '<=' skip |
| 12509 | 12523 | LBRACE <- '{' skip |
| 12510 | 12524 | LBRACKET <- '[' skip |
| 12511 | 12525 | LPAREN <- '(' skip |
| 12512 | | MINUS <- '-' ![%=>] skip |
| 12526 | MINUS <- '-' ![%=>|] skip |
| 12513 | 12527 | MINUSEQUAL <- '-=' skip |
| 12514 | 12528 | MINUSPERCENT <- '-%' ![=] skip |
| 12515 | 12529 | MINUSPERCENTEQUAL <- '-%=' skip |
| 12530 | MINUSPIPE <- '-|' ![=] skip |
| 12531 | MINUSPIPEEQUAL <- '-|=' skip |
| 12516 | 12532 | MINUSRARROW <- '->' skip |
| 12517 | 12533 | PERCENT <- '%' ![=] skip |
| 12518 | 12534 | PERCENTEQUAL <- '%=' skip |
| 12519 | 12535 | PIPE <- '|' ![|=] skip |
| 12520 | 12536 | PIPE2 <- '||' skip |
| 12521 | 12537 | PIPEEQUAL <- '|=' skip |
| 12522 | | PLUS <- '+' ![%+=] skip |
| 12538 | PLUS <- '+' ![%+=|] skip |
| 12523 | 12539 | PLUS2 <- '++' skip |
| 12524 | 12540 | PLUSEQUAL <- '+=' skip |
| 12525 | 12541 | PLUSPERCENT <- '+%' ![=] skip |
| 12526 | 12542 | PLUSPERCENTEQUAL <- '+%=' skip |
| 12543 | PLUSPIPE <- '+|' ![=] skip |
| 12544 | PLUSPIPEEQUAL <- '+|=' skip |
| 12527 | 12545 | LETTERC <- 'c' skip |
| 12528 | 12546 | QUESTIONMARK <- '?' skip |
| 12529 | 12547 | RARROW <- '>' ![>=] skip |
| ... | ... | @@ -12539,6 +12557,7 @@ SLASHEQUAL <- '/=' skip |
| 12539 | 12557 | TILDE <- '~' skip |
| 12540 | 12558 | |
| 12541 | 12559 | end_of_word <- ![a-zA-Z0-9_] skip |
| 12560 | KEYWORD_addrspace <- 'addrspace' end_of_word |
| 12542 | 12561 | KEYWORD_align <- 'align' end_of_word |
| 12543 | 12562 | KEYWORD_allowzero <- 'allowzero' end_of_word |
| 12544 | 12563 | KEYWORD_and <- 'and' end_of_word |
| ... | ... | @@ -12588,11 +12607,11 @@ KEYWORD_var <- 'var' end_of_word |
| 12588 | 12607 | KEYWORD_volatile <- 'volatile' end_of_word |
| 12589 | 12608 | KEYWORD_while <- 'while' end_of_word |
| 12590 | 12609 | |
| 12591 | | keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe |
| 12592 | | / KEYWORD_anytype / KEYWORD_asm / KEYWORD_async / KEYWORD_await |
| 12593 | | / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime |
| 12594 | | / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else |
| 12595 | | / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export |
| 12610 | keyword <- KEYWORD_addrspace / KEYWORD_align / KEYWORD_allowzero / KEYWORD_and |
| 12611 | / KEYWORD_anyframe / KEYWORD_anytype / KEYWORD_asm / KEYWORD_async |
| 12612 | / KEYWORD_await / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch |
| 12613 | / KEYWORD_comptime / KEYWORD_const / KEYWORD_continue / KEYWORD_defer |
| 12614 | / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export |
| 12596 | 12615 | / KEYWORD_extern / KEYWORD_fn / KEYWORD_for / KEYWORD_if |
| 12597 | 12616 | / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline |
| 12598 | 12617 | / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed |