You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2017/11/15 20:58:21 UTC
[royale-compiler] 05/05: no errors on compiler-common and
compiler-externc. Now to get everything to build and run
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 e5e6d6f3b867fc82aa649b1d5bbaa651aeb4c636
Author: Alex Harui <ah...@apache.org>
AuthorDate: Wed Nov 15 12:55:41 2017 -0800
no errors on compiler-common and compiler-externc. Now to get everything to build and run
---
.../java/org/apache/royale/abc/ABCConstants.java | 0
.../java/org/apache/royale/abc/semantics/Name.java | 0
.../org/apache/royale/abc/semantics/Namespace.java | 0
.../org/apache/royale/abc/semantics/Nsset.java | 0
.../clients/problems/CodeGenErrorFilter.java | 6 +-
.../problems/CompilerProblemCategorizer.java | 0
.../problems/ProblemFilterClassCriteria.java | 0
.../compiler/clients/problems/ProblemQuery.java | 14 +-
.../clients/problems/ProblemSettingsFilter.java | 0
.../royale/compiler/common/IPathResolver.java | 0
.../apache/royale/compiler/common/VersionInfo.java | 0
.../compiler/config/CommandLineConfigurator.java | 0
.../royale/compiler/config/Configuration.java | 0
.../compiler/config/ConfigurationBuffer.java | 0
.../royale/compiler/config/ConfigurationInfo.java | 0
.../compiler/config/ConfigurationPathResolver.java | 0
.../royale/compiler/config/ConfigurationValue.java | 0
.../royale/compiler/config/Configurator.java | 234 ++-------------------
.../compiler/config/ICompilerProblemSettings.java | 0
.../config/ICompilerSettingsConstants.java | 0
.../compiler/constants/IASWarningConstants.java | 0
.../exceptions/ConfigurationException.java | 0
.../compiler/filespecs/BaseFileSpecification.java | 0
.../royale/compiler/filespecs/CombinedFile.java | 0
.../compiler/filespecs/FileSpecification.java | 0
.../filespecs/IBinaryFileSpecification.java | 0
.../internal/config/COMPCConfiguration.java | 0
.../internal/config/CompilerProblemSettings.java | 0
.../internal/config/DefaultsConfigurator.java | 0
.../compiler/internal/config/FileConfigurator.java | 0
.../internal/config/FlashBuilderConfigurator.java | 0
.../internal/config/ICompilerSettings.java | 0
.../internal/config/IConfigurationFilter.java | 0
.../compiler/internal/config/IConfigurator.java | 4 +-
.../internal/config/IWriteOnlyProjectSettings.java | 0
.../internal/config/LoadExternsParser.java | 0
.../internal/config/QNameNormalization.java | 0
.../internal/config/RSLArgumentNameGenerator.java | 0
.../config/RuntimeSharedLibraryPathInfo.java | 0
.../config/SystemPropertyConfigurator.java | 0
.../compiler/internal/config/TargetSettings.java | 15 +-
.../config/annotations/ArgumentNameGenerator.java | 0
.../internal/config/annotations/Arguments.java | 0
.../internal/config/annotations/Config.java | 0
.../config/annotations/DefaultArgumentValue.java | 0
.../config/annotations/DeprecatedConfig.java | 0
.../config/annotations/InfiniteArguments.java | 0
.../internal/config/annotations/Mapping.java | 0
.../internal/config/annotations/RoyaleOnly.java | 0
.../config/annotations/SoftPrerequisites.java | 0
.../config/localization/ILocalizedText.java | 0
.../internal/config/localization/ILocalizer.java | 0
.../config/localization/LocalizationManager.java | 0
.../localization/ResourceBundleLocalizer.java | 0
.../internal/config/localization/package.html | 0
.../royale/compiler/internal/config/package.html | 0
.../internal/mxml/MXMLNamespaceMapping.java | 0
.../compiler/mxml/IMXMLNamespaceMapping.java | 0
.../royale/compiler/mxml/IMXMLTypeConstants.java | 0
.../problems/ANELibraryNotAllowedProblem.java | 0
.../problems/AbstractDeprecatedAPIProblem.java | 0
.../compiler/problems/AbstractSemanticProblem.java | 0
.../royale/compiler/problems/ArrayCastProblem.java | 0
.../problems/AssignmentInConditionalProblem.java | 0
.../compiler/problems/CodegenInternalProblem.java | 0
.../royale/compiler/problems/CodegenProblem.java | 0
.../compiler/problems/ConfigurationProblem.java | 0
.../problems/ConstNotInitializedProblem.java | 0
.../royale/compiler/problems/DateCastProblem.java | 0
.../DeprecatedConfigurationOptionProblem.java | 0
.../DuplicateQNameInSourcePathProblem.java | 0
.../DuplicateVariableDefinitionProblem.java | 0
.../problems/IOperandStackUnderflowProblem.java | 10 +-
.../royale/compiler/problems/IParserProblem.java | 10 +-
.../problems/IllogicalComparionWithNaNProblem.java | 0
.../IllogicalComparisonWithUndefinedProblem.java | 0
.../compiler/problems/InstanceOfProblem.java | 0
.../NullUsedWhereOtherExpectedProblem.java | 0
.../problems/OverlappingSourcePathProblem.java | 0
.../RemovedConfigurationOptionProblem.java | 0
.../RoyaleOnlyConfigurationOptionNotSupported.java | 0
.../problems/ScopedToDefaultNamespaceProblem.java | 0
.../royale/compiler/problems/SemanticProblem.java | 0
.../compiler/problems/SemanticWarningProblem.java | 0
.../compiler/problems/StrictSemanticsProblem.java | 0
.../compiler/problems/UnfoundPropertyProblem.java | 0
.../problems/UnresolvedClassReferenceProblem.java | 0
.../VariableHasNoTypeDeclarationProblem.java | 0
.../collections/CompositeProblemFilter.java | 0
.../problems/collections/FilteredIterator.java | 0
.../compiler/problems/collections/package.html | 0
.../apache/royale/compiler/utils/NodeJSUtils.java | 0
.../apache/royale/swc/catalog/XMLFormatter.java | 0
.../royale/utils/DAByteArrayOutputStream.java | 0
.../org/apache/royale/utils/ExceptionUtil.java | 0
.../java/org/apache/royale/utils/FileUtils.java | 0
.../main/java/org/apache/royale/utils/Trace.java | 0
compiler-externc/build.xml | 10 +-
.../javascript/jscomp/JXCompilerOptions.java | 0
.../compiler/clients/ExternCConfiguration.java | 0
.../internal/codegen/externals/DummyNode.java | 174 +++++++++++++++
.../externals/pass/AbstractCompilerPass.java | 0
.../codegen/externals/pass/AddMemberPass.java | 0
.../codegen/externals/pass/CollectImportsPass.java | 0
.../codegen/externals/pass/CollectTypesPass.java | 0
.../externals/pass/NamespaceResolutionPass.java | 4 +-
.../externals/pass/ResolvePackagesPass.java | 0
.../codegen/externals/reference/BaseReference.java | 0
.../externals/reference/ClassReference.java | 4 +-
.../externals/reference/ConstantReference.java | 0
.../externals/reference/FieldReference.java | 0
.../externals/reference/FunctionReference.java | 0
.../externals/reference/MemberReference.java | 0
.../externals/reference/MethodReference.java | 0
.../reference/NullConstructorReference.java | 0
.../externals/reference/ParameterReference.java | 0
.../codegen/externals/utils/DebugLogUtils.java | 0
.../codegen/externals/utils/FunctionUtils.java | 0
.../codegen/externals/utils/JSTypeUtils.java | 0
.../apache/royale/compiler/clients/MXMLJSC.java | 2 +-
.../internal/config/RoyaleTargetSettings.java | 69 ++++++
.../projects/RoyaleProjectConfigurator.java | 230 +++++++++++++++++++-
.../problems/InvalidByteCodeGeneratedProblem.java | 9 +-
.../problems/OperandStackUnderflowProblem.java | 5 +-
.../royale/compiler/problems/ParserProblem.java | 2 +-
125 files changed, 540 insertions(+), 262 deletions(-)
diff --git a/compiler/src/main/java/org/apache/royale/abc/ABCConstants.java b/compiler-common/src/main/java/org/apache/royale/abc/ABCConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/abc/ABCConstants.java
rename to compiler-common/src/main/java/org/apache/royale/abc/ABCConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/abc/semantics/Name.java b/compiler-common/src/main/java/org/apache/royale/abc/semantics/Name.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/abc/semantics/Name.java
rename to compiler-common/src/main/java/org/apache/royale/abc/semantics/Name.java
diff --git a/compiler/src/main/java/org/apache/royale/abc/semantics/Namespace.java b/compiler-common/src/main/java/org/apache/royale/abc/semantics/Namespace.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/abc/semantics/Namespace.java
rename to compiler-common/src/main/java/org/apache/royale/abc/semantics/Namespace.java
diff --git a/compiler/src/main/java/org/apache/royale/abc/semantics/Nsset.java b/compiler-common/src/main/java/org/apache/royale/abc/semantics/Nsset.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/abc/semantics/Nsset.java
rename to compiler-common/src/main/java/org/apache/royale/abc/semantics/Nsset.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java
similarity index 89%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java
index 22b0a06..533688b 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/CodeGenErrorFilter.java
@@ -20,7 +20,7 @@
package org.apache.royale.compiler.clients.problems;
import org.apache.royale.compiler.problems.ICompilerProblem;
-import org.apache.royale.compiler.problems.OperandStackUnderflowProblem;
+import org.apache.royale.compiler.problems.IOperandStackUnderflowProblem;
/**
* A problem filter that implements filtering out certain errors from
@@ -42,7 +42,7 @@ public class CodeGenErrorFilter implements IProblemFilter
@Override
public boolean accept(ICompilerProblem p)
{
- if (p instanceof OperandStackUnderflowProblem)
+ if (p instanceof IOperandStackUnderflowProblem)
return false;
// accept it.
@@ -53,7 +53,7 @@ public class CodeGenErrorFilter implements IProblemFilter
{
for (ICompilerProblem problem : problems)
{
- if (!(problem instanceof OperandStackUnderflowProblem))
+ if (!(problem instanceof IOperandStackUnderflowProblem))
return true;
}
return false;
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/CompilerProblemCategorizer.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/CompilerProblemCategorizer.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/CompilerProblemCategorizer.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/CompilerProblemCategorizer.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFilterClassCriteria.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFilterClassCriteria.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFilterClassCriteria.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemFilterClassCriteria.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java
similarity index 97%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java
index 4b5d3e4..32bf3f0 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemQuery.java
@@ -32,7 +32,7 @@ import org.apache.royale.compiler.problems.CodegenInternalProblem;
import org.apache.royale.compiler.problems.CodegenProblem;
import org.apache.royale.compiler.problems.CompilerProblemSeverity;
import org.apache.royale.compiler.problems.ICompilerProblem;
-import org.apache.royale.compiler.problems.ParserProblem;
+import org.apache.royale.compiler.problems.IParserProblem;
import org.apache.royale.compiler.problems.SemanticWarningProblem;
import org.apache.royale.compiler.problems.StrictSemanticsProblem;
import org.apache.royale.compiler.problems.UnfoundPropertyProblem;
@@ -360,7 +360,7 @@ public class ProblemQuery
* This Comparator compares problems based on three criteria:
* <li> file path
* <li> line number
- * <li> problem class - ParserProblems are "less than" semantic problems.
+ * <li> problem class - IParserProblems are "less than" semantic problems.
*/
public static final Comparator<ICompilerProblem> compareByPositionAndPhase =
new Comparator<ICompilerProblem>()
@@ -388,14 +388,14 @@ public class ProblemQuery
*/
private int compareProblemClasses(ICompilerProblem p1, ICompilerProblem p2)
{
- if ( p1 instanceof ParserProblem )
+ if ( p1 instanceof IParserProblem )
{
- if ( !(p2 instanceof ParserProblem) )
+ if ( !(p2 instanceof IParserProblem) )
return -1;
}
- else if ( p2 instanceof ParserProblem )
+ else if ( p2 instanceof IParserProblem )
{
- if ( !(p1 instanceof ParserProblem) )
+ if ( !(p1 instanceof IParserProblem) )
return 1;
}
@@ -429,7 +429,7 @@ public class ProblemQuery
return false;
}
- this.parserProblemOnLine = problem instanceof ParserProblem;
+ this.parserProblemOnLine = problem instanceof IParserProblem;
return true;
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemSettingsFilter.java b/compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemSettingsFilter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/clients/problems/ProblemSettingsFilter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/clients/problems/ProblemSettingsFilter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/IPathResolver.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/IPathResolver.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/IPathResolver.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/IPathResolver.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/common/VersionInfo.java b/compiler-common/src/main/java/org/apache/royale/compiler/common/VersionInfo.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/common/VersionInfo.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/common/VersionInfo.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/CommandLineConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/CommandLineConfigurator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/CommandLineConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/CommandLineConfigurator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/Configuration.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/Configuration.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/Configuration.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationBuffer.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationBuffer.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationBuffer.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationBuffer.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationInfo.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationInfo.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationInfo.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationInfo.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationPathResolver.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationPathResolver.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationPathResolver.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationPathResolver.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationValue.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationValue.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ConfigurationValue.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ConfigurationValue.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/Configurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configurator.java
similarity index 93%
rename from compiler/src/main/java/org/apache/royale/compiler/config/Configurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/Configurator.java
index 35704bf..34bd165 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/config/Configurator.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/config/Configurator.java
@@ -22,7 +22,6 @@ package org.apache.royale.compiler.config;
import java.io.File;
import java.util.*;
-import org.apache.royale.compiler.clients.MXMLC;
import org.apache.royale.compiler.common.IPathResolver;
import org.apache.royale.compiler.common.VersionInfo;
import org.apache.royale.compiler.config.RSLSettings.RSLAndPolicyFileURLPair;
@@ -39,15 +38,11 @@ import org.apache.royale.compiler.internal.config.SystemPropertyConfigurator;
import org.apache.royale.compiler.internal.config.TargetSettings;
import org.apache.royale.compiler.internal.config.localization.LocalizationManager;
import org.apache.royale.compiler.internal.config.localization.ResourceBundleLocalizer;
-import org.apache.royale.compiler.internal.projects.RoyaleProject;
-import org.apache.royale.compiler.internal.projects.RoyaleProjectConfigurator;
-import org.apache.royale.compiler.internal.projects.SourcePathManager;
-import org.apache.royale.compiler.internal.workspaces.Workspace;
import org.apache.royale.compiler.mxml.IMXMLNamespaceMapping;
import org.apache.royale.compiler.problems.ANELibraryNotAllowedProblem;
import org.apache.royale.compiler.problems.ConfigurationProblem;
import org.apache.royale.compiler.problems.ICompilerProblem;
-import org.apache.royale.compiler.projects.IRoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
import org.apache.royale.compiler.targets.ITargetSettings;
import org.apache.royale.compiler.targets.ITarget.TargetType;
import org.apache.royale.compiler.workspaces.IWorkspace;
@@ -193,12 +188,12 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
* from the given {@code workspace}.
*
* @param paths A list of normalized paths.
- * @param workspace Workspace.
+ * @param workspace IWorkspace.
* @return A list of file specifications.
*/
public static List<IFileSpecification> toFileSpecifications(
final List<String> paths,
- final Workspace workspace)
+ final IWorkspace workspace)
{
return Lists.transform(paths, new Function<String, IFileSpecification>()
{
@@ -287,7 +282,8 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
private Collection<ICompilerProblem> configurationProblems;
private boolean extrasRequireDefaultVariable;
private IPathResolver configurationPathResolver;
- private IRoyaleProject project;
+
+ private ICompilerProject project;
//
// IConfigurator related methods
@@ -308,7 +304,7 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
}
@Override
- public boolean applyToProject(IRoyaleProject project)
+ public boolean applyToProject(ICompilerProject project)
{
this.project = project;
final IWorkspace workspace = project.getWorkspace();
@@ -316,52 +312,24 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
workspace.startIdleState();
try
{
-
-
if (configuration == null)
return false;
- if (project instanceof RoyaleProject)
- {
- RoyaleProject royaleProject = (RoyaleProject)project;
-
- RoyaleProjectConfigurator.configure(royaleProject, configuration);
- setupCompatibilityVersion(royaleProject);
- setupConfigVariables(royaleProject);
- setupLocaleSettings(royaleProject);
- setupServices(royaleProject);
- setupThemeFiles(royaleProject);
- setupRoyale(royaleProject);
- setupCodegenOptions(royaleProject);
- }
-
- project.setRuntimeSharedLibraryPath(getRSLSettingsFromConfiguration(configuration));
-
- if (!setupProjectLibraries(project))
- success = false;
-
- setupNamespaces(project);
+ applyConfiguration();
}
finally
{
workspace.endIdleState(IWorkspace.NIL_COMPILATIONUNITS_TO_UPDATE);
}
- if (!setupSources(project))
- success = false;
return success;
}
-
- private void setupRoyale(RoyaleProject royaleProject)
- {
- royaleProject.setRoyale(configuration.isRoyale());
- }
-
- private void setupCodegenOptions(RoyaleProject royaleProject)
+
+ protected boolean applyConfiguration()
{
- royaleProject.setEnableInlining(configuration.isInliningEnabled());
+ return false; // don't call this, just override it
}
- private String computeQNameForTargetFile()
+ protected String computeQNameForTargetFile()
{
List<String> computedSourcePath = new ArrayList<String>();
applySourcePathRules(computedSourcePath);
@@ -369,16 +337,10 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
if (targetSourceFileName == null)
return null;
final File targetSourceFile = FilenameNormalization.normalize(new File(configuration.getTargetFile()));
- for (final String sourcePathEntry : computedSourcePath)
- {
- final String computedQName = SourcePathManager.computeQName(new File(sourcePathEntry), targetSourceFile);
- if (computedQName != null)
- return computedQName;
-
- }
- return null;
+ return targetSourceFile.getName();
}
+
@Override
public ITargetSettings getTargetSettings(TargetType targetType)
{
@@ -428,9 +390,14 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
return null;
}
- return new TargetSettings(configuration, project);
+ return instantiateTargetSettings();
}
+ protected ITargetSettings instantiateTargetSettings()
+ {
+ return new TargetSettings(configuration, project);
+ }
+
@Override
public ICompilerProblemSettings getCompilerProblemSettings()
{
@@ -567,88 +534,6 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
}
/**
- * Setup theme files.
- */
- protected void setupThemeFiles(RoyaleProject project)
- {
- project.setThemeFiles(toFileSpecifications(configuration.getCompilerThemeFiles(),
- project.getWorkspace()));
-
- }
-
- /**
- * Collect all of the different library paths and set them in the project.
- * The libraries are ordered with RSL and external libraries having the
- * highest priority.
- *
- * <p>Libraries are ordered highest to lowest priority:
- * <ol>
- * <li>External Library Path
- * <li>RSL Library Path
- * <li>Include Library Path
- * <li>Library Path
- * </ol>
- * </p>
- * @param project
- * @return true if successful, false if there is an error.
- */
- protected boolean setupProjectLibraries(IRoyaleProject project)
- {
- LinkedHashSet<File> libraries = new LinkedHashSet<File>();
-
- // add External Library Path
- List<File> externalLibraryFiles = toFileList(project.getCompilerExternalLibraryPath(configuration));
- libraries.addAll(externalLibraryFiles);
-
- // add RSLs
- libraries.addAll(configuration.getRslExcludedLibraries());
-
- // add Include Library Path
- libraries.addAll(toFileList(configuration.getCompilerIncludeLibraries()));
-
- // add Library Path
- libraries.addAll(toFileList(project.getCompilerLibraryPath(configuration)));
-
- project.setLibraries(new ArrayList<File>(libraries));
-
- // After we set the library path we can check for ANE files more
- // accurately because the library path manager in the project
- // will read in all the swc files found in directories on the
- // paths.
- return validateNoANEFiles(project, externalLibraryFiles);
- }
-
- /**
- * Validate all of the ANE files are on the external library path.
- *
- * @param project the project being configured.
- * @param externalLibraryFiles the external library path.
- * @return true if successful, false if there is an error.
- */
- private boolean validateNoANEFiles(IRoyaleProject project,
- List<File>externalLibraryFiles)
- {
- // Get all the library files in the project.
- List<ISWC> libraries = project.getLibraries();
- for (ISWC library : libraries)
- {
- if (library.isANE())
- {
- // must be on the external library path
- if (!isOnExternalLibrayPath(library, externalLibraryFiles))
- {
- configurationProblems.add(
- new ANELibraryNotAllowedProblem(
- library.getSWCFile().getAbsolutePath()));
- return false;
- }
- }
- }
-
- return true;
- }
-
- /**
* Test if the SWC is explicitly on the external library path.
*
* @param library
@@ -669,59 +554,6 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
}
/**
- * Setup {@code -compatibility-version} level. Royale only support Flex 3+.
- * @param project
- */
- protected void setupCompatibilityVersion(RoyaleProject project)
- {
- final int compatibilityVersion = configuration.getCompilerMxmlCompatibilityVersion();
- if (compatibilityVersion < Configuration.MXML_VERSION_3_0)
- throw new UnsupportedOperationException("Unsupported compatibility version: " + configuration.getCompilerCompatibilityVersionString());
- project.setCompatibilityVersion(configuration.getCompilerMxmlMajorCompatibilityVersion(),
- configuration.getCompilerMxmlMinorCompatibilityVersion(),
- configuration.getCompilerMxmlRevisionCompatibilityVersion());
- }
-
- /**
- * Transfers configuration settings to the project. Handles:
- * -services
- * -context-root
- *
- */
- protected void setupServices(RoyaleProject project)
- {
- if (configuration.getCompilerServices() != null)
- project.setServicesXMLPath(configuration.getCompilerServices().getPath(), configuration.getCompilerContextRoot());
- }
-
- /**
- * Setup the source paths.
- *
- * @return true if successful, false otherwise.
- */
- protected boolean setupSources(IRoyaleProject project)
- {
- // -source-path
- List<String> sourcePath = new ArrayList<String>();
- applySourcePathRules(sourcePath);
-
- project.setSourcePath(toFiles(sourcePath));
-
- // -include-sources
- try
- {
- project.setIncludeSources(toFileList(configuration.getIncludeSources()));
- }
- catch (InterruptedException e)
- {
- assert false : "InterruptedException should never be thrown here";
- return false;
- }
-
- return true;
- }
-
- /**
* Apply the follow source-path rules:
*
* 1. If source-path is empty, the target file's directory will be added to
@@ -793,32 +625,6 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
return false;
}
- protected void setupConfigVariables(IRoyaleProject project)
- {
- final Map<String, String> compilerDefine = configuration.getCompilerDefine();
- if (compilerDefine != null)
- project.setDefineDirectives(compilerDefine);
- }
-
- protected void setupNamespaces(IRoyaleProject project)
- {
- final List<? extends IMXMLNamespaceMapping> configManifestMappings =
- project.getCompilerNamespacesManifestMappings(configuration);
- if (configManifestMappings != null)
- {
- project.setNamespaceMappings(configManifestMappings);
- }
- }
-
- /**
- * Setups the locale related settings.
- */
- protected void setupLocaleSettings(IRoyaleProject project)
- {
- project.setLocales(configuration.getCompilerLocales());
- project.setLocaleDependentResources(configuration.getLocaleDependentSources());
- }
-
public static List<RSLSettings> getRSLSettingsFromConfiguration(Configuration configuration)
{
List<RuntimeSharedLibraryPathInfo> infoList = configuration.getRslPathInfo();
@@ -1119,7 +925,7 @@ public class Configurator implements ICompilerSettings, IConfigurator, ICompiler
/**
* Load a configuration from file. {@code FileConfigurator.load()} is
* wrapped in this method because we want to print a message after loading
- * using {@link MXMLC#println(String)}.
+ * using MXMLC#println(String).
*
* @return true if successful, false otherwise.
*/
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ICompilerProblemSettings.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ICompilerProblemSettings.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ICompilerProblemSettings.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ICompilerProblemSettings.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/config/ICompilerSettingsConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/ICompilerSettingsConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/config/ICompilerSettingsConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/config/ICompilerSettingsConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/constants/IASWarningConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/constants/IASWarningConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/constants/IASWarningConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/constants/IASWarningConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/exceptions/ConfigurationException.java b/compiler-common/src/main/java/org/apache/royale/compiler/exceptions/ConfigurationException.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/exceptions/ConfigurationException.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/exceptions/ConfigurationException.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/filespecs/BaseFileSpecification.java b/compiler-common/src/main/java/org/apache/royale/compiler/filespecs/BaseFileSpecification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/filespecs/BaseFileSpecification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/filespecs/BaseFileSpecification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/filespecs/CombinedFile.java b/compiler-common/src/main/java/org/apache/royale/compiler/filespecs/CombinedFile.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/filespecs/CombinedFile.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/filespecs/CombinedFile.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/filespecs/FileSpecification.java b/compiler-common/src/main/java/org/apache/royale/compiler/filespecs/FileSpecification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/filespecs/FileSpecification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/filespecs/FileSpecification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/filespecs/IBinaryFileSpecification.java b/compiler-common/src/main/java/org/apache/royale/compiler/filespecs/IBinaryFileSpecification.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/filespecs/IBinaryFileSpecification.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/filespecs/IBinaryFileSpecification.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/COMPCConfiguration.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/COMPCConfiguration.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/COMPCConfiguration.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/COMPCConfiguration.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/CompilerProblemSettings.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/CompilerProblemSettings.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/CompilerProblemSettings.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/CompilerProblemSettings.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/DefaultsConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/DefaultsConfigurator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/DefaultsConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/DefaultsConfigurator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/FileConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/FileConfigurator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/FileConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/FileConfigurator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/FlashBuilderConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/FlashBuilderConfigurator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/FlashBuilderConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/FlashBuilderConfigurator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/ICompilerSettings.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/ICompilerSettings.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/ICompilerSettings.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/ICompilerSettings.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/IConfigurationFilter.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IConfigurationFilter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/IConfigurationFilter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IConfigurationFilter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java
similarity index 97%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java
index 5abec76..dfd446e 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IConfigurator.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.apache.royale.compiler.common.IPathResolver;
import org.apache.royale.compiler.config.ICompilerProblemSettings;
import org.apache.royale.compiler.problems.ICompilerProblem;
-import org.apache.royale.compiler.projects.IRoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
import org.apache.royale.compiler.targets.ITarget.TargetType;
import org.apache.royale.compiler.targets.ITargetSettings;
@@ -50,7 +50,7 @@ public interface IConfigurator
* @return true if the configuration contains no errors and the project was
* successfully configured, false if the configuration contains errors.
*/
- boolean applyToProject(IRoyaleProject project);
+ boolean applyToProject(ICompilerProject project);
/**
* Get the settings that apply to a given type of target based on the
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/IWriteOnlyProjectSettings.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IWriteOnlyProjectSettings.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/IWriteOnlyProjectSettings.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/IWriteOnlyProjectSettings.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/LoadExternsParser.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/LoadExternsParser.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/LoadExternsParser.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/LoadExternsParser.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/QNameNormalization.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/QNameNormalization.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/QNameNormalization.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/QNameNormalization.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/RSLArgumentNameGenerator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/RSLArgumentNameGenerator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/RSLArgumentNameGenerator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/RSLArgumentNameGenerator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/RuntimeSharedLibraryPathInfo.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/RuntimeSharedLibraryPathInfo.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/RuntimeSharedLibraryPathInfo.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/RuntimeSharedLibraryPathInfo.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/SystemPropertyConfigurator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/SystemPropertyConfigurator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/SystemPropertyConfigurator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/SystemPropertyConfigurator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
similarity index 95%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
index 0c58bb9..e0c75ca 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/TargetSettings.java
@@ -33,8 +33,7 @@ import org.apache.commons.io.FileUtils;
import org.apache.royale.compiler.config.Configuration;
import org.apache.royale.compiler.config.Configurator;
import org.apache.royale.compiler.config.RSLSettings;
-import org.apache.royale.compiler.internal.projects.LibraryPathManager;
-import org.apache.royale.compiler.projects.IRoyaleProject;
+import org.apache.royale.compiler.projects.ICompilerProject;
import org.apache.royale.compiler.targets.ITargetSettings;
import org.apache.royale.utils.FilenameNormalization;
import com.google.common.collect.ImmutableList;
@@ -47,7 +46,7 @@ import com.google.common.collect.ImmutableList;
*/
public class TargetSettings implements ITargetSettings
{
- public TargetSettings(Configuration configuration, IRoyaleProject project)
+ public TargetSettings(Configuration configuration, ICompilerProject project)
{
this.configuration = configuration;
this.project = project;
@@ -64,7 +63,7 @@ public class TargetSettings implements ITargetSettings
private Map<String, File> includeFiles;
private final Configuration configuration;
- private final IRoyaleProject project;
+ private final ICompilerProject project;
private Set<String> externalLinkageLibraries;
@@ -377,12 +376,8 @@ public class TargetSettings implements ITargetSettings
{
if (externalLibraryPath == null)
{
- List<File> files = Configurator.toFileList(project != null ? project.getCompilerExternalLibraryPath(configuration) :
- configuration.getCompilerExternalLibraryPath());
- Set<File> expandedFiles = LibraryPathManager.discoverSWCFilePathsAsFiles(files.toArray(new File[files.size()]));
-
- externalLibraryPath = new ArrayList<File>(expandedFiles.size());
- for (File swcFile : expandedFiles)
+ List<File> files = Configurator.toFileList(configuration.getCompilerExternalLibraryPath());
+ for (File swcFile : files)
externalLibraryPath.add(swcFile);
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/ArgumentNameGenerator.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/ArgumentNameGenerator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/ArgumentNameGenerator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/ArgumentNameGenerator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Arguments.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Arguments.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Arguments.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Arguments.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Config.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Config.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Config.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Config.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/DefaultArgumentValue.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/DefaultArgumentValue.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/DefaultArgumentValue.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/DefaultArgumentValue.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/DeprecatedConfig.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/DeprecatedConfig.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/DeprecatedConfig.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/DeprecatedConfig.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/InfiniteArguments.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/InfiniteArguments.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/InfiniteArguments.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/InfiniteArguments.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Mapping.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Mapping.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/Mapping.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/Mapping.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/RoyaleOnly.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/RoyaleOnly.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/RoyaleOnly.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/RoyaleOnly.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/SoftPrerequisites.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/SoftPrerequisites.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/annotations/SoftPrerequisites.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/annotations/SoftPrerequisites.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java
similarity index 100%
copy from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java
similarity index 100%
copy from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java
copy to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/LocalizationManager.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/LocalizationManager.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/LocalizationManager.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/LocalizationManager.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ResourceBundleLocalizer.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ResourceBundleLocalizer.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ResourceBundleLocalizer.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/ResourceBundleLocalizer.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/package.html b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/package.html
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/package.html
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/localization/package.html
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/package.html b/compiler-common/src/main/java/org/apache/royale/compiler/internal/config/package.html
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/package.html
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/config/package.html
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLNamespaceMapping.java b/compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLNamespaceMapping.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLNamespaceMapping.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/internal/mxml/MXMLNamespaceMapping.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLNamespaceMapping.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLNamespaceMapping.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLNamespaceMapping.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLNamespaceMapping.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTypeConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTypeConstants.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/mxml/IMXMLTypeConstants.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/mxml/IMXMLTypeConstants.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ANELibraryNotAllowedProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ANELibraryNotAllowedProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ANELibraryNotAllowedProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ANELibraryNotAllowedProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/AbstractDeprecatedAPIProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/AbstractDeprecatedAPIProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/AbstractDeprecatedAPIProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/AbstractDeprecatedAPIProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/AbstractSemanticProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/AbstractSemanticProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/AbstractSemanticProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/AbstractSemanticProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ArrayCastProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ArrayCastProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ArrayCastProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ArrayCastProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/AssignmentInConditionalProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/AssignmentInConditionalProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/AssignmentInConditionalProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/AssignmentInConditionalProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/CodegenInternalProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CodegenInternalProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/CodegenInternalProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/CodegenInternalProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/CodegenProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/CodegenProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/CodegenProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/CodegenProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ConfigurationProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ConfigurationProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ConfigurationProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ConfigurationProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ConstNotInitializedProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ConstNotInitializedProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ConstNotInitializedProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ConstNotInitializedProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/DateCastProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/DateCastProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/DateCastProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/DateCastProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/DeprecatedConfigurationOptionProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/DeprecatedConfigurationOptionProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/DeprecatedConfigurationOptionProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/DeprecatedConfigurationOptionProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/DuplicateQNameInSourcePathProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/DuplicateQNameInSourcePathProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/DuplicateQNameInSourcePathProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/DuplicateQNameInSourcePathProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/DuplicateVariableDefinitionProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/DuplicateVariableDefinitionProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/DuplicateVariableDefinitionProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/DuplicateVariableDefinitionProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IOperandStackUnderflowProblem.java
similarity index 78%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/IOperandStackUnderflowProblem.java
index ec3dfd3..db12a61 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizer.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IOperandStackUnderflowProblem.java
@@ -17,14 +17,14 @@
*
*/
-package org.apache.royale.compiler.internal.config.localization;
+package org.apache.royale.compiler.problems;
+
+import org.apache.royale.compiler.common.ISourceLocation;
-import java.util.Locale;
/**
- * Defines the API for looking up localized text.
+ * Marker interface to break dependencies in ProblemQuery
*/
-public interface ILocalizer
+public interface IOperandStackUnderflowProblem extends ICompilerProblem
{
- ILocalizedText getLocalizedText( Locale locale, String id );
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IParserProblem.java
similarity index 79%
rename from compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/IParserProblem.java
index 6b2584c..f1d91f8 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/config/localization/ILocalizedText.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IParserProblem.java
@@ -17,14 +17,14 @@
*
*/
-package org.apache.royale.compiler.internal.config.localization;
+package org.apache.royale.compiler.problems;
+
+import org.apache.royale.compiler.common.ISourceLocation;
-import java.util.Map;
/**
- * Defines the API for formatting localized text.
+ * Marker interface to break dependencies in ProblemQuery
*/
-public interface ILocalizedText
+public interface IParserProblem extends ICompilerProblem
{
- String format(Map<String, Object> parameters);
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/IllogicalComparionWithNaNProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IllogicalComparionWithNaNProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/IllogicalComparionWithNaNProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/IllogicalComparionWithNaNProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/IllogicalComparisonWithUndefinedProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/IllogicalComparisonWithUndefinedProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/IllogicalComparisonWithUndefinedProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/IllogicalComparisonWithUndefinedProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/InstanceOfProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/InstanceOfProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/InstanceOfProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/InstanceOfProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/NullUsedWhereOtherExpectedProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/NullUsedWhereOtherExpectedProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/NullUsedWhereOtherExpectedProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/NullUsedWhereOtherExpectedProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/OverlappingSourcePathProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/OverlappingSourcePathProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/OverlappingSourcePathProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/OverlappingSourcePathProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/RemovedConfigurationOptionProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/RemovedConfigurationOptionProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/RemovedConfigurationOptionProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/RemovedConfigurationOptionProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/RoyaleOnlyConfigurationOptionNotSupported.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/RoyaleOnlyConfigurationOptionNotSupported.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/RoyaleOnlyConfigurationOptionNotSupported.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/RoyaleOnlyConfigurationOptionNotSupported.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ScopedToDefaultNamespaceProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/ScopedToDefaultNamespaceProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/ScopedToDefaultNamespaceProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/ScopedToDefaultNamespaceProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/SemanticProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/SemanticProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/SemanticProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/SemanticProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/SemanticWarningProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/SemanticWarningProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/SemanticWarningProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/SemanticWarningProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/StrictSemanticsProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/StrictSemanticsProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/StrictSemanticsProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/StrictSemanticsProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/UnfoundPropertyProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/UnfoundPropertyProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/UnfoundPropertyProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/UnfoundPropertyProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/UnresolvedClassReferenceProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/UnresolvedClassReferenceProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/UnresolvedClassReferenceProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/UnresolvedClassReferenceProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/VariableHasNoTypeDeclarationProblem.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/VariableHasNoTypeDeclarationProblem.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/VariableHasNoTypeDeclarationProblem.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/VariableHasNoTypeDeclarationProblem.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/collections/CompositeProblemFilter.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/CompositeProblemFilter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/collections/CompositeProblemFilter.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/CompositeProblemFilter.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/collections/FilteredIterator.java b/compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/FilteredIterator.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/collections/FilteredIterator.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/FilteredIterator.java
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/collections/package.html b/compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/package.html
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/compiler/problems/collections/package.html
rename to compiler-common/src/main/java/org/apache/royale/compiler/problems/collections/package.html
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/utils/NodeJSUtils.java b/compiler-common/src/main/java/org/apache/royale/compiler/utils/NodeJSUtils.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/utils/NodeJSUtils.java
rename to compiler-common/src/main/java/org/apache/royale/compiler/utils/NodeJSUtils.java
diff --git a/compiler/src/main/java/org/apache/royale/swc/catalog/XMLFormatter.java b/compiler-common/src/main/java/org/apache/royale/swc/catalog/XMLFormatter.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/swc/catalog/XMLFormatter.java
rename to compiler-common/src/main/java/org/apache/royale/swc/catalog/XMLFormatter.java
diff --git a/compiler/src/main/java/org/apache/royale/utils/DAByteArrayOutputStream.java b/compiler-common/src/main/java/org/apache/royale/utils/DAByteArrayOutputStream.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/utils/DAByteArrayOutputStream.java
rename to compiler-common/src/main/java/org/apache/royale/utils/DAByteArrayOutputStream.java
diff --git a/compiler/src/main/java/org/apache/royale/utils/ExceptionUtil.java b/compiler-common/src/main/java/org/apache/royale/utils/ExceptionUtil.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/utils/ExceptionUtil.java
rename to compiler-common/src/main/java/org/apache/royale/utils/ExceptionUtil.java
diff --git a/compiler/src/main/java/org/apache/royale/utils/FileUtils.java b/compiler-common/src/main/java/org/apache/royale/utils/FileUtils.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/utils/FileUtils.java
rename to compiler-common/src/main/java/org/apache/royale/utils/FileUtils.java
diff --git a/compiler/src/main/java/org/apache/royale/utils/Trace.java b/compiler-common/src/main/java/org/apache/royale/utils/Trace.java
similarity index 100%
rename from compiler/src/main/java/org/apache/royale/utils/Trace.java
rename to compiler-common/src/main/java/org/apache/royale/utils/Trace.java
diff --git a/compiler-externc/build.xml b/compiler-externc/build.xml
index 2d8a2c3..9e86c2e 100644
--- a/compiler-externc/build.xml
+++ b/compiler-externc/build.xml
@@ -34,6 +34,13 @@
<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-jx" dirsep="/">
+ <path location="${basedir}/../compiler-jx"/>
+ </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"/>
@@ -98,7 +105,8 @@
<src path="${compiler-externc}/src/main/java"/>
<classpath>
<pathelement location="${compiler-externc}/target/classes"/>
- <fileset dir="${compiler-externc}/../compiler/lib/external" includes="**/*.jar"/>
+ <fileset dir="${compiler-externc}/../compiler-jx/lib/google" includes="**/*.jar"/>
+ <fileset dir="${compiler-externc}/../compiler/lib" includes="compiler-common.jar,external/*.jar"/>
</classpath>
</javac>
</target>
diff --git a/compiler-jx/src/main/java/com/google/javascript/jscomp/JXCompilerOptions.java b/compiler-externc/src/main/java/com/google/javascript/jscomp/JXCompilerOptions.java
similarity index 100%
rename from compiler-jx/src/main/java/com/google/javascript/jscomp/JXCompilerOptions.java
rename to compiler-externc/src/main/java/com/google/javascript/jscomp/JXCompilerOptions.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/ExternCConfiguration.java b/compiler-externc/src/main/java/org/apache/royale/compiler/clients/ExternCConfiguration.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/clients/ExternCConfiguration.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/clients/ExternCConfiguration.java
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/DummyNode.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/DummyNode.java
new file mode 100644
index 0000000..9891a94
--- /dev/null
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/DummyNode.java
@@ -0,0 +1,174 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.royale.compiler.internal.codegen.externals;
+
+import java.util.HashMap;
+
+import org.apache.royale.compiler.common.SourceLocation;
+import org.apache.royale.compiler.tree.ASTNodeID;
+import org.apache.royale.compiler.tree.as.IASNode;
+import org.apache.royale.compiler.tree.as.IScopedNode;
+import org.apache.royale.compiler.filespecs.IFileSpecification;
+
+// used to generate errors
+public class DummyNode extends SourceLocation implements IASNode
+{
+ /**
+ * Get the opcode of this node
+ *
+ * @return the opcode - this is one of the constants defined in ASTConstants
+ */
+ public ASTNodeID getNodeID()
+ {
+ return ASTNodeID.UnknownID;
+ }
+
+ /**
+ * Determine whether the offset fits within this node.
+ *
+ * @param offset the offset to test
+ * @return true if the offset is contained within this node
+ */
+ public boolean contains(int offset)
+ {
+ return false;
+ }
+
+ /**
+ * Get the nearest ancestor of this node that has the specified type.
+ *
+ * @param nodeType the node type for which to search
+ * @return the nearest ancestor that has the specified type (null if no such
+ * node exists)
+ */
+ public IASNode getAncestorOfType(Class<? extends IASNode> nodeType)
+ {
+ return null;
+ }
+
+ /**
+ * Get a particular child of this node
+ *
+ * @param i the child's index
+ * @return the specified child
+ */
+ public IASNode getChild(int i)
+ {
+ return null;
+ }
+
+ /**
+ * Get the number of children
+ *
+ * @return the number of children
+ */
+ public int getChildCount()
+ {
+ return 0;
+ }
+
+ /**
+ * Gets the child node that contains the offset
+ *
+ * @param offset an offest
+ * @return an IASNode or null
+ */
+ public IASNode getContainingNode(int offset)
+ {
+ return null;
+ }
+
+ /**
+ * Gets the containing scope for this node
+ *
+ * @return the current {@link IScopedNode}
+ */
+ public IScopedNode getContainingScope()
+ {
+ return null;
+ }
+
+ /**
+ * Get package name that applies to this node. If this node doesn't reside
+ * inside a package definition, this method will return null.
+ *
+ * @return String containing fully-qualified package name
+ */
+ public String getPackageName()
+ {
+ return null;
+ }
+
+ /**
+ * Get the parent of this node
+ *
+ * @return the parent of this node
+ */
+ public IASNode getParent()
+ {
+ return null;
+ }
+
+ /**
+ * Get the {@link IFileSpecification} that produced this node
+ *
+ * @return the source of this node
+ */
+ public IFileSpecification getFileSpecification()
+ {
+ return null;
+ }
+
+ /**
+ * Gets the local offset where the node starts, including any extra items that may
+ * change the appearance of the node's start. These can include namespaces,
+ * keywords, modifiers, etc
+ *
+ * @return the start of the span
+ */
+ public int getSpanningStart()
+ {
+ return 0;
+ }
+
+ /**
+ * Get the first node that succeeds the offset (i.e. which starts after the
+ * offset).
+ *
+ * @param offset the offset for which to search
+ * @return the most general node that starts after the offset (or null, if
+ * the offset isn't contained within this node)
+ */
+ public IASNode getSucceedingNode(int offset)
+ {
+ return null;
+ }
+
+ /**
+ * Determines if this node is a terminal node, meaning it cannot have
+ * children
+ *
+ * @return true if this node is terminal
+ */
+ public boolean isTerminal()
+ {
+ return true;
+ }
+}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AbstractCompilerPass.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AddMemberPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AddMemberPass.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AddMemberPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/AddMemberPass.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectImportsPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectImportsPass.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectImportsPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectImportsPass.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectTypesPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectTypesPass.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectTypesPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/CollectTypesPass.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
similarity index 97%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
index 65778d3..d6d5b54 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/NamespaceResolutionPass.java
@@ -20,7 +20,7 @@
package org.apache.royale.compiler.internal.codegen.externals.pass;
import org.apache.royale.compiler.internal.codegen.externals.reference.ReferenceModel;
-import org.apache.royale.compiler.internal.tree.as.IdentifierNode;
+import org.apache.royale.compiler.internal.codegen.externals.DummyNode;
import org.apache.royale.compiler.problems.VariableHasNoTypeDeclarationProblem;
import com.google.javascript.jscomp.AbstractCompiler;
@@ -94,7 +94,7 @@ public class NamespaceResolutionPass extends AbstractCompilerPass
{
StaticSourceFile ssf = first.getStaticSourceFile();
String source = getSourceCode(ssf, first.getLineno());
- IdentifierNode node = new IdentifierNode(source);
+ DummyNode node = new DummyNode();
String externName = getSourceFileName(ssf.getName(), model);
node.setSourcePath(externName);
node.setLine(first.getLineno());
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/pass/ResolvePackagesPass.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/BaseReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/BaseReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/BaseReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/BaseReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java
similarity index 99%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java
index 7135b05..832a359 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ClassReference.java
@@ -31,7 +31,7 @@ import java.util.Set;
import org.apache.royale.compiler.internal.codegen.externals.pass.AbstractCompilerPass;
import org.apache.royale.compiler.internal.codegen.externals.utils.DebugLogUtils;
import org.apache.royale.compiler.internal.codegen.externals.utils.JSTypeUtils;
-import org.apache.royale.compiler.internal.tree.as.IdentifierNode;
+import org.apache.royale.compiler.internal.codegen.externals.DummyNode;
import org.apache.royale.compiler.problems.UnresolvedClassReferenceProblem;
import com.google.javascript.rhino.JSDocInfo;
@@ -536,7 +536,7 @@ public class ClassReference extends BaseReference
result.add(interfaceReference);
else
{
- IdentifierNode node = new IdentifierNode(interfaceName);
+ DummyNode node = new DummyNode();
String externName = AbstractCompilerPass.getSourceFileName(this.getNode().getStaticSourceFile().getName(), getModel());
node.setSourcePath(externName);
node.setLine(this.getNode().getLineno());
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ConstantReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ConstantReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ConstantReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ConstantReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FieldReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FieldReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FieldReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FieldReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FunctionReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FunctionReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FunctionReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/FunctionReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MemberReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MemberReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MemberReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MemberReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MethodReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MethodReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MethodReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/MethodReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/NullConstructorReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/NullConstructorReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/NullConstructorReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/NullConstructorReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ParameterReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ParameterReference.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ParameterReference.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/reference/ParameterReference.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/DebugLogUtils.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/DebugLogUtils.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/DebugLogUtils.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/DebugLogUtils.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/FunctionUtils.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/FunctionUtils.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/FunctionUtils.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/FunctionUtils.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/JSTypeUtils.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/JSTypeUtils.java
similarity index 100%
rename from compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/JSTypeUtils.java
rename to compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/externals/utils/JSTypeUtils.java
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/MXMLJSC.java b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/MXMLJSC.java
index 9712da3..33771de 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/clients/MXMLJSC.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/clients/MXMLJSC.java
@@ -811,7 +811,7 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
*/
public boolean configure(final String[] args)
{
- projectConfigurator = new Configurator(configurationClass);
+ projectConfigurator = new RoyaleProjectConfigurator(configurationClass);
try
{
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java b/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java
new file mode 100644
index 0000000..e1d9311
--- /dev/null
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java
@@ -0,0 +1,69 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.royale.compiler.internal.config;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.apache.commons.io.FileUtils;
+
+import org.apache.royale.compiler.config.Configuration;
+import org.apache.royale.compiler.config.Configurator;
+import org.apache.royale.compiler.config.RSLSettings;
+import org.apache.royale.compiler.internal.projects.LibraryPathManager;
+import org.apache.royale.compiler.projects.ICompilerProject;
+import org.apache.royale.compiler.targets.ITargetSettings;
+import org.apache.royale.utils.FilenameNormalization;
+import com.google.common.collect.ImmutableList;
+
+/**
+ * Value object of ITargetSettings.
+ *
+ * The only way to create an instance of this object is by calling
+ * Configurator.getTargetSettings;
+ */
+public class RoyaleTargetSettings extends TargetSettings
+{
+ /**
+ * @return the externalLibraryPath
+ */
+ @Override
+ public Collection<File> getExternalLibraryPath()
+ {
+ if (externalLibraryPath == null)
+ {
+ List<File> files = Configurator.toFileList(project != null ? project.getCompilerExternalLibraryPath(configuration) :
+ configuration.getCompilerExternalLibraryPath());
+ Set<File> expandedFiles = LibraryPathManager.discoverSWCFilePathsAsFiles(files.toArray(new File[files.size()]));
+
+ externalLibraryPath = new ArrayList<File>(expandedFiles.size());
+ for (File swcFile : expandedFiles)
+ externalLibraryPath.add(swcFile);
+ }
+
+ return externalLibraryPath;
+ }
+}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
index 0d6339d..548e6bf 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProjectConfigurator.java
@@ -29,6 +29,7 @@ import org.apache.royale.abc.semantics.Name;
import org.apache.royale.abc.semantics.Namespace;
import org.apache.royale.abc.semantics.Nsset;
import org.apache.royale.compiler.config.Configuration;
+import org.apache.royale.compiler.config.Configurator;
import org.apache.royale.compiler.fxg.flex.FlexFXG2SWFTranscoder;
import org.apache.royale.compiler.internal.as.codegen.BindableHelper;
import org.apache.royale.compiler.internal.definitions.ClassDefinition;
@@ -43,7 +44,7 @@ import org.apache.royale.compiler.mxml.IMXMLTypeConstants;
* Eventually they will come from royale-config.xml
* and this class will support updating with new configuration values.
*/
-public class RoyaleProjectConfigurator
+public class RoyaleProjectConfigurator extends Configurator
{
/**
* These imports will eventually come from royale-config.xml.
@@ -256,4 +257,231 @@ public class RoyaleProjectConfigurator
DataTranscoder.embedClassName = configuration.getByteArrayEmbedClass();
}
}
+
+ @Override
+ public boolean applyToProject(ICompilerProject project)
+ {
+ boolean success = super.applyToProject(project);
+ if (success && !setupSources(project))
+ success = false;
+ return success;
+ }
+
+ @Override
+ protected boolean applyConfiguration()
+ {
+ boolean success = true;
+
+ RoyaleProjectConfigurator.configure(royaleProject, configuration);
+ setupCompatibilityVersion(royaleProject);
+ setupConfigVariables(royaleProject);
+ setupLocaleSettings(royaleProject);
+ setupServices(royaleProject);
+ setupThemeFiles(royaleProject);
+ setupRoyale(royaleProject);
+ setupCodegenOptions(royaleProject);
+ project.setRuntimeSharedLibraryPath(getRSLSettingsFromConfiguration(configuration));
+
+ if (!setupProjectLibraries(project))
+ success = false;
+
+ setupNamespaces(project);
+ return success;
+ }
+
+ /**
+ * Setup {@code -compatibility-version} level. Royale only support Flex 3+.
+ * @param project
+ */
+ protected void setupCompatibilityVersion(RoyaleProject project)
+ {
+ final int compatibilityVersion = configuration.getCompilerMxmlCompatibilityVersion();
+ if (compatibilityVersion < Configuration.MXML_VERSION_3_0)
+ throw new UnsupportedOperationException("Unsupported compatibility version: " + configuration.getCompilerCompatibilityVersionString());
+ project.setCompatibilityVersion(configuration.getCompilerMxmlMajorCompatibilityVersion(),
+ configuration.getCompilerMxmlMinorCompatibilityVersion(),
+ configuration.getCompilerMxmlRevisionCompatibilityVersion());
+ }
+
+ /**
+ * Transfers configuration settings to the project. Handles:
+ * -services
+ * -context-root
+ *
+ */
+ protected void setupServices(RoyaleProject project)
+ {
+ if (configuration.getCompilerServices() != null)
+ project.setServicesXMLPath(configuration.getCompilerServices().getPath(), configuration.getCompilerContextRoot());
+ }
+
+ protected void setupConfigVariables(IRoyaleProject project)
+ {
+ final Map<String, String> compilerDefine = configuration.getCompilerDefine();
+ if (compilerDefine != null)
+ project.setDefineDirectives(compilerDefine);
+ }
+
+ /**
+ * Setup the source paths.
+ *
+ * @return true if successful, false otherwise.
+ */
+ protected boolean setupSources(IRoyaleProject project)
+ {
+ // -source-path
+ List<String> sourcePath = new ArrayList<String>();
+ applySourcePathRules(sourcePath);
+
+ project.setSourcePath(toFiles(sourcePath));
+
+ // -include-sources
+ try
+ {
+ project.setIncludeSources(toFileList(configuration.getIncludeSources()));
+ }
+ catch (InterruptedException e)
+ {
+ assert false : "InterruptedException should never be thrown here";
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Collect all of the different library paths and set them in the project.
+ * The libraries are ordered with RSL and external libraries having the
+ * highest priority.
+ *
+ * <p>Libraries are ordered highest to lowest priority:
+ * <ol>
+ * <li>External Library Path
+ * <li>RSL Library Path
+ * <li>Include Library Path
+ * <li>Library Path
+ * </ol>
+ * </p>
+ * @param project
+ * @return true if successful, false if there is an error.
+ */
+ protected boolean setupProjectLibraries(IRoyaleProject project)
+ {
+ LinkedHashSet<File> libraries = new LinkedHashSet<File>();
+
+ // add External Library Path
+ List<File> externalLibraryFiles = toFileList(project.getCompilerExternalLibraryPath(configuration));
+ libraries.addAll(externalLibraryFiles);
+
+ // add RSLs
+ libraries.addAll(configuration.getRslExcludedLibraries());
+
+ // add Include Library Path
+ libraries.addAll(toFileList(configuration.getCompilerIncludeLibraries()));
+
+ // add Library Path
+ libraries.addAll(toFileList(project.getCompilerLibraryPath(configuration)));
+
+ project.setLibraries(new ArrayList<File>(libraries));
+
+ // After we set the library path we can check for ANE files more
+ // accurately because the library path manager in the project
+ // will read in all the swc files found in directories on the
+ // paths.
+ return validateNoANEFiles(project, externalLibraryFiles);
+ }
+
+ /**
+ * Validate all of the ANE files are on the external library path.
+ *
+ * @param project the project being configured.
+ * @param externalLibraryFiles the external library path.
+ * @return true if successful, false if there is an error.
+ */
+ private boolean validateNoANEFiles(IRoyaleProject project,
+ List<File>externalLibraryFiles)
+ {
+ // Get all the library files in the project.
+ List<ISWC> libraries = project.getLibraries();
+ for (ISWC library : libraries)
+ {
+ if (library.isANE())
+ {
+ // must be on the external library path
+ if (!isOnExternalLibrayPath(library, externalLibraryFiles))
+ {
+ configurationProblems.add(
+ new ANELibraryNotAllowedProblem(
+ library.getSWCFile().getAbsolutePath()));
+ return false;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ protected void setupNamespaces(IRoyaleProject project)
+ {
+ final List<? extends IMXMLNamespaceMapping> configManifestMappings =
+ project.getCompilerNamespacesManifestMappings(configuration);
+ if (configManifestMappings != null)
+ {
+ project.setNamespaceMappings(configManifestMappings);
+ }
+ }
+
+ /**
+ * Setups the locale related settings.
+ */
+ protected void setupLocaleSettings(IRoyaleProject project)
+ {
+ project.setLocales(configuration.getCompilerLocales());
+ project.setLocaleDependentResources(configuration.getLocaleDependentSources());
+ }
+
+ private void setupRoyale(RoyaleProject royaleProject)
+ {
+ royaleProject.setRoyale(configuration.isRoyale());
+ }
+
+ private void setupCodegenOptions(RoyaleProject royaleProject)
+ {
+ royaleProject.setEnableInlining(configuration.isInliningEnabled());
+ }
+
+ /**
+ * Setup theme files.
+ */
+ protected void setupThemeFiles(RoyaleProject project)
+ {
+ project.setThemeFiles(toFileSpecifications(configuration.getCompilerThemeFiles(),
+ project.getWorkspace()));
+
+ }
+
+ @Override
+ protected ITargetSettings instantiateTargetSettings()
+ {
+ return new RoyaleTargetSettings(configuration, project);
+ }
+
+ @Override
+ protected String computeQNameForTargetFile()
+ {
+ List<String> computedSourcePath = new ArrayList<String>();
+ applySourcePathRules(computedSourcePath);
+ String targetSourceFileName = configuration.getTargetFile();
+ if (targetSourceFileName == null)
+ return null;
+ final File targetSourceFile = FilenameNormalization.normalize(new File(configuration.getTargetFile()));
+ for (final String sourcePathEntry : computedSourcePath)
+ {
+ final String computedQName = SourcePathManager.computeQName(new File(sourcePathEntry), targetSourceFile);
+ if (computedQName != null)
+ return computedQName;
+
+ }
+ return null;
+ }
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/InvalidByteCodeGeneratedProblem.java b/compiler/src/main/java/org/apache/royale/compiler/problems/InvalidByteCodeGeneratedProblem.java
index 721d277..35ed797 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/problems/InvalidByteCodeGeneratedProblem.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/problems/InvalidByteCodeGeneratedProblem.java
@@ -21,7 +21,6 @@ package org.apache.royale.compiler.problems;
import org.apache.royale.abc.graph.IBasicBlock;
import org.apache.royale.abc.graph.IFlowgraph;
-import org.apache.royale.abc.semantics.Block;
import org.apache.royale.compiler.common.ISourceLocation;
import org.apache.royale.compiler.common.SourceLocation;
import org.apache.royale.compiler.problems.annotations.DefaultSeverity;
@@ -41,14 +40,14 @@ public abstract class InvalidByteCodeGeneratedProblem extends CompilerProblem
/**
* Helper method that will use debug op code information to deduce a source
- * location from an instruction offset in a {@link Block} in a
+ * location from an instruction offset in a Block in a
* {@link IFlowgraph}.
*
* @param cfg {@link IFlowgraph} containing the specified
- * {@link Block}.
- * @param b {@link Block} containing the instruction to deduce a
+ * Block.
+ * @param b Block containing the instruction to deduce a
* {@link ISourceLocation} for.
- * @param instructionIndex Offset in the specified {@link Block} of the
+ * @param instructionIndex Offset in the specified Block of the
* instruction to deduce a {@link ISourceLocation} for.
* @return The deduced {@link ISourceLocation}.
*/
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/OperandStackUnderflowProblem.java b/compiler/src/main/java/org/apache/royale/compiler/problems/OperandStackUnderflowProblem.java
index 466ade3..49ffd70 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/problems/OperandStackUnderflowProblem.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/problems/OperandStackUnderflowProblem.java
@@ -21,7 +21,6 @@ package org.apache.royale.compiler.problems;
import org.apache.royale.abc.graph.IBasicBlock;
import org.apache.royale.abc.graph.IFlowgraph;
-import org.apache.royale.abc.visitors.IDiagnosticsVisitor;
/**
* Internal compiler problem created when the code generator produces code in a
@@ -29,9 +28,9 @@ import org.apache.royale.abc.visitors.IDiagnosticsVisitor;
* <p>
* This compiler problem is created when AET, detects a operand stack underflow
* in
- * {@link org.apache.royale.abc.semantics.MethodBodyInfo#computeFrameCounts(IDiagnosticsVisitor)}.
+ * org.apache.royale.abc.semantics.MethodBodyInfo#computeFrameCounts(IDiagnosticsVisitor).
*/
-public final class OperandStackUnderflowProblem extends InvalidByteCodeGeneratedProblem
+public final class OperandStackUnderflowProblem extends InvalidByteCodeGeneratedProblem implements IOperandStackUnderflowProblem
{
public static final String DESCRIPTION =
"Generated byte code contains an operand stack underflow.";
diff --git a/compiler/src/main/java/org/apache/royale/compiler/problems/ParserProblem.java b/compiler/src/main/java/org/apache/royale/compiler/problems/ParserProblem.java
index 94a62ad..07c7a2f 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/problems/ParserProblem.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/problems/ParserProblem.java
@@ -25,7 +25,7 @@ import org.apache.royale.compiler.internal.parsing.TokenBase;
/**
* This error represents a general error that has been encountered during parsing, usually triggered by an exception
*/
-public class ParserProblem extends CompilerProblem
+public class ParserProblem extends CompilerProblem implements IParserProblem
{
public static final String DESCRIPTION =
"Internal parsing problem";
--
To stop receiving notification emails like this one, please contact
"commits@royale.apache.org" <co...@royale.apache.org>.