akios @ ウィキ
3.2. 字句変換
最終更新:
akios
-
view
3. 字句構造
3.1. Unicode
3.2. 字句変換
Unicode文字の未加工ストリームは以下の3ステップで行われる字句変換(lexical translations)によってトークンと呼ばれるものの列に変換されます。順に説明すると:
- Unicode文字の未加工ストリーム内のUnicodeエスケープを対応するUnicode文字へ変換します。Unicodeエスケープは\uxxxxで記述され、ここでxxxxは16進数、符号化された値がxxxxであるUTF-16コード単位を表します。この変換ステップがあることによってあらゆるプログラムをASCII文字のみによって記述することが可能です。
- ステップ1の結果を、入力文字と行終端子の列に変換します。
- ステップ2の結果から、空白とコメントを取り除き、構文文法で使用する終端記号であるトークンで構成される入力要素の列へと変換します。
個々のステップは最長一致によって変換が行われます。最長一致変換では最終的に正しいプログラムにならない場合でも、ステップの順序を途中で変えて行うことはありません。
このように、入力文字a--bはa、--、bとトークン化されます。これは文法的に正しいプログラムではりません。a、-、-、bとトークン化されれば文法的に正しいプログラムですがこうはトークン化されません。