Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Unified Diff: third_party/pkg/angular/lib/tools/parser_getter_setter/generator.dart

Issue 1058283006: Update pubspecs and dependencies to get pkgbuild tests working. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(",")}]';
- }
-}
« no previous file with comments | « third_party/pkg/angular/lib/tools/parser_generator/generator.dart ('k') | third_party/pkg/angular/lib/tools/selector.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698