问题标签 [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 投票
0 回答
31 浏览

parsing - Ply VS Jflex+Cup

我正在尝试为类似 Pascal 的语言构建编译器,并尝试在 Ply(python) 或 Jflex+Cup(Java) 的组合之间做出决定。我找不到任何合适的材料来评估哪个更好。

我想了解性能、易用性以及每个社区的规模。

据我所知,一般来说,构建编译器和解析器的 Java 选项似乎使用得更多,但特别是对于这些,Ply 似乎使用得更广泛。

哪一个更好?

0 投票
0 回答
67 浏览

java - 解析java中的一元否定

我想要做的是允许像 8 - - - 2 + 3 这样的表达。

对于一元否定,我试过这个

,但它表示负号是错误的操作数类型。

有什么技巧可以做一元否定吗?

0 投票
0 回答
35 浏览

java - 如何使用 CUP 消除语法中的歧义?

我有这个语法

(你可以在这里测试它 http://jsmachines.sourceforge.net/machines/lalr1.html

语法是模棱两可的,它会产生 S/R 冲突,但真正的问题是在解析器工作的ID COMMA ID WRITE同时输入。ID COMMA ID READ

有没有办法在不改变 CUP 语法的情况下防止这种情况发生?

0 投票
1 回答
214 浏览

bison - Java 杯:Shift/Reduce 冲突

我正在尝试使用 JFlex 和 Cup 编写解析器,但是我在处理递归指向符号时遇到了一些问题,例如使用递归属性访问的函数调用,例如:

这是相关的解析器定义:

我得到了以下班次/减少冲突:

有人可以向我解释如何处理这些冲突,或者在哪里可以找到使用 java cup、yacc 或 bison 的工作示例?

0 投票
0 回答
45 浏览

jflex - 轮班减少冲突 (CUP)

我正在尝试在我的 cup 文件中定义我的语法,但出现以下错误。

以下是我的 cup 文件中定义的语法。

我相信这与 Fielddecls 如何指代 Type 非终结符有关。但是,我不确定如何消除它。如果可能的话,有人可以提供一些指导来消除这些转变减少错误吗?

0 投票
0 回答
15 浏览

cup - 银联编程

编写一个 CUP 解析器来接受 java 风格的接口定义。语法 interface interface_name { function_declaration } ; 函数声明:有一个或多个形式为 public type function_name (argument_list) 的声明;argument_list:一个或多个表单类型的变量声明 variable_name type :可以是任何原始数据类型

0 投票
1 回答
66 浏览

parsing - 模棱两可的上下文无关语法?/ 移位/减少 CUP 中的冲突

对于 C++ 的简化版本,我有以下上下文无关语法。当我使用 JFLEX 和 CUP 运行它时,我会得到如下错误列表:

我认为问题出在 instrucoesIf 但我无法弄清楚

0 投票
0 回答
83 浏览

parsing - JCup 中的错误恢复。块末尾缺少分号

我正在使用 JLex 和 JCUP 为本科项目构建 LR(1) 解析器。我选择(可能是错误的)尽可能地模仿 C++ 语法和语义。我已经完成了词法分析和解析,但我在 CUP 中遇到了错误恢复。

您可以认为我的语言的语法是 C++ 的语法,因为我所做的更改在这里不起作用(我认为)。我知道使用以下产品进行错误恢复是很常见的:

Statement ::= error SEMICOLON

但是,使用此解析器无法从块末尾丢失的分号(大括号 { } 包围的代码片段)中恢复。事实上,我找不到解析器从中恢复的方法。由于我无法将最后一条指令视为错误,因此我尝试至少将整个块视为错误。我试过了:

Block ::= LEFTBRACE error RIGHTBRACE

但这给了我一个 Shift-Reduce 冲突。我也试过:

Block ::= error RIGHTBRACE

但错误没有解决。

你能帮助从这个错误中恢复吗?

0 投票
1 回答
115 浏览

java - 在 Java Cup 中的状态中发现 Shift/Reduce 冲突

我正在尝试在 java cup 中编写解析,但我遇到了冲突

我收到了这个错误;

有人可以解释我在哪里做错了吗?

0 投票
0 回答
33 浏览

java - 使用hashmap java将两个键的值与第三个键相加

我正在用 Jflex 和 CUP 制作编译器。我试图让我的编译器使这个例子工作。

我正在努力将x+y之和的值分配给z

这是我的代码的一部分

我的语法是这样的

符号

这是我努力添加 v2 和 v3 的值并将其存储在 v1 中的地方

我在java中编程不多,需要帮助谢谢