package me.august.lumen.compile.parser.ast; import me.august.lumen.compile.analyze.ASTVisitor; import me.august.lumen.compile.analyze.VisitorConsumer; import java.util.Arrays; import java.util.List; public class ProgramNode implements VisitorConsumer { ImportNode[] imports; ClassNode classNode; public ProgramNode(ImportNode[] imports, ClassNode classNode) { this.imports = imports; this.classNode = classNode; } public ProgramNode(List<ImportNode> imports, ClassNode classNode) { this.imports = imports.toArray(new ImportNode[imports.size()]); this.classNode = classNode; } public ImportNode[] getImports() { return imports; } public void setImports(ImportNode[] imports) { this.imports = imports; } public ClassNode getClassNode() { return classNode; } public void setClassNode(ClassNode classNode) { this.classNode = classNode; } @Override public void accept(ASTVisitor visitor) { visitor.visitProgram(this); classNode.accept(visitor); visitor.visitProgramEnd(this); } @Override public String toString() { return "ProgramNode{" + "imports=" + Arrays.toString(imports) + ", classNode=" + classNode + '}'; } }