列表 第页
我正在尝试获取C++Bison中令牌的名称:例如%token TPLUS "+" TMINUS "-" TMUL "*" TDIV "/"但是,在Bison的C++变体中,%token-table不执行任何操作。我注意到在生成的bison代码中有一个令牌映射: const char* const pa...阅读全文
我正在学习Bison生成C++分析器。由于%token-table已过时,是否有其他方法可以在c++解析器中从内标识整数值中获取名称?推荐答案您可以使用manual section on syntax error reporting中介绍的yysymbol_name()。C++API显然有一个类似的method...阅读全文
同时使用flex和bison时flex文件为什么需要#include由Bison创建的C标头?编译需要bison和flex创建的C源文件。Bison和flex创建的C源文件对彼此有什么要求?推荐答案Bison生成的头中最重要的是用于标识令牌类型的枚举值(这些值是由词法操作返回给解析器的值)。标头还声明YYSTYPE...阅读全文
免责声明:尽管我已经完成了本教程:http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html,但我只是个新手现在,我正在为OpenGL-C++中的一个项目构建一个视频游戏。Cpp包含所有的游戏图形、逻辑等(相当容易管理,所以不是问题)。在游戏开始之前,它需要解析一个配置文件(让我们假...阅读全文
我在C文件中有一个字符串,如下所示:char *test = "print x";我想用我编写的Bison解析器来解析它。有可能吗?推荐答案Bison解析器根本不读取输入。它们只是通过重复调用yylex来获得一系列令牌。(或者,使用现代野牛,您可以创建一个"推式解析器",它在连续的调用中被赋予令牌。)因此,实现yyl...阅读全文
我想知道如何在bison+flex中将缩进实现为块分隔符。就像巨蟒一样。我正在编写自己的编程语言(主要是为了好玩,但我打算将其与游戏引擎一起使用),我会尝试想出一些特殊的东西,使样板程序最小化,开发速度最大化。我已经用C编写了一个编译器(实际上是`langToy‘到Nasm的转换器),但失败了。由于某种原因,它只能处理...阅读全文