我正在为一种小型编程语言设计编译器。我们获得了一个java预处理器(GEN包),它可以生成编译器所需的AST。我们必须将特定格式的输入语法提供给GEN文件。 GEN文件将自动生成java类文件。我的GEN文件正在正确编译。但是,无论我在GEN代码中更改了什么,生成的JAVA类文件都会出现以下错误。
PcatParser.java:1022: cannot find symbol
symbol : class trees
location: class pcat.CUP$PcatParser$actions
我搜索了这个错误,发现它与正在使用的错误包或未声明的变量有关。但是,在我的情况下,错误是在运行时获得的。我不确定这里出了什么问题。
/********************************************************************************
*
* File: pcat.gen
* The PCAT parser
*
********************************************************************************/
package pcat;
import Gen.*;
import java_cup.runtime.*;
parser code {:
//Terminal and non terminal declarations for the grammar
start with program;
program ::= PROGRAM IS body:b SEMI
{: PcatParser.program_AST = #<ProcDecs(ProcDec(main,NoTyp(),`b))>; :}
;
PcatParser.program_AST生成PcatParser.java类文件。 #&lt; &GT;语法用于为指定的输入生成AST。