问题标签 [bisonc++]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
266 浏览

bison - 野牛规则怎么写?

我有这样的规则:

A --> a B C d,其中 a, d是终端符号,B, C是非终端符号。

我在野牛中写了这条规则:

我想像这样写这条规则:

但我不知道如何用野牛写它。谁能帮我用野牛写它?(我不知道我应该如何获得 B 和 D 的价值)

0 投票
1 回答
158 浏览

yacc - 如何改变 Flex 词法分析器的错误行为?

我用 Flex 构建了一个词法分析器。但是有一个主要问题:Flex 默认会生成此错误方法:

这意味着每次出现语法错误时,我的应用程序都会退出。当然这不是我想要的,因为即使输入错误,我也需要一遍又一遍地调用词法分析器。

有没有办法改变 Flex 的行为?

0 投票
1 回答
203 浏览

regex - emacs 无法打开加载文件 make-regexp

我正在为 emacs 寻找野牛模式。我找到了一种实现(事实证明,相当老了)。我已将其复制到我的.emacs文件中,(require 'font-lock)(require 'cc-mode)按照emacs wiki page上的建议。但是,该bison-mode.el文件有以下行(require 'make-regexp),它给出了错误

无法打开加载文件:make-regexp

库的名称是否已更改,或者我是否需要安装其他东西才能使文件正常工作?

0 投票
1 回答
3385 浏览

bison - Flex/Flex++ syntax error - "Unrecognized rule"

I'm writing a grammar using Flex++ to generate a parser and this block of code always returns an "unrecognized rule" error.

This always returns the following :

I've tried moving around the rules, changing the alias to a simple [a-zA-Z] or even just [a-z] All to no avail, and it's driving me mad... Anyone got any ideas? Thanks!

0 投票
1 回答
47 浏览

debugging - Bison Stack 语义值

这是使用 Flex 的词法分析器。

其他文件是 Bison 语法文件

实际上,我想从文件中检索值。我使用了 Bison Debugger 并了解到这些值无法推送到 Bison Stack。所以基本上我想将这些值推送到堆栈上。我的文件就像:POINT x=38 y=47

0 投票
1 回答
281 浏览

c++ - Bison:减少/减少冲突

我正在用 bison 编写 SQL 编译器,但无法解释状态机 bison 的生成。下面是两个状态,每个状态都会导致 1 个reduce/reduce错误。

我猜not_qm是导致这些reduce/recude's in like_condand in_cond(见下面的代码)。

我希望有人能指出我正确的方向。如果需要更多信息,请告诉我。

0 投票
1 回答
2328 浏览

bison - bison how to get the token value (not semantic value)

Is possible recover the value of a token?

I have a rule that is similar to:

NOT, PLUS and MINUS are tokens and I am using the generated definition in my program too. Is possible recover this data and not repeat myself in the same line?

I'm not interested in the semantic value, so it is not correct for my write this:

Thank you

0 投票
0 回答
106 浏览

c++ - 声明来自野牛内用户类的指针(yacc.y 文件)

我正在为python语法开发一个编译器项目,但添加了一个新特性,比如继承和面向对象的概念......所以我有一个类似的类:

我想在野牛内声明一个来自 b 类的指针,所以我在 yacc 语法之前写了这个:

但是当我运行它时它会显示这个错误:

错误 C2143:语法错误:缺少“;” 前 '*'

错误 C2838:“b”:成员声明中的限定名非法

请帮忙 !

0 投票
1 回答
144 浏览

parsing - 野牛:特定数量的递归?

几周以来,我一直在用 flex 和 bison 编写一个解析器,但由于双重递归而停了下来,前几条规则的定义是相似的。Bison 总是在某个特定阶段选择错误的路径并崩溃,因为语法不合适。野牛代码看起来有点像这样:

Bison 停留在descrs递归中,永远不会退出它进入下一个altdescr然而,在初始块中读入的整数告诉我们将要出现多少个实例。所以我的问题是:

有没有办法为特定数量的递归实例准备野牛,以便他可以退出这个递归并进入“上面”的递归?我可以在 C 代码中访问这个整数,但我不知道所说移动的语法,比如 a descrs : {for (int i=0;i<n;++i){descr}}(我知道这可能看起来很荒谬)

如果做不到这一点,有没有其他方法可以解决这个问题?

任何输入将不胜感激。提前致谢。

0 投票
0 回答
40 浏览

compiler-construction - bisoc++ YYLTYPE 中的定位机制总是返回 0

通过 bisoc++ 使用语法解析源文件时,我想获取标记的行号。为此,我启用了%lsp-needed. 现在,当我使用@1.first_lineand访问行号时@1.last_line,即使标记不是来自第 0 行,两者都打印 0。