问题标签 [cup]
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.
java - 在 Java CUP 中更改对象类型
我正在使用 CUP 和 JFLex 创建一个解析器来创建扫描仪。
我正在关注这个链接Parse tree generation with Java CUP但我卡住了,因为我不知道如何将类型更改为Node,因为默认情况下类型是 Object。
我希望 CUP 案例陈述如下所示
并不是:
java - Parser.cup 在 Java 中使用 CUP
我试图用 Java 做一个编译器,我使用 CUP 来生成语法的语法。
我有这个 Parser.cup
当我尝试生成 Parser.java 时,Eclipse 会返回以下警告:
我想删除这个警告,有帮助吗?
bison - 如何摆脱reduce/reduce、reduce/shift错误?
我的语法不断遇到reduce/reduce和reduce/shift问题,但我不确定为什么或如何解决它。
这是我所拥有的
abstract-syntax-tree - 这段代码中如何调用 val() 和 rep() 函数(它们没有定义)?
我正在使用一个名为 CUP 的解析器生成器。我获得了类定义的语法(CUP 规范)和这段支持代码(Expr.java)。
在 CUP 规范中,语法产生式具有与它们相关的语义动作,如下所示:
类定义是这样的:
有一个整数表达式类
然后,有如下类:
本质上,我的问题是:没有为 Expr 类的 rep() 函数给出定义(因为它是抽象的)。那么这个函数调用是做什么的呢?paraExpr.rep()
当我创建一个项目、构建解析器并解析输入字符串时,它会创建一个 AST 并将其打印出来,如下所示:
ParaExpr{(IntExpr{(1)}+IntExpr{(2)})}
java - java cup 中的 Shift/reduce 冲突 - 悬空 else 问题
我收到以下错误:
现在,我知道悬空的 else 问题,并且我尝试使语法明确:
有没有办法在没有优先运算符的情况下解决这个问题,还是语法有其他问题?
parsing - 是否可以在不编写解析器的情况下测试用 JFlex 制作的词法分析器?
我开始使用 JFlex,我想先尝试编写一个词法分析器,然后再转到解析器。但是,如果不使用 CUP 编写解析器,似乎就无法测试您的 JFlex 词法分析器。
我要做的就是编写一个词法分析器,给它一个输入文件,然后输出词位以检查它是否正确读取了所有内容。稍后我想输出标记,但词位将是一个好的开始。
java - java - cup 解析器允许我在语法 LALR 中进行空转换?
大家好,我是杯子解析器的新手,我的问题是在我的语法中定义的 trans 中我有空的 trans 我的问题是,这是正确的吗?
例如,在我的语法中,我有
A、B 为无终端,a、b、c 为终端
我试图制作一个替代语法,但扩展了我尝试在没有空 trans 的情况下解析的语言
我怎样才能在杯子中编程来制作解析器?感谢您的所有贡献和帮助...
parsing - 解析移位减少冲突
我正在使用 JavaCUP 工具为我的语言生成解析器。我正在尝试编写一个匹配嵌套和多个 if_else 语句的语法。
输入文件
语法
此语法匹配嵌套的 if_else 语句。但是它只识别我输入文件的第一个嵌套 if_else 语句。
我修改了我的语法以匹配多个这样的语句:
结果是由空规则(我猜)引起的移位/减少冲突。如何修改它以支持嵌套和多个 if_else 语句而不使用优先级?
parsing - Concatenation shift-reduce conflict
I have a simple grammar for JavaCUP's LR(1) parser that recognises concatenation expressions of identifiers and strings. I also want to add some empty function calls as a possible concatenation argument. However, when I try that, it leads to a shift/reduce conflict.
Grammar:
Input:
Conflict:
I have tried many different things like hiding identifier like IDENTIFIER second
at literal and second ::= | LPAREN RPAREN;
but I can't make it work.
java - 如何在 jflex 创建一个 lambda 符号?
我正在用 jflex + javacup 做一个语法分析器。在 .cup 语法中,我有这部分:
其中 lambda 没有任何意义(SUBPPARAMLIST 可以为空)
好吧,我设法在我的 .flex 中正确创建了所有标记,但我不知道如何创建 lambda 符号。我希望你们能帮助我,如果你不明白我的问题,请告诉我