Return-Path: X-Original-To: apmail-flex-commits-archive@www.apache.org Delivered-To: apmail-flex-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A121CE750 for ; Tue, 5 Mar 2013 19:23:08 +0000 (UTC) Received: (qmail 74207 invoked by uid 500); 5 Mar 2013 19:23:08 -0000 Delivered-To: apmail-flex-commits-archive@flex.apache.org Received: (qmail 74186 invoked by uid 500); 5 Mar 2013 19:23:08 -0000 Mailing-List: contact commits-help@flex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flex.apache.org Delivered-To: mailing list commits@flex.apache.org Received: (qmail 74179 invoked by uid 99); 5 Mar 2013 19:23:08 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Mar 2013 19:23:08 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Mar 2013 19:23:00 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4D2F32388C38; Tue, 5 Mar 2013 19:22:15 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit 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 -0000 To: commits@flex.apache.org From: mschmalle@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130305192215.4D2F32388C38@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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. + *

+ * 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. + *

+ * 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. + *

+ * 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. + *

+ * If the {@link #getAfter()} strategy is null, 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. + *

+ * If the {@link #getBefore()} strategy is null, 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 retVal = new ArrayList( + 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. + *

+ * Note 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