12得票3回答
Unix下的Flex正则表达式如何匹配多行注释

我正在使用Unix上的Flex制作词法分析器。如果你以前用过它,你就知道你主要只需为你要编写词法分析器的语言的令牌定义正则表达式。我卡在了最后一部分。我需要正确的多行注释的正则表达式,它允许像这样的东西/* This is a comment \*/ 但同时也允许/* This **** //...

12得票1回答
不使用全局或静态变量配置Bison和Flex

我在一款小型语言/IDE中工作。我需要知道如何配置flex和bison以使它们可以协同工作,并且不使用任何全局或静态变量。我需要将我的AST指针传递给bison。我还需要bison将我的AST传递给flex。这是一个线程环境,但我不需要任何线程同步。对于每个yyparse()调用,我需要一个单...

12得票3回答
Ubuntu: 如何安装flex以使postgres工作?

我正在尝试在Ubuntu 10.04上本地使用PostgreSQL,但在配置后出现以下错误:./configure --enable-cassert --enable-debug --prefix=$HOME/pgsql 当我执行 && make install 命令时,出现了...

12得票9回答
Flex和Yacc - 找不到 - lfl?

嗨,我正在学习Lex和Yacc。我创建了以下的Lex程序。 %{ #include <stdio.h> %} %% [0123456789]+ printf("NUMBER\n"); [a-zA-Z][a-zA-Z0-9]* printf("WORD\...

12得票3回答
如何在Visual Studio 2010中使用flex和bison?

我阅读了http://msdn.microsoft.com/en-us/library/aa730877%28vs.80%29.aspx,但该文档是针对 VS 2005 的。我遇到了文档中的“在 Visual C++ 中导入 .rules 文件”的部分问题。看起来 VS 2010 不支持 .r...

12得票1回答
flex中yywrap()的含义

在flex(lex)中,指令#define yywrap() 1的含义是什么? 以及这个正则表达式[ \t]+$是什么意思?我在下面的代码中找到了它: (%% [ \t]+ putchar('_'); [ \t]+% %% 输入“hello world” 输出“hello_world”)

11得票2回答
使用Flex/Bison实现解释器的REPL

我用Flex和Bison为扫描器/解析器编写了类似C语言的语言的解释器。当执行完整程序文件时它可以正常工作。 现在我正在尝试为解释器实现REPL以供交互使用。我希望它能像Ruby或ML中的命令行解释器一样工作: 显示提示符 接受一条或多条语句 如果表达式不完整 显示继续提示符 允许用户...

11得票4回答
如何在bison和flex中使用缩进作为块分隔符

我想知道如何在bison+flex中实现缩进作为块分隔符,就像在Python中一样。我正在编写自己的编程语言(主要是为了好玩,但我打算将其与游戏引擎一起使用),我会尽力想出一些特殊的东西,以最小化样板代码并最大化开发速度。 我已经用C语言编写了一个编译器(实际上是一个“langToy”到Na...

11得票2回答
GCC在bison生成的头文件中显示“数字常量之前的语法错误”

当我使用bison parser.y -d -t编译我的.y文件,并在我的flex文件中包含parser.tab.h文件时,gcc会报错“错误:数字常量之前的语法错误。”它引用了yytokentype枚举中的第32行,这是该枚举中的第一行。 enum yytokentype { BRE...

11得票1回答
使用flex/bison构建类似于Lisp/Scheme的解析树

我尝试解析类似Lisp/Scheme的简单代码E.g. (func a (b c d) ) 并从中构建一棵树, 我可以在C中完成解析,而不使用(即仅使用flex返回记号,并使用递归构建树)。 但是,对于bison的语法,我不确定在哪里添加代码来构建列表(即与累积终端符号相关联的规则以及将构建的...