From: Robert Griesemer 
-Statement = { Label ":" } UnlabeledStatement .
-Label     = identifier .
-UnlabeledStatement =
-	Declaration | EmptyStat |
+Statement =
+	Declaration | EmptyStat | LabeledStat |
 	SimpleStat | GoStat | ReturnStat | BreakStat | ContinueStat | GotoStat |
 	FallthroughStat | Block | IfStat | SwitchStat | SelectStat | ForStat |
 	DeferStat .
 
-SimpleStat =
-	ExpressionStat | IncDecStat | Assignment | SimpleVarDecl .
+SimpleStat = ExpressionStat | IncDecStat | Assignment | SimpleVarDecl .
 
 StatementList = Statement { Separator Statement } .
 Separator     = [ ";" ]
@@ -2936,14 +2933,6 @@ which may be omitted only if the previous statement:
 	    (including "switch" and "select" statements).
 
 
-
-A labeled statement may be the target of a goto,
-break or continue statement.
-
-
-
-Error: log.Fatal("error encountered")
-
 
 Empty statements
 
@@ -2961,6 +2950,23 @@ adding an empty statement.
 
 
 
+Labeled statements
+
+
+A labeled statement may be the target of a goto,
+break or continue statement.
+
+
+
+LabeledStat = Label ":" Statement .
+Label       = identifier .
+
+
+
+Error: log.Fatal("error encountered")
+
+
+
 Expression statements