字句解析プログラムを作成するために .l ファイルをコンパイルしようとしています。コードは次のとおりです。
%{
#include "ifanw.tab.h"
extern int yylval;
%}
%%
"=" { return EQ; }
"!=" { return NE; }
"<" { return LT; }
"<=" { return LE; }
">" { return GT; }
">=" { return GE; }
"+" { return PLUS; }
"-" { return MINUS; }
"*" { return MULT; }
"/" { return DIVIDE; }
")" { return RPAREN; }
"(" { return LPAREN; }
":=" { return ASSIGN; }
";" { return SEMICOLON; }
"IF" { return IF; }
"THEN" { return THEN; }
"ELSE" { return ELSE; }
"FI" { return FI; }
"WHILE" { return WHILE; }
"DO" { return DO; }
"OD" { return OD; }
"PRINT" { return PRINT; }
[0-9]+ { yylval = atoi(yytext); return NUMBER; }
[a-z] { yylval = yytext[0] - 'a'; return NAME; }
\ { ; }
\n { nextline(); }
\t { ; }
"//".*\n { nextline(); }
. { yyerror("illegal token"); }
%%
私が入力したコマンドは次のとおりです。
flex filename.l
gcc -c lex.yy.c -o out
出力は
filename.l:2:23: fatal error: ifanw.tab.h: no such file or directory.
問題は gcc ライブラリにありますか? その場合、更新/修正済みのライブラリはどこからダウンロードできますか? そうでなければ、何が問題なのですか?