angular_ast 0.5.4 copy "angular_ast: ^0.5.4" to clipboard
angular_ast: ^0.5.4 copied to clipboard

discontinuedreplaced by: ngast
outdated

Parser and utilities for AngularDart templates

angular_ast #

Pub
Package

Parser and utilities for AngularDart templates.

This package is platform agnostic (no HTML or Dart VM dependencies).

Usage #

Currently in development and not stable.

import 'package:angular_ast/angular_ast.dart';

main() {
  // Create an AST tree by parsing an AngularDart template.
  var tree = parse('<button [title]="someTitle">Hello</button>');

  // Print to console.
  print(tree);

  // Output:
  // [
  //    ElementAst <button> {
  //      properties=
  //        PropertyAst {
  //          title="ExpressionAst {someTitle}"}
  //          childNodes=TextAst {Hello}
  //      }
  //    }
  // ]
}

Additional flags can be passed to change the behavior of the parser:

Data type Name Description Default Value
String sourceUrl String describing the path of the HTML string.
bool desugar Enabled desugaring of banana-syntax, star syntax, and pipes. true
bool parseExpressions Parses Dart expressions raises exceptions if occurred. true
ExceptionHandler exceptionHandler Switch to 'new RecoveringExceptionHandler()' to enable error recovery. ThrowingExceptionHandler

When using RecoveringExceptionHandler, the accumulated exceptions can be accessed through the RecoveringExceptionHandler object. Refer to the following example:

void parse(String content, String sourceUrl) {
  var exceptionHandler = new RecoveringExceptionHandler();
  var asts = parse(
    content,
    sourceUrl: sourceUrl,
    desugar: false,
    parseExpressions: false,
    exceptionHandler: exceptionHandler,
  );
  for (AngularParserException e in exceptionHandler.exceptions) {
    // Do something with exception.
  }
}