我在我的C代码中包含两个不同的lex解析器,所以包括第二个解释器定义了一个前缀:
%option prefix="prep"
当我将这个集成到全局proyect中时它编译时没有错误但是在执行时,如果我尝试调用prepparse(以前称为yyparse),我会收到此错误:
undefined symbol: prepparse
我尝试过包含一个外部引用(不太确定这是否正确):
extern int prepparse(void);
在Lex标题中定义它:
#define yyparse prepparse
但我仍然得到同样的错误。
知道我做错了什么?
答案 0 :(得分:0)
我想我明白了。我发现我省略了一个有重要意义的信息。因为我只想改变一些令牌而不是定义一个完整的语言(它只是预先制定)我没有定义一个Yacc文件,所以我实际上并不是一个解析器,而是一个我必须调用的Lexer。所以这个命令不是预先编译的,而是预付费的。
我仍然没有工作,但我想这是另一个不同的问题。