royale-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aha...@apache.org
Subject [royale-compiler] 01/05: down to 32 errors refactoring externc into one project, and trying to find a minimal set of common files
Date Wed, 15 Nov 2017 20:58:17 GMT
This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch feature/rename
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit ba1f6c06efac13bd8fb2a7e06c4f59b4d76818a0
Author: Alex Harui <aharui@apache.org>
AuthorDate: Tue Nov 14 20:27:51 2017 -0800

    down to 32 errors refactoring externc into one project, and trying to find a minimal set of common files
---
 compiler-common/build.xml                          | 352 +++++++++++++++++++++
 .../java/org/apache/royale/compiler/Messages.java  |   0
 .../royale/compiler/asdoc/IASDocComment.java       |   0
 .../royale/compiler/asdoc/IASDocDelegate.java      |  12 +-
 .../apache/royale/compiler/asdoc/IASDocTag.java    |   0
 .../compiler/asdoc/IASParserASDocDelegate.java     |  20 +-
 .../asdoc/IMetadataParserASDocDelegate.java        |  13 +-
 .../royale/compiler/asdoc/IPackageDITAParser.java  |   3 +-
 .../royale/compiler/caches/IAssetTagCache.java     |   9 +-
 .../royale/compiler/caches/ICSSDocumentCache.java  |   9 +-
 .../royale/compiler/caches/IFileScopeCache.java    |   8 +-
 .../apache/royale/compiler/caches/ISWFCache.java   |   9 +-
 .../compiler/clients/problems/IProblemFilter.java  |   0
 .../clients/problems/ProblemFormatter.java         |   0
 .../compiler/clients/problems/ProblemPrinter.java  |   0
 .../apache/royale/compiler/common/ASModifier.java  |   0
 .../royale/compiler/common/DependencyType.java     |   4 +-
 .../royale/compiler/common/DependencyTypeSet.java  |   0
 .../apache/royale/compiler/common/IDecoration.java |   0
 .../compiler/common/IFileSpecificationGetter.java  |   3 +-
 .../royale/compiler/common/IImportTarget.java      |   0
 .../apache/royale/compiler/common/IMetaInfo.java   |   0
 .../royale/compiler/common/ISourceLocation.java    |   0
 .../royale/compiler/common/ModifiersSet.java       |   4 +-
 .../royale/compiler/common/MutablePrefixMap.java   |   0
 .../apache/royale/compiler/common/PrefixMap.java   |   0
 .../royale/compiler/common/SourceLocation.java     |   0
 .../org/apache/royale/compiler/common/XMLName.java |   0
 .../compiler/constants/IASKeywordConstants.java    |   0
 .../compiler/constants/IASLanguageConstants.java   |   0
 .../royale/compiler/definitions/IDefinition.java   |   3 +-
 .../definitions/IDocumentableDefinition.java       |   0
 .../compiler/definitions/IFunctionDefinition.java  |   0
 .../compiler/definitions/IInterfaceDefinition.java |   0
 .../compiler/definitions/IMemberedDefinition.java  |   0
 .../compiler/definitions/INamespaceDefinition.java |   0
 .../compiler/definitions/IParameterDefinition.java |   0
 .../royale/compiler/definitions/IQualifiers.java   |   0
 .../compiler/definitions/IScopedDefinition.java    |   0
 .../compiler/definitions/ITypeDefinition.java      |   0
 .../compiler/definitions/IVariableDefinition.java  |  13 +-
 .../definitions/metadata/IDeprecationInfo.java     |   0
 .../compiler/definitions/metadata/IMetaTag.java    |   0
 .../definitions/metadata/IMetaTagAttribute.java    |   0
 .../references/INamespaceReference.java            |   6 +-
 .../definitions/references/IReference.java         |  10 -
 .../compiler/filespecs/IFileSpecification.java     |   0
 .../royale/compiler/internal/mxml/MXMLDialect.java |  30 +-
 .../compiler/internal/mxml/MXMLDialect2006.java    |  16 +-
 .../compiler/internal/mxml/MXMLDialect2009.java    |   0
 .../compiler/internal/mxml/MXMLDialect2012.java    |   4 +-
 .../compiler/internal/parsing/ISourceFragment.java |   0
 .../org/apache/royale/compiler/mxml/IMXMLData.java |   7 +-
 .../royale/compiler/mxml/IMXMLDataManager.java     |   0
 .../compiler/mxml/IMXMLLanguageConstants.java      |   0
 .../compiler/mxml/IMXMLTagAttributeData.java       |   0
 .../apache/royale/compiler/mxml/IMXMLTagData.java  |   0
 .../apache/royale/compiler/mxml/IMXMLUnitData.java |   0
 .../apache/royale/compiler/parsing/IASToken.java   |  17 +-
 .../apache/royale/compiler/parsing/ICMToken.java   |   0
 .../royale/compiler/problems/CompilerProblem.java  |   8 +-
 .../problems/CompilerProblemClassification.java    |   0
 .../compiler/problems/CompilerProblemSeverity.java |   0
 .../royale/compiler/problems/ICompilerProblem.java |   0
 .../problems/UnexpectedExceptionProblem.java       |   0
 .../problems/annotations/DefaultSeverity.java      |   0
 .../annotations/ProblemClassification.java         |   0
 .../compiler/problems/annotations/package.html     |   0
 .../royale/compiler/projects/ICompilerProject.java |   6 +-
 .../apache/royale/compiler/scopes/IASScope.java    |   0
 .../royale/compiler/scopes/IDefinitionSet.java     |   0
 .../org/apache/royale/compiler/tree/ASTNodeID.java |   0
 .../apache/royale/compiler/tree/as/IASNode.java    |   0
 .../royale/compiler/tree/as/IContainerNode.java    |   0
 .../royale/compiler/tree/as/IDefinitionNode.java   |   0
 .../tree/as/IDocumentableDefinitionNode.java       |   0
 .../royale/compiler/tree/as/IExpressionNode.java   |   0
 .../royale/compiler/tree/as/IFunctionNode.java     |   0
 .../royale/compiler/tree/as/IImportNode.java       |   0
 .../royale/compiler/tree/as/IModifierNode.java     |   0
 .../royale/compiler/tree/as/INamespaceNode.java    |   0
 .../royale/compiler/tree/as/IParameterNode.java    |   0
 .../compiler/tree/as/IScopedDefinitionNode.java    |   0
 .../royale/compiler/tree/as/IScopedNode.java       |   0
 .../apache/royale/compiler/tree/as/ITypeNode.java  |   0
 .../royale/compiler/tree/as/IVariableNode.java     |   0
 .../compiler/tree/metadata/IMetaTagNode.java       |   0
 .../compiler/tree/metadata/IMetaTagsNode.java      |   0
 .../compiler/workspaces/IInvalidationListener.java |   0
 .../royale/compiler/workspaces/IWorkspace.java     |   9 +-
 .../workspaces/IWorkspaceProfilingDelegate.java    |   0
 .../src/main/java/org/apache/royale/swc/ISWC.java  |   0
 .../java/org/apache/royale/swc/ISWCComponent.java  |   0
 .../java/org/apache/royale/swc/ISWCDigest.java     |   0
 .../java/org/apache/royale/swc/ISWCFileEntry.java  |   0
 .../java/org/apache/royale/swc/ISWCLibrary.java    |   6 +-
 .../java/org/apache/royale/swc/ISWCManager.java    |  16 +-
 .../java/org/apache/royale/swc/ISWCScript.java     |   0
 .../java/org/apache/royale/swc/ISWCVersion.java    |   0
 .../org/apache/royale/swc/dita/IDITAEntry.java     |   0
 .../java/org/apache/royale/swc/dita/IDITAList.java |   0
 .../src/main/java/org/apache/royale/swf/ISWF.java  |   0
 .../java/org/apache/royale/swf/ITagContainer.java  |   0
 .../main/java/org/apache/royale/swf/SWFFrame.java  |   0
 .../main/java/org/apache/royale/swf/TagType.java   |   0
 .../java/org/apache/royale/swf/io/ISWFReader.java  |   0
 .../java/org/apache/royale/swf/tags/DoABCTag.java  |   0
 .../apache/royale/swf/tags/EnableDebugger2Tag.java |   0
 .../apache/royale/swf/tags/EnableTelemetryTag.java |   0
 .../apache/royale/swf/tags/ExportAssetsTag.java    |   0
 .../org/apache/royale/swf/tags/FrameLabelTag.java  |   0
 .../apache/royale/swf/tags/ICharacterReferrer.java |   0
 .../org/apache/royale/swf/tags/ICharacterTag.java  |   0
 .../org/apache/royale/swf/tags/IManagedTag.java    |   0
 .../main/java/org/apache/royale/swf/tags/ITag.java |   0
 .../org/apache/royale/swf/tags/ProductInfoTag.java |   0
 .../apache/royale/swf/tags/ScriptLimitsTag.java    |   0
 .../org/apache/royale/swf/tags/ShowFrameTag.java   |   0
 .../org/apache/royale/swf/tags/SymbolClassTag.java |   0
 .../main/java/org/apache/royale/swf/tags/Tag.java  |   0
 .../org/apache/royale/swf/types/IDataType.java     |   0
 .../main/java/org/apache/royale/swf/types/RGB.java |   0
 .../java/org/apache/royale/swf/types/RGBA.java     |   0
 .../java/org/apache/royale/swf/types/Rect.java     |   0
 .../apache/royale/utils/FilenameNormalization.java |   0
 compiler-externc/build.xml                         | 120 +++++++
 .../apache/royale/compiler/clients/EXTERNC.java    |   0
 .../compiler/config/ExterncConfigurator.java       |   0
 .../codegen/externals/emit/ReferenceEmitter.java   |   0
 .../codegen/externals/pass/ReferenceCompiler.java  |   0
 .../externals/reference/ReferenceModel.java        |   0
 .../references/INamespaceResolvedReference.java}   |  16 +-
 .../definitions/references/IReferenceMName.java}   |  33 +-
 .../compiler/internal/caches/AssetTagCache.java    |   2 +-
 .../compiler/internal/caches/CSSDocumentCache.java |   2 +-
 .../compiler/internal/caches/FileScopeCache.java   |   2 +-
 .../royale/compiler/internal/caches/SWFCache.java  |   2 +-
 137 files changed, 608 insertions(+), 166 deletions(-)

diff --git a/compiler-common/build.xml b/compiler-common/build.xml
new file mode 100644
index 0000000..5269157
--- /dev/null
+++ b/compiler-common/build.xml
@@ -0,0 +1,352 @@
+<?xml version="1.0" ?>
+
+<!--
+
+  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.
+
+-->
+
+<project name="compiler-common" default="main" basedir=".">
+
+    <!-- 
+
+        PROPERTIES
+
+    -->
+
+    <!-- The 'compiler-common' property is the absolute path, with forward slashes, -->
+    <!-- to the 'compiler-common' directory that contains this file. -->
+    <!-- All input paths are expressed as absolute paths starting with ${compiler-common}. -->
+    <pathconvert property="compiler-common" dirsep="/">
+        <path location="${basedir}"/>
+    </pathconvert>
+    
+    <!-- The 'compiler' property is the absolute path, with forward slashes, -->
+    <!-- to the 'compiler' directory that is a sibling of the parent folder of this file. -->
+    <!-- All input paths are expressed as absolute paths starting with ${compiler-common}. -->
+    <pathconvert property="compiler" dirsep="/">
+        <path location="${basedir}/../compiler"/>
+    </pathconvert>
+    
+    <!-- Properties can be overridden locally by loading a local.properties file -->
+    <!-- Java 8 users probably need javadoc.params=-Xdoclint:none -->
+    <property file="${compiler-common}/local.properties"/>
+    
+    <property name="src.depend" value="true"/>
+
+    <!-- Options for <javac> tasks -->
+    <property name="javac.debug" value="true"/>
+    <property name="javac.deprecation" value="false"/>
+    <property name="javac.src" value="1.6"/>
+
+    <!-- JAR manifest entries -->
+    <property name="manifest.sealed" value="false"/>
+    <property name="manifest.Implementation-Title" value="Apache Royale Compiler"/>
+    <property name="manifest.Implementation-Version" value="${release.version}"/>
+    <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/>
+    
+    <!-- label is set by CruiseControl script based on P4 label incrementer -->
+    <condition property="build.number" value="${env.BUILD_NUMBER}">
+        <isset property="env.BUILD_NUMBER"/>
+    </condition>
+    
+    <!--
+     
+     MACROS
+     
+     -->
+    
+    <!--
+     Defines a <jflex input="..." skeleton="..." output="..."> macro
+     for using JFlex to generate a Java-based lexer from a .lex file.
+     -->
+    <macrodef name="jflex">
+        <attribute name="input"/>
+        <attribute name="skeleton" default="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as/skeleton.default"/>
+        <attribute name="output"/>
+        <sequential>
+            <java jar="${compiler}/lib/external/jflex.jar" fork="true">
+                <arg value="-d"/>
+                <arg value="@{output}"/>
+                <arg value="-q"/>
+                <arg value="@{input}"/>
+                <arg value="--skel"/>
+                <arg value="@{skeleton}"/>
+            </java>
+        </sequential>
+    </macrodef>
+    
+    <!--
+     Defines an <antlr2 input="..." output="..."> macro
+     for using ANTLR 2 to generate a Java-based parser from a .g file.
+     -->
+    <macrodef name="antlr2">
+        <attribute name="input"/>
+        <attribute name="output"/>
+        <sequential>
+            <mkdir dir="@{output}"/>
+            <dirname property="antlr2.dirname.@{input}" file="@{input}"/>
+            <antlr target="@{input}" outputdirectory="@{output}" dir="${antlr2.dirname.@{input}}">
+                <classpath>
+                    <pathelement path="${compiler}/lib/external/antlr.jar"/>
+                </classpath>
+            </antlr>
+        </sequential>
+    </macrodef>
+    
+    <!--
+     Defines an <antlr3 input="..." output="..."> macro
+     for using ANTLR 3 to generate a Java-based parser from a .g file.
+     -->
+    <macrodef name="antlr3">
+        <attribute name="input"/>
+        <attribute name="output"/>
+        <sequential>
+            <mkdir dir="@{output}"/>
+            <!-- Call antlr3 on command-line because we can't update Ant library path. -->
+            <java jar="${compiler}/lib/external/antlr.jar" fork="yes" failonerror="yes">
+                <arg value="@{input}"/>
+                <arg value="-o"/>
+                <arg value="@{output}"/>
+            </java>
+        </sequential>
+    </macrodef>
+    
+    <!--
+     Defines an <annotate.class file="..." annotation="..."> macro
+     used for inserting @SuppressWarnings(...) into generated Java classes,
+     in order to keep the build warning-free.
+     ANTLR and JBurg generate code that isn't warning-free in Eclipse.
+     -->
+    <macrodef name="annotate.class">
+        <attribute name="file"/>
+        <attribute name="annotation"/>
+        <sequential>
+            <java classname="org.apache.royale.compiler.tools.annotate.AnnotateClass" fork="false">
+                <classpath>
+                    <path refid="classpath"/>
+                    <pathelement location="${compiler-common}/../compiler-build-tools/target/classes"/>
+                    <pathelement location="${compiler-common}/target/classes"/>
+                </classpath>
+                <arg value="@{file}"/>
+                <arg value="@{annotation}"/>
+            </java>
+        </sequential>
+    </macrodef>
+    
+    <!--
+     
+	    GENERATION OF JAVA CODE WITH JFLEX
+	    
+     -->
+    
+    <target name="set.raw.as.tokenizer.uptodate">
+        <uptodate property="raw.as.tokenizer.uptodate"
+            targetfile="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/as/RawASTokenizer.java">
+            <srcfiles dir="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as">
+                <include name="RawASTokenizer.lex"/>
+                <include name="skeleton.royale"/>
+            </srcfiles>
+        </uptodate>
+    </target>
+    
+    <target name="raw.as.tokenizer" depends="set.raw.as.tokenizer.uptodate" unless="raw.as.tokenizer.uptodate"
+        description="Generates RawASTokenizer.java">
+        <echo message="Generating RawASTokenizer"/>
+        <jflex input="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as/RawASTokenizer.lex"
+        skeleton="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as/skeleton.royale"
+        output="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/as"/>
+    </target>
+    
+    <target name="set.raw.asdoc.tokenizer.uptodate">
+        <uptodate property="raw.asdoc.tokenizer.uptodate"
+            targetfile="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/as/RawASDocTokenizer.java">
+            <srcfiles dir="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as">
+                <include name="RawASDocTokenizer.lex"/>
+                <include name="skeleton.default"/>
+            </srcfiles>
+        </uptodate>
+    </target>
+    
+    <target name="raw.asdoc.tokenizer" depends="set.raw.asdoc.tokenizer.uptodate" unless="raw.asdoc.tokenizer.uptodate"
+        description="Generates RawASDocTokenizer.java">
+        <echo message="Generating RawASDocTokenizer"/>
+        <jflex input="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/as/RawASDocTokenizer.lex"
+        output="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/as"/>
+    </target>
+    
+    <target name="set.raw.mxml.tokenizer.uptodate">
+        <uptodate property="raw.mxml.tokenizer.uptodate"
+            targetfile="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/mxml/RawMXMLTokenizer.java">
+            <srcfiles dir="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/mxml">
+                <include name="RawMXMLTokenizer.lex"/>
+                <include name="skeleton.default"/>
+            </srcfiles>
+        </uptodate>
+    </target>
+    
+    <target name="raw.mxml.tokenizer" depends="set.raw.mxml.tokenizer.uptodate" unless="raw.mxml.tokenizer.uptodate"
+        description="Generates RawMXMLTokenizer.java">
+        <echo message="Generating RawMXMLTokenizer"/>
+        <jflex input="${compiler-common}/src/main/jflex/org/apache/royale/compiler/internal/parsing/mxml/RawMXMLTokenizer.lex"
+        output="${compiler-common}/target/generated-sources/jflex/org/apache/royale/compiler/internal/parsing/mxml"/>
+    </target>
+    
+    <target name="jflex" depends="raw.as.tokenizer, raw.asdoc.tokenizer, raw.mxml.tokenizer"
+    description="Generates Java code with JFlex"/>
+    
+    <!--
+     
+     GENERATION OF JAVA CODE WITH ANTLR
+     
+     -->
+    
+    <target name="set.as.parser.uptodate">
+        <uptodate property="as.parser.uptodate"
+        srcfile="${compiler-common}/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g"
+        targetfile="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.java"/>
+    </target>
+    
+    <target name="as.parser" depends="set.as.parser.uptodate" unless="as.parser.uptodate">
+        <echo message="Generating ASParser and ASTokenTypes"/>
+        <antlr2 input="${compiler-common}/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.g"
+        output="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as"/>
+        <annotate.class file="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/ASParser.java"
+        annotation='@SuppressWarnings("unused")'/>
+        <annotate.class file="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/ASTokenTypes.java"
+        annotation='@SuppressWarnings("unused")'/>
+    </target>
+    
+    <target name="set.metadata.parser.uptodate">
+        <uptodate property="metadata.parser.uptodate"
+            targetfile="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/MetadataParser.java">
+            <srcfiles dir="${compiler-common}/src/main/antlr/org/apache/royale/compiler/internal/parsing/as">
+                <include name="MetadataParser.g"/>
+                <include name="ImportMetadataTokenTypes.txt"/>
+            </srcfiles>
+        </uptodate>
+    </target>
+    
+    <target name="metadata.parser" depends="set.metadata.parser.uptodate" unless="metadata.parser.uptodate">
+        <echo message="Generating MetadataParser and MetadataTokenTypes"/>
+        <antlr2 input="${compiler-common}/src/main/antlr/org/apache/royale/compiler/internal/parsing/as/MetadataParser.g"
+        output="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as"/>
+        <annotate.class file="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/MetadataParser.java"
+        annotation='@SuppressWarnings("all")'/>
+        <annotate.class file="${compiler-common}/target/generated-sources/antlr/org/apache/royale/compiler/internal/parsing/as/MetadataTokenTypes.java"
+        annotation='@SuppressWarnings("unused")'/>
+    </target>
+    
+    <target name="set.css.lexer.and.parser.uptodate">
+        <uptodate property="css.lexer.and.parser.uptodate"
+        srcfile="${compiler-common}/src/main/antlr/org/apache/royale/compiler/internal/css/CSS.g"
+        targetfile="${compiler-common}/target/generated-sources/java/org/apache/royale/compiler/internal/css/CSSParser.java"/>
+    </target>
+    
+    <target name="css.lexer.and.parser" depends="set.css.lexer.and.parser.uptodate" unless="css.lexer.and.parser.uptodate">
+        <echo message="Generating CSSLexer and CSSParser"/>
+        <antlr3 input="${compiler-common}/src/main/antlr3/org/apache/royale/compiler/internal/css/CSS.g"
+        output="${compiler-common}/target/generated-sources/antlr3/org/apache/royale/compiler/internal/css"/>
+        <!--<annotate.class file="${compiler-common}/generated/src/org/apache/royale/compiler/internal/css/CSSLexer.java"
+         annotation='@SuppressWarnings("unused")'/>-->
+        <!--<annotate.class file="${compiler-common}/generated/src/org/apache/royale/compiler/internal/css/CSSParser.java"
+         annotation='@SuppressWarnings("unused")'/>-->
+    </target>
+    
+    <target name="set.css.tree.uptodate">
+        <uptodate property="css.tree.uptodate"
+        srcfile="${compiler-common}/src/main/antlr3/org/apache/royale/compiler/internal/css/CSSTree.g"
+        targetfile="${compiler-common}/target/generated-sources/antlr3/org/apache/royale/compiler/internal/css/CSSTree.java"/>
+    </target>
+    
+    <target name="css.tree" depends="set.css.tree.uptodate" unless="css.tree.uptodate">
+        <echo message="Generating CSSTree"/>
+        <antlr3 input="${compiler-common}/src/main/antlr3/org/apache/royale/compiler/internal/css/CSSTree.g"
+        output="${compiler-common}/target/generated-sources/antlr3/org/apache/royale/compiler/internal/css"/>
+        <!--<annotate.class file="${compiler-common}/generated/src/org/apache/royale/compiler/internal/css/CSSTree.java"
+         annotation='@SuppressWarnings({"rawtypes", "unchecked", "unused"})'/>-->
+    </target>
+    
+    <target name="antlr" depends="as.parser, metadata.parser, css.lexer.and.parser, css.tree"
+    description="Generates Java code with ANTLR"/>
+    
+    <!--
+    <target name="compiler.test.downloads.cache" if="usingDownloadCache">
+        <ant antfile="${compiler-common}/../compiler/src/test/downloads.xml" dir="${compiler-common}/../compiler/src/test" inheritAll="false">
+            <property name="usingDownloadCache" value="${usingDownloadCache}" />
+            <property name="downloadCacheFolder" value="${downloadCacheFolder}" />
+        </ant>
+    </target>
+    <target name="compiler.test.downloads" depends="compiler.test.downloads.cache" unless="usingDownloadCache">
+        <ant antfile="${compiler-common}/../compiler/src/test/downloads.xml" dir="${compiler-common}/../compiler/src/test" inheritAll="false"/>
+    </target>
+    -->
+    
+    <!--
+
+        EXTERNC
+
+    -->
+	
+    <!--
+    <target name="test.classes" depends="compiler.test.downloads">
+        <mkdir dir="${compiler-common}/target/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler-common}/target/classes" includeAntRuntime="true"
+            source="${javac.src}" target="${javac.src}">
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+            <src path="${compiler-common}/src/main/java"/>
+            <include name="org/apache/royale/utils/*.java"/>
+            <classpath>
+                <pathelement location="${compiler-common}/target/classes"/>
+                <fileset dir="${compiler}/lib/external" includes="**/*.jar"/>
+            </classpath>
+        </javac>
+    </target>
+	-->
+    
+    <target name="main" > <!-- depends="jflex, antlr" >-->
+        <mkdir dir="${compiler-common}/target/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler-common}/target/classes" includeAntRuntime="true" includes="**/*.java"
+            source="${javac.src}" target="${javac.src}">
+            <src path="${compiler-common}/src/main/java"/>
+            <!--
+            <src path="${compiler-common}/target/generated-sources/jflex"/>
+            <src path="${compiler-common}/target/generated-sources/antlr"/>
+            <src path="${compiler-common}/target/generated-sources/antlr3"/>
+             -->
+            <compilerarg value="-Xlint:all,-path,-fallthrough,-cast"/>
+            <classpath>
+                <pathelement location="${compiler-common}/target/classes"/>
+                <fileset dir="${compiler}/lib/external" includes="**/*.jar"/>
+            </classpath>
+        </javac>
+    </target>
+    
+    <!--
+
+        CLEANUP
+
+    -->
+
+    <target name="clean" description="clean">
+        <delete dir="${compiler-common}/target/classes"/>
+    </target>
+
+    <target name="wipe" depends="clean" description="Wipes everything that didn't come from Git.">
+        <delete dir="${compiler-common}/target"/>
+    </target>
+
+ </project>
diff --git a/compiler/src/main/java/org/apache/royale/compiler/Messages.java b/compiler-common/src/main/java/org/apache/royale/compiler/Messages.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/Messages.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/Messages.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocComment.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocComment.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocComment.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocComment.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java
similarity index 83%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java
index 9409205..451dcac 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocDelegate.java
@@ -21,12 +21,10 @@ package org.apache.royale.compiler.asdoc;
 
 import org.apache.royale.compiler.common.ISourceLocation;
 import org.apache.royale.compiler.definitions.IDocumentableDefinition;
-import org.apache.royale.compiler.internal.parsing.as.ASParser;
-import org.apache.royale.swc.io.SWCReader;
 
 
 /**
- * Delegate interface used by the {@link ASParser} to record
+ * Delegate interface used by the ASParser to record
  * ASDoc information encountered while parsing ActionScript
  * or meta-data tags.
  */
@@ -34,15 +32,15 @@ public interface IASDocDelegate
 {
     /**
      * Get's an implementation of {@link IASParserASDocDelegate} that can be
-     * used by the {@link ASParser} to record information about ASDoc comments
+     * used by the ASParser to record information about ASDoc comments
      * encountered while parsing ActionScript.
      * <p>
      * Implementations of the {@link IASParserASDocDelegate} interface that
      * record ASDoc data are stateful and can not be shared between
-     * {@link ASParser} instances.
+     * ASParser instances.
      * 
      * @return an implementation of {@link IASParserASDocDelegate} that can be
-     * used by the {@link ASParser} to recored information about ASDoc comments
+     * used by the ASParser to recored information about ASDoc comments
      */
     IASParserASDocDelegate getASParserASDocDelegate();
     
@@ -57,7 +55,7 @@ public interface IASDocDelegate
     
     /**
      * Get's an implementation of {@link IPackageDITAParser} that can be used by
-     * the {@link SWCReader} to parse DITA information found in a SWC.
+     * the SWCReader to parse DITA information found in a SWC.
      * @return An implementation of {@link IPackageDITAParser}.
      */
     IPackageDITAParser getPackageDitaParser();
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocTag.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IASDocTag.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASDocTag.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java
similarity index 77%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java
index 3e36ba5..3236228 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IASParserASDocDelegate.java
@@ -21,20 +21,18 @@ package org.apache.royale.compiler.asdoc;
 
 import antlr.Token;
 
-import org.apache.royale.compiler.internal.parsing.as.ASParser;
-import org.apache.royale.compiler.internal.parsing.as.MetadataParser;
 import org.apache.royale.compiler.tree.as.IDocumentableDefinitionNode;
 
 /**
- * Interface used by the {@link ASParser} to record ASDoc information.
+ * Interface used by the ASParser to record ASDoc information.
  * <p>
  * Implementations of this interface that record ASDoc data are stateful and can
- * not be shared between {@link ASParser} instances.
+ * not be shared between ASParser instances.
  */
 public interface IASParserASDocDelegate
 {
     /**
-     * Called by the {@link ASParser} before a variable is parsed.
+     * Called by the ASParser before a variable is parsed.
      * <p>
      * This is here to handle cases like this:
      * <pre>
@@ -58,14 +56,14 @@ public interface IASParserASDocDelegate
     void afterVariable();
     
     /**
-     * Called by the {@link ASParser} whenever a {@link Token} containing an ASDoc
+     * Called by the ASParser whenever a {@link Token} containing an ASDoc
      * comment is encountered.
      * @param asDocToken A {@link Token} containing an ASDoc comment.
      */
     void setCurrentASDocToken(Token asDocToken);
     
     /**
-     * Called by the {@link ASParser} after an {@link IDocumentableDefinitionNode} has been constructed
+     * Called by the ASParser after an {@link IDocumentableDefinitionNode} has been constructed
      * and fully parsed.
      * @param definitionNode {@link IDocumentableDefinitionNode} that has been parsed.
      * @return An {@link IASDocComment} that should be attached to the {@link IDocumentableDefinitionNode}.
@@ -73,17 +71,17 @@ public interface IASParserASDocDelegate
     IASDocComment afterDefinition(IDocumentableDefinitionNode definitionNode);
     
     /**
-     * Called by the {@link ASParser} to get an implementation of
+     * Called by the ASParser to get an implementation of
      * {@link IMetadataParserASDocDelegate} that will be used by the
-     * {@link MetadataParser} to record information about ASDoc comments
+     * MetadataParser to record information about ASDoc comments
      * encountered while parsing ActionScript meta-data.
      * <p>
      * Implementations of the {@link IMetadataParserASDocDelegate} interface
      * that record ASDoc data are stateful and can not be shared between
-     * {@link MetadataParser} instances.
+     * MetadataParser instances.
      * 
      * @return An implementation of {@link IMetadataParserASDocDelegate} that
-     * will be used by the {@link MetadataParser} to record information about
+     * will be used by the MetadataParser to record information about
      * ASDoc comments encountered while parsing ActionScript meta-data.
      */
     IMetadataParserASDocDelegate getMetadataParserASDocDelegate();
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java
similarity index 79%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java
index 1830db0..17005ce 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IMetadataParserASDocDelegate.java
@@ -21,27 +21,26 @@ package org.apache.royale.compiler.asdoc;
 
 import antlr.Token;
 
-import org.apache.royale.compiler.internal.parsing.as.MetadataParser;
 import org.apache.royale.compiler.tree.as.IDocumentableDefinitionNode;
 
 /**
- * Interface used by the {@link MetadataParser} to recored information about
+ * Interface used by the MetadataParser to recored information about
  * ASDoc comments encountered while parsing meta-data.
  * <p>
  * Implementations of this interface that record ASDoc data are stateful and can
- * not be shared between {@link MetadataParser} instances.
+ * not be shared between MetadataParser instances.
  */
 public interface IMetadataParserASDocDelegate
 {
     /**
-     * Called by the {@link MetadataParser} whenever a {@link Token} containing an ASDoc
+     * Called by the MetadataParser whenever a {@link Token} containing an ASDoc
      * comment is encountered.
      * @param asDocToken A {@link Token} containing an ASDoc comment.
      */
     void setCurrentASDocToken(Token asDocToken);
     
     /**
-     * Called by the {@link MetadataParser} after an {@link IDocumentableDefinitionNode} has been constructed
+     * Called by the MetadataParser after an {@link IDocumentableDefinitionNode} has been constructed
      * and fully parsed.
      * @param definitionNode {@link IDocumentableDefinitionNode} that has been parsed.
      * @return An {@link IASDocComment} that should be attached to the {@link IDocumentableDefinitionNode}.
@@ -49,7 +48,7 @@ public interface IMetadataParserASDocDelegate
     IASDocComment afterDefinition(IDocumentableDefinitionNode definitionNode);
     
     /**
-     * Called by the {@link MetadataParser} after parsing a meta-data tag
+     * Called by the MetadataParser after parsing a meta-data tag
      * that should prevent the current ASDoc comment from attaching to any
      * subsequent meta-data tag.
      * 
@@ -59,7 +58,7 @@ public interface IMetadataParserASDocDelegate
     void clearMetadataComment(String metaDataTagName);
     
     /**
-     * Called by the {@link MetadataParser} any time a meta-data tag is
+     * Called by the MetadataParser any time a meta-data tag is
      * parsed.
      * 
      * @param metaDataEndOffset The end offset of the meta-data tag that has
diff --git a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java
similarity index 93%
rename from compiler/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java
index 3d888c3..da7c651 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/asdoc/IPackageDITAParser.java
@@ -22,10 +22,9 @@ package org.apache.royale.compiler.asdoc;
 import java.io.InputStream;
 
 import org.apache.royale.swc.dita.IDITAList;
-import org.apache.royale.swc.io.SWCReader;
 
 /**
- * Interface used by {@link SWCReader} to parse DITA files containing ASDoc
+ * Interface used by SWCReader to parse DITA files containing ASDoc
  * information in SWCs.
  */
 public interface IPackageDITAParser
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java b/compiler-common/src/main/java/org/apache/royale/compiler/caches/IAssetTagCache.java
similarity index 82%
copy from compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/caches/IAssetTagCache.java
index 3111980..2848693 100644
--- a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/caches/IAssetTagCache.java
@@ -1,3 +1,4 @@
+
 /*
  *
  *  Licensed to the Apache Software Foundation (ASF) under one or more
@@ -17,12 +18,12 @@
  *
  */
 
-package org.apache.royale.swf.types;
+package org.apache.royale.compiler.caches;
 
 /**
- * The interface for all SWF data types.
+ * {@code IAssetTagCache} is a cache of asset tags used by ISWCManager
  */
-public interface IDataType
+public interface IAssetTagCache
 {
-
+    // TODO populate with methods
 }
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java b/compiler-common/src/main/java/org/apache/royale/compiler/caches/ICSSDocumentCache.java
similarity index 78%
copy from compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/caches/ICSSDocumentCache.java
index 3111980..2f9140c 100644
--- a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/caches/ICSSDocumentCache.java
@@ -17,12 +17,13 @@
  *
  */
 
-package org.apache.royale.swf.types;
+package org.apache.royale.compiler.caches;
 
 /**
- * The interface for all SWF data types.
+ * {@code ISWCManager} is a repository of SWC library models. It has all the SWC
+ * libraries shared within a workspace.
  */
-public interface IDataType
+public interface ICSSDocumentCache
 {
-
+    // TODO populate with methods
 }
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java b/compiler-common/src/main/java/org/apache/royale/compiler/caches/IFileScopeCache.java
similarity index 82%
copy from compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/caches/IFileScopeCache.java
index 3111980..c6812a7 100644
--- a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/caches/IFileScopeCache.java
@@ -17,12 +17,12 @@
  *
  */
 
-package org.apache.royale.swf.types;
+package org.apache.royale.compiler.caches;
 
 /**
- * The interface for all SWF data types.
+ * {@code IFileScopeCache} is a cache of FileScopes used by ISWCManager.
  */
-public interface IDataType
+public interface IFileScopeCache
 {
-
+    // TODO populate with methods
 }
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java b/compiler-common/src/main/java/org/apache/royale/compiler/caches/ISWFCache.java
similarity index 83%
copy from compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/caches/ISWFCache.java
index 3111980..1b75f1f 100644
--- a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/caches/ISWFCache.java
@@ -17,12 +17,11 @@
  *
  */
 
-package org.apache.royale.swf.types;
+package org.apache.royale.compiler.caches;
 
 /**
- * The interface for all SWF data types.
- */
-public interface IDataType
+ * {@code ISWFCache} is a cache of SWFs used by ISWCManager */
+public interface ISWFCache
 {
-
+    // TODO populate with methods
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/IProblemFilter.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/IProblemFilter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/IProblemFilter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/IProblemFilter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFormatter.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFormatter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFormatter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFormatter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemPrinter.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemPrinter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemPrinter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemPrinter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/ASModifier.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/ASModifier.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/ASModifier.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/ASModifier.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/DependencyType.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/DependencyType.java
similarity index 97%
rename from compiler/src/main/java/org/apache/royale/compiler/common/DependencyType.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/DependencyType.java
index 4063aac..17282d6 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/common/DependencyType.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/common/DependencyType.java
@@ -19,12 +19,10 @@
 
 package org.apache.royale.compiler.common;
 
-import org.apache.royale.compiler.internal.projects.DependencyGraph;
-
 
 /**
  * An enumeration representing the four types of dependencies that an
- * edge in a {@link DependencyGraph} can have.
+ * edge in a DependencyGraph can have.
  */
 public enum DependencyType
 {
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/DependencyTypeSet.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/DependencyTypeSet.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/DependencyTypeSet.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/DependencyTypeSet.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/IDecoration.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/IDecoration.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/IDecoration.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/IDecoration.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java
similarity index 93%
rename from compiler/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java
index 854ffb7..e18c230 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/common/IFileSpecificationGetter.java
@@ -19,7 +19,6 @@
 
 package org.apache.royale.compiler.common;
 
-import org.apache.royale.compiler.filespecs.FileSpecification;
 import org.apache.royale.compiler.filespecs.IFileSpecification;
 import org.apache.royale.compiler.workspaces.IWorkspace;
 
@@ -32,7 +31,7 @@ public interface IFileSpecificationGetter
     /**
      * Returns the most recent {@link IFileSpecification} given to the
      * implementation for a specified path. If the implementation has not seen
-     * the specified path before, a new {@link FileSpecification} is returned.
+     * the specified path before, a new FileSpecification is returned.
      * 
      * @param fileName Normalized absolute file name for which a
      * {@link IFileSpecification} should be returned.
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/IImportTarget.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/IImportTarget.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/IImportTarget.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/IImportTarget.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/IMetaInfo.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/IMetaInfo.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/IMetaInfo.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/IMetaInfo.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/ISourceLocation.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/ISourceLocation.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/ISourceLocation.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/ISourceLocation.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java
similarity index 96%
rename from compiler/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java
index 973e7cd..dabf14f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/common/ModifiersSet.java
@@ -21,7 +21,7 @@ package org.apache.royale.compiler.common;
 
 import java.util.ArrayList;
 
-import org.apache.royale.compiler.internal.tree.as.ModifierNode;
+import org.apache.royale.compiler.tree.as.IModifierNode;
 
 /**
  * Map for holding a set of modifiers
@@ -53,7 +53,7 @@ public class ModifiersSet
      * 
      * @param modifier token holding modifier keyword
      */
-    public void addModifier(ModifierNode modifier)
+    public void addModifier(IModifierNode modifier)
     {
         if (modifier.getModifier() != null)
         {
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/MutablePrefixMap.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/MutablePrefixMap.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/MutablePrefixMap.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/MutablePrefixMap.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/PrefixMap.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/PrefixMap.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/PrefixMap.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/PrefixMap.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/SourceLocation.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/SourceLocation.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/SourceLocation.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/SourceLocation.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/XMLName.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/XMLName.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/XMLName.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/XMLName.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/constants/IASKeywordConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/constants/IASKeywordConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/constants/IASKeywordConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/constants/IASKeywordConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/constants/IASLanguageConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/constants/IASLanguageConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/constants/IASLanguageConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/constants/IASLanguageConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java
similarity index 99%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java
index 5defbbc..21f225b 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IDefinition.java
@@ -29,7 +29,6 @@ import org.apache.royale.compiler.definitions.references.INamespaceReference;
 import org.apache.royale.compiler.definitions.references.IReference;
 import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.scopes.IASScope;
-import org.apache.royale.compiler.tree.as.IClassNode;
 import org.apache.royale.compiler.tree.as.IDefinitionNode;
 import org.apache.royale.compiler.tree.metadata.IMetaTagNode;
 
@@ -445,7 +444,7 @@ public interface IDefinition
      * <p>
      * More specific definition interfaces such as {@link IClassDefinition}
      * redeclare this method to return a more specific node interface such as
-     * {@link IClassNode}.
+     * IClassNode.
      */
     IDefinitionNode getNode();
 
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IDocumentableDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IDocumentableDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IDocumentableDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IDocumentableDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IFunctionDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IFunctionDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IFunctionDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IFunctionDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IInterfaceDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IInterfaceDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IInterfaceDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IInterfaceDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IMemberedDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IMemberedDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IMemberedDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IMemberedDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/INamespaceDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/INamespaceDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/INamespaceDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/INamespaceDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IParameterDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IParameterDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IParameterDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IParameterDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IQualifiers.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IQualifiers.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IQualifiers.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IQualifiers.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IScopedDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IScopedDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IScopedDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IScopedDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/ITypeDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/ITypeDefinition.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/ITypeDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/ITypeDefinition.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java
similarity index 93%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java
index 68fbb6b..445aae1 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/IVariableDefinition.java
@@ -19,7 +19,6 @@
 
 package org.apache.royale.compiler.definitions;
 
-import org.apache.royale.compiler.internal.projects.RoyaleProject;
 import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.tree.as.IVariableNode;
 
@@ -140,7 +139,7 @@ public interface IVariableDefinition extends IDocumentableDefinition
      * specified type for the array elements. Otherwise, it returns
      * <code>null</code>.
      */
-    String getArrayElementType(RoyaleProject project);
+    String getArrayElementType(ICompilerProject project);
 
     /**
      * If this {@code IVariableDefinition} is of type
@@ -148,7 +147,7 @@ public interface IVariableDefinition extends IDocumentableDefinition
      * metadata, this method returns the specified type for the deferred
      * instance. Otherwise, it returns <code>null</code>.
      */
-    String getInstanceType(RoyaleProject project);
+    String getInstanceType(ICompilerProject project);
 
     /**
      * If this {@code IVariableDefinition} has
@@ -156,26 +155,26 @@ public interface IVariableDefinition extends IDocumentableDefinition
      * this method returns the specified property name.
      * Otherwise, it returns <code>null</code>
      */
-    String getPercentProxy(RoyaleProject project);
+    String getPercentProxy(ICompilerProject project);
 
     /**
      * If this {@code IVariableDefinition} has <code>[RichTextContent]</code>
      * metadata, this method returns <code>true</code> Otherwise, it returns
      * <code>false</code>
      */
-    boolean hasRichTextContent(RoyaleProject project);
+    boolean hasRichTextContent(ICompilerProject project);
 
     /**
      * If this {@code IVariableDefinition} has <code>[CollapseWhiteSpace]</code>
      * metadata, this method returns <code>true</code> Otherwise, it returns
      * <code>false</code>
      */
-    boolean hasCollapseWhiteSpace(RoyaleProject project);
+    boolean hasCollapseWhiteSpace(ICompilerProject project);
 
     /**
      * Returns <code>true</code> if this {@code IVariableDefinition} has
      * <code>[Inspectable(...)]</code> metadata that specifies
      * <code>format="Color"</code> Otherwise, returns <code>false</code>.
      */
-    boolean isColor(RoyaleProject project);
+    boolean isColor(ICompilerProject project);
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IDeprecationInfo.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IDeprecationInfo.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IDeprecationInfo.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IDeprecationInfo.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTag.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTag.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTag.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTagAttribute.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTagAttribute.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTagAttribute.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/metadata/IMetaTagAttribute.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java
similarity index 91%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java
index db19f5e..b68db19 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceReference.java
@@ -19,10 +19,8 @@
 
 package org.apache.royale.compiler.definitions.references;
 
-import org.apache.royale.abc.semantics.Namespace;
 import org.apache.royale.compiler.definitions.INamespaceDefinition;
 import org.apache.royale.compiler.projects.ICompilerProject;
-import org.apache.royale.compiler.units.ICompilationUnit;
 
 /**
  * INamespaceReferences are used in the symbol table to represent
@@ -49,7 +47,7 @@ public interface INamespaceReference
     /**
      * Resolves this namespace reference to a namespace definition.
      * @param project {@link ICompilerProject} whose symbol table will be used to resolve
-     * references across {@link ICompilationUnit}'s.
+     * references across ICompilationUnits.
      * @return The {@link INamespaceDefinition} representing the definition of the namespace.
      */
     INamespaceDefinition resolveNamespaceReference(ICompilerProject project);
@@ -58,6 +56,4 @@ public interface INamespaceReference
     String getBaseName();
 
     boolean isPublicOrInternalNamespace();
-    
-    Namespace resolveAETNamespace(ICompilerProject project);
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java
similarity index 88%
rename from compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java
index 17f7a2a..4326da4 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/definitions/references/IReference.java
@@ -19,7 +19,6 @@
 
 package org.apache.royale.compiler.definitions.references;
 
-import org.apache.royale.abc.semantics.Name;
 import org.apache.royale.compiler.common.DependencyType;
 import org.apache.royale.compiler.definitions.IDefinition;
 import org.apache.royale.compiler.internal.scopes.ASScope;
@@ -77,13 +76,4 @@ public interface IReference
      */
     String getDisplayString();
 
-    /**
-     * Gets the AET {link Name} that this reference represents in the given
-     * project and scope.
-     * 
-     * @param project The project where the reference is used.
-     * @param scope The scope where the reference is used from.
-     * @return An AET {@link Name} representing this reference
-     */
-    Name getMName(ICompilerProject project, ASScope scope);
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/filespecs/IFileSpecification.java b/compiler-common/src/main/java/org/apache/royale/compiler/filespecs/IFileSpecification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/filespecs/IFileSpecification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/filespecs/IFileSpecification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java
similarity index 95%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java
index e23f736..c5ffba2 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect.java
@@ -27,7 +27,7 @@ import com.google.common.collect.ImmutableMap;
 
 import org.apache.royale.compiler.common.PrefixMap;
 import org.apache.royale.compiler.common.XMLName;
-import org.apache.royale.compiler.internal.projects.RoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.mxml.IMXMLLanguageConstants;
 
 /**
@@ -571,72 +571,72 @@ public abstract class MXMLDialect
     /**
      * Parses an ActionScript <code>Boolean</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>Boolean</code> representing the ActionScript
      * <code>Boolean</code>, or <code>null</code>.
      */
-    public abstract Boolean parseBoolean(RoyaleProject project, String s,
+    public abstract Boolean parseBoolean(ICompilerProject project, String s,
                                          EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript <code>int</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>Integer</code> representing the ActionScript
      * <code>int</code>, or <code>null</code>.
      */
-    public abstract Integer parseInt(RoyaleProject project, String s,
+    public abstract Integer parseInt(ICompilerProject project, String s,
                                      EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript <code>uint</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>Long</code> representing the ActionScript
      * <code>uint</code>, or <code>null</code>.
      */
-    public abstract Long parseUint(RoyaleProject project, String s,
+    public abstract Long parseUint(ICompilerProject project, String s,
                                    EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript <code>Number</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>Number</code> representing the ActionScript
      * <code>Number</code>, or <code>null</code>.
      */
-    public abstract Number parseNumber(RoyaleProject project, String s,
+    public abstract Number parseNumber(ICompilerProject project, String s,
                                        EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript <code>String</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>String</code> representing the ActionScript
      * <code>String</code>, or <code>null</code>.
      */
-    public abstract String parseString(RoyaleProject project, String s,
+    public abstract String parseString(ICompilerProject project, String s,
                                        EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript <code>Array</code> value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
@@ -644,20 +644,20 @@ public abstract class MXMLDialect
      * representing the elements of the ActionScript <code>Array</code>, or
      * <code>null</code>.
      */
-    public abstract List<Object> parseArray(RoyaleProject project, String s,
+    public abstract List<Object> parseArray(ICompilerProject project, String s,
                                             EnumSet<TextParsingFlags> flags);
 
     /**
      * Parses an ActionScript value from a string.
      * 
-     * @param project The {@link RoyaleProject} within which the MXML is being
+     * @param project The {@link ICompilerProject} within which the MXML is being
      * parsed.
      * @param s The string to be parsed.
      * @param flags A set of flags controlling the text parsing.
      * @return A Java <code>Object</code> representing the ActionScript value,
      * or <code>null</code>.
      */
-    public abstract Object parseObject(RoyaleProject project, String s,
+    public abstract Object parseObject(ICompilerProject project, String s,
                                        EnumSet<TextParsingFlags> flags);
 
     /**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java
similarity index 95%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java
index a3ce153..53406a0 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2006.java
@@ -25,7 +25,7 @@ import java.util.List;
 
 import org.apache.royale.compiler.common.XMLName;
 import org.apache.royale.compiler.constants.IASLanguageConstants;
-import org.apache.royale.compiler.internal.projects.RoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.mxml.IMXMLLanguageConstants;
 
 /**
@@ -149,7 +149,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public Boolean parseBoolean(RoyaleProject project, String s,
+    public Boolean parseBoolean(ICompilerProject project, String s,
                                 EnumSet<TextParsingFlags> flags)
     {
         s = trim(s);
@@ -165,7 +165,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public Integer parseInt(RoyaleProject project, String s,
+    public Integer parseInt(ICompilerProject project, String s,
                             EnumSet<TextParsingFlags> flags)
     {
         s = trim(s);
@@ -197,7 +197,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public Long parseUint(RoyaleProject project, String s,
+    public Long parseUint(ICompilerProject project, String s,
                           EnumSet<TextParsingFlags> flags)
     {
         s = trim(s);
@@ -232,7 +232,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public Number parseNumber(RoyaleProject project, String s,
+    public Number parseNumber(ICompilerProject project, String s,
                               EnumSet<TextParsingFlags> flags)
     {
         // Don't parse Numbers with leading zeros, which are not octal.
@@ -256,7 +256,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public String parseString(RoyaleProject project, String s,
+    public String parseString(ICompilerProject project, String s,
                               EnumSet<TextParsingFlags> flags)
     {
         if (flags != null && flags.contains(TextParsingFlags.COLLAPSE_WHITE_SPACE))
@@ -266,7 +266,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public List<Object> parseArray(RoyaleProject project, String s,
+    public List<Object> parseArray(ICompilerProject project, String s,
                                    EnumSet<TextParsingFlags> flags)
     {
         if (flags != null && flags.contains(TextParsingFlags.ALLOW_ARRAY))
@@ -363,7 +363,7 @@ public class MXMLDialect2006 extends MXMLDialect
     }
     
     @Override
-    public Object parseObject(RoyaleProject project, String s,
+    public Object parseObject(ICompilerProject project, String s,
                               EnumSet<TextParsingFlags> flags)
     {
         String trimmed = trim(s);
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2009.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2009.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2009.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2009.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java
similarity index 95%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java
index 6460890..47b968f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLDialect2012.java
@@ -22,7 +22,7 @@ package org.apache.royale.compiler.internal.mxml;
 import java.util.EnumSet;
 
 import org.apache.royale.compiler.constants.IASLanguageConstants;
-import org.apache.royale.compiler.internal.projects.RoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.mxml.IMXMLLanguageConstants;
 
 /**
@@ -89,7 +89,7 @@ public class MXMLDialect2012 extends MXMLDialect2009
     }
     
     @Override
-    public Boolean parseBoolean(RoyaleProject project, String s, EnumSet<TextParsingFlags> flags)
+    public Boolean parseBoolean(ICompilerProject project, String s, EnumSet<TextParsingFlags> flags)
     {
         // Unlike 2006 and 2009, 2012 recognizes only lowercase true and false.
         
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/ISourceFragment.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/parsing/ISourceFragment.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/parsing/ISourceFragment.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/parsing/ISourceFragment.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java
similarity index 94%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java
index 00d8420..7da045a 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLData.java
@@ -23,7 +23,6 @@ import java.util.Collection;
 
 import org.apache.royale.compiler.common.PrefixMap;
 import org.apache.royale.compiler.filespecs.IFileSpecification;
-import org.apache.royale.compiler.internal.mxml.MXMLData;
 import org.apache.royale.compiler.internal.mxml.MXMLDialect;
 import org.apache.royale.compiler.problems.ICompilerProblem;
 
@@ -38,14 +37,14 @@ import org.apache.royale.compiler.problems.ICompilerProblem;
 public interface IMXMLData
 {
     /**
-     * Gets the file on disk that created this {@link MXMLData}.
+     * Gets the file on disk that created this MXMLData.
      * 
      * @return The file as an {@code IFileSpecification}.
      */
     IFileSpecification getFileSpecification();
 
     /**
-     * Gets the path to the file on disk that created this {@link MXMLData}.
+     * Gets the path to the file on disk that created this MXMLData.
      * 
      * @return The path as a {@code String}.
      */
@@ -86,7 +85,7 @@ public interface IMXMLData
 
     /**
      * Gets the compiler problems found during the creation of this
-     * {@code MXMLData}.
+     * MXMLData
      * 
      * @return A collection of {@code ICompilerProblem} objects.
      */
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLDataManager.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLDataManager.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLDataManager.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLDataManager.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLLanguageConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLLanguageConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLLanguageConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLLanguageConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagAttributeData.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagAttributeData.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagAttributeData.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagAttributeData.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagData.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagData.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagData.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTagData.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLUnitData.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLUnitData.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLUnitData.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLUnitData.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/parsing/IASToken.java b/compiler-common/src/main/java/org/apache/royale/compiler/parsing/IASToken.java
similarity index 89%
rename from compiler/src/main/java/org/apache/royale/compiler/parsing/IASToken.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/parsing/IASToken.java
index c86544c..d2ba7d3 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/parsing/IASToken.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/parsing/IASToken.java
@@ -20,7 +20,6 @@
 package org.apache.royale.compiler.parsing;
 
 import org.apache.royale.compiler.common.ISourceLocation;
-import org.apache.royale.compiler.internal.parsing.as.ASTokenTypes;
 
 /**
  * A token returned back by an {@link IASTokenizer} created when we scan text
@@ -73,8 +72,20 @@ public interface IASToken extends ICMToken, ISourceLocation
 
     /**
      * @return True if this token is a multi-line comment such as
-     * {@link ASTokenTypes#TOKEN_ASDOC_COMMENT} and
-     * {@link ASTokenTypes#HIDDEN_TOKEN_MULTI_LINE_COMMENT}.
+     * ASTokenTypes#TOKEN_ASDOC_COMMENT and
+     * ASTokenTypes#HIDDEN_TOKEN_MULTI_LINE_COMMENT.
      */
     boolean isMultiLineComment();
+    
+    /**
+     * @return Local start offset.
+     */
+    int getLocalStart();
+    
+    /**
+     * @return Local end offset.
+     */
+    int getLocalEnd();
+
+
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/parsing/ICMToken.java b/compiler-common/src/main/java/org/apache/royale/compiler/parsing/ICMToken.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/parsing/ICMToken.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/parsing/ICMToken.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java
similarity index 97%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java
index 93b0b4a..618933f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblem.java
@@ -22,7 +22,7 @@ package org.apache.royale.compiler.problems;
 import org.apache.royale.compiler.clients.problems.ProblemFormatter;
 import org.apache.royale.compiler.common.ISourceLocation;
 import org.apache.royale.compiler.definitions.IDefinition;
-import org.apache.royale.compiler.internal.parsing.as.ASToken;
+import org.apache.royale.compiler.parsing.IASToken;
 import org.apache.royale.compiler.problems.annotations.DefaultSeverity;
 import org.apache.royale.compiler.problems.annotations.ProblemClassification;
 import org.apache.royale.utils.FilenameNormalization;
@@ -173,11 +173,11 @@ public abstract class CompilerProblem implements ICompilerProblem
     }
 
     /**
-     * Constructor for a problem associated with an {@link ASToken}.
+     * Constructor for a problem associated with an {@link IASToken}.
      * 
-     * @param site The {@link ASToken} where the problem occurred.
+     * @param site The {@link IASToken} where the problem occurred.
      */
-    public CompilerProblem(ASToken site)
+    public CompilerProblem(IASToken site)
     {
         this(site.getSourcePath(),
              site.getLocalStart(), site.getLocalEnd(),
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblemClassification.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblemClassification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblemClassification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblemClassification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblemSeverity.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblemSeverity.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/CompilerProblemSeverity.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/CompilerProblemSeverity.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ICompilerProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ICompilerProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ICompilerProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ICompilerProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/UnexpectedExceptionProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/UnexpectedExceptionProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/UnexpectedExceptionProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/UnexpectedExceptionProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/annotations/DefaultSeverity.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/DefaultSeverity.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/annotations/DefaultSeverity.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/DefaultSeverity.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/annotations/ProblemClassification.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/ProblemClassification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/annotations/ProblemClassification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/ProblemClassification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/annotations/package.html b/compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/package.html
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/annotations/package.html
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/annotations/package.html
diff --git a/compiler/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java b/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
similarity index 96%
rename from compiler/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
index 2bfb326..62fc5fb 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/projects/ICompilerProject.java
@@ -28,8 +28,6 @@ import org.apache.royale.compiler.constants.IASLanguageConstants;
 import org.apache.royale.compiler.definitions.IDefinition;
 import org.apache.royale.compiler.definitions.IFunctionDefinition;
 import org.apache.royale.compiler.definitions.ITypeDefinition;
-import org.apache.royale.compiler.internal.definitions.FunctionDefinition;
-import org.apache.royale.compiler.internal.scopes.ASScope;
 import org.apache.royale.compiler.problems.ICompilerProblem;
 import org.apache.royale.compiler.scopes.IASScope;
 import org.apache.royale.compiler.targets.ISWFTarget;
@@ -210,7 +208,7 @@ public interface ICompilerProject
      * @param def2 The other possibility.
      * @return null if still ambiguous or else def1 or def2.
      */
-    IDefinition doubleCheckAmbiguousDefinition(ASScope scope, String name, IDefinition def1, IDefinition def2);
+    IDefinition doubleCheckAmbiguousDefinition(IASScope scope, String name, IDefinition def1, IDefinition def2);
 
 
     /**
@@ -241,7 +239,7 @@ public interface ICompilerProject
      * @param func The function being called.
      * @return True if valid
      */
-    boolean isValidTypeConversion(IASNode node, IDefinition actualDefinition, IDefinition expectedDefinition, FunctionDefinition func);
+    boolean isValidTypeConversion(IASNode node, IDefinition actualDefinition, IDefinition expectedDefinition, IFunctionDefinition func);
 
     /**
      * @param functionDefinition 
diff --git a/compiler/src/main/java/org/apache/royale/compiler/scopes/IASScope.java b/compiler-common/src/main/java/org/apache/royale/compiler/scopes/IASScope.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/scopes/IASScope.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/scopes/IASScope.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/scopes/IDefinitionSet.java b/compiler-common/src/main/java/org/apache/royale/compiler/scopes/IDefinitionSet.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/scopes/IDefinitionSet.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/scopes/IDefinitionSet.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/ASTNodeID.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/ASTNodeID.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/ASTNodeID.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/ASTNodeID.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IASNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IASNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IASNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IASNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IContainerNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IContainerNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IContainerNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IContainerNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IDefinitionNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IDefinitionNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IDefinitionNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IDefinitionNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IDocumentableDefinitionNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IDocumentableDefinitionNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IDocumentableDefinitionNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IDocumentableDefinitionNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IExpressionNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IExpressionNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IExpressionNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IExpressionNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IFunctionNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IFunctionNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IFunctionNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IFunctionNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IImportNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IImportNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IImportNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IImportNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IModifierNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IModifierNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IModifierNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IModifierNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/INamespaceNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/INamespaceNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/INamespaceNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/INamespaceNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IParameterNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IParameterNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IParameterNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IParameterNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IScopedDefinitionNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IScopedDefinitionNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IScopedDefinitionNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IScopedDefinitionNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IScopedNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IScopedNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IScopedNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IScopedNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/ITypeNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/ITypeNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/ITypeNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/ITypeNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/as/IVariableNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IVariableNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/as/IVariableNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/as/IVariableNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagsNode.java b/compiler-common/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagsNode.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagsNode.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/tree/metadata/IMetaTagsNode.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/workspaces/IInvalidationListener.java b/compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IInvalidationListener.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/workspaces/IInvalidationListener.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IInvalidationListener.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java b/compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java
similarity index 95%
rename from compiler/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java
index 2e0a6b6..10abcdb 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IWorkspace.java
@@ -27,7 +27,6 @@ import java.util.Set;
 import org.apache.royale.compiler.asdoc.IASDocDelegate;
 import org.apache.royale.compiler.common.IFileSpecificationGetter;
 import org.apache.royale.compiler.filespecs.IFileSpecification;
-import org.apache.royale.compiler.internal.parsing.as.ASParser;
 import org.apache.royale.compiler.mxml.IMXMLDataManager;
 import org.apache.royale.compiler.projects.ICompilerProject;
 import org.apache.royale.compiler.units.ICompilationUnit;
@@ -193,19 +192,19 @@ public interface IWorkspace extends IFileSpecificationGetter
 
     /**
      * Gets the {@link IASDocDelegate} that instances of
-     * {@link ASParser} will use to record information about ASDoc comments.
+     * ASParser will use to record information about ASDoc comments.
      * 
      * @return The {@link IASDocDelegate} that instances of
-     * {@link ASParser} will use to record information about ASDoc comments.
+     * ASParser will use to record information about ASDoc comments.
      */
     IASDocDelegate getASDocDelegate();
     
     /**
      * Sets the {@link IASDocDelegate} that instances of
-     * {@link ASParser} will use to record information about ASDoc comments.
+     * ASParser will use to record information about ASDoc comments.
      * 
      * @param asDocDelegate {@link IASDocDelegate} that instances of
-     * {@link ASParser} will use to record information about ASDoc comments.
+     * ASParser will use to record information about ASDoc comments.
      */
     void setASDocDelegate(IASDocDelegate asDocDelegate);
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/workspaces/IWorkspaceProfilingDelegate.java b/compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IWorkspaceProfilingDelegate.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/workspaces/IWorkspaceProfilingDelegate.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/workspaces/IWorkspaceProfilingDelegate.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWC.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWC.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/ISWC.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWC.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCComponent.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCComponent.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCComponent.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCComponent.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCDigest.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCDigest.java
similarity index 100%
copy from compiler/src/main/java/org/apache/royale/swc/ISWCDigest.java
copy to compiler-common/src/main/java/org/apache/royale/swc/ISWCDigest.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCFileEntry.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCFileEntry.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCFileEntry.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCFileEntry.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCLibrary.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCLibrary.java
similarity index 93%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCLibrary.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCLibrary.java
index a3d0a2f..5ba7e3f 100644
--- a/compiler/src/main/java/org/apache/royale/swc/ISWCLibrary.java
+++ b/compiler-common/src/main/java/org/apache/royale/swc/ISWCLibrary.java
@@ -23,7 +23,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.royale.swf.ISWF;
-import org.apache.royale.swf.io.SWFReader;
+import org.apache.royale.swf.io.ISWFReader;
 
 /**
  * Model for library definitions in a SWC file.
@@ -83,10 +83,10 @@ public interface ISWCLibrary
     /**
      * Read the {@code InputStream} of the library SWF file.
      * 
-     * @param swfReader containing {@code SWFReader} object
+     * @param swfReader containing {@code ISWFReader} object
      * @param swc containing {@code ISWC} object
      */
-    void readSWFInputStream(SWFReader swfReader, ISWC swc);
+    void readSWFInputStream(ISWFReader swfReader, ISWC swc);
 
     /**
      * Get the digests of the library.
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCManager.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCManager.java
similarity index 81%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCManager.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCManager.java
index d2750e1..93d3ab8 100644
--- a/compiler/src/main/java/org/apache/royale/swc/ISWCManager.java
+++ b/compiler-common/src/main/java/org/apache/royale/swc/ISWCManager.java
@@ -21,10 +21,10 @@ package org.apache.royale.swc;
 
 import java.io.File;
 
-import org.apache.royale.compiler.internal.caches.AssetTagCache;
-import org.apache.royale.compiler.internal.caches.CSSDocumentCache;
-import org.apache.royale.compiler.internal.caches.FileScopeCache;
-import org.apache.royale.compiler.internal.caches.SWFCache;
+import org.apache.royale.compiler.caches.IAssetTagCache;
+import org.apache.royale.compiler.caches.ICSSDocumentCache;
+import org.apache.royale.compiler.caches.IFileScopeCache;
+import org.apache.royale.compiler.caches.ISWFCache;
 
 /**
  * {@code ISWCManager} is a repository of SWC library models. It has all the SWC
@@ -54,25 +54,25 @@ public interface ISWCManager
      * 
      * @return {@link SWFCache}
      */
-    SWFCache getSWFCache();
+    ISWFCache getSWFCache();
 
     /**
      * Get file scope cache.
      * 
      * @return {@link FileScopeCache}
      */
-    FileScopeCache getFileScopeCache();
+    IFileScopeCache getFileScopeCache();
 
     /**
      * Get asset tags cache.
      * 
      * @return {@link AssetTagCache}
      */
-    AssetTagCache getAssetTagCache();
+    IAssetTagCache getAssetTagCache();
 
     /**
      * @return Cache for CSS models from a CSS file or a default CSS in a SWC
      * library.
      */
-    CSSDocumentCache getCSSDocumentCache();
+    ICSSDocumentCache getCSSDocumentCache();
 }
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCScript.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCScript.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCScript.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCScript.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCVersion.java b/compiler-common/src/main/java/org/apache/royale/swc/ISWCVersion.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCVersion.java
rename to compiler-common/src/main/java/org/apache/royale/swc/ISWCVersion.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/dita/IDITAEntry.java b/compiler-common/src/main/java/org/apache/royale/swc/dita/IDITAEntry.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/dita/IDITAEntry.java
rename to compiler-common/src/main/java/org/apache/royale/swc/dita/IDITAEntry.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/dita/IDITAList.java b/compiler-common/src/main/java/org/apache/royale/swc/dita/IDITAList.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/dita/IDITAList.java
rename to compiler-common/src/main/java/org/apache/royale/swc/dita/IDITAList.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/ISWF.java b/compiler-common/src/main/java/org/apache/royale/swf/ISWF.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/ISWF.java
rename to compiler-common/src/main/java/org/apache/royale/swf/ISWF.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/ITagContainer.java b/compiler-common/src/main/java/org/apache/royale/swf/ITagContainer.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/ITagContainer.java
rename to compiler-common/src/main/java/org/apache/royale/swf/ITagContainer.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/SWFFrame.java b/compiler-common/src/main/java/org/apache/royale/swf/SWFFrame.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/SWFFrame.java
rename to compiler-common/src/main/java/org/apache/royale/swf/SWFFrame.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/TagType.java b/compiler-common/src/main/java/org/apache/royale/swf/TagType.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/TagType.java
rename to compiler-common/src/main/java/org/apache/royale/swf/TagType.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/io/ISWFReader.java b/compiler-common/src/main/java/org/apache/royale/swf/io/ISWFReader.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/io/ISWFReader.java
rename to compiler-common/src/main/java/org/apache/royale/swf/io/ISWFReader.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/DoABCTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/DoABCTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/DoABCTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/DoABCTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/EnableDebugger2Tag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/EnableDebugger2Tag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/EnableDebugger2Tag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/EnableDebugger2Tag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/EnableTelemetryTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/EnableTelemetryTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/EnableTelemetryTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/EnableTelemetryTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ExportAssetsTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ExportAssetsTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ExportAssetsTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ExportAssetsTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/FrameLabelTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/FrameLabelTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/FrameLabelTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/FrameLabelTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ICharacterReferrer.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ICharacterReferrer.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ICharacterReferrer.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ICharacterReferrer.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ICharacterTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ICharacterTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ICharacterTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ICharacterTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/IManagedTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/IManagedTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/IManagedTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/IManagedTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ITag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ITag.java
similarity index 100%
copy from compiler/src/main/java/org/apache/royale/swf/tags/ITag.java
copy to compiler-common/src/main/java/org/apache/royale/swf/tags/ITag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ProductInfoTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ProductInfoTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ProductInfoTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ProductInfoTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ScriptLimitsTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ScriptLimitsTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ScriptLimitsTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ScriptLimitsTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ShowFrameTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/ShowFrameTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ShowFrameTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/ShowFrameTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/SymbolClassTag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/SymbolClassTag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/SymbolClassTag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/SymbolClassTag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/Tag.java b/compiler-common/src/main/java/org/apache/royale/swf/tags/Tag.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/tags/Tag.java
rename to compiler-common/src/main/java/org/apache/royale/swf/tags/Tag.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/IDataType.java b/compiler-common/src/main/java/org/apache/royale/swf/types/IDataType.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/types/IDataType.java
rename to compiler-common/src/main/java/org/apache/royale/swf/types/IDataType.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/RGB.java b/compiler-common/src/main/java/org/apache/royale/swf/types/RGB.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/types/RGB.java
rename to compiler-common/src/main/java/org/apache/royale/swf/types/RGB.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/RGBA.java b/compiler-common/src/main/java/org/apache/royale/swf/types/RGBA.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/types/RGBA.java
rename to compiler-common/src/main/java/org/apache/royale/swf/types/RGBA.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/types/Rect.java b/compiler-common/src/main/java/org/apache/royale/swf/types/Rect.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swf/types/Rect.java
rename to compiler-common/src/main/java/org/apache/royale/swf/types/Rect.java
diff --git a/compiler/src/main/java/org/apache/royale/utils/FilenameNormalization.java b/compiler-common/src/main/java/org/apache/royale/utils/FilenameNormalization.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/utils/FilenameNormalization.java
rename to compiler-common/src/main/java/org/apache/royale/utils/FilenameNormalization.java
diff --git a/compiler-externc/build.xml b/compiler-externc/build.xml
new file mode 100644
index 0000000..2d8a2c3
--- /dev/null
+++ b/compiler-externc/build.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" ?>
+
+<!--
+
+  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.
+
+-->
+
+<project name="compiler-externc" default="main" basedir=".">
+
+    <!-- 
+
+        PROPERTIES
+
+    -->
+
+    <!-- The 'compiler' property is the absolute path, with forward slashes, -->
+    <!-- to the 'compiler-externc' directory that contains this file. -->
+    <!-- All input paths are expressed as absolute paths starting with ${compiler-externc}. -->
+    <pathconvert property="compiler-externc" dirsep="/">
+        <path location="${basedir}"/>
+    </pathconvert>
+    
+    <!-- Properties can be overridden locally by loading a local.properties file -->
+    <!-- Java 8 users probably need javadoc.params=-Xdoclint:none -->
+    <property file="${compiler-externc}/local.properties"/>
+    
+    <property name="src.depend" value="true"/>
+
+    <!-- Options for <javac> tasks -->
+    <property name="javac.debug" value="true"/>
+    <property name="javac.deprecation" value="false"/>
+    <property name="javac.src" value="1.6"/>
+
+    <!-- JAR manifest entries -->
+    <property name="manifest.sealed" value="false"/>
+    <property name="manifest.Implementation-Title" value="Apache Royale Compiler"/>
+    <property name="manifest.Implementation-Version" value="${release.version}"/>
+    <property name="manifest.Implementation-Vendor" value="Apache Software Foundation"/>
+    
+    <!-- label is set by CruiseControl script based on P4 label incrementer -->
+    <condition property="build.number" value="${env.BUILD_NUMBER}">
+        <isset property="env.BUILD_NUMBER"/>
+    </condition>
+    
+    <!--
+    <target name="compiler.test.downloads.cache" if="usingDownloadCache">
+        <ant antfile="${compiler-externc}/../compiler/src/test/downloads.xml" dir="${compiler-externc}/../compiler/src/test" inheritAll="false">
+            <property name="usingDownloadCache" value="${usingDownloadCache}" />
+            <property name="downloadCacheFolder" value="${downloadCacheFolder}" />
+        </ant>
+    </target>
+    <target name="compiler.test.downloads" depends="compiler.test.downloads.cache" unless="usingDownloadCache">
+        <ant antfile="${compiler-externc}/../compiler/src/test/downloads.xml" dir="${compiler-externc}/../compiler/src/test" inheritAll="false"/>
+    </target>
+    -->
+    
+    <!--
+
+        EXTERNC
+
+    -->
+	
+    <!--
+    <target name="test.classes" depends="compiler.test.downloads">
+        <mkdir dir="${compiler-externc}/target/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler-externc}/target/classes" includeAntRuntime="true"
+            source="${javac.src}" target="${javac.src}">
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+            <src path="${compiler-externc}/src/main/java"/>
+            <include name="org/apache/royale/utils/*.java"/>
+            <classpath>
+                <pathelement location="${compiler-externc}/target/classes"/>
+                <fileset dir="${compiler-externc}/../compiler/lib/external" includes="**/*.jar"/>
+            </classpath>
+        </javac>
+    </target>
+	-->
+    
+    <target name="main" >
+        <mkdir dir="${compiler-externc}/target/classes"/>
+        <javac debug="${javac.debug}" deprecation="${javac.deprecation}" destdir="${compiler-externc}/target/classes" includeAntRuntime="true" includes="**/*.java"
+            source="${javac.src}" target="${javac.src}">
+            <compilerarg value="-Xlint:all,-path,-fallthrough"/>
+            <src path="${compiler-externc}/src/main/java"/>
+            <classpath>
+                <pathelement location="${compiler-externc}/target/classes"/>
+                <fileset dir="${compiler-externc}/../compiler/lib/external" includes="**/*.jar"/>
+            </classpath>
+        </javac>
+    </target>
+    
+    <!--
+
+        CLEANUP
+
+    -->
+
+    <target name="clean" description="clean">
+        <delete dir="${compiler-externc}/target/classes"/>
+    </target>
+
+    <target name="wipe" depends="clean" description="Wipes everything that didn't come from Git.">
+        <delete dir="${compiler-externc}/target"/>
+    </target>
+
+ </project>
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/EXTERNC.java b/compiler-externc/src/main/java/org/apache/royale/compiler/clients/EXTERNC.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/clients/EXTERNC.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/clients/EXTERNC.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/config/ExterncConfigurator.java b/compiler-externc/src/main/java/org/apache/royale/compiler/config/ExterncConfigurator.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/config/ExterncConfigurator.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/config/ExterncConfigurator.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/emit/ReferenceEmitter.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ReferenceCompiler.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ReferenceCompiler.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ReferenceModel.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ReferenceModel.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ReferenceModel.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ReferenceModel.java
diff --git a/compiler/src/main/java/org/apache/royale/swf/tags/ITag.java b/compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceResolvedReference.java
similarity index 69%
rename from compiler/src/main/java/org/apache/royale/swf/tags/ITag.java
rename to compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceResolvedReference.java
index b21b759..9b5bac0 100644
--- a/compiler/src/main/java/org/apache/royale/swf/tags/ITag.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/definitions/references/INamespaceResolvedReference.java
@@ -17,19 +17,15 @@
  *
  */
 
-package org.apache.royale.swf.tags;
+package org.apache.royale.compiler.definitions.references;
 
-import org.apache.royale.swf.TagType;
+import org.apache.royale.abc.semantics.Namespace;
+import org.apache.royale.compiler.projects.ICompilerProject;
 
 /**
- * The interface for all the SWF tags. Each tag has a type code.
+ * INamespaceResolvedReference returns a resolved Namespace
  */
-public interface ITag
+public interface INamespaceResolvedReference extends INamespaceReference
 {
-    /**
-     * Gets the tag type.
-     * 
-     * @return tag type
-     */
-    TagType getTagType();
+    Namespace resolveAETNamespace(ICompilerProject project);
 }
diff --git a/compiler/src/main/java/org/apache/royale/swc/ISWCDigest.java b/compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReferenceMName.java
similarity index 57%
rename from compiler/src/main/java/org/apache/royale/swc/ISWCDigest.java
rename to compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReferenceMName.java
index bc11539..0d25fc4 100644
--- a/compiler/src/main/java/org/apache/royale/swc/ISWCDigest.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/definitions/references/IReferenceMName.java
@@ -17,32 +17,23 @@
  *
  */
 
-package org.apache.royale.swc;
+package org.apache.royale.compiler.definitions.references;
+
+import org.apache.royale.abc.semantics.Name;
+import org.apache.royale.compiler.internal.scopes.ASScope;
 
 /**
- * Model for {@code <digest>} tag in a SWC catalog.xml file.
+ * An <code>IReferenceMName</code> is for IReferences that have MNames
  */
-public interface ISWCDigest
+public interface IReferenceMName extends IReference
 {
     /**
-     * Get digest type. For example: SHA-256.
-     * 
-     * @return digest type
-     */
-    String getType();
-
-    /**
-     * If the digest is signed.
+     * Gets the AET {link Name} that this reference represents in the given
+     * project and scope.
      * 
-     * @return true if signed
+     * @param project The project where the reference is used.
+     * @param scope The scope where the reference is used from.
+     * @return An AET {@link Name} representing this reference
      */
-    boolean isSigned();
-
-    /**
-     * Get digest value.
-     * 
-     * @return digest value
-     */
-    String getValue();
-
+    Name getMName(ICompilerProject project, ASScope scope);
 }
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/AssetTagCache.java b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/AssetTagCache.java
index 5c93016..5fc66a4 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/AssetTagCache.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/AssetTagCache.java
@@ -57,7 +57,7 @@ import org.apache.royale.swf.tags.SymbolClassTag;
  * (assets). The cache associate asset tags with QNames by looking into
  * {@link SymbolClassTag} entries.
  */
-public class AssetTagCache extends ConcurrentCacheStoreBase<AssetTagCache.AssetTagCacheValue>
+public class AssetTagCache extends ConcurrentCacheStoreBase<AssetTagCache.AssetTagCacheValue> implements IAssetTagCache
 {
 
     /**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/CSSDocumentCache.java b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/CSSDocumentCache.java
index 8376ca0..8d3f9ce 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/CSSDocumentCache.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/CSSDocumentCache.java
@@ -51,7 +51,7 @@ import com.google.common.collect.ImmutableList;
  * The cache key is normalized path to the SWC file (optional) and the CSS file
  * name inside the SWC. The cache value is an {@link ICSSDocument}.
  */
-public class CSSDocumentCache extends ConcurrentCacheStoreBase<ICSSDocument>
+public class CSSDocumentCache extends ConcurrentCacheStoreBase<ICSSDocument> implements ICSSDocumentCache
 {
 
     /**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/FileScopeCache.java b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/FileScopeCache.java
index a2fa9dc..a7b1381 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/FileScopeCache.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/FileScopeCache.java
@@ -40,7 +40,7 @@ import org.apache.royale.swf.tags.DoABCTag;
  * key-value pairs. The key is a string in the form: {@code swc/library/script}.
  * The value is a {@link SoftReference} to a collection of {@link ASFileScope}s.
  */
-public class FileScopeCache extends ConcurrentCacheStoreBase<Collection<IASScope>>
+public class FileScopeCache extends ConcurrentCacheStoreBase<Collection<IASScope>> implements IFileScopeCache
 {
     
     /**
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/SWFCache.java b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/SWFCache.java
index 74860cd..4e173e6 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/caches/SWFCache.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/caches/SWFCache.java
@@ -45,7 +45,7 @@ import org.apache.royale.swf.tags.SymbolClassTag;
  * is the URI to the SWF file. The value is a {@link SoftReference} to a
  * collection of SWF tags.
  */
-public class SWFCache extends ConcurrentCacheStoreBase<ITagContainer>
+public class SWFCache extends ConcurrentCacheStoreBase<ITagContainer> implements ISWFCache
 {
 
     private static abstract class SWFCacheKey extends CacheStoreKeyBase

-- 
To stop receiving notification emails like this one, please contact
"commits@royale.apache.org" <commits@royale.apache.org>.

Mime
View raw message