lexer实际上完成了指出它位于消息中的哪个地方的一些任务,但是解析器仍将所有内容放在一起。
此外还实现了一个IDLlexer,允许将预处理器库用作某个面向IDL的工具的lexing组件。
只要有可能,请尝试为您的lexer和解析器开发单独的测试。
该示例中的lexer比计算器的更为复杂;复杂得多。
因此,这个lexer不识别任何关键字(除了true和false,因为预处理器本身需要它们)。
lexer是一个能将文本字符串分成单个命令,或者标记的软件组分,这样使得单个命令可以被检索到。
该工具是在程序执行特征测试工具的基础上,将其词法分析器和语法分析器加以修改而实现的。
词法分析器是我们的语言知识中识别“这是一个句子;这是标点;twenty-three是一个单一的词”的那一部分。
lexer生成的符号称为终结符(terminals)或者记号(tokens)。
JAPANESE_LEXER:一个从Japanese文本在中提取标记的lexer。
与Wave库一起打包的C++lexer也可以单独使用,并没有与C++预处理迭代器捆绑在一起。
所以,在这个例子中,NUMBER是一个终结符;lexer正是生成这种结果。
KOREAN_MORPH_LEXER:一个从Korean文本在中提取标记的lexer。
这确实意味着lexer和解析器都必须明白,是一个空行将标题从主体中分离了出来。
JAPANESE_VGRAM:一个从Japanese文本在中提取标记的lexer。