言語仕様
- Goの言語仕様における表現方法:EBNF - Wikipedia
 - Template:General Category (Unicode) - Wikipedia
 
Lexical elements
Token
- identifiers
 - keywords
 - operators and punctuation
 - literals
 
ホワイトスペース(スペース(U+0020)、水平タブ(U+0009)、キャリッジリターン(U+000D)、ニューライン(U+000A))は、トークンを分離する場合を除き、無視されます。
また、開業やファイルの終端があるとセミコロンが挿入されることがある。
Semicolon
生成物の終端にセミコロンを使用している。ただし、以下のルールでセミコロンを省略できる。
- 以下のトークンであれば、行の最後のトークンの直後に自動的にセミコロンが挿入される
- identifiers
 - 整数、浮動小数点、虚数、ルーン、または文字列リテラル
 - break、continue、fallthrough、returnのいずれかのキーワード
 - 演算子および句読点の中の++、–、)、 ] 、 } のいずれか。
 
 - 文を1行にまとめるために、)や}で閉じる前のセミコロンを省略できる
 
Identifiers
変数や型などのプログラムの実態をあらわす。identifier = letter { letter | unicode_digit } .
Keywords
予約済みのキーワード
 break        default      func         interface    select
 case         defer        go           map          struct
 chan         else         goto         package      switch
 const        fallthrough  if           range        type
 continue     for          import       return       var