| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #include "vm/parser.h" | 5 #include "vm/parser.h" |
| 6 | 6 |
| 7 #include "lib/invocation_mirror.h" | 7 #include "lib/invocation_mirror.h" |
| 8 #include "platform/utils.h" | 8 #include "platform/utils.h" |
| 9 #include "vm/ast_transformer.h" | 9 #include "vm/ast_transformer.h" |
| 10 #include "vm/bootstrap.h" | 10 #include "vm/bootstrap.h" |
| (...skipping 8614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8625 AstNode* Parser::ParseAssertStatement() { | 8625 AstNode* Parser::ParseAssertStatement() { |
| 8626 TRACE_PARSER("ParseAssertStatement"); | 8626 TRACE_PARSER("ParseAssertStatement"); |
| 8627 ConsumeToken(); // Consume assert keyword. | 8627 ConsumeToken(); // Consume assert keyword. |
| 8628 ExpectToken(Token::kLPAREN); | 8628 ExpectToken(Token::kLPAREN); |
| 8629 const intptr_t condition_pos = TokenPos(); | 8629 const intptr_t condition_pos = TokenPos(); |
| 8630 if (!I->AssertsEnabled() && !I->TypeChecksEnabled()) { | 8630 if (!I->AssertsEnabled() && !I->TypeChecksEnabled()) { |
| 8631 SkipExpr(); | 8631 SkipExpr(); |
| 8632 ExpectToken(Token::kRPAREN); | 8632 ExpectToken(Token::kRPAREN); |
| 8633 return NULL; | 8633 return NULL; |
| 8634 } | 8634 } |
| 8635 AstNode* condition = ParseExpr(kAllowConst, kConsumeCascades); | 8635 AstNode* condition = ParseAwaitableExpr(kAllowConst, kConsumeCascades, NULL); |
| 8636 const intptr_t condition_end = TokenPos(); | 8636 const intptr_t condition_end = TokenPos(); |
| 8637 ExpectToken(Token::kRPAREN); | 8637 ExpectToken(Token::kRPAREN); |
| 8638 condition = InsertClosureCallNodes(condition); | 8638 condition = InsertClosureCallNodes(condition); |
| 8639 condition = new(Z) UnaryOpNode(condition_pos, Token::kNOT, condition); | 8639 condition = new(Z) UnaryOpNode(condition_pos, Token::kNOT, condition); |
| 8640 AstNode* assert_throw = MakeAssertCall(condition_pos, condition_end); | 8640 AstNode* assert_throw = MakeAssertCall(condition_pos, condition_end); |
| 8641 return new(Z) IfNode( | 8641 return new(Z) IfNode( |
| 8642 condition_pos, | 8642 condition_pos, |
| 8643 condition, | 8643 condition, |
| 8644 NodeAsSequenceNode(condition_pos, assert_throw, NULL), | 8644 NodeAsSequenceNode(condition_pos, assert_throw, NULL), |
| 8645 NULL); | 8645 NULL); |
| (...skipping 4568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13214 void Parser::SkipQualIdent() { | 13214 void Parser::SkipQualIdent() { |
| 13215 ASSERT(IsIdentifier()); | 13215 ASSERT(IsIdentifier()); |
| 13216 ConsumeToken(); | 13216 ConsumeToken(); |
| 13217 if (CurrentToken() == Token::kPERIOD) { | 13217 if (CurrentToken() == Token::kPERIOD) { |
| 13218 ConsumeToken(); // Consume the kPERIOD token. | 13218 ConsumeToken(); // Consume the kPERIOD token. |
| 13219 ExpectIdentifier("identifier expected after '.'"); | 13219 ExpectIdentifier("identifier expected after '.'"); |
| 13220 } | 13220 } |
| 13221 } | 13221 } |
| 13222 | 13222 |
| 13223 } // namespace dart | 13223 } // namespace dart |
| OLD | NEW |