1 /*
   2  * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 package jdk.test.lib.jittester.visitors;
  25 
  26 import jdk.test.lib.jittester.BinaryOperator;
  27 import jdk.test.lib.jittester.Block;
  28 import jdk.test.lib.jittester.Break;
  29 import jdk.test.lib.jittester.CastOperator;
  30 import jdk.test.lib.jittester.CatchBlock;
  31 import jdk.test.lib.jittester.Continue;
  32 import jdk.test.lib.jittester.Declaration;
  33 import jdk.test.lib.jittester.If;
  34 import jdk.test.lib.jittester.Initialization;
  35 import jdk.test.lib.jittester.Literal;
  36 import jdk.test.lib.jittester.LocalVariable;
  37 import jdk.test.lib.jittester.LogicOperator;
  38 import jdk.test.lib.jittester.NonStaticMemberVariable;
  39 import jdk.test.lib.jittester.Nothing;
  40 import jdk.test.lib.jittester.PrintVariables;
  41 import jdk.test.lib.jittester.Statement;
  42 import jdk.test.lib.jittester.StaticMemberVariable;
  43 import jdk.test.lib.jittester.Switch;
  44 import jdk.test.lib.jittester.TernaryOperator;
  45 import jdk.test.lib.jittester.Throw;
  46 import jdk.test.lib.jittester.TryCatchBlock;
  47 import jdk.test.lib.jittester.Type;
  48 import jdk.test.lib.jittester.UnaryOperator;
  49 import jdk.test.lib.jittester.VariableDeclaration;
  50 import jdk.test.lib.jittester.VariableDeclarationBlock;
  51 import jdk.test.lib.jittester.arrays.ArrayCreation;
  52 import jdk.test.lib.jittester.arrays.ArrayElement;
  53 import jdk.test.lib.jittester.arrays.ArrayExtraction;
  54 import jdk.test.lib.jittester.classes.ClassDefinitionBlock;
  55 import jdk.test.lib.jittester.classes.Interface;
  56 import jdk.test.lib.jittester.classes.Klass;
  57 import jdk.test.lib.jittester.classes.MainKlass;
  58 import jdk.test.lib.jittester.functions.ArgumentDeclaration;
  59 import jdk.test.lib.jittester.functions.ConstructorDefinition;
  60 import jdk.test.lib.jittester.functions.ConstructorDefinitionBlock;
  61 import jdk.test.lib.jittester.functions.Function;
  62 import jdk.test.lib.jittester.functions.FunctionDeclaration;
  63 import jdk.test.lib.jittester.functions.FunctionDeclarationBlock;
  64 import jdk.test.lib.jittester.functions.FunctionDefinition;
  65 import jdk.test.lib.jittester.functions.FunctionDefinitionBlock;
  66 import jdk.test.lib.jittester.functions.FunctionRedefinition;
  67 import jdk.test.lib.jittester.functions.FunctionRedefinitionBlock;
  68 import jdk.test.lib.jittester.functions.Return;
  69 import jdk.test.lib.jittester.functions.StaticConstructorDefinition;
  70 import jdk.test.lib.jittester.loops.CounterInitializer;
  71 import jdk.test.lib.jittester.loops.CounterManipulator;
  72 import jdk.test.lib.jittester.loops.DoWhile;
  73 import jdk.test.lib.jittester.loops.For;
  74 import jdk.test.lib.jittester.loops.LoopingCondition;
  75 import jdk.test.lib.jittester.loops.While;
  76 import jdk.test.lib.jittester.types.TypeArray;
  77 
  78 public interface Visitor<T> {
  79     T visit(ArgumentDeclaration node);
  80     T visit(ArrayCreation node);
  81     T visit(ArrayElement node);
  82     T visit(ArrayExtraction node);
  83     T visit(BinaryOperator node);
  84     T visit(Block node);
  85     T visit(Break node);
  86     T visit(CastOperator node);
  87     T visit(ClassDefinitionBlock node);
  88     T visit(ConstructorDefinition node);
  89     T visit(ConstructorDefinitionBlock node);
  90     T visit(Continue node);
  91     T visit(CounterInitializer node);
  92     T visit(CounterManipulator node);
  93     T visit(Declaration node);
  94     T visit(DoWhile node);
  95     T visit(For node);
  96     T visit(Function node);
  97     T visit(FunctionDeclaration node);
  98     T visit(FunctionDeclarationBlock node);
  99     T visit(FunctionDefinition node);
 100     T visit(FunctionDefinitionBlock node);
 101     T visit(FunctionRedefinition node);
 102     T visit(FunctionRedefinitionBlock node);
 103     T visit(If node);
 104     T visit(Initialization node);
 105     T visit(Interface node);
 106     T visit(Klass node);
 107     T visit(Literal node);
 108     T visit(LocalVariable node);
 109     T visit(LogicOperator node);
 110     T visit(LoopingCondition node);
 111     T visit(MainKlass node);
 112     T visit(NonStaticMemberVariable node);
 113     T visit(Nothing node);
 114     T visit(PrintVariables node);
 115     T visit(Return node);
 116     T visit(Throw node);
 117     T visit(Statement node);
 118     T visit(StaticConstructorDefinition node);
 119     T visit(StaticMemberVariable node);
 120     T visit(Switch node);
 121     T visit(TernaryOperator node);
 122     T visit(Type node);
 123     T visit(TypeArray node);
 124     T visit(UnaryOperator node);
 125     T visit(VariableDeclaration node);
 126     T visit(VariableDeclarationBlock node);
 127     T visit(While node);
 128     T visit(CatchBlock node);
 129     T visit(TryCatchBlock node);
 130 }