【发布时间】:2012-02-25 01:08:31
【问题描述】:
在解析另一个字符串的过程中,我正在尝试使用预定义的语法解析一个常量字符串。
我的main()调用yyparse(),用户开始输入,当匹配到某个语法时,比如MACRO什么的,我想执行yy_scan_string("...");
我遇到了几个问题
- 我需要的所有常量都是由 flex 创建的,然后我需要在我的 bison 文件中,这取决于 flex 输出
- 我通过从已编译的 flex 部分复制
#ifndef语句解决了这个问题
- 我通过从已编译的 flex 部分复制
- 在调用
yy_scan_string后,我尝试调用yyparse(),但这让我陷入了无限循环 - 如果我调用
yy_delete_buffer然后我会终止我的主要解析,并且代码会退出。
我错过了什么?似乎是一个简单的任务,我只想解析一个存储的字符串,中间解析一个文件,然后返回常规解析。
【问题讨论】:
标签: bison yacc lex flex-lexer