【发布时间】:2017-04-10 12:58:25
【问题描述】:
我正在研究编译理论以及如何使用 flex,但我遇到了几个问题。
我创建了一个包含以下数据的 lex 文件:
%%
"hello" printf("GOODBYE");
. ;
%%
这是我能想到的最简单的一个。如果我理解正确,它会在每次遇到 hello 令牌时打印 GOODBYE,并忽略其他所有内容。
我在这个 lex 文件上使用了 flex 来生成一个 C 文件,我现在应该编译那个 C 代码以获得这个语法的词法分析器。
问题是生成的C代码没有入口。它不编译。我的 .lex 文件不正确吗?我是不是误会了什么?
【问题讨论】:
-
你必须提供你自己的
main函数 -
你必须定义一个主函数。看看this tutorial
-
提供 main 函数的一种方法是与 flex 的运行时库 libfl 链接。 (事实上,这是与 libfl 链接的唯一原因。)
-
谢谢大家。你当然是对的。它现在正在工作。
标签: c compiler-errors flex-lexer lexical-analysis