gpt4 book ai didi

c - 创建词法分析器时缺少 .h 文件

转载 作者:行者123 更新时间:2023-11-30 17:54:54 25 4
gpt4 key购买 nike

我正在尝试编译 .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 库中吗?如果是这样,我在哪里可以下载更新/修复的库?否则,有什么问题?

最佳答案

gcc 告诉您问题出在哪里:它找不到您指定的包含文件。

这不是库的问题。

您需要首先从 .y 文件创建该文件

bison --debug --verbose -d ifanw.y

您可能会发现this small tutorial有用。

如果您没有 .y 文件,那么您正在尝试编译一个不完整的包,而这是行不通的。您必须以某种方式从您已拥有的文件所在的位置获取丢失的文件。

关于c - 创建词法分析器时缺少 .h 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14673617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com