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

Unified Diff: client/dom/scripts/idlrenderer.dart

Issue 9845043: Rename client/{dom,html} to lib/{dom,html} . (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 9 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
« no previous file with comments | « client/dom/scripts/idlparser_test.py ('k') | client/dom/scripts/idlrenderer.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/dom/scripts/idlrenderer.dart
===================================================================
--- client/dom/scripts/idlrenderer.dart (revision 5796)
+++ client/dom/scripts/idlrenderer.dart (working copy)
@@ -1,180 +0,0 @@
-// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-List sorted(Iterable input, [compare, key]) {
- comparator(compare, key) {
- if (compare == null && key == null)
- return (a, b) => a.compareTo(b);
- if (compare == null)
- return (a, b) => key(a).compareTo(key(b));
- if (key == null)
- return compare;
- return (a, b) => compare(key(a), key(b));
- }
- List copy = new List.from(input);
- copy.sort(comparator(compare, key));
- return copy;
-}
-
-render(idl_node, [indent_str=' ']) {
- var output = [''];
- var indent_stack = [];
-
- indented(action) { // TODO: revert to indented(action()) {
- indent_stack.add(indent_str);
- action();
- indent_stack.removeLast();
- }
-
- sort(nodes) => sorted(nodes, key: (a) => a.id);
-
- var w; // For some reason mutually recursive local functions don't work.
-
- wln([node]) {
- w(node);
- output.add('\n');
- }
-
- w = (node, [list_separator]) {
- /*
- Writes the given node.
-
- Args:
- node -- a string, IDLNode instance or a list of such.
- list_separator -- if provided, and node is a list,
- list_separator will be written between the list items.
- */
- if (node == null) {
- return;
- } else if (node is String) {
- if (output.last().endsWith('\n'))
- output.addAll(indent_stack);
- output.add(node);
- } else if (node is List) {
- var separator = null;
- for (var element in node) {
- w(separator);
- separator = list_separator;
- w(element);
- }
- } else if (node is IDLFile) {
- w(node.modules);
- w(node.interfaces);
- } else if (node is IDLModule) {
- w(node.annotations);
- w(node.extAttrs);
- wln('module ${node.id} {');
- indented(() {
- w(node.interfaces);
- w(node.typedefs);
- });
- wln('};');
- } else if (node is IDLInterface) {
- w(node.annotations);
- w(node.extAttrs);
- w('interface ${node.id}');
- indented(() {
- if (!node.parents.isEmpty()) {
- wln(' :');
- w(node.parents, ',\n');
- }
- wln(' {');
- section(list, comment) {
- if (list != null && !list.isEmpty()) {
- wln();
- wln(comment);
- w(sort(list));
- }
- }
- section(node.constants, '/* Constants */');
- section(node.attributes, '/* Attributes */');
- section(node.operations, '/* Operations */');
- section(node.snippets, '/* Snippets */');
- });
- wln('};');
- } else if (node is IDLParentInterface) {
- w(node.annotations);
- w(node.type.id);
- } else if (node is IDLAnnotations) {
- for (var name in sorted(node.map.getKeys())) {
- IDLAnnotation annotation = node.map[name];
- var args = annotation.map;
- if (args.isEmpty()) {
- w('@$name');
- } else {
- var formattedArgs = [];
- for (var argName in sorted(args.getKeys())) {
- var argValue = args[argName];
- if (argValue == null)
- formattedArgs.add(argName);
- else
- formattedArgs.add('$argName=$argValue');
- }
- w('@$name(${Strings.join(formattedArgs,',')})');
- }
- w(' ');
- }
- } else if (node is IDLExtAttrs) {
- if(!node.map.isEmpty()) {
- w('[');
- var sep = null;
- for (var name in sorted(node.map.getKeys())) {
- w(sep);
- sep = ', ';
- w(name);
- var value = node.map[name];
- if (value != null) {
- w('=');
- w(value);
- }
- }
- w('] ');
- }
- } else if (node is IDLAttribute) {
- w(node.annotations);
- w(node.extAttrs);
- //if (node.isFcGetter)
- // w('getter ');
- //if (node.isFcSetter)
- // w('setter ');
- wln('attribute ${node.type.id} ${node.id};');
- } else if (node is IDLConstant) {
- w(node.annotations);
- w(node.extAttrs);
- wln('const ${node.type.id} ${node.id} = ${node.value};');
- } else if (node is IDLSnippet) {
- w(node.annotations);
- wln('snippet {${node.text}};');
- } else if (node is IDLOperation) {
- w(node.annotations);
- w(node.extAttrs);
- if (node.specials != null && !node.specials.isEmpty()) {
- w(node.specials, ' ');
- w(' ');
- }
- w('${node.type.id} ${node.id}');
- w('(');
- w(node.arguments, ', ');
- wln(');');
- } else if (node is IDLArgument) {
- w(node.extAttrs);
- w('in ');
- if (node.isOptional)
- w('optional ');
- w('${node.type.id} ${node.id}');
- } else if (node is IDLExtAttrFunctionValue) {
- w(node.name);
- w('(');
- w(node.arguments, ', ');
- w(')');
- } else if (node is IDLTypeDef) {
- wln('typedef ${node.type.id} ${node.id};');
- } else {
- w('// $node\n');
- }
- };
-
- w(idl_node);
- return Strings.concatAll(output);
-}
« no previous file with comments | « client/dom/scripts/idlparser_test.py ('k') | client/dom/scripts/idlrenderer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698