24得票5回答
有没有比lex/flex更现代化的工具用于生成C++的标记解析器?

我最近为一个现有工具添加了源代码文件解析功能,该工具能够从复杂的命令行参数生成输出文件。 由于命令行参数变得非常复杂,我们开始允许将它们作为文件提供,以便像处理非常长的命令行一样进行解析,但语法仍然很笨拙。因此,我增加了使用更合理的语法来解析源文件的功能。 我在Windows平台上使用了...

22得票3回答
选择解析器生成器

好的,我知道这个问题可能听起来很主观,但由于我有几个具体的选择标准,所以我认为它很适合SO。所以,这就是我在这里的原因... 我过去经常从事编译器/解释器构建(显然大多数是作为业余爱好),出于某种原因,我一直使用Lex/Yacc(或Flex/Bison,我对他们现在被称为什么感到非常困惑.....

19得票4回答
"yy" 在 lex.yy.c 中代表什么?

"yy" 在 lex.yy.c 中代表什么?

18得票5回答
Lex和Yacc有什么区别?

我曾经使用Lex执行某些代码,每当发现一些正则表达式时会执行, Yacc能做比这更多的事情吗?如果是,那么是什么?

18得票12回答
Parsing,我该从哪里学习?

我被分配任务将一种语言翻译成另一种语言。源语言过于灵活(复杂),无法使用正则表达式进行简单的逐行处理。我应该去哪里学习有关词法分析器和解析器的知识?

18得票1回答
有没有可能设置规则优先级来避免“最长最早”匹配模式?(关于IT技术)

还有一个简单的问题:有没有办法告诉flex优先匹配短规则而不是长规则?我找不到任何好的相关文档。 这就是为什么我需要它的原因:我解析一种伪语言的文件,其中包含一些对应控制指令的关键字。我希望它们成为绝对优先级,以便它们不被解析为表达式的一部分。实际上,我需要这个优先级的原因是因为我不必为我的...

17得票1回答
Lex/Flex - 扫描 EOF 字符

其他人曾遇到过我正在经历的下列问题,但我找不到任何人报告了解决方案...即如何让Flex识别EOF(文件结尾)。我需要Flex找到EOF并返回一个标记,以表示它已找到文件结尾,这样它可以告诉Yacc/Bison已经到达输入源文件的末尾,并报告成功的解析。 请注意,此问题与此问题不同,因为它涉...

17得票2回答
为什么要使用lex/yacc的替代工具?

大约每年我都要开发或者至少设计一个文法和解析器,这似乎是我的工作生活中的常数。 每次面对这个任务时,也就是大约每年一次,我这个lex/yacc(flex/bison)的人会考虑,或重新考虑,除了普通的lex/yacc之外的替代方案,并经过一些思考和尝试后回到普通的lex/yacc。 因为我...

15得票4回答
对'yylex()'的未定义引用

我正在尝试使用flex和bison创建一个简单的脚本语言。现在,我只是试图让计算器工作。 然而,我无法编译它。当我运行这个Makefile时:OBJECTS = hug.tab.o hug.yy.o PROGRAM = hug.exe CPP = g++ LEX = flex YACC =...

15得票1回答
简单的Flex/Bison C++

我已经寻找了答案,但是没有得到快速的简单示例响应。 我想使用g++编译flex / bison扫描器+解析器,只是因为我想使用C ++类来创建AST和类似的东西。 在互联网上搜索时,我发现了一些漏洞,都说唯一需要的就是在lex文件中声明一些函数原型,使用extern "C"。 所以我的s...