【发布时间】:2012-05-16 02:37:05
【问题描述】:
我想知道 boost::spirit::lex 中是否有办法将令牌值写回输入流(可能在编辑后)并再次重新扫描。我基本上在寻找的是 Flex 中 unput() 提供的功能。
谢谢!
【问题讨论】:
-
你想达到什么目的?我的意思是,在什么情况下需要使用 unput()?如果您展示一个示例,我可能会向您展示我是如何做到的(可能使用 Lexer 状态)
-
基本上,我需要词法分析器匹配一个标识符,直接后跟一个开放的括号“abc(”作为一个标记,并将其放回输入流中,括号位于字符串的开头像“(abc”)。下一步是让词法分析器再次扫描它,但作为两个单独的标记(一个paren标记,然后是一个标识符标记)。
-
好的,我对此发表了我的看法,如果我对目标的理解有误,请告诉我。
标签: c++ boost lex boost-spirit boost-spirit-lex