| Index: third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
|
| diff --git a/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart b/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
|
| deleted file mode 100644
|
| index b33244e104b718883af7a773ffb96b65c70f07fd..0000000000000000000000000000000000000000
|
| --- a/third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart
|
| +++ /dev/null
|
| @@ -1,101 +0,0 @@
|
| -import 'package:angular/core/parser/parser.dart';
|
| -import 'package:angular/utils.dart' show isReservedWord;
|
| -import 'dart:math';
|
| -
|
| -class DartGetterSetterGen extends ParserBackend {
|
| - final Set<String> properties = new Set<String>();
|
| - final Map<String, Set<int>> calls = new Map<String, Set<int>>();
|
| -
|
| - bool isAssignable(expression) => true;
|
| -
|
| - registerAccess(String name) {
|
| - if (isReservedWord(name)) return;
|
| - properties.add(name);
|
| - }
|
| -
|
| - registerCall(String name, List arguments) {
|
| - if (isReservedWord(name)) return;
|
| - Set<int> arities = calls.putIfAbsent(name, () => new Set<int>());
|
| - arities.add(arguments.length);
|
| - }
|
| -
|
| - newAccessScope(String name)
|
| - => registerAccess(name);
|
| - newAccessMember(var object, String name)
|
| - => registerAccess(name);
|
| - newCallScope(String name, List arguments)
|
| - => registerCall(name, arguments);
|
| - newCallMember(var object, String name, List arguments)
|
| - => registerCall(name, arguments);
|
| -}
|
| -
|
| -class ParserGetterSetter {
|
| - final Parser parser;
|
| - final ParserBackend backend;
|
| - ParserGetterSetter(this.parser, this.backend);
|
| -
|
| - generateParser(List<String> exprs) {
|
| - exprs.forEach((expr) {
|
| - try {
|
| - parser(expr);
|
| - } catch (e) {
|
| - // Ignore exceptions.
|
| - }
|
| - });
|
| -
|
| - DartGetterSetterGen backend = this.backend;
|
| - print(generateClosureMap(backend.properties, backend.calls));
|
| - }
|
| -
|
| - generateClosureMap(Set<String> properties, Map<String, Set<int>> calls) {
|
| - return '''
|
| -class StaticClosureMap extends ClosureMap {
|
| - Map<String, Getter> _getters = ${generateGetterMap(properties)};
|
| - Map<String, Setter> _setters = ${generateSetterMap(properties)};
|
| - List<Map<String, Function>> _functions = ${generateFunctionMap(calls)};
|
| -
|
| - Getter lookupGetter(String name)
|
| - => _getters[name];
|
| - Setter lookupSetter(String name)
|
| - => _setters[name];
|
| - lookupFunction(String name, int arity)
|
| - => (arity < _functions.length) ? _functions[arity][name] : null;
|
| -}
|
| -''';
|
| - }
|
| -
|
| - generateGetterMap(Iterable<String> keys) {
|
| - var lines = keys.map((key) => 'r"${key}": (o) => o.$key');
|
| - return '{\n ${lines.join(",\n ")}\n }';
|
| - }
|
| -
|
| - generateSetterMap(Iterable<String> keys) {
|
| - var lines = keys.map((key) => 'r"${key}": (o, v) => o.$key = v');
|
| - return '{\n ${lines.join(",\n ")}\n }';
|
| - }
|
| -
|
| - generateFunctionMap(Map<String, Set<int>> calls) {
|
| - Map<int, Set<String>> arities = {};
|
| - calls.forEach((name, callArities) {
|
| - callArities.forEach((arity){
|
| - arities.putIfAbsent(arity, () => new Set<String>()).add(name);
|
| - });
|
| - });
|
| -
|
| - var maxArity = arities.keys.reduce((x, y) => max(x, y));
|
| -
|
| - var maps = new Iterable.generate(maxArity, (arity) {
|
| - var names = arities[arity];
|
| - if (names == null) {
|
| - return '{\n }';
|
| - } else {
|
| - var args = new List.generate(arity, (e) => "a$e").join(',');
|
| - var p = args.isEmpty ? '' : ', $args';
|
| - var lines = names.map((name) => 'r"$name": (o$p) => o.$name($args)');
|
| - return '{\n ${lines.join(",\n ")}\n }';
|
| - }
|
| - });
|
| -
|
| - return '[${maps.join(",")}]';
|
| - }
|
| -}
|
|
|