1 /* 2 * Copyright 2000-2005 JetBrains s.r.o. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.intellij.lang.javascript; 17 18 import com.intellij.lang.ASTNode; 19 import com.intellij.psi.tree.IElementType; 20 21 /** 22 * Created by IntelliJ IDEA. 23 * User: max 24 * Date: Feb 1, 2005 25 * Time: 7:13:40 PM 26 * To change this template use File | Settings | File Templates. 27 */ 28 public abstract class JSNodeVisitor { 29 public final void visit(ASTNode node) { 30 final IElementType type = node.getElementType(); 31 if (type == JSElementTypes.FILE) { 32 visitFile(node); 33 } 34 else if (type == JSElementTypes.FUNCTION_DECLARATION) { 35 visitFunctionDeclaration(node); 36 } 37 else if (type == JSElementTypes.PARAMETER_LIST) { 38 visitParameterList(node); 39 } 40 else if (type == JSElementTypes.VARIABLE) { 41 visitVariable(node); 42 } 43 else if (type == JSElementTypes.FORMAL_PARAMETER) { 44 visitParameter(node); 45 } 46 else if (type == JSElementTypes.ARGUMENT_LIST) { 47 visitArgumentList(node); 48 } 49 else if (type == JSElementTypes.BLOCK) { 50 visitBlock(node); 51 } 52 else if (type == JSElementTypes.LABELED_STATEMENT) { 53 visitLabeledStatement(node); 54 } 55 else if (type == JSElementTypes.EXPRESSION_STATEMENT) { 56 visitExpressionStatement(node); 57 } 58 else if (type == JSElementTypes.VAR_STATEMENT) { 59 visitVarStatement(node); 60 } 61 else if (type == JSElementTypes.EMPTY_STATEMENT) { 62 visitEmptyStatement(node); 63 } 64 else if (type == JSElementTypes.IF_STATEMENT) { 65 visitIfStatement(node); 66 } 67 else if (type == JSElementTypes.CONTINUE_STATEMENT) { 68 visitContinueStatement(node); 69 } 70 else if (type == JSElementTypes.BREAK_STATEMENT) { 71 visitBreakStatement(node); 72 } 73 else if (type == JSElementTypes.WITH_STATEMENT) { 74 visitWithStatement(node); 75 } 76 else if (type == JSElementTypes.RETURN_STATEMENT) { 77 visitReturnStatement(node); 78 } 79 else if (type == JSElementTypes.THROW_STATEMENT) { 80 visitThrowStatement(node); 81 } 82 else if (type == JSElementTypes.TRY_STATEMENT) { 83 visitTryStatement(node); 84 } 85 else if (type == JSElementTypes.CATCH_BLOCK) { 86 visitCatchBlock(node); 87 } 88 else if (type == JSElementTypes.SWITCH_STATEMENT) { 89 visitSwitchStatement(node); 90 } 91 else if (type == JSElementTypes.CASE_CLAUSE) { 92 visitCaseClause(node); 93 } 94 else if (type == JSElementTypes.WHILE_STATEMENT) { 95 visitWhileStatement(node); 96 } 97 else if (type == JSElementTypes.DOWHILE_STATEMENT) { 98 visitDoWhileStatement(node); 99 } 100 else if (type == JSElementTypes.FOR_STATEMENT) { 101 visitForStatement(node); 102 } 103 else if (type == JSElementTypes.FOR_IN_STATEMENT) { 104 visitForInStatement(node); 105 } 106 else if (type == JSElementTypes.THIS_EXPRESSION) { 107 visitThisExpression(node); 108 } 109 else if (type == JSElementTypes.LITERAL_EXPRESSION) { 110 visitLiteralExpression(node); 111 } 112 else if (type == JSElementTypes.REFERENCE_EXPRESSION) { 113 visitReferenceExpression(node); 114 } 115 else if (type == JSElementTypes.PARENTHESIZED_EXPRESSION) { 116 visitParenthesizedExpression(node); 117 } 118 else if (type == JSElementTypes.ARRAY_LITERAL_EXPRESSION) { 119 visitArrayLiteralExpression(node); 120 } 121 else if (type == JSElementTypes.OBJECT_LITERAL_EXPRESSION) { 122 visitObjectLiteralExpression(node); 123 } 124 else if (type == JSElementTypes.PROPERTY) { 125 visitProperty(node); 126 } 127 else if (type == JSElementTypes.BINARY_EXPRESSION) { 128 visitBinaryExpression(node); 129 } 130 else if (type == JSElementTypes.ASSIGNMENT_EXPRESSION) { 131 visitAssignmentExpression(node); 132 } 133 else if (type == JSElementTypes.COMMA_EXPRESSION) { 134 visitCommaExpression(node); 135 } 136 else if (type == JSElementTypes.CONDITIONAL_EXPRESSION) { 137 visitConditionalExpression(node); 138 } 139 else if (type == JSElementTypes.POSTFIX_EXPRESSION) { 140 visitPostfixExpression(node); 141 } 142 else if (type == JSElementTypes.PREFIX_EXPRESSION) { 143 visitPrefixExpression(node); 144 } 145 else if (type == JSElementTypes.FUNCTION_EXPRESSION) { 146 visitFunctionExpression(node); 147 } 148 else if (type == JSElementTypes.NEW_EXPRESSION) { 149 visitNewExpression(node); 150 } 151 else if (type == JSElementTypes.INDEXED_PROPERTY_ACCESS_EXPRESSION) { 152 visitIndexedPropertyAccessExpression(node); 153 } 154 else if (type == JSElementTypes.CALL_EXPRESSION) { 155 visitCallExpression(node); 156 } 157 else { 158 visitElement(node); 159 } 160 } 161 162 public void visitFile(final ASTNode node) { 163 visitElement(node); 164 } 165 166 public void visitCallExpression(final ASTNode node) { 167 visitExpression(node); 168 } 169 170 public void visitIndexedPropertyAccessExpression(final ASTNode node) { 171 visitExpression(node); 172 } 173 174 public void visitNewExpression(final ASTNode node) { 175 visitExpression(node); 176 } 177 178 public void visitFunctionExpression(final ASTNode node) { 179 visitExpression(node); 180 } 181 182 public void visitPrefixExpression(final ASTNode node) { 183 visitExpression(node); 184 } 185 186 public void visitPostfixExpression(final ASTNode node) { 187 visitExpression(node); 188 } 189 190 public void visitConditionalExpression(final ASTNode node) { 191 visitExpression(node); 192 } 193 194 public void visitCommaExpression(final ASTNode node) { 195 visitBinaryExpression(node); 196 } 197 198 public void visitAssignmentExpression(final ASTNode node) { 199 visitBinaryExpression(node); 200 } 201 202 public void visitBinaryExpression(final ASTNode node) { 203 visitExpression(node); 204 } 205 206 public void visitProperty(final ASTNode node) { 207 visitElement(node); 208 } 209 210 public void visitObjectLiteralExpression(final ASTNode node) { 211 visitExpression(node); 212 } 213 214 public void visitArrayLiteralExpression(final ASTNode node) { 215 visitExpression(node); 216 } 217 218 public void visitParenthesizedExpression(final ASTNode node) { 219 visitExpression(node); 220 } 221 222 public void visitReferenceExpression(final ASTNode node) { 223 visitExpression(node); 224 } 225 226 public void visitLiteralExpression(final ASTNode node) { 227 visitExpression(node); 228 } 229 230 public void visitThisExpression(final ASTNode node) { 231 visitExpression(node); 232 } 233 234 public void visitForInStatement(final ASTNode node) { 235 visitStatement(node); 236 } 237 238 public void visitForStatement(final ASTNode node) { 239 visitStatement(node); 240 } 241 242 public void visitDoWhileStatement(final ASTNode node) { 243 visitStatement(node); 244 } 245 246 public void visitWhileStatement(final ASTNode node) { 247 visitStatement(node); 248 } 249 250 public void visitCaseClause(final ASTNode node) { 251 visitElement(node); 252 } 253 254 public void visitSwitchStatement(final ASTNode node) { 255 visitStatement(node); 256 } 257 258 public void visitCatchBlock(final ASTNode node) { 259 visitElement(node); 260 } 261 262 public void visitTryStatement(final ASTNode node) { 263 visitStatement(node); 264 } 265 266 public void visitThrowStatement(final ASTNode node) { 267 visitStatement(node); 268 } 269 270 public void visitReturnStatement(final ASTNode node) { 271 visitStatement(node); 272 } 273 274 public void visitWithStatement(final ASTNode node) { 275 visitStatement(node); 276 } 277 278 public void visitBreakStatement(final ASTNode node) { 279 visitStatement(node); 280 } 281 282 public void visitContinueStatement(final ASTNode node) { 283 visitStatement(node); 284 } 285 286 public void visitIfStatement(final ASTNode node) { 287 visitStatement(node); 288 } 289 290 public void visitEmptyStatement(final ASTNode node) { 291 visitStatement(node); 292 } 293 294 public void visitVarStatement(final ASTNode node) { 295 visitStatement(node); 296 } 297 298 public void visitExpressionStatement(final ASTNode node) { 299 visitStatement(node); 300 } 301 302 public void visitLabeledStatement(final ASTNode node) { 303 visitStatement(node); 304 } 305 306 public void visitBlock(final ASTNode node) { 307 visitStatement(node); 308 } 309 310 public void visitArgumentList(final ASTNode node) { 311 visitElement(node); 312 } 313 314 public void visitParameter(final ASTNode node) { 315 visitVariable(node); 316 } 317 318 public void visitVariable(final ASTNode node) { 319 visitElement(node); 320 } 321 322 public void visitParameterList(final ASTNode node) { 323 visitElement(node); 324 } 325 326 public void visitElement(final ASTNode node) { 327 328 } 329 330 public void visitSourceElement(final ASTNode node) { 331 visitElement(node); 332 } 333 334 public void visitFunctionDeclaration(final ASTNode node) { 335 visitSourceElement(node); 336 } 337 338 public void visitStatement(final ASTNode node) { 339 visitSourceElement(node); 340 } 341 342 public void visitExpression(final ASTNode node) { 343 visitElement(node); 344 } 345 } 346