我写了一个野牛,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
我不知道该怎么做。请帮帮我。
感谢
答案 0 :(得分:0)
你不应该尝试修复由lex生成的文件中的错误,而不是你需要检查你的lex规范是否有错误。
更新:
查找此类错误的来源的可能位置是lex规范用户代码部分。正如在评论中注意到的那样,LEX不会检查它从规范生成的代码。