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 }