Commit 52de06c3b0
Changed files (2)
lib
std
zig
doc/langref.html.in
@@ -7804,11 +7804,11 @@ fn readU32Be() u32 {}
{#header_close#}
{#header_open|Grammar#}
- {#syntax_block|peg|grammar.y#}
-Root <- skip container_doc_comment? ContainerMembers eof
+ {#syntax_block|peg|grammar.peg#}
+Root <- skip ContainerMembers eof
# *** Top level ***
-ContainerMembers <- ContainerDeclaration* (ContainerField COMMA)* (ContainerField / ContainerDeclaration*)
+ContainerMembers <- container_doc_comment? ContainerDeclaration* (ContainerField COMMA)* (ContainerField / ContainerDeclaration*)
ContainerDeclaration <- TestDecl / ComptimeDecl / doc_comment? KEYWORD_pub? Decl
@@ -7837,7 +7837,6 @@ Statement
/ KEYWORD_errdefer Payload? BlockExprStatement
/ IfStatement
/ LabeledStatement
- / SwitchExpr
/ VarDeclExprStatement
ComptimeStatement
@@ -7848,7 +7847,7 @@ IfStatement
<- IfPrefix BlockExpr ( KEYWORD_else Payload? Statement )?
/ IfPrefix AssignExpr ( SEMICOLON / KEYWORD_else Payload? Statement )
-LabeledStatement <- BlockLabel? (Block / LoopStatement)
+LabeledStatement <- BlockLabel? (Block / LoopStatement / SwitchExpr)
LoopStatement <- KEYWORD_inline? (ForStatement / WhileStatement)
@@ -7902,7 +7901,7 @@ PrimaryExpr
/ KEYWORD_break BreakLabel? Expr?
/ KEYWORD_comptime Expr
/ KEYWORD_nosuspend Expr
- / KEYWORD_continue BreakLabel?
+ / KEYWORD_continue BreakLabel? Expr?
/ KEYWORD_resume Expr
/ KEYWORD_return Expr?
/ BlockLabel? LoopExpr
@@ -7952,7 +7951,6 @@ PrimaryTypeExpr
/ KEYWORD_anyframe
/ KEYWORD_unreachable
/ STRINGLITERAL
- / SwitchExpr
ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto
@@ -7965,6 +7963,7 @@ IfTypeExpr <- IfPrefix TypeExpr (KEYWORD_else Payload? TypeExpr)?
LabeledTypeExpr
<- BlockLabel Block
/ BlockLabel? LoopTypeExpr
+ / BlockLabel? SwitchExpr
LoopTypeExpr <- KEYWORD_inline? (ForTypeExpr / WhileTypeExpr)
@@ -8134,7 +8133,7 @@ PtrTypeStart
ArrayTypeStart <- LBRACKET Expr (COLON Expr)? RBRACKET
# ContainerDecl specific
-ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE
+ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE
ContainerDeclType
<- KEYWORD_struct (LPAREN Expr RPAREN)?
@@ -8154,8 +8153,6 @@ AsmOutputList <- (AsmOutputItem COMMA)* AsmOutputItem?
AsmInputList <- (AsmInputItem COMMA)* AsmInputItem?
-StringList <- (STRINGLITERAL COMMA)* STRINGLITERAL?
-
ParamDeclList <- (ParamDecl COMMA)* ParamDecl?
ExprList <- (Expr COMMA)* Expr?
@@ -8202,7 +8199,7 @@ oxC2_oxDF <- [\302-\337]
# [0xF1,0xF3] [0x80,0xBF] [0x80,0xBF] [0x80,0xBF]
# 0xF4 [0x80,0x8F] [0x80,0xBF] [0x80,0xBF]
-mb_utf8_literal <-
+multibyte_utf8 <-
oxF4 ox80_ox8F ox80_oxBF ox80_oxBF
/ oxF1_oxF3 ox80_oxBF ox80_oxBF ox80_oxBF
/ oxF0 ox90_0xBF ox80_oxBF ox80_oxBF
@@ -8212,46 +8209,47 @@ 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]
+non_control_ascii <- [\040-\176]
char_escape
<- "\\x" hex hex
/ "\\u{" hex+ "}"
/ "\\" [nr\\t'"]
char_char
- <- mb_utf8_literal
+ <- multibyte_utf8
/ char_escape
- / ascii_char_not_nl_slash_squote
+ / ![\\'\n] non_control_ascii
string_char
- <- char_escape
- / [^\\"\n]
+ <- multibyte_utf8
+ / char_escape
+ / ![\\"\n] non_control_ascii
container_doc_comment <- ('//!' [^\n]* [ \n]* skip)+
doc_comment <- ('///' [^\n]* [ \n]* skip)+
line_comment <- '//' ![!/][^\n]* / '////' [^\n]*
-line_string <- ("\\\\" [^\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
+ <- '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
/ (line_string skip)+
IDENTIFIER
<- !keyword [A-Za-z_] [A-Za-z0-9_]* skip
- / "@" STRINGLITERALSINGLE
-BUILTINIDENTIFIER <- "@"[A-Za-z_][A-Za-z0-9_]* skip
+ / '@' STRINGLITERALSINGLE
+BUILTINIDENTIFIER <- '@'[A-Za-z_][A-Za-z0-9_]* skip
AMPERSAND <- '&' ![=] skip
lib/std/zig/Parse.zig
@@ -188,7 +188,7 @@ fn failMsg(p: *Parse, msg: Ast.Error) error{ ParseError, OutOfMemory } {
return error.ParseError;
}
-/// Root <- skip container_doc_comment? ContainerMembers eof
+/// Root <- skip ContainerMembers eof
pub fn parseRoot(p: *Parse) !void {
// Root node must be index 0.
p.nodes.appendAssumeCapacity(.{
@@ -227,7 +227,7 @@ pub fn parseZon(p: *Parse) !void {
p.nodes.items(.data)[0] = .{ .node = node_index };
}
-/// ContainerMembers <- ContainerDeclaration* (ContainerField COMMA)* (ContainerField / ContainerDeclaration*)
+/// ContainerMembers <- container_doc_comment? ContainerDeclaration* (ContainerField COMMA)* (ContainerField / ContainerDeclaration*)
///
/// ContainerDeclaration <- TestDecl / ComptimeDecl / doc_comment? KEYWORD_pub? Decl
///
@@ -2423,7 +2423,7 @@ fn parseSuffixExpr(p: *Parse) !?Node.Index {
///
/// ContainerDecl <- (KEYWORD_extern / KEYWORD_packed)? ContainerDeclAuto
///
-/// ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE
+/// ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE
///
/// InitList
/// <- LBRACE FieldInit (COMMA FieldInit)* COMMA? RBRACE
@@ -3317,7 +3317,7 @@ fn parseSuffixOp(p: *Parse, lhs: Node.Index) !?Node.Index {
/// Caller must have already verified the first token.
///
-/// ContainerDeclAuto <- ContainerDeclType LBRACE container_doc_comment? ContainerMembers RBRACE
+/// ContainerDeclAuto <- ContainerDeclType LBRACE ContainerMembers RBRACE
///
/// ContainerDeclType
/// <- KEYWORD_struct (LPAREN Expr RPAREN)?