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

Side by Side Diff: utils/tests/peg/src/PegTest.dart

Issue 8448006: Move PEG parser test into testing framework. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: removed empty section Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « utils/tests/peg/peg.status ('k') | utils/tests/peg/testcfg.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #import('pegparser.dart'); 5 #import('../../../peg/pegparser.dart');
6 6
7 testParens() { 7 testParens() {
8 Grammar g = new Grammar(); 8 Grammar g = new Grammar();
9 Symbol a = g['A']; 9 Symbol a = g['A'];
10 10
11 a.def = ['(', MANY(a, min:0), ')', (a) => a]; 11 a.def = ['(', MANY(a, min:0), ')', (a) => a];
12 12
13 check(g, a, "", null); 13 check(g, a, "", null);
14 check(g, a, "()", '[]'); 14 check(g, a, "()", '[]');
15 check(g, a, "(()())", '[[],[]]'); 15 check(g, a, "(()())", '[[],[]]');
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 } 311 }
312 312
313 var formatted = ast; 313 var formatted = ast;
314 if (expected is String) 314 if (expected is String)
315 formatted = printList(ast); 315 formatted = printList(ast);
316 316
317 Expect.equals(expected, formatted, "parse: $input"); 317 Expect.equals(expected, formatted, "parse: $input");
318 } 318 }
319 319
320 // Prints the list in [1,2,3] notation, including nested lists. 320 // Prints the list in [1,2,3] notation, including nested lists.
321 void printList(item) { 321 printList(item) {
322 if (item is List) { 322 if (item is List) {
323 StringBuffer sb = new StringBuffer(); 323 StringBuffer sb = new StringBuffer();
324 sb.add('['); 324 sb.add('[');
325 var sep = ''; 325 var sep = '';
326 for (var x in item) { 326 for (var x in item) {
327 sb.add(sep); 327 sb.add(sep);
328 sb.add(printList(x)); 328 sb.add(printList(x));
329 sep = ','; 329 sep = ',';
330 } 330 }
331 sb.add(']'); 331 sb.add(']');
332 return sb.toString(); 332 return sb.toString();
333 } 333 }
334 if (item == null) 334 if (item == null)
335 return 'null'; 335 return 'null';
336 return item.toString(); 336 return item.toString();
337 } 337 }
338 338
339 main() { 339 main() {
340 testCODE(); 340 testCODE();
341 testParens(); 341 testParens();
342 testOR(); 342 testOR();
343 testTEXT(); 343 testTEXT();
344 testBlockComment(); 344 testBlockComment();
345 testC(); 345 testC();
346 } 346 }
OLDNEW
« no previous file with comments | « utils/tests/peg/peg.status ('k') | utils/tests/peg/testcfg.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698