问题标签 [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.
c - 使用 Bison/Yacc 在 %union def 中包含结构
我试图包含一个结构作为与 Bison 联合的一部分,但在 %union 中的“结构节点参数”上出现错误:
编码:
有人知道我在做什么错吗?
c - Flex(lex) 和 Bison(yacc) 的错误处理
来自野牛手册:
在每个输入为一行的简单交互式命令解析器中,允许 yyparse 在错误时返回 1 并让调用者在发生这种情况时忽略输入行的其余部分(然后再次调用 yyparse)可能就足够了。
这几乎是我想要的,但我在上班时遇到了麻烦。基本上,我想检测 flex 中的错误,如果检测到错误,让 Bison 丢弃整行。我现在拥有的东西不能正常工作,因为我的命令仍然被执行:
在我的野牛文件中:
在我的 Flex 中:
c - 如何使用 Flex/Lex 和 Yacc/Bison 进行变量替换
维基百科的插值定义 我只是在学习 flex / bison,我正在用它编写自己的 shell。我正在尝试找出一种进行变量插值的好方法。我最初的方法是对我的主目录或 $myVar 之类的东西进行 flex 扫描,然后使用查找函数将 yyval.string 设置为返回的内容。我的问题是,当文本出现一个标记时,这对我没有帮助:
我对变量的 lex 定义:
然后在我的语法中,我有类似的东西:
有人知道处理这种事情的好方法吗?我对这一切都错了吗?
c - 对 Bison/YACC 语法的困惑
使用以下语法,我收到这种输入的语法错误:
我认为这可能与前瞻的工作方式有关,但这是我的第一个语法,我有点困惑为什么它不能这样工作:external_cmd GT WORD 是重定向,redirect 是命令,命令是命令,因此输入命令 NEWLINE 应该可以工作。
语法的主要规则:
引发错误标记时的调试/详细输入:
更新:
external_cmd 是:
g++ - 未定义对 'yylex()' 的引用
我正在尝试使用 flex 和 bison 创建一种简单的脚本语言。现在,我只是想让计算器工作。
不过,我无法编译它。当我运行这个makefile时:
在我的 .l 和 .ypp 文件中,我收到此错误:
如果我发出这样的命令all
:
它说它找不到-lfl
。如果我这样做:
它回到undefined reference
错误。
对不起,我对此一无所知。
编辑:我安装了 flex。我尝试将它从 -lfl 更改为 C:/GnuWin32/lib/libfl.a (我正在尝试使用 Windows,因为 Linux 在我的计算机上有奇怪的问题,而且我还没有 Mac),但它仍然有同样的错误。
yacc - 野牛移位/减少问题将添加操作移动到子表达式中
最初在示例中是这样的
我希望它“更简单”所以我写了这个(我意识到它会为加法和减法做'+'。但这是一个例子)
现在我得到一个移位/减少错误。它应该完全相同-_-(对我来说)。我需要做什么来解决这个问题?
编辑:说清楚。第一个没有警告/错误。我使用 %left 来设置优先级(我将使用 %right 来表示 = 和其他正确的操作)。但是,当进入子表达式时,它似乎并不适用。
bison - yacc/bison 令牌错误。'>>>' 和 '>>' 都分配了编号 62
我在我的代码中做了这样的事情
我得到的警告是
我如何让它使用不同的令牌?
yacc - yacc/bison 组合字题
我有一个如下的 if 语句
有效,太好了!但我输入了
它也有效:| 我该如何解决?以上应该是 var 名称而不是 if 语句
-edit-没关系,我想通了
c - 用野牛解析
我从 O'Reilly 购买了 Flex & Bison,但我在实现解析器时遇到了一些麻烦(将事物分解为令牌没什么大不了的)。
假设我有一个巨大的二进制字符串,我需要做的就是将这些位相加 - 每个位都是一个标记:
1101010111111
或者就此而言,没有“操作”的令牌集合。
这样的语法是否正确?
或者有更好的方法吗?
compiler-errors - 'yyerror' 的多重定义
使用 Bison(或 yacc)我如何解决错误
我尝试%option noyywrap nodefault yylineno
在顶部编写原型。没运气。
-编辑-
没关系。当我复制粘贴一个示例以使用时,我没有意识到我已经有一个 yyerror 函数。