0

我正在为一种小型编程语言设计一个编译器。我们得到了一个 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 类文件。#< > 语法用于为指定输入生成 AST。

4

0 回答 0