| Index: third_party/pkg/angular/lib/core/parser/syntax.dart
|
| diff --git a/third_party/pkg/angular/lib/core/parser/syntax.dart b/third_party/pkg/angular/lib/core/parser/syntax.dart
|
| index 3d6fa1514f00ced2f1c8e7f96abad9b3bf57a94c..8c1a9cd05f19a6aa8f595d704b6681e47e405bab 100644
|
| --- a/third_party/pkg/angular/lib/core/parser/syntax.dart
|
| +++ b/third_party/pkg/angular/lib/core/parser/syntax.dart
|
| @@ -3,66 +3,48 @@ library angular.core.parser.syntax;
|
| import 'package:angular/core/parser/parser.dart' show LocalsWrapper;
|
| import 'package:angular/core/parser/unparser.dart' show Unparser;
|
| import 'package:angular/core/parser/utils.dart' show EvalError;
|
| -import 'package:angular/core/module.dart';
|
| +import 'package:angular/core/module_internal.dart';
|
|
|
| abstract class Visitor {
|
| - visit(Expression expression)
|
| - => expression.accept(this);
|
| -
|
| - visitExpression(Expression expression)
|
| - => null;
|
| - visitChain(Chain expression)
|
| - => visitExpression(expression);
|
| - visitFilter(Filter expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitAssign(Assign expression)
|
| - => visitExpression(expression);
|
| - visitConditional(Conditional expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitAccessScope(AccessScope expression)
|
| - => visitExpression(expression);
|
| - visitAccessMember(AccessMember expression)
|
| - => visitExpression(expression);
|
| - visitAccessKeyed(AccessKeyed expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitCallScope(CallScope expression)
|
| - => visitExpression(expression);
|
| - visitCallFunction(CallFunction expression)
|
| - => visitExpression(expression);
|
| - visitCallMember(CallMember expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitBinary(Binary expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitPrefix(Prefix expression)
|
| - => visitExpression(expression);
|
| -
|
| - visitLiteral(Literal expression)
|
| - => visitExpression(expression);
|
| - visitLiteralPrimitive(LiteralPrimitive expression)
|
| - => visitLiteral(expression);
|
| - visitLiteralString(LiteralString expression)
|
| - => visitLiteral(expression);
|
| - visitLiteralArray(LiteralArray expression)
|
| - => visitLiteral(expression);
|
| - visitLiteralObject(LiteralObject expression)
|
| - => visitLiteral(expression);
|
| + visit(Expression expression) => expression.accept(this);
|
| +
|
| + visitExpression(Expression expression) => null;
|
| + visitChain(Chain expression) => visitExpression(expression);
|
| + visitFilter(Filter expression) => visitExpression(expression);
|
| +
|
| + visitAssign(Assign expression) => visitExpression(expression);
|
| + visitConditional(Conditional expression) => visitExpression(expression);
|
| +
|
| + visitAccessScope(AccessScope expression) => visitExpression(expression);
|
| + visitAccessMember(AccessMember expression) => visitExpression(expression);
|
| + visitAccessKeyed(AccessKeyed expression) => visitExpression(expression);
|
| +
|
| + visitCallScope(CallScope expression) => visitExpression(expression);
|
| + visitCallFunction(CallFunction expression) => visitExpression(expression);
|
| + visitCallMember(CallMember expression) => visitExpression(expression);
|
| +
|
| + visitBinary(Binary expression) => visitExpression(expression);
|
| +
|
| + visitPrefix(Prefix expression) => visitExpression(expression);
|
| +
|
| + visitLiteral(Literal expression) => visitExpression(expression);
|
| + visitLiteralPrimitive(LiteralPrimitive expression) =>
|
| + visitLiteral(expression);
|
| + visitLiteralString(LiteralString expression) => visitLiteral(expression);
|
| + visitLiteralArray(LiteralArray expression) => visitLiteral(expression);
|
| + visitLiteralObject(LiteralObject expression) => visitLiteral(expression);
|
| }
|
|
|
| abstract class Expression {
|
| bool get isAssignable => false;
|
| bool get isChain => false;
|
|
|
| - eval(scope, [FilterMap filters = defaultFilterMap])
|
| - => throw new EvalError("Cannot evaluate $this");
|
| - assign(scope, value)
|
| - => throw new EvalError("Cannot assign to $this");
|
| - bind(context, [LocalsWrapper wrapper])
|
| - => new BoundExpression(this, context, wrapper);
|
| + eval(scope, [FormatterMap formatters = defaultFormatterMap]) =>
|
| + throw new EvalError("Cannot evaluate $this");
|
| + assign(scope, value) =>
|
| + throw new EvalError("Cannot assign to $this");
|
| + bind(context, [LocalsWrapper wrapper]) =>
|
| + new BoundExpression(this, context, wrapper);
|
|
|
| accept(Visitor visitor);
|
| String toString() => Unparser.unparse(this);
|
| @@ -137,16 +119,29 @@ class AccessKeyed extends Expression {
|
| accept(Visitor visitor) => visitor.visitAccessKeyed(this);
|
| }
|
|
|
| +class CallArguments {
|
| + final List<Expression> positionals;
|
| + final Map<String, Expression> named;
|
| + const CallArguments(this.positionals, this.named);
|
| +
|
| + int get arity => positionals.length + named.length;
|
| +
|
| + Expression operator[](int index) {
|
| + int split = positionals.length;
|
| + return index < split ? positionals[index] : named.values.elementAt(index - split);
|
| + }
|
| +}
|
| +
|
| class CallScope extends Expression {
|
| final String name;
|
| - final List<Expression> arguments;
|
| + final CallArguments arguments;
|
| CallScope(this.name, this.arguments);
|
| accept(Visitor visitor) => visitor.visitCallScope(this);
|
| }
|
|
|
| class CallFunction extends Expression {
|
| final Expression function;
|
| - final List<Expression> arguments;
|
| + final CallArguments arguments;
|
| CallFunction(this.function, this.arguments);
|
| accept(Visitor visitor) => visitor.visitCallFunction(this);
|
| }
|
| @@ -154,7 +149,7 @@ class CallFunction extends Expression {
|
| class CallMember extends Expression {
|
| final Expression object;
|
| final String name;
|
| - final List<Expression> arguments;
|
| + final CallArguments arguments;
|
| CallMember(this.object, this.name, this.arguments);
|
| accept(Visitor visitor) => visitor.visitCallMember(this);
|
| }
|
| @@ -202,12 +197,12 @@ class LiteralObject extends Literal {
|
| accept(Visitor visitor) => visitor.visitLiteralObject(this);
|
| }
|
|
|
| -const defaultFilterMap = const _DefaultFilterMap();
|
| +const defaultFormatterMap = const _DefaultFormatterMap();
|
|
|
| -class _DefaultFilterMap implements FilterMap {
|
| - const _DefaultFilterMap();
|
| +class _DefaultFormatterMap implements FormatterMap {
|
| + const _DefaultFormatterMap();
|
|
|
| - call(name) => throw 'No NgFilter: $name found!';
|
| + call(name) => throw 'No Formatter: $name found!';
|
| Type operator[](annotation) => null;
|
| forEach(fn) { }
|
| annotationsFor(type) => null;
|
|
|