lex前缀undefined symbol yyparse

时间:2014-03-28 12:19:50

标签: c lex

我在我的C代码中包含两个不同的lex解析器,所以包括第二个解释器定义了一个前缀:

%option prefix="prep"

当我将这个集成到全局proyect中时它编译时没有错误但是在执行时,如果我尝试调用prepparse(以前称为yyparse),我会收到此错误:

undefined symbol: prepparse

我尝试过包含一个外部引用(不太确定这是否正确):

extern int prepparse(void);

在Lex标题中定义它:

#define yyparse prepparse

但我仍然得到同样的错误。

知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

我想我明白了。我发现我省略了一个有重要意义的信息。因为我只想改变一些令牌而不是定义一个完整的语言(它只是预先制定)我没有定义一个Yacc文件,所以我实际上并不是一个解析器,而是一个我必须调用的Lexer。所以这个命令不是预先编译的,而是预付费的。

我仍然没有工作,但我想这是另一个不同的问题。