001// 002// Generated by JTB 1.3.2 003// 004 005package com.randomnoun.common.jexl.visitor; 006import com.randomnoun.common.jexl.ast.*; 007import java.util.*; 008 009/** 010 * Provides default methods which visit each node in the tree in depth-first 011 * order. Your visitors may extend this class. 012 */ 013public class DepthFirstVisitor implements Visitor { 014 // 015 // Auto class visitors--probably don't need to be overridden. 016 // 017 public void visit(NodeList n) { 018 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) 019 e.nextElement().accept(this); 020 } 021 022 public void visit(NodeListOptional n) { 023 if ( n.present() ) 024 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) 025 e.nextElement().accept(this); 026 } 027 028 public void visit(NodeOptional n) { 029 if ( n.present() ) 030 n.node.accept(this); 031 } 032 033 public void visit(NodeSequence n) { 034 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) 035 e.nextElement().accept(this); 036 } 037 038 public void visit(NodeToken n) { } 039 040 // 041 // User-generated visitor methods below 042 // 043 044 /** 045 * <PRE> 046 * expression -> Expression() 047 * nodeToken -> <EOF> 048 * </PRE> 049 */ 050 public void visit(TopLevelExpression n) { 051 n.expression.accept(this); 052 n.nodeToken.accept(this); 053 } 054 055 /** 056 * <PRE> 057 * conditionalAndExpression -> ConditionalAndExpression() 058 * nodeListOptional -> ( "||" ConditionalAndExpression() )* 059 * </PRE> 060 */ 061 public void visit(Expression n) { 062 n.conditionalAndExpression.accept(this); 063 n.nodeListOptional.accept(this); 064 } 065 066 /** 067 * <PRE> 068 * equalityExpression -> EqualityExpression() 069 * nodeListOptional -> ( "&&" EqualityExpression() )* 070 * </PRE> 071 */ 072 public void visit(ConditionalAndExpression n) { 073 n.equalityExpression.accept(this); 074 n.nodeListOptional.accept(this); 075 } 076 077 /** 078 * <PRE> 079 * relationalExpression -> RelationalExpression() 080 * nodeListOptional -> ( ( "==" | "!=" ) RelationalExpression() )* 081 * </PRE> 082 */ 083 public void visit(EqualityExpression n) { 084 n.relationalExpression.accept(this); 085 n.nodeListOptional.accept(this); 086 } 087 088 /** 089 * <PRE> 090 * additiveExpression -> AdditiveExpression() 091 * nodeListOptional -> ( ( "<" | ">" | "<=" | ">=" ) AdditiveExpression() )* 092 * </PRE> 093 */ 094 public void visit(RelationalExpression n) { 095 n.additiveExpression.accept(this); 096 n.nodeListOptional.accept(this); 097 } 098 099 /** 100 * <PRE> 101 * multiplicativeExpression -> MultiplicativeExpression() 102 * nodeListOptional -> ( ( "+" | "-" ) MultiplicativeExpression() )* 103 * </PRE> 104 */ 105 public void visit(AdditiveExpression n) { 106 n.multiplicativeExpression.accept(this); 107 n.nodeListOptional.accept(this); 108 } 109 110 /** 111 * <PRE> 112 * unaryExpression -> UnaryExpression() 113 * nodeListOptional -> ( ( "*" | "/" | "%" ) UnaryExpression() )* 114 * </PRE> 115 */ 116 public void visit(MultiplicativeExpression n) { 117 n.unaryExpression.accept(this); 118 n.nodeListOptional.accept(this); 119 } 120 121 /** 122 * <PRE> 123 * nodeChoice -> ( "~" | "!" | "-" ) UnaryExpression() 124 * | PrimaryExpression() 125 * </PRE> 126 */ 127 public void visit(UnaryExpression n) { 128 n.nodeChoice.accept(this); 129 } 130 131 /** 132 * <PRE> 133 * nodeChoice -> FunctionCall() 134 * | Name() 135 * | Literal() 136 * | "(" Expression() ")" 137 * </PRE> 138 */ 139 public void visit(PrimaryExpression n) { 140 n.nodeChoice.accept(this); 141 } 142 143 /** 144 * <PRE> 145 * nodeToken -> <IDENTIFIER> 146 * nodeListOptional -> ( "." <IDENTIFIER> )* 147 * </PRE> 148 */ 149 public void visit(Name n) { 150 n.nodeToken.accept(this); 151 n.nodeListOptional.accept(this); 152 } 153 154 /** 155 * <PRE> 156 * nodeToken -> <IDENTIFIER> 157 * arguments -> Arguments() 158 * </PRE> 159 */ 160 public void visit(FunctionCall n) { 161 n.nodeToken.accept(this); 162 n.arguments.accept(this); 163 } 164 165 /** 166 * <PRE> 167 * nodeToken -> "(" 168 * nodeOptional -> [ ArgumentList() ] 169 * nodeToken1 -> ")" 170 * </PRE> 171 */ 172 public void visit(Arguments n) { 173 n.nodeToken.accept(this); 174 n.nodeOptional.accept(this); 175 n.nodeToken1.accept(this); 176 } 177 178 /** 179 * <PRE> 180 * expression -> Expression() 181 * nodeListOptional -> ( "," Expression() )* 182 * </PRE> 183 */ 184 public void visit(ArgumentList n) { 185 n.expression.accept(this); 186 n.nodeListOptional.accept(this); 187 } 188 189 /** 190 * <PRE> 191 * nodeChoice -> <INTEGER_LITERAL> 192 * | <FLOATING_POINT_LITERAL> 193 * | <CHARACTER_LITERAL> 194 * | <STRING_LITERAL> 195 * | BooleanLiteral() 196 * | NullLiteral() 197 * </PRE> 198 */ 199 public void visit(Literal n) { 200 n.nodeChoice.accept(this); 201 } 202 203 /** 204 * <PRE> 205 * nodeChoice -> "true" 206 * | "false" 207 * </PRE> 208 */ 209 public void visit(BooleanLiteral n) { 210 n.nodeChoice.accept(this); 211 } 212 213 /** 214 * <PRE> 215 * nodeToken -> "null" 216 * </PRE> 217 */ 218 public void visit(NullLiteral n) { 219 n.nodeToken.accept(this); 220 } 221 222}