You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ms...@apache.org on 2012/12/15 13:58:32 UTC
svn commit: r1422239 -
/incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java
Author: mschmalle
Date: Sat Dec 15 12:58:32 2012
New Revision: 1422239
URL: http://svn.apache.org/viewvc?rev=1422239&view=rev
Log:
Flex:FalconJx Rearranged node switch logically based on AST tree
Modified:
incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java
Modified: incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java
URL: http://svn.apache.org/viewvc/incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java?rev=1422239&r1=1422238&r2=1422239&view=diff
==============================================================================
--- incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java (original)
+++ incubator/flex/whiteboard/mschmalle/falconjx/compiler.jx/src/org/apache/flex/compiler/internal/visitor/ASNodeSwitch.java Sat Dec 15 12:58:32 2012
@@ -21,6 +21,7 @@ package org.apache.flex.compiler.interna
import org.apache.flex.compiler.internal.tree.as.LabeledStatementNode;
import org.apache.flex.compiler.internal.tree.as.NamespaceAccessExpressionNode;
+import org.apache.flex.compiler.tree.ASTNodeID;
import org.apache.flex.compiler.tree.as.IASNode;
import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
import org.apache.flex.compiler.tree.as.IBlockNode;
@@ -69,12 +70,25 @@ import org.apache.flex.compiler.visitor.
import org.apache.flex.compiler.visitor.IASNodeStrategy;
/**
+ * The {@link ASNodeSwitch} class is an {@link IASNodeStrategy} implementation
+ * that handles {@link IASNode} types based on the node interface type.
+ * <p>
+ * All traversable {@link ASTNodeID} node visitor methods are found within the
+ * class {@link #handle(IASNode)} method's if else statements.
+ *
* @author Michael Schmalle
*/
public class ASNodeSwitch implements IASNodeStrategy
{
private IASBlockVisitor visitor;
+ /**
+ * Creates a new node switch using the {@link #visitor} to handle the
+ * {@link IASNode} in the current traverse.
+ *
+ * @param visitor The {@link IASBlockVisitor} strategy that will visit an
+ * {@link IASNode} based on it's type.
+ */
public ASNodeSwitch(IASBlockVisitor visitor)
{
this.visitor = visitor;
@@ -83,8 +97,6 @@ public class ASNodeSwitch implements IAS
@Override
public void handle(IASNode node)
{
- // System.out.println(node.getClass().getName());
-
if (node instanceof ICompilationUnit)
{
visitor.visitCompilationUnit((ICompilationUnit) node);
@@ -97,6 +109,8 @@ public class ASNodeSwitch implements IAS
{
visitor.visitPackage((IPackageNode) node);
}
+
+ // ITypeNode
else if (node instanceof IClassNode)
{
visitor.visitClass((IClassNode) node);
@@ -105,6 +119,8 @@ public class ASNodeSwitch implements IAS
{
visitor.visitInterface((IInterfaceNode) node);
}
+
+ // IScopedDefinitionNode
else if (node instanceof IGetterNode)
{
visitor.visitGetter((IGetterNode) node);
@@ -113,6 +129,12 @@ public class ASNodeSwitch implements IAS
{
visitor.visitSetter((ISetterNode) node);
}
+ else if (node instanceof IFunctionNode)
+ {
+ visitor.visitFunction((IFunctionNode) node);
+ }
+
+ // IVariableNode
else if (node instanceof IParameterNode)
{
visitor.visitParameter((IParameterNode) node);
@@ -121,141 +143,152 @@ public class ASNodeSwitch implements IAS
{
visitor.visitVariable((IVariableNode) node);
}
- else if (node instanceof IFunctionNode)
- {
- visitor.visitFunction((IFunctionNode) node);
- }
else if (node instanceof INamespaceNode)
{
visitor.visitNamespace((INamespaceNode) node);
}
- //
- else if (node instanceof IBlockNode)
- {
- visitor.visitBlock((IBlockNode) node);
- }
- else if (node instanceof IContainerNode)
+ // IStatementNode
+ else if (node instanceof ICatchNode)
{
- visitor.visitContainer((IContainerNode) node);
+ visitor.visitCatch((ICatchNode) node);
}
- else if (node instanceof LabeledStatementNode)
+ else if (node instanceof IForLoopNode)
{
- visitor.visitLabeledStatement((LabeledStatementNode) node);
+ visitor.visitForLoop((IForLoopNode) node);
}
- else if (node instanceof IWhileLoopNode)
+ else if (node instanceof ITerminalNode)
{
- visitor.visitWhileLoop((IWhileLoopNode) node);
+ visitor.visitTerminal((ITerminalNode) node);
}
- else if (node instanceof IForLoopNode)
+ else if (node instanceof ITryNode)
{
- visitor.visitForLoop((IForLoopNode) node);
+ visitor.visitTry((ITryNode) node);
}
else if (node instanceof IWithNode)
{
visitor.visitWith((IWithNode) node);
}
+
+ // IConditionalNode after statements
+ // > IConditionalNode > IStatementNode
+ else if (node instanceof IIfNode)
+ {
+ visitor.visitIf((IIfNode) node);
+ }
else if (node instanceof ISwitchNode)
{
visitor.visitSwitch((ISwitchNode) node);
}
- else if (node instanceof IIfNode)
+ else if (node instanceof IWhileLoopNode)
{
- visitor.visitIf((IIfNode) node);
+ visitor.visitWhileLoop((IWhileLoopNode) node);
}
- else if (node instanceof IIterationFlowNode)
+ else if (node instanceof IConditionalNode)
{
- visitor.visitIterationFlow((IIterationFlowNode) node);
+ visitor.visitConditional((IConditionalNode) node);
}
- else if (node instanceof IThrowNode)
+
+ // IExpressionNode
+ else if (node instanceof IEmbedNode)
{
- visitor.visitThrow((IThrowNode) node);
+ visitor.visitEmbed((IEmbedNode) node);
}
- else if (node instanceof ITryNode)
+ else if (node instanceof IFunctionCallNode)
{
- visitor.visitTry((ITryNode) node);
+ visitor.visitFunctionCall((IFunctionCallNode) node);
}
- else if (node instanceof ICatchNode)
+ else if (node instanceof ITypedExpressionNode)
{
- visitor.visitCatch((ICatchNode) node);
+ visitor.visitTypedExpression((ITypedExpressionNode) node);
+ }
+ else if (node instanceof IIdentifierNode)
+ {
+ visitor.visitIdentifier((IIdentifierNode) node);
}
- else if (node instanceof IFunctionCallNode)
+ // ILiteralNode > IExpressionNode
+ else if (node instanceof INumericLiteralNode)
{
- visitor.visitFunctionCall((IFunctionCallNode) node);
+ visitor.visitNumericLiteral((INumericLiteralNode) node);
}
- else if (node instanceof IObjectLiteralValuePairNode)
+ else if (node instanceof ILiteralNode)
{
- visitor.visitIObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
+ visitor.visitLiteral((ILiteralNode) node);
}
- else if (node instanceof ITernaryOperatorNode)
+
+ // IBinaryOperatorNode > IOperator
+ else if (node instanceof IMemberAccessExpressionNode)
{
- visitor.visitTernaryOperator((ITernaryOperatorNode) node);
+ visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
}
- //
- else if (node instanceof IReturnNode)
+ else if (node instanceof IDynamicAccessNode)
{
- visitor.visitReturn((IReturnNode) node);
+ visitor.visitDynamicAccess((IDynamicAccessNode) node);
}
- else if (node instanceof ILanguageIdentifierNode)
+ else if (node instanceof NamespaceAccessExpressionNode)
{
- visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
+ visitor.visitNamespaceAccessExpression((NamespaceAccessExpressionNode) node);
}
- else if (node instanceof IConditionalNode)
+ else if (node instanceof IBinaryOperatorNode)
{
- visitor.visitConditional((IConditionalNode) node);
+ visitor.visitBinaryOperator((IBinaryOperatorNode) node);
}
- else if (node instanceof IDefaultXMLNamespaceNode)
+ // IUnaryOperatorNode > IOperator
+ else if (node instanceof IUnaryOperatorNode)
{
- visitor.visitDefaultXMLNamespace((IDefaultXMLNamespaceNode) node);
+ visitor.visitUnaryOperator((IUnaryOperatorNode) node);
}
- else if (node instanceof ITypedExpressionNode)
+
+ else if (node instanceof IReturnNode)
{
- visitor.visitTypedExpression((ITypedExpressionNode) node);
+ visitor.visitReturn((IReturnNode) node);
}
- else if (node instanceof IIdentifierNode)
+ else if (node instanceof IThrowNode)
{
- visitor.visitIdentifier((IIdentifierNode) node);
+ visitor.visitThrow((IThrowNode) node);
}
- else if (node instanceof IKeywordNode)
+ else if (node instanceof ITernaryOperatorNode)
{
- visitor.visitKeyword((IKeywordNode) node);
+ visitor.visitTernaryOperator((ITernaryOperatorNode) node);
}
- else if (node instanceof INumericLiteralNode)
+
+ // Container
+ else if (node instanceof IBlockNode)
{
- visitor.visitNumericLiteral((INumericLiteralNode) node);
+ visitor.visitBlock((IBlockNode) node);
}
- else if (node instanceof ILiteralNode)
+ else if (node instanceof IContainerNode)
{
- visitor.visitLiteral((ILiteralNode) node);
+ visitor.visitContainer((IContainerNode) node);
}
- else if (node instanceof ITerminalNode)
+ // TODO (mschmalle) Organize leaf
+
+ else if (node instanceof LabeledStatementNode)
{
- visitor.visitTerminal((ITerminalNode) node);
+ visitor.visitLabeledStatement((LabeledStatementNode) node);
}
-
- // is IBinaryOperatorNode
- else if (node instanceof IMemberAccessExpressionNode)
+ else if (node instanceof IIterationFlowNode)
{
- visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
+ visitor.visitIterationFlow((IIterationFlowNode) node);
}
- else if (node instanceof NamespaceAccessExpressionNode)
+ else if (node instanceof IObjectLiteralValuePairNode)
{
- visitor.visitNamespaceAccessExpression((NamespaceAccessExpressionNode) node);
+ visitor.visitIObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
}
- else if (node instanceof IDynamicAccessNode)
+ else if (node instanceof ILanguageIdentifierNode)
{
- visitor.visitDynamicAccess((IDynamicAccessNode) node);
+ visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
}
- else if (node instanceof IBinaryOperatorNode)
+ else if (node instanceof IDefaultXMLNamespaceNode)
{
- visitor.visitBinaryOperator((IBinaryOperatorNode) node);
+ visitor.visitDefaultXMLNamespace((IDefaultXMLNamespaceNode) node);
}
- else if (node instanceof IUnaryOperatorNode)
+ else if (node instanceof IKeywordNode)
{
- visitor.visitUnaryOperator((IUnaryOperatorNode) node);
+ visitor.visitKeyword((IKeywordNode) node);
}
else if (node instanceof IMetaTagsNode)
{
@@ -265,10 +298,6 @@ public class ASNodeSwitch implements IAS
{
visitor.visitMetaTag((IMetaTagNode) node);
}
- else if (node instanceof IEmbedNode)
- {
- visitor.visitEmbed((IEmbedNode) node);
- }
else if (node instanceof IExpressionNode)
{