问题标签 [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.
parsing - Ply VS Jflex+Cup
我正在尝试为类似 Pascal 的语言构建编译器,并尝试在 Ply(python) 或 Jflex+Cup(Java) 的组合之间做出决定。我找不到任何合适的材料来评估哪个更好。
我想了解性能、易用性以及每个社区的规模。
据我所知,一般来说,构建编译器和解析器的 Java 选项似乎使用得更多,但特别是对于这些,Ply 似乎使用得更广泛。
哪一个更好?
java - 解析java中的一元否定
我想要做的是允许像 8 - - - 2 + 3 这样的表达。
对于一元否定,我试过这个
,但它表示负号是错误的操作数类型。
有什么技巧可以做一元否定吗?
java - 如何使用 CUP 消除语法中的歧义?
我有这个语法
(你可以在这里测试它 http://jsmachines.sourceforge.net/machines/lalr1.html)
语法是模棱两可的,它会产生 S/R 冲突,但真正的问题是在解析器工作的ID COMMA ID WRITE
同时输入。ID COMMA ID READ
有没有办法在不改变 CUP 语法的情况下防止这种情况发生?
bison - Java 杯:Shift/Reduce 冲突
我正在尝试使用 JFlex 和 Cup 编写解析器,但是我在处理递归指向符号时遇到了一些问题,例如使用递归属性访问的函数调用,例如:
这是相关的解析器定义:
我得到了以下班次/减少冲突:
有人可以向我解释如何处理这些冲突,或者在哪里可以找到使用 java cup、yacc 或 bison 的工作示例?
jflex - 轮班减少冲突 (CUP)
我正在尝试在我的 cup 文件中定义我的语法,但出现以下错误。
以下是我的 cup 文件中定义的语法。
我相信这与 Fielddecls 如何指代 Type 非终结符有关。但是,我不确定如何消除它。如果可能的话,有人可以提供一些指导来消除这些转变减少错误吗?
cup - 银联编程
编写一个 CUP 解析器来接受 java 风格的接口定义。语法 interface interface_name { function_declaration } ; 函数声明:有一个或多个形式为 public type function_name (argument_list) 的声明;argument_list:一个或多个表单类型的变量声明 variable_name type :可以是任何原始数据类型
parsing - 模棱两可的上下文无关语法?/ 移位/减少 CUP 中的冲突
对于 C++ 的简化版本,我有以下上下文无关语法。当我使用 JFLEX 和 CUP 运行它时,我会得到如下错误列表:
我认为问题出在 instrucoesIf 但我无法弄清楚
parsing - JCup 中的错误恢复。块末尾缺少分号
我正在使用 JLex 和 JCUP 为本科项目构建 LR(1) 解析器。我选择(可能是错误的)尽可能地模仿 C++ 语法和语义。我已经完成了词法分析和解析,但我在 CUP 中遇到了错误恢复。
您可以认为我的语言的语法是 C++ 的语法,因为我所做的更改在这里不起作用(我认为)。我知道使用以下产品进行错误恢复是很常见的:
Statement ::= error SEMICOLON
但是,使用此解析器无法从块末尾丢失的分号(大括号 { } 包围的代码片段)中恢复。事实上,我找不到解析器从中恢复的方法。由于我无法将最后一条指令视为错误,因此我尝试至少将整个块视为错误。我试过了:
Block ::= LEFTBRACE error RIGHTBRACE
但这给了我一个 Shift-Reduce 冲突。我也试过:
Block ::= error RIGHTBRACE
但错误没有解决。
你能帮助从这个错误中恢复吗?
java - 在 Java Cup 中的状态中发现 Shift/Reduce 冲突
我正在尝试在 java cup 中编写解析,但我遇到了冲突
我收到了这个错误;
有人可以解释我在哪里做错了吗?
java - 使用hashmap java将两个键的值与第三个键相加
我正在用 Jflex 和 CUP 制作编译器。我试图让我的编译器使这个例子工作。
我正在努力将x+y之和的值分配给z
这是我的代码的一部分
我的语法是这样的
符号
这是我努力添加 v2 和 v3 的值并将其存储在 v1 中的地方
我在java中编程不多,需要帮助谢谢