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)
         {