8得票3回答
如何设置Flex/Bison规则以解析逗号分隔的参数列表

我希望能够使用flex/bison解析非空、一个或多个元素、逗号分隔(可选用括号包围)的列表。以下是一些可解析的列表示例: 1 1,2 (1,2) (3) 3,4,5 (3,4,5,6) 我使用以下规则来解析列表(最终结果是解析元素“顶级列表”),但在解析时似乎无法得到期望的结果(输入有效...

9得票2回答
yacc - 字段具有不完整的类型

yacc似乎不喜欢我定义的类型作为标记。 在我的语法(.y)文件的顶部,在一个%{ ... %}块中,我包含了一个定义以下结构的头文件: typedef struct _spim_register { spim_register_type type; /* This is a si...

8得票5回答
如何使用flex/bison解析C字符串(char *)?

在我的编程项目中,我希望使用flex/bison解析命令行属性。我的程序类似于这个样子: ./prog -a "(1, 2, 3)(4, 5)(6, 7, 8)" filename 使用flex/bison能否在不将字符串写入文件的情况下解析该字符串?

90得票4回答
在8位嵌入式系统上编写像Flex/Bison一样可用的解析器

我正在使用avr-gcc工具链,用C语言在AVR微控制器上作为练习编写一个类似BASIC的小型解释器。如果我要在Linux上运行该程序,我可以使用flex/bison。既然我限定了自己使用8位平台,那我应该如何编写解析器呢?

10得票5回答
Flex、Bison 和 C:寻找非常基础的介绍

我正在寻找一个非常简短的工作示例,其中包括flex和bison,并附带使用内置规则的Makefile。我尝试了几个谷歌搜索结果,它们很混乱,无法构建,或者是C++的,这是不可接受的。欢迎提供好的在线资源和简短的示例代码。 # Makefile example -- scanner an...

7得票1回答
使用转义字符的 Flex / Lex 编码字符串

以下是一些背景信息的参考: 在flex / lex中用于字符串字面值的正则表达式 我遇到的问题是在我的词法分析器中处理带有转义字符的输入,我认为这可能与字符串的编码有关,但我不确定。 以下是我在词法分析器中处理字符串字面值的方法: \"(\\.|[^\\"])*\" { ...

8得票3回答
在Mac OS X 10.6上编译并执行莎士比亚编程语言翻译器spl2c会导致警告/错误。

我想尝试使用Shakespeare编程语言进行实验,因此我从这里下载了它并使用cd spl-1.2.1 Make执行Makefile。 spl2c的编译会出现一些警告: scanner.l:600: warning, rule cannot be matched <stdou...

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

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

8得票1回答
从flex/bison中释放在strdup()中分配的字符串

我有一段使用strdup()函数复制字符串词元的Flex代码。 %{ #include "json.tab.h" #define YY_DECL extern "C" int yylex() %} %option noyywrap %% [ \t\n]+ ; \"[a-zA-Z...

16得票4回答
Bison已经安装,但未被使用的最新版本

$ brew install bison Warning: bison-3.0.2 already installed $ bison -V bison (GNU Bison) 2.3 我如何将使用的Bison版本更改为3.0.2?我使用的是OS X 10.9.4。在$brew install...