yacc 相关问题

计算机程序yacc是由Stephen C.Johnson在AT&T为Unix操作系统开发的解析器生成器。

YACC 中的语法片段(包含或导入)

是否可以将不同文件中的 yacc 片段文件包含/导入到主 YACC 中? 只是为了举例说明我正在寻找的内容,我想为 3 个不同的文件创建 3 个语法解析器,但是......

回答 1 投票 0

如何从 LALR 语法中的 Bison 错误中恢复?

我正在尝试找出如何正确从 Bison 中的错误中恢复。问题是,当输入正确时,一切正常,直到输入错误为止。在这种情况下,它决定所有下一个 inp...

回答 1 投票 0

奇怪的字符串文字:是“ab\ cd" 可以接受,但是 "ab cd” 不是吗?

我在 goyacc 程序的 cpyact 函数中遇到了这段代码。当我们看到以 " 或 ' 开头的字符串文字时,我们只需复制它们。但是对 "\" 和 " 的处理 “似乎

回答 1 投票 0

在 Windows 上运行 bison 时出错“冲突:1 个移位/减少,1 个减少/减少 C:\GnuWin32 in ison.exe: m4: 无效参数”

第一次学习 lex yacc。 但 bison 中没有代码正在运行 错误:ison.exe 中的 C:\GnuWin32:m4:参数无效 我重新安装了野牛检查了路径,但错误仍然没有消失。 索梅特...

回答 1 投票 0

yacc/bison 的分段错误

我正在尝试为学校作业编写一个简单的 HTTP 请求解析器,但我遇到了无法摆脱的分段错误。我认为我的生产规则没问题。我已经处决了野牛...

回答 3 投票 0

Yacc语法:解决Shift/Reduce和Reduce/Reduce冲突

我正在为特定的 DSL 语言开发一个解析器。下面是一个有效的(但不完整的)语法: %{ 包主 %} //%type stmts %type stmt //%type stmt_...

回答 1 投票 0

2处解析器错误:语法错误,意外的id,期待$end

我有一个语法文件:它是简单表达式的语法。 %{ #包括 #包括 #包括 #include“../C_routines/SyntaxTree.h” #定义

回答 1 投票 0

解析器错误 1:yacc 语法的语法错误

我在 yacc (bison) 中有一个简单的语法: 表达式.y: %{ #包括 #包括 #包括 #include“../C_routines/SyntaxTree.h” 外部 int yyli...

回答 1 投票 0

解析器错误 1:yacc 语法错误

我在 yacc (bison) 中有一个简单的语法: 表达式.y: %{ #包括 #包括 #包括 #include“../C_routines/SyntaxTree.h” 外部 int yyli...

回答 1 投票 0

Bison 中的一元优先级

当解析器试图弄清楚某物是一元运算符还是二元运算符时,我不断遇到移位/归约冲突。 %token tHEX 到 OCT tDEC tRUNE %代币 当解析器试图弄清楚某物是一元运算符还是二元运算符时,我不断遇到移位/归约冲突。 %token <intconst> tHEX tOCT tDEC tRUNE %token <stringconst> tBOOL INTERPRETEDSTRING RAWSTRING tIDENTIFIER %token <floatconst> tFLOAT %token <charconst> tRUNES %token TRUE FALSE BREAK CASE CHAN CONST CONTINUE DEFAULT DEFER ELSE FALLTHROUGH FOR FUNC GO GOTO IF IMPORT INTERFACE MAP PACKAGE RANGE RETURN SELECT STRUCT SWITCH TYPE VAR INT PRINT FLOAT PRINTLN BOOL APPEND RUNE STRING SEMICOLON NEWLINE PLUS MINUS TIMES DIV MOD AMP PIPE CARAT COUT CIN AMPCARAT SELFPLUS SELFMINUS SELFTIMES SELFDIV SELFMOD AMPEQUALS PIPEEQUALS CARATEQUALS COUTEQUALS CINEQUALS WTF AND OR REDIRECT INCREMENT DECREMENT DOESEQUALS LT GT EQUALS NOT NEQ LE GE COMPAT ELLIPSIS LEFTPAREN RIGHTPAREN LEFTSQUARE RIGHTSQUARE LEFTBRACE RIGHTBRACE COMMA PERIOD FULLCOLON ESCAPEA ESCAPEB ESCAPEF ESCAPEV ESCAPESLASH ESCAPEAPOSTROPHE INVALID /*%token unary*/ /*%token binary*/ %left OR %left AND %left DOESEQUALS NEQ GT GE LT LE %left PLUS MINUS PIPE CARAT %left TIMES DIV MOD COUT CIN AMP AMPCARAT /*%left binary*/ %left UPLUS UMINUS UNOT UCARAT UTIMES UAMP UPAREN %start expList %% expList: exp expList {} | /*empty*/ ; exp: exp OR addOp {} | exp AND addOp {} | exp NEQ addOp {} | exp GT addOp {} | exp GE addOp {} | exp LT addOp {} | exp LE addOp {} | addOp {} ; addOp: addOp PLUS mulOp {} | addOp MINUS mulOp {} | addOp PIPE mulOp {} | addOp CARAT mulOp {} | mulOp {} ; mulOp: mulOp TIMES factor {} | mulOp DIV factor {} | mulOp MOD factor {} | mulOp COUT factor {} | mulOp CIN factor {} | mulOp AMP factor {} | mulOp AMPCARAT factor {} | factor {} ; factor: LEFTPAREN exp RIGHTPAREN %prec UPAREN {} | PLUS factor %prec UPLUS {} | MINUS factor %prec UMINUS {} | NOT factor %prec UNOT {} | CARAT factor %prec UCARAT {} | TIMES factor %prec UTIMES {} | AMP factor %prec UAMP {} | tIDENTIFIER {} | tDEC {} | tFLOAT {} | tOCT {} | tHEX {} | tRUNES {} | INTERPRETEDSTRING {} | RAWSTRING {} ; %% 我知道我有很多代币,我最终会使用它们。我只是想让表达式的语法起作用。 这是我遇到的移位/归约错误 State 18 10 exp: addOp . 11 addOp: addOp . PLUS mulOp 12 | addOp . MINUS mulOp 13 | addOp . PIPE mulOp 14 | addOp . CARAT mulOp PLUS shift, and go to state 37 MINUS shift, and go to state 38 PIPE shift, and go to state 39 CARAT shift, and go to state 40 PLUS [reduce using rule 10 (exp)] MINUS [reduce using rule 10 (exp)] CARAT [reduce using rule 10 (exp)] $default reduce using rule 10 (exp) State 19 15 addOp: mulOp . 16 mulOp: mulOp . TIMES factor 17 | mulOp . DIV factor 18 | mulOp . MOD factor 19 | mulOp . COUT factor 20 | mulOp . CIN factor 21 | mulOp . AMP factor 22 | mulOp . AMPCARAT factor TIMES shift, and go to state 41 DIV shift, and go to state 42 MOD shift, and go to state 43 AMP shift, and go to state 44 COUT shift, and go to state 45 CIN shift, and go to state 46 AMPCARAT shift, and go to state 47 TIMES [reduce using rule 15 (addOp)] AMP [reduce using rule 15 (addOp)] $default reduce using rule 15 (addOp) 我已经没有想法了,非常感谢我能得到的任何帮助。 不确定以下内容有多大帮助,但这样的东西对我有用: exp : '(' exp ')' | unary_exp | exp bin_op term | exp bin_op unary_exp | term unary_exp : u_op exp %prec FIRST term : CONSTANT | NUM bin_op : '+' | '-' | '*' | '/' u_op : '-' 了解更多关于 prec 有了优先级和关联性指令,您应该从简化语法开始,让它们发挥作用,并检查仍然出现哪些冲突... exp: exp OR exp {} | exp AND exp {} | exp NEQ exp {} | ... | exp PLUS exp {} | ... | exp '*' exp {} | '(' exp ')' {} | MINUS exp %prec UMINUS {} | ... | tDEC {} | ... ;

回答 2 投票 0

Yacc:布尔和算术表达式语法冲突

我正在实现一个编译器作为类的一部分,用于一种应该支持算术和布尔表达式的语言。不幸的是,我在实施机器人规则时遇到了一些麻烦......

回答 1 投票 0

错误:请求非结构或联合中的成员“代码”

我有 lex 和 yacc 文件。 lex - tokens.l yacc - 表达式.y 我使用 flex 作为 lex,使用 bison 作为 yacc 表达式.y: %{ #包括 #包括 #包括 #在...

回答 1 投票 0

Makefile:从 $^

我正在用 Lex 和 Yacc 制作一个编译器。为了编译我的 main,我需要首先运行 yacc,以便文件 y.tab.h 存在。但是,我不希望在编译时将该文件包含在 $^ 变量中...

回答 1 投票 0

Android 构建过程中出现错误:iproute yacc 问题

我在构建 AOSP 源代码时遇到错误: POSIX Yacc 不支持 %name-prefix [-Wyacc] 更多详情: 10 | 10 %令牌表 | ^~~~~~~~~~~~ 外部/iproute2/tc/emp_ematch.y:11.1...

回答 1 投票 0

致命错误:y.tab.h:fedora 上没有这样的文件或目录

我在 VMware Workstation 上运行我的 Fedora。我有一个 lex 和 yacc 程序。程序编译工作正常,但是当我通过 gcc y.tab.c lex.yy.c -ll 运行程序时,它给出了 f...

回答 3 投票 0

lex 和 yacc 程序将中缀转换为前缀

我是 lex 和 yacc 程序的新手。我一直在尝试编写一个 yacc 程序,该程序将算术表达式作为输入并给出前缀表示法作为输出。 这是我的 lex 代码。 %{ #包括<...

回答 2 投票 0

Flex+ Bison 集成错误:杂散的 '\' 和预期的 ';'在“{”标记之前

我在 Flex 和 Bison 集成方面遇到问题,特别是与“程序中的杂散`\`”和“预期的 ';' 等错误相关在‘{’标记之前。”我检查了我的代码...

回答 1 投票 0

如何解决lua解析器语法中的shift/reduce、reduce/reduce冲突

我正在尝试用 happy 编写一个 lua 解析器。 我的 Parser.y 的语法来自 https://www.lua.org/manual/5.4/manual.html#9 如下 { 模块解析器在哪里 导入词法分析器 } %名称解析 %tokentype { 到...

回答 1 投票 0

编译器中的Yacc和Lex,“和”?

为什么 yacc 和 lex 是分开的? 我的意思是为什么 C 程序员不把它们设计在一起呢? 例如,我们可以一起制作lex-yacc工具吗?

回答 1 投票 0

Makefile自动调用`yacc`

嗨我有一个像这样的makefile: # 变量================================================== ======================================= 假货 = 项目= ALL_FILES := $(过滤 $(pr...

回答 2 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.