/** * Aptana Studio * Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved. * Licensed under the terms of the GNU Public License (GPL) v3 (with exceptions). * Please see the license.html included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package com.aptana.editor.php.util; import org2.eclipse.php.internal.core.ast.nodes.ASTError; import org2.eclipse.php.internal.core.ast.nodes.ASTNode; import org2.eclipse.php.internal.core.ast.nodes.ArrayAccess; import org2.eclipse.php.internal.core.ast.nodes.ArrayCreation; import org2.eclipse.php.internal.core.ast.nodes.ArrayElement; import org2.eclipse.php.internal.core.ast.nodes.Assignment; import org2.eclipse.php.internal.core.ast.nodes.BackTickExpression; import org2.eclipse.php.internal.core.ast.nodes.Block; import org2.eclipse.php.internal.core.ast.nodes.BreakStatement; import org2.eclipse.php.internal.core.ast.nodes.CastExpression; import org2.eclipse.php.internal.core.ast.nodes.CatchClause; import org2.eclipse.php.internal.core.ast.nodes.ClassDeclaration; import org2.eclipse.php.internal.core.ast.nodes.ClassInstanceCreation; import org2.eclipse.php.internal.core.ast.nodes.ClassName; import org2.eclipse.php.internal.core.ast.nodes.CloneExpression; import org2.eclipse.php.internal.core.ast.nodes.Comment; import org2.eclipse.php.internal.core.ast.nodes.ConditionalExpression; import org2.eclipse.php.internal.core.ast.nodes.ConstantDeclaration; import org2.eclipse.php.internal.core.ast.nodes.ContinueStatement; import org2.eclipse.php.internal.core.ast.nodes.DeclareStatement; import org2.eclipse.php.internal.core.ast.nodes.DoStatement; import org2.eclipse.php.internal.core.ast.nodes.EchoStatement; import org2.eclipse.php.internal.core.ast.nodes.EmptyStatement; import org2.eclipse.php.internal.core.ast.nodes.ExpressionStatement; import org2.eclipse.php.internal.core.ast.nodes.FieldAccess; import org2.eclipse.php.internal.core.ast.nodes.FieldsDeclaration; import org2.eclipse.php.internal.core.ast.nodes.ForEachStatement; import org2.eclipse.php.internal.core.ast.nodes.ForStatement; import org2.eclipse.php.internal.core.ast.nodes.FormalParameter; import org2.eclipse.php.internal.core.ast.nodes.FunctionDeclaration; import org2.eclipse.php.internal.core.ast.nodes.FunctionInvocation; import org2.eclipse.php.internal.core.ast.nodes.FunctionName; import org2.eclipse.php.internal.core.ast.nodes.GlobalStatement; import org2.eclipse.php.internal.core.ast.nodes.GotoLabel; import org2.eclipse.php.internal.core.ast.nodes.GotoStatement; import org2.eclipse.php.internal.core.ast.nodes.Identifier; import org2.eclipse.php.internal.core.ast.nodes.IfStatement; import org2.eclipse.php.internal.core.ast.nodes.IgnoreError; import org2.eclipse.php.internal.core.ast.nodes.InLineHtml; import org2.eclipse.php.internal.core.ast.nodes.Include; import org2.eclipse.php.internal.core.ast.nodes.InfixExpression; import org2.eclipse.php.internal.core.ast.nodes.InstanceOfExpression; import org2.eclipse.php.internal.core.ast.nodes.InterfaceDeclaration; import org2.eclipse.php.internal.core.ast.nodes.LambdaFunctionDeclaration; import org2.eclipse.php.internal.core.ast.nodes.ListVariable; import org2.eclipse.php.internal.core.ast.nodes.MethodDeclaration; import org2.eclipse.php.internal.core.ast.nodes.MethodInvocation; import org2.eclipse.php.internal.core.ast.nodes.NamespaceDeclaration; import org2.eclipse.php.internal.core.ast.nodes.NamespaceName; import org2.eclipse.php.internal.core.ast.nodes.ParenthesisExpression; import org2.eclipse.php.internal.core.ast.nodes.PostfixExpression; import org2.eclipse.php.internal.core.ast.nodes.PrefixExpression; import org2.eclipse.php.internal.core.ast.nodes.Program; import org2.eclipse.php.internal.core.ast.nodes.Quote; import org2.eclipse.php.internal.core.ast.nodes.Reference; import org2.eclipse.php.internal.core.ast.nodes.ReflectionVariable; import org2.eclipse.php.internal.core.ast.nodes.ReturnStatement; import org2.eclipse.php.internal.core.ast.nodes.Scalar; import org2.eclipse.php.internal.core.ast.nodes.StaticConstantAccess; import org2.eclipse.php.internal.core.ast.nodes.StaticFieldAccess; import org2.eclipse.php.internal.core.ast.nodes.StaticMethodInvocation; import org2.eclipse.php.internal.core.ast.nodes.StaticStatement; import org2.eclipse.php.internal.core.ast.nodes.SwitchCase; import org2.eclipse.php.internal.core.ast.nodes.SwitchStatement; import org2.eclipse.php.internal.core.ast.nodes.ThrowStatement; import org2.eclipse.php.internal.core.ast.nodes.TryStatement; import org2.eclipse.php.internal.core.ast.nodes.UnaryOperation; import org2.eclipse.php.internal.core.ast.nodes.UseStatement; import org2.eclipse.php.internal.core.ast.nodes.UseStatementPart; import org2.eclipse.php.internal.core.ast.nodes.Variable; import org2.eclipse.php.internal.core.ast.nodes.WhileStatement; /** * Abstract PHP AST visitor. * * @author Denis Denisenko */ public interface IPHPASTVisitor { /** * Is always called for every node type before any specific node visitor method calls. * * @param node * - visiting node. * @return true if to continue visiting this node and its children, false otherwise. */ public boolean startVisitNode(ASTNode node); /** * Is always called for every node type after any specific node visitor method calls. * * @param node * - visiting node. */ public void afterEndVisitNode(ASTNode node); /** * Is always called for every node type before any specific node visitor method calls. * * @param node * - visiting node. */ public void beforeEndVisitNode(ASTNode node); public boolean visit(ArrayAccess arrayAccess); public boolean visit(ArrayCreation arrayCreation); public boolean visit(ArrayElement arrayElement); public boolean visit(Assignment assignment); public boolean visit(ASTError astError); public boolean visit(BackTickExpression backTickExpression); public boolean visit(Block block); public boolean visit(BreakStatement breakStatement); public boolean visit(CastExpression castExpression); public boolean visit(CatchClause catchClause); public boolean visit(ClassDeclaration classDeclaration); public boolean visit(ClassInstanceCreation classInstanceCreation); public boolean visit(ClassName className); public boolean visit(CloneExpression cloneExpression); public boolean visit(Comment comment); public boolean visit(ConditionalExpression conditionalExpression); public boolean visit(ContinueStatement continueStatement); public boolean visit(DeclareStatement declareStatement); public boolean visit(DoStatement doStatement); public boolean visit(EchoStatement echoStatement); public boolean visit(EmptyStatement emptyStatement); public boolean visit(ExpressionStatement expressionStatement); public boolean visit(FieldAccess fieldAccess); public boolean visit(FieldsDeclaration fieldsDeclaration); public boolean visit(ForEachStatement forEachStatement); public boolean visit(FormalParameter formalParameter); public boolean visit(ForStatement forStatement); public boolean visit(FunctionDeclaration functionDeclaration); public boolean visit(FunctionInvocation functionInvocation); public boolean visit(FunctionName functionName); public boolean visit(GlobalStatement globalStatement); public boolean visit(Identifier identifier); public boolean visit(IfStatement ifStatement); public boolean visit(IgnoreError ignoreError); public boolean visit(Include include); public boolean visit(InfixExpression infixExpression); public boolean visit(InLineHtml inLineHtml); public boolean visit(InstanceOfExpression instanceOfExpression); public boolean visit(InterfaceDeclaration interfaceDeclaration); public boolean visit(ListVariable listVariable); public boolean visit(MethodDeclaration methodDeclaration); public boolean visit(MethodInvocation methodInvocation); public boolean visit(ParenthesisExpression parenthesisExpression); public boolean visit(PostfixExpression postfixExpression); public boolean visit(PrefixExpression prefixExpression); public boolean visit(Program program); public boolean visit(Quote quote); public boolean visit(Reference reference); public boolean visit(ReflectionVariable reflectionVariable); public boolean visit(ReturnStatement returnStatement); public boolean visit(Scalar scalar); public boolean visit(StaticConstantAccess classConstantAccess); public boolean visit(StaticFieldAccess staticFieldAccess); public boolean visit(StaticMethodInvocation staticMethodInvocation); public boolean visit(StaticStatement staticStatement); public boolean visit(SwitchCase switchCase); public boolean visit(SwitchStatement switchStatement); public boolean visit(ThrowStatement throwStatement); public boolean visit(TryStatement tryStatement); public boolean visit(UnaryOperation unaryOperation); public boolean visit(Variable variable); public boolean visit(WhileStatement whileStatement); // /////// public void endVisit(ArrayAccess arrayAccess); public void endVisit(ArrayCreation arrayCreation); public void endVisit(ArrayElement arrayElement); public void endVisit(Assignment assignment); public void endVisit(ASTError astError); public void endVisit(BackTickExpression backTickExpression); public void endVisit(Block block); public void endVisit(BreakStatement breakStatement); public void endVisit(CastExpression castExpression); public void endVisit(CatchClause catchClause); public void endVisit(ClassDeclaration classDeclaration); public void endVisit(ClassInstanceCreation classInstanceCreation); public void endVisit(ClassName className); public void endVisit(CloneExpression cloneExpression); public void endVisit(Comment comment); public void endVisit(ConditionalExpression conditionalExpression); public void endVisit(ContinueStatement continueStatement); public void endVisit(DeclareStatement declareStatement); public void endVisit(DoStatement doStatement); public void endVisit(EchoStatement echoStatement); public void endVisit(EmptyStatement emptyStatement); public void endVisit(ExpressionStatement expressionStatement); public void endVisit(FieldAccess fieldAccess); public void endVisit(FieldsDeclaration fieldsDeclaration); public void endVisit(ForEachStatement forEachStatement); public void endVisit(FormalParameter formalParameter); public void endVisit(ForStatement forStatement); public void endVisit(FunctionDeclaration functionDeclaration); public void endVisit(FunctionInvocation functionInvocation); public void endVisit(FunctionName functionName); public void endVisit(GlobalStatement globalStatement); public void endVisit(Identifier identifier); public void endVisit(IfStatement ifStatement); public void endVisit(IgnoreError ignoreError); public void endVisit(Include include); public void endVisit(InfixExpression infixExpression); public void endVisit(InLineHtml inLineHtml); public void endVisit(InstanceOfExpression instanceOfExpression); public void endVisit(InterfaceDeclaration interfaceDeclaration); public void endVisit(ListVariable listVariable); public void endVisit(MethodDeclaration methodDeclaration); public void endVisit(MethodInvocation methodInvocation); public void endVisit(ParenthesisExpression parenthesisExpression); public void endVisit(PostfixExpression postfixExpression); public void endVisit(PrefixExpression prefixExpression); public void endVisit(Program program); public void endVisit(Quote quote); public void endVisit(Reference reference); public void endVisit(ReflectionVariable reflectionVariable); public void endVisit(ReturnStatement returnStatement); public void endVisit(Scalar scalar); public void endVisit(StaticConstantAccess classConstantAccess); public void endVisit(StaticFieldAccess staticFieldAccess); public void endVisit(StaticMethodInvocation staticMethodInvocation); public void endVisit(StaticStatement staticStatement); public void endVisit(SwitchCase switchCase); public void endVisit(SwitchStatement switchStatement); public void endVisit(ThrowStatement throwStatement); public void endVisit(TryStatement tryStatement); public void endVisit(UnaryOperation unaryOperation); public void endVisit(Variable variable); public void endVisit(WhileStatement whileStatement); public boolean visit(NamespaceDeclaration node); public void endVisit(NamespaceDeclaration node); public boolean visit(NamespaceName node); public void endVisit(NamespaceName node); public boolean visit(LambdaFunctionDeclaration node); public void endVisit(LambdaFunctionDeclaration node); public boolean visit(GotoLabel node); public void endVisit(GotoLabel node); public boolean visit(GotoStatement node); public void endVisit(GotoStatement node); public boolean visit(ConstantDeclaration node); public void endVisit(ConstantDeclaration node); public boolean visit(UseStatementPart node); public void endVisit(UseStatementPart node); public boolean visit(UseStatement node); public void endVisit(UseStatement node); }