问题很简单,我已经使用 boost::spirit 编写了一个词法分析器,但是我似乎找不到生成 EOF
标记的方法。 - 那么如何去做呢?
最佳答案
什么是EOF token ?
token 迭代器 Spirit Lex 通过返回结束迭代器来发出“EOF”信号。
分词器 API ( lex::tokenize(...)
) 和 Spirit Qi 都理解这种行为(通过退出分词循环 (lex) 和/或通过使 qi::eoi
解析器成功匹配)。
例如。如果您需要断言解析到达输入的末尾,您只需说
myrule = subrule1 >> subrule2 > qi::eoi;
或者,如果您想断言某些内容的存在(例如,关闭的
;
),除非在输入结束时: myrule = subrule1 >> subrule2 >> (qi::eoi | ';');
我是否错过了一些没有像这样解决的问题?
关于token - boost::spirit::lex,如何生成文件尾标记?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18601253/