Commit cfbbd97075
Changed files (1)
doc/langref.html.in
@@ -11650,35 +11650,35 @@ fn readU32Be() u32 {}
{#header_close#}
{#header_open|Grammar#}
- {#syntax_block|peg|zig.peg#}Root <- skip container_doc_comment? ContainerMembers eof
+ {#syntax_block|peg|grammar.y#}Root <- skip container_doc_comment? ContainerMembers eof
# *** Top level ***
-ContainerMembers <- ContainerDeclarations (ContainerField COMMA)* (ContainerField / ContainerDeclarations)
+ContainerMembers <- ContainerDeclarations (ContainerField COMMA)* (ContainerField / ContainerDeclarations)
ContainerDeclarations
- <- TestDecl ContainerDeclarations
+ <- TestDecl ContainerDeclarations
/ TopLevelComptime ContainerDeclarations
/ doc_comment? KEYWORD_pub? TopLevelDecl ContainerDeclarations
/
-TestDecl <- doc_comment? KEYWORD_test STRINGLITERALSINGLE? Block
+TestDecl <- doc_comment? KEYWORD_test STRINGLITERALSINGLE? Block
-TopLevelComptime <- doc_comment? KEYWORD_comptime BlockExpr
+TopLevelComptime <- doc_comment? KEYWORD_comptime BlockExpr
TopLevelDecl
- <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block)
+ <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block)
/ (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl
/ KEYWORD_usingnamespace Expr SEMICOLON
-FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr
+FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr
-VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON
+VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON
-ContainerField <- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)?
+ContainerField <- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)?
# *** Block Level ***
Statement
- <- KEYWORD_comptime? VarDecl
+ <- KEYWORD_comptime? VarDecl
/ KEYWORD_comptime BlockExprStatement
/ KEYWORD_nosuspend BlockExprStatement
/ KEYWORD_suspend BlockExprStatement
@@ -11690,50 +11690,50 @@ Statement
/ AssignExpr SEMICOLON
IfStatement
- <- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )?
+ <- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )?
/ IfPrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement )
-LabeledStatement <- BlockLabel? (Block / LoopStatement)
+LabeledStatement <- BlockLabel? (Block / LoopStatement)
-LoopStatement <- KEYWORD_inline? (ForStatement / WhileStatement)
+LoopStatement <- KEYWORD_inline? (ForStatement / WhileStatement)
ForStatement
- <- ForPrefix BlockExpr ( KEYWORD_else Statement )?
+ <- ForPrefix BlockExpr ( KEYWORD_else Statement )?
/ ForPrefix AssignExpr ( SEMICOLON / KEYWORD_else Statement )
WhileStatement
- <- WhilePrefix BlockExpr ( KEYWORD_else Payload? Statement )?
+ <- WhilePrefix BlockExpr ( KEYWORD_else Payload? Statement )?
/ WhilePrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement )
BlockExprStatement
- <- BlockExpr
+ <- BlockExpr
/ AssignExpr SEMICOLON
-BlockExpr <- BlockLabel? Block
+BlockExpr <- BlockLabel? Block
# *** Expression Level ***
-AssignExpr <- Expr (AssignOp Expr)?
+AssignExpr <- Expr (AssignOp Expr)?
-Expr <- BoolOrExpr
+Expr <- BoolOrExpr
-BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)*
+BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)*
-BoolAndExpr <- CompareExpr (KEYWORD_and CompareExpr)*
+BoolAndExpr <- CompareExpr (KEYWORD_and CompareExpr)*
-CompareExpr <- BitwiseExpr (CompareOp BitwiseExpr)?
+CompareExpr <- BitwiseExpr (CompareOp BitwiseExpr)?
-BitwiseExpr <- BitShiftExpr (BitwiseOp BitShiftExpr)*
+BitwiseExpr <- BitShiftExpr (BitwiseOp BitShiftExpr)*
-BitShiftExpr <- AdditionExpr (BitShiftOp AdditionExpr)*
+BitShiftExpr <- AdditionExpr (BitShiftOp AdditionExpr)*
-AdditionExpr <- MultiplyExpr (AdditionOp MultiplyExpr)*
+AdditionExpr <- MultiplyExpr (AdditionOp MultiplyExpr)*
-MultiplyExpr <- PrefixExpr (MultiplyOp PrefixExpr)*
+MultiplyExpr <- PrefixExpr (MultiplyOp PrefixExpr)*
-PrefixExpr <- PrefixOp* PrimaryExpr
+PrefixExpr <- PrefixOp* PrimaryExpr
PrimaryExpr
- <- AsmExpr
+ <- AsmExpr
/ IfExpr
/ KEYWORD_break BreakLabel? Expr?
/ KEYWORD_comptime Expr
@@ -11745,33 +11745,33 @@ PrimaryExpr
/ Block
/ CurlySuffixExpr
-IfExpr <- IfPrefix Expr (KEYWORD_else Payload? Expr)?
+IfExpr <- IfPrefix Expr (KEYWORD_else Payload? Expr)?
-Block <- LBRACE Statement* RBRACE
+Block <- LBRACE Statement* RBRACE
-LoopExpr <- KEYWORD_inline? (ForExpr / WhileExpr)
+LoopExpr <- KEYWORD_inline? (ForExpr / WhileExpr)
-ForExpr <- ForPrefix Expr (KEYWORD_else Expr)?
+ForExpr <- ForPrefix Expr (KEYWORD_else Expr)?
-WhileExpr <- WhilePrefix Expr (KEYWORD_else Payload? Expr)?
+WhileExpr <- WhilePrefix Expr (KEYWORD_else Payload? Expr)?
-CurlySuffixExpr <- TypeExpr InitList?
+CurlySuffixExpr <- TypeExpr InitList?
InitList
- <- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE
+ <- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE
/ LBRACE Expr (COMMA Expr)* COMMA? RBRACE
/ LBRACE RBRACE
-TypeExpr <- PrefixTypeOp* ErrorUnionExpr
+TypeExpr <- PrefixTypeOp* ErrorUnionExpr
-ErrorUnionExpr <- SuffixExpr (EXCLAMATIONMARK TypeExpr)?
+ErrorUnionExpr <- SuffixExpr (EXCLAMATIONMARK TypeExpr)?
SuffixExpr
- <- KEYWORD_async PrimaryTypeExpr SuffixOp* FnCallArguments
+ <- KEYWORD_async PrimaryTypeExpr SuffixOp* FnCallArguments
/ PrimaryTypeExpr (SuffixOp / FnCallArguments)*
PrimaryTypeExpr
- <- BUILTINIDENTIFIER FnCallArguments
+ <- BUILTINIDENTIFIER FnCallArguments
/ CHAR_LITERAL
/ ContainerDecl
/ DOT IDENTIFIER
@@ -11791,94 +11791,93 @@ PrimaryTypeExpr
/ STRINGLITERAL
/ SwitchExpr
-ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto
+ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto
-ErrorSetDecl <- KEYWORD_error LBRACE IdentifierList RBRACE
+ErrorSetDecl <- KEYWORD_error LBRACE IdentifierList RBRACE
-GroupedExpr <- LPAREN Expr RPAREN
+GroupedExpr <- LPAREN Expr RPAREN
-IfTypeExpr <- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)?
+IfTypeExpr <- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)?
LabeledTypeExpr
- <- BlockLabel Block
+ <- BlockLabel Block
/ BlockLabel? LoopTypeExpr
-LoopTypeExpr <- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr)
+LoopTypeExpr <- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr)
-ForTypeExpr <- ForPrefix TypeExpr (KEYWORD_else TypeExpr)?
+ForTypeExpr <- ForPrefix TypeExpr (KEYWORD_else TypeExpr)?
-WhileTypeExpr <- WhilePrefix TypeExpr (KEYWORD_else Payload? TypeExpr)?
+WhileTypeExpr <- WhilePrefix TypeExpr (KEYWORD_else Payload? TypeExpr)?
-SwitchExpr <- KEYWORD_switch LPAREN Expr RPAREN LBRACE SwitchProngList RBRACE
+SwitchExpr <- KEYWORD_switch LPAREN Expr RPAREN LBRACE SwitchProngList RBRACE
# *** Assembly ***
-AsmExpr <- KEYWORD_asm KEYWORD_volatile? LPAREN Expr AsmOutput? RPAREN
+AsmExpr <- KEYWORD_asm KEYWORD_volatile? LPAREN Expr AsmOutput? RPAREN
-AsmOutput <- COLON AsmOutputList AsmInput?
+AsmOutput <- COLON AsmOutputList AsmInput?
-AsmOutputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN (MINUSRARROW TypeExpr / IDENTIFIER) RPAREN
+AsmOutputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN (MINUSRARROW TypeExpr / IDENTIFIER) RPAREN
-AsmInput <- COLON AsmInputList AsmClobbers?
+AsmInput <- COLON AsmInputList AsmClobbers?
-AsmInputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN Expr RPAREN
+AsmInputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN Expr RPAREN
-AsmClobbers <- COLON StringList
+AsmClobbers <- COLON StringList
# *** Helper grammar ***
-BreakLabel <- COLON IDENTIFIER
+BreakLabel <- COLON IDENTIFIER
-BlockLabel <- IDENTIFIER COLON
+BlockLabel <- IDENTIFIER COLON
-FieldInit <- DOT IDENTIFIER EQUAL Expr
+FieldInit <- DOT IDENTIFIER EQUAL Expr
-WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN
+WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN
-LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN
+LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN
# Fn specific
-CallConv <- KEYWORD_callconv LPAREN Expr RPAREN
+CallConv <- KEYWORD_callconv LPAREN Expr RPAREN
ParamDecl
- <- doc_comment? (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType
+ <- doc_comment? (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType
/ DOT3
ParamType
- <- KEYWORD_anytype
+ <- KEYWORD_anytype
/ TypeExpr
# Control flow prefixes
-IfPrefix <- KEYWORD_if LPAREN Expr RPAREN PtrPayload?
+IfPrefix <- KEYWORD_if LPAREN Expr RPAREN PtrPayload?
-WhilePrefix <- KEYWORD_while LPAREN Expr RPAREN PtrPayload? WhileContinueExpr?
+WhilePrefix <- KEYWORD_while LPAREN Expr RPAREN PtrPayload? WhileContinueExpr?
-ForPrefix <- KEYWORD_for LPAREN Expr RPAREN PtrIndexPayload
+ForPrefix <- KEYWORD_for LPAREN Expr RPAREN PtrIndexPayload
# Payloads
-Payload <- PIPE IDENTIFIER PIPE
+Payload <- PIPE IDENTIFIER PIPE
-PtrPayload <- PIPE ASTERISK? IDENTIFIER PIPE
+PtrPayload <- PIPE ASTERISK? IDENTIFIER PIPE
-PtrIndexPayload <- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE
+PtrIndexPayload <- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE
# Switch specific
-SwitchProng <- SwitchCase EQUALRARROW PtrPayload? AssignExpr
+SwitchProng <- SwitchCase EQUALRARROW PtrPayload? AssignExpr
SwitchCase
- <- SwitchItem (COMMA SwitchItem)* COMMA?
+ <- SwitchItem (COMMA SwitchItem)* COMMA?
/ KEYWORD_else
-SwitchItem <- Expr (DOT3 Expr)?
+SwitchItem <- Expr (DOT3 Expr)?
# Operators
AssignOp
- <- ASTERISKEQUAL
+ <- ASTERISKEQUAL
/ SLASHEQUAL
/ PERCENTEQUAL
/ PLUSEQUAL
/ MINUSEQUAL
/ LARROW2EQUAL
- / LARROW2PIPEEQUAL
/ RARROW2EQUAL
/ AMPERSANDEQUAL
/ CARETEQUAL
@@ -11889,7 +11888,7 @@ AssignOp
/ EQUAL
CompareOp
- <- EQUALEQUAL
+ <- EQUALEQUAL
/ EXCLAMATIONMARKEQUAL
/ LARROW
/ RARROW
@@ -11897,36 +11896,33 @@ CompareOp
/ RARROWEQUAL
BitwiseOp
- <- AMPERSAND
+ <- AMPERSAND
/ CARET
/ PIPE
/ KEYWORD_orelse
/ KEYWORD_catch Payload?
BitShiftOp
- <- LARROW2
+ <- LARROW2
/ RARROW2
AdditionOp
- <- PLUS
+ <- PLUS
/ MINUS
/ PLUS2
/ PLUSPERCENT
/ MINUSPERCENT
- / PLUSPIPE
- / MINUSPIPE
MultiplyOp
- <- PIPE2
+ <- PIPE2
/ ASTERISK
/ SLASH
/ PERCENT
/ ASTERISK2
/ ASTERISKPERCENT
- / ASTERISKPIPE
PrefixOp
- <- EXCLAMATIONMARK
+ <- EXCLAMATIONMARK
/ MINUS
/ TILDE
/ MINUSPERCENT
@@ -11935,86 +11931,86 @@ PrefixOp
/ KEYWORD_await
PrefixTypeOp
- <- QUESTIONMARK
+ <- QUESTIONMARK
/ KEYWORD_anyframe MINUSRARROW
/ SliceTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)*
/ PtrTypeStart (KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)*
/ ArrayTypeStart
SuffixOp
- <- LBRACKET Expr (DOT2 (Expr? (COLON Expr)?)?)? RBRACKET
+ <- LBRACKET Expr (DOT2 (Expr? (COLON Expr)?)?)? RBRACKET
/ DOT IDENTIFIER
/ DOTASTERISK
/ DOTQUESTIONMARK
-FnCallArguments <- LPAREN ExprList RPAREN
+FnCallArguments <- LPAREN ExprList RPAREN
# Ptr specific
-SliceTypeStart <- LBRACKET (COLON Expr)? RBRACKET
+SliceTypeStart <- LBRACKET (COLON Expr)? RBRACKET
PtrTypeStart
- <- ASTERISK
+ <- ASTERISK
/ ASTERISK2
/ LBRACKET ASTERISK (LETTERC / COLON Expr)? RBRACKET
-ArrayTypeStart <- LBRACKET Expr (COLON Expr)? RBRACKET
+ArrayTypeStart <- LBRACKET Expr (COLON Expr)? RBRACKET
# ContainerDecl specific
-ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE
+ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE
ContainerDeclType
- <- KEYWORD_struct
+ <- KEYWORD_struct
/ KEYWORD_opaque
/ KEYWORD_enum (LPAREN Expr RPAREN)?
/ KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)?
# Alignment
-ByteAlign <- KEYWORD_align LPAREN Expr RPAREN
+ByteAlign <- KEYWORD_align LPAREN Expr RPAREN
# Lists
-IdentifierList <- (doc_comment? IDENTIFIER COMMA)* (doc_comment? IDENTIFIER)?
+IdentifierList <- (doc_comment? IDENTIFIER COMMA)* (doc_comment? IDENTIFIER)?
-SwitchProngList <- (SwitchProng COMMA)* SwitchProng?
+SwitchProngList <- (SwitchProng COMMA)* SwitchProng?
-AsmOutputList <- (AsmOutputItem COMMA)* AsmOutputItem?
+AsmOutputList <- (AsmOutputItem COMMA)* AsmOutputItem?
-AsmInputList <- (AsmInputItem COMMA)* AsmInputItem?
+AsmInputList <- (AsmInputItem COMMA)* AsmInputItem?
-StringList <- (STRINGLITERAL COMMA)* STRINGLITERAL?
+StringList <- (STRINGLITERAL COMMA)* STRINGLITERAL?
-ParamDeclList <- (ParamDecl COMMA)* ParamDecl?
+ParamDeclList <- (ParamDecl COMMA)* ParamDecl?
-ExprList <- (Expr COMMA)* Expr?
+ExprList <- (Expr COMMA)* Expr?
# *** Tokens ***
-eof <- !.
-bin <- [01]
-bin_ <- '_'? bin
-oct <- [0-7]
-oct_ <- '_'? oct
-hex <- [0-9a-fA-F]
-hex_ <- '_'? hex
-dec <- [0-9]
-dec_ <- '_'? dec
-
-bin_int <- bin bin_*
-oct_int <- oct oct_*
-dec_int <- dec dec_*
-hex_int <- hex hex_*
-
-ox80_oxBF <- [\200-\277]
-oxF4 <- '\364'
-ox80_ox8F <- [\200-\217]
-oxF1_oxF3 <- [\361-\363]
-oxF0 <- '\360'
-ox90_0xBF <- [\220-\277]
-oxEE_oxEF <- [\356-\357]
-oxED <- '\355'
-ox80_ox9F <- [\200-\237]
-oxE1_oxEC <- [\341-\354]
-oxE0 <- '\340'
-oxA0_oxBF <- [\240-\277]
-oxC2_oxDF <- [\302-\337]
+eof <- !.
+bin <- [01]
+bin_ <- '_'? bin
+oct <- [0-7]
+oct_ <- '_'? oct
+hex <- [0-9a-fA-F]
+hex_ <- '_'? hex
+dec <- [0-9]
+dec_ <- '_'? dec
+
+bin_int <- bin bin_*
+oct_int <- oct oct_*
+dec_int <- dec dec_*
+hex_int <- hex hex_*
+
+ox80_oxBF <- [\200-\277]
+oxF4 <- '\364'
+ox80_ox8F <- [\200-\217]
+oxF1_oxF3 <- [\361-\363]
+oxF0 <- '\360'
+ox90_0xBF <- [\220-\277]
+oxEE_oxEF <- [\356-\357]
+oxED <- '\355'
+ox80_ox9F <- [\200-\237]
+oxE1_oxEC <- [\341-\354]
+oxE0 <- '\340'
+oxA0_oxBF <- [\240-\277]
+oxC2_oxDF <- [\302-\337]
# From https://lemire.me/blog/2018/05/09/how-quickly-can-you-check-that-a-string-is-valid-unicode-utf-8/
# First Byte Second Byte Third Byte Fourth Byte
@@ -12028,7 +12024,7 @@ oxC2_oxDF <- [\302-\337]
# [0xF1,0xF3] [0x80,0xBF] [0x80,0xBF] [0x80,0xBF]
# 0xF4 [0x80,0x8F] [0x80,0xBF] [0x80,0xBF]
-mb_utf8_literal <-
+mb_utf8_literal <-
oxF4 ox80_ox8F ox80_oxBF ox80_oxBF
/ oxF1_oxF3 ox80_oxBF ox80_oxBF ox80_oxBF
/ oxF0 ox90_0xBF ox80_oxBF ox80_oxBF
@@ -12038,164 +12034,156 @@ mb_utf8_literal <-
/ oxE0 oxA0_oxBF ox80_oxBF
/ oxC2_oxDF ox80_oxBF
-ascii_char_not_nl_slash_squote <- [\000-\011\013-\046-\050-\133\135-\177]
+ascii_char_not_nl_slash_squote <- [\000-\011\013-\046-\050-\133\135-\177]
char_escape
- <- "\\x" hex hex
- / "\\u{" hex+ "}"
- / "\\" [nr\\t'"]
+ <- "\\x" hex hex
+ / "\\u{" hex+ "}"
+ / "\\" [nr\\t'"]
char_char
- <- mb_utf8_literal
+ <- mb_utf8_literal
/ char_escape
/ ascii_char_not_nl_slash_squote
string_char
- <- char_escape
- / [^\\"\n]
+ <- char_escape
+ / [^\\"\n]
-container_doc_comment <- ('//!' [^\n]* [ \n]*)+
-doc_comment <- ('///' [^\n]* [ \n]*)+
-line_comment <- '//' ![!/][^\n]* / '////' [^\n]*
-line_string <- ("\\\\" [^\n]* [ \n]*)+
-skip <- ([ \n] / line_comment)*
+container_doc_comment <- ('//!' [^\n]* [ \n]*)+
+doc_comment <- ('///' [^\n]* [ \n]*)+
+line_comment <- '//' ![!/][^\n]* / '////' [^\n]*
+line_string <- ("\\\\" [^\n]* [ \n]*)+
+skip <- ([ \n] / line_comment)*
-CHAR_LITERAL <- "'" char_char "'" skip
+CHAR_LITERAL <- "'" char_char "'" skip
FLOAT
- <- "0x" hex_int "." hex_int ([pP] [-+]? dec_int)? skip
- / dec_int "." dec_int ([eE] [-+]? dec_int)? skip
- / "0x" hex_int "."? [pP] [-+]? dec_int skip
- / dec_int "."? [eE] [-+]? dec_int skip
+ <- "0x" hex_int "." hex_int ([pP] [-+]? dec_int)? skip
+ / dec_int "." dec_int ([eE] [-+]? dec_int)? skip
+ / "0x" hex_int [pP] [-+]? dec_int skip
+ / dec_int [eE] [-+]? dec_int skip
INTEGER
- <- "0b" bin_int skip
- / "0o" oct_int skip
- / "0x" hex_int skip
+ <- "0b" bin_int skip
+ / "0o" oct_int skip
+ / "0x" hex_int skip
/ dec_int skip
-STRINGLITERALSINGLE <- "\"" string_char* "\"" skip
+STRINGLITERALSINGLE <- "\"" string_char* "\"" skip
STRINGLITERAL
- <- STRINGLITERALSINGLE
+ <- STRINGLITERALSINGLE
/ (line_string skip)+
IDENTIFIER
- <- !keyword [A-Za-z_] [A-Za-z0-9_]* skip
- / "@\"" string_char* "\"" skip
-BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip
-
-
-AMPERSAND <- '&' ![=] skip
-AMPERSANDEQUAL <- '&=' skip
-ASTERISK <- '*' ![*%=] skip
-ASTERISK2 <- '**' skip
-ASTERISKEQUAL <- '*=' skip
-ASTERISKPERCENT <- '*%' ![=] skip
-ASTERISKPERCENTEQUAL <- '*%=' skip
-ASTERISKPIPE <- '*|' ![=] skip
-ASTERISKPIPEEQUAL <- '*|=' skip
-CARET <- '^' ![=] skip
-CARETEQUAL <- '^=' skip
-COLON <- ':' skip
-COMMA <- ',' skip
-DOT <- '.' ![*.?] skip
-DOT2 <- '..' ![.] skip
-DOT3 <- '...' skip
-DOTASTERISK <- '.*' skip
-DOTQUESTIONMARK <- '.?' skip
-EQUAL <- '=' ![>=] skip
-EQUALEQUAL <- '==' skip
-EQUALRARROW <- '=>' skip
-EXCLAMATIONMARK <- '!' ![=] skip
-EXCLAMATIONMARKEQUAL <- '!=' skip
-LARROW <- '<' ![<=] skip
-LARROW2 <- '<<' ![=] skip
-LARROW2PIPE <- '<<|' ![=] skip
-LARROW2PIPEEQUAL <- '<<|=' ![=] skip
-LARROW2EQUAL <- '<<=' skip
-LARROWEQUAL <- '<=' skip
-LBRACE <- '{' skip
-LBRACKET <- '[' skip
-LPAREN <- '(' skip
-MINUS <- '-' ![%=>] skip
-MINUSEQUAL <- '-=' skip
-MINUSPERCENT <- '-%' ![=] skip
-MINUSPERCENTEQUAL <- '-%=' skip
-MINUSPIPE <- '-|' ![=] skip
-MINUSPIPEEQUAL <- '-|=' skip
-MINUSRARROW <- '->' skip
-PERCENT <- '%' ![=] skip
-PERCENTEQUAL <- '%=' skip
-PIPE <- '|' ![|=] skip
-PIPE2 <- '||' skip
-PIPEEQUAL <- '|=' skip
-PLUS <- '+' ![%+=] skip
-PLUS2 <- '++' skip
-PLUSEQUAL <- '+=' skip
-PLUSPERCENT <- '+%' ![=] skip
-PLUSPERCENTEQUAL <- '+%=' skip
-PLUSPIPE <- '+|' ![=] skip
-PLUSPIPEEQUAL <- '+|=' skip
-LETTERC <- 'c' skip
-QUESTIONMARK <- '?' skip
-RARROW <- '>' ![>=] skip
-RARROW2 <- '>>' ![=] skip
-RARROW2EQUAL <- '>>=' skip
-RARROWEQUAL <- '>=' skip
-RBRACE <- '}' skip
-RBRACKET <- ']' skip
-RPAREN <- ')' skip
-SEMICOLON <- ';' skip
-SLASH <- '/' ![=] skip
-SLASHEQUAL <- '/=' skip
-TILDE <- '~' skip
-
-end_of_word <- ![a-zA-Z0-9_] skip
-KEYWORD_align <- 'align' end_of_word
-KEYWORD_allowzero <- 'allowzero' end_of_word
-KEYWORD_and <- 'and' end_of_word
-KEYWORD_anyframe <- 'anyframe' end_of_word
-KEYWORD_anytype <- 'anytype' end_of_word
-KEYWORD_asm <- 'asm' end_of_word
-KEYWORD_async <- 'async' end_of_word
-KEYWORD_await <- 'await' end_of_word
-KEYWORD_break <- 'break' end_of_word
-KEYWORD_callconv <- 'callconv' end_of_word
-KEYWORD_catch <- 'catch' end_of_word
-KEYWORD_comptime <- 'comptime' end_of_word
-KEYWORD_const <- 'const' end_of_word
-KEYWORD_continue <- 'continue' end_of_word
-KEYWORD_defer <- 'defer' end_of_word
-KEYWORD_else <- 'else' end_of_word
-KEYWORD_enum <- 'enum' end_of_word
-KEYWORD_errdefer <- 'errdefer' end_of_word
-KEYWORD_error <- 'error' end_of_word
-KEYWORD_export <- 'export' end_of_word
-KEYWORD_extern <- 'extern' end_of_word
-KEYWORD_fn <- 'fn' end_of_word
-KEYWORD_for <- 'for' end_of_word
-KEYWORD_if <- 'if' end_of_word
-KEYWORD_inline <- 'inline' end_of_word
-KEYWORD_noalias <- 'noalias' end_of_word
-KEYWORD_nosuspend <- 'nosuspend' end_of_word
-KEYWORD_noinline <- 'noinline' end_of_word
-KEYWORD_opaque <- 'opaque' end_of_word
-KEYWORD_or <- 'or' end_of_word
-KEYWORD_orelse <- 'orelse' end_of_word
-KEYWORD_packed <- 'packed' end_of_word
-KEYWORD_pub <- 'pub' end_of_word
-KEYWORD_resume <- 'resume' end_of_word
-KEYWORD_return <- 'return' end_of_word
-KEYWORD_linksection <- 'linksection' end_of_word
-KEYWORD_struct <- 'struct' end_of_word
-KEYWORD_suspend <- 'suspend' end_of_word
-KEYWORD_switch <- 'switch' end_of_word
-KEYWORD_test <- 'test' end_of_word
-KEYWORD_threadlocal <- 'threadlocal' end_of_word
-KEYWORD_try <- 'try' end_of_word
-KEYWORD_union <- 'union' end_of_word
-KEYWORD_unreachable <- 'unreachable' end_of_word
-KEYWORD_usingnamespace <- 'usingnamespace' end_of_word
-KEYWORD_var <- 'var' end_of_word
-KEYWORD_volatile <- 'volatile' end_of_word
-KEYWORD_while <- 'while' end_of_word
-
-keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe
+ <- !keyword [A-Za-z_] [A-Za-z0-9_]* skip
+ / "@\"" string_char* "\"" skip
+BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip
+
+
+AMPERSAND <- '&' ![=] skip
+AMPERSANDEQUAL <- '&=' skip
+ASTERISK <- '*' ![*%=] skip
+ASTERISK2 <- '**' skip
+ASTERISKEQUAL <- '*=' skip
+ASTERISKPERCENT <- '*%' ![=] skip
+ASTERISKPERCENTEQUAL <- '*%=' skip
+CARET <- '^' ![=] skip
+CARETEQUAL <- '^=' skip
+COLON <- ':' skip
+COMMA <- ',' skip
+DOT <- '.' ![*.?] skip
+DOT2 <- '..' ![.] skip
+DOT3 <- '...' skip
+DOTASTERISK <- '.*' skip
+DOTQUESTIONMARK <- '.?' skip
+EQUAL <- '=' ![>=] skip
+EQUALEQUAL <- '==' skip
+EQUALRARROW <- '=>' skip
+EXCLAMATIONMARK <- '!' ![=] skip
+EXCLAMATIONMARKEQUAL <- '!=' skip
+LARROW <- '<' ![<=] skip
+LARROW2 <- '<<' ![=] skip
+LARROW2EQUAL <- '<<=' skip
+LARROWEQUAL <- '<=' skip
+LBRACE <- '{' skip
+LBRACKET <- '[' skip
+LPAREN <- '(' skip
+MINUS <- '-' ![%=>] skip
+MINUSEQUAL <- '-=' skip
+MINUSPERCENT <- '-%' ![=] skip
+MINUSPERCENTEQUAL <- '-%=' skip
+MINUSRARROW <- '->' skip
+PERCENT <- '%' ![=] skip
+PERCENTEQUAL <- '%=' skip
+PIPE <- '|' ![|=] skip
+PIPE2 <- '||' skip
+PIPEEQUAL <- '|=' skip
+PLUS <- '+' ![%+=] skip
+PLUS2 <- '++' skip
+PLUSEQUAL <- '+=' skip
+PLUSPERCENT <- '+%' ![=] skip
+PLUSPERCENTEQUAL <- '+%=' skip
+LETTERC <- 'c' skip
+QUESTIONMARK <- '?' skip
+RARROW <- '>' ![>=] skip
+RARROW2 <- '>>' ![=] skip
+RARROW2EQUAL <- '>>=' skip
+RARROWEQUAL <- '>=' skip
+RBRACE <- '}' skip
+RBRACKET <- ']' skip
+RPAREN <- ')' skip
+SEMICOLON <- ';' skip
+SLASH <- '/' ![=] skip
+SLASHEQUAL <- '/=' skip
+TILDE <- '~' skip
+
+end_of_word <- ![a-zA-Z0-9_] skip
+KEYWORD_align <- 'align' end_of_word
+KEYWORD_allowzero <- 'allowzero' end_of_word
+KEYWORD_and <- 'and' end_of_word
+KEYWORD_anyframe <- 'anyframe' end_of_word
+KEYWORD_anytype <- 'anytype' end_of_word
+KEYWORD_asm <- 'asm' end_of_word
+KEYWORD_async <- 'async' end_of_word
+KEYWORD_await <- 'await' end_of_word
+KEYWORD_break <- 'break' end_of_word
+KEYWORD_callconv <- 'callconv' end_of_word
+KEYWORD_catch <- 'catch' end_of_word
+KEYWORD_comptime <- 'comptime' end_of_word
+KEYWORD_const <- 'const' end_of_word
+KEYWORD_continue <- 'continue' end_of_word
+KEYWORD_defer <- 'defer' end_of_word
+KEYWORD_else <- 'else' end_of_word
+KEYWORD_enum <- 'enum' end_of_word
+KEYWORD_errdefer <- 'errdefer' end_of_word
+KEYWORD_error <- 'error' end_of_word
+KEYWORD_export <- 'export' end_of_word
+KEYWORD_extern <- 'extern' end_of_word
+KEYWORD_fn <- 'fn' end_of_word
+KEYWORD_for <- 'for' end_of_word
+KEYWORD_if <- 'if' end_of_word
+KEYWORD_inline <- 'inline' end_of_word
+KEYWORD_noalias <- 'noalias' end_of_word
+KEYWORD_nosuspend <- 'nosuspend' end_of_word
+KEYWORD_noinline <- 'noinline' end_of_word
+KEYWORD_opaque <- 'opaque' end_of_word
+KEYWORD_or <- 'or' end_of_word
+KEYWORD_orelse <- 'orelse' end_of_word
+KEYWORD_packed <- 'packed' end_of_word
+KEYWORD_pub <- 'pub' end_of_word
+KEYWORD_resume <- 'resume' end_of_word
+KEYWORD_return <- 'return' end_of_word
+KEYWORD_linksection <- 'linksection' end_of_word
+KEYWORD_struct <- 'struct' end_of_word
+KEYWORD_suspend <- 'suspend' end_of_word
+KEYWORD_switch <- 'switch' end_of_word
+KEYWORD_test <- 'test' end_of_word
+KEYWORD_threadlocal <- 'threadlocal' end_of_word
+KEYWORD_try <- 'try' end_of_word
+KEYWORD_union <- 'union' end_of_word
+KEYWORD_unreachable <- 'unreachable' end_of_word
+KEYWORD_usingnamespace <- 'usingnamespace' end_of_word
+KEYWORD_var <- 'var' end_of_word
+KEYWORD_volatile <- 'volatile' end_of_word
+KEYWORD_while <- 'while' end_of_word
+
+keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe
/ KEYWORD_anytype / KEYWORD_asm / KEYWORD_async / KEYWORD_await
/ KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime
/ KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else
@@ -12204,9 +12192,8 @@ keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe
/ KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline
/ KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed
/ KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection
- / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch
- / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_try
- / KEYWORD_union / KEYWORD_unreachable
+ / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch / KEYWORD_test
+ / KEYWORD_threadlocal / KEYWORD_try / KEYWORD_union / KEYWORD_unreachable
/ KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while
{#end_syntax_block#}
{#header_close#}