bison相关内容

野牛减少/减少,转移/减少冲突

伙计们,我在处理野牛代码时遇到了麻烦...编译了这段代码后,我得到了58个shift/reduce和40个reduce/reduce冲突...有关如何限制它们的任何提示,或指向我给一个很好的指导如何去做?提前致谢!! (所有以T_开头的内容,例如T_get,都是在此代码上方定义的令牌) start:T_get G |T_head G |T_post G ; G:url canon ; ..
发布时间:2020-09-21 04:09:49 其他开发

无法访问野牛2.6中的令牌表yytname还是消失了?

我正在为资产xchange格式构建解析器.而且我在野牛文件中包含了%token-table指令,但是,从flex代码中,我只是无法访问表或与之关联的常量.就是在尝试编译此代码时: Frame|FrameTransformMatrix|Mesh|MeshNormals|MeshMaterialList|Material { printf("A keyword: %s\n", yytex ..
发布时间:2020-09-21 04:09:42 其他开发

杰森:减少实际上没有冲突的冲突

我正在尝试生成一个小型JavaScript解析器,该解析器还包括一个小型项目的类型化变量. 幸运的是,jison已经提供了一个jscore.js,我刚刚对其进行了调整以满足自己的需求.添加类型后,我遇到了减少冲突的问题.我将问题最小化到最小的JISON: 吉森: %start SourceElements %% // This is up to become more comp ..
发布时间:2020-09-21 04:08:38 其他开发

野牛令牌是字符串的其余部分

我写了一个flex和野牛, 我遇到了一个问题,该问题可以通过以下程序进行说明. 该程序用于解析由等号(=)分隔的键/值对 我希望我的野牛脚本能将键和值标记化并打印出来. 下面是我的flex程序的代码段 %{ /* file : kvp.l */ #include #define YYSTYPE char* #include "k ..
发布时间:2020-09-21 04:07:37 其他开发

如何在Flex规则中引用lex或解析参数?

我知道我可以在.y文件中声明%parse-param {struct my_st *arg}.因此yyparse()更改为yyparse(struct my_st *arg).但是我该如何在flex规则中引用该参数呢?例如: [0-9]+ { do_work(arg); return NUMBER; } 我想创建一个可重入的解析器,所以我需要这样做.请帮助我,谢谢! 解决方案 ..
发布时间:2020-09-21 04:07:33 其他开发

如何为WDI编写野牛语法?

我在野牛语法构建方面需要一些帮助. 我的另一个问题: 我正在尝试制作一种用于编写可以直接嵌入C/C ++代码中的标记代码(例如xml和html)的元语言. 这是用这种语言编写的一个简单示例,我称之为WDI(Web开发接口): /* * Simple wdi/html sample source code */ #include string name ..
发布时间:2020-09-21 04:07:29 前端开发

野牛规格和优先顺序

给出野牛规格:%right TOK_ADD TOK_MUL 我想知道TOK_ADD和TOK_MUL的优先顺序是什么. 如果我有Bison规范 %left TOKMUL TOKADD %left TOKDIV %left TOKSUB 我想知道TOKMUL TOKADD TOKDIV的优先顺序是什么 和TOKSUB是 解决方案 野牛/yacc优先顺序从低到高-列出的第一 ..
发布时间:2020-09-21 04:07:23 其他开发

未定义对`yylex'的引用

我正在尝试使用flex和bison解析一个输入文件,但是在编译程序时遇到了一个困难.我正在附上我得到的flex和bison代码以及错误. 请帮助我解决这些错误 lex.l %{ #include #include #include "yacc.tab.h" #define YY_DECL extern "C" int yylex ..
发布时间:2020-09-21 04:06:17 C/C++开发

无法弄清楚为什么Bison会抛出“由于冲突而在解析器中无用的规则".

我正在为一种非常简单的编程语言编写BNF语法,并使用Flex和Bison进行编译. 我只有3种变量和常量类型:实数,整数,字符串. 我的.l文件具有"ID"的令牌定义,如下所示: DIGIT [0-9] LETTER [a-zA-Z] ID {LETTER}({LETTER}|{DIGIT})* 我的.y文件具有标识符的定义,如下所示: identifier: ID; 现在 ..
发布时间:2020-09-21 04:06:14 其他开发

YACC规则未减少

我正在尝试学习YACC,在弄清楚它给我的警告消息时遇到了一些麻烦.这是我文件的一部分: define_character: WORD IS STRING COLOR { printf("%s's full name is %s and thier color is %s", $1, $3, $4); }; dialog: WORD COLON STRING { printf ..
发布时间:2020-09-21 04:06:07 其他开发

Bison + Flex段故障无回溯

我正在尝试调试Bison + Flex生成的代码(真是太高兴了!).它的段错误非常严重,以致gdb甚至没有可用的堆栈信息.有什么方法可以使这种组合生成更可调试的代码? 请注意,我正在尝试编译可重入的词法分析器和解析器(这本身就是一个巨大的痛苦). 下面是尝试使用yyparse的程序: int main(int argc, char** argv) { int res; ..
发布时间:2020-09-21 04:06:04 其他开发

是否有现代的(例如CLR)替代野牛/yacc?

我刚刚在重做一些使用bison编写的类似编译器的代码.当我这样做时,我想知道现代的等效物是什么?是否有一个不错的.NET(或类似)编译器编写框架,该框架采用BNF语法并拆分出可以进行解析的DLL? 解决方案 我在自己的动态语言解释器中使用Gardens Point GPPG和GPLEX. Microsoft在Visual Studio 200x SDK中将GPPG和GPLEX用作MPPG和 ..
发布时间:2020-09-21 04:06:01 其他开发

将类似构造结合到递归规则中

这是针对Jison中的解析器的,但我想Bison也是如此. 我有一个为表达式定义的规则. expr : NUMBER -> { type: "number", value: $1 } | "(" expr ")" -> $2 | expr "+" expr -> { type: "+", left: $1, right: $3 } | expr "-" ..
发布时间:2020-09-21 04:05:57 其他开发

如何解决强制转移或减少的转移/减少冲突?

当Yacc/Bison中存在转移/减少冲突时,是否可以强制完全按照您希望的方式解决冲突?换句话说:是否可以明确地迫使其优先考虑转移或减少? 对于我阅读的内容,如果您对默认分辨率感到满意,可以告诉生成器另一个选择是重写语法以解决此问题.我不知道这是否总是可能的,并且常常使它变得更难理解. 最后,我已经阅读了优先级规则可以解决此问题.我无能为力地尝试了很多方法,但我无法使其正常工作.可以使 ..
发布时间:2020-09-21 04:05:54 其他开发

如何将flex和bison与Qt项目集成?

我正在git源代码控制下使用Qt4制作GUI程序( Github页面 ).项目的一小部分需要扫描和解析.所以我想在项目中使用flex和bison.我可以想到3种方式- 使flex和bison文件不受项目和源代码控制.生成C源文件并将其添加到项目中. 将flex和bison文件添加到项目中,但分别运行flex和bison命令. 与IDE(Ubuntu 12.04上的Qt Creator)和 ..
发布时间:2020-09-21 04:05:50 C/C++开发