18得票3回答
如何使用flex/bison实现类似Python的缩进方式

我希望我的编程语言具备两个特点,使得像Python这样有良好格式的语言: 每行代码只有一个语句 代码块从不同缩进级别开始并一直持续到无缩进的结尾 有人能否给我提供一个详细的提示,如何用类似于flex/bison这样的工具实现这一功能?这种代码块功能会迫使用户编写易读的代码。

18得票2回答
柠檬是否具有功效?

对于语法解析器,我过去常用的是Bison,它有其优缺点。 上周,我在SqLite网站上注意到引擎使用了另外一个语法解析器:Lemon 阅读了一些简单的文档后感觉不错。 你对这个解析器有什么反馈吗? 在Google和维基百科上没有找到相关信息(只有一些例子和相同的教程)。它似乎并不很流行。...

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

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

16得票6回答
Flex/Bison IDE?

我正在寻找一个良好的开发环境,以便于编写flex或bison或两者兼而有之。 是否有任何具备这些功能和/或适合此用途的IDE? (如果没有,那么下一个最常见的问题是:是否有集成开发环境的词法分析器/语法分析器生成器?) 谢谢 ~Alex

16得票4回答
为什么我会得到这个错误:"数据定义没有类型或存储类"?

#include <stdio.h> #include <stdlib.h> struct NODE { char* name; int val; struct NODE* next; }; typedef struct NODE Node; ...

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...

15得票2回答
Flex文件中的"premature eof error"错误

我有以下代码,当我运行 flex hello.l 命令时会出现错误 "hello.l",line 31: premature EOF。%{ #include <stdlib.h> #include "y.tab.h" %} %% ("hi"|"oi")"\n" ...

15得票3回答
Bison:单个规则中的可选标记

我正在使用GNU Bison 2.4.2写一个新语言的语法,并有一个问题。 当我指定规则时,比如说:statement : T_CLASS T_IDENT '{' T_CLASS_MEMBERS '}' { // create a node for the statem...

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...