c - flex - 没有入口点

标签 c compiler-errors flex-lexer lexical-analysis

我正在研究编译理论以及如何使用 flex,但我遇到了几个问题。

我创建了一个包含以下数据的 lex 文件:

%%
"hello"     printf("GOODBYE");
.   ;
%%

这是我能想到的最简单的一种。如果我理解正确,它会在每次遇到 hello 标记时打印 GOODBYE,并忽略其他所有内容。

我在这个 lex 文件上使用了 flex 来生成一个 C 文件,我现在应该编译那个 C 代码以获得这个语法的词法分析器。

问题 是生成的 C 代码没有入口点。它不编译。我的 .lex 文件不正确吗?我是不是误会了什么?

最佳答案

您只需在该文件中声明自己的 main(),在第二个 %% 之后或将此 .c 与其他 .c 文件链接,其中 main() 声明。

%%
"hello"     printf("GOODBYE");
.   ;
%%

int main()
{
    yylex();
    return 0;
}

关于c - flex - 没有入口点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43323827/

相关文章:

java - 读入文件并比较每个元素

java - 不能从静态上下文中引用非静态变量

parsing - 如何调试我的 flex/bison 语法?

c - 计算注释行数的 lex 程序

使用 WinHTTP API 固定证书

c - c 套接字编程错误 : after accept(), 程序将关闭。

c - 将指针数组传递给函数

c - 用于单步编译和运行单个 C 文件的脚本/命令?

java - 为什么 "array instanceof Iterable"不能用 Java 编译?

c - 如何在c中调用flex解析器