问题标签 [bison]

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 投票
3 回答
19593 浏览

c - 使用 Bison/Yacc 在 %union def 中包含结构

我试图包含一个结构作为与 Bison 联合的一部分,但在 %union 中的“结构节点参数”上出现错误:

编码:

有人知道我在做什么错吗?

0 投票
1 回答
4378 浏览

c - Flex(lex) 和 Bison(yacc) 的错误处理

来自野牛手册:

在每个输入为一行的简单交互式命令解析器中,允许 yyparse 在错误时返回 1 并让调用者在发生这种情况时忽略输入行的其余部分(然后再次调用 yyparse)可能就足够了。

这几乎是我想要的,但我在上班时遇到了麻烦。基本上,我想检测 flex 中的错误,如果检测到错误,让 Bison 丢弃整行。我现在拥有的东西不能正常工作,因为我的命令仍然被执行:

在我的野牛文件中:

在我的 Flex 中:

0 投票
2 回答
3736 浏览

c - 如何使用 Flex/Lex 和 Yacc/Bison 进行变量替换

维基百科的插值定义 我只是在学习 flex / bison,我正在用它编写自己的 shell。我正在尝试找出一种进行变量插值的好方法。我最初的方法是对我的主目录或 $myVar 之类的东西进行 flex 扫描,然后使用查找函数将 yyval.string 设置为返回的内容。我的问题是,当文本出现一个标记时,这对我没有帮助:

我对变量的 lex 定义:

然后在我的语法中,我有类似的东西:

有人知道处理这种事情的好方法吗?我对这一切都错了吗?

0 投票
3 回答
1771 浏览

c - 对 Bison/YACC 语法的困惑

使用以下语法,我收到这种输入的语法错误:

我认为这可能与前瞻的工作方式有关,但这是我的第一个语法,我有点困惑为什么它不能这样工作:external_cmd GT WORD 是重定向,redirect 是命令,命令是命令,因此输入命令 NEWLINE 应该可以工作。

语法的主要规则:

引发错误标记时的调试/详细输入:

更新:
external_cmd 是:

0 投票
3 回答
26036 浏览

g++ - 未定义对 'yylex()' 的引用

我正在尝试使用 flex 和 bison 创建一种简单的脚本语言。现在,我只是想让计算器工作。

不过,我无法编译它。当我运行这个makefile时:

在我的 .l 和 .ypp 文件中,我收到此错误:

如果我发出这样的命令all

它说它找不到-lfl。如果我这样做:

它回到undefined reference错误。

对不起,我对此一无所知。

编辑:我安装了 flex。我尝试将它从 -lfl 更改为 C:/GnuWin32/lib/libfl.a (我正在尝试使用 Windows,因为 Linux 在我的计算机上有奇怪的问题,而且我还没有 Mac),但它仍然有同样的错误。

0 投票
2 回答
1059 浏览

yacc - 野牛移位/减少问题将添加操作移动到子表达式中

最初在示例中是这样的

我希望它“更简单”所以我写了这个(我意识到它会为加法和减法做'+'。但这是一个例子)

现在我得到一个移位/减少错误。它应该完全相同-_-(对我来说)。我需要做什么来解决这个问题?

编辑:说清楚。第一个没有警告/错误。我使用 %left 来设置优先级(我将使用 %right 来表示 = 和其他正确的操作)。但是,当进入子表达式时,它似乎并不适用。

0 投票
2 回答
1253 浏览

bison - yacc/bison 令牌错误。'>>>' 和 '>>' 都分配了编号 62

我在我的代码中做了这样的事情

我得到的警告是

我如何让它使用不同的令牌?

0 投票
1 回答
102 浏览

yacc - yacc/bison 组合字题

我有一个如下的 if 语句

有效,太好了!但我输入了

它也有效:| 我该如何解决?以上应该是 var 名称而不是 if 语句

-edit-没关系,我想通了

0 投票
1 回答
326 浏览

c - 用野牛解析

我从 O'Reilly 购买了 Flex & Bison,但我在实现解析器时遇到了一些麻烦(将事物分解为令牌没什么大不了的)。

假设我有一个巨大的二进制字符串,我需要做的就是将这些位相加 - 每个位都是一个标记:

1101010111111

或者就此而言,没有“操作”的令牌集合。

这样的语法是否正确?

或者有更好的方法吗?

0 投票
2 回答
2480 浏览

compiler-errors - 'yyerror' 的多重定义

使用 Bison(或 yacc)我如何解决错误

我尝试%option noyywrap nodefault yylineno在顶部编写原型。没运气。

-编辑-

没关系。当我复制粘贴一个示例以使用时,我没有意识到我已经有一个 yyerror 函数。