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 |