Add 'Container' and 'UseNamespace' node handler stubs Signed-off-by: Erik de Bruin <[email protected]>
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 <[email protected]> Authored: Fri Oct 31 17:18:12 2014 +0100 Committer: Erik de Bruin <[email protected]> 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); }
