text: /**
   * @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
   */
  import { isPresent } from '../src/facade/lang';
  export class HtmlTextAst {
      constructor(value, sourceSpan) {
          this.value = value;
          this.sourceSpan = sourceSpan;
      }
      visit(visitor, context) { return visitor.visitText(this, context); }
  }
  export class HtmlExpansionAst {
      constructor(switchValue, type, cases, sourceSpan, switchValueSourceSpan) {
          this.switchValue = switchValue;
          this.type = type;
          this.cases = cases;
          this.sourceSpan = sourceSpan;
          this.switchValueSourceSpan = switchValueSourceSpan;
      }
      visit(visitor, context) {
          return visitor.visitExpansion(this, context);
      }
  }
  export class HtmlExpansionCaseAst {
      constructor(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) {
          this.value = value;
          this.expression = expression;
          this.sourceSpan = sourceSpan;
          this.valueSourceSpan = valueSourceSpan;
          this.expSourceSpan = expSourceSpan;
      }
      visit(visitor, context) {
          return visitor.visitExpansionCase(this, context);
      }
  }
  export class HtmlAttrAst {
      constructor(name, value, sourceSpan) {
          this.name = name;
          this.value = value;
          this.sourceSpan = sourceSpan;
      }
      visit(visitor, context) { return visitor.visitAttr(this, context); }
  }
  export class HtmlElementAst {
      constructor(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan) {
          this.name = name;
          this.attrs = attrs;
          this.children = children;
          this.sourceSpan = sourceSpan;
          this.startSourceSpan = startSourceSpan;
          this.endSourceSpan = endSourceSpan;
      }
      visit(visitor, context) { return visitor.visitElement(this, context); }
  }
  export class HtmlCommentAst {
      constructor(value, sourceSpan) {
          this.value = value;
          this.sourceSpan = sourceSpan;
      }
      visit(visitor, context) { return visitor.visitComment(this, context); }
  }
  export function htmlVisitAll(visitor, asts, context = null) {
      var result = [];
      asts.forEach(ast => {
          var astResult = ast.visit(visitor, context);
          if (isPresent(astResult)) {
              result.push(astResult);
          }
      });
      return result;
  }
  //# sourceMappingURL=html_ast.js.map