aboutsummaryrefslogtreecommitdiff
path: root/doc/go_spec.html
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2024-12-12 11:28:09 -0800
committerGopher Robot <gobot@golang.org>2024-12-12 15:39:44 -0800
commit80a2982a801eaedc416d59801ac8fefcf1e4acf5 (patch)
treeacd792010d2dd6ca8ccc5b5c1412a08abe2b2baa /doc/go_spec.html
parent38e9a671d7648227f4f5b133e2e6452491cccebf (diff)
downloadgo-80a2982a801eaedc416d59801ac8fefcf1e4acf5.tar.xz
spec: align EBNF rules consistently (cosmetic change)
Change-Id: Ib1b14b8880c6de5606f7f425a5fc1c8749d8a4b7 Reviewed-on: https://go-review.googlesource.com/c/go/+/635799 TryBot-Bypass: Robert Griesemer <gri@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> Reviewed-by: Robert Griesemer <gri@google.com> Auto-Submit: Robert Griesemer <gri@google.com>
Diffstat (limited to 'doc/go_spec.html')
-rw-r--r--doc/go_spec.html126
1 files changed, 62 insertions, 64 deletions
diff --git a/doc/go_spec.html b/doc/go_spec.html
index 31bea3713a..282f6cde0c 100644
--- a/doc/go_spec.html
+++ b/doc/go_spec.html
@@ -1,6 +1,6 @@
<!--{
"Title": "The Go Programming Language Specification",
- "Subtitle": "Language version go1.24 (Nov 20, 2024)",
+ "Subtitle": "Language version go1.24 (Dec 12, 2024)",
"Path": "/ref/spec"
}-->
@@ -810,12 +810,12 @@ from existing types.
</p>
<pre class="ebnf">
-Type = TypeName [ TypeArgs ] | TypeLit | "(" Type ")" .
-TypeName = identifier | QualifiedIdent .
-TypeArgs = "[" TypeList [ "," ] "]" .
-TypeList = Type { "," Type } .
-TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
- SliceType | MapType | ChannelType .
+Type = TypeName [ TypeArgs ] | TypeLit | "(" Type ")" .
+TypeName = identifier | QualifiedIdent .
+TypeArgs = "[" TypeList [ "," ] "]" .
+TypeList = Type { "," Type } .
+TypeLit = ArrayType | StructType | PointerType | FunctionType | InterfaceType |
+ SliceType | MapType | ChannelType .
</pre>
<p>
@@ -1222,12 +1222,12 @@ is <code>nil</code>.
</p>
<pre class="ebnf">
-FunctionType = "func" Signature .
-Signature = Parameters [ Result ] .
-Result = Parameters | Type .
-Parameters = "(" [ ParameterList [ "," ] ] ")" .
-ParameterList = ParameterDecl { "," ParameterDecl } .
-ParameterDecl = [ IdentifierList ] [ "..." ] Type .
+FunctionType = "func" Signature .
+Signature = Parameters [ Result ] .
+Result = Parameters | Type .
+Parameters = "(" [ ParameterList [ "," ] ] ")" .
+ParameterList = ParameterDecl { "," ParameterDecl } .
+ParameterDecl = [ IdentifierList ] [ "..." ] Type .
</pre>
<p>
@@ -1634,8 +1634,8 @@ The value of an uninitialized map is <code>nil</code>.
</p>
<pre class="ebnf">
-MapType = "map" "[" KeyType "]" ElementType .
-KeyType = Type .
+MapType = "map" "[" KeyType "]" ElementType .
+KeyType = Type .
</pre>
<p>
@@ -2176,7 +2176,7 @@ within matching brace brackets.
</p>
<pre class="ebnf">
-Block = "{" StatementList "}" .
+Block = "{" StatementList "}" .
StatementList = { Statement ";" } .
</pre>
@@ -2233,8 +2233,8 @@ and like the blank identifier it does not introduce a new binding.
</p>
<pre class="ebnf">
-Declaration = ConstDecl | TypeDecl | VarDecl .
-TopLevelDecl = Declaration | FunctionDecl | MethodDecl .
+Declaration = ConstDecl | TypeDecl | VarDecl .
+TopLevelDecl = Declaration | FunctionDecl | MethodDecl .
</pre>
<p>
@@ -2679,9 +2679,9 @@ in square brackets rather than parentheses
</p>
<pre class="ebnf">
-TypeParameters = "[" TypeParamList [ "," ] "]" .
-TypeParamList = TypeParamDecl { "," TypeParamDecl } .
-TypeParamDecl = IdentifierList TypeConstraint .
+TypeParameters = "[" TypeParamList [ "," ] "]" .
+TypeParamList = TypeParamDecl { "," TypeParamDecl } .
+TypeParamDecl = IdentifierList TypeConstraint .
</pre>
<p>
@@ -2869,8 +2869,8 @@ binds corresponding identifiers to them, and gives each a type and an initial va
</p>
<pre class="ebnf">
-VarDecl = "var" ( VarSpec | "(" { VarSpec ";" } ")" ) .
-VarSpec = IdentifierList ( Type [ "=" ExpressionList ] | "=" ExpressionList ) .
+VarDecl = "var" ( VarSpec | "(" { VarSpec ";" } ")" ) .
+VarSpec = IdentifierList ( Type [ "=" ExpressionList ] | "=" ExpressionList ) .
</pre>
<pre>
@@ -3210,15 +3210,15 @@ Each element may optionally be preceded by a corresponding key.
</p>
<pre class="ebnf">
-CompositeLit = LiteralType LiteralValue .
-LiteralType = StructType | ArrayType | "[" "..." "]" ElementType |
- SliceType | MapType | TypeName [ TypeArgs ] .
-LiteralValue = "{" [ ElementList [ "," ] ] "}" .
-ElementList = KeyedElement { "," KeyedElement } .
-KeyedElement = [ Key ":" ] Element .
-Key = FieldName | Expression | LiteralValue .
-FieldName = identifier .
-Element = Expression | LiteralValue .
+CompositeLit = LiteralType LiteralValue .
+LiteralType = StructType | ArrayType | "[" "..." "]" ElementType |
+ SliceType | MapType | TypeName [ TypeArgs ] .
+LiteralValue = "{" [ ElementList [ "," ] ] "}" .
+ElementList = KeyedElement { "," KeyedElement } .
+KeyedElement = [ Key ":" ] Element .
+Key = FieldName | Expression | LiteralValue .
+FieldName = identifier .
+Element = Expression | LiteralValue .
</pre>
<p>
@@ -3450,22 +3450,21 @@ Primary expressions are the operands for unary and binary expressions.
</p>
<pre class="ebnf">
-PrimaryExpr =
- Operand |
- Conversion |
- MethodExpr |
- PrimaryExpr Selector |
- PrimaryExpr Index |
- PrimaryExpr Slice |
- PrimaryExpr TypeAssertion |
- PrimaryExpr Arguments .
+PrimaryExpr = Operand |
+ Conversion |
+ MethodExpr |
+ PrimaryExpr Selector |
+ PrimaryExpr Index |
+ PrimaryExpr Slice |
+ PrimaryExpr TypeAssertion |
+ PrimaryExpr Arguments .
-Selector = "." identifier .
-Index = "[" Expression [ "," ] "]" .
-Slice = "[" [ Expression ] ":" [ Expression ] "]" |
- "[" [ Expression ] ":" Expression ":" Expression "]" .
-TypeAssertion = "." "(" Type ")" .
-Arguments = "(" [ ( ExpressionList | Type [ "," ExpressionList ] ) [ "..." ] [ "," ] ] ")" .
+Selector = "." identifier .
+Index = "[" Expression [ "," ] "]" .
+Slice = "[" [ Expression ] ":" [ Expression ] "]" |
+ "[" [ Expression ] ":" Expression ":" Expression "]" .
+TypeAssertion = "." "(" Type ")" .
+Arguments = "(" [ ( ExpressionList | Type [ "," ExpressionList ] ) [ "..." ] [ "," ] ] ")" .
</pre>
@@ -3638,8 +3637,8 @@ argument that is the receiver of the method.
</p>
<pre class="ebnf">
-MethodExpr = ReceiverType "." MethodName .
-ReceiverType = Type .
+MethodExpr = ReceiverType "." MethodName .
+ReceiverType = Type .
</pre>
<p>
@@ -5916,11 +5915,10 @@ Statements control execution.
</p>
<pre class="ebnf">
-Statement =
- Declaration | LabeledStmt | SimpleStmt |
- GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt |
- FallthroughStmt | Block | IfStmt | SwitchStmt | SelectStmt | ForStmt |
- DeferStmt .
+Statement = Declaration | LabeledStmt | SimpleStmt |
+ GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt |
+ FallthroughStmt | Block | IfStmt | SwitchStmt | SelectStmt | ForStmt |
+ DeferStmt .
SimpleStmt = EmptyStmt | ExpressionStmt | SendStmt | IncDecStmt | Assignment | ShortVarDecl .
</pre>
@@ -6132,7 +6130,7 @@ matching number of variables.
<pre class="ebnf">
Assignment = ExpressionList assign_op ExpressionList .
-assign_op = [ add_op | mul_op ] "=" .
+assign_op = [ add_op | mul_op ] "=" .
</pre>
<p>
@@ -6548,7 +6546,7 @@ The iteration may be controlled by a single condition, a "for" clause, or a "ran
</p>
<pre class="ebnf">
-ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
+ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .
</pre>
@@ -6580,8 +6578,8 @@ an increment or decrement statement. The init statement may be a
<pre class="ebnf">
ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .
-InitStmt = SimpleStmt .
-PostStmt = SimpleStmt .
+InitStmt = SimpleStmt .
+PostStmt = SimpleStmt .
</pre>
<pre>
@@ -7909,7 +7907,7 @@ types, variables, and constants.
</p>
<pre class="ebnf">
-SourceFile = PackageClause ";" { ImportDecl ";" } { TopLevelDecl ";" } .
+SourceFile = PackageClause ";" { ImportDecl ";" } { TopLevelDecl ";" } .
</pre>
<h3 id="Package_clause">Package clause</h3>
@@ -7920,8 +7918,8 @@ to which the file belongs.
</p>
<pre class="ebnf">
-PackageClause = "package" PackageName .
-PackageName = identifier .
+PackageClause = "package" PackageName .
+PackageName = identifier .
</pre>
<p>
@@ -7950,9 +7948,9 @@ that specifies the package to be imported.
</p>
<pre class="ebnf">
-ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
-ImportSpec = [ "." | PackageName ] ImportPath .
-ImportPath = string_lit .
+ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
+ImportSpec = [ "." | PackageName ] ImportPath .
+ImportPath = string_lit .
</pre>
<p>