※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

3. 字句構造

3.1. Unicode

3.2. 字句変換

Unicode文字の未加工ストリームは以下の3ステップで行われる字句変換(lexical translations)によってトークンと呼ばれるものの列に変換されます。順に説明すると:

  1. Unicode文字の未加工ストリーム内のUnicodeエスケープを対応するUnicode文字へ変換します。Unicodeエスケープは\uxxxxで記述され、ここでxxxxは16進数、符号化された値がxxxxであるUTF-16コード単位を表します。この変換ステップがあることによってあらゆるプログラムをASCII文字のみによって記述することが可能です。
  2. ステップ1の結果を、入力文字と行終端子の列に変換します。
  3. ステップ2の結果から、空白コメントを取り除き、構文文法で使用する終端記号であるトークンで構成される入力要素の列へと変換します。

個々のステップは最長一致によって変換が行われます。最長一致変換では最終的に正しいプログラムにならない場合でも、ステップの順序を途中で変えて行うことはありません。

このように、入力文字a--ba--bトークン化されます。これは文法的に正しいプログラムではりません。a--bとトークン化されれば文法的に正しいプログラムですがこうはトークン化されません。

3.3. Unicodeエスケープ

3.4. 行終端子

3.5. 入力要素とトークン

3.6. 空白

3.7. コメント

3.8. 識別子

3.9. キーワード

3.10. リテラル

3.11. 分離子

3.12. 演算子