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