C++ トークン
トークンは、コンパイラにとって意味がある、C ++ プログラムの最小要素です。 C++ パーサーが認識するトークンの種類は、識別子、キーワード、リテラル、演算子、句読記号、およびその他の区切り記号です。 これらのトークンのストリームが、翻訳単位を構成します。
トークンは通常、"空白" で区切られます。 空白は、次のうちの 1 つ以上です。
スペース
水平または垂直タブ
改行
フォームフィード
コメント
次のものは、トークンと見なされます。
keywordidentifierconstantoperatorpunctuator
次のものは、プリプロセス トークンと見なされます。
header-nameidentifierpp-numbercharacter-constantstring-literaloperatorpunctuator 上記のいずれでもない、各非空白文字
パーサーが入力ストリームからのトークンを区切るときには、左から右にスキャンした入力文字列を使用して、できるだけ長いトークンを作成します。 次のコード片の場合を考えてみます。
a = i+++j;
コードを記述したプログラマは、次の 2 つのステートメントのいずれかを意図していた可能性があります。
a = i + (++j)
a = (i++) + j
パーサーは入力ストリームから最長のトークンを作成しようとするため、2 つ目の解釈が選択され、トークンは i++、+、および j になります。