Swift 5.8 日本語化計画 : Swift 5.8
言語リファレンスについて
本書のこの部分は、Swift プログラミング言語の正式な文法を説明しています。ここで説明する文法は、より詳細に言語を理解することを助ける事を意図したものであり、直接パーサー (文法解析器) やコンパイラを実装できるようにするためのものではありません。
Swift 言語は、比較的小さく、と言うのも Swift コードで事実上どこでも現れる多くの一般的な型、関数、および演算子が、Swift の標準ライブラリで実際に定義されているからです。しかし、これらの型、関数、演算子は、Swift 言語自体 の一部ではなく、これらはこの本のこの部分における議論やコード例で広く使用されています。
文法の読み方
Swift プログラミング言語の正式な文法を記述するために使用される表記法は、いくつかの慣例に従います:
- 矢印 (→) は、文法の生成をマークするために使用され、"から成る" と読み取る事ができます。
- 構文上のカテゴリは イタリック 体で示され、文法の生成規則の両側に表れます。
- リテラルの単語や句読点は、boldface constant width (一定幅の太字) テキストで示され、文法生成規則の右辺のみに表れます。
- 代替の文法生成は、縦棒 (|) で区切られます。代替の生成が簡単に読むには長すぎる場合、それらは新しい行に複数の文法生成規則で分割されます。
- いくつかの場合には、標準フォントのテキストが文法生成規則の右辺を記述するために使用されます。
- optional の構文カテゴリとリテラルは、後続の疑問符、? でマークされています。
例として、ゲッタ・セッタ・ブロックの文法は以下のように定義されます。
getter-setter-block → { getter-clause setter-clause ? } | { setter-clause getter-clause }
この定義は、ゲッタ・セッタ・ブロックが中括弧で囲まれた optional のセッタ句が続くゲッタ句か、または 中括弧で囲まれたゲッタ句が続くセッタ句、で構成できることを示しています。上記の文法生成は、以下の 2 つの生成と同等であり、代替が明示的に記述されています。
getter-setter-block → { getter-clause setter-clause ? }
getter-setter-block → { setter-clause getter-clause }
前:高度な演算子 次:語彙の構造
トップへ
トップへ
トップへ
トップへ