表記法
構文は拡張バッカス・ナウア記法(EBNF)の変種を使用して指定されています:
Syntax = { Production } .
Production = production_name "=" [ Expression ] "." .
Expression = Term { "|" Term } .
Term = Factor { Factor } .
Factor = production_name | token [ "…" token ] | Group | Option | Repetition .
Group = "(" Expression ")" .
Option = "[" Expression "]" .
Repetition = "{" Expression "}" .
プロダクションは項から構築された式であり、以下の演算子を優先度の低い順に使用します:
| 選択肢
() グループ化
[] オプション(0または1回)
{} 繰り返し(0からn回)
小文字のプロダクション名は字句(終端)トークンを識別するために使用されます。非終端記号はCamelCaseで表記されます。字句トークンは二重引用符 ""
またはバッククォート ``
で囲まれています。
a … b
の形式は、a
から b
までの文字の集合を選択肢として表します。水平省略記号 …
は、この仕様書の他の場所でも、さらに指定されていないさまざまな列挙やコードスニペットを非公式に示すために使用されています。文字 …
(3つの文字 ...
とは対照的に)はGo言語のトークンではありません。
Go 1.xx 形式のリンクは、説明されている言語機能(またはその一部)が言語バージョン1.xxで変更または追加されたことを示し、したがって最低でもそのバージョンが必要であることを示します。詳細については、付録のリンクされたセクションを参照してください。