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

Side by Side Diff: pkg/dev_compiler/lib/src/js_ast/template.dart

Issue 2752163002: Format all dart dev compiler files (Closed)
Patch Set: Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 part of js_ast; 5 part of js_ast;
6 6
7 class TemplateManager { 7 class TemplateManager {
8 Map<String, Template> expressionTemplates = new Map<String, Template>(); 8 Map<String, Template> expressionTemplates = new Map<String, Template>();
9 Map<String, Template> statementTemplates = new Map<String, Template>(); 9 Map<String, Template> statementTemplates = new Map<String, Template>();
10 10
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 if (node is InterpolatedExpression) { 193 if (node is InterpolatedExpression) {
194 var nameOrPosition = node.nameOrPosition; 194 var nameOrPosition = node.nameOrPosition;
195 return (arguments) { 195 return (arguments) {
196 var value = arguments[nameOrPosition]; 196 var value = arguments[nameOrPosition];
197 Expression toExpression(item) { 197 Expression toExpression(item) {
198 if (item is Expression) return item; 198 if (item is Expression) return item;
199 if (item is String) return new Identifier(item); 199 if (item is String) return new Identifier(item);
200 return error('Interpolated value #$nameOrPosition is not ' 200 return error('Interpolated value #$nameOrPosition is not '
201 'an Expression or List of Expressions: $value'); 201 'an Expression or List of Expressions: $value');
202 } 202 }
203
203 if (value is Iterable) return value.map(toExpression); 204 if (value is Iterable) return value.map(toExpression);
204 return toExpression(value); 205 return toExpression(value);
205 }; 206 };
206 } 207 }
207 return visit(node); 208 return visit(node);
208 } 209 }
209 210
210 Instantiator visitInterpolatedLiteral(InterpolatedLiteral node) { 211 Instantiator visitInterpolatedLiteral(InterpolatedLiteral node) {
211 var nameOrPosition = node.nameOrPosition; 212 var nameOrPosition = node.nameOrPosition;
212 return (arguments) { 213 return (arguments) {
213 var value = arguments[nameOrPosition]; 214 var value = arguments[nameOrPosition];
214 if (value is Literal) return value; 215 if (value is Literal) return value;
215 error('Interpolated value #$nameOrPosition is not a Literal: $value'); 216 error('Interpolated value #$nameOrPosition is not a Literal: $value');
216 }; 217 };
217 } 218 }
218 219
219 Instantiator visitInterpolatedParameter(InterpolatedParameter node) { 220 Instantiator visitInterpolatedParameter(InterpolatedParameter node) {
220 var nameOrPosition = node.nameOrPosition; 221 var nameOrPosition = node.nameOrPosition;
221 return (arguments) { 222 return (arguments) {
222 var value = arguments[nameOrPosition]; 223 var value = arguments[nameOrPosition];
223 224
224 Parameter toIdentifier(item) { 225 Parameter toIdentifier(item) {
225 if (item is Parameter) return item; 226 if (item is Parameter) return item;
226 if (item is String) return new Identifier(item); 227 if (item is String) return new Identifier(item);
227 return error('Interpolated value #$nameOrPosition is not an Identifier' 228 return error('Interpolated value #$nameOrPosition is not an Identifier'
228 ' or List of Identifiers: $value'); 229 ' or List of Identifiers: $value');
229 } 230 }
231
230 if (value is Iterable) return value.map(toIdentifier); 232 if (value is Iterable) return value.map(toIdentifier);
231 return toIdentifier(value); 233 return toIdentifier(value);
232 }; 234 };
233 } 235 }
234 236
235 Instantiator visitInterpolatedSelector(InterpolatedSelector node) { 237 Instantiator visitInterpolatedSelector(InterpolatedSelector node) {
236 // A selector is an expression, as in `a[selector]`. 238 // A selector is an expression, as in `a[selector]`.
237 // A String argument converted into a LiteralString, so `a.#` with argument 239 // A String argument converted into a LiteralString, so `a.#` with argument
238 // 'foo' generates `a["foo"]` which prints as `a.foo`. 240 // 'foo' generates `a["foo"]` which prints as `a.foo`.
239 var nameOrPosition = node.nameOrPosition; 241 var nameOrPosition = node.nameOrPosition;
(...skipping 16 matching lines...) Expand all
256 258
257 Instantiator visitInterpolatedMethod(InterpolatedMethod node) { 259 Instantiator visitInterpolatedMethod(InterpolatedMethod node) {
258 var nameOrPosition = node.nameOrPosition; 260 var nameOrPosition = node.nameOrPosition;
259 return (arguments) { 261 return (arguments) {
260 var value = arguments[nameOrPosition]; 262 var value = arguments[nameOrPosition];
261 Method toMethod(item) { 263 Method toMethod(item) {
262 if (item is Method) return item; 264 if (item is Method) return item;
263 return error('Interpolated value #$nameOrPosition is not a Method ' 265 return error('Interpolated value #$nameOrPosition is not a Method '
264 'or List of Methods: $value'); 266 'or List of Methods: $value');
265 } 267 }
268
266 if (value is Iterable) return value.map(toMethod); 269 if (value is Iterable) return value.map(toMethod);
267 return toMethod(value); 270 return toMethod(value);
268 }; 271 };
269 } 272 }
270 273
271 Instantiator visitInterpolatedIdentifier(InterpolatedIdentifier node) { 274 Instantiator visitInterpolatedIdentifier(InterpolatedIdentifier node) {
272 var nameOrPosition = node.nameOrPosition; 275 var nameOrPosition = node.nameOrPosition;
273 return (arguments) { 276 return (arguments) {
274 var item = arguments[nameOrPosition]; 277 var item = arguments[nameOrPosition];
275 if (item is Identifier) return item; 278 if (item is Identifier) return item;
276 if (item is String) return new Identifier(item); 279 if (item is String) return new Identifier(item);
277 return error('Interpolated value #$nameOrPosition is not a ' 280 return error('Interpolated value #$nameOrPosition is not a '
278 'Identifier or String: $item'); 281 'Identifier or String: $item');
279 }; 282 };
280 } 283 }
281 284
282 Instantiator visitSplayableStatement(Node node) { 285 Instantiator visitSplayableStatement(Node node) {
283 if (node is InterpolatedStatement) { 286 if (node is InterpolatedStatement) {
284 var nameOrPosition = node.nameOrPosition; 287 var nameOrPosition = node.nameOrPosition;
285 return (arguments) { 288 return (arguments) {
286 var value = arguments[nameOrPosition]; 289 var value = arguments[nameOrPosition];
287 Statement toStatement(item) { 290 Statement toStatement(item) {
288 if (item is Statement) return item; 291 if (item is Statement) return item;
289 if (item is Expression) return item.toStatement(); 292 if (item is Expression) return item.toStatement();
290 ; 293 ;
291 return error('Interpolated value #$nameOrPosition is not ' 294 return error('Interpolated value #$nameOrPosition is not '
292 'a Statement or List of Statements: $value'); 295 'a Statement or List of Statements: $value');
293 } 296 }
297
294 if (value is Iterable) return value.map(toStatement); 298 if (value is Iterable) return value.map(toStatement);
295 return toStatement(value); 299 return toStatement(value);
296 }; 300 };
297 } 301 }
298 return visit(node); 302 return visit(node);
299 } 303 }
300 304
301 Instantiator visitProgram(Program node) { 305 Instantiator visitProgram(Program node) {
302 List instantiators = node.body.map(visitSplayableStatement).toList(); 306 List instantiators = node.body.map(visitSplayableStatement).toList();
303 return (arguments) { 307 return (arguments) {
304 List<Statement> statements = <Statement>[]; 308 List<Statement> statements = <Statement>[];
305 void add(node) { 309 void add(node) {
306 if (node is EmptyStatement) return; 310 if (node is EmptyStatement) return;
307 if (node is Iterable) { 311 if (node is Iterable) {
308 for (var n in node) statements.add(n); 312 for (var n in node) statements.add(n);
309 } else { 313 } else {
310 statements.add(node.toStatement()); 314 statements.add(node.toStatement());
311 } 315 }
312 } 316 }
317
313 for (Instantiator instantiator in instantiators) { 318 for (Instantiator instantiator in instantiators) {
314 add(instantiator(arguments)); 319 add(instantiator(arguments));
315 } 320 }
316 return new Program(statements); 321 return new Program(statements);
317 }; 322 };
318 } 323 }
319 324
320 Instantiator visitBlock(Block node) { 325 Instantiator visitBlock(Block node) {
321 List instantiators = node.statements.map(visitSplayableStatement).toList(); 326 List instantiators = node.statements.map(visitSplayableStatement).toList();
322 return (arguments) { 327 return (arguments) {
323 List<Statement> statements = <Statement>[]; 328 List<Statement> statements = <Statement>[];
324 void add(node) { 329 void add(node) {
325 if (node is EmptyStatement) return; 330 if (node is EmptyStatement) return;
326 if (node is Iterable) { 331 if (node is Iterable) {
327 for (var n in node) statements.add(n); 332 for (var n in node) statements.add(n);
328 } else if (node is Block) { 333 } else if (node is Block) {
329 statements.addAll(node.statements); 334 statements.addAll(node.statements);
330 } else { 335 } else {
331 statements.add(node.toStatement()); 336 statements.add(node.toStatement());
332 } 337 }
333 } 338 }
339
334 for (Instantiator instantiator in instantiators) { 340 for (Instantiator instantiator in instantiators) {
335 add(instantiator(arguments)); 341 add(instantiator(arguments));
336 } 342 }
337 return new Block(statements); 343 return new Block(statements);
338 }; 344 };
339 } 345 }
340 346
341 Instantiator visitExpressionStatement(ExpressionStatement node) { 347 Instantiator visitExpressionStatement(ExpressionStatement node) {
342 Instantiator buildExpression = visit(node.expression); 348 Instantiator buildExpression = visit(node.expression);
343 return (arguments) { 349 return (arguments) {
(...skipping 18 matching lines...) Expand all
362 var nameOrPosition = node.nameOrPosition; 368 var nameOrPosition = node.nameOrPosition;
363 return (arguments) { 369 return (arguments) {
364 var value = arguments[nameOrPosition]; 370 var value = arguments[nameOrPosition];
365 if (value is bool) return value; 371 if (value is bool) return value;
366 if (value is Expression) return value; 372 if (value is Expression) return value;
367 if (value is String) return new Identifier(value); 373 if (value is String) return new Identifier(value);
368 error('Interpolated value #$nameOrPosition ' 374 error('Interpolated value #$nameOrPosition '
369 'is not an Expression: $value'); 375 'is not an Expression: $value');
370 }; 376 };
371 } 377 }
378
372 var makeCondition = compileCondition(node.condition); 379 var makeCondition = compileCondition(node.condition);
373 Instantiator makeThen = visit(node.then); 380 Instantiator makeThen = visit(node.then);
374 Instantiator makeOtherwise = visit(node.otherwise); 381 Instantiator makeOtherwise = visit(node.otherwise);
375 return (arguments) { 382 return (arguments) {
376 var condition = makeCondition(arguments); 383 var condition = makeCondition(arguments);
377 if (condition is bool) { 384 if (condition is bool) {
378 if (condition == true) { 385 if (condition == true) {
379 return makeThen(arguments); 386 return makeThen(arguments);
380 } else { 387 } else {
381 return makeOtherwise(arguments); 388 return makeOtherwise(arguments);
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 } 567 }
561 568
562 Instantiator visitConditional(Conditional cond) { 569 Instantiator visitConditional(Conditional cond) {
563 Instantiator makeCondition = visit(cond.condition); 570 Instantiator makeCondition = visit(cond.condition);
564 Instantiator makeThen = visit(cond.then); 571 Instantiator makeThen = visit(cond.then);
565 Instantiator makeOtherwise = visit(cond.otherwise); 572 Instantiator makeOtherwise = visit(cond.otherwise);
566 return (arguments) => new Conditional(makeCondition(arguments), 573 return (arguments) => new Conditional(makeCondition(arguments),
567 makeThen(arguments), makeOtherwise(arguments)); 574 makeThen(arguments), makeOtherwise(arguments));
568 } 575 }
569 576
570 Instantiator visitNew(New node) => 577 Instantiator visitNew(New node) => handleCallOrNew(node,
571 handleCallOrNew(node, (target, arguments) => 578 (target, arguments) => new New(target, arguments as List<Expression>));
572 new New(target, arguments as List<Expression>));
573 579
574 Instantiator visitCall(Call node) => 580 Instantiator visitCall(Call node) => handleCallOrNew(node,
575 handleCallOrNew(node, (target, arguments) => 581 (target, arguments) => new Call(target, arguments as List<Expression>));
576 new Call(target, arguments as List<Expression>));
577 582
578 Instantiator handleCallOrNew(Call node, finish(target, arguments)) { 583 Instantiator handleCallOrNew(Call node, finish(target, arguments)) {
579 Instantiator makeTarget = visit(node.target); 584 Instantiator makeTarget = visit(node.target);
580 Iterable<Instantiator> argumentMakers = 585 Iterable<Instantiator> argumentMakers =
581 node.arguments.map(visitSplayableExpression).toList(); 586 node.arguments.map(visitSplayableExpression).toList();
582 587
583 // TODO(sra): Avoid copying call arguments if no interpolation or forced 588 // TODO(sra): Avoid copying call arguments if no interpolation or forced
584 // copying. 589 // copying.
585 return (arguments) { 590 return (arguments) {
586 Node target = makeTarget(arguments); 591 Node target = makeTarget(arguments);
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 if (count != before) containsInterpolatedNode.add(node); 912 if (count != before) containsInterpolatedNode.add(node);
908 return null; 913 return null;
909 } 914 }
910 915
911 visitInterpolatedNode(InterpolatedNode node) { 916 visitInterpolatedNode(InterpolatedNode node) {
912 containsInterpolatedNode.add(node); 917 containsInterpolatedNode.add(node);
913 if (node.isNamed) holeNames.add(node.nameOrPosition); 918 if (node.isNamed) holeNames.add(node.nameOrPosition);
914 ++count; 919 ++count;
915 } 920 }
916 } 921 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/lib/src/js_ast/printer.dart ('k') | pkg/dev_compiler/lib/src/js_ast/type_printer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698