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 24package jdk.test.lib.jittester.visitors; 25 26import jdk.test.lib.jittester.BinaryOperator; 27import jdk.test.lib.jittester.Block; 28import jdk.test.lib.jittester.Break; 29import jdk.test.lib.jittester.CastOperator; 30import jdk.test.lib.jittester.CatchBlock; 31import jdk.test.lib.jittester.Continue; 32import jdk.test.lib.jittester.Declaration; 33import jdk.test.lib.jittester.If; 34import jdk.test.lib.jittester.Initialization; 35import jdk.test.lib.jittester.Literal; 36import jdk.test.lib.jittester.LocalVariable; 37import jdk.test.lib.jittester.NonStaticMemberVariable; 38import jdk.test.lib.jittester.Nothing; 39import jdk.test.lib.jittester.PrintVariables; 40import jdk.test.lib.jittester.Statement; 41import jdk.test.lib.jittester.StaticMemberVariable; 42import jdk.test.lib.jittester.Switch; 43import jdk.test.lib.jittester.TernaryOperator; 44import jdk.test.lib.jittester.Throw; 45import jdk.test.lib.jittester.TryCatchBlock; 46import jdk.test.lib.jittester.Type; 47import jdk.test.lib.jittester.UnaryOperator; 48import jdk.test.lib.jittester.VariableDeclaration; 49import jdk.test.lib.jittester.VariableDeclarationBlock; 50import jdk.test.lib.jittester.arrays.ArrayCreation; 51import jdk.test.lib.jittester.arrays.ArrayElement; 52import jdk.test.lib.jittester.arrays.ArrayExtraction; 53import jdk.test.lib.jittester.classes.ClassDefinitionBlock; 54import jdk.test.lib.jittester.classes.Interface; 55import jdk.test.lib.jittester.classes.Klass; 56import jdk.test.lib.jittester.classes.MainKlass; 57import jdk.test.lib.jittester.functions.ArgumentDeclaration; 58import jdk.test.lib.jittester.functions.ConstructorDefinition; 59import jdk.test.lib.jittester.functions.ConstructorDefinitionBlock; 60import jdk.test.lib.jittester.functions.Function; 61import jdk.test.lib.jittester.functions.FunctionDeclaration; 62import jdk.test.lib.jittester.functions.FunctionDeclarationBlock; 63import jdk.test.lib.jittester.functions.FunctionDefinition; 64import jdk.test.lib.jittester.functions.FunctionDefinitionBlock; 65import jdk.test.lib.jittester.functions.FunctionRedefinition; 66import jdk.test.lib.jittester.functions.FunctionRedefinitionBlock; 67import jdk.test.lib.jittester.functions.Return; 68import jdk.test.lib.jittester.functions.StaticConstructorDefinition; 69import jdk.test.lib.jittester.loops.CounterInitializer; 70import jdk.test.lib.jittester.loops.CounterManipulator; 71import jdk.test.lib.jittester.loops.DoWhile; 72import jdk.test.lib.jittester.loops.For; 73import jdk.test.lib.jittester.loops.LoopingCondition; 74import jdk.test.lib.jittester.loops.While; 75import jdk.test.lib.jittester.types.TypeArray; 76 77public interface Visitor<T> { 78 T visit(ArgumentDeclaration node); 79 T visit(ArrayCreation node); 80 T visit(ArrayElement node); 81 T visit(ArrayExtraction node); 82 T visit(BinaryOperator node); 83 T visit(Block node); 84 T visit(Break node); 85 T visit(CastOperator node); 86 T visit(ClassDefinitionBlock node); 87 T visit(ConstructorDefinition node); 88 T visit(ConstructorDefinitionBlock node); 89 T visit(Continue node); 90 T visit(CounterInitializer node); 91 T visit(CounterManipulator node); 92 T visit(Declaration node); 93 T visit(DoWhile node); 94 T visit(For node); 95 T visit(Function node); 96 T visit(FunctionDeclaration node); 97 T visit(FunctionDeclarationBlock node); 98 T visit(FunctionDefinition node); 99 T visit(FunctionDefinitionBlock node); 100 T visit(FunctionRedefinition node); 101 T visit(FunctionRedefinitionBlock node); 102 T visit(If node); 103 T visit(Initialization node); 104 T visit(Interface node); 105 T visit(Klass node); 106 T visit(Literal node); 107 T visit(LocalVariable node); 108 T visit(LoopingCondition node); 109 T visit(MainKlass node); 110 T visit(NonStaticMemberVariable node); 111 T visit(Nothing node); 112 T visit(PrintVariables node); 113 T visit(Return node); 114 T visit(Throw node); 115 T visit(Statement node); 116 T visit(StaticConstructorDefinition node); 117 T visit(StaticMemberVariable node); 118 T visit(Switch node); 119 T visit(TernaryOperator node); 120 T visit(Type node); 121 T visit(TypeArray node); 122 T visit(UnaryOperator node); 123 T visit(VariableDeclaration node); 124 T visit(VariableDeclarationBlock node); 125 T visit(While node); 126 T visit(CatchBlock node); 127 T visit(TryCatchBlock node); 128} 129