问题标签 [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 - 如何解决 SHIFT/REDUCE 冲突 - 在解析器生成器中
我需要帮助来解决这个问题并解释将来如何处理这种 SHIFT/REDUCE CONFLICTS。
我的杯子文件中的几个州之间存在一些冲突。
语法看起来像这样:
我在“(”[ActPars]“)”状态之间存在冲突。
我不想粘贴整个 700 行的杯子文件。我会给你相关的状态和错误输出。
这是第 1 行的代码。)
这是针对第 2 行的。)
错误输出如下所示:
错误:*遇到的冲突比预期的多——解析器生成中止
java - 如何编译cup生成的java文件
我从http://www2.cs.tum.edu/projects/cup/下载了演示,
我parser.java
通过命令得到:
但是当我编译时parser.java
:
结果是:
如何编译 parser.java ?
parsing - CUP LALR 解析器生成器:警告:生产从未减少
这是我第一次使用 CUP 解析器,我不断收到以下错误:“警告:*生产”...“从未使用过。我不知道出了什么问题,请帮忙。请参阅附加的代码和错误日志下面,谢谢。
错误日志:
jflex - 在 CUP 中解析 EOF 令牌
我无法让我的 CUP 解析器解析 EOF 令牌。我在文档中读到,在我的 Jflex 代码中使用该%cup
标志意味着存在如下内容:
这一切都很好,但是当我在我的语法(CUP 文件)中尝试以下第一条规则时:
我收到 CUP 未声明 EOF 的错误消息。
好的,所以我将以下内容添加到我的 CUP 文件中:
不,因为 CUP 告诉我:
但是,在没有定义终端 EOF 的情况下,我查看了sym.java
Cup 生成的类,我发现:
所以我很不知道如何解决这个问题。两者的文档在这个问题上真的很模糊。
编辑:我想解析 EOF 令牌的主要原因是因为我想最后打印出我的符号表和其他用于调试目的的东西。
flex-lexer - JFLEX AND CUP,无法使其正常工作
我正在使用 jflex 和 cup,试图制作一个 html 解析器,但无法使其正常工作,
Netbeans,编译过程不会停止,总是在继续,无法在解析树中正确添加更多“令牌”,也无法在“TEXTO”中添加空格,这会破坏整个树
词典
sintaticoh.cup
java 主程序
谢谢
parsing - 用杯子移位/减少错误
嗨,我正在为我的大学使用的编程语言编写解析器,使用 jflex 和 Cup 我从最初的基本结构开始,例如处理变量声明。
我收到以下错误
我的杯中代码如下所示:
我想我得到了错误,因为进程声明和变量声明都以标识符开头,然后是“:”,然后是终端进程或像整数这样的终端。如果是这样,我想知道如何告诉我的解析器向前看一点。或任何可能的解决方案。
感谢您的回答。
parsing - Java CUP 和 JFlex 交互
我正在考虑将 CUP 解析器生成器用于项目。为了正确解析我将要编译的语言的一些结构,我需要词法分析器(由 JFlex 生成)来使用符号表中的信息(不是解析表——我的意思是我将存储的表有关标识符的信息),以便在调用其 next_token() 方法时生成正确的令牌类型。由于符号表中的信息静态依赖于程序文本,因此只有在使用解析器“同步”调用 next_token() 方法时才会起作用。换句话说,如果解析器在需要另一个标记时调用词法分析器,这将起作用,但如果(例如)有一个并行线程正在调用词法分析器并缓冲队列中的标记,则不会。
因此问题是:CUP 如何调用词法分析器?它是否在需要下一个令牌时调用它?我当然可以只编写一个 CUP 语法规范并检查生成的解析器的源文件以查看发生了什么,但这可能比必要的工作更多。我在相关网站上找不到这方面的任何信息。
非常感谢您提供的任何帮助!
java - Java Cup 安装 Windows
所以我在 Windows 7 环境中安装 Cup 时遇到了一些麻烦。我一直主要关注本指南。我遇到的问题是,当我尝试在文件(.cup)上运行 cup 时,我得到熟悉的“'cup' 不被识别为内部或外部命令、可运行程序或批处理文件”。所以这将是由路径和类路径变量中的错误文件路径引起的,对吧?我已经三重检查了(仍然可能遗漏了什么?),文件路径是类路径 ...\cup 和路径 ...\cup\java_cup
所以我不确定可能出了什么问题,有没有人知道我可以做些什么来改善这种情况。请,如果我忘记了什么,请通知我,我会添加它
编辑:来自系统变量
http://imageshack.com/a/img537/7587/uU0e1a.png
亲切的问候
java - 连接 CUP 和 jflex
我正在尝试使用
http://www2.cs.tum.edu/projects/cup/examples.php
http://www.cs.princeton.edu/~appel/的帮助来链接我的 parser.java 和 yylex.java现代/java/CUP/manual.html
http://jflex.de/manual.html
但我收到了这些错误。
错误:Yylex 不是抽象的,并且不会覆盖 Scanner 中的抽象方法 next_token()
错误:Yylex 中的 next_token() 无法在 Scanner 中实现 next_token()
如何解决它们?
我的 mini.flex 文件是:
我的 mini.cup 文件是:
我编译使用:
抛出的错误是:
Parser.java:19:警告:lr_parser 中的 [deprecation] lr_parser() 已弃用 public Parser() {super();}
^ Parser.java:22:警告:lr_parser 中的 [deprecation] lr_parser(Scanner) 已弃用public Parser(java_cup.runtime.Scanner s) {super(s);}
^ Parser.java:96: 警告:lr_parser 中的 [deprecation] lr_parser(Scanner) 已被弃用 public Parser (java.io.Reader input) { super (新的 Yylex(输入));}
^ Parser.java:137: 警告:[cast] 冗余转换为 Object Object start_val = (Object)((java_cup.runtime.Symbol) CUP$Parser$stack.elementAt(CUP$Parser$top-1)).value ;
^ Yylex.java:12 :错误: Yylex 不是抽象的并且不会覆盖 Scanner
公共类中的抽象方法next_token () () in Scanner public int next_token() throws java.io.IOException { ^ return type int is not compatible with Symbol Yylex.java:631: error: in compatible types { return new java_cup.runtime.Symbol(sym.EOF); } ^ 必需:找到 int :符号3 个错误4 个警告
haskell - 杯子文件的haskell语法
我正在使用 JLex 和 cup 编写用 java 编写的 haskell 编译器。我完成了我的词法分析器文件,现在我正在处理我的 parser.cup 文件,我应该在其中定义我的终端、非终端和语法。我已经完成了终端和非终端部分,但现在我陷入了语法部分,所以任何人都可以帮助或将我重定向到任何链接,我可以在该链接中找到这种形式的 haskell 语法:
任何帮助,将不胜感激 。