1 // Copyright 2020 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 package com.google.api.generator.engine.ast;
16 
17 public interface AstNodeVisitor {
18   /** Writes the syntatically-correct Java code representation of this node. */
visit(IdentifierNode identifier)19   public void visit(IdentifierNode identifier);
20 
visit(TypeNode type)21   public void visit(TypeNode type);
22 
visit(ScopeNode scope)23   public void visit(ScopeNode scope);
24 
visit(AnnotationNode annotation)25   public void visit(AnnotationNode annotation);
26 
visit(ArrayExpr expr)27   public void visit(ArrayExpr expr);
28 
visit(ConcreteReference reference)29   public void visit(ConcreteReference reference);
30 
visit(VaporReference reference)31   public void visit(VaporReference reference);
32 
33   /** =============================== EXPRESSIONS =============================== */
visit(ValueExpr valueExpr)34   public void visit(ValueExpr valueExpr);
35 
visit(VariableExpr variableExpr)36   public void visit(VariableExpr variableExpr);
37 
visit(TernaryExpr tenaryExpr)38   public void visit(TernaryExpr tenaryExpr);
39 
visit(AssignmentExpr assignmentExpr)40   public void visit(AssignmentExpr assignmentExpr);
41 
visit(MethodInvocationExpr methodInvocationExpr)42   public void visit(MethodInvocationExpr methodInvocationExpr);
43 
visit(CastExpr castExpr)44   public void visit(CastExpr castExpr);
45 
visit(AnonymousClassExpr anonymousClassExpr)46   public void visit(AnonymousClassExpr anonymousClassExpr);
47 
visit(ThrowExpr throwExpr)48   public void visit(ThrowExpr throwExpr);
49 
visit(InstanceofExpr instanceofExpr)50   public void visit(InstanceofExpr instanceofExpr);
51 
visit(NewObjectExpr newObjectExpr)52   public void visit(NewObjectExpr newObjectExpr);
53 
visit(EnumRefExpr enumRefExpr)54   public void visit(EnumRefExpr enumRefExpr);
55 
visit(ReturnExpr returnExpr)56   public void visit(ReturnExpr returnExpr);
57 
visit(ReferenceConstructorExpr referenceConstructorExpr)58   public void visit(ReferenceConstructorExpr referenceConstructorExpr);
59 
visit(ArithmeticOperationExpr arithmeticOperationExpr)60   public void visit(ArithmeticOperationExpr arithmeticOperationExpr);
61 
visit(UnaryOperationExpr unaryOperationExpr)62   public void visit(UnaryOperationExpr unaryOperationExpr);
63 
visit(RelationalOperationExpr relationalOperationExpr)64   public void visit(RelationalOperationExpr relationalOperationExpr);
65 
visit(LogicalOperationExpr logicalOperationExpr)66   public void visit(LogicalOperationExpr logicalOperationExpr);
67 
visit(AssignmentOperationExpr assignmentOperationExpr)68   public void visit(AssignmentOperationExpr assignmentOperationExpr);
69 
visit(LambdaExpr lambdaExpr)70   public void visit(LambdaExpr lambdaExpr);
71 
72   /** =============================== COMMENT =============================== */
visit(LineComment lineComment)73   public void visit(LineComment lineComment);
74 
visit(BlockComment blockComment)75   public void visit(BlockComment blockComment);
76 
visit(JavaDocComment javaDocComment)77   public void visit(JavaDocComment javaDocComment);
78 
79   /** =============================== STATEMENTS =============================== */
visit(ExprStatement exprStatement)80   public void visit(ExprStatement exprStatement);
81 
visit(BlockStatement blockStatement)82   public void visit(BlockStatement blockStatement);
83 
visit(IfStatement ifStatement)84   public void visit(IfStatement ifStatement);
85 
visit(ForStatement forStatement)86   public void visit(ForStatement forStatement);
87 
visit(GeneralForStatement generalForStatement)88   public void visit(GeneralForStatement generalForStatement);
89 
visit(WhileStatement whileStatement)90   public void visit(WhileStatement whileStatement);
91 
visit(TryCatchStatement tryCatchStatement)92   public void visit(TryCatchStatement tryCatchStatement);
93 
visit(SynchronizedStatement synchronizedStatement)94   public void visit(SynchronizedStatement synchronizedStatement);
95 
visit(CommentStatement commentStatement)96   public void visit(CommentStatement commentStatement);
97 
visit(EmptyLineStatement emptyLineStatement)98   public void visit(EmptyLineStatement emptyLineStatement);
99 
visit(BreakStatement breakStatement)100   public void visit(BreakStatement breakStatement);
101 
102   /** =============================== OTHER =============================== */
visit(MethodDefinition methodDefinition)103   public void visit(MethodDefinition methodDefinition);
104 
visit(ClassDefinition classDefinition)105   public void visit(ClassDefinition classDefinition);
106 
visit(PackageInfoDefinition packageInfoDefinition)107   public void visit(PackageInfoDefinition packageInfoDefinition);
108 }
109