From f269d90bf201ee97c42ce625376883866ad77332 Mon Sep 17 00:00:00 2001
From: Robert Griesemer
-The grammar is compact and simple to parse, allowing for easy analysis +The syntax is compact and simple to parse, allowing for easy analysis by automatic tools such as integrated development environments.
-The syntax is specified using Extended Backus-Naur Form (EBNF): +The syntax is specified using a +variant +of Extended Backus-Naur Form (EBNF):
+Syntax = { Production } . Production = production_name "=" [ Expression ] "." . -Expression = Alternative { "|" Alternative } . -Alternative = Term { Term } . -Term = production_name | token [ "â¦" token ] | Group | Option | Repetition . +Expression = Term { "|" Term } . +Term = Factor { Factor } . +Factor = production_name | token [ "â¦" token ] | Group | Option | Repetition . Group = "(" Expression ")" . Option = "[" Expression "]" . Repetition = "{" Expression "}" . @@ -53,7 +56,7 @@ operators, in increasing precedence:
-Lowercase production names are used to identify lexical tokens.
+Lowercase production names are used to identify lexical (terminal) tokens.
Non-terminals are in CamelCase. Lexical tokens are enclosed in
double quotes ""
or back quotes ``
.
-The formal grammar uses semicolons ";"
as terminators in
+The formal syntax uses semicolons ";"
as terminators in
a number of productions. Go programs may omit most of these semicolons
using the following two rules:
The LiteralType's core type T
must be a struct, array, slice, or map type
-(the grammar enforces this constraint except when the type is given
+(the syntax enforces this constraint except when the type is given
as a TypeName).
The types of the elements and keys must be assignable
to the respective field, element, and key types of type T
;
--
2.50.0