flex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cd...@apache.org
Subject [25/51] [partial] - Migrated the directory structure to a more Maven style structure. - Started migrating the Parser from Antlr2+3 and JFlex to Antlr4.
Date Tue, 22 Jul 2014 13:35:51 GMT
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerProblemSettings.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerProblemSettings.java b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerProblemSettings.java
new file mode 100644
index 0000000..bd41849
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerProblemSettings.java
@@ -0,0 +1,213 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.config;
+
+import java.util.Collection;
+
+import org.apache.flex.compiler.problems.ICompilerProblem;
+
+public interface ICompilerProblemSettings
+{
+    /**
+     * Returns whether some source path directories are allowed to be 
+     * subdirectories of another.
+     * 
+     * @return true if source path overlap is allowed, false otherwise.
+     */
+     boolean isSourcePathOverlapAllowed();
+
+     /**
+      * Returns whether ActionScript warnings are enabled.
+      * 
+      * If enabled, the ActionScript compiler runs in a mode that detects legal
+      * but potentially incorrect code.
+      * 
+      * @return true if ActionScript warnings are enabled, false otherwise.
+      */
+     boolean showActionScriptWarnings();
+
+     /**
+      * Returns whether binding warnings are enabled.
+      * 
+      * If binding warning are enabled, then warnings generated from data binding
+      * code are displayed.
+      * 
+      * @return true if binding warnings are enabled, false otherwise.
+      */
+     boolean showBindingWarnings();
+
+     /**
+      * Returns whether deprecation warnings are enabled.
+      * 
+      * If deprecation warning are enabled, then warnings generated from the use of 
+      * deprecated APIs are displayed.
+      * 
+      * @return true if deprecation warnings are enabled, false otherwise.
+      */
+     boolean showDeprecationWarnings();
+
+     /**
+      * Returns whether unused type selector warnings are enabled.
+      * 
+      * If unused type selector warnings are enabled, then warnings generated from 
+      * unused type selectors are displayed.
+      * 
+      * @return true if unused type selector warnings are enabled, false otherwise.
+      */
+     boolean showUnusedTypeSelectorWarnings();
+     
+     /**
+      * Returns whether multiple definition warnings are enabled.
+      *
+      * @return true if multiple definition warnings are enabled, false otherwise.
+      */
+     boolean showMultipleDefinitionWarnings();
+     
+     /**
+      * Returns true if the compiler should run in strict error checking mode.
+      * 
+      * In strict mode the compiler reports undefined property and function calls. 
+      * The compiler also performs type checking on assignments and options 
+      * supplied to method calls.
+      * 
+      * @return true if strict error check mode is enabled, false otherwise.
+      */
+     boolean isStrict();
+     
+     /**
+      * A collection of problem classes that should be report as errors. 
+      * This list overrides the default settings.
+      * 
+      * @return collection of classes that should be reported as errors.
+      */
+     Collection<Class<ICompilerProblem>> getErrorProblems();
+     
+     
+     /**
+      * A collection of problem classes that should be report as warnings. 
+      * This list overrides the default settings.
+      * 
+      * @return collection of classes that should be reported as warnings.
+      */
+     Collection<Class<ICompilerProblem>> getWarningProblems();
+     
+     /**
+      * A collection of problem classes that should not be reported. 
+      * This list overrides the default settings.
+      * 
+      * @return collection of classes that should be ignored.
+      */
+     Collection<Class<ICompilerProblem>> getIgnoreProblems();
+     
+     /**
+      * Returns whether checking of a type ActionScript warning is enabled.
+      * The kinds of warnings are:
+      * 
+      * <pre>
+      * --compiler.warn-array-tostring-changes
+      * --compiler.warn-assignment-within-conditional
+      * --compiler.warn-bad-array-cast
+      * --compiler.warn-bad-bool-assignment
+      * --compiler.warn-bad-date-cast
+      * --compiler.warn-bad-es3-type-method
+      * --compiler.warn-bad-es3-type-prop
+      * --compiler.warn-bad-nan-comparison
+      * --compiler.warn-bad-null-assignment
+      * --compiler.warn-bad-null-comparison
+      * --compiler.warn-bad-undefined-comparison
+      * --compiler.warn-boolean-constructor-with-no-args
+      * --compiler.warn-changes-in-resolve
+      * --compiler.warn-class-is-sealed
+      * --compiler.warn-const-not-initialized
+      * --compiler.warn-constructor-returns-value
+      * --compiler.warn-deprecated-event-handler-error
+      * --compiler.warn-deprecated-function-error
+      * --compiler.warn-deprecated-property-error
+      * --compiler.warn-duplicate-argument-names
+      * --compiler.warn-duplicate-variable-def
+      * --compiler.warn-for-var-in-changes
+      * --compiler.warn-import-hides-class
+      * --compiler.warn-instance-of-changes
+      * --compiler.warn-internal-error
+      * --compiler.warn-level-not-supported
+      * --compiler.warn-missing-namespace-decl
+      * --compiler.warn-negative-uint-literal
+      * --compiler.warn-no-constructor
+      * --compiler.warn-no-explicit-super-call-in-constructor
+      * --compiler.warn-no-type-decl
+      * --compiler.warn-number-from-string-changes
+      * --compiler.warn-scoping-change-in-this
+      * --compiler.warn-slow-text-field-addition
+      * --compiler.warn-unlikely-function-value
+      * --compiler.warn-xml-class-has-changed
+      * </pre>
+      * 
+      * @param warningCode warning code, one of:
+      * <p>
+      * <ul>
+      * <li> WARN_ARRAY_TOSTRING_CHANGES
+      * <li> WARN_ASSIGNMENT_WITHIN_CONDITIONAL
+      * <li> WARN_BAD_ARRAY_CAST
+      * <li> WARN_BAD_BOOLEAN_ASSIGNMENT
+      * <li> WARN_BAD_DATE_CAST
+      * <li> WARN_BAD_ES3_TYPE_METHOD
+      * <li> WARN_BAD_ES3_TYPE_PROP
+      * <li> WARN_BAD_NAN_COMPARISON
+      * <li> WARN_BAD_NULL_ASSIGNMENT
+      * <li> WARN_BAD_NULL_COMPARISON
+      * <li> WARN_BAD_UNDEFINED_COMPARISON
+      * <li> WARN_BOOLEAN_CONSTRUCTOR_WITH_NO_ARGS
+      * <li> WARN_CHANGES_IN_RESOLVE
+      * <li> WARN_CLASS_IS_SEALED
+      * <li> WARN_CONST_NOT_INITIALIZED
+      * <li> WARN_CONSTRUCTOR_RETURNS_VALUE
+      * <li> WARN_DEPRECATED_EVENT_HANDLER_ERROR
+      * <li> WARN_DEPRECATED_FUNCTION_ERROR
+      * <li> WARN_DEPRECATED_PROPERTY_ERROR
+      * <li> WARN_DUPLICATE_ARGUMENT_NAMES
+      * <li> WARN_DUPLICATE_VARIABLE_DEF
+      * <li> WARN_FOR_VAR_IN_CHANGES
+      * <li> WARN_IMPORT_HIDES_CLASS
+      * <li> WARN_INSTANCEOF_CHANGES
+      * <li> WARN_INTERNAL_ERROR
+      * <li> WARN_LEVEL_NOT_SUPPORTED
+      * <li> WARN_MISSING_NAMESPACE_DECL
+      * <li> WARN_NEGATIVE_UINT_LITERAL
+      * <li> WARN_NO_CONSTRUCTOR
+      * <li> WARN_NO_EXPLICIT_SUPER_CALL_IN_CONSTRUCTOR
+      * <li> WARN_NO_TYPE_DECL
+      * <li> WARN_NUMBER_FROM_STRING_CHANGES
+      * <li> WARN_SCOPING_CHANGE_IN_THIS
+      * <li> WARN_SLOW_TEXTFIELD_ADDITION
+      * <li> WARN_UNLIKELY_FUNCTION_VALUE
+      * <li> WARN_XML_CLASS_HAS_CHANGED
+      * </ul>
+      * </p>
+      */
+     boolean checkActionScriptWarning(int warningCode);
+
+     /**
+      * Determines if any warnings are shown. This is the master warning flag
+      * that overrides all other warning options.
+      * 
+      * @return true if warnings should be shown, false otherwise.
+      */
+     boolean showWarnings();
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerSettingsConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerSettingsConstants.java b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerSettingsConstants.java
new file mode 100644
index 0000000..92c4168
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/config/ICompilerSettingsConstants.java
@@ -0,0 +1,151 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.config;
+
+/**
+ * Constants for the compiler's command line options.
+ */
+public interface ICompilerSettingsConstants
+{
+    static final String USE_NETWORK                                          = "--use-network";
+    static final String RUNTIME_SHARED_LIBRARIES                             = "--runtime-shared-libraries";
+    static final String RAW_METADATA                                         = "--raw-metadata";
+    static final String PROJECTOR                                            = "--projector";
+    static final String METADATA_PUBLISHER                                   = "--metadata.publisher";
+    static final String METADATA_LANGUAGE                                    = "--metadata.language";
+    static final String METADATA_LOCALIZED_TITLE                             = "--metadata.localized-title";
+    static final String METADATA_LOCALIZED_DESCRIPTION                       = "--metadata.localized-description";
+    static final String METADATA_DATE                                        = "--metadata.date";
+    static final String METADATA_CREATOR                                     = "--metadata.creator";
+    static final String METADATA_CONTRIBUTOR                                 = "--metadata.contributor";
+    static final String LINK_REPORT                                          = "--link-report";
+    static final String SIZE_REPORT                                          = "--size-report";
+    static final String LICENSES_LICENSE                                     = "--licenses.license";
+    static final String INCLUDES                                             = "--includes";
+    static final String INCLUDE_RESOURCE_BUNDLES                             = "--include-resource-bundles";
+    static final String FLEX                                                 = "--flex";
+    static final String FRAMES_FRAME                                         = "--frames.frame";
+    static final String LOAD_EXTERNS                                         = "--load-externs";
+    static final String LOAD_CONFIG                                          = "--load-config";
+    static final String EXTERNS                                              = "--externs";
+    static final String DEFAULT_SIZE                                         = "--default-size";
+    static final String DEFAULT_SCRIPT_LIMITS                                = "--default-script-limits";
+    static final String DEFAULT_FRAME_RATE                                   = "--default-frame-rate";
+    static final String DEFAULT_BACKGROUND_COLOR                             = "--default-background-color";
+    static final String DEBUG_PASSWORD                                       = "--debug-password";
+    static final String SWF_VERSION                                          = "--swf-version";
+    static final String COMPILER_WARN_XML_CLASS_HAS_CHANGED                  = "--compiler.warn-xml-class-has-changed";
+    static final String COMPILER_WARN_UNLIKELY_FUNCTION_VALUE                = "--compiler.warn-unlikely-function-value";
+    static final String COMPILER_WARN_SLOW_TEXT_FIELD_ADDITION               = "--compiler.warn-slow-text-field-addition";
+    static final String COMPILER_WARN_SCOPING_CHANGE_IN_THIS                 = "--compiler.warn-scoping-change-in-this";
+    static final String COMPILER_WARN_NUMBER_FROM_STRING_CHANGES             = "--compiler.warn-number-from-string-changes";
+    static final String COMPILER_WARN_NO_TYPE_DECL                           = "--compiler.warn-no-type-decl";
+    static final String COMPILER_WARN_NO_EXPLICIT_SUPER_CALL_IN_CONSTRUCTOR  = "--compiler.warn-no-explicit-super-call-in-constructor";
+    static final String COMPILER_WARN_NO_CONSTRUCTOR                         = "--compiler.warn-no-constructor";
+    static final String COMPILER_WARN_NEGATIVE_UINT_LITERAL                  = "--compiler.warn-negative-uint-literal";
+    static final String COMPILER_WARN_MISSING_NAMESPACE_DECL                 = "--compiler.warn-missing-namespace-decl";
+    static final String COMPILER_WARN_LEVEL_NOT_SUPPORTED                    = "--compiler.warn-level-not-supported";
+    static final String COMPILER_WARN_INTERNAL_ERROR                         = "--compiler.warn-internal-error";
+    static final String COMPILER_WARN_INSTANCE_OF_CHANGES                    = "--compiler.warn-instance-of-changes";
+    static final String COMPILER_WARN_IMPORT_HIDES_CLASS                     = "--compiler.warn-import-hides-class";
+    static final String COMPILER_WARN_FOR_VAR_IN_CHANGES                     = "--compiler.warn-for-var-in-changes";
+    static final String COMPILER_WARN_DUPLICATE_VARIABLE_DEF                 = "--compiler.warn-duplicate-variable-def";
+    static final String COMPILER_WARN_DUPLICATE_ARGUMENT_NAMES               = "--compiler.warn-duplicate-argument-names";
+    static final String COMPILER_WARN_DEPRECATED_PROPERTY_ERROR              = "--compiler.warn-deprecated-property-error";
+    static final String COMPILER_WARN_DEPRECATED_FUNCTION_ERROR              = "--compiler.warn-deprecated-function-error";
+    static final String COMPILER_WARN_DEPRECATED_EVENT_HANDLER_ERROR         = "--compiler.warn-deprecated-event-handler-error";
+    static final String COMPILER_WARN_CONSTRUCTOR_RETURNS_VALUE              = "--compiler.warn-constructor-returns-value";
+    static final String COMPILER_WARN_CONST_NOT_INITIALIZED                  = "--compiler.warn-const-not-initialized";
+    static final String COMPILER_WARN_CLASS_IS_SEALED                        = "--compiler.warn-class-is-sealed";
+    static final String COMPILER_WARN_CHANGES_IN_RESOLVE                     = "--compiler.warn-changes-in-resolve";
+    static final String COMPILER_WARN_BOOLEAN_CONSTRUCTOR_WITH_NO_ARGS       = "--compiler.warn-boolean-constructor-with-no-args";
+    static final String COMPILER_WARN_BAD_UNDEFINED_COMPARISON               = "--compiler.warn-bad-undefined-comparison";
+    static final String COMPILER_WARN_BAD_NULL_COMPARISON                    = "--compiler.warn-bad-null-comparison";
+    static final String COMPILER_WARN_BAD_NULL_ASSIGNMENT                    = "--compiler.warn-bad-null-assignment";
+    static final String COMPILER_WARN_BAD_NAN_COMPARISON                     = "--compiler.warn-bad-nan-comparison";
+    static final String COMPILER_WARN_BAD_ES3_TYPE_PROP                      = "--compiler.warn-bad-es3-type-prop";
+    static final String COMPILER_WARN_BAD_ES3_TYPE_METHOD                    = "--compiler.warn-bad-es3-type-method";
+    static final String COMPILER_WARN_BAD_DATE_CAST                          = "--compiler.warn-bad-date-cast";
+    static final String COMPILER_WARN_BAD_BOOL_ASSIGNMENT                    = "--compiler.warn-bad-bool-assignment";
+    static final String COMPILER_WARN_BAD_ARRAY_CAST                         = "--compiler.warn-bad-array-cast";
+    static final String COMPILER_WARN_ASSIGNMENT_WITHIN_CONDITIONAL          = "--compiler.warn-assignment-within-conditional";
+    static final String COMPILER_WARN_ARRAY_TOSTRING_CHANGES                 = "--compiler.warn-array-tostring-changes";
+    static final String COMPILER_VERBOSE_STACKTRACES                         = "--compiler.verbose-stacktraces";
+    static final String COMPILER_USE_RESOURCE_BUNDLE_METADATA                = "--compiler.use-resource-bundle-metadata";
+    static final String COMPILER_THEME                                       = "--compiler.theme";
+    static final String COMPILER_STRICT                                      = "--compiler.strict";
+    static final String COMPILER_SOURCE_PATH                                 = "--compiler.source-path";
+    static final String COMPILER_SHOW_UNUSED_TYPE_SELECTOR_WARNINGS          = "--compiler.show-unused-type-selector-warnings";
+    static final String COMPILER_SHOW_DEPRECATION_WARNINGS                   = "--compiler.show-deprecation-warnings";
+    static final String COMPILER_SHOW_BINDING_WARNINGS                       = "--compiler.show-binding-warnings";
+    static final String COMPILER_SHOW_ACTIONSCRIPT_WARNINGS                  = "--compiler.show-actionscript-warnings";
+    static final String COMPILER_SERVICES                                    = "--compiler.services";
+    static final String COMPILER_OPTIMIZE                                    = "--compiler.optimize";
+    static final String COMPILER_NAMESPACES_NAMESPACE                        = "--compiler.namespaces.namespace";
+    static final String COMPILER_MOBILE                                      = "--compiler.mobile";
+    static final String COMPILER_LOCALE                                      = "--compiler.locale";
+    static final String COMPILER_LIBRARY_PATH                                = "--compiler.library-path";
+    static final String COMPILER_INCLUDE_LIBRARIES                           = "--compiler.include-libraries";
+    static final String COMPILER_KEEP_GENERATED_ACTIONSCRIPT                 = "--compiler.keep-generated-actionscript";
+    static final String COMPILER_KEEP_AS3_METADATA                           = "--compiler.keep-as3-metadata";
+    static final String COMPILER_KEEP_ALL_TYPE_SELECTORS                     = "--compiler.keep-all-type-selectors";
+    static final String COMPILER_HEADLESS_SERVER                             = "--compiler.headless-server";
+    static final String COMPILER_EXTERNAL_LIBRARY_PATH                       = "--compiler.external-library-path";
+    static final String COMPILER_ES                                          = "--compiler.es";
+    static final String COMPILER_DEFAULTS_CSS_URL                            = "--compiler.defaults-css-url";
+    static final String COMPILER_DEBUG                                       = "--compiler.debug";
+    static final String COMPILER_COMPRESS                                    = "--compiler.compress";
+    static final String COMPILER_CONTEXT_ROOT                                = "--compiler.context-root";
+    static final String COMPILER_AS3                                         = "--compiler.as3";
+    static final String COMPILER_ALLOW_SOURCE_PATH_OVERLAP                   = "--compiler.allow-source-path-overlap";
+    static final String COMPILER_ACTIONSCRIPT_FILE_ENCODING                  = "--compiler.actionscript-file-encoding";
+    static final String COMPILER_ACCESSIBLE                                  = "--compiler.accessible";
+    static final String TARGET_PLAYER                                        = "--target-player";
+    static final String RUNTIME_SHARED_LIBRARY_PATH                          = "--runtime-shared-library-path";
+    static final String VERIFY_DIGESTS                                       = "--verify-digests";
+    static final String COMPILER_COMPUTE_DIGEST                              = "--compute-digest";
+    static final String COMPILER_DEFINE                                      = "--compiler.define";
+    static final String COMPILER_MXML_COMPATIBILITY                          = "--compiler.mxml.compatibility-version";
+    static final String COMPILER_EXTENSIONS                                  = "--compiler.extensions.extension";
+    static final String REMOVE_UNUSED_RSLS                                   = "--remove-unused-rsls";
+    static final String RUNTIME_SHARED_LIBRARY_SETTINGS_FORCE_RSLS           = "--runtime-shared-library-settings.force-rsls";
+    static final String RUNTIME_SHARED_LIBRARY_SETTINGS_APPLICATION_DOMAIN   = "--runtime-shared-library-settings.application-domain";
+    static final String OUTPUT                                               = "--output";
+    static final String STATIC_LINK_RUNTIME_SHARED_LIBRARIES                 = "--static-link-runtime-shared-libraries";
+    static final String COMPILER_SHOW_MULTIPLE_DEFINITION_WARNINGS           = "--show-multiple-definition-warnings";
+
+    // 
+    // Library Settings
+    //
+    static final String INCLUDE_CLASSES                                      = "--include-classes";
+    static final String INCLUDE_FILE                                         = "--include-file";
+    static final String INCLUDE_INHERITANCE_DEPENDENCIES_ONLY                = "--include-inheritance-dependencies-only";
+    static final String INCLUDE_LOOKUP_ONLY                                  = "--include-lookup-only";
+    static final String INCLUDE_NAMESPACES                                   = "--include-namespaces";
+    static final String INCLUDE_SOURCES                                      = "--include-sources";
+    static final String INCLUDE_STYLESHEET                                   = "--include-stylesheet";
+    
+    // Setting options without the "--" separator.
+    // These are used to set and get vars from the ConfigurationBuffer.
+    static final String DUMP_CONFIG_VAR                                      = "dump-config";    
+    static final String FILE_SPECS_VAR                                       = "file-specs";
+    static final String INCLUDE_CLASSES_VAR                                 = "include-classes";
+    static final String OUTPUT_VAR                                           = "output";
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/config/RSLSettings.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/config/RSLSettings.java b/compiler/src/main/java/org/apache/flex/compiler/config/RSLSettings.java
new file mode 100644
index 0000000..7d827fd
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/config/RSLSettings.java
@@ -0,0 +1,233 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.config;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.flex.compiler.filespecs.IFileSpecification;
+
+/**
+ * The runtime RSL settings for a given library. The specified library will 
+ * have all of its symbols removed from the application. The runtime RSL
+ * settings are written in the root class of the application and read in 
+ * frame1 of application.
+ */
+public class RSLSettings
+{
+    /**
+     * A RSL URL and a policy file URL.
+     */
+    public static class RSLAndPolicyFileURLPair
+    {
+        /**
+         * Create a new RSL URL and Policy File URL pair.
+         * 
+         * @param rslURL THe URL of the runtime shared library.
+         * @param policyFileURL The URL of the policy file.
+         */
+        public RSLAndPolicyFileURLPair(String rslURL, String policyFileURL)
+        {
+            this.rslURL = rslURL;
+            this.policyFileURL = policyFileURL;
+        }
+
+        private String rslURL;
+        private String policyFileURL;
+        
+        /**
+         * @return the url of the RSL to load.
+         */
+        public String getRSLURL()
+        {
+            return rslURL;
+        }
+
+        /**
+         * @return the url of the policy file.
+         */
+        public String getPolicyFileURL()
+        {
+            return policyFileURL;
+        }
+    }
+
+    /**
+     * The extension given to a signed RLS that is assumed to be signed.
+     * Unsigned RSLs should use the standard "swf" extension.
+     */
+    private static final String SIGNED_RSL_URL_EXTENSION = "swz";
+    private static final String SIGNED_RSL_URL_DOT_EXTENSION = "." + SIGNED_RSL_URL_EXTENSION;
+    
+    /**
+     * Test if the url is a signed RSL. Signed RSL have a .swz extension.
+     * 
+     * @param url url to test, the file specified by the url does not 
+     *            need to exist.
+     * @return true if the url specifies a signed rsl, false otherwise.
+     */
+    public static boolean isSignedRSL(String url)
+    {
+        if (url == null)
+            return false;
+        
+        return url.endsWith(SIGNED_RSL_URL_DOT_EXTENSION);
+    }
+
+    /**
+     * Create RSLSettings with:
+     *  - a default {@link ApplicationDomainTarget}
+     *  - verify digest set to true 
+     *  
+     *  @param libraryFile the library whose classes will be removed
+     *  from the application. May not be null.
+     *  @throws NullPointerException if libraryFile is null.
+     */
+    RSLSettings(IFileSpecification libraryFile)
+    {
+        if (libraryFile == null)
+            throw new NullPointerException("libraryFile may not be null");
+        
+        this.libraryFile = new File(libraryFile.getPath());
+        rslURLs = new ArrayList<RSLAndPolicyFileURLPair>();
+        setApplicationDomain(ApplicationDomainTarget.DEFAULT);
+        setVerifyDigest(true);
+    }
+
+    /**
+     * Create RSLSettings with:
+     *  - a default {@link ApplicationDomainTarget}
+     *  - verify digest set to true 
+     *  
+     *  @param libraryFile the library whose classes will be removed
+     *  from the application. May not be null.
+     *  @throws NullPointerException if libraryFile is null.
+     */
+    public RSLSettings(File libraryFile)
+    {
+        if (libraryFile == null)
+            throw new NullPointerException("libraryFile may not be null");
+        
+        this.libraryFile = libraryFile;
+        rslURLs = new ArrayList<RSLAndPolicyFileURLPair>();
+        setApplicationDomain(ApplicationDomainTarget.DEFAULT);
+        setVerifyDigest(true);
+    }
+
+    private File libraryFile;   // the library whose definitions are externed
+    private List<RSLAndPolicyFileURLPair> rslURLs; // list of rsls and failovers
+    private ApplicationDomainTarget applicationDomain;  
+    private boolean verifyDigest;   // if true the digest will be verified at runtime
+    private boolean forceLoad;      // true if the RSL should be forced to load regardless of its use
+    
+    /**
+     * @return true if the RSL should be force loaded, false otherwise.
+     */
+    public boolean isForceLoad()
+    {
+        return forceLoad;
+    }
+
+    /**
+     * Sets a flag on the RSL so the compiler is not allowed to remove it when
+     * the "remove unused RSLs" feature is on. 
+     * 
+     * @param forceLoad true to force the RSL to be loaded at runtime, false otherwise.
+     */
+    public void setForceLoad(boolean forceLoad)
+    {
+        this.forceLoad = forceLoad;
+    }
+
+    /**
+     * @return a List of {@link RSLAndPolicyFileURLPair}
+     */
+    public List<RSLAndPolicyFileURLPair> getRSLURLs()
+    {
+        return rslURLs;
+    }
+
+    /**
+     * Add a new RSL URL and Policy file URL. This first pair is the primary
+     * RSL and the following RSLs are failover RSLs.
+     * 
+     * @param rslURL A String representing the URL to load the RSL from. May
+     * not be null. 
+     * @param policyFileURL A String representing the URL to load a policy file
+     * from. This is optional and may be null to indicate there is no policy 
+     * file.
+     * @throws NullPointerException if rslURL is null.
+     */
+    public void addRSLURLAndPolicyFileURL(String rslURL, String policyFileURL)
+    {
+       if (rslURL == null)
+           throw new NullPointerException("rslURL may not be null");
+       
+       rslURLs.add(new RSLAndPolicyFileURLPair(rslURL, policyFileURL)); 
+    }
+    
+    /**
+     * @return the libraryFile
+     */
+    public File getLibraryFile()
+    {
+        return libraryFile;
+    }
+
+    /**
+     * @param applicationDomain the new value of the applicationDomain.
+     */
+    public void setApplicationDomain(ApplicationDomainTarget applicationDomain)
+    {
+        this.applicationDomain = applicationDomain;
+    }
+
+    /**
+     * One of {@link ApplicationDomainTarget} that control which domain an RSL
+     * is loaded into.
+     * 
+     * @return the applicationDomain
+     */
+    public ApplicationDomainTarget getApplicationDomain()
+    {
+        return applicationDomain;
+    }
+
+    /**
+     * Change the value of the verify digests flag.
+     * 
+     * @param verifyDigest The new value of the verify digests flag.
+     */
+    public void setVerifyDigest(boolean verifyDigest)
+    {
+        this.verifyDigest = verifyDigest;
+    }
+
+    /**
+     * @return if true, the RSL's digest must be verified at runtime.
+     */
+    public boolean getVerifyDigest()
+    {
+        return verifyDigest;
+    }
+    
+    
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/config/package.html
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/config/package.html b/compiler/src/main/java/org/apache/flex/compiler/config/package.html
new file mode 100644
index 0000000..dc55a97
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/config/package.html
@@ -0,0 +1,39 @@
+<!--
+
+  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.
+
+-->
+
+<html>
+<body>
+
+This package contains classes and interfaces related to the configuration subsystem.
+
+<p>
+The configuration subsystem handles reading options from the command line,
+from configuration files like <code>flex-config.xml</code>,
+and from in-memory buffers.
+It is mostly legacy code from the original <code>mxmlc</code> compiler,
+with some simplifications.
+</p>
+
+<p>
+This package also contains the common configuration options, defaults,
+and path resolver classes.
+</p>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/IASKeywordConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IASKeywordConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IASKeywordConstants.java
new file mode 100644
index 0000000..5f77c0e
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IASKeywordConstants.java
@@ -0,0 +1,155 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * Collection of keywords in the ActionScript 3 language
+ */
+public interface IASKeywordConstants
+{
+    static final String AS = "as";
+    static final String BREAK = "break";
+    static final String CASE = "case";
+    static final String CATCH = "catch";
+    static final String CLASS = "class";
+    static final String CONFIG = "config";
+    static final String CONST = "const";
+    static final String CONTINUE = "continue";
+    static final String DELETE = "delete";
+    static final String DEFAULT = "default";
+    static final String DEFAULT_XML_NAMESPACE = "default xml namespace";
+    static final String DO = "do";
+    static final String DYNAMIC = "dynamic";
+    static final String ELSE = "else";
+    static final String EXTENDS = "extends";
+    static final String FALSE = "false";
+    static final String FINAL = "final";
+    static final String FINALLY = "finally";
+    static final String FOR = "for";
+    static final String EACH = "each";
+    static final String FUNCTION = "function";
+    static final String GOTO = "goto";
+    static final String GET = "get";
+    static final String IF = "if";
+    static final String IMPLEMENTS = "implements";
+    static final String IMPORT = "import";
+    static final String IN = "in";
+    static final String INTERNAL = "internal";
+    static final String INCLUDE = "include";
+    static final String INTERFACE = "interface";
+    static final String INSTANCEOF = "instanceof";
+    static final String IS = "is";
+    static final String NA_N = "NaN";
+    static final String NAMESPACE = "namespace";
+    static final String NATIVE = "native";
+    static final String NEW = "new";
+    static final String NULL = "null";
+    static final String OVERRIDE = "override";
+    static final String PACKAGE = "package";
+    static final String PRIVATE = "private";
+    static final String PROTECTED = "protected";
+    static final String PUBLIC = "public";
+    static final String SET = "set";
+    static final String STATIC = "static";
+    static final String SUPER = "super";
+    static final String RETURN = "return";
+    static final String SWITCH = "switch";
+    static final String THIS = "this";
+    static final String TRUE = "true";
+    static final String TRY = "try";
+    static final String THROW = "throw";
+    static final String TYPEOF = "typeof";
+    static final String USE = "use";
+    static final String VAR = "var";
+    static final String VIRTUAL = "virtual";
+    static final String VOID = "void";
+    static final String WHILE = "while";
+    static final String WITH = "with";
+
+    /**
+     * A list of all the keywords found in the AS3 language
+     */
+    static final String[] KEYWORDS = new String[]
+    {
+        AS,
+        BREAK,
+        CASE,
+        CATCH,
+        CLASS,
+        CONFIG,
+        CONST,
+        CONTINUE,
+        DELETE,
+        DEFAULT,
+        DO,
+        DYNAMIC,
+        ELSE,
+        EXTENDS,
+        FALSE,
+        FINAL,
+        FINALLY,
+        FOR,
+        EACH,
+        FUNCTION,
+        GET,
+        IF,
+        IMPLEMENTS,
+        IMPORT,
+        IN,
+        INTERNAL,
+        INCLUDE,
+        INTERFACE,
+        INSTANCEOF,
+        IS,
+        NA_N,
+        NAMESPACE,
+        NATIVE,
+        NEW,
+        NULL,
+        OVERRIDE,
+        PACKAGE,
+        PUBLIC,
+        PRIVATE,
+        PROTECTED,
+        SET,
+        STATIC,
+        SUPER,
+        RETURN,
+        SWITCH,
+        THIS,
+        TRUE,
+        TRY,
+        THROW,
+        TYPEOF,
+        USE,
+        VAR,
+        VIRTUAL,
+        VOID,
+        WHILE,
+        WITH
+    };
+
+    /**
+     * An immutable set of keywords found within the the AS3 language
+     */
+    static final ImmutableSet<String> KEYWORD_SET = ImmutableSet.copyOf(KEYWORDS);
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/IASLanguageConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IASLanguageConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IASLanguageConstants.java
new file mode 100644
index 0000000..02a7760
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IASLanguageConstants.java
@@ -0,0 +1,153 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * AS3 types and constants found within the AS3 language, such as constants for
+ * Object, etc.
+ */
+public interface IASLanguageConstants
+{
+	// ActionScript data types
+    static final String ApplicationDomain = "flash.system.ApplicationDomain"; 
+	static final String Array = "Array"; 
+	static final String Boolean = "Boolean"; 
+    static final String Capabilities = "flash.system.Capabilities"; 
+	static final String Class = "Class"; 
+	static final String Date = "Date"; 
+	static final String Dictionary = "flash.utils.Dictionary"; 
+	static final String Error = "Error"; 
+	/** {@code [Exclude(kind="style" name="foo")]} */
+	static final String EXCLUDE_META_TAG = "Exclude"; 
+	static final String EXCLUDE_META_TAG_KIND = "kind"; 
+	static final String EXCLUDE_META_TAG_NAME = "name"; 
+	static final String EXCLUDE_META_TAG_STYLE = "style"; 
+	static final String Event = "flash.events.Event"; 
+	static final String EventDispatcher = "flash.events.EventDispatcher"; 
+	static final String Function = "Function";
+	static final String getClassByAlias = "flash.net.getClassByAlias"; 
+	static final String getDefinitionByName = "flash.utils.getDefinitionByName"; 
+	static final String IEventDispatcher = "flash.events.IEventDispatcher"; 
+	static final String _int = "int"; 
+    static final String Namespace = "Namespace"; 
+    static final String Number = "Number"; 
+    static final String Null = "Null"; 
+	static final String Object = "Object"; 
+	static final String QName = "QName"; 
+    static final String registerClassAlias = "flash.net.registerClassAlias"; 
+    static final String Sprite = "flash.display.Sprite"; 
+	static final String String = "String"; 
+	static final String uint = "uint"; 
+    static final String Undefined = "Undefined";
+	static final String Vector = "Vector"; 
+	static final String Vector_double = "Vector$double"; 
+	static final String Vector_int = "Vector$int"; 
+	static final String Vector_object = "Vector$object"; 
+	static final String Vector_uint = "Vector$uint"; 
+	static final String XML = "XML"; 
+	static final String XMLList = "XMLList"; 
+	static final String RegExp = "RegExp"; 
+	
+	static final String void_ = "void"; 
+	static final String ANY_TYPE = "*"; 
+	static final String REST = "..."; 
+	static final String REST_IDENTIFIER = "rest"; 
+    static final String NULL = "null"; 
+    static final String UNDEFINED = "undefined";
+    static final String arguments = "arguments"; 
+    
+    static final String Vector_impl_package = "__AS3__.vec"; 
+    static final String Vector_qname = (Vector_impl_package + "." + Vector).intern(); 
+    
+    static final String TRUE = "true"; 
+    static final String FALSE = "false"; 
+
+    /**
+     * Default name always available for conditional compilation 
+     */
+    static final String DEFAULT_CONFIG_NAME = "CONFIG"; 
+	
+	/**
+	 * An enumeration of core built-in types.
+	 */
+	static enum BuiltinType
+	{
+	    ANY_TYPE(IASLanguageConstants.ANY_TYPE),
+	    ARRAY(IASLanguageConstants.Array),
+	    BOOLEAN(IASLanguageConstants.Boolean),
+	    CLASS(IASLanguageConstants.Class),
+	    FUNCTION(IASLanguageConstants.Function),
+	    INT(IASLanguageConstants._int),
+        NAMESPACE(IASLanguageConstants.Namespace),
+        NULL(IASLanguageConstants.Null),
+        NUMBER(IASLanguageConstants.Number),
+	    OBJECT(IASLanguageConstants.Object),
+	    QNAME(IASLanguageConstants.QName),
+        REGEXP(IASLanguageConstants.RegExp),
+	    STRING(IASLanguageConstants.String),
+	    
+	    /** 
+	     * This is a built-in "pseudo type" : the "undefined class"
+	     * It is NOT the value whose qname is "undefined".
+	     * 
+	     * Having a fake build int type to represent a class that we can't resolve
+	     * may not have been the best choice here (according to Chris B).
+	     * 
+	     * Here we are explicitly not using the normal convention of all upper case for ENUM names,
+	     * in order to try and minimize confusion with our two different undefined definitions.
+	     */
+        Undefined(IASLanguageConstants.Undefined),  
+        UINT(IASLanguageConstants.uint),
+	    VECTOR(IASLanguageConstants.Vector), 
+	    VOID(IASLanguageConstants.void_),
+	    XML(IASLanguageConstants.XML),
+	    XMLLIST(IASLanguageConstants.XMLList);
+	    
+        private BuiltinType(String name)
+        {
+           this.name = name;
+        }
+        
+        private final String name;
+        
+        public String getName()
+        {
+            return name;
+        }
+	}
+	
+	/**
+	 * Dynamic type names.
+	 */
+	static final ImmutableSet<String> DYNAMIC_TYPES_SET = 
+	    ImmutableSet.of(Array, Class, Object, Function, ANY_TYPE);
+	
+	/**
+	 * Name of the core AS3 language SWC for the web
+	 */
+	static final String PLAYERGLOBAL_SWC = "playerglobal.swc"; 
+	
+	/**
+	 * Name of the core AS3 language SWC for the desktop
+	 */
+	static final String AIRGLOBAL_SWC = "airglobal.swc"; 
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/IASWarningConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IASWarningConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IASWarningConstants.java
new file mode 100644
index 0000000..ab09b37
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IASWarningConstants.java
@@ -0,0 +1,212 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+/**
+ * Constants for ActionScript warnings. The constants are using to 
+ * enable and disable the various warnings in the ActionScript
+ * compiler.
+ */
+public interface IASWarningConstants
+{
+    /**
+     * <code>Array.toString()</code> format has changed.
+     */
+    static final int ARRAY_TO_STRING_CHANGES = 1044;
+
+    /**
+     * Assignment within conditional.
+     */
+    static final int ASSIGNMENT_WITHIN_CONDITIONAL = 1100;
+
+    /**
+     * Possibly invalid Array cast operation.
+     */
+    static final int BAD_ARRAY_CAST = 1112;
+
+    /**
+     * Non-Boolean value used where a <code>Boolean</code> value was expected.
+     */
+    static final int BAD_BOOLEAN_ASSIGNMENT = 3590;
+
+    /**
+     * Invalid <code>Date</code> cast operation.
+     */
+    static final int BAD_DATE_CAST = 3575;
+
+    /**
+     * Unknown method.
+     */
+    static final int BAD_ES3_TYPE_METHOD = 3594;
+
+    /**
+     * Unknown property.
+     */
+    static final int BAD_ES3_TYPE_PROP = 3592;
+
+    /**
+     * Illogical comparison with <code>NaN</code>. Any comparison operation involving <code>NaN</code> will evaluate to <code>false</code> because <code>NaN != NaN</code>.
+     */
+    static final int BAD_NAN_COMPARISON = 1098;
+
+    /**
+     * Impossible assignment to <code>null</code>.
+     */
+    static final int BAD_NULL_ASSIGNMENT = 1102;
+
+    /**
+     * Illogical comparison with <code>null</code>.
+     */
+    static final int BAD_NULL_COMPARISON = 1096;
+
+    /**
+     * Illogical comparison with <code>undefined</code>.  Only untyped variables (or variables of type <code>*</code>) can be <code>undefined</code>.
+     */
+    static final int BAD_UNDEFINED_COMPARISON = 1012;
+
+    /**
+     * <code>Boolean()</code> with no arguments returns <code>false</code> in ActionScript 3.0.
+     * <code>Boolean()</code> returned <code>undefined</code> in ActionScript 2.0.
+     */
+    static final int BOOLEAN_CONSTRUCTOR_WITH_NO_ARGS = 1034;
+
+    /**
+     * <code>__resolve</code> is deprecated.
+     */
+    static final int CHANGES_IN_RESOLVE = 1066;
+
+    /**
+     * <code>Class</code> is sealed. It cannot have members added to it dynamically.
+     */
+    static final int CLASS_IS_SEALED = 1072;
+
+    /**
+     * Constant not initialized.
+     */
+    static final int CONST_NOT_INITIALIZED = 1110;
+
+    /**
+     * Function used in new expression returns a value.  Result will be what the function returns, rather than a new instance of that function.
+     */
+    static final int CONSTRUCTOR_RETURNS_VALUE = 1030;
+
+    /**
+     * EventHandler was not added as a listener.
+     */
+    static final int DEPRECATED_EVENT_HANDLER_ERROR = 1090;
+
+    /**
+     * Unsupported ActionScript 2.0 function.
+     */
+    static final int DEPRECATED_FUNCTION_ERROR = 1060;
+
+    /**
+     * Unsupported ActionScript 2.0 property.
+     */
+    static final int DEPRECATED_PROPERTY_ERROR = 1058;
+
+    /**
+     * More than one argument by the same name.
+     */
+    static final int DUPLICATE_ARGUMENT_NAMES = 3583;
+
+    /**
+     * Duplicate variable definition
+     */
+    static final int DUPLICATE_VARIABLE_DEF = 3596;
+
+    /**
+     * ActionScript 3.0 iterates over an object's properties within a "<code>for x in target</code>" statement in random order.
+     */
+    static final int FOR_VAR_IN_CHANGES = 1086;
+
+    /**
+     * Importing a package by the same name as the current class will hide that class identifier in this scope.
+     */
+    static final int IMPORT_HIDES_CLASS = 3581;
+
+    /**
+     * Use of the <code>instanceof</code> operator.
+     */
+    static final int INSTANCEOF_CHANGES = 3555;
+
+    /**
+     * Internal error in compiler.
+     */
+    static final int INTERNAL_ERROR = 1088;
+
+    /**
+     * <code>_level</code> is no longer supported. For more information, see the <code>flash.display</code> package.
+     */
+    static final int LEVEL_NOT_SUPPORTED = 1070;
+
+    /**
+     * Missing namespace declaration (e.g. variable is not defined to be <code>public</code>, <code>private</code>, etc.).
+     */
+    static final int MISSING_NAMESPACE_DECL = 1084;
+
+    /**
+     * Negative value will become a large positive value when assigned to a <code>uint</code> data type.
+     */
+    static final int NEGATIVE_UINT_LITERAL = 1092;
+
+    /**
+     * Missing constructor.
+     */
+    static final int NO_CONSTRUCTOR = 1104;
+
+    /**
+     * The <code>super()</code> statement was not called within the constructor.
+     */
+    static final int NO_EXPLICIT_SUPER_CALL_IN_CONSTRUCTOR = 1114;
+
+    /**
+     * Missing type declaration.
+     */
+    static final int NO_TYPE_DECL = 1008;
+
+    /**
+     * In ActionScript 3.0, white space is ignored and <code>''</code> returns <code>0</code>.
+     * <code>Number()</code> returns <code>NaN</code> in ActionScript 2.0 when the parameter is <code>''</code> or contains white space.
+     */
+    static final int NUMBER_FROM_STRING_CHANGES = 1038;
+
+    /**
+     * Change in scoping for the <code>this</code> keyword.
+     * Class methods extracted from an instance of a class will always resolve <code>this</code> back to that instance.
+     * In ActionScript 2.0, <code>this</code> is looked up dynamically based on where the method is invoked from.
+     */
+    static final int SCOPING_CHANGE_IN_THIS = 1082;
+
+    /**
+     * Inefficient use of <code>+=</code> on a <code>TextField</code>.
+     */
+    static final int SLOW_TEXTFIELD_ADDITION = 3551;
+
+    /**
+     * Possible missing parentheses.
+     */
+    static final int UNLIKELY_FUNCTION_VALUE = 3553;
+
+    /**
+     * Possible usage of the ActionScript 2.0 <code>XML</code> class.
+     */
+    static final int XML_CLASS_HAS_CHANGED = 3573;
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/ICSSCoreConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/ICSSCoreConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/ICSSCoreConstants.java
new file mode 100644
index 0000000..cdef98e
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/ICSSCoreConstants.java
@@ -0,0 +1,99 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+/**
+ * Collection of core constants for CSS handling within FLex
+ */
+public interface ICSSCoreConstants
+{
+	// CSS strings
+	static final String ClassReference = "ClassReference";
+	static final String Embed = "Embed";
+	static final String fontFace = "@font-face";
+	static final String namespace = "@namespace";
+	static final String at_import = "@import";
+	static final String at_media = "@media";
+	static final String source = "source";
+	static final String symbol = "symbol";
+	static final String skinClass = "skinClass";
+	static final String mediaType_all = "all";
+	static final String mediaType_screen = "screen";
+	static final String mediaFeature_application_dpi = "application-dpi";
+	static final String mediaFeature_os_platform = "os-platform";
+	static final String platform_Android = "\"Android\"";
+	static final String platform_IOS = "\"IOS\"";
+	static final String platform_Macintosh = "\"Macintosh\"";
+	static final String platform_Windows = "\"Windows\"";
+	static final String platform_Linux = "\"Linux\"";
+	static final String platform_QNX = "\"QNX\"";
+	static final String dpi_160 = "160";
+	static final String dpi_240 = "240";
+	static final String dpi_320 = "320";
+	
+	/**
+	 * This is needed because hypenated-to-camel converters cannot predict
+	 * that a property will have an acronym in it -- the compiler requires the
+	 * acronym to be cased correctly.
+	 */
+	static final String embedAsCFF_TRUE_CAMEL = "embedAsCff";
+	static final String embedAsCFF = "embedAsCFF";
+	
+	/**
+	 * All the available media types
+	 */
+	static String[] mediaTypes =
+	{
+		mediaType_all,
+		mediaType_screen
+	};
+	
+	/**
+	 * All the available media feature names
+	 */
+	static String[] mediaFeatureNames =
+	{
+		mediaFeature_application_dpi,
+		mediaFeature_os_platform
+	};
+	
+	/**
+	 * All the available media feature platforms
+	 */
+	static String[] featurePlatforms =
+	{
+		platform_Android,
+		platform_IOS,
+		platform_Linux,
+		platform_Macintosh,
+		platform_QNX,
+		platform_Windows
+	};
+	
+	/**
+	 * All the available media feature dpis
+	 */
+	static String[] featuresDpis =
+	{
+		dpi_160,
+		dpi_240,
+		dpi_320
+	};
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/IMXMLCoreConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IMXMLCoreConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IMXMLCoreConstants.java
new file mode 100644
index 0000000..a38aa6c
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IMXMLCoreConstants.java
@@ -0,0 +1,41 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+/**
+ * Core constants found within the MXML language syntax
+ */
+public interface IMXMLCoreConstants
+{
+	static final String FXG_URI = "http://ns.adobe.com/fxg/2008";
+
+	static final String cDataEnd = "]]>";
+	static final String commentEnd = "-->";
+	static final String xmlns = "xmlns";
+	static final String cDataStart = "<![CDATA[";
+	static final String commentStart = "<!--";
+	static final String comma = ",";
+	static final String dot = ".";
+	static final String slash = "/";
+	static final String emptyString = "";
+	static final String colon = ":";
+    static final String asDocStart =  "<!---";
+    static final String asDocEnd =  "-->";
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
new file mode 100644
index 0000000..14f7103
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/IMetaAttributeConstants.java
@@ -0,0 +1,221 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Constants used in metadata (e.g. <code>[Event(name="click")]</code>
+ * and compiler directives (e.g., <code>@Resource(bundle='foo', key='bar')<code>).
+ */
+public interface IMetaAttributeConstants
+{
+	// [AccessibilityClass]
+    static final String ATTRIBUTE_ACCESSIBIlITY_CLASS = "AccessibilityClass";
+    static final String NAME_ACCESSIBILITY_IMPLEMENTATION = "implementation";
+    
+    // [Alternative]
+    static final String ATTRIBUTE_ALTERNATIVE = "Alternative";
+    static final String NAME_ALTERNATIVE_REPLACEMENT = "replacement";
+    static final String NAME_ALTERNATIVE_SINCE = "since"; 
+    
+    // [ArrayElementType]
+    static final String ATTRIBUTE_ARRAYELEMENTTYPE = "ArrayElementType";
+    
+    // [Bindable]
+    static final String ATTRIBUTE_BINDABLE = "Bindable";
+    static final String NAME_BINDABLE_EVENT = "event";
+    static final String NAME_BINDABLE_STYLE = "style";
+    
+    // [ChangeEvent]
+    static final String ATTRIBUTE_CHANGE_EVENT = "ChangeEvent";
+    
+    // [CollapseWhiteSpace]
+    static final String ATTRIBUTE_COLLAPSEWHITESPACE = "CollapseWhiteSpace";
+    
+    // [DefaultProperty]
+    static final String ATTRIBUTE_DEFAULTPROPERTY = "DefaultProperty";
+    
+    // [DefaultTriggerEvent]
+    static final String ATTRIBUTE_DEFAULT_TRIGGER_EVENT = "DefaultTriggerEvent";
+    
+    // [Deprecated]
+    static final String ATTRIBUTE_DEPRECATED = "Deprecated";
+    static final String NAME_DEPRECATED_MESSAGE="message";
+    static final String NAME_DEPRECATED_SINCE="since";
+    static final String NAME_DEPRECATED_METADATA_MESSAGE="deprecatedMessage";
+    static final String NAME_DEPRECATED_METADATA_REPLACEMENT = "deprecatedReplacement";
+    static final String NAME_DEPRECATED_METADATA_SINCE="deprecatedSince";
+    static final String NAME_DEPRECATED_REPLACEMENT="replacement";
+    
+    // [DiscouragedForProfile]
+    static final String ATTRIBUTE_DISCOURAGED_FOR_PROFILE = "DiscouragedForProfile";
+    static final String NAME_DISCOURAGED_PROFILE = "profile";
+    static final String VALUE_DISCOURAGED_PROFILE_DESKTOP = "desktop";
+    static final String VALUE_DISCOURAGED_PROFILE_EXTENDED_DESKTOP = "extendedDesktop";
+    static final String VALUE_DISCOURAGED_PROFILE_EXTENDED_MOBILE_DEVICE = "extendedMobileDevice";
+    static final String VALUE_DISCOURAGED_PROFILE_MOBILE_DEVICE = "mobileDevice";
+    
+    // [Effect]
+    static final String ATTRIBUTE_EFFECT = "Effect";
+    static final String NAME_EFFECT_EVENT = "event";
+    static final String NAME_EFFECT_NAME = "name";
+    
+    // [Embed] and @Embed
+    static final String ATTRIBUTE_EMBED = "Embed";
+    
+    // [Event]
+    static final String ATTRIBUTE_EVENT = "Event";
+    static final String NAME_EVENT_NAME = "name";
+    static final String NAME_EVENT_TYPE = "type";
+    
+    // [Exclude]
+    static final String ATTRIBUTE_EXCLUDE = "Exclude";
+    static final String NAME_EXCLUDE_KIND = "kind";
+    static final String VALUE_EXCLUDE_KIND_EFFECT = "effect";
+    static final String VALUE_EXCLUDE_KIND_EVENT = "event";
+    static final String VALUE_EXCLUDE_KIND_METHOD = "method";
+    static final String VALUE_EXCLUDE_KIND_PROPERTY = "property";
+    static final String VALUE_EXCLUDE_KIND_STYLE = "style";
+    static final String NAME_EXCLUDE_NAME = "name";
+   
+    // [ExcludeClass]
+    static final String ATTRIBUTE_EXCLUDECLASS = "ExcludeClass";
+    
+    // [Frame]
+    static final String ATTRIBUTE_FRAME = "Frame";
+    static final String NAME_FRAME_EXTRA_CLASS = "extraClass";
+    static final String NAME_FRAME_FACTORY_CLASS = "factoryClass";
+    
+    // [__go_to_definition_help]
+    static final String ATTRIBUTE_GOTODEFINITIONHELP = "__go_to_definition_help"; 
+    static final String NAME_GOTODEFINITIONHELP_FILE = "file"; 
+    static final String NAME_GOTODEFINITIONHELP_POS = "pos"; 
+    
+    // [__go_to_ctor_definition_help]
+    static final String ATTRIBUTE_GOTODEFINITION_CTOR_HELP = "__go_to_ctor_definition_help";
+    
+    // [HostComponent]
+    static final String ATTRIBUTE_HOST_COMPONENT = "HostComponent";
+    
+    // [IconFile]
+    static final String ATTRIBUTE_ICON_FILE = "IconFile";
+
+    // [Inline]
+    public static final String ATTRIBUTE_INLINE = "Inline";
+
+    // [Inspectable]
+	static final String ATTRIBUTE_INSPECTABLE = "Inspectable";
+    static final String NAME_INSPECTABLE_ARRAYTYPE = "arrayType";
+	static final String NAME_INSPECTABLE_CATEGORY = "category";
+	static final String VALUE_INSPECTABLE_CATEGORY_GENERAL = "General";
+    static final String NAME_INSPECTABLE_DEFAULT_VALUE = "defaultValue";
+	static final String NAME_INSPECTABLE_ENUMERATION = "enumeration";
+    static final String NAME_INSPECTABLE_ENVIRONMENT = "environment";
+    static final String VALUE_INSPECTABLE_ENVIRONMENT_NONE = "none";
+    static final String NAME_INSPECTABLE_FORMAT = "format";
+    static final String VALUE_INSPECTABLE_FORMAT_COLOR = "Color";
+	static final String NAME_INSPECTABLE_NAME = "name"; 
+	static final String NAME_INSPECTABLE_TYPE = "type";
+	static final String NAME_INSPECTABLE_VARIABLE = "variable";
+	static final String NAME_INSPECTABLE_VERBOSE = "verbose";
+	
+	// [InstanceType]
+    static final String ATTRIBUTE_INSTANCETYPE = "InstanceType";
+    
+    // [Mixin]
+    static final String ATTRIBUTE_MIXIN = "Mixin";   
+        
+    // [NonCommittingChangeEvent]
+	static final String ATTRIBUTE_NONCOMMITTING = "NonCommittingChangeEvent";
+	
+	// [PercentProxy]
+	static final String ATTRIBUTE_PERCENT_PROXY = "PercentProxy";
+	
+	// [RemoteClass]
+    static final String ATTRIBUTE_REMOTECLASS = "RemoteClass";
+    static final String NAME_REMOTECLASS_ALIAS = "alias";
+    
+    // @Resource
+    static final String ATTRIBUTE_RESOURCE = "Resource";
+    static final String NAME_RESOURCE_BUNDLE = "bundle";
+    static final String NAME_RESOURCE_KEY = "key";
+    
+    // [ResourceBundle]
+    static final String ATTRIBUTE_RESOURCEBUNDLE = "ResourceBundle";
+    
+    // [RichTextcContent]
+    static final String ATTRIBUTE_RICHTEXTCONTENT = "RichTextContent";
+    
+    // [SkinClass]
+    static final String ATTRIBUTE_SKIN_CLASS = "SkinClass";
+    
+    // [SkinPart]
+    static final String ATTRIBUTE_SKIN_PART = "SkinPart";
+    static final String NAME_SKIN_PART_REQUIRED = "required";
+    static final String VALUE_SKIN_PART_REQUIRED_FALSE = "false";
+    static final String VALUE_SKIN_PART_REQUIRED_TRUE = "true";
+    
+    // [SkinState]
+    static final String ATTRIBUTE_SKIN_STATE = "SkinState";
+    
+    // [States]
+    static final String ATTRIBUTE_STATES = "States";	
+    
+    // [Style]
+	static final String ATTRIBUTE_STYLE = "Style";
+    static final String NAME_STYLE_ARRAYTYPE = "arrayType";
+    static final String NAME_STYLE_ENUMERATION = "enumeration";
+    static final String NAME_STYLE_FORMAT = "format";
+    static final String VALUE_STYLE_FORMAT_COLOR = "Color";
+    static final String NAME_STYLE_INHERIT = "inherit";
+    static final String VALUE_STYLE_INHERIT_YES = "yes";
+    static final String VALUE_STYLE_INHERIT_NO = "no";
+	static final String NAME_STYLE_NAME = "name";
+	static final String NAME_STYLE_TYPE = "type";
+	static final String NAME_STYLE_STATES = "states";
+	static final String NAME_STYLE_THEME = "theme";
+	
+	// [VisualContentHolder]
+    static final String ATTRIBUTE_VISUALCONTENTHOLDER = "VisualContentHolder";
+
+    // Attribute names shared by [Inspectable] and [Style].
+    static final String NAME_MIN_VALUE = "minValue";
+    static final String NAME_MIN_VALUE_EXCLUSIVE = "minValueExclusive";
+    static final String NAME_MAX_VALUE = "maxValue";
+    static final String NAME_MAX_VALUE_EXCLUSIVE = "maxValueExclusive";
+	
+	/**
+	 * List of metadata tags that do not inherit
+	 */
+	static final Set<String> NON_INHERITING_METATAGS =
+	    Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(new String[]
+		{
+		    ATTRIBUTE_ALTERNATIVE,
+		    ATTRIBUTE_BINDABLE,
+		    ATTRIBUTE_DEPRECATED,
+		    ATTRIBUTE_DISCOURAGED_FOR_PROFILE,
+            ATTRIBUTE_EXCLUDECLASS,
+        })));
+}
+

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/INamespaceConstants.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/INamespaceConstants.java b/compiler/src/main/java/org/apache/flex/compiler/constants/INamespaceConstants.java
new file mode 100644
index 0000000..31aa1d7
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/INamespaceConstants.java
@@ -0,0 +1,58 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.constants;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * List of built-in namespace constants found in the AS3 language
+ */
+public interface INamespaceConstants
+{
+	static final String internal_ = IASKeywordConstants.INTERNAL;
+	static final String protected_ = IASKeywordConstants.PROTECTED;
+	static final String private_ = IASKeywordConstants.PRIVATE;
+	static final String public_ = IASKeywordConstants.PUBLIC;
+	static final String AS3 = "AS3"; 
+	static final String AS3URI = "http://adobe.com/AS3/2006/builtin";
+	static final String FLASH10 = "flash10";
+    static final String ANY = "*";
+
+	/**
+	 * List of builtin namespaces found in AS3
+	 */
+	static final String[] BUILTINS = new String[]
+	{
+	    internal_,
+	    protected_,
+	    private_,
+	    AS3,
+	    public_
+	};
+	
+	/**
+	 * Set of builtin namespaces found in AS3
+	 */
+	static final Set<String> BUILTINS_SET =
+	    Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(BUILTINS)));
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/constants/package.html
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/constants/package.html b/compiler/src/main/java/org/apache/flex/compiler/constants/package.html
new file mode 100644
index 0000000..52ed548
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/constants/package.html
@@ -0,0 +1,26 @@
+<!--
+
+  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.
+
+-->
+
+<html>
+<body>
+
+This package contains interfaces with various constants used throughout the compiler.
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/CombinatorType.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/CombinatorType.java b/compiler/src/main/java/org/apache/flex/compiler/css/CombinatorType.java
new file mode 100644
index 0000000..3f30dfc
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/CombinatorType.java
@@ -0,0 +1,41 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+/**
+ * CSS3 selector combinators. Only <i>descendant</i> is supported at the moment.
+ * 
+ * @see <a href="http://www.w3.org/TR/css3-selectors/#combinators">css3 selectors : combinators</a>
+ */
+public enum CombinatorType
+{
+    DESCENDANT(" ");
+
+    private CombinatorType(String text)
+    {
+        this.text = text;
+    }
+
+    /**
+     * Symbol that represents the combinator type.
+     */
+    public final String text;
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/ConditionType.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/ConditionType.java b/compiler/src/main/java/org/apache/flex/compiler/css/ConditionType.java
new file mode 100644
index 0000000..2699f15
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/ConditionType.java
@@ -0,0 +1,51 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+/**
+ * Supported condition types for {@link ICSSSelectorCondition}.
+ */
+public enum ConditionType
+{
+    /**
+     * For example: <code>s|Label.className</code>
+     */
+    CLASS("."),
+
+    /**
+     * For example: <code>s|Label#idValue</code>
+     */
+    ID("#"),
+
+    /**
+     * For example: <code>s|Label#loadingState</code>
+     */
+    PSEUDO(":");
+
+    /**
+     * Prefix character of the condition type.
+     */
+    public final String prefix;
+
+    private ConditionType(String prefix)
+    {
+        this.prefix = prefix;
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/FontFaceSourceType.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/FontFaceSourceType.java b/compiler/src/main/java/org/apache/flex/compiler/css/FontFaceSourceType.java
new file mode 100644
index 0000000..3246bb8
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/FontFaceSourceType.java
@@ -0,0 +1,38 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+/**
+ * Source type enumerations for {@link ICSSFontFace}.
+ */
+public enum FontFaceSourceType
+{
+    /**
+     * The source value is a URL of the font filename. For example: <br>
+     * <code>src: url("../assets/MyriadWebPro.ttf"); </code>
+     */
+    URL,
+
+    /**
+     * The source value is the system font name. For example: <br>
+     * <code>src: local("Myriad Web Pro");</code>
+     */
+    LOCAL;
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSCombinator.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/ICSSCombinator.java b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSCombinator.java
new file mode 100644
index 0000000..a01c126
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSCombinator.java
@@ -0,0 +1,52 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+/**
+ * A "combinator" represents a CSS selector that combines with a selector. It
+ * has a type value and an associated selector. If selector "A" is written on
+ * the left of selector "B", then "A" is the combinator of "B".
+ * <p>
+ * For example, in the following CSS rule:<br>
+ * <code> s|HBox s|Button.rounded s|Label {...} </code><br>
+ * {@code s|Label} has an {@code ICSSCombinator} whose combinator type is
+ * "descendant" (space character) and the combined selector is
+ * {@code s|Button.rounded}.
+ */
+public interface ICSSCombinator
+{
+
+    /**
+     * Get the selector associated with the combinator. For example: <br>
+     * <code>s|VBox s|Label</code><br>
+     * Then, {@code s|Label} as a combinator whose selector is {@code s|VBox}.
+     * 
+     * @return The selector of the combinator.
+     */
+    ICSSSelector getSelector();
+
+    /**
+     * Get the combinator type.
+     * 
+     * @return Combinator type.
+     */
+    CombinatorType getCombinatorType();
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSDocument.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/ICSSDocument.java b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSDocument.java
new file mode 100644
index 0000000..acfa16b
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSDocument.java
@@ -0,0 +1,59 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+import com.google.common.collect.ImmutableList;
+
+/**
+ * The root object of a CSS DOM. The CSS3 DOM objects serves not only IDE
+ * features in code model, but also CSS compilation.
+ */
+public interface ICSSDocument extends ICSSNode
+{
+    /**
+     * @return CSS rules in their declaration order.
+     */
+    ImmutableList<ICSSRule> getRules();
+
+    /**
+     * @return Namespace prefix declarations.
+     */
+    ImmutableList<ICSSNamespaceDefinition> getAtNamespaces();
+
+    /**
+     * @return Font face statements in their declaration order.
+     */
+    ImmutableList<ICSSFontFace> getFontFaces();
+
+    /**
+     * Get the {@link ICSSNamespaceDefinition} object from its associated prefix
+     * name. 
+     * 
+     * @param prefix namespace prefix
+     * @return {@code ICSSNamespaceDefinition} mapped to the given prefix.
+     */
+    ICSSNamespaceDefinition getNamespaceDefinition(String prefix);
+    
+    /**
+     * Get the default {@link ICSSNamespaceDefinition} for this CSS document.
+     * The default namespace's short name is an empty string {@code ""}. 
+     */
+    ICSSNamespaceDefinition getDefaultNamespaceDefinition();
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/59f6373b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSFontFace.java
----------------------------------------------------------------------
diff --git a/compiler/src/main/java/org/apache/flex/compiler/css/ICSSFontFace.java b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSFontFace.java
new file mode 100644
index 0000000..4131acc
--- /dev/null
+++ b/compiler/src/main/java/org/apache/flex/compiler/css/ICSSFontFace.java
@@ -0,0 +1,83 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+package org.apache.flex.compiler.css;
+
+/**
+ * CSS DOM for an <code>@font-face</code> statement.
+ */
+public interface ICSSFontFace extends ICSSNode
+{
+    /**
+     * Get the font source type. A font can be loaded either by its filename (by
+     * using src:url) or by its system font name (by using src:local).
+     * 
+     * @return Font source type. Either {@code url()} or {@code local()}.
+     */
+    FontFaceSourceType getSourceType();
+
+    /**
+     * @return If the source type is {@link FontFaceSourceType#URL}, the
+     * return value is the URL of the font file path; If the source type is
+     * {@link FontFaceSourceType#LOCAL}, the return value is the system font
+     * name.
+     */
+    String getSourceValue();
+
+    /**
+     * The fontFamily property sets the alias for the font that you use to apply
+     * the font in style sheets. This property is required. If you embed a font
+     * with a family name that matches the family name of a system font, the
+     * Flex compiler gives you a warning. You can disable this warning by
+     * setting the show-shadows-system-font-warnings compiler option to false.
+     * 
+     * @return Font family name of this font-face statement. The font family
+     * name can be used in the later CSS rulesets' {@code font-family}
+     * properties.
+     */
+    String getFontFamily();
+
+    /**
+     * Get the "style" type face value of the font. Possible values are
+     * "normal", "italic" and "oblique". If the value is not set in the CSS
+     * document, this method returns the default font style "normal".
+     * 
+     * @return Font style.
+     */
+    String getFontStyle();
+
+    /**
+     * Get the "weight" type face value of the font. Possible values are
+     * "normal", "bold" and "heavy". If the value is not set in the CSS
+     * document, this method returns the default font style "normal".
+     * 
+     * @return Font style.
+     */
+    String getFontWeight();
+
+    /**
+     * The advancedAntiAliasing property determines whether to include the
+     * advanced anti-aliasing information when embedding the font. This property
+     * is optional. The default value is true.
+     * 
+     * @return True if this font face uses advanced anti-aliasing.
+     */
+    boolean getAdvancedAntiAliasing();
+
+}


Mime
View raw message