| ... | @@ -11042,15 +11042,15 @@ TestDecl <- KEYWORD_test STRINGLITERALSINGLE Block | ... | @@ -11042,15 +11042,15 @@ TestDecl <- KEYWORD_test STRINGLITERALSINGLE Block |
| 11042 | TopLevelComptime <- KEYWORD_comptime BlockExpr | 11042 | TopLevelComptime <- KEYWORD_comptime BlockExpr |
| 11043 | | 11043 | |
| 11044 | TopLevelDecl | 11044 | TopLevelDecl |
| 11045 | <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / KEYWORD_inline)? FnProto (SEMICOLON / Block) | 11045 | <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block) |
| 11046 | / (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl | 11046 | / (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl |
| 11047 | / KEYWORD_usingnamespace Expr SEMICOLON | 11047 | / KEYWORD_usingnamespace Expr SEMICOLON |
| 11048 | | 11048 | |
| 11049 | FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? EXCLAMATIONMARK? (KEYWORD_anytype / TypeExpr) | 11049 | FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? (KEYWORD_anytype / TypeExpr) |
| 11050 | | 11050 | |
| 11051 | VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON | 11051 | VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON |
| 11052 | | 11052 | |
| 11053 | ContainerField <- KEYWORD_comptime? IDENTIFIER (COLON TypeExpr)? (EQUAL Expr)? | 11053 | ContainerField <- KEYWORD_comptime? IDENTIFIER (COLON TypeExpr ByteAlign?)? (EQUAL Expr)? |
| 11054 | | 11054 | |
| 11055 | # *** Block Level *** | 11055 | # *** Block Level *** |
| 11056 | Statement | 11056 | Statement |
| ... | @@ -11090,7 +11090,7 @@ BlockExpr <- BlockLabel? Block | ... | @@ -11090,7 +11090,7 @@ BlockExpr <- BlockLabel? Block |
| 11090 | # *** Expression Level *** | 11090 | # *** Expression Level *** |
| 11091 | AssignExpr <- Expr (AssignOp Expr)? | 11091 | AssignExpr <- Expr (AssignOp Expr)? |
| 11092 | | 11092 | |
| 11093 | Expr <- KEYWORD_try* BoolOrExpr | 11093 | Expr <- BoolOrExpr |
| 11094 | | 11094 | |
| 11095 | BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)* | 11095 | BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)* |
| 11096 | | 11096 | |
| ... | @@ -11215,6 +11215,8 @@ WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN | ... | @@ -11215,6 +11215,8 @@ WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN |
| 11215 | | 11215 | |
| 11216 | LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN | 11216 | LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN |
| 11217 | | 11217 | |
| | 11218 | CallConv <- KEYWORD_callconv LPAREN Expr RPAREN |
| | 11219 | |
| 11218 | ParamDecl <- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType | 11220 | ParamDecl <- (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType |
| 11219 | | 11221 | |
| 11220 | ParamType | 11222 | ParamType |
| ... | @@ -11321,19 +11323,20 @@ SuffixOp | ... | @@ -11321,19 +11323,20 @@ SuffixOp |
| 11321 | FnCallArguments <- LPAREN ExprList RPAREN | 11323 | FnCallArguments <- LPAREN ExprList RPAREN |
| 11322 | | 11324 | |
| 11323 | # Ptr specific | 11325 | # Ptr specific |
| 11324 | ArrayTypeStart <- LBRACKET Expr? RBRACKET | 11326 | ArrayTypeStart <- LBRACKET Expr? (COLON Expr)? RBRACKET |
| 11325 | | 11327 | |
| 11326 | PtrTypeStart | 11328 | PtrTypeStart |
| 11327 | <- ASTERISK | 11329 | <- ASTERISK |
| 11328 | / ASTERISK2 | 11330 | / ASTERISK2 |
| 11329 | / PTRUNKNOWN | 11331 | / LBRACKET ASTERISK (LETTERC / COLON Expr)? RBRACKET |
| 11330 | / PTRC | | |
| 11331 | | 11332 | |
| 11332 | # ContainerDecl specific | 11333 | # ContainerDecl specific |
| 11333 | ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE | 11334 | ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE |
| 11334 | | 11335 | |
| 11335 | ContainerDeclType | 11336 | ContainerDeclType |
| 11336 | <- (KEYWORD_struct / KEYWORD_enum / KEYWORD_opaque) (LPAREN Expr RPAREN)? | 11337 | <- KEYWORD_struct |
| | 11338 | / KEYWORD_opaque |
| | 11339 | / KEYWORD_enum (LPAREN Expr RPAREN)? |
| 11337 | / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? | 11340 | / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? |
| 11338 | | 11341 | |
| 11339 | # Alignment | 11342 | # Alignment |
| ... | @@ -11357,44 +11360,51 @@ ExprList <- (Expr COMMA)* Expr? | ... | @@ -11357,44 +11360,51 @@ ExprList <- (Expr COMMA)* Expr? |
| 11357 | # *** Tokens *** | 11360 | # *** Tokens *** |
| 11358 | eof <- !. | 11361 | eof <- !. |
| 11359 | hex <- [0-9a-fA-F] | 11362 | hex <- [0-9a-fA-F] |
| | 11363 | hex_ <- ('_'/hex) |
| | 11364 | dec <- [0-9] |
| | 11365 | dec_ <- ('_'/dec) |
| | 11366 | |
| | 11367 | dec_int <- dec (dec_* dec)? |
| | 11368 | hex_int <- hex (hex_* dec)? |
| | 11369 | |
| 11360 | char_escape | 11370 | char_escape |
| 11361 | <- "\\x" hex hex | 11371 | <- "\\x" hex hex |
| 11362 | / "\\u{" hex+ "}" | 11372 | / "\\u{" hex+ "}" |
| 11363 | / "\\" [nr\\t'"] | 11373 | / "\\" [nr\\t'"] |
| 11364 | char_char | 11374 | char_char |
| 11365 | <- char_escape | 11375 | <- char_escape |
| 11366 | / [^\\'\n] | 11376 | / [^\\'\n] |
| 11367 | string_char | 11377 | string_char |
| 11368 | <- char_escape | 11378 | <- char_escape |
| 11369 | / [^\\"\n] | 11379 | / [^\\"\n] |
| 11370 | | 11380 | |
| 11371 | line_comment <- '//'[^\n]* | 11381 | line_comment <- '//'[^\n]* |
| 11372 | line_string <- ("\\\\" [^\n]* [ \n]*)+ | 11382 | line_string <- ("\\\\" [^\n]* [ \n]*)+ |
| 11373 | skip <- ([ \n] / line_comment)* | 11383 | skip <- ([ \n] / line_comment)* |
| 11374 | | 11384 | |
| 11375 | CHAR_LITERAL <- "'" char_char "'" skip | 11385 | CHAR_LITERAL <- "'" char_char "'" skip |
| 11376 | FLOAT | 11386 | FLOAT |
| 11377 | <- "0x" hex+ "." hex+ ([pP] [-+]? hex+)? skip | 11387 | <- "0x" hex_* hex "." hex_int ([pP] [-+]? hex_int)? skip |
| 11378 | / [0-9]+ "." [0-9]+ ([eE] [-+]? [0-9]+)? skip | 11388 | / dec_int "." dec_int ([eE] [-+]? dec_int)? skip |
| 11379 | / "0x" hex+ "."? [pP] [-+]? hex+ skip | 11389 | / "0x" hex_* hex "."? [pP] [-+]? hex_int skip |
| 11380 | / [0-9]+ "."? [eE] [-+]? [0-9]+ skip | 11390 | / dec_int "."? [eE] [-+]? dec_int skip |
| 11381 | INTEGER | 11391 | INTEGER |
| 11382 | <- "0b" [01]+ skip | 11392 | <- "0b" [_01]* [01] skip |
| 11383 | / "0o" [0-7]+ skip | 11393 | / "0o" [_0-7]* [0-7] skip |
| 11384 | / "0x" hex+ skip | 11394 | / "0x" hex_* hex skip |
| 11385 | / [0-9]+ skip | 11395 | / dec_int skip |
| 11386 | STRINGLITERALSINGLE <- "\"" string_char* "\"" skip | 11396 | STRINGLITERALSINGLE <- "\"" string_char* "\"" skip |
| 11387 | STRINGLITERAL | 11397 | STRINGLITERAL |
| 11388 | <- STRINGLITERALSINGLE | 11398 | <- STRINGLITERALSINGLE |
| 11389 | / line_string skip | 11399 | / line_string skip |
| 11390 | IDENTIFIER | 11400 | IDENTIFIER |
| 11391 | <- !keyword [A-Za-z_] [A-Za-z0-9_]* skip | 11401 | <- !keyword [A-Za-z_] [A-Za-z0-9_]* skip |
| 11392 | / "@\"" string_char* "\"" skip | 11402 | / "@\"" string_char* "\"" skip |
| 11393 | BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip | 11403 | BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip |
| 11394 | | 11404 | |
| 11395 | | 11405 | |
| 11396 | AMPERSAND <- '&' ![=] skip | 11406 | AMPERSAND <- '&' ![=] skip |
| 11397 | AMPERSANDEQUAL <- '&=' skip | 11407 | AMPERSANDEQUAL <- '&=' skip |
| 11398 | ASTERISK <- '*' ![*%=] skip | 11408 | ASTERISK <- '*' ![*%=] skip |
| 11399 | ASTERISK2 <- '**' skip | 11409 | ASTERISK2 <- '**' skip |
| 11400 | ASTERISKEQUAL <- '*=' skip | 11410 | ASTERISKEQUAL <- '*=' skip |
| ... | @@ -11419,7 +11429,7 @@ LARROW2 <- '<<' ![=] skip | ... | @@ -11419,7 +11429,7 @@ LARROW2 <- '<<' ![=] skip |
| 11419 | LARROW2EQUAL <- '<<=' skip | 11429 | LARROW2EQUAL <- '<<=' skip |
| 11420 | LARROWEQUAL <- '<=' skip | 11430 | LARROWEQUAL <- '<=' skip |
| 11421 | LBRACE <- '{' skip | 11431 | LBRACE <- '{' skip |
| 11422 | LBRACKET <- '[' ![*] skip | 11432 | LBRACKET <- '[' skip |
| 11423 | LPAREN <- '(' skip | 11433 | LPAREN <- '(' skip |
| 11424 | MINUS <- '-' ![%=>] skip | 11434 | MINUS <- '-' ![%=>] skip |
| 11425 | MINUSEQUAL <- '-=' skip | 11435 | MINUSEQUAL <- '-=' skip |
| ... | @@ -11436,8 +11446,7 @@ PLUS2 <- '++' skip | ... | @@ -11436,8 +11446,7 @@ PLUS2 <- '++' skip |
| 11436 | PLUSEQUAL <- '+=' skip | 11446 | PLUSEQUAL <- '+=' skip |
| 11437 | PLUSPERCENT <- '+%' ![=] skip | 11447 | PLUSPERCENT <- '+%' ![=] skip |
| 11438 | PLUSPERCENTEQUAL <- '+%=' skip | 11448 | PLUSPERCENTEQUAL <- '+%=' skip |
| 11439 | PTRC <- '[*c]' skip | 11449 | LETTERC <- 'c' skip |
| 11440 | PTRUNKNOWN <- '[*]' skip | | |
| 11441 | QUESTIONMARK <- '?' skip | 11450 | QUESTIONMARK <- '?' skip |
| 11442 | RARROW <- '>' ![>=] skip | 11451 | RARROW <- '>' ![>=] skip |
| 11443 | RARROW2 <- '>>' ![=] skip | 11452 | RARROW2 <- '>>' ![=] skip |
| ... | @@ -11461,6 +11470,7 @@ KEYWORD_asm <- 'asm' end_of_word | ... | @@ -11461,6 +11470,7 @@ KEYWORD_asm <- 'asm' end_of_word |
| 11461 | KEYWORD_async <- 'async' end_of_word | 11470 | KEYWORD_async <- 'async' end_of_word |
| 11462 | KEYWORD_await <- 'await' end_of_word | 11471 | KEYWORD_await <- 'await' end_of_word |
| 11463 | KEYWORD_break <- 'break' end_of_word | 11472 | KEYWORD_break <- 'break' end_of_word |
| | 11473 | KEYWORD_callconv <- 'callconv' end_of_word |
| 11464 | KEYWORD_catch <- 'catch' end_of_word | 11474 | KEYWORD_catch <- 'catch' end_of_word |
| 11465 | KEYWORD_comptime <- 'comptime' end_of_word | 11475 | KEYWORD_comptime <- 'comptime' end_of_word |
| 11466 | KEYWORD_const <- 'const' end_of_word | 11476 | KEYWORD_const <- 'const' end_of_word |
| ... | @@ -11479,6 +11489,7 @@ KEYWORD_if <- 'if' end_of_word | ... | @@ -11479,6 +11489,7 @@ KEYWORD_if <- 'if' end_of_word |
| 11479 | KEYWORD_inline <- 'inline' end_of_word | 11489 | KEYWORD_inline <- 'inline' end_of_word |
| 11480 | KEYWORD_noalias <- 'noalias' end_of_word | 11490 | KEYWORD_noalias <- 'noalias' end_of_word |
| 11481 | KEYWORD_nosuspend <- 'nosuspend' end_of_word | 11491 | KEYWORD_nosuspend <- 'nosuspend' end_of_word |
| | 11492 | KEYWORD_noinline <- 'noinline' end_of_word |
| 11482 | KEYWORD_null <- 'null' end_of_word | 11493 | KEYWORD_null <- 'null' end_of_word |
| 11483 | KEYWORD_opaque <- 'opaque' end_of_word | 11494 | KEYWORD_opaque <- 'opaque' end_of_word |
| 11484 | KEYWORD_or <- 'or' end_of_word | 11495 | KEYWORD_or <- 'or' end_of_word |
| ... | @@ -11503,19 +11514,20 @@ KEYWORD_var <- 'var' end_of_word | ... | @@ -11503,19 +11514,20 @@ KEYWORD_var <- 'var' end_of_word |
| 11503 | KEYWORD_volatile <- 'volatile' end_of_word | 11514 | KEYWORD_volatile <- 'volatile' end_of_word |
| 11504 | KEYWORD_while <- 'while' end_of_word | 11515 | KEYWORD_while <- 'while' end_of_word |
| 11505 | | 11516 | |
| 11506 | keyword <- KEYWORD_align / KEYWORD_and / KEYWORD_anyframe / KEYWORD_anytype | 11517 | keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe |
| 11507 | / KEYWORD_allowzero / KEYWORD_asm / KEYWORD_async / KEYWORD_await / KEYWORD_break | 11518 | / KEYWORD_anytype / KEYWORD_asm / KEYWORD_async / KEYWORD_await |
| 11508 | / KEYWORD_catch / KEYWORD_comptime / KEYWORD_const / KEYWORD_continue | 11519 | / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime |
| 11509 | / KEYWORD_defer / KEYWORD_else / KEYWORD_enum / KEYWORD_errdefer | 11520 | / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else |
| 11510 | / KEYWORD_error / KEYWORD_export / KEYWORD_extern / KEYWORD_false | 11521 | / KEYWORD_enum / KEYWORD_errdefer / KEYWORD_error / KEYWORD_export |
| 11511 | / KEYWORD_fn / KEYWORD_for / KEYWORD_if / KEYWORD_inline | 11522 | / KEYWORD_extern / KEYWORD_false / KEYWORD_fn / KEYWORD_for / KEYWORD_if |
| 11512 | / KEYWORD_noalias / KEYWORD_null / KEYWORD_opaque / KEYWORD_or | 11523 | / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline |
| 11513 | / KEYWORD_orelse / KEYWORD_packed / KEYWORD_pub | 11524 | / KEYWORD_null / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed |
| 11514 | / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection | 11525 | / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection |
| 11515 | / KEYWORD_struct / KEYWORD_suspend | 11526 | / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch |
| 11516 | / KEYWORD_switch / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try | 11527 | / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_true / KEYWORD_try |
| 11517 | / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable | 11528 | / KEYWORD_undefined / KEYWORD_union / KEYWORD_unreachable |
| 11518 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while</code></pre> | 11529 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while |
| | 11530 | </code></pre> |
| 11519 | {#header_close#} | 11531 | {#header_close#} |
| 11520 | {#header_open|Zen#} | 11532 | {#header_open|Zen#} |
| 11521 | <ul> | 11533 | <ul> |