| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Utilities for building JS ASTs at runtime. Contains a builder class | 5 // Utilities for building JS ASTs at runtime. Contains a builder class |
| 6 // and a parser that parses part of the language. | 6 // and a parser that parses part of the language. |
| 7 | 7 |
| 8 part of js_ast; | 8 part of js_ast; |
| 9 | 9 |
| 10 | 10 |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 } else { | 345 } else { |
| 346 _parts = new List.from(parts, growable: false); | 346 _parts = new List.from(parts, growable: false); |
| 347 } | 347 } |
| 348 return new StringConcatenation(_parts); | 348 return new StringConcatenation(_parts); |
| 349 } | 349 } |
| 350 | 350 |
| 351 Iterable<Literal> joinLiterals(Iterable<Literal> list, Literal separator) { | 351 Iterable<Literal> joinLiterals(Iterable<Literal> list, Literal separator) { |
| 352 return new _InterleaveIterable(list, separator); | 352 return new _InterleaveIterable(list, separator); |
| 353 } | 353 } |
| 354 | 354 |
| 355 LiteralString quoteName(Name name, {allowNull: false}) { |
| 356 if (name == null) { |
| 357 assert(allowNull); |
| 358 return new LiteralString('""'); |
| 359 } |
| 360 return new LiteralStringFromName(name); |
| 361 } |
| 362 |
| 355 LiteralNumber number(num value) => new LiteralNumber('$value'); | 363 LiteralNumber number(num value) => new LiteralNumber('$value'); |
| 356 | 364 |
| 357 LiteralBool boolean(bool value) => new LiteralBool(value); | 365 LiteralBool boolean(bool value) => new LiteralBool(value); |
| 358 | 366 |
| 359 ArrayInitializer numArray(Iterable<int> list) => | 367 ArrayInitializer numArray(Iterable<int> list) => |
| 360 new ArrayInitializer(list.map(number).toList()); | 368 new ArrayInitializer(list.map(number).toList()); |
| 361 | 369 |
| 362 ArrayInitializer stringArray(Iterable<String> list) => | 370 ArrayInitializer stringArray(Iterable<String> list) => |
| 363 new ArrayInitializer(list.map(string).toList()); | 371 new ArrayInitializer(list.map(string).toList()); |
| 364 | 372 |
| 365 Comment comment(String text) => new Comment(text); | 373 Comment comment(String text) => new Comment(text); |
| 366 | 374 |
| 367 Call propertyCall(Expression receiver, | 375 Call propertyCall(Expression receiver, |
| 368 String fieldName, | 376 Expression fieldName, |
| 369 List<Expression> arguments) { | 377 List<Expression> arguments) { |
| 370 return new Call(new PropertyAccess.field(receiver, fieldName), arguments); | 378 return new Call(new PropertyAccess(receiver, fieldName), arguments); |
| 371 } | 379 } |
| 372 } | 380 } |
| 373 | 381 |
| 374 LiteralString string(String value) => js.string(value); | 382 LiteralString string(String value) => js.string(value); |
| 383 LiteralString quoteName(Name name, {allowNull: false}) { |
| 384 return js.quoteName(name, allowNull: allowNull); |
| 385 } |
| 375 LiteralString stringPart(String value) => js.stringPart(value); | 386 LiteralString stringPart(String value) => js.stringPart(value); |
| 376 Iterable<Literal> joinLiterals(Iterable<Literal> list, Literal separator) { | 387 Iterable<Literal> joinLiterals(Iterable<Literal> list, Literal separator) { |
| 377 return js.joinLiterals(list, separator); | 388 return js.joinLiterals(list, separator); |
| 378 } | 389 } |
| 390 StringConcatenation concatenateStrings(Iterable<Literal> parts, |
| 391 {addQuotes: false}) { |
| 392 return js.concatenateStrings(parts, addQuotes: addQuotes); |
| 393 } |
| 394 |
| 379 LiteralNumber number(num value) => js.number(value); | 395 LiteralNumber number(num value) => js.number(value); |
| 380 ArrayInitializer numArray(Iterable<int> list) => js.numArray(list); | 396 ArrayInitializer numArray(Iterable<int> list) => js.numArray(list); |
| 381 ArrayInitializer stringArray(Iterable<String> list) => js.stringArray(list); | 397 ArrayInitializer stringArray(Iterable<String> list) => js.stringArray(list); |
| 382 Call propertyCall(Expression receiver, | 398 Call propertyCall(Expression receiver, |
| 383 String fieldName, | 399 Expression fieldName, |
| 384 List<Expression> arguments) { | 400 List<Expression> arguments) { |
| 385 return js.propertyCall(receiver, fieldName, arguments); | 401 return js.propertyCall(receiver, fieldName, arguments); |
| 386 } | 402 } |
| 387 | 403 |
| 388 class MiniJsParserError { | 404 class MiniJsParserError { |
| 389 MiniJsParserError(this.parser, this.message) { } | 405 MiniJsParserError(this.parser, this.message) { } |
| 390 | 406 |
| 391 final MiniJsParser parser; | 407 final MiniJsParser parser; |
| 392 final String message; | 408 final String message; |
| 393 | 409 |
| (...skipping 1009 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1403 class _InterleaveIterable extends IterableBase { | 1419 class _InterleaveIterable extends IterableBase { |
| 1404 Iterable<Node> source; | 1420 Iterable<Node> source; |
| 1405 Node separator; | 1421 Node separator; |
| 1406 | 1422 |
| 1407 _InterleaveIterable(this.source, this.separator); | 1423 _InterleaveIterable(this.source, this.separator); |
| 1408 | 1424 |
| 1409 Iterator<Node> get iterator { | 1425 Iterator<Node> get iterator { |
| 1410 return new _InterleaveIterator(source.iterator, separator); | 1426 return new _InterleaveIterator(source.iterator, separator); |
| 1411 } | 1427 } |
| 1412 } | 1428 } |
| OLD | NEW |