使用g ++编译lex.yy.c时出错

时间:2012-01-10 11:39:14

标签: g++ lex

我写了一个野牛,flex和c ++文件。 通过了bisoon和flex的汇编。但是当我试图编译c和cpp文件时:
g ++ * .cpp * .c,我得到奇怪的错误: lex.yy.c:479:错误:预期`;'在“静态”之前 当我打开lex.yy.c文件时,我看到由flex自动创建的代码。这是第479行的代码的一部分,第479行是粗体:

using namespace std;
using namespace output
#line 465 "lex.yy.c"

/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
extern "C" int yywrap YY_PROTO(( void ));
#else
extern int yywrap YY_PROTO(( void ));
#endif
#endif

#ifndef YY_NO_UNPUT

static void yyunput YY_PROTO((int c,char * buf_ptr));     #ENDIF

#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
#endif

我不知道该怎么做。请帮帮我。

感谢

1 个答案:

答案 0 :(得分:0)

你不应该尝试修复由lex生成的文件中的错误,而不是你需要检查你的lex规范是否有错误。

更新:

查找此类错误的来源的可能位置是lex规范用户代码部分。正如在评论中注意到的那样,LEX不会检查它从规范生成的代码。