0
我已经写了Flex的东西在以前的类,但没有我以前的工作代码是解决我遇到的问题。'早熟EOF'和'坏字符'错误
我已经在StackOverflow中搜索了一个解决方案,但没有一个解决了它。
我:
- 经过我没有犯错误的空间在%{...%}面积
- 使用的#include <“的iostream>
- 试过%选择noyywrap
这里是我的代码(我删除了所有的令牌,因为它们中有很多):
%{
...
int numLines = 0;
void printTokenInfo(char* tokenType, char* lexeme);
void handleComments(char* text);
%}
WSPACE [ \t\r]+
NEWLINE \n
DIGIT [0-9]
LETTER [a-zA-Z]
IDENT ({LETTER}|_)({LETTER}|{DIGIT}|_)*
INTCONST {DIGIT}+
CHARCONST "'"{LETTER}+"'"
%%
...
%%
// User-written code goes here
void printTokenInfo(char* tokenType, char* lexeme)
{
printf("A");
printf("TOKEN: %s LEXEME: %s\n", tokenType, lexeme);
}
void handleComments(char* text)
{
printf("%s\n", text);
}
int yywrap() { return 1; }
int main()
{
do {
yylex();
} while (!feof(yyin));
return 0;
}
这里是我正在编译并运行它:
flex FILENAME.l
g++ lex.yy.c -o lexer
lexer < INPUT.txt
而且教练与输入文件提供给我们,但他们都没有工作。他们都失败,'早熟EOF'或'坏字符'
任何想法?