问题标签 [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.

0 投票
2 回答
670 浏览

java - 在 Java CUP 中更改对象类型

我正在使用 CUP 和 JFLex 创建一个解析器来创建扫描仪。

我正在关注这个链接Parse tree generation with Java CUP但我卡住了,因为我不知道如何将类型更改为Node,因为默认情况下类型是 Object。

我希望 CUP 案例陈述如下所示

并不是:

0 投票
1 回答
1292 浏览

java - Parser.cup 在 Java 中使用 CUP

我试图用 Java 做一个编译器,我使用 CUP 来生成语法的语法。

我有这个 Parser.cup

当我尝试生成 Parser.java 时,Eclipse 会返回以下警告:

我想删除这个警告,有帮助吗?

0 投票
1 回答
122 浏览

bison - 如何摆脱reduce/reduce、reduce/shift错误?

我的语法不断遇到reduce/reduce和reduce/shift问题,但我不确定为什么或如何解决它。

这是我所拥有的

0 投票
1 回答
45 浏览

abstract-syntax-tree - 这段代码中如何调用 val() 和 rep() 函数(它们没有定义)?

我正在使用一个名为 CUP 的解析器生成器。我获得了类定义的语法(CUP 规范)和这段支持代码(Expr.java)。

在 CUP 规范中,语法产生式具有与它们相关的语义动作,如下所示:

类定义是这样的:

有一个整数表达式类

然后,有如下类:

本质上,我的问题是:没有为 Expr 类的 rep() 函数给出定义(因为它是抽象的)。那么这个函数调用是做什么的呢?paraExpr.rep()

当我创建一个项目、构建解析器并解析输入字符串时,它会创建一个 AST 并将其打印出来,如下所示:

ParaExpr{(IntExpr{(1)}+IntExpr{(2)})}

0 投票
1 回答
1959 浏览

java - java cup 中的 Shift/reduce 冲突 - 悬空 else 问题

我收到以下错误:

现在,我知道悬空的 else 问题,并且我尝试使语法明确:

有没有办法在没有优先运算符的情况下解决这个问题,还是语法有其他问题?

0 投票
1 回答
1254 浏览

parsing - 是否可以在不编写解析器的情况下测试用 JFlex 制作的词法分析器?

我开始使用 JFlex,我想先尝试编写一个词法分析器,然后再转到解析器。但是,如果不使用 CUP 编写解析器,似乎就无法测试您的 JFlex 词法分析器。

我要做的就是编写一个词法分析器,给它一个输入文件,然后输出词位以检查它是否正确读取了所有内容。稍后我想输出标记,但词位将是一个好的开始。

0 投票
1 回答
530 浏览

java - java - cup 解析器允许我在语法 LALR 中进行空转换?

大家好,我是杯子解析器的新手,我的问题是在我的语法中定义的 trans 中我有空的 trans 我的问题是,这是正确的吗?

例如,在我的语法中,我有

A、B 为无终端,a、b、c 为终端

我试图制作一个替代语法,但扩展了我尝试在没有空 trans 的情况下解析的语言

我怎样才能在杯子中编程来制作解析器?感谢您的所有贡献和帮助...

0 投票
1 回答
131 浏览

parsing - 解析移位减少冲突

我正在使用 JavaCUP 工具为我的语言生成解析器。我正在尝试编写一个匹配嵌套和多个 if_else 语句的语法。

输入文件

语法

此语法匹配嵌套的 if_else 语句。但是它只识别我输入文件的第一个嵌套 if_else 语句。

我修改了我的语法以匹配多个这样的语句:

结果是由空规则(我猜)引起的移位/减少冲突。如何修改它以支持嵌套和多个 if_else 语句而不使用优先级?

0 投票
2 回答
241 浏览

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.

0 投票
1 回答
573 浏览

java - 如何在 jflex 创建一个 lambda 符号?

我正在用 jflex + javacup 做一个语法分析器。在 .cup 语法中,我有这部分:

其中 lambda 没有任何意义(SUBPPARAMLIST 可以为空)

好吧,我设法在我的 .flex 中正确创建了所有标记,但我不知道如何创建 lambda 符号。我希望你们能帮助我,如果你不明白我的问题,请告诉我