You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ms...@apache.org on 2013/01/21 21:48:36 UTC

svn commit: r1436611 - in /flex/falcon/trunk: compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/ compiler.jx/src/org/apache/flex/compiler/as/codegen/ compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ compiler.jx/src/org/apa...

Author: mschmalle
Date: Mon Jan 21 20:48:36 2013
New Revision: 1436611

URL: http://svn.apache.org/viewvc?rev=1436611&view=rev
Log:
Flex:FalconJx
- added ImportNode to visitor and walker API
- added test, needs to be implemented later
- fixed goog producing functions in MXML document

Modified:
    flex/falcon/trunk/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestPackage.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/as/codegen/IASEmitter.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASBlockWalker.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASEmitter.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/visitor/ASNodeSwitch.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogDocEmitter.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogEmitter.java
    flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASBlockVisitor.java

Modified: flex/falcon/trunk/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestPackage.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestPackage.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestPackage.java (original)
+++ flex/falcon/trunk/compiler.jx.tests/src/org/apache/flex/compiler/internal/as/codegen/TestPackage.java Mon Jan 21 20:48:36 2013
@@ -20,6 +20,7 @@
 package org.apache.flex.compiler.internal.as.codegen;
 
 import org.apache.flex.compiler.tree.as.IFileNode;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -82,4 +83,14 @@ public class TestPackage extends TestWal
         assertOut("package foo.bar.baz {\n\tpublic class A {\n\t\tpublic function A() {\n\t\t\t"
                 + "if (a) {\n\t\t\t\tfor each (var i:Object in obj) {\n\t\t\t\t\tdoit();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}");
     }
+
+    @Ignore
+    @Test
+    public void testPackage_Import()
+    {
+        // TODO (mschmalle) implement Import unit tests for as
+        IFileNode node = getFileNode("package{import foo.bar.Baz;}");
+        visitor.visitFile(node);
+        assertOut("package {\nimport foo.bar.Baz;}");
+    }
 }

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/as/codegen/IASEmitter.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/as/codegen/IASEmitter.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/as/codegen/IASEmitter.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/as/codegen/IASEmitter.java Mon Jan 21 20:48:36 2013
@@ -39,6 +39,7 @@ import org.apache.flex.compiler.tree.as.
 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;
@@ -103,6 +104,8 @@ public interface IASEmitter
      */
     void writeNewline();
 
+    void emitImport(IImportNode node);
+
     void emitPackageHeader(IPackageDefinition definition);
 
     void emitPackageHeaderContents(IPackageDefinition definition);

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASBlockWalker.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASBlockWalker.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASBlockWalker.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASBlockWalker.java Mon Jan 21 20:48:36 2013
@@ -53,6 +53,7 @@ import org.apache.flex.compiler.tree.as.
 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;
@@ -94,13 +95,13 @@ import org.apache.flex.compiler.visitor.
 public class ASBlockWalker implements IASBlockVisitor, IASBlockWalker
 {
     private IASEmitter emitter;
-    
+
     @Override
     public IASEmitter getEmitter()
     {
         return emitter;
     }
-    
+
     private final List<ICompilerProblem> errors;
 
     List<ICompilerProblem> getErrors()
@@ -191,7 +192,8 @@ public class ASBlockWalker implements IA
     public void visitPackage(IPackageNode node)
     {
         debug("visitPackage()");
-        IPackageDefinition definition = (IPackageDefinition) node.getDefinition();
+        IPackageDefinition definition = (IPackageDefinition) node
+                .getDefinition();
         emitter.emitPackageHeader(definition);
         emitter.emitPackageHeaderContents(definition);
         emitter.emitPackageContents(definition);
@@ -498,6 +500,13 @@ public class ASBlockWalker implements IA
     }
 
     @Override
+    public void visitImport(IImportNode node)
+    {
+        debug("visitImport()");
+        emitter.emitImport(node);
+    }
+
+    @Override
     public void visitMetaTags(IMetaTagsNode node)
     {
         debug("visitMetaTags()");

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASEmitter.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASEmitter.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASEmitter.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/codegen/ASEmitter.java Mon Jan 21 20:48:36 2013
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.flex.compiler.as.codegen.IASEmitter;
 import org.apache.flex.compiler.as.codegen.IDocEmitter;
 import org.apache.flex.compiler.common.ASModifier;
+import org.apache.flex.compiler.common.IImportTarget;
 import org.apache.flex.compiler.common.ModifiersSet;
 import org.apache.flex.compiler.constants.IASKeywordConstants;
 import org.apache.flex.compiler.constants.IASLanguageConstants;
@@ -59,6 +60,7 @@ import org.apache.flex.compiler.tree.as.
 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;
@@ -226,6 +228,15 @@ public class ASEmitter implements IASEmi
     //--------------------------------------------------------------------------
 
     @Override
+    public void emitImport(IImportNode node)
+    {
+        IImportTarget target = node.getImportTarget();
+        write("import");
+        write(SPACE);
+        write(target.toString());
+    }
+
+    @Override
     public void emitPackageHeader(IPackageDefinition definition)
     {
         writeToken(IASKeywordConstants.PACKAGE);

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/visitor/ASNodeSwitch.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/visitor/ASNodeSwitch.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/visitor/ASNodeSwitch.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/as/visitor/ASNodeSwitch.java Mon Jan 21 20:48:36 2013
@@ -38,6 +38,7 @@ import org.apache.flex.compiler.tree.as.
 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;
@@ -288,7 +289,11 @@ public class ASNodeSwitch implements IAS
         {
             visitor.visitMetaTag((IMetaTagNode) node);
         }
-
+        else if (node instanceof IImportNode)
+        {
+            visitor.visitImport((IImportNode) node);
+        }
+        
         else if (node instanceof IExpressionNode)
         {
             visitor.visitExpression((IExpressionNode) node);

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogDocEmitter.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogDocEmitter.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogDocEmitter.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogDocEmitter.java Mon Jan 21 20:48:36 2013
@@ -20,13 +20,16 @@
 package org.apache.flex.compiler.internal.js.codegen.goog;
 
 import org.apache.flex.compiler.common.ASModifier;
+import org.apache.flex.compiler.common.DependencyType;
 import org.apache.flex.compiler.constants.IASKeywordConstants;
 import org.apache.flex.compiler.constants.IASLanguageConstants;
 import org.apache.flex.compiler.definitions.IClassDefinition;
 import org.apache.flex.compiler.definitions.ITypeDefinition;
+import org.apache.flex.compiler.definitions.references.IReference;
 import org.apache.flex.compiler.internal.as.codegen.ASEmitter;
 import org.apache.flex.compiler.internal.js.codegen.JSDocEmitter;
 import org.apache.flex.compiler.internal.js.codegen.JSSharedData;
+import org.apache.flex.compiler.internal.scopes.ASScope;
 import org.apache.flex.compiler.internal.semantics.SemanticUtils;
 import org.apache.flex.compiler.js.codegen.IJSEmitter;
 import org.apache.flex.compiler.js.codegen.goog.IJSGoogDocEmitter;
@@ -39,7 +42,9 @@ import org.apache.flex.compiler.tree.as.
 import org.apache.flex.compiler.tree.as.IInterfaceNode;
 import org.apache.flex.compiler.tree.as.IPackageNode;
 import org.apache.flex.compiler.tree.as.IParameterNode;
+import org.apache.flex.compiler.tree.as.IScopedNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
 
 public class JSGoogDocEmitter extends JSDocEmitter implements IJSGoogDocEmitter
 {
@@ -52,51 +57,50 @@ public class JSGoogDocEmitter extends JS
     {
         super(emitter);
     }
-    
+
     @Override
     public void emitInterfaceDoc(IInterfaceNode node)
     {
         begin();
-        
-        emitJSDocLine(JSGoogEmitter.INTERFACE); 
-        
+
+        emitJSDocLine(JSGoogEmitter.INTERFACE);
+
         String[] inodes = node.getExtendedInterfaces();
         for (String inode : inodes)
         {
             emitJSDocLine(IASKeywordConstants.EXTENDS, inode);
         }
-        
+
         end();
     }
-    
+
     @Override
     public void emitFieldDoc(IVariableNode node)
     {
-    	begin();
-    	
-    	String ns = node.getNamespace();
-    	if (ns == IASKeywordConstants.PRIVATE)
-    	{
-    		emitPrivate(node);
-    	}
-    	else if (ns == IASKeywordConstants.PROTECTED)
-    	{	
-    		emitProtected(node);
-    	}
-    	
-    	if (node.isConst())
-    		emitConst(node);
-    	
-    	emitType(node);
-    	
-    	end();
+        begin();
+
+        String ns = node.getNamespace();
+        if (ns == IASKeywordConstants.PRIVATE)
+        {
+            emitPrivate(node);
+        }
+        else if (ns == IASKeywordConstants.PROTECTED)
+        {
+            emitProtected(node);
+        }
+
+        if (node.isConst())
+            emitConst(node);
+
+        emitType(node);
+
+        end();
     }
-    
+
     @Override
     public void emitMethodDoc(IFunctionNode node, ICompilerProject project)
     {
-        IClassNode cnode = (IClassNode) node.getAncestorOfType(IClassNode.class);
-        IClassDefinition classDefinition = cnode.getDefinition();
+        IClassDefinition classDefinition = resolveClassDefinition(node);
 
         if (node instanceof IFunctionNode)
         {
@@ -106,24 +110,35 @@ public class JSGoogDocEmitter extends JS
             {
                 begin();
                 hasDoc = true;
-                
+
                 emitJSDocLine(JSGoogEmitter.CONSTRUCTOR);
-                
-                IClassDefinition parent = (IClassDefinition) node.getDefinition().getParent();
+
+                IClassDefinition parent = (IClassDefinition) node
+                        .getDefinition().getParent();
                 IClassDefinition superClass = parent.resolveBaseClass(project);
-            	String qname = superClass.getQualifiedName();
-            	
-                if (superClass != null && !qname.equals(IASLanguageConstants.Object))
+                String qname = superClass.getQualifiedName();
+
+                if (superClass != null
+                        && !qname.equals(IASLanguageConstants.Object))
                     emitExtends(superClass);
-                
-                IExpressionNode[] inodes = cnode.getImplementedInterfaceNodes();
-                if (inodes.length > 0)
+
+                IReference[] references = classDefinition
+                        .getImplementedInterfaceReferences();
+                for (IReference iReference : references)
                 {
-                    for (IExpressionNode inode : inodes)
-                    {
-                    	emitImplements(inode.resolveType(project));
-                    }
+                    emitImplements((ITypeDefinition) iReference.resolve(
+                            project, (ASScope) classDefinition.getContainingScope(),
+                            DependencyType.INHERITANCE, true));
                 }
+
+                //                IExpressionNode[] inodes = cnode.getImplementedInterfaceNodes();
+                //                if (inodes.length > 0)
+                //                {
+                //                    for (IExpressionNode inode : inodes)
+                //                    {
+                //                        emitImplements(inode.resolveType(project));
+                //                    }
+                //                }
             }
             else
             {
@@ -151,7 +166,9 @@ public class JSGoogDocEmitter extends JS
 
                 // @return
                 String returnType = node.getReturnType();
-                if (returnType != "" && returnType != ASTNodeID.LiteralVoidID.getParaphrase())
+                if (returnType != ""
+                        && returnType != ASTNodeID.LiteralVoidID
+                                .getParaphrase())
                 {
                     if (!hasDoc)
                     {
@@ -175,7 +192,7 @@ public class JSGoogDocEmitter extends JS
                     emitOverride(node);
                 }
             }
-            
+
             if (hasDoc)
                 end();
         }
@@ -185,19 +202,19 @@ public class JSGoogDocEmitter extends JS
     public void emitVarDoc(IVariableNode node)
     {
         if (!node.isConst())
-        {	
-        	emitTypeShort(node);
+        {
+            emitTypeShort(node);
         }
         else
         {
-        	writeNewline();
-        	begin();
-        	emitConst(node);
-        	emitType(node);
-        	end();
+            writeNewline();
+            begin();
+            emitConst(node);
+            emitType(node);
+            end();
         }
     }
-    
+
     @Override
     public void emitConst(IVariableNode node)
     {
@@ -228,13 +245,15 @@ public class JSGoogDocEmitter extends JS
     @Override
     public void emitExtends(IClassDefinition superDefinition)
     {
-        emitJSDocLine(IASKeywordConstants.EXTENDS, superDefinition.getQualifiedName());
+        emitJSDocLine(IASKeywordConstants.EXTENDS,
+                superDefinition.getQualifiedName());
     }
 
     @Override
     public void emitImplements(ITypeDefinition definition)
     {
-        emitJSDocLine(IASKeywordConstants.IMPLEMENTS, definition.getQualifiedName());
+        emitJSDocLine(IASKeywordConstants.IMPLEMENTS,
+                definition.getQualifiedName());
     }
 
     @Override
@@ -260,14 +279,15 @@ public class JSGoogDocEmitter extends JS
     @Override
     public void emitParam(IParameterNode node)
     {
-    	String postfix = (node.getDefaultValue() == null) ? "" : ASEmitter.EQUALS;
-    	
-    	String paramType = "";
-    	if (node.isRest())
-    		paramType = IASLanguageConstants.REST;
-    	else
-    		paramType = convertASTypeToJS(node.getVariableType());
-    	
+        String postfix = (node.getDefaultValue() == null) ? ""
+                : ASEmitter.EQUALS;
+
+        String paramType = "";
+        if (node.isRest())
+            paramType = IASLanguageConstants.REST;
+        else
+            paramType = convertASTypeToJS(node.getVariableType());
+
         emitJSDocLine(PARAM, paramType + postfix, node.getName());
     }
 
@@ -308,12 +328,12 @@ public class JSGoogDocEmitter extends JS
 
     public void emitTypeShort(IASNode node)
     {
-        String type = ((IVariableNode) node).getVariableType(); 
+        String type = ((IVariableNode) node).getVariableType();
         write(JSDOC_OPEN);
         writeSpace();
         write(AT);
         write(TYPE);
-    	writeSpace();
+        writeSpace();
         writeBlockOpen();
         write(convertASTypeToJS(type));
         writeBlockClose();
@@ -345,14 +365,14 @@ public class JSGoogDocEmitter extends JS
 
     private void emitJSDocLine(String name)
     {
-    	emitJSDocLine(name, "");
+        emitJSDocLine(name, "");
     }
-    
+
     private void emitJSDocLine(String name, String type)
     {
-    	emitJSDocLine(name, type, "");
+        emitJSDocLine(name, type, "");
     }
-    
+
     private void emitJSDocLine(String name, String type, String param)
     {
         writeSpace();
@@ -361,20 +381,20 @@ public class JSGoogDocEmitter extends JS
         write(AT);
         write(name);
         if (type != "")
-    	{
-	    	writeSpace();
-	        writeBlockOpen();
-	        write(type);
-	        writeBlockClose();
-    	}
+        {
+            writeSpace();
+            writeBlockOpen();
+            write(type);
+            writeBlockClose();
+        }
         if (param != "")
-    	{
-	    	writeSpace();
-	        write(param);
-    	}
+        {
+            writeSpace();
+            write(param);
+        }
         writeNewline();
     }
-    
+
     private boolean containsThisReference(IASNode node)
     {
         final int len = node.getChildCount();
@@ -397,21 +417,32 @@ public class JSGoogDocEmitter extends JS
 
     private String convertASTypeToJS(String name)
     {
-    	String result = name;
-    	
-    	if (name.equals(""))
-    		result = IASLanguageConstants.ANY_TYPE;
-    	else if (name.equals(IASLanguageConstants.Boolean) || 
-    			 name.equals(IASLanguageConstants.String) || 
-    			 name.equals(IASLanguageConstants.Number))
-    		result = result.toLowerCase();
-    	else if (name.equals(IASLanguageConstants._int) || 
-    			 name.equals(IASLanguageConstants.uint))
-    		result = IASLanguageConstants.Number.toLowerCase();
-       
-    	result = result.replace(IASLanguageConstants.String, IASLanguageConstants.String.toLowerCase());
-    	
+        String result = name;
+
+        if (name.equals(""))
+            result = IASLanguageConstants.ANY_TYPE;
+        else if (name.equals(IASLanguageConstants.Boolean)
+                || name.equals(IASLanguageConstants.String)
+                || name.equals(IASLanguageConstants.Number))
+            result = result.toLowerCase();
+        else if (name.equals(IASLanguageConstants._int)
+                || name.equals(IASLanguageConstants.uint))
+            result = IASLanguageConstants.Number.toLowerCase();
+
+        result = result.replace(IASLanguageConstants.String,
+                IASLanguageConstants.String.toLowerCase());
+
         return result;
     }
 
+    private IClassDefinition resolveClassDefinition(IFunctionNode node)
+    {
+        IScopedNode scope = node.getContainingScope();
+        if (scope instanceof IMXMLDocumentNode)
+            return ((IMXMLDocumentNode) scope).getClassDefinition();
+
+        IClassNode cnode = (IClassNode) node
+                .getAncestorOfType(IClassNode.class);
+        return cnode.getDefinition();
+    }
 }

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogEmitter.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogEmitter.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogEmitter.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/internal/js/codegen/goog/JSGoogEmitter.java Mon Jan 21 20:48:36 2013
@@ -22,7 +22,6 @@ package org.apache.flex.compiler.interna
 import java.io.FilterWriter;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -68,8 +67,6 @@ import org.apache.flex.compiler.tree.as.
 import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 
-import com.google.common.collect.Collections2;
-
 /**
  * Concrete implementation of the 'goog' JavaScript production.
  * 

Modified: flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASBlockVisitor.java
URL: http://svn.apache.org/viewvc/flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASBlockVisitor.java?rev=1436611&r1=1436610&r2=1436611&view=diff
==============================================================================
--- flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASBlockVisitor.java (original)
+++ flex/falcon/trunk/compiler.jx/src/org/apache/flex/compiler/visitor/IASBlockVisitor.java Mon Jan 21 20:48:36 2013
@@ -39,6 +39,7 @@ import org.apache.flex.compiler.tree.as.
 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;
@@ -204,6 +205,8 @@ public interface IASBlockVisitor
     // Various nodes
     //--------------------------------------------------------------------------
 
+    void visitImport(IImportNode node);
+
     void visitMetaTags(IMetaTagsNode node);
 
     void visitMetaTag(IMetaTagNode node);