| 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 1136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1147 while (acceptCategory(COMMA)) { | 1147 while (acceptCategory(COMMA)) { |
| 1148 Expression right = parseAssignment(); | 1148 Expression right = parseAssignment(); |
| 1149 expression = new Binary(',', expression, right); | 1149 expression = new Binary(',', expression, right); |
| 1150 } | 1150 } |
| 1151 return expression; | 1151 return expression; |
| 1152 } | 1152 } |
| 1153 | 1153 |
| 1154 /** Parse a variable declaration list, with `var` or `let` [keyword] */ | 1154 /** Parse a variable declaration list, with `var` or `let` [keyword] */ |
| 1155 VariableDeclarationList parseVariableDeclarationList( | 1155 VariableDeclarationList parseVariableDeclarationList( |
| 1156 String keyword, [String firstIdentifier]) { | 1156 String keyword, [String firstIdentifier]) { |
| 1157 var initialization = []; | 1157 var initialization = <VariableInitialization>[]; |
| 1158 | 1158 |
| 1159 do { | 1159 do { |
| 1160 var declarator; | 1160 var declarator; |
| 1161 if (firstIdentifier != null) { | 1161 if (firstIdentifier != null) { |
| 1162 declarator = new Identifier(firstIdentifier); | 1162 declarator = new Identifier(firstIdentifier); |
| 1163 firstIdentifier = null; | 1163 firstIdentifier = null; |
| 1164 } else { | 1164 } else { |
| 1165 declarator = parseVariableBinding(); | 1165 declarator = parseVariableBinding(); |
| 1166 } | 1166 } |
| 1167 | 1167 |
| (...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1507 Expression expression = null; | 1507 Expression expression = null; |
| 1508 if (acceptString('case')) { | 1508 if (acceptString('case')) { |
| 1509 expression = parseExpression(); | 1509 expression = parseExpression(); |
| 1510 expectCategory(COLON); | 1510 expectCategory(COLON); |
| 1511 } else { | 1511 } else { |
| 1512 if (!acceptString('default')) { | 1512 if (!acceptString('default')) { |
| 1513 error('expected case or default'); | 1513 error('expected case or default'); |
| 1514 } | 1514 } |
| 1515 expectCategory(COLON); | 1515 expectCategory(COLON); |
| 1516 } | 1516 } |
| 1517 List statements = new List<Statement>(); | 1517 var statements = <Statement>[]; |
| 1518 while (lastCategory != RBRACE && | 1518 while (lastCategory != RBRACE && |
| 1519 lastToken != 'case' && | 1519 lastToken != 'case' && |
| 1520 lastToken != 'default') { | 1520 lastToken != 'default') { |
| 1521 statements.add(parseStatement()); | 1521 statements.add(parseStatement()); |
| 1522 } | 1522 } |
| 1523 return expression == null | 1523 return expression == null |
| 1524 ? new Default(new Block(statements)) | 1524 ? new Default(new Block(statements)) |
| 1525 : new Case(expression, new Block(statements)); | 1525 : new Case(expression, new Block(statements)); |
| 1526 } | 1526 } |
| 1527 | 1527 |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1642 expectCategory(RSQUARE); | 1642 expectCategory(RSQUARE); |
| 1643 return expr; | 1643 return expr; |
| 1644 } else if (acceptCategory(HASH)) { | 1644 } else if (acceptCategory(HASH)) { |
| 1645 return parseInterpolatedExpression(); | 1645 return parseInterpolatedExpression(); |
| 1646 } else { | 1646 } else { |
| 1647 error('Expected property name'); | 1647 error('Expected property name'); |
| 1648 return null; | 1648 return null; |
| 1649 } | 1649 } |
| 1650 } | 1650 } |
| 1651 } | 1651 } |
| OLD | NEW |