令牌是C ++程序中对编译器有意义的最小元素。C ++解析器可识别以下类型的令牌:标识符,关键字,文字,运算符,标点符号和其他分隔符。这些标记的流组成翻译单元。令牌通常由空格分隔。
解析器识别关键字,标识符,文字,运算符和标点符号。在预处理阶段使用预处理令牌(例如#include,#define,#if_def等)来生成传递给编译器的令牌流。预处理令牌类别是与其他类别之一不匹配的标头名称,标识符,预处理编号,字符文字,字符串文字等。字符和字符串文字可以是用户定义的文字。预处理令牌可以用空格或注释分隔。
解析器通过在从左到右的扫描中使用输入字符来创建可能的最长令牌,从而将令牌与输入流分离。