1
0
mirror of https://github.com/golang/go synced 2024-11-11 18:31:38 -07:00

- removed CompoundStat in favor of Block

SVN=112111
This commit is contained in:
Robert Griesemer 2008-03-11 14:37:16 -07:00
parent 8b212f67ff
commit 213702a3e6

View File

@ -210,11 +210,11 @@ productions are in CamelCase.
Common productions
----
IdentifierList = identifier { ',' identifier }.
ExpressionList = Expression { ',' Expression }.
IdentifierList = identifier { ',' identifier } .
ExpressionList = Expression { ',' Expression } .
QualifiedIdent = [ PackageName '.' ] identifier.
PackageName = identifier.
QualifiedIdent = [ PackageName '.' ] identifier .
PackageName = identifier .
Source code representation
@ -713,7 +713,11 @@ Function Literals
Function literals represent anonymous functions.
FunctionLit = FunctionType Block .
Block = CompoundStat .
Block = '{' [ StatementList [ ';' ] ] '}' .
The scope of an identifier declared within a block extends
from the declaration of the identifier (that is, the position
immediately after the identifier) to the end of the block.
A function literal can be invoked
or assigned to a variable of the corresponding function pointer type.
@ -1094,7 +1098,7 @@ Statements control execution.
[ LabelDecl ] ( StructuredStat | UnstructuredStat ) .
StructuredStat =
CompoundStat | IfStat | SwitchStat | ForStat | RangeStat .
Block | IfStat | SwitchStat | ForStat | RangeStat .
UnstructuredStat =
Declaration |
@ -1135,20 +1139,6 @@ IncDec statements
Note that ++ and -- are not operators for expressions.
Compound statements
----
CompoundStat = '{' [ StatementList [ ";" ] ] '}' .
{
x := 1;
f(x);
}
The scope of an Identifier declared within a compound statement extends
from the declaration to the end of the compound statement.
Assignments
----