You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2014/10/31 17:50:36 UTC

[02/14] git commit: [flex-falcon] [refs/heads/develop] - Add 'Container' and 'UseNamespace' node handler stubs

Add 'Container' and 'UseNamespace' node handler stubs

Signed-off-by: Erik de Bruin <er...@ixsoftware.nl>


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/86f0644e
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/86f0644e
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/86f0644e

Branch: refs/heads/develop
Commit: 86f0644ee9e7c5f63080ee7ca1e1bb5ac136c77e
Parents: 11d72ec
Author: Erik de Bruin <er...@ixsoftware.nl>
Authored: Fri Oct 31 17:18:12 2014 +0100
Committer: Erik de Bruin <er...@ixsoftware.nl>
Committed: Fri Oct 31 17:44:03 2014 +0100

----------------------------------------------------------------------
 .../apache/flex/compiler/codegen/as/IASEmitter.java |  6 ++++++
 .../compiler/internal/codegen/as/ASBlockWalker.java | 16 ++++++++++++++++
 .../compiler/internal/codegen/as/ASEmitter.java     | 11 +++++++++++
 .../internal/codegen/js/vf2js/JSVF2JSEmitter.java   | 13 +++++++++++++
 .../compiler/internal/visitor/as/ASNodeSwitch.java  | 10 ++++++++--
 .../flex/compiler/visitor/as/IASBlockVisitor.java   |  6 ++++++
 6 files changed, 60 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/codegen/as/IASEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/codegen/as/IASEmitter.java b/compiler.jx/src/org/apache/flex/compiler/codegen/as/IASEmitter.java
index e1c0e01..df9bbcc 100644
--- a/compiler.jx/src/org/apache/flex/compiler/codegen/as/IASEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/codegen/as/IASEmitter.java
@@ -30,6 +30,7 @@ import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
 import org.apache.flex.compiler.tree.as.IBlockNode;
 import org.apache.flex.compiler.tree.as.ICatchNode;
 import org.apache.flex.compiler.tree.as.IClassNode;
+import org.apache.flex.compiler.tree.as.IContainerNode;
 import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
 import org.apache.flex.compiler.tree.as.IForLoopNode;
 import org.apache.flex.compiler.tree.as.IFunctionCallNode;
@@ -59,6 +60,7 @@ import org.apache.flex.compiler.tree.as.IThrowNode;
 import org.apache.flex.compiler.tree.as.ITryNode;
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IUseNamespaceNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.as.IWhileLoopNode;
@@ -354,6 +356,10 @@ public interface IASEmitter extends IEmitter
 
     void emitMetaTag(IMetaTagNode node);
 
+    void emitContainer(IContainerNode node);
+
     void emitE4XFilter(IMemberAccessExpressionNode node);
 
+    void emitUseNamespace(IUseNamespaceNode node);
+
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASBlockWalker.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASBlockWalker.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASBlockWalker.java
index 069e934..293d8e8 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASBlockWalker.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASBlockWalker.java
@@ -33,6 +33,7 @@ import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
 import org.apache.flex.compiler.tree.as.IBlockNode;
 import org.apache.flex.compiler.tree.as.ICatchNode;
 import org.apache.flex.compiler.tree.as.IClassNode;
+import org.apache.flex.compiler.tree.as.IContainerNode;
 import org.apache.flex.compiler.tree.as.IDefaultXMLNamespaceNode;
 import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
 import org.apache.flex.compiler.tree.as.IEmbedNode;
@@ -70,6 +71,7 @@ import org.apache.flex.compiler.tree.as.IThrowNode;
 import org.apache.flex.compiler.tree.as.ITryNode;
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IUseNamespaceNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.as.IWhileLoopNode;
@@ -549,6 +551,13 @@ public class ASBlockWalker implements IASBlockVisitor, IASBlockWalker
     }
 
     @Override
+    public void visitUseNamespace(IUseNamespaceNode node)
+    {
+        debug("visitUseNamespace(" + node.getTargetNamespace() + ")");
+        emitter.emitUseNamespace(node);
+    }
+
+    @Override
     public void visitEmbed(IEmbedNode node)
     {
         debug("visitEmbed(" + node.getAttributes()[0].getValue() + ")");
@@ -556,6 +565,13 @@ public class ASBlockWalker implements IASBlockVisitor, IASBlockWalker
     }
 
     @Override
+    public void visitContainer(IContainerNode node)
+    {
+        debug("visitContainer()");
+        emitter.emitContainer(node);
+    }
+
+    @Override
     public void visitE4XFilter(IMemberAccessExpressionNode node)
     {
         debug("visitE4XFilter()");

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
index cd08e22..b84d1f2 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
@@ -88,6 +88,7 @@ import org.apache.flex.compiler.tree.as.ITryNode;
 import org.apache.flex.compiler.tree.as.ITypeNode;
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IUseNamespaceNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.as.IWhileLoopNode;
@@ -1448,8 +1449,18 @@ public class ASEmitter implements IASEmitter, IEmitter
     {
     }
 
+    public void emitContainer(IContainerNode node)
+    {
+    }
+
     public void emitE4XFilter(IMemberAccessExpressionNode node)
     {
+    	// ToDo (erikdebruin)
+    }
+
+    public void emitUseNamespace(IUseNamespaceNode node)
+    {
+    	// ToDo (erikdebruin)
     }
 
     public String stringifyNode(IASNode node)

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
index 0ca8e4b..5b230e1 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
@@ -1719,4 +1719,17 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         write(ASEmitterTokens.SINGLE_QUOTE);
     }
 
+    @Override
+    public void emitContainer(IContainerNode node)
+    {
+        int nodeCount = node.getChildCount();
+        for (int i = 0; i < nodeCount; i++)
+        {
+            getWalker().walk(node.getChild(i));
+            
+            if (i < nodeCount - 1)
+            	writeToken(ASEmitterTokens.COMMA);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java b/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
index a64b599..cd75f31 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
@@ -29,6 +29,7 @@ import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
 import org.apache.flex.compiler.tree.as.IBlockNode;
 import org.apache.flex.compiler.tree.as.ICatchNode;
 import org.apache.flex.compiler.tree.as.IClassNode;
+import org.apache.flex.compiler.tree.as.IContainerNode;
 import org.apache.flex.compiler.tree.as.IDefaultXMLNamespaceNode;
 import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
 import org.apache.flex.compiler.tree.as.IEmbedNode;
@@ -63,6 +64,7 @@ import org.apache.flex.compiler.tree.as.IThrowNode;
 import org.apache.flex.compiler.tree.as.ITryNode;
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IUseNamespaceNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.as.IWhileLoopNode;
@@ -109,7 +111,7 @@ public class ASNodeSwitch implements IASNodeStrategy
         switch (node.getNodeID())
         {
         case ContainerID:
-            // ToDo (erikdebruin): implement handler
+            visitor.visitContainer((IContainerNode) node);
             return;
 
         case ConfigBlockID:
@@ -314,7 +316,11 @@ public class ASNodeSwitch implements IASNodeStrategy
         }
 
         // IExpressionNode
-        if (node instanceof IEmbedNode)
+        if (node instanceof IUseNamespaceNode)
+        {
+            visitor.visitUseNamespace((IUseNamespaceNode) node);
+        }
+        else if (node instanceof IEmbedNode)
         {
             visitor.visitEmbed((IEmbedNode) node);
         }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/86f0644e/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java b/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
index 0376dba..db3cda0 100644
--- a/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
+++ b/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
@@ -26,6 +26,7 @@ import org.apache.flex.compiler.tree.as.IBinaryOperatorNode;
 import org.apache.flex.compiler.tree.as.IBlockNode;
 import org.apache.flex.compiler.tree.as.ICatchNode;
 import org.apache.flex.compiler.tree.as.IClassNode;
+import org.apache.flex.compiler.tree.as.IContainerNode;
 import org.apache.flex.compiler.tree.as.IDefaultXMLNamespaceNode;
 import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
 import org.apache.flex.compiler.tree.as.IEmbedNode;
@@ -60,6 +61,7 @@ import org.apache.flex.compiler.tree.as.IThrowNode;
 import org.apache.flex.compiler.tree.as.ITryNode;
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
+import org.apache.flex.compiler.tree.as.IUseNamespaceNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.tree.as.IWhileLoopNode;
@@ -216,8 +218,12 @@ public interface IASBlockVisitor extends IBlockVisitor
 
     void visitMetaTag(IMetaTagNode node);
 
+    void visitUseNamespace(IUseNamespaceNode node);
+
     void visitEmbed(IEmbedNode node);
 
+    void visitContainer(IContainerNode node);
+
     void visitE4XFilter(IMemberAccessExpressionNode node);
 
 }