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

Unified Diff: third_party/pkg/angular/lib/tools/parser_generator/dart_code_gen.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_generator/dart_code_gen.dart
diff --git a/third_party/pkg/angular/lib/tools/parser_generator/dart_code_gen.dart b/third_party/pkg/angular/lib/tools/parser_generator/dart_code_gen.dart
deleted file mode 100644
index 5bac0003cc392c259382017d0d31ec10cf9b57d3..0000000000000000000000000000000000000000
--- a/third_party/pkg/angular/lib/tools/parser_generator/dart_code_gen.dart
+++ /dev/null
@@ -1,308 +0,0 @@
-library dart_code_gen;
-
-import 'package:angular/utils.dart' show isReservedWord;
-import 'package:angular/core/parser/syntax.dart';
-
-escape(String s) => s.replaceAllMapped(new RegExp(r'(\"|\$|\n)'), (m) {
- var char = m[1];
- if (char == '\n') char = 'n';
- return "\\$char";
-});
-
-class DartCodeGen {
- final HelperMap getters = new HelperMap('_',
- getterTemplate, getterTemplateForReserved);
- final HelperMap holders = new HelperMap('_ensure\$',
- holderTemplate, holderTemplateForReserved);
- final HelperMap setters = new HelperMap('_set\$',
- setterTemplate, setterTemplateForReserved);
-
- String generate(Expression expression, bool assign) {
- var v = new DartCodeGenVisitor(getters, holders, setters);
- return assign ? v.assign(expression)('value') : v.evaluate(expression);
- }
-}
-
-class DartCodeGenVisitor extends Visitor {
- static const int STATE_EVAL = 0;
- static const int STATE_EVAL_HOLDER = 1;
- static const int STATE_ASSIGN = 2;
- int state = STATE_EVAL;
-
- final HelperMap getters;
- final HelperMap holders;
- final HelperMap setters;
-
- DartCodeGenVisitor(this.getters, this.holders, this.setters);
-
- bool get isEvaluating => state == STATE_EVAL;
- bool get isEvaluatingHolder => state == STATE_EVAL_HOLDER;
- bool get isAssigning => state == STATE_ASSIGN;
-
- String lookupGetter(String key) => getters.lookup(key);
- String lookupHolder(String key) => holders.lookup(key);
- String lookupSetter(String key) => setters.lookup(key);
-
- String lookupAccessor(String key) {
- if (state == STATE_EVAL) {
- return lookupGetter(key);
- } else if (state == STATE_EVAL_HOLDER) {
- return lookupHolder(key);
- } else {
- assert(state == STATE_ASSIGN);
- return lookupSetter(key);
- }
- }
-
- String toBool(String value)
- => 'toBool($value)';
- String safeCallFunction(String function, String name, String arguments)
- => 'ensureFunction($function, "$name")($arguments)';
-
- String evaluate(Expression expression, {bool convertToBool: false}) {
- int old = state;
- try {
- state = STATE_EVAL;
- String result = visit(expression);
- if (convertToBool) result = toBool(result);
- return result;
- } finally {
- state = old;
- }
- }
-
- String evaluateHolder(Expression expression) {
- int old = state;
- try {
- state = STATE_EVAL_HOLDER;
- return visit(expression);
- } finally {
- state = old;
- }
- }
-
- Function assign(Expression target) {
- int old = state;
- try {
- state = STATE_ASSIGN;
- return visit(target);
- } finally {
- state = old;
- }
- }
-
- visitChain(Chain chain) {
- StringBuffer buffer = new StringBuffer();
- buffer.writeln("var result, last;");
- for (int i = 0; i < chain.expressions.length; i++) {
- String expression = evaluate(chain.expressions[i]);
- buffer.writeln('last = $expression;');
- buffer.writeln('if (last != null) result = last;');
- }
- buffer.write('return result;');
- return "$buffer";
- }
-
- visitFilter(Filter filter) {
- List expressions = [ filter.expression ]..addAll(filter.arguments);
- String arguments = expressions.map((e) => evaluate(e)).join(', ');
- String name = escape(filter.name);
- return 'filters("$name")($arguments)';
- }
-
- visitAssign(Assign expression) {
- String value = evaluate(expression.value);
- return assign(expression.target)(value);
- }
-
- visitConditional(Conditional conditional) {
- String condition = evaluate(conditional.condition, convertToBool: true);
- String yes = evaluate(conditional.yes);
- String no = evaluate(conditional.no);
- return "$condition ? $yes : $no";
- }
-
- visitAccessScope(AccessScope access) {
- String accessor = lookupAccessor(access.name);
- return isAssigning
- ? (value) => '$accessor(scope, $value)'
- : '$accessor(scope)';
- }
-
- visitAccessMember(AccessMember access) {
- String object = !isEvaluating
- ? evaluateHolder(access.object)
- : evaluate(access.object);
- String accessor = lookupAccessor(access.name);
- return isAssigning
- ? (value) => '$accessor($object, $value)'
- : '$accessor($object)';
- }
-
- visitAccessKeyed(AccessKeyed access) {
- String object = evaluate(access.object);
- String key = evaluate(access.key);
- return (isAssigning)
- ? (value) => 'setKeyed($object, $key, $value)'
- : 'getKeyed($object, $key)';
- }
-
- visitCallScope(CallScope call) {
- String arguments = call.arguments.map((e) => evaluate(e)).join(', ');
- String getter = lookupGetter(call.name);
- return safeCallFunction('$getter(scope)', call.name, arguments);
- }
-
- visitCallFunction(CallFunction call) {
- String function = evaluate(call.function);
- String arguments = call.arguments.map((e) => evaluate(e)).join(', ');
- return safeCallFunction(function, "${call.function}", arguments);
- }
-
- visitCallMember(CallMember call) {
- String object = evaluate(call.object);
- String arguments = call.arguments.map((e) => evaluate(e)).join(', ');
- String getter = lookupGetter(call.name);
- return safeCallFunction('$getter($object)', call.name, arguments);
- }
-
- visitBinary(Binary binary) {
- String operation = binary.operation;
- bool logical = (operation == '||') || (operation == '&&');
- String left = evaluate(binary.left, convertToBool: logical);
- String right = evaluate(binary.right, convertToBool: logical);
- if (operation == '+') {
- return 'autoConvertAdd($left, $right)';
- } else {
- return '($left $operation $right)';
- }
- }
-
- visitPrefix(Prefix prefix) {
- String operation = prefix.operation;
- bool logical = (operation == '!');
- String expression = evaluate(prefix.expression, convertToBool: logical);
- return '$operation$expression';
- }
-
- visitLiteral(Literal literal) {
- return '$literal';
- }
-
- visitLiteralString(LiteralString literal) {
- return 'r$literal';
- }
-
- visitLiteralArray(LiteralArray literal) {
- if (literal.elements.isEmpty) return '[]';
- StringBuffer buffer = new StringBuffer();
- for (int i = 0; i < literal.elements.length; i++) {
- if (i != 0) buffer.write(', ');
- buffer.write(evaluate(literal.elements[i]));
- }
- return "[ $buffer ]";
- }
-
- visitLiteralObject(LiteralObject literal) {
- if (literal.keys.isEmpty) return '{}';
- StringBuffer buffer = new StringBuffer();
- List<String> keys = literal.keys;
- for (int i = 0; i < keys.length; i++) {
- if (i != 0) buffer.write(', ');
- buffer.write("'${keys[i]}': ");
- buffer.write(evaluate(literal.values[i]));
- }
- return "{ $buffer }";
- }
-}
-
-class HelperMap {
- final Map<String, String> helpers = new Map<String, String>();
- final Map<String, String> names = new Map<String, String>();
-
- final String prefix;
- final Function template;
- final Function templateForReserved;
-
- HelperMap(this.prefix, this.template, this.templateForReserved);
-
- String lookup(String key) {
- String name = _computeName(key);
- if (helpers.containsKey(key)) return name;
- helpers[key] = isReservedWord(key)
- ? templateForReserved(name, key)
- : template(name, key);
- return name;
- }
-
- String _computeName(String key) {
- String result = names[key];
- if (result != null) return result;
- return names[key] = "$prefix$key";
- }
-}
-
-
-
-// ------------------------------------------------------------------
-// Templates for generated getters.
-// ------------------------------------------------------------------
-String getterTemplate(String name, String key) => """
-$name(o) {
- if (o == null) return null;
- return (o is Map) ? o["${escape(key)}"] : o.$key;
-}
-""";
-
-String getterTemplateForReserved(String name, String key) => """
-$name(o) {
- if (o == null) return null;
- return (o is Map) ? o["${escape(key)}"] : null;
-}
-""";
-
-
-// ------------------------------------------------------------------
-// Templates for generated holders (getters for assignment).
-// ------------------------------------------------------------------
-String holderTemplate(String name, String key) => """
-$name(o) {
- if (o == null) return null;
- if (o is Map) {
- var key = "${escape(key)}";
- var result = o[key];
- return (result == null) ? result = o[key] = {} : result;
- } else {
- var result = o.$key;
- return (result == null) ? result = o.$key = {} : result;
- }
-}
-""";
-
-String holderTemplateForReserved(String name, String key) => """
-$name(o) {
- if (o == null) return null;
- if (o is !Map) return {};
- var key = "${escape(key)}";
- var result = o[key];
- return (result == null) ? result = o[key] = {} : result;
-}
-""";
-
-
-// ------------------------------------------------------------------
-// Templates for generated setters.
-// ------------------------------------------------------------------
-String setterTemplate(String name, String key) => """
-$name(o, v) {
- if (o is Map) o["${escape(key)}"] = v; else o.$key = v;
- return v;
-}
-""";
-
-String setterTemplateForReserved(String name, String key) => """
-$name(o, v) {
- if (o is Map) o["${escape(key)}"] = v;
- return v;
-}
-""";
« no previous file with comments | « third_party/pkg/angular/lib/tools/io_impl.dart ('k') | third_party/pkg/angular/lib/tools/parser_generator/generator.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698