zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit cfbbd970754eb39345eeb6dd3423b128df5c359c (tree)
parent d82b3e2fb1e02e05c7e3248296b82c808b786137
Author: pfg <pfg@pfg.pw>
Date:   Sat,  2 Oct 2021 16:33:58 -0400

fix incorrectly escaped html
Diffstat:
Mdoc/langref.html.in | 533+++++++++++++++++++++++++++++++++++++++----------------------------------------
1 file changed, 260 insertions(+), 273 deletions(-)

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