⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 visitor.java

📁 The triangle language processor will be consist of a compiler, an interpreter, and a disassembler
💻 JAVA
字号:
/* * @(#)Visitor.java                        2.1 2003/10/07 * * Copyright (C) 1999, 2003 D.A. Watt and D.F. Brown * Dept. of Computing Science, University of Glasgow, Glasgow G12 8QQ Scotland * and School of Computer and Math Sciences, The Robert Gordon University, * St. Andrew Street, Aberdeen AB25 1HG, Scotland. * All rights reserved. * * This software is provided free for educational use only. It may * not be used for commercial purposes without the prior written permission * of the authors. */package Triangle.AbstractSyntaxTrees;public interface Visitor {  // Commands  public abstract Object visitAssignCommand(AssignCommand ast, Object o);  public abstract Object visitCallCommand(CallCommand ast, Object o);  public abstract Object visitEmptyCommand(EmptyCommand ast, Object o);  public abstract Object visitIfCommand(IfCommand ast, Object o);  public abstract Object visitLetCommand(LetCommand ast, Object o);  public abstract Object visitSequentialCommand(SequentialCommand ast, Object o);  public abstract Object visitWhileCommand(WhileCommand ast, Object o);  // Expressions  public abstract Object visitArrayExpression(ArrayExpression ast, Object o);  public abstract Object visitBinaryExpression(BinaryExpression ast, Object o);  public abstract Object visitCallExpression(CallExpression ast, Object o);  public abstract Object visitCharacterExpression(CharacterExpression ast, Object o);  public abstract Object visitEmptyExpression(EmptyExpression ast, Object o);  public abstract Object visitIfExpression(IfExpression ast, Object o);  public abstract Object visitIntegerExpression(IntegerExpression ast, Object o);  public abstract Object visitLetExpression(LetExpression ast, Object o);  public abstract Object visitRecordExpression(RecordExpression ast, Object o);  public abstract Object visitUnaryExpression(UnaryExpression ast, Object o);  public abstract Object visitVnameExpression(VnameExpression ast, Object o);  // Declarations  public abstract Object visitBinaryOperatorDeclaration(BinaryOperatorDeclaration ast, Object o);  public abstract Object visitConstDeclaration(ConstDeclaration ast, Object o);  public abstract Object visitFuncDeclaration(FuncDeclaration ast, Object o);  public abstract Object visitProcDeclaration(ProcDeclaration ast, Object o);  public abstract Object visitSequentialDeclaration(SequentialDeclaration ast, Object o);  public abstract Object visitTypeDeclaration(TypeDeclaration ast, Object o);  public abstract Object visitUnaryOperatorDeclaration(UnaryOperatorDeclaration ast, Object o);  public abstract Object visitVarDeclaration(VarDeclaration ast, Object o);  // Array Aggregates  public abstract Object visitMultipleArrayAggregate(MultipleArrayAggregate ast, Object o);  public abstract Object visitSingleArrayAggregate(SingleArrayAggregate ast, Object o);  // Record Aggregates  public abstract Object visitMultipleRecordAggregate(MultipleRecordAggregate ast, Object o);  public abstract Object visitSingleRecordAggregate(SingleRecordAggregate ast, Object o);  // Formal Parameters  public abstract Object visitConstFormalParameter(ConstFormalParameter ast, Object o);  public abstract Object visitFuncFormalParameter(FuncFormalParameter ast, Object o);  public abstract Object visitProcFormalParameter(ProcFormalParameter ast, Object o);  public abstract Object visitVarFormalParameter(VarFormalParameter ast, Object o);  public abstract Object visitEmptyFormalParameterSequence(EmptyFormalParameterSequence ast, Object o);  public abstract Object visitMultipleFormalParameterSequence(MultipleFormalParameterSequence ast, Object o);  public abstract Object visitSingleFormalParameterSequence(SingleFormalParameterSequence ast, Object o);  // Actual Parameters  public abstract Object visitConstActualParameter(ConstActualParameter ast, Object o);  public abstract Object visitFuncActualParameter(FuncActualParameter ast, Object o);  public abstract Object visitProcActualParameter(ProcActualParameter ast, Object o);  public abstract Object visitVarActualParameter(VarActualParameter ast, Object o);  public abstract Object visitEmptyActualParameterSequence(EmptyActualParameterSequence ast, Object o);  public abstract Object visitMultipleActualParameterSequence(MultipleActualParameterSequence ast, Object o);  public abstract Object visitSingleActualParameterSequence(SingleActualParameterSequence ast, Object o);  // Type Denoters  public abstract Object visitAnyTypeDenoter(AnyTypeDenoter ast, Object o);  public abstract Object visitArrayTypeDenoter(ArrayTypeDenoter ast, Object o);  public abstract Object visitBoolTypeDenoter(BoolTypeDenoter ast, Object o);  public abstract Object visitCharTypeDenoter(CharTypeDenoter ast, Object o);  public abstract Object visitErrorTypeDenoter(ErrorTypeDenoter ast, Object o);  public abstract Object visitSimpleTypeDenoter(SimpleTypeDenoter ast, Object o);  public abstract Object visitIntTypeDenoter(IntTypeDenoter ast, Object o);  public abstract Object visitRecordTypeDenoter(RecordTypeDenoter ast, Object o);  public abstract Object visitMultipleFieldTypeDenoter(MultipleFieldTypeDenoter ast, Object o);  public abstract Object visitSingleFieldTypeDenoter(SingleFieldTypeDenoter ast, Object o);  // Literals, Identifiers and Operators  public abstract Object visitCharacterLiteral(CharacterLiteral ast, Object o);  public abstract Object visitIdentifier(Identifier ast, Object o);  public abstract Object visitIntegerLiteral(IntegerLiteral ast, Object o);  public abstract Object visitOperator(Operator ast, Object o);  // Value-or-variable names  public abstract Object visitDotVname(DotVname ast, Object o);  public abstract Object visitSimpleVname(SimpleVname ast, Object o);  public abstract Object visitSubscriptVname(SubscriptVname ast, Object o);  // Programs  public abstract Object visitProgram(Program ast, Object o);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -