「3.2. 字句変換」の編集履歴(バックアップ)一覧はこちら
「3.2. 字句変換」(2012/09/04 (火) 12:32:46) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*[[3. 字句構造]]
**[[3.1. Unicode]]
**3.2. 字句変換
Unicode文字の未変換ストリームは以下の3ステップで行われる字句変換(lexical translations)によってトークンと呼ばれるものの列に変換されます。順に説明すると:
+Unicode文字の未変換ストリーム内の[[Unicodeエスケープ>3.3. Unicodeエスケープ]]を対応するUnicode文字へ変換します。Unicodeエスケープは&tt(){\u&i(){xxxx}}で記述され、ここで&i(){xxxx}は16進数、符号化された値が&i(){xxxx}であるUTF-16コード単位を表します。この変換ステップがあることによってあらゆるプログラムをASCII文字のみによって記述することが可能です。
+ステップ1の結果を、入力文字と[[行終端子>3.4. 行終端子]]の列に変換します。
+ステップ2の結果から、[[空白>3.6. 空白]]と[[コメント>3.7. コメント]]を取り除き、[[構文文法>2.3. 構文文法]]で使用する終端記号である[[トークン>3.5. 入力要素とトークン]]で構成される[[入力要素>3.5. 入力要素とトークン]]の列へと変換します。
個々のステップは最長一致によって変換が行われます。最長一致変換では最終的に正しいプログラムにならない場合でも、ステップの順序を途中で変えて行うことはありません。
#divstyle(background-color:#f0f0ff;border:1px solid black;padding 4px){
&i(){&small(){このように、入力文字&tt(){a--b}は&tt(){a}、&tt(){--}、&tt(){b}と[[トークン化>3.5. 入力要素とトークン]]されます。これは文法的に正しいプログラムではりません。&tt(){a}、&tt(){-}、&tt(){-}、&tt(){b}とトークン化されれば文法的に正しいプログラムですがこうはトークン化されません。}}
}
**[[3.3. Unicodeエスケープ]]
**[[3.4. 行終端子]]
**[[3.5. 入力要素とトークン]]
**[[3.6. 空白]]
**[[3.7. コメント]]
**[[3.8. 識別子]]
**[[3.9. キーワード]]
**[[3.10. リテラル]]
**[[3.11. 分離子]]
**[[3.12. 演算子]]
*[[3. 字句構造]]
**[[3.1. Unicode]]
**3.2. 字句変換
Unicode文字の未加工ストリームは以下の3ステップで行われる字句変換(lexical translations)によってトークンと呼ばれるものの列に変換されます。順に説明すると:
+Unicode文字の未加工ストリーム内の[[Unicodeエスケープ>3.3. Unicodeエスケープ]]を対応するUnicode文字へ変換します。Unicodeエスケープは&tt(){\u&i(){xxxx}}で記述され、ここで&i(){xxxx}は16進数、符号化された値が&i(){xxxx}であるUTF-16コード単位を表します。この変換ステップがあることによってあらゆるプログラムをASCII文字のみによって記述することが可能です。
+ステップ1の結果を、入力文字と[[行終端子>3.4. 行終端子]]の列に変換します。
+ステップ2の結果から、[[空白>3.6. 空白]]と[[コメント>3.7. コメント]]を取り除き、[[構文文法>2.3. 構文文法]]で使用する終端記号である[[トークン>3.5. 入力要素とトークン]]で構成される[[入力要素>3.5. 入力要素とトークン]]の列へと変換します。
個々のステップは最長一致によって変換が行われます。最長一致変換では最終的に正しいプログラムにならない場合でも、ステップの順序を途中で変えて行うことはありません。
#divstyle(background-color:#f0f0ff;border:1px solid black;padding 4px){
&i(){&small(){このように、入力文字&tt(){a--b}は&tt(){a}、&tt(){--}、&tt(){b}と[[トークン化>3.5. 入力要素とトークン]]されます。これは文法的に正しいプログラムではりません。&tt(){a}、&tt(){-}、&tt(){-}、&tt(){b}とトークン化されれば文法的に正しいプログラムですがこうはトークン化されません。}}
}
**[[3.3. Unicodeエスケープ]]
**[[3.4. 行終端子]]
**[[3.5. 入力要素とトークン]]
**[[3.6. 空白]]
**[[3.7. コメント]]
**[[3.8. 識別子]]
**[[3.9. キーワード]]
**[[3.10. リテラル]]
**[[3.11. 分離子]]
**[[3.12. 演算子]]
表示オプション
横に並べて表示:
変化行の前後のみ表示: