flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mschma...@apache.org
Subject svn commit: r1452955 [9/9] - in /flex/falcon/trunk: compiler.jx.tests/src/org/apache/flex/compiler/internal/as/ compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/ compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/as/ compile...
Date Tue, 05 Mar 2013 19:22:09 GMT
Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,351 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.internal.visitor.as;
+
+import org.apache.flex.compiler.internal.tree.as.BinaryOperatorAsNode;
+import org.apache.flex.compiler.internal.tree.as.BinaryOperatorIsNode;
+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;
+import org.apache.flex.compiler.tree.as.ICatchNode;
+import org.apache.flex.compiler.tree.as.IClassNode;
+import org.apache.flex.compiler.tree.as.IDefaultXMLNamespaceNode;
+import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
+import org.apache.flex.compiler.tree.as.IEmbedNode;
+import org.apache.flex.compiler.tree.as.IExpressionNode;
+import org.apache.flex.compiler.tree.as.IFileNode;
+import org.apache.flex.compiler.tree.as.IForLoopNode;
+import org.apache.flex.compiler.tree.as.IFunctionCallNode;
+import org.apache.flex.compiler.tree.as.IFunctionNode;
+import org.apache.flex.compiler.tree.as.IGetterNode;
+import org.apache.flex.compiler.tree.as.IIdentifierNode;
+import org.apache.flex.compiler.tree.as.IIfNode;
+import org.apache.flex.compiler.tree.as.IImportNode;
+import org.apache.flex.compiler.tree.as.IInterfaceNode;
+import org.apache.flex.compiler.tree.as.IIterationFlowNode;
+import org.apache.flex.compiler.tree.as.IKeywordNode;
+import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
+import org.apache.flex.compiler.tree.as.ILiteralNode;
+import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
+import org.apache.flex.compiler.tree.as.INamespaceNode;
+import org.apache.flex.compiler.tree.as.INumericLiteralNode;
+import org.apache.flex.compiler.tree.as.IObjectLiteralValuePairNode;
+import org.apache.flex.compiler.tree.as.IPackageNode;
+import org.apache.flex.compiler.tree.as.IParameterNode;
+import org.apache.flex.compiler.tree.as.IReturnNode;
+import org.apache.flex.compiler.tree.as.ISetterNode;
+import org.apache.flex.compiler.tree.as.ISwitchNode;
+import org.apache.flex.compiler.tree.as.ITerminalNode;
+import org.apache.flex.compiler.tree.as.ITernaryOperatorNode;
+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.IVariableNode;
+import org.apache.flex.compiler.tree.as.IWhileLoopNode;
+import org.apache.flex.compiler.tree.as.IWithNode;
+import org.apache.flex.compiler.tree.metadata.IMetaTagNode;
+import org.apache.flex.compiler.tree.metadata.IMetaTagsNode;
+import org.apache.flex.compiler.visitor.IBlockVisitor;
+import org.apache.flex.compiler.visitor.IASNodeStrategy;
+import org.apache.flex.compiler.visitor.as.IASBlockVisitor;
+
+/**
+ * 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(IBlockVisitor visitor)
+    {
+        this.visitor = (IASBlockVisitor) visitor;
+    }
+
+    @Override
+    public void handle(IASNode node)
+    {
+        // TODO (mschmalle) Still working on the switch, its complication in the expressions
+        switch (node.getNodeID())
+        {
+        case FileID:
+            visitor.visitFile((IFileNode) node);
+            return;
+
+        case PackageID:
+            visitor.visitPackage((IPackageNode) node);
+            return;
+
+        case ClassID:
+            visitor.visitClass((IClassNode) node);
+            return;
+
+        case InterfaceID:
+            visitor.visitInterface((IInterfaceNode) node);
+            return;
+
+        case GetterID:
+            visitor.visitGetter((IGetterNode) node);
+            return;
+
+        case SetterID:
+            visitor.visitSetter((ISetterNode) node);
+            return;
+
+        case FunctionID:
+            visitor.visitFunction((IFunctionNode) node);
+            return;
+
+        case ArgumentID:
+        case ArgumentRestID:
+            visitor.visitParameter((IParameterNode) node);
+            return;
+
+        case VariableID:
+        case BindableVariableID:
+            visitor.visitVariable((IVariableNode) node);
+            return;
+
+        case NamespaceID:
+            visitor.visitNamespace((INamespaceNode) node);
+            return;
+
+        case CatchID:
+            visitor.visitCatch((ICatchNode) node);
+            return;
+
+        case ForEachLoopID:
+        case ForLoopID:
+            visitor.visitForLoop((IForLoopNode) node);
+            return;
+
+        case FinallyID:
+        case DefaultID:
+        case ElseID:
+        case TerminalID:
+            visitor.visitTerminal((ITerminalNode) node);
+            return;
+
+        case TryID:
+            visitor.visitTry((ITryNode) node);
+            return;
+
+        case WithID:
+            visitor.visitWith((IWithNode) node);
+            return;
+
+        case IfStatementID:
+            visitor.visitIf((IIfNode) node);
+            return;
+
+        case SwitchID:
+            visitor.visitSwitch((ISwitchNode) node);
+            return;
+
+        case WhileLoopID:
+        case DoWhileLoopID:
+            visitor.visitWhileLoop((IWhileLoopNode) node);
+            return;
+
+        case FunctionCallID:
+            visitor.visitFunctionCall((IFunctionCallNode) node);
+            return;
+
+        case TypedExpressionID:
+            visitor.visitTypedExpression((ITypedExpressionNode) node);
+            return;
+
+        case IdentifierID:
+        case NamespaceIdentifierID:
+        case NonResolvingIdentifierID:
+            if (node instanceof ILanguageIdentifierNode)
+            {
+                visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
+                return;
+            }
+            visitor.visitIdentifier((IIdentifierNode) node);
+            return;
+
+            //case LiteralIntegerZeroID:
+        case LiteralIntegerID:
+            //case LiteralIntegerZeroID:
+        case LiteralUintID:
+            visitor.visitNumericLiteral((INumericLiteralNode) node);
+            return;
+
+            //        case LiteralArrayID:
+            //        case LiteralBooleanID:
+            //        case LiteralNullID:
+            //        case LiteralNumberID:
+            //        case LiteralObjectID:
+            //        case LiteralRegexID:
+            //        case LiteralStringID:
+            //        case LiteralVoidID:
+            //        case LiteralXMLID:
+            //        case LiteralID:
+            //            visitor.visitLiteral((ILiteralNode) node);
+            //            return;
+
+            //        case MemberAccessExpressionID:
+            //            visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
+            //            return;
+
+        case ArrayIndexExpressionID:
+            visitor.visitDynamicAccess((IDynamicAccessNode) node);
+            return;
+
+            //        case NamespaceAccessExpressionID:
+            //            visitor.visitNamespaceAccessExpression((NamespaceAccessExpressionNode) node);
+            //            return;
+
+            //        case TODO:
+            //            visitor.visitBinaryOperator((IBinaryOperatorNode) node);
+            //            break;
+            //
+            //        case TODO:
+            //            visitor.visitUnaryOperator((IUnaryOperatorNode) node);
+            //            break;
+
+        case ReturnStatementID:
+            visitor.visitReturn((IReturnNode) node);
+            return;
+
+        case ThrowsStatementID:
+            visitor.visitThrow((IThrowNode) node);
+            return;
+
+        case TernaryExpressionID:
+            visitor.visitTernaryOperator((ITernaryOperatorNode) node);
+            return;
+
+        case BlockID:
+            visitor.visitBlock((IBlockNode) node);
+            return;
+
+        case LabledStatementID:
+            visitor.visitLabeledStatement((LabeledStatementNode) node);
+            return;
+
+        case BreakID:
+        case ContinueID:
+        case GotoID:
+            visitor.visitIterationFlow((IIterationFlowNode) node);
+            return;
+
+            //        case ObjectLiteralValuePairID:
+            //            visitor.visitObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
+            //            return;
+
+        case SuperID:
+        case VoidID:
+            // XXX this should be removed
+            visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
+            return;
+
+        case DefaultXMLStatementID:
+            visitor.visitDefaultXMLNamespace((IDefaultXMLNamespaceNode) node);
+            return;
+
+            //        case TODO:
+            //            visitor.visitKeyword((IKeywordNode) node);
+            //            break;
+
+        default:
+            break;
+        }
+
+        // IExpressionNode
+        if (node instanceof IEmbedNode)
+        {
+            visitor.visitEmbed((IEmbedNode) node);
+        }
+        else if (node instanceof IObjectLiteralValuePairNode)
+        {
+            visitor.visitObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
+        }
+        else if (node instanceof NamespaceAccessExpressionNode)
+        {
+            visitor.visitNamespaceAccessExpression((NamespaceAccessExpressionNode) node);
+        }
+        else if (node instanceof IMemberAccessExpressionNode)
+        {
+            visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
+        }
+        else if (node instanceof IBinaryOperatorNode)
+        {
+            if (node instanceof BinaryOperatorAsNode)
+                visitor.visitAsOperator((IBinaryOperatorNode) node);
+            else if (node instanceof BinaryOperatorIsNode)
+                visitor.visitIsOperator((IBinaryOperatorNode) node);
+            else
+                visitor.visitBinaryOperator((IBinaryOperatorNode) node);
+        }
+        // IUnaryOperatorNode > IOperator
+        else if (node instanceof IUnaryOperatorNode)
+        {
+            visitor.visitUnaryOperator((IUnaryOperatorNode) node);
+        }
+        else if (node instanceof IKeywordNode)
+        {
+            visitor.visitKeyword((IKeywordNode) node);
+        }
+        else if (node instanceof IMetaTagsNode)
+        {
+            visitor.visitMetaTags((IMetaTagsNode) node);
+        }
+        else if (node instanceof IMetaTagNode)
+        {
+            visitor.visitMetaTag((IMetaTagNode) node);
+        }
+        else if (node instanceof IImportNode)
+        {
+            visitor.visitImport((IImportNode) node);
+        }
+        else if (node instanceof ILiteralNode)
+        {
+            visitor.visitLiteral((ILiteralNode) node);
+        }
+        else if (node instanceof IExpressionNode)
+        {
+            visitor.visitExpression((IExpressionNode) node);
+        }
+        else
+        {
+            throw new RuntimeException("handle() not found "
+                    + node.getClass().getName());
+        }
+    }
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/ASNodeSwitch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/BeforeAfterStrategy.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/BeforeAfterStrategy.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/BeforeAfterStrategy.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/BeforeAfterStrategy.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,141 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.internal.visitor.as;
+
+import org.apache.flex.compiler.tree.as.IASNode;
+import org.apache.flex.compiler.tree.as.IBlockNode;
+import org.apache.flex.compiler.visitor.IASNodeStrategy;
+
+/**
+ * The {@link BeforeAfterStrategy} implements a before and after {@link IASNode}
+ * handler.
+ * <p>
+ * When {@link #handle(IASNode)} is called on an instance of this class, the
+ * default {@link #handle(IASNode)} method will first call the
+ * {@link #getBefore()} handle() method , the will call the supers handle()
+ * implementation which is to call the {@link #getHandler()} handle() method.
+ * Finally, the {@link #getAfter()} handler's handle() method will be called.
+ * <p>
+ * Currently, this strategy is used for indenting and {@link IBlockNode} pre and
+ * post symbol management.
+ * 
+ * @author Michael Schmalle
+ */
+public class BeforeAfterStrategy extends ASNodeHandler
+{
+    private IASNodeStrategy before;
+
+    /**
+     * Returns the {@link IASNodeStrategy} called before the
+     * {@link #getHandler()}'s handle() method.
+     * 
+     * @return The before handler.
+     */
+    public IASNodeStrategy getBefore()
+    {
+        return before;
+    }
+
+    /**
+     * Sets the before handler.
+     * 
+     * @param before The before handler.
+     */
+    public void setBefore(IASNodeStrategy value)
+    {
+        this.before = value;
+    }
+
+    private IASNodeStrategy after;
+
+    /**
+     * Returns the {@link IASNodeStrategy} called after the
+     * {@link #getHandler()}'s handle() method.
+     * 
+     * @return The after handler.
+     */
+    public IASNodeStrategy getAfter()
+    {
+        return after;
+    }
+
+    /**
+     * Sets the after handler.
+     * 
+     * @param after The after handler.
+     */
+    public void setAfter(IASNodeStrategy value)
+    {
+        this.after = value;
+    }
+
+    /**
+     * Constructor, creates a strategy that implements a before and after
+     * {@link IASNodeStrategy}.
+     * 
+     * @param handler The handler that will be called between the before and
+     * after {@link #handle(IASNode)} method.
+     * @param before The before handler.
+     * @param after The after handler.
+     */
+    public BeforeAfterStrategy(IASNodeStrategy handler, IASNodeStrategy before,
+            IASNodeStrategy after)
+    {
+        super(handler);
+        this.before = before;
+        this.after = after;
+    }
+
+    @Override
+    public void handle(IASNode node)
+    {
+        before(node);
+        super.handle(node);
+        after(node);
+    }
+
+    /**
+     * Called before the {@link #handle(IASNode)} method.
+     * <p>
+     * If the {@link #getAfter()} strategy is <code>null</code>, this method
+     * does nothing.
+     * 
+     * @param node The current {@link IASNode} being handled by the strategy.
+     */
+    protected void after(IASNode node)
+    {
+        if (after != null)
+            after.handle(node);
+    }
+
+    /**
+     * Called after the {@link #handle(IASNode)} method.
+     * <p>
+     * If the {@link #getBefore()} strategy is <code>null</code>, this method
+     * does nothing.
+     * 
+     * @param node The current {@link IASNode} being handled by the strategy.
+     */
+    protected void before(IASNode node)
+    {
+        if (before != null)
+            before.handle(node);
+    }
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/as/BeforeAfterStrategy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/mxml/MXMLNodeSwitch.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/mxml/MXMLNodeSwitch.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/mxml/MXMLNodeSwitch.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,153 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.internal.visitor.mxml;
+
+import org.apache.flex.compiler.tree.as.IASNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLArrayNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLBooleanNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDeclarationsNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDeferredInstanceNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLEventSpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLInstanceNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLIntNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLLiteralNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLNumberNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLPropertySpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLScriptNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLStringNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLStyleSpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLUintNode;
+import org.apache.flex.compiler.visitor.IBlockVisitor;
+import org.apache.flex.compiler.visitor.IASNodeStrategy;
+import org.apache.flex.compiler.visitor.mxml.IMXMLBlockVisitor;
+
+/**
+ * @author Michael Schmalle
+ * @author Erik de Bruin
+ */
+public class MXMLNodeSwitch implements IASNodeStrategy
+{
+    private final IMXMLBlockVisitor visitor;
+
+    public MXMLNodeSwitch(IBlockVisitor visitor)
+    {
+        this.visitor = (IMXMLBlockVisitor) visitor;
+    }
+
+    @Override
+    public void handle(IASNode node)
+    {
+        switch (node.getNodeID())
+        {
+        case MXMLArrayID:
+            visitor.visitArray((IMXMLArrayNode) node);
+            break;
+        case MXMLBooleanID:
+            visitor.visitBoolean((IMXMLBooleanNode) node);
+            break;
+        case MXMLDeclarationsID:
+            visitor.visitDeclarations((IMXMLDeclarationsNode) node);
+            break;
+        case MXMLDeferredInstanceID:
+            visitor.visitDeferredInstance((IMXMLDeferredInstanceNode) node);
+            break;
+        case MXMLDocumentID:
+            visitor.visitDocument((IMXMLDocumentNode) node);
+            break;
+        case MXMLEventSpecifierID:
+            visitor.visitEventSpecifier((IMXMLEventSpecifierNode) node);
+            break;
+        case MXMLIntID:
+            visitor.visitInt((IMXMLIntNode) node);
+            break;
+        case MXMLInstanceID:
+            visitor.visitInstance((IMXMLInstanceNode) node);
+            break;
+        case MXMLLiteralID:
+            visitor.visitLiteral((IMXMLLiteralNode) node);
+            break;
+        case MXMLNumberID:
+            visitor.visitNumber((IMXMLNumberNode) node);
+            break;
+        case MXMLPropertySpecifierID:
+            visitor.visitPropertySpecifier((IMXMLPropertySpecifierNode) node);
+            break;
+        case MXMLScriptID:
+            visitor.visitScript((IMXMLScriptNode) node);
+            break;
+        case MXMLStringID:
+            visitor.visitString((IMXMLStringNode) node);
+            break;
+        case MXMLStyleSpecifierID:
+            visitor.visitStyleSpecifier((IMXMLStyleSpecifierNode) node);
+            break;
+        case MXMLUintID:
+            visitor.visitUint((IMXMLUintNode) node);
+            break;
+
+        case MXMLApplicationID:
+        case MXMLBindingID:
+        case MXMLBindingAttributeID:
+        case MXMLClassID:
+        case MXMLClassDefinitionID:
+        case MXMLClearID:
+        case MXMLComponentID:
+        case MXMLConcatenatedDataBindingID:
+        case MXMLDataBindingID:
+        case MXMLDateID:
+        case MXMLDefinitionID:
+        case MXMLDesignLayerID:
+        case MXMLEmbedID:
+        case MXMLEffectSpecifierID:
+        case MXMLFactoryID:
+        case MXMLFileID:
+        case MXMLFunctionID:
+        case MXMLHTTPServiceID:
+        case MXMLHTTPServiceRequestID:
+        case MXMLImplementsID:
+        case MXMLLibraryID:
+        case MXMLMetadataID:
+        case MXMLModelID:
+        case MXMLModelPropertyID:
+        case MXMLModelRootID:
+        case MXMLObjectID:
+        case MXMLPrivateID:
+        case MXMLRegExpID:
+        case MXMLRemoteObjectID:
+        case MXMLRemoteObjectMethodID:
+        case MXMLReparentID:
+        case MXMLRepeaterID:
+        case MXMLResourceID:
+        case MXMLStateID:
+        case MXMLStyleID:
+        case MXMLVectorID:
+        case MXMLWebServiceID:
+        case MXMLWebServiceOperationID:
+        case MXMLXMLID:
+        case MXMLXMLListID:
+        default:
+            throw new IllegalArgumentException(
+                    "No handler specified for nodes of type '"
+                            + node.getNodeID().getParaphrase() + "'");
+        }
+    }
+
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/visitor/mxml/MXMLNodeSwitch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/targets/IJSTarget.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/targets/IJSTarget.java?rev=1452955&r1=1452954&r2=1452955&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/targets/IJSTarget.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/targets/IJSTarget.java Tue Mar  5 19:22:05 2013
@@ -22,8 +22,8 @@ package org.apache.flex.compiler.targets
 import java.util.Collection;
 
 import org.apache.flex.compiler.clients.JSConfiguration;
-import org.apache.flex.compiler.common.driver.IBackend;
-import org.apache.flex.compiler.js.IJSApplication;
+import org.apache.flex.compiler.driver.IBackend;
+import org.apache.flex.compiler.driver.js.IJSApplication;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.projects.IASProject;
 

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/ASNodeUtils.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/ASNodeUtils.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/ASNodeUtils.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/ASNodeUtils.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,71 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.utils;
+
+import java.util.ArrayList;
+
+import org.apache.flex.compiler.tree.as.IASNode;
+import org.apache.flex.compiler.tree.as.IBlockNode;
+import org.apache.flex.compiler.tree.as.IConditionalNode;
+import org.apache.flex.compiler.tree.as.ISwitchNode;
+import org.apache.flex.compiler.tree.as.ITerminalNode;
+
+/**
+ * @author Michael Schmalle
+ */
+public class ASNodeUtils
+{
+    //--------------------------------------------------------------------------
+    // Temp: These need JIRA tickets
+    //--------------------------------------------------------------------------
+
+    // there seems to be a bug in the ISwitchNode.getCaseNodes(), need to file a bug
+    public static final IConditionalNode[] getCaseNodes(ISwitchNode node)
+    {
+        IBlockNode block = (IBlockNode) node.getChild(1);
+        int childCount = block.getChildCount();
+        ArrayList<IConditionalNode> retVal = new ArrayList<IConditionalNode>(
+                childCount);
+
+        for (int i = 0; i < childCount; i++)
+        {
+            IASNode child = block.getChild(i);
+            if (child instanceof IConditionalNode)
+                retVal.add((IConditionalNode) child);
+        }
+
+        return retVal.toArray(new IConditionalNode[0]);
+    }
+
+    // there seems to be a bug in the ISwitchNode.getDefaultNode(), need to file a bug
+    public static final ITerminalNode getDefaultNode(ISwitchNode node)
+    {
+        IBlockNode block = (IBlockNode) node.getChild(1);
+        int childCount = block.getChildCount();
+        for (int i = childCount - 1; i >= 0; i--)
+        {
+            IASNode child = block.getChild(i);
+            if (child instanceof ITerminalNode)
+                return (ITerminalNode) child;
+        }
+
+        return null;
+    }
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/ASNodeUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerUtil.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerUtil.java?rev=1452955&r1=1452954&r2=1452955&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerUtil.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerUtil.java Tue Mar  5 19:22:05 2013
@@ -53,7 +53,8 @@ public class JSClosureCompilerUtil
 
         public static void main(String[] args)
         {
-            JSClosureCommandLineRunner runner = new JSClosureCommandLineRunner(args);
+            JSClosureCommandLineRunner runner = new JSClosureCommandLineRunner(
+                    args);
 
             if (runner.shouldRunCompiler())
             {
@@ -65,7 +66,7 @@ public class JSClosureCompilerUtil
             }
         }
     }
-        
+
     private static class ExitTrappedException extends SecurityException
     {
         private static final long serialVersionUID = 666;
@@ -73,8 +74,7 @@ public class JSClosureCompilerUtil
 
     private static void forbidSystemExitCall()
     {
-        final SecurityManager securityManager = new SecurityManager() 
-        {
+        final SecurityManager securityManager = new SecurityManager() {
             @Override
             public void checkPermission(Permission permission)
             {

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/NativeUtils.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/NativeUtils.java?rev=1452955&r1=1452954&r2=1452955&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/NativeUtils.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/utils/NativeUtils.java Tue Mar  5 19:22:05 2013
@@ -27,7 +27,7 @@ public class NativeUtils
     public enum NativeType
     {
         Any("*"), // not JS but use full in the context of native
-        
+
         Argument("Argument"),
         Array("Array"),
         Boolean("Boolean"),

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASNodeStrategy.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASNodeStrategy.java?rev=1452955&r1=1452954&r2=1452955&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASNodeStrategy.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASNodeStrategy.java Tue Mar  5 19:22:05 2013
@@ -22,8 +22,8 @@ package org.apache.flex.compiler.visitor
 import org.apache.flex.compiler.tree.as.IASNode;
 
 /**
- * A simple strategy to allow composition of {@link IASNode} handling
- * when walking the AST node tree.
+ * A simple strategy to allow composition of {@link IASNode} handling when
+ * walking the AST node tree.
  * 
  * @author Michael Schmalle
  */

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,215 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.visitor.as;
+
+import org.apache.flex.compiler.internal.codegen.as.ASBlockWalker;
+import org.apache.flex.compiler.internal.tree.as.LabeledStatementNode;
+import org.apache.flex.compiler.internal.tree.as.NamespaceAccessExpressionNode;
+import org.apache.flex.compiler.tree.as.IASNode;
+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.IDefaultXMLNamespaceNode;
+import org.apache.flex.compiler.tree.as.IDynamicAccessNode;
+import org.apache.flex.compiler.tree.as.IEmbedNode;
+import org.apache.flex.compiler.tree.as.IExpressionNode;
+import org.apache.flex.compiler.tree.as.IFileNode;
+import org.apache.flex.compiler.tree.as.IForLoopNode;
+import org.apache.flex.compiler.tree.as.IFunctionCallNode;
+import org.apache.flex.compiler.tree.as.IFunctionNode;
+import org.apache.flex.compiler.tree.as.IGetterNode;
+import org.apache.flex.compiler.tree.as.IIdentifierNode;
+import org.apache.flex.compiler.tree.as.IIfNode;
+import org.apache.flex.compiler.tree.as.IImportNode;
+import org.apache.flex.compiler.tree.as.IInterfaceNode;
+import org.apache.flex.compiler.tree.as.IIterationFlowNode;
+import org.apache.flex.compiler.tree.as.IKeywordNode;
+import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode;
+import org.apache.flex.compiler.tree.as.ILiteralNode;
+import org.apache.flex.compiler.tree.as.IMemberAccessExpressionNode;
+import org.apache.flex.compiler.tree.as.INamespaceNode;
+import org.apache.flex.compiler.tree.as.INumericLiteralNode;
+import org.apache.flex.compiler.tree.as.IObjectLiteralValuePairNode;
+import org.apache.flex.compiler.tree.as.IPackageNode;
+import org.apache.flex.compiler.tree.as.IParameterNode;
+import org.apache.flex.compiler.tree.as.IReturnNode;
+import org.apache.flex.compiler.tree.as.ISetterNode;
+import org.apache.flex.compiler.tree.as.ISwitchNode;
+import org.apache.flex.compiler.tree.as.ITerminalNode;
+import org.apache.flex.compiler.tree.as.ITernaryOperatorNode;
+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.IVariableNode;
+import org.apache.flex.compiler.tree.as.IWhileLoopNode;
+import org.apache.flex.compiler.tree.as.IWithNode;
+import org.apache.flex.compiler.tree.metadata.IMetaTagNode;
+import org.apache.flex.compiler.tree.metadata.IMetaTagsNode;
+import org.apache.flex.compiler.units.ICompilationUnit;
+import org.apache.flex.compiler.visitor.IASNodeStrategy;
+import org.apache.flex.compiler.visitor.IBlockVisitor;
+
+/**
+ * The {@link IASBlockVisitor} interface allows an {@link IASNodeStrategy} to
+ * delegate within it's {@link IASNodeStrategy#handle(IASNode)} method to this
+ * API's visitor method.
+ * <p>
+ * <strong>Note</strong> This API is not complete.
+ * 
+ * @author Michael Schmalle
+ * 
+ * @see ASBlockWalker
+ */
+public interface IASBlockVisitor extends IBlockVisitor
+{
+    //--------------------------------------------------------------------------
+    // Top level nodes
+    //--------------------------------------------------------------------------
+
+    void visitCompilationUnit(ICompilationUnit unit);
+
+    void visitFile(IFileNode node);
+
+    void visitPackage(IPackageNode node);
+
+    void visitClass(IClassNode node);
+
+    void visitInterface(IInterfaceNode node);
+
+    //--------------------------------------------------------------------------
+    // Member nodes
+    //--------------------------------------------------------------------------
+
+    // block var or field
+    void visitVariable(IVariableNode node);
+
+    void visitFunction(IFunctionNode node);
+
+    void visitGetter(IGetterNode node);
+
+    void visitSetter(ISetterNode node);
+
+    void visitNamespace(INamespaceNode node);
+
+    //--------------------------------------------------------------------------
+    // Statement nodes
+    //--------------------------------------------------------------------------
+
+    void visitIf(IIfNode node);
+
+    void visitForLoop(IForLoopNode node);
+
+    void visitWhileLoop(IWhileLoopNode node);
+
+    void visitTry(ITryNode node);
+
+    void visitCatch(ICatchNode node);
+
+    void visitSwitch(ISwitchNode node);
+
+    void visitLabeledStatement(LabeledStatementNode node);
+
+    void visitWith(IWithNode node);
+
+    void visitThrow(IThrowNode node);
+
+    //--------------------------------------------------------------------------
+    // Statement helper nodes
+    //--------------------------------------------------------------------------
+
+    void visitIterationFlow(IIterationFlowNode node);
+
+    // is a IVariableNode
+    void visitParameter(IParameterNode node);
+
+    void visitObjectLiteralValuePair(IObjectLiteralValuePairNode node);
+
+    //--------------------------------------------------------------------------
+    // Expression Statement nodes
+    //--------------------------------------------------------------------------
+
+    void visitMemberAccessExpression(IMemberAccessExpressionNode node);
+
+    void visitNamespaceAccessExpression(NamespaceAccessExpressionNode node);
+
+    void visitLanguageIdentifierNode(ILanguageIdentifierNode node);
+
+    void visitReturn(IReturnNode node);
+
+    void visitDefaultXMLNamespace(IDefaultXMLNamespaceNode node);
+
+    void visitTypedExpression(ITypedExpressionNode node);
+
+    // this is a IBinaryOperatorNode goes before
+    void visitDynamicAccess(IDynamicAccessNode node);
+
+    void visitTernaryOperator(ITernaryOperatorNode node);
+
+    //--------------------------------------------------------------------------
+    // Container nodes
+    //--------------------------------------------------------------------------
+
+    void visitBlock(IBlockNode node);
+
+    //--------------------------------------------------------------------------
+    // Expression nodes
+    //--------------------------------------------------------------------------
+
+    void visitFunctionCall(IFunctionCallNode node);
+
+    void visitAsOperator(IBinaryOperatorNode node);
+
+    void visitIsOperator(IBinaryOperatorNode node);
+
+    void visitBinaryOperator(IBinaryOperatorNode node);
+
+    void visitUnaryOperator(IUnaryOperatorNode node);
+
+    void visitExpression(IExpressionNode node);
+
+    //--------------------------------------------------------------------------
+    // Terminal like Expression nodes
+    //--------------------------------------------------------------------------
+
+    void visitIdentifier(IIdentifierNode node);
+
+    void visitKeyword(IKeywordNode node);
+
+    void visitLiteral(ILiteralNode node);
+
+    void visitNumericLiteral(INumericLiteralNode node);
+
+    void visitTerminal(ITerminalNode node);
+
+    //--------------------------------------------------------------------------
+    // Various nodes
+    //--------------------------------------------------------------------------
+
+    void visitImport(IImportNode node);
+
+    void visitMetaTags(IMetaTagsNode node);
+
+    void visitMetaTag(IMetaTagNode node);
+
+    void visitEmbed(IEmbedNode node);
+
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockVisitor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockWalker.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockWalker.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockWalker.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockWalker.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,36 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.visitor.as;
+
+import org.apache.flex.compiler.codegen.as.IASEmitter;
+import org.apache.flex.compiler.visitor.IBlockWalker;
+
+/**
+ * @author Michael Schmalle
+ */
+public interface IASBlockWalker extends IASBlockVisitor, IBlockWalker
+{
+
+    /**
+     * The current code emitter.
+     */
+    IASEmitter getEmitter();
+
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/as/IASBlockWalker.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockVisitor.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockVisitor.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockVisitor.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockVisitor.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,89 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.visitor.mxml;
+
+import org.apache.flex.compiler.tree.mxml.IMXMLArrayNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLBooleanNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLClassDefinitionNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDeclarationsNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDeferredInstanceNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLEventSpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLFileNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLInstanceNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLIntNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLLiteralNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLNumberNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLPropertySpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLScriptNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLStringNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLStyleSpecifierNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLUintNode;
+import org.apache.flex.compiler.visitor.IBlockVisitor;
+
+/**
+ * @author Michael Schmalle
+ * @author Erik de Bruin
+ */
+public interface IMXMLBlockVisitor extends IBlockVisitor
+{
+    void visitFile(IMXMLFileNode node);
+
+    void visitDocument(IMXMLDocumentNode node);
+
+    void visitClassDefinition(IMXMLClassDefinitionNode node);
+
+    void visitDeclarations(IMXMLDeclarationsNode node);
+
+    //--------------------------------------------------------------------------
+
+    void visitDeferredInstance(IMXMLDeferredInstanceNode node);
+
+    //--------------------------------------------------------------------------
+
+    void visitEventSpecifier(IMXMLEventSpecifierNode node);
+
+    void visitInstance(IMXMLInstanceNode node);
+
+    void visitPropertySpecifier(IMXMLPropertySpecifierNode node);
+
+    void visitScript(IMXMLScriptNode node);
+
+    void visitStyleSpecifier(IMXMLStyleSpecifierNode node);
+
+    //--------------------------------------------------------------------------
+
+    void visitArray(IMXMLArrayNode node);
+
+    void visitBoolean(IMXMLBooleanNode node);
+
+    void visitInt(IMXMLIntNode node);
+
+    void visitNumber(IMXMLNumberNode node);
+
+    void visitString(IMXMLStringNode node);
+
+    void visitUint(IMXMLUintNode node);
+
+    //--------------------------------------------------------------------------
+
+    void visitLiteral(IMXMLLiteralNode node);
+
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockVisitor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockWalker.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockWalker.java?rev=1452955&view=auto
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockWalker.java (added)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockWalker.java Tue Mar  5 19:22:05 2013
@@ -0,0 +1,43 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.visitor.mxml;
+
+import org.apache.flex.compiler.codegen.as.IASEmitter;
+import org.apache.flex.compiler.codegen.mxml.IMXMLEmitter;
+import org.apache.flex.compiler.visitor.IBlockWalker;
+
+/**
+ * @author Michael Schmalle
+ * @author Erik de Bruin
+ */
+public interface IMXMLBlockWalker extends IMXMLBlockVisitor, IBlockWalker
+{
+
+    /**
+     * The current code emitter.
+     */
+    IASEmitter getASEmitter();
+
+    /**
+     * The current code emitter.
+     */
+    IMXMLEmitter getMXMLEmitter();
+
+}

Propchange: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/mxml/IMXMLBlockWalker.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message