/**
 * @license
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define("@angular/compiler/src/compiler", ["require", "exports", "tslib", "@angular/compiler/src/core", "@angular/compiler/src/jit_compiler_facade", "@angular/compiler/src/util", "@angular/compiler/src/version", "@angular/compiler/src/template_parser/template_ast", "@angular/compiler/src/config", "@angular/compiler/src/compile_metadata", "@angular/compiler/src/aot/compiler_factory", "@angular/compiler/src/aot/compiler", "@angular/compiler/src/aot/generated_file", "@angular/compiler/src/aot/formatted_error", "@angular/compiler/src/aot/static_reflector", "@angular/compiler/src/aot/static_symbol", "@angular/compiler/src/aot/static_symbol_resolver", "@angular/compiler/src/aot/summary_resolver", "@angular/compiler/src/aot/util", "@angular/compiler/src/ast_path", "@angular/compiler/src/summary_resolver", "@angular/compiler/src/identifiers", "@angular/compiler/src/jit/compiler", "@angular/compiler/src/compile_reflector", "@angular/compiler/src/url_resolver", "@angular/compiler/src/resource_loader", "@angular/compiler/src/constant_pool", "@angular/compiler/src/directive_resolver", "@angular/compiler/src/pipe_resolver", "@angular/compiler/src/ng_module_resolver", "@angular/compiler/src/ml_parser/interpolation_config", "@angular/compiler/src/schema/element_schema_registry", "@angular/compiler/src/i18n/index", "@angular/compiler/src/directive_normalizer", "@angular/compiler/src/expression_parser/ast", "@angular/compiler/src/expression_parser/lexer", "@angular/compiler/src/expression_parser/parser", "@angular/compiler/src/metadata_resolver", "@angular/compiler/src/ml_parser/ast", "@angular/compiler/src/ml_parser/html_parser", "@angular/compiler/src/ml_parser/html_tags", "@angular/compiler/src/ml_parser/interpolation_config", "@angular/compiler/src/ml_parser/tags", "@angular/compiler/src/ng_module_compiler", "@angular/compiler/src/output/output_ast", "@angular/compiler/src/output/abstract_emitter", "@angular/compiler/src/output/ts_emitter", "@angular/compiler/src/parse_util", "@angular/compiler/src/schema/dom_element_schema_registry", "@angular/compiler/src/selector", "@angular/compiler/src/style_compiler", "@angular/compiler/src/template_parser/template_parser", "@angular/compiler/src/view_compiler/view_compiler", "@angular/compiler/src/util", "@angular/compiler/src/injectable_compiler_2", "@angular/compiler/src/render3/r3_ast", "@angular/compiler/src/render3/view/t2_binder", "@angular/compiler/src/render3/r3_jit", "@angular/compiler/src/render3/r3_factory", "@angular/compiler/src/render3/r3_module_compiler", "@angular/compiler/src/render3/r3_pipe_compiler", "@angular/compiler/src/render3/view/template", "@angular/compiler/src/render3/view/compiler", "@angular/compiler/src/jit_compiler_facade"], factory);
    }
})(function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = require("tslib");
    //////////////////////////////////////
    // THIS FILE HAS GLOBAL SIDE EFFECT //
    //       (see bottom of file)       //
    //////////////////////////////////////
    /**
     * @module
     * @description
     * Entry point for all APIs of the compiler package.
     *
     * <div class="callout is-critical">
     *   <header>Unstable APIs</header>
     *   <p>
     *     All compiler apis are currently considered experimental and private!
     *   </p>
     *   <p>
     *     We expect the APIs in this package to keep on changing. Do not rely on them.
     *   </p>
     * </div>
     */
    var core = require("@angular/compiler/src/core");
    exports.core = core;
    var jit_compiler_facade_1 = require("@angular/compiler/src/jit_compiler_facade");
    var util_1 = require("@angular/compiler/src/util");
    tslib_1.__exportStar(require("@angular/compiler/src/version"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/template_parser/template_ast"), exports);
    var config_1 = require("@angular/compiler/src/config");
    exports.CompilerConfig = config_1.CompilerConfig;
    exports.preserveWhitespacesDefault = config_1.preserveWhitespacesDefault;
    tslib_1.__exportStar(require("@angular/compiler/src/compile_metadata"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/compiler_factory"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/compiler"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/generated_file"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/formatted_error"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/static_reflector"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/static_symbol"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/static_symbol_resolver"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/aot/summary_resolver"), exports);
    var util_2 = require("@angular/compiler/src/aot/util");
    exports.isLoweredSymbol = util_2.isLoweredSymbol;
    exports.createLoweredSymbol = util_2.createLoweredSymbol;
    tslib_1.__exportStar(require("@angular/compiler/src/ast_path"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/summary_resolver"), exports);
    var identifiers_1 = require("@angular/compiler/src/identifiers");
    exports.Identifiers = identifiers_1.Identifiers;
    var compiler_1 = require("@angular/compiler/src/jit/compiler");
    exports.JitCompiler = compiler_1.JitCompiler;
    tslib_1.__exportStar(require("@angular/compiler/src/compile_reflector"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/url_resolver"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/resource_loader"), exports);
    var constant_pool_1 = require("@angular/compiler/src/constant_pool");
    exports.ConstantPool = constant_pool_1.ConstantPool;
    var directive_resolver_1 = require("@angular/compiler/src/directive_resolver");
    exports.DirectiveResolver = directive_resolver_1.DirectiveResolver;
    var pipe_resolver_1 = require("@angular/compiler/src/pipe_resolver");
    exports.PipeResolver = pipe_resolver_1.PipeResolver;
    var ng_module_resolver_1 = require("@angular/compiler/src/ng_module_resolver");
    exports.NgModuleResolver = ng_module_resolver_1.NgModuleResolver;
    var interpolation_config_1 = require("@angular/compiler/src/ml_parser/interpolation_config");
    exports.DEFAULT_INTERPOLATION_CONFIG = interpolation_config_1.DEFAULT_INTERPOLATION_CONFIG;
    exports.InterpolationConfig = interpolation_config_1.InterpolationConfig;
    tslib_1.__exportStar(require("@angular/compiler/src/schema/element_schema_registry"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/i18n/index"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/directive_normalizer"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/expression_parser/ast"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/expression_parser/lexer"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/expression_parser/parser"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/metadata_resolver"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/ml_parser/ast"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/ml_parser/html_parser"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/ml_parser/html_tags"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/ml_parser/interpolation_config"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/ml_parser/tags"), exports);
    var ng_module_compiler_1 = require("@angular/compiler/src/ng_module_compiler");
    exports.NgModuleCompiler = ng_module_compiler_1.NgModuleCompiler;
    var output_ast_1 = require("@angular/compiler/src/output/output_ast");
    exports.ArrayType = output_ast_1.ArrayType;
    exports.AssertNotNull = output_ast_1.AssertNotNull;
    exports.BinaryOperator = output_ast_1.BinaryOperator;
    exports.BinaryOperatorExpr = output_ast_1.BinaryOperatorExpr;
    exports.BuiltinMethod = output_ast_1.BuiltinMethod;
    exports.BuiltinType = output_ast_1.BuiltinType;
    exports.BuiltinTypeName = output_ast_1.BuiltinTypeName;
    exports.BuiltinVar = output_ast_1.BuiltinVar;
    exports.CastExpr = output_ast_1.CastExpr;
    exports.ClassField = output_ast_1.ClassField;
    exports.ClassMethod = output_ast_1.ClassMethod;
    exports.ClassStmt = output_ast_1.ClassStmt;
    exports.CommaExpr = output_ast_1.CommaExpr;
    exports.CommentStmt = output_ast_1.CommentStmt;
    exports.ConditionalExpr = output_ast_1.ConditionalExpr;
    exports.DeclareFunctionStmt = output_ast_1.DeclareFunctionStmt;
    exports.DeclareVarStmt = output_ast_1.DeclareVarStmt;
    exports.Expression = output_ast_1.Expression;
    exports.ExpressionStatement = output_ast_1.ExpressionStatement;
    exports.ExpressionType = output_ast_1.ExpressionType;
    exports.ExternalExpr = output_ast_1.ExternalExpr;
    exports.ExternalReference = output_ast_1.ExternalReference;
    exports.FunctionExpr = output_ast_1.FunctionExpr;
    exports.IfStmt = output_ast_1.IfStmt;
    exports.InstantiateExpr = output_ast_1.InstantiateExpr;
    exports.InvokeFunctionExpr = output_ast_1.InvokeFunctionExpr;
    exports.InvokeMethodExpr = output_ast_1.InvokeMethodExpr;
    exports.JSDocCommentStmt = output_ast_1.JSDocCommentStmt;
    exports.LiteralArrayExpr = output_ast_1.LiteralArrayExpr;
    exports.LiteralExpr = output_ast_1.LiteralExpr;
    exports.LiteralMapExpr = output_ast_1.LiteralMapExpr;
    exports.MapType = output_ast_1.MapType;
    exports.NotExpr = output_ast_1.NotExpr;
    exports.ReadKeyExpr = output_ast_1.ReadKeyExpr;
    exports.ReadPropExpr = output_ast_1.ReadPropExpr;
    exports.ReadVarExpr = output_ast_1.ReadVarExpr;
    exports.ReturnStatement = output_ast_1.ReturnStatement;
    exports.ThrowStmt = output_ast_1.ThrowStmt;
    exports.TryCatchStmt = output_ast_1.TryCatchStmt;
    exports.Type = output_ast_1.Type;
    exports.WrappedNodeExpr = output_ast_1.WrappedNodeExpr;
    exports.WriteKeyExpr = output_ast_1.WriteKeyExpr;
    exports.WritePropExpr = output_ast_1.WritePropExpr;
    exports.WriteVarExpr = output_ast_1.WriteVarExpr;
    exports.StmtModifier = output_ast_1.StmtModifier;
    exports.Statement = output_ast_1.Statement;
    exports.TypeofExpr = output_ast_1.TypeofExpr;
    exports.collectExternalReferences = output_ast_1.collectExternalReferences;
    var abstract_emitter_1 = require("@angular/compiler/src/output/abstract_emitter");
    exports.EmitterVisitorContext = abstract_emitter_1.EmitterVisitorContext;
    tslib_1.__exportStar(require("@angular/compiler/src/output/ts_emitter"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/parse_util"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/schema/dom_element_schema_registry"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/selector"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/style_compiler"), exports);
    tslib_1.__exportStar(require("@angular/compiler/src/template_parser/template_parser"), exports);
    var view_compiler_1 = require("@angular/compiler/src/view_compiler/view_compiler");
    exports.ViewCompiler = view_compiler_1.ViewCompiler;
    var util_3 = require("@angular/compiler/src/util");
    exports.getParseErrors = util_3.getParseErrors;
    exports.isSyntaxError = util_3.isSyntaxError;
    exports.syntaxError = util_3.syntaxError;
    exports.Version = util_3.Version;
    tslib_1.__exportStar(require("@angular/compiler/src/injectable_compiler_2"), exports);
    var r3_ast_1 = require("@angular/compiler/src/render3/r3_ast");
    exports.TmplAstBoundAttribute = r3_ast_1.BoundAttribute;
    exports.TmplAstBoundEvent = r3_ast_1.BoundEvent;
    exports.TmplAstBoundText = r3_ast_1.BoundText;
    exports.TmplAstContent = r3_ast_1.Content;
    exports.TmplAstElement = r3_ast_1.Element;
    exports.TmplAstReference = r3_ast_1.Reference;
    exports.TmplAstTemplate = r3_ast_1.Template;
    exports.TmplAstText = r3_ast_1.Text;
    exports.TmplAstTextAttribute = r3_ast_1.TextAttribute;
    exports.TmplAstVariable = r3_ast_1.Variable;
    tslib_1.__exportStar(require("@angular/compiler/src/render3/view/t2_binder"), exports);
    var r3_jit_1 = require("@angular/compiler/src/render3/r3_jit");
    exports.jitExpression = r3_jit_1.jitExpression;
    var r3_factory_1 = require("@angular/compiler/src/render3/r3_factory");
    exports.R3ResolvedDependencyType = r3_factory_1.R3ResolvedDependencyType;
    var r3_module_compiler_1 = require("@angular/compiler/src/render3/r3_module_compiler");
    exports.compileInjector = r3_module_compiler_1.compileInjector;
    exports.compileNgModule = r3_module_compiler_1.compileNgModule;
    var r3_pipe_compiler_1 = require("@angular/compiler/src/render3/r3_pipe_compiler");
    exports.compilePipeFromMetadata = r3_pipe_compiler_1.compilePipeFromMetadata;
    var template_1 = require("@angular/compiler/src/render3/view/template");
    exports.makeBindingParser = template_1.makeBindingParser;
    exports.parseTemplate = template_1.parseTemplate;
    var compiler_2 = require("@angular/compiler/src/render3/view/compiler");
    exports.compileBaseDefFromMetadata = compiler_2.compileBaseDefFromMetadata;
    exports.compileComponentFromMetadata = compiler_2.compileComponentFromMetadata;
    exports.compileDirectiveFromMetadata = compiler_2.compileDirectiveFromMetadata;
    exports.parseHostBindings = compiler_2.parseHostBindings;
    var jit_compiler_facade_2 = require("@angular/compiler/src/jit_compiler_facade");
    exports.publishFacade = jit_compiler_facade_2.publishFacade;
    // This file only reexports content of the `src` folder. Keep it that way.
    // This function call has a global side effects and publishes the compiler into global namespace for
    // the late binding of the Compiler to the @angular/core for jit compilation.
    jit_compiler_facade_1.publishFacade(util_1.global);
});
//# sourceMappingURL=data:application/json;base64, 