| ... | @@ -11650,35 +11650,35 @@ fn readU32Be() u32 {} | ... | @@ -11650,35 +11650,35 @@ fn readU32Be() u32 {} |
| 11650 | {#header_close#} | 11650 | {#header_close#} |
| 11651 | | 11651 | |
| 11652 | {#header_open|Grammar#} | 11652 | {#header_open|Grammar#} |
| 11653 | {#syntax_block|peg|zig.peg#}Root &lt;- skip container_doc_comment? ContainerMembers eof | 11653 | {#syntax_block|peg|grammar.y#}Root <- skip container_doc_comment? ContainerMembers eof |
| 11654 | | 11654 | |
| 11655 | # *** Top level *** | 11655 | # *** Top level *** |
| 11656 | ContainerMembers &lt;- ContainerDeclarations (ContainerField COMMA)* (ContainerField / ContainerDeclarations) | 11656 | ContainerMembers <- ContainerDeclarations (ContainerField COMMA)* (ContainerField / ContainerDeclarations) |
| 11657 | | 11657 | |
| 11658 | ContainerDeclarations | 11658 | ContainerDeclarations |
| 11659 | &lt;- TestDecl ContainerDeclarations | 11659 | <- TestDecl ContainerDeclarations |
| 11660 | / TopLevelComptime ContainerDeclarations | 11660 | / TopLevelComptime ContainerDeclarations |
| 11661 | / doc_comment? KEYWORD_pub? TopLevelDecl ContainerDeclarations | 11661 | / doc_comment? KEYWORD_pub? TopLevelDecl ContainerDeclarations |
| 11662 | / | 11662 | / |
| 11663 | | 11663 | |
| 11664 | TestDecl &lt;- doc_comment? KEYWORD_test STRINGLITERALSINGLE? Block | 11664 | TestDecl <- doc_comment? KEYWORD_test STRINGLITERALSINGLE? Block |
| 11665 | | 11665 | |
| 11666 | TopLevelComptime &lt;- doc_comment? KEYWORD_comptime BlockExpr | 11666 | TopLevelComptime <- doc_comment? KEYWORD_comptime BlockExpr |
| 11667 | | 11667 | |
| 11668 | TopLevelDecl | 11668 | TopLevelDecl |
| 11669 | &lt;- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block) | 11669 | <- (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE? / (KEYWORD_inline / KEYWORD_noinline))? FnProto (SEMICOLON / Block) |
| 11670 | / (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl | 11670 | / (KEYWORD_export / KEYWORD_extern STRINGLITERALSINGLE?)? KEYWORD_threadlocal? VarDecl |
| 11671 | / KEYWORD_usingnamespace Expr SEMICOLON | 11671 | / KEYWORD_usingnamespace Expr SEMICOLON |
| 11672 | | 11672 | |
| 11673 | FnProto &lt;- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr | 11673 | FnProto <- KEYWORD_fn IDENTIFIER? LPAREN ParamDeclList RPAREN ByteAlign? LinkSection? CallConv? EXCLAMATIONMARK? TypeExpr |
| 11674 | | 11674 | |
| 11675 | VarDecl &lt;- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON | 11675 | VarDecl <- (KEYWORD_const / KEYWORD_var) IDENTIFIER (COLON TypeExpr)? ByteAlign? LinkSection? (EQUAL Expr)? SEMICOLON |
| 11676 | | 11676 | |
| 11677 | ContainerField &lt;- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)? | 11677 | ContainerField <- doc_comment? KEYWORD_comptime? IDENTIFIER (COLON (KEYWORD_anytype / TypeExpr) ByteAlign?)? (EQUAL Expr)? |
| 11678 | | 11678 | |
| 11679 | # *** Block Level *** | 11679 | # *** Block Level *** |
| 11680 | Statement | 11680 | Statement |
| 11681 | &lt;- KEYWORD_comptime? VarDecl | 11681 | <- KEYWORD_comptime? VarDecl |
| 11682 | / KEYWORD_comptime BlockExprStatement | 11682 | / KEYWORD_comptime BlockExprStatement |
| 11683 | / KEYWORD_nosuspend BlockExprStatement | 11683 | / KEYWORD_nosuspend BlockExprStatement |
| 11684 | / KEYWORD_suspend BlockExprStatement | 11684 | / KEYWORD_suspend BlockExprStatement |
| ... | @@ -11690,50 +11690,50 @@ Statement | ... | @@ -11690,50 +11690,50 @@ Statement |
| 11690 | / AssignExpr SEMICOLON | 11690 | / AssignExpr SEMICOLON |
| 11691 | | 11691 | |
| 11692 | IfStatement | 11692 | IfStatement |
| 11693 | &lt;- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )? | 11693 | <- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )? |
| 11694 | / IfPrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) | 11694 | / IfPrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) |
| 11695 | | 11695 | |
| 11696 | LabeledStatement &lt;- BlockLabel? (Block / LoopStatement) | 11696 | LabeledStatement <- BlockLabel? (Block / LoopStatement) |
| 11697 | | 11697 | |
| 11698 | LoopStatement &lt;- KEYWORD_inline? (ForStatement / WhileStatement) | 11698 | LoopStatement <- KEYWORD_inline? (ForStatement / WhileStatement) |
| 11699 | | 11699 | |
| 11700 | ForStatement | 11700 | ForStatement |
| 11701 | &lt;- ForPrefix BlockExpr ( KEYWORD_else Statement )? | 11701 | <- ForPrefix BlockExpr ( KEYWORD_else Statement )? |
| 11702 | / ForPrefix AssignExpr ( SEMICOLON / KEYWORD_else Statement ) | 11702 | / ForPrefix AssignExpr ( SEMICOLON / KEYWORD_else Statement ) |
| 11703 | | 11703 | |
| 11704 | WhileStatement | 11704 | WhileStatement |
| 11705 | &lt;- WhilePrefix BlockExpr ( KEYWORD_else Payload? Statement )? | 11705 | <- WhilePrefix BlockExpr ( KEYWORD_else Payload? Statement )? |
| 11706 | / WhilePrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) | 11706 | / WhilePrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement ) |
| 11707 | | 11707 | |
| 11708 | BlockExprStatement | 11708 | BlockExprStatement |
| 11709 | &lt;- BlockExpr | 11709 | <- BlockExpr |
| 11710 | / AssignExpr SEMICOLON | 11710 | / AssignExpr SEMICOLON |
| 11711 | | 11711 | |
| 11712 | BlockExpr &lt;- BlockLabel? Block | 11712 | BlockExpr <- BlockLabel? Block |
| 11713 | | 11713 | |
| 11714 | # *** Expression Level *** | 11714 | # *** Expression Level *** |
| 11715 | AssignExpr &lt;- Expr (AssignOp Expr)? | 11715 | AssignExpr <- Expr (AssignOp Expr)? |
| 11716 | | 11716 | |
| 11717 | Expr &lt;- BoolOrExpr | 11717 | Expr <- BoolOrExpr |
| 11718 | | 11718 | |
| 11719 | BoolOrExpr &lt;- BoolAndExpr (KEYWORD_or BoolAndExpr)* | 11719 | BoolOrExpr <- BoolAndExpr (KEYWORD_or BoolAndExpr)* |
| 11720 | | 11720 | |
| 11721 | BoolAndExpr &lt;- CompareExpr (KEYWORD_and CompareExpr)* | 11721 | BoolAndExpr <- CompareExpr (KEYWORD_and CompareExpr)* |
| 11722 | | 11722 | |
| 11723 | CompareExpr &lt;- BitwiseExpr (CompareOp BitwiseExpr)? | 11723 | CompareExpr <- BitwiseExpr (CompareOp BitwiseExpr)? |
| 11724 | | 11724 | |
| 11725 | BitwiseExpr &lt;- BitShiftExpr (BitwiseOp BitShiftExpr)* | 11725 | BitwiseExpr <- BitShiftExpr (BitwiseOp BitShiftExpr)* |
| 11726 | | 11726 | |
| 11727 | BitShiftExpr &lt;- AdditionExpr (BitShiftOp AdditionExpr)* | 11727 | BitShiftExpr <- AdditionExpr (BitShiftOp AdditionExpr)* |
| 11728 | | 11728 | |
| 11729 | AdditionExpr &lt;- MultiplyExpr (AdditionOp MultiplyExpr)* | 11729 | AdditionExpr <- MultiplyExpr (AdditionOp MultiplyExpr)* |
| 11730 | | 11730 | |
| 11731 | MultiplyExpr &lt;- PrefixExpr (MultiplyOp PrefixExpr)* | 11731 | MultiplyExpr <- PrefixExpr (MultiplyOp PrefixExpr)* |
| 11732 | | 11732 | |
| 11733 | PrefixExpr &lt;- PrefixOp* PrimaryExpr | 11733 | PrefixExpr <- PrefixOp* PrimaryExpr |
| 11734 | | 11734 | |
| 11735 | PrimaryExpr | 11735 | PrimaryExpr |
| 11736 | &lt;- AsmExpr | 11736 | <- AsmExpr |
| 11737 | / IfExpr | 11737 | / IfExpr |
| 11738 | / KEYWORD_break BreakLabel? Expr? | 11738 | / KEYWORD_break BreakLabel? Expr? |
| 11739 | / KEYWORD_comptime Expr | 11739 | / KEYWORD_comptime Expr |
| ... | @@ -11745,33 +11745,33 @@ PrimaryExpr | ... | @@ -11745,33 +11745,33 @@ PrimaryExpr |
| 11745 | / Block | 11745 | / Block |
| 11746 | / CurlySuffixExpr | 11746 | / CurlySuffixExpr |
| 11747 | | 11747 | |
| 11748 | IfExpr &lt;- IfPrefix Expr (KEYWORD_else Payload? Expr)? | 11748 | IfExpr <- IfPrefix Expr (KEYWORD_else Payload? Expr)? |
| 11749 | | 11749 | |
| 11750 | Block &lt;- LBRACE Statement* RBRACE | 11750 | Block <- LBRACE Statement* RBRACE |
| 11751 | | 11751 | |
| 11752 | LoopExpr &lt;- KEYWORD_inline? (ForExpr / WhileExpr) | 11752 | LoopExpr <- KEYWORD_inline? (ForExpr / WhileExpr) |
| 11753 | | 11753 | |
| 11754 | ForExpr &lt;- ForPrefix Expr (KEYWORD_else Expr)? | 11754 | ForExpr <- ForPrefix Expr (KEYWORD_else Expr)? |
| 11755 | | 11755 | |
| 11756 | WhileExpr &lt;- WhilePrefix Expr (KEYWORD_else Payload? Expr)? | 11756 | WhileExpr <- WhilePrefix Expr (KEYWORD_else Payload? Expr)? |
| 11757 | | 11757 | |
| 11758 | CurlySuffixExpr &lt;- TypeExpr InitList? | 11758 | CurlySuffixExpr <- TypeExpr InitList? |
| 11759 | | 11759 | |
| 11760 | InitList | 11760 | InitList |
| 11761 | &lt;- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE | 11761 | <- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE |
| 11762 | / LBRACE Expr (COMMA Expr)* COMMA? RBRACE | 11762 | / LBRACE Expr (COMMA Expr)* COMMA? RBRACE |
| 11763 | / LBRACE RBRACE | 11763 | / LBRACE RBRACE |
| 11764 | | 11764 | |
| 11765 | TypeExpr &lt;- PrefixTypeOp* ErrorUnionExpr | 11765 | TypeExpr <- PrefixTypeOp* ErrorUnionExpr |
| 11766 | | 11766 | |
| 11767 | ErrorUnionExpr &lt;- SuffixExpr (EXCLAMATIONMARK TypeExpr)? | 11767 | ErrorUnionExpr <- SuffixExpr (EXCLAMATIONMARK TypeExpr)? |
| 11768 | | 11768 | |
| 11769 | SuffixExpr | 11769 | SuffixExpr |
| 11770 | &lt;- KEYWORD_async PrimaryTypeExpr SuffixOp* FnCallArguments | 11770 | <- KEYWORD_async PrimaryTypeExpr SuffixOp* FnCallArguments |
| 11771 | / PrimaryTypeExpr (SuffixOp / FnCallArguments)* | 11771 | / PrimaryTypeExpr (SuffixOp / FnCallArguments)* |
| 11772 | | 11772 | |
| 11773 | PrimaryTypeExpr | 11773 | PrimaryTypeExpr |
| 11774 | &lt;- BUILTINIDENTIFIER FnCallArguments | 11774 | <- BUILTINIDENTIFIER FnCallArguments |
| 11775 | / CHAR_LITERAL | 11775 | / CHAR_LITERAL |
| 11776 | / ContainerDecl | 11776 | / ContainerDecl |
| 11777 | / DOT IDENTIFIER | 11777 | / DOT IDENTIFIER |
| ... | @@ -11791,94 +11791,93 @@ PrimaryTypeExpr | ... | @@ -11791,94 +11791,93 @@ PrimaryTypeExpr |
| 11791 | / STRINGLITERAL | 11791 | / STRINGLITERAL |
| 11792 | / SwitchExpr | 11792 | / SwitchExpr |
| 11793 | | 11793 | |
| 11794 | ContainerDecl &lt;- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto | 11794 | ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto |
| 11795 | | 11795 | |
| 11796 | ErrorSetDecl &lt;- KEYWORD_error LBRACE IdentifierList RBRACE | 11796 | ErrorSetDecl <- KEYWORD_error LBRACE IdentifierList RBRACE |
| 11797 | | 11797 | |
| 11798 | GroupedExpr &lt;- LPAREN Expr RPAREN | 11798 | GroupedExpr <- LPAREN Expr RPAREN |
| 11799 | | 11799 | |
| 11800 | IfTypeExpr &lt;- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? | 11800 | IfTypeExpr <- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? |
| 11801 | | 11801 | |
| 11802 | LabeledTypeExpr | 11802 | LabeledTypeExpr |
| 11803 | &lt;- BlockLabel Block | 11803 | <- BlockLabel Block |
| 11804 | / BlockLabel? LoopTypeExpr | 11804 | / BlockLabel? LoopTypeExpr |
| 11805 | | 11805 | |
| 11806 | LoopTypeExpr &lt;- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr) | 11806 | LoopTypeExpr <- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr) |
| 11807 | | 11807 | |
| 11808 | ForTypeExpr &lt;- ForPrefix TypeExpr (KEYWORD_else TypeExpr)? | 11808 | ForTypeExpr <- ForPrefix TypeExpr (KEYWORD_else TypeExpr)? |
| 11809 | | 11809 | |
| 11810 | WhileTypeExpr &lt;- WhilePrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? | 11810 | WhileTypeExpr <- WhilePrefix TypeExpr (KEYWORD_else Payload? TypeExpr)? |
| 11811 | | 11811 | |
| 11812 | SwitchExpr &lt;- KEYWORD_switch LPAREN Expr RPAREN LBRACE SwitchProngList RBRACE | 11812 | SwitchExpr <- KEYWORD_switch LPAREN Expr RPAREN LBRACE SwitchProngList RBRACE |
| 11813 | | 11813 | |
| 11814 | # *** Assembly *** | 11814 | # *** Assembly *** |
| 11815 | AsmExpr &lt;- KEYWORD_asm KEYWORD_volatile? LPAREN Expr AsmOutput? RPAREN | 11815 | AsmExpr <- KEYWORD_asm KEYWORD_volatile? LPAREN Expr AsmOutput? RPAREN |
| 11816 | | 11816 | |
| 11817 | AsmOutput &lt;- COLON AsmOutputList AsmInput? | 11817 | AsmOutput <- COLON AsmOutputList AsmInput? |
| 11818 | | 11818 | |
| 11819 | AsmOutputItem &lt;- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN (MINUSRARROW TypeExpr / IDENTIFIER) RPAREN | 11819 | AsmOutputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN (MINUSRARROW TypeExpr / IDENTIFIER) RPAREN |
| 11820 | | 11820 | |
| 11821 | AsmInput &lt;- COLON AsmInputList AsmClobbers? | 11821 | AsmInput <- COLON AsmInputList AsmClobbers? |
| 11822 | | 11822 | |
| 11823 | AsmInputItem &lt;- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN Expr RPAREN | 11823 | AsmInputItem <- LBRACKET IDENTIFIER RBRACKET STRINGLITERAL LPAREN Expr RPAREN |
| 11824 | | 11824 | |
| 11825 | AsmClobbers &lt;- COLON StringList | 11825 | AsmClobbers <- COLON StringList |
| 11826 | | 11826 | |
| 11827 | # *** Helper grammar *** | 11827 | # *** Helper grammar *** |
| 11828 | BreakLabel &lt;- COLON IDENTIFIER | 11828 | BreakLabel <- COLON IDENTIFIER |
| 11829 | | 11829 | |
| 11830 | BlockLabel &lt;- IDENTIFIER COLON | 11830 | BlockLabel <- IDENTIFIER COLON |
| 11831 | | 11831 | |
| 11832 | FieldInit &lt;- DOT IDENTIFIER EQUAL Expr | 11832 | FieldInit <- DOT IDENTIFIER EQUAL Expr |
| 11833 | | 11833 | |
| 11834 | WhileContinueExpr &lt;- COLON LPAREN AssignExpr RPAREN | 11834 | WhileContinueExpr <- COLON LPAREN AssignExpr RPAREN |
| 11835 | | 11835 | |
| 11836 | LinkSection &lt;- KEYWORD_linksection LPAREN Expr RPAREN | 11836 | LinkSection <- KEYWORD_linksection LPAREN Expr RPAREN |
| 11837 | | 11837 | |
| 11838 | # Fn specific | 11838 | # Fn specific |
| 11839 | CallConv &lt;- KEYWORD_callconv LPAREN Expr RPAREN | 11839 | CallConv <- KEYWORD_callconv LPAREN Expr RPAREN |
| 11840 | | 11840 | |
| 11841 | ParamDecl | 11841 | ParamDecl |
| 11842 | &lt;- doc_comment? (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType | 11842 | <- doc_comment? (KEYWORD_noalias / KEYWORD_comptime)? (IDENTIFIER COLON)? ParamType |
| 11843 | / DOT3 | 11843 | / DOT3 |
| 11844 | | 11844 | |
| 11845 | ParamType | 11845 | ParamType |
| 11846 | &lt;- KEYWORD_anytype | 11846 | <- KEYWORD_anytype |
| 11847 | / TypeExpr | 11847 | / TypeExpr |
| 11848 | | 11848 | |
| 11849 | # Control flow prefixes | 11849 | # Control flow prefixes |
| 11850 | IfPrefix &lt;- KEYWORD_if LPAREN Expr RPAREN PtrPayload? | 11850 | IfPrefix <- KEYWORD_if LPAREN Expr RPAREN PtrPayload? |
| 11851 | | 11851 | |
| 11852 | WhilePrefix &lt;- KEYWORD_while LPAREN Expr RPAREN PtrPayload? WhileContinueExpr? | 11852 | WhilePrefix <- KEYWORD_while LPAREN Expr RPAREN PtrPayload? WhileContinueExpr? |
| 11853 | | 11853 | |
| 11854 | ForPrefix &lt;- KEYWORD_for LPAREN Expr RPAREN PtrIndexPayload | 11854 | ForPrefix <- KEYWORD_for LPAREN Expr RPAREN PtrIndexPayload |
| 11855 | | 11855 | |
| 11856 | # Payloads | 11856 | # Payloads |
| 11857 | Payload &lt;- PIPE IDENTIFIER PIPE | 11857 | Payload <- PIPE IDENTIFIER PIPE |
| 11858 | | 11858 | |
| 11859 | PtrPayload &lt;- PIPE ASTERISK? IDENTIFIER PIPE | 11859 | PtrPayload <- PIPE ASTERISK? IDENTIFIER PIPE |
| 11860 | | 11860 | |
| 11861 | PtrIndexPayload &lt;- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE | 11861 | PtrIndexPayload <- PIPE ASTERISK? IDENTIFIER (COMMA IDENTIFIER)? PIPE |
| 11862 | | 11862 | |
| 11863 | | 11863 | |
| 11864 | # Switch specific | 11864 | # Switch specific |
| 11865 | SwitchProng &lt;- SwitchCase EQUALRARROW PtrPayload? AssignExpr | 11865 | SwitchProng <- SwitchCase EQUALRARROW PtrPayload? AssignExpr |
| 11866 | | 11866 | |
| 11867 | SwitchCase | 11867 | SwitchCase |
| 11868 | &lt;- SwitchItem (COMMA SwitchItem)* COMMA? | 11868 | <- SwitchItem (COMMA SwitchItem)* COMMA? |
| 11869 | / KEYWORD_else | 11869 | / KEYWORD_else |
| 11870 | | 11870 | |
| 11871 | SwitchItem &lt;- Expr (DOT3 Expr)? | 11871 | SwitchItem <- Expr (DOT3 Expr)? |
| 11872 | | 11872 | |
| 11873 | # Operators | 11873 | # Operators |
| 11874 | AssignOp | 11874 | AssignOp |
| 11875 | &lt;- ASTERISKEQUAL | 11875 | <- ASTERISKEQUAL |
| 11876 | / SLASHEQUAL | 11876 | / SLASHEQUAL |
| 11877 | / PERCENTEQUAL | 11877 | / PERCENTEQUAL |
| 11878 | / PLUSEQUAL | 11878 | / PLUSEQUAL |
| 11879 | / MINUSEQUAL | 11879 | / MINUSEQUAL |
| 11880 | / LARROW2EQUAL | 11880 | / LARROW2EQUAL |
| 11881 | / LARROW2PIPEEQUAL | | |
| 11882 | / RARROW2EQUAL | 11881 | / RARROW2EQUAL |
| 11883 | / AMPERSANDEQUAL | 11882 | / AMPERSANDEQUAL |
| 11884 | / CARETEQUAL | 11883 | / CARETEQUAL |
| ... | @@ -11889,7 +11888,7 @@ AssignOp | ... | @@ -11889,7 +11888,7 @@ AssignOp |
| 11889 | / EQUAL | 11888 | / EQUAL |
| 11890 | | 11889 | |
| 11891 | CompareOp | 11890 | CompareOp |
| 11892 | &lt;- EQUALEQUAL | 11891 | <- EQUALEQUAL |
| 11893 | / EXCLAMATIONMARKEQUAL | 11892 | / EXCLAMATIONMARKEQUAL |
| 11894 | / LARROW | 11893 | / LARROW |
| 11895 | / RARROW | 11894 | / RARROW |
| ... | @@ -11897,36 +11896,33 @@ CompareOp | ... | @@ -11897,36 +11896,33 @@ CompareOp |
| 11897 | / RARROWEQUAL | 11896 | / RARROWEQUAL |
| 11898 | | 11897 | |
| 11899 | BitwiseOp | 11898 | BitwiseOp |
| 11900 | &lt;- AMPERSAND | 11899 | <- AMPERSAND |
| 11901 | / CARET | 11900 | / CARET |
| 11902 | / PIPE | 11901 | / PIPE |
| 11903 | / KEYWORD_orelse | 11902 | / KEYWORD_orelse |
| 11904 | / KEYWORD_catch Payload? | 11903 | / KEYWORD_catch Payload? |
| 11905 | | 11904 | |
| 11906 | BitShiftOp | 11905 | BitShiftOp |
| 11907 | &lt;- LARROW2 | 11906 | <- LARROW2 |
| 11908 | / RARROW2 | 11907 | / RARROW2 |
| 11909 | | 11908 | |
| 11910 | AdditionOp | 11909 | AdditionOp |
| 11911 | &lt;- PLUS | 11910 | <- PLUS |
| 11912 | / MINUS | 11911 | / MINUS |
| 11913 | / PLUS2 | 11912 | / PLUS2 |
| 11914 | / PLUSPERCENT | 11913 | / PLUSPERCENT |
| 11915 | / MINUSPERCENT | 11914 | / MINUSPERCENT |
| 11916 | / PLUSPIPE | | |
| 11917 | / MINUSPIPE | | |
| 11918 | | 11915 | |
| 11919 | MultiplyOp | 11916 | MultiplyOp |
| 11920 | &lt;- PIPE2 | 11917 | <- PIPE2 |
| 11921 | / ASTERISK | 11918 | / ASTERISK |
| 11922 | / SLASH | 11919 | / SLASH |
| 11923 | / PERCENT | 11920 | / PERCENT |
| 11924 | / ASTERISK2 | 11921 | / ASTERISK2 |
| 11925 | / ASTERISKPERCENT | 11922 | / ASTERISKPERCENT |
| 11926 | / ASTERISKPIPE | | |
| 11927 | | 11923 | |
| 11928 | PrefixOp | 11924 | PrefixOp |
| 11929 | &lt;- EXCLAMATIONMARK | 11925 | <- EXCLAMATIONMARK |
| 11930 | / MINUS | 11926 | / MINUS |
| 11931 | / TILDE | 11927 | / TILDE |
| 11932 | / MINUSPERCENT | 11928 | / MINUSPERCENT |
| ... | @@ -11935,86 +11931,86 @@ PrefixOp | ... | @@ -11935,86 +11931,86 @@ PrefixOp |
| 11935 | / KEYWORD_await | 11931 | / KEYWORD_await |
| 11936 | | 11932 | |
| 11937 | PrefixTypeOp | 11933 | PrefixTypeOp |
| 11938 | &lt;- QUESTIONMARK | 11934 | <- QUESTIONMARK |
| 11939 | / KEYWORD_anyframe MINUSRARROW | 11935 | / KEYWORD_anyframe MINUSRARROW |
| 11940 | / SliceTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* | 11936 | / SliceTypeStart (ByteAlign / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 11941 | / PtrTypeStart (KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* | 11937 | / PtrTypeStart (KEYWORD_align LPAREN Expr (COLON INTEGER COLON INTEGER)? RPAREN / KEYWORD_const / KEYWORD_volatile / KEYWORD_allowzero)* |
| 11942 | / ArrayTypeStart | 11938 | / ArrayTypeStart |
| 11943 | | 11939 | |
| 11944 | SuffixOp | 11940 | SuffixOp |
| 11945 | &lt;- LBRACKET Expr (DOT2 (Expr? (COLON Expr)?)?)? RBRACKET | 11941 | <- LBRACKET Expr (DOT2 (Expr? (COLON Expr)?)?)? RBRACKET |
| 11946 | / DOT IDENTIFIER | 11942 | / DOT IDENTIFIER |
| 11947 | / DOTASTERISK | 11943 | / DOTASTERISK |
| 11948 | / DOTQUESTIONMARK | 11944 | / DOTQUESTIONMARK |
| 11949 | | 11945 | |
| 11950 | FnCallArguments &lt;- LPAREN ExprList RPAREN | 11946 | FnCallArguments <- LPAREN ExprList RPAREN |
| 11951 | | 11947 | |
| 11952 | # Ptr specific | 11948 | # Ptr specific |
| 11953 | SliceTypeStart &lt;- LBRACKET (COLON Expr)? RBRACKET | 11949 | SliceTypeStart <- LBRACKET (COLON Expr)? RBRACKET |
| 11954 | | 11950 | |
| 11955 | PtrTypeStart | 11951 | PtrTypeStart |
| 11956 | &lt;- ASTERISK | 11952 | <- ASTERISK |
| 11957 | / ASTERISK2 | 11953 | / ASTERISK2 |
| 11958 | / LBRACKET ASTERISK (LETTERC / COLON Expr)? RBRACKET | 11954 | / LBRACKET ASTERISK (LETTERC / COLON Expr)? RBRACKET |
| 11959 | | 11955 | |
| 11960 | ArrayTypeStart &lt;- LBRACKET Expr (COLON Expr)? RBRACKET | 11956 | ArrayTypeStart <- LBRACKET Expr (COLON Expr)? RBRACKET |
| 11961 | | 11957 | |
| 11962 | # ContainerDecl specific | 11958 | # ContainerDecl specific |
| 11963 | ContainerDeclAuto &lt;- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE | 11959 | ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE |
| 11964 | | 11960 | |
| 11965 | ContainerDeclType | 11961 | ContainerDeclType |
| 11966 | &lt;- KEYWORD_struct | 11962 | <- KEYWORD_struct |
| 11967 | / KEYWORD_opaque | 11963 | / KEYWORD_opaque |
| 11968 | / KEYWORD_enum (LPAREN Expr RPAREN)? | 11964 | / KEYWORD_enum (LPAREN Expr RPAREN)? |
| 11969 | / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? | 11965 | / KEYWORD_union (LPAREN (KEYWORD_enum (LPAREN Expr RPAREN)? / Expr) RPAREN)? |
| 11970 | | 11966 | |
| 11971 | # Alignment | 11967 | # Alignment |
| 11972 | ByteAlign &lt;- KEYWORD_align LPAREN Expr RPAREN | 11968 | ByteAlign <- KEYWORD_align LPAREN Expr RPAREN |
| 11973 | | 11969 | |
| 11974 | # Lists | 11970 | # Lists |
| 11975 | IdentifierList &lt;- (doc_comment? IDENTIFIER COMMA)* (doc_comment? IDENTIFIER)? | 11971 | IdentifierList <- (doc_comment? IDENTIFIER COMMA)* (doc_comment? IDENTIFIER)? |
| 11976 | | 11972 | |
| 11977 | SwitchProngList &lt;- (SwitchProng COMMA)* SwitchProng? | 11973 | SwitchProngList <- (SwitchProng COMMA)* SwitchProng? |
| 11978 | | 11974 | |
| 11979 | AsmOutputList &lt;- (AsmOutputItem COMMA)* AsmOutputItem? | 11975 | AsmOutputList <- (AsmOutputItem COMMA)* AsmOutputItem? |
| 11980 | | 11976 | |
| 11981 | AsmInputList &lt;- (AsmInputItem COMMA)* AsmInputItem? | 11977 | AsmInputList <- (AsmInputItem COMMA)* AsmInputItem? |
| 11982 | | 11978 | |
| 11983 | StringList &lt;- (STRINGLITERAL COMMA)* STRINGLITERAL? | 11979 | StringList <- (STRINGLITERAL COMMA)* STRINGLITERAL? |
| 11984 | | 11980 | |
| 11985 | ParamDeclList &lt;- (ParamDecl COMMA)* ParamDecl? | 11981 | ParamDeclList <- (ParamDecl COMMA)* ParamDecl? |
| 11986 | | 11982 | |
| 11987 | ExprList &lt;- (Expr COMMA)* Expr? | 11983 | ExprList <- (Expr COMMA)* Expr? |
| 11988 | | 11984 | |
| 11989 | # *** Tokens *** | 11985 | # *** Tokens *** |
| 11990 | eof &lt;- !. | 11986 | eof <- !. |
| 11991 | bin &lt;- [01] | 11987 | bin <- [01] |
| 11992 | bin_ &lt;- '_'? bin | 11988 | bin_ <- '_'? bin |
| 11993 | oct &lt;- [0-7] | 11989 | oct <- [0-7] |
| 11994 | oct_ &lt;- '_'? oct | 11990 | oct_ <- '_'? oct |
| 11995 | hex &lt;- [0-9a-fA-F] | 11991 | hex <- [0-9a-fA-F] |
| 11996 | hex_ &lt;- '_'? hex | 11992 | hex_ <- '_'? hex |
| 11997 | dec &lt;- [0-9] | 11993 | dec <- [0-9] |
| 11998 | dec_ &lt;- '_'? dec | 11994 | dec_ <- '_'? dec |
| 11999 | | 11995 | |
| 12000 | bin_int &lt;- bin bin_* | 11996 | bin_int <- bin bin_* |
| 12001 | oct_int &lt;- oct oct_* | 11997 | oct_int <- oct oct_* |
| 12002 | dec_int &lt;- dec dec_* | 11998 | dec_int <- dec dec_* |
| 12003 | hex_int &lt;- hex hex_* | 11999 | hex_int <- hex hex_* |
| 12004 | | 12000 | |
| 12005 | ox80_oxBF &lt;- [\200-\277] | 12001 | ox80_oxBF <- [\200-\277] |
| 12006 | oxF4 &lt;- '\364' | 12002 | oxF4 <- '\364' |
| 12007 | ox80_ox8F &lt;- [\200-\217] | 12003 | ox80_ox8F <- [\200-\217] |
| 12008 | oxF1_oxF3 &lt;- [\361-\363] | 12004 | oxF1_oxF3 <- [\361-\363] |
| 12009 | oxF0 &lt;- '\360' | 12005 | oxF0 <- '\360' |
| 12010 | ox90_0xBF &lt;- [\220-\277] | 12006 | ox90_0xBF <- [\220-\277] |
| 12011 | oxEE_oxEF &lt;- [\356-\357] | 12007 | oxEE_oxEF <- [\356-\357] |
| 12012 | oxED &lt;- '\355' | 12008 | oxED <- '\355' |
| 12013 | ox80_ox9F &lt;- [\200-\237] | 12009 | ox80_ox9F <- [\200-\237] |
| 12014 | oxE1_oxEC &lt;- [\341-\354] | 12010 | oxE1_oxEC <- [\341-\354] |
| 12015 | oxE0 &lt;- '\340' | 12011 | oxE0 <- '\340' |
| 12016 | oxA0_oxBF &lt;- [\240-\277] | 12012 | oxA0_oxBF <- [\240-\277] |
| 12017 | oxC2_oxDF &lt;- [\302-\337] | 12013 | oxC2_oxDF <- [\302-\337] |
| 12018 | | 12014 | |
| 12019 | # From https://lemire.me/blog/2018/05/09/how-quickly-can-you-check-that-a-string-is-valid-unicode-utf-8/ | 12015 | # From https://lemire.me/blog/2018/05/09/how-quickly-can-you-check-that-a-string-is-valid-unicode-utf-8/ |
| 12020 | # First Byte Second Byte Third Byte Fourth Byte | 12016 | # First Byte Second Byte Third Byte Fourth Byte |
| ... | @@ -12028,7 +12024,7 @@ oxC2_oxDF &lt;- [\302-\337] | ... | @@ -12028,7 +12024,7 @@ oxC2_oxDF &lt;- [\302-\337] |
| 12028 | # [0xF1,0xF3] [0x80,0xBF] [0x80,0xBF] [0x80,0xBF] | 12024 | # [0xF1,0xF3] [0x80,0xBF] [0x80,0xBF] [0x80,0xBF] |
| 12029 | # 0xF4 [0x80,0x8F] [0x80,0xBF] [0x80,0xBF] | 12025 | # 0xF4 [0x80,0x8F] [0x80,0xBF] [0x80,0xBF] |
| 12030 | | 12026 | |
| 12031 | mb_utf8_literal &lt;- | 12027 | mb_utf8_literal <- |
| 12032 | oxF4 ox80_ox8F ox80_oxBF ox80_oxBF | 12028 | oxF4 ox80_ox8F ox80_oxBF ox80_oxBF |
| 12033 | / oxF1_oxF3 ox80_oxBF ox80_oxBF ox80_oxBF | 12029 | / oxF1_oxF3 ox80_oxBF ox80_oxBF ox80_oxBF |
| 12034 | / oxF0 ox90_0xBF ox80_oxBF ox80_oxBF | 12030 | / oxF0 ox90_0xBF ox80_oxBF ox80_oxBF |
| ... | @@ -12038,164 +12034,156 @@ mb_utf8_literal &lt;- | ... | @@ -12038,164 +12034,156 @@ mb_utf8_literal &lt;- |
| 12038 | / oxE0 oxA0_oxBF ox80_oxBF | 12034 | / oxE0 oxA0_oxBF ox80_oxBF |
| 12039 | / oxC2_oxDF ox80_oxBF | 12035 | / oxC2_oxDF ox80_oxBF |
| 12040 | | 12036 | |
| 12041 | ascii_char_not_nl_slash_squote &lt;- [\000-\011\013-\046-\050-\133\135-\177] | 12037 | ascii_char_not_nl_slash_squote <- [\000-\011\013-\046-\050-\133\135-\177] |
| 12042 | | 12038 | |
| 12043 | char_escape | 12039 | char_escape |
| 12044 | &lt;- &quot;\\x&quot; hex hex | 12040 | <- "\\x" hex hex |
| 12045 | / &quot;\\u{&quot; hex+ &quot;}&quot; | 12041 | / "\\u{" hex+ "}" |
| 12046 | / &quot;\\&quot; [nr\\t'&quot;] | 12042 | / "\\" [nr\\t'"] |
| 12047 | char_char | 12043 | char_char |
| 12048 | &lt;- mb_utf8_literal | 12044 | <- mb_utf8_literal |
| 12049 | / char_escape | 12045 | / char_escape |
| 12050 | / ascii_char_not_nl_slash_squote | 12046 | / ascii_char_not_nl_slash_squote |
| 12051 | | 12047 | |
| 12052 | string_char | 12048 | string_char |
| 12053 | &lt;- char_escape | 12049 | <- char_escape |
| 12054 | / [^\\&quot;\n] | 12050 | / [^\\"\n] |
| 12055 | | 12051 | |
| 12056 | container_doc_comment &lt;- ('//!' [^\n]* [ \n]*)+ | 12052 | container_doc_comment <- ('//!' [^\n]* [ \n]*)+ |
| 12057 | doc_comment &lt;- ('///' [^\n]* [ \n]*)+ | 12053 | doc_comment <- ('///' [^\n]* [ \n]*)+ |
| 12058 | line_comment &lt;- '//' ![!/][^\n]* / '////' [^\n]* | 12054 | line_comment <- '//' ![!/][^\n]* / '////' [^\n]* |
| 12059 | line_string &lt;- (&quot;\\\\&quot; [^\n]* [ \n]*)+ | 12055 | line_string <- ("\\\\" [^\n]* [ \n]*)+ |
| 12060 | skip &lt;- ([ \n] / line_comment)* | 12056 | skip <- ([ \n] / line_comment)* |
| 12061 | | 12057 | |
| 12062 | CHAR_LITERAL &lt;- &quot;'&quot; char_char &quot;'&quot; skip | 12058 | CHAR_LITERAL <- "'" char_char "'" skip |
| 12063 | FLOAT | 12059 | FLOAT |
| 12064 | &lt;- &quot;0x&quot; hex_int &quot;.&quot; hex_int ([pP] [-+]? dec_int)? skip | 12060 | <- "0x" hex_int "." hex_int ([pP] [-+]? dec_int)? skip |
| 12065 | / dec_int &quot;.&quot; dec_int ([eE] [-+]? dec_int)? skip | 12061 | / dec_int "." dec_int ([eE] [-+]? dec_int)? skip |
| 12066 | / &quot;0x&quot; hex_int &quot;.&quot;? [pP] [-+]? dec_int skip | 12062 | / "0x" hex_int [pP] [-+]? dec_int skip |
| 12067 | / dec_int &quot;.&quot;? [eE] [-+]? dec_int skip | 12063 | / dec_int [eE] [-+]? dec_int skip |
| 12068 | INTEGER | 12064 | INTEGER |
| 12069 | &lt;- &quot;0b&quot; bin_int skip | 12065 | <- "0b" bin_int skip |
| 12070 | / &quot;0o&quot; oct_int skip | 12066 | / "0o" oct_int skip |
| 12071 | / &quot;0x&quot; hex_int skip | 12067 | / "0x" hex_int skip |
| 12072 | / dec_int skip | 12068 | / dec_int skip |
| 12073 | STRINGLITERALSINGLE &lt;- &quot;\&quot;&quot; string_char* &quot;\&quot;&quot; skip | 12069 | STRINGLITERALSINGLE <- "\"" string_char* "\"" skip |
| 12074 | STRINGLITERAL | 12070 | STRINGLITERAL |
| 12075 | &lt;- STRINGLITERALSINGLE | 12071 | <- STRINGLITERALSINGLE |
| 12076 | / (line_string skip)+ | 12072 | / (line_string skip)+ |
| 12077 | IDENTIFIER | 12073 | IDENTIFIER |
| 12078 | &lt;- !keyword [A-Za-z_] [A-Za-z0-9_]* skip | 12074 | <- !keyword [A-Za-z_] [A-Za-z0-9_]* skip |
| 12079 | / &quot;@\&quot;&quot; string_char* &quot;\&quot;&quot; skip | 12075 | / "@\"" string_char* "\"" skip |
| 12080 | BUILTINIDENTIFIER &lt;- &quot;@&quot;[A-Za-z_][A-Za-z0-9_]* skip | 12076 | BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip |
| 12081 | | 12077 | |
| 12082 | | 12078 | |
| 12083 | AMPERSAND &lt;- '&amp;' ![=] skip | 12079 | AMPERSAND <- '&' ![=] skip |
| 12084 | AMPERSANDEQUAL &lt;- '&amp;=' skip | 12080 | AMPERSANDEQUAL <- '&=' skip |
| 12085 | ASTERISK &lt;- '*' ![*%=] skip | 12081 | ASTERISK <- '*' ![*%=] skip |
| 12086 | ASTERISK2 &lt;- '**' skip | 12082 | ASTERISK2 <- '**' skip |
| 12087 | ASTERISKEQUAL &lt;- '*=' skip | 12083 | ASTERISKEQUAL <- '*=' skip |
| 12088 | ASTERISKPERCENT &lt;- '*%' ![=] skip | 12084 | ASTERISKPERCENT <- '*%' ![=] skip |
| 12089 | ASTERISKPERCENTEQUAL &lt;- '*%=' skip | 12085 | ASTERISKPERCENTEQUAL <- '*%=' skip |
| 12090 | ASTERISKPIPE &lt;- '*|' ![=] skip | 12086 | CARET <- '^' ![=] skip |
| 12091 | ASTERISKPIPEEQUAL &lt;- '*|=' skip | 12087 | CARETEQUAL <- '^=' skip |
| 12092 | CARET &lt;- '^' ![=] skip | 12088 | COLON <- ':' skip |
| 12093 | CARETEQUAL &lt;- '^=' skip | 12089 | COMMA <- ',' skip |
| 12094 | COLON &lt;- ':' skip | 12090 | DOT <- '.' ![*.?] skip |
| 12095 | COMMA &lt;- ',' skip | 12091 | DOT2 <- '..' ![.] skip |
| 12096 | DOT &lt;- '.' ![*.?] skip | 12092 | DOT3 <- '...' skip |
| 12097 | DOT2 &lt;- '..' ![.] skip | 12093 | DOTASTERISK <- '.*' skip |
| 12098 | DOT3 &lt;- '...' skip | 12094 | DOTQUESTIONMARK <- '.?' skip |
| 12099 | DOTASTERISK &lt;- '.*' skip | 12095 | EQUAL <- '=' ![>=] skip |
| 12100 | DOTQUESTIONMARK &lt;- '.?' skip | 12096 | EQUALEQUAL <- '==' skip |
| 12101 | EQUAL &lt;- '=' ![&gt;=] skip | 12097 | EQUALRARROW <- '=>' skip |
| 12102 | EQUALEQUAL &lt;- '==' skip | 12098 | EXCLAMATIONMARK <- '!' ![=] skip |
| 12103 | EQUALRARROW &lt;- '=&gt;' skip | 12099 | EXCLAMATIONMARKEQUAL <- '!=' skip |
| 12104 | EXCLAMATIONMARK &lt;- '!' ![=] skip | 12100 | LARROW <- '<' ![<=] skip |
| 12105 | EXCLAMATIONMARKEQUAL &lt;- '!=' skip | 12101 | LARROW2 <- '<<' ![=] skip |
| 12106 | LARROW &lt;- '&lt;' ![&lt;=] skip | 12102 | LARROW2EQUAL <- '<<=' skip |
| 12107 | LARROW2 &lt;- '&lt;&lt;' ![=] skip | 12103 | LARROWEQUAL <- '<=' skip |
| 12108 | LARROW2PIPE &lt;- '&lt;&lt;|' ![=] skip | 12104 | LBRACE <- '{' skip |
| 12109 | LARROW2PIPEEQUAL &lt;- '&lt;&lt;|=' ![=] skip | 12105 | LBRACKET <- '[' skip |
| 12110 | LARROW2EQUAL &lt;- '&lt;&lt;=' skip | 12106 | LPAREN <- '(' skip |
| 12111 | LARROWEQUAL &lt;- '&lt;=' skip | 12107 | MINUS <- '-' ![%=>] skip |
| 12112 | LBRACE &lt;- '{' skip | 12108 | MINUSEQUAL <- '-=' skip |
| 12113 | LBRACKET &lt;- '[' skip | 12109 | MINUSPERCENT <- '-%' ![=] skip |
| 12114 | LPAREN &lt;- '(' skip | 12110 | MINUSPERCENTEQUAL <- '-%=' skip |
| 12115 | MINUS &lt;- '-' ![%=&gt;] skip | 12111 | MINUSRARROW <- '->' skip |
| 12116 | MINUSEQUAL &lt;- '-=' skip | 12112 | PERCENT <- '%' ![=] skip |
| 12117 | MINUSPERCENT &lt;- '-%' ![=] skip | 12113 | PERCENTEQUAL <- '%=' skip |
| 12118 | MINUSPERCENTEQUAL &lt;- '-%=' skip | 12114 | PIPE <- '|' ![|=] skip |
| 12119 | MINUSPIPE &lt;- '-|' ![=] skip | 12115 | PIPE2 <- '||' skip |
| 12120 | MINUSPIPEEQUAL &lt;- '-|=' skip | 12116 | PIPEEQUAL <- '|=' skip |
| 12121 | MINUSRARROW &lt;- '-&gt;' skip | 12117 | PLUS <- '+' ![%+=] skip |
| 12122 | PERCENT &lt;- '%' ![=] skip | 12118 | PLUS2 <- '++' skip |
| 12123 | PERCENTEQUAL &lt;- '%=' skip | 12119 | PLUSEQUAL <- '+=' skip |
| 12124 | PIPE &lt;- '|' ![|=] skip | 12120 | PLUSPERCENT <- '+%' ![=] skip |
| 12125 | PIPE2 &lt;- '||' skip | 12121 | PLUSPERCENTEQUAL <- '+%=' skip |
| 12126 | PIPEEQUAL &lt;- '|=' skip | 12122 | LETTERC <- 'c' skip |
| 12127 | PLUS &lt;- '+' ![%+=] skip | 12123 | QUESTIONMARK <- '?' skip |
| 12128 | PLUS2 &lt;- '++' skip | 12124 | RARROW <- '>' ![>=] skip |
| 12129 | PLUSEQUAL &lt;- '+=' skip | 12125 | RARROW2 <- '>>' ![=] skip |
| 12130 | PLUSPERCENT &lt;- '+%' ![=] skip | 12126 | RARROW2EQUAL <- '>>=' skip |
| 12131 | PLUSPERCENTEQUAL &lt;- '+%=' skip | 12127 | RARROWEQUAL <- '>=' skip |
| 12132 | PLUSPIPE &lt;- '+|' ![=] skip | 12128 | RBRACE <- '}' skip |
| 12133 | PLUSPIPEEQUAL &lt;- '+|=' skip | 12129 | RBRACKET <- ']' skip |
| 12134 | LETTERC &lt;- 'c' skip | 12130 | RPAREN <- ')' skip |
| 12135 | QUESTIONMARK &lt;- '?' skip | 12131 | SEMICOLON <- ';' skip |
| 12136 | RARROW &lt;- '&gt;' ![&gt;=] skip | 12132 | SLASH <- '/' ![=] skip |
| 12137 | RARROW2 &lt;- '&gt;&gt;' ![=] skip | 12133 | SLASHEQUAL <- '/=' skip |
| 12138 | RARROW2EQUAL &lt;- '&gt;&gt;=' skip | 12134 | TILDE <- '~' skip |
| 12139 | RARROWEQUAL &lt;- '&gt;=' skip | 12135 | |
| 12140 | RBRACE &lt;- '}' skip | 12136 | end_of_word <- ![a-zA-Z0-9_] skip |
| 12141 | RBRACKET &lt;- ']' skip | 12137 | KEYWORD_align <- 'align' end_of_word |
| 12142 | RPAREN &lt;- ')' skip | 12138 | KEYWORD_allowzero <- 'allowzero' end_of_word |
| 12143 | SEMICOLON &lt;- ';' skip | 12139 | KEYWORD_and <- 'and' end_of_word |
| 12144 | SLASH &lt;- '/' ![=] skip | 12140 | KEYWORD_anyframe <- 'anyframe' end_of_word |
| 12145 | SLASHEQUAL &lt;- '/=' skip | 12141 | KEYWORD_anytype <- 'anytype' end_of_word |
| 12146 | TILDE &lt;- '~' skip | 12142 | KEYWORD_asm <- 'asm' end_of_word |
| 12147 | | 12143 | KEYWORD_async <- 'async' end_of_word |
| 12148 | end_of_word &lt;- ![a-zA-Z0-9_] skip | 12144 | KEYWORD_await <- 'await' end_of_word |
| 12149 | KEYWORD_align &lt;- 'align' end_of_word | 12145 | KEYWORD_break <- 'break' end_of_word |
| 12150 | KEYWORD_allowzero &lt;- 'allowzero' end_of_word | 12146 | KEYWORD_callconv <- 'callconv' end_of_word |
| 12151 | KEYWORD_and &lt;- 'and' end_of_word | 12147 | KEYWORD_catch <- 'catch' end_of_word |
| 12152 | KEYWORD_anyframe &lt;- 'anyframe' end_of_word | 12148 | KEYWORD_comptime <- 'comptime' end_of_word |
| 12153 | KEYWORD_anytype &lt;- 'anytype' end_of_word | 12149 | KEYWORD_const <- 'const' end_of_word |
| 12154 | KEYWORD_asm &lt;- 'asm' end_of_word | 12150 | KEYWORD_continue <- 'continue' end_of_word |
| 12155 | KEYWORD_async &lt;- 'async' end_of_word | 12151 | KEYWORD_defer <- 'defer' end_of_word |
| 12156 | KEYWORD_await &lt;- 'await' end_of_word | 12152 | KEYWORD_else <- 'else' end_of_word |
| 12157 | KEYWORD_break &lt;- 'break' end_of_word | 12153 | KEYWORD_enum <- 'enum' end_of_word |
| 12158 | KEYWORD_callconv &lt;- 'callconv' end_of_word | 12154 | KEYWORD_errdefer <- 'errdefer' end_of_word |
| 12159 | KEYWORD_catch &lt;- 'catch' end_of_word | 12155 | KEYWORD_error <- 'error' end_of_word |
| 12160 | KEYWORD_comptime &lt;- 'comptime' end_of_word | 12156 | KEYWORD_export <- 'export' end_of_word |
| 12161 | KEYWORD_const &lt;- 'const' end_of_word | 12157 | KEYWORD_extern <- 'extern' end_of_word |
| 12162 | KEYWORD_continue &lt;- 'continue' end_of_word | 12158 | KEYWORD_fn <- 'fn' end_of_word |
| 12163 | KEYWORD_defer &lt;- 'defer' end_of_word | 12159 | KEYWORD_for <- 'for' end_of_word |
| 12164 | KEYWORD_else &lt;- 'else' end_of_word | 12160 | KEYWORD_if <- 'if' end_of_word |
| 12165 | KEYWORD_enum &lt;- 'enum' end_of_word | 12161 | KEYWORD_inline <- 'inline' end_of_word |
| 12166 | KEYWORD_errdefer &lt;- 'errdefer' end_of_word | 12162 | KEYWORD_noalias <- 'noalias' end_of_word |
| 12167 | KEYWORD_error &lt;- 'error' end_of_word | 12163 | KEYWORD_nosuspend <- 'nosuspend' end_of_word |
| 12168 | KEYWORD_export &lt;- 'export' end_of_word | 12164 | KEYWORD_noinline <- 'noinline' end_of_word |
| 12169 | KEYWORD_extern &lt;- 'extern' end_of_word | 12165 | KEYWORD_opaque <- 'opaque' end_of_word |
| 12170 | KEYWORD_fn &lt;- 'fn' end_of_word | 12166 | KEYWORD_or <- 'or' end_of_word |
| 12171 | KEYWORD_for &lt;- 'for' end_of_word | 12167 | KEYWORD_orelse <- 'orelse' end_of_word |
| 12172 | KEYWORD_if &lt;- 'if' end_of_word | 12168 | KEYWORD_packed <- 'packed' end_of_word |
| 12173 | KEYWORD_inline &lt;- 'inline' end_of_word | 12169 | KEYWORD_pub <- 'pub' end_of_word |
| 12174 | KEYWORD_noalias &lt;- 'noalias' end_of_word | 12170 | KEYWORD_resume <- 'resume' end_of_word |
| 12175 | KEYWORD_nosuspend &lt;- 'nosuspend' end_of_word | 12171 | KEYWORD_return <- 'return' end_of_word |
| 12176 | KEYWORD_noinline &lt;- 'noinline' end_of_word | 12172 | KEYWORD_linksection <- 'linksection' end_of_word |
| 12177 | KEYWORD_opaque &lt;- 'opaque' end_of_word | 12173 | KEYWORD_struct <- 'struct' end_of_word |
| 12178 | KEYWORD_or &lt;- 'or' end_of_word | 12174 | KEYWORD_suspend <- 'suspend' end_of_word |
| 12179 | KEYWORD_orelse &lt;- 'orelse' end_of_word | 12175 | KEYWORD_switch <- 'switch' end_of_word |
| 12180 | KEYWORD_packed &lt;- 'packed' end_of_word | 12176 | KEYWORD_test <- 'test' end_of_word |
| 12181 | KEYWORD_pub &lt;- 'pub' end_of_word | 12177 | KEYWORD_threadlocal <- 'threadlocal' end_of_word |
| 12182 | KEYWORD_resume &lt;- 'resume' end_of_word | 12178 | KEYWORD_try <- 'try' end_of_word |
| 12183 | KEYWORD_return &lt;- 'return' end_of_word | 12179 | KEYWORD_union <- 'union' end_of_word |
| 12184 | KEYWORD_linksection &lt;- 'linksection' end_of_word | 12180 | KEYWORD_unreachable <- 'unreachable' end_of_word |
| 12185 | KEYWORD_struct &lt;- 'struct' end_of_word | 12181 | KEYWORD_usingnamespace <- 'usingnamespace' end_of_word |
| 12186 | KEYWORD_suspend &lt;- 'suspend' end_of_word | 12182 | KEYWORD_var <- 'var' end_of_word |
| 12187 | KEYWORD_switch &lt;- 'switch' end_of_word | 12183 | KEYWORD_volatile <- 'volatile' end_of_word |
| 12188 | KEYWORD_test &lt;- 'test' end_of_word | 12184 | KEYWORD_while <- 'while' end_of_word |
| 12189 | KEYWORD_threadlocal &lt;- 'threadlocal' end_of_word | 12185 | |
| 12190 | KEYWORD_try &lt;- 'try' end_of_word | 12186 | keyword <- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe |
| 12191 | KEYWORD_union &lt;- 'union' end_of_word | | |
| 12192 | KEYWORD_unreachable &lt;- 'unreachable' end_of_word | | |
| 12193 | KEYWORD_usingnamespace &lt;- 'usingnamespace' end_of_word | | |
| 12194 | KEYWORD_var &lt;- 'var' end_of_word | | |
| 12195 | KEYWORD_volatile &lt;- 'volatile' end_of_word | | |
| 12196 | KEYWORD_while &lt;- 'while' end_of_word | | |
| 12197 | | | |
| 12198 | keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe | | |
| 12199 | / KEYWORD_anytype / KEYWORD_asm / KEYWORD_async / KEYWORD_await | 12187 | / KEYWORD_anytype / KEYWORD_asm / KEYWORD_async / KEYWORD_await |
| 12200 | / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime | 12188 | / KEYWORD_break / KEYWORD_callconv / KEYWORD_catch / KEYWORD_comptime |
| 12201 | / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else | 12189 | / KEYWORD_const / KEYWORD_continue / KEYWORD_defer / KEYWORD_else |
| ... | @@ -12204,9 +12192,8 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe | ... | @@ -12204,9 +12192,8 @@ keyword &lt;- KEYWORD_align / KEYWORD_allowzero / KEYWORD_and / KEYWORD_anyframe |
| 12204 | / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline | 12192 | / KEYWORD_inline / KEYWORD_noalias / KEYWORD_nosuspend / KEYWORD_noinline |
| 12205 | / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed | 12193 | / KEYWORD_opaque / KEYWORD_or / KEYWORD_orelse / KEYWORD_packed |
| 12206 | / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection | 12194 | / KEYWORD_pub / KEYWORD_resume / KEYWORD_return / KEYWORD_linksection |
| 12207 | / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch | 12195 | / KEYWORD_struct / KEYWORD_suspend / KEYWORD_switch / KEYWORD_test |
| 12208 | / KEYWORD_test / KEYWORD_threadlocal / KEYWORD_try | 12196 | / KEYWORD_threadlocal / KEYWORD_try / KEYWORD_union / KEYWORD_unreachable |
| 12209 | / KEYWORD_union / KEYWORD_unreachable | | |
| 12210 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while | 12197 | / KEYWORD_usingnamespace / KEYWORD_var / KEYWORD_volatile / KEYWORD_while |
| 12211 | {#end_syntax_block#} | 12198 | {#end_syntax_block#} |
| 12212 | {#header_close#} | 12199 | {#header_close#} |