| 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 #include "vm/flags.h" | 6 #include "vm/flags.h" |
| 7 | 7 |
| 8 #ifndef DART_PRECOMPILED_RUNTIME | 8 #ifndef DART_PRECOMPILED_RUNTIME |
| 9 | 9 |
| 10 #include "lib/invocation_mirror.h" | 10 #include "lib/invocation_mirror.h" |
| (...skipping 8230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8241 int nesting_level = 0; | 8241 int nesting_level = 0; |
| 8242 do { | 8242 do { |
| 8243 Token::Kind ct = CurrentToken(); | 8243 Token::Kind ct = CurrentToken(); |
| 8244 if (ct == Token::kLT) { | 8244 if (ct == Token::kLT) { |
| 8245 nesting_level++; | 8245 nesting_level++; |
| 8246 } else if (ct == Token::kGT) { | 8246 } else if (ct == Token::kGT) { |
| 8247 nesting_level--; | 8247 nesting_level--; |
| 8248 } else if (ct == Token::kSHR) { | 8248 } else if (ct == Token::kSHR) { |
| 8249 nesting_level -= 2; | 8249 nesting_level -= 2; |
| 8250 } else if (ct == Token::kIDENT) { | 8250 } else if (ct == Token::kIDENT) { |
| 8251 // Check to see if it is a qualified identifier. | 8251 if (IsFunctionTypeSymbol()) { |
| 8252 if (LookaheadToken(1) == Token::kPERIOD) { | 8252 if (!TryParseType(false)) { |
| 8253 // Consume the identifier, the period will be consumed below. | 8253 return false; |
| 8254 ConsumeToken(); | 8254 } |
| 8255 continue; |
| 8256 } else { |
| 8257 // Check to see if it is a qualified identifier. |
| 8258 if (LookaheadToken(1) == Token::kPERIOD) { |
| 8259 // Consume the identifier, the period will be consumed below. |
| 8260 ConsumeToken(); |
| 8261 } |
| 8255 } | 8262 } |
| 8256 } else if (ct != Token::kCOMMA) { | 8263 } else if (ct != Token::kCOMMA) { |
| 8257 return false; | 8264 return false; |
| 8258 } | 8265 } |
| 8259 ConsumeToken(); | 8266 ConsumeToken(); |
| 8260 } while (nesting_level > 0); | 8267 } while (nesting_level > 0); |
| 8261 if (nesting_level < 0) { | 8268 if (nesting_level < 0) { |
| 8262 return false; | 8269 return false; |
| 8263 } | 8270 } |
| 8264 return true; | 8271 return true; |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8377 if (allow_void) { | 8384 if (allow_void) { |
| 8378 found = true; | 8385 found = true; |
| 8379 } else if (!IsFunctionTypeSymbol()) { | 8386 } else if (!IsFunctionTypeSymbol()) { |
| 8380 return false; | 8387 return false; |
| 8381 } | 8388 } |
| 8382 } else if ((CurrentToken() == Token::kIDENT) && !IsFunctionTypeSymbol()) { | 8389 } else if ((CurrentToken() == Token::kIDENT) && !IsFunctionTypeSymbol()) { |
| 8383 // 'Function' not followed by '(' or '<' means the Function class. | 8390 // 'Function' not followed by '(' or '<' means the Function class. |
| 8384 if (!TryParseQualIdent()) { | 8391 if (!TryParseQualIdent()) { |
| 8385 return false; | 8392 return false; |
| 8386 } | 8393 } |
| 8387 if ((CurrentToken() == Token::kLT) && !TryParseTypeParameters()) { | 8394 if ((CurrentToken() == Token::kLT) && !TryParseTypeArguments()) { |
| 8388 return false; | 8395 return false; |
| 8389 } | 8396 } |
| 8390 found = true; | 8397 found = true; |
| 8391 } | 8398 } |
| 8392 while (IsFunctionTypeSymbol()) { | 8399 while (IsFunctionTypeSymbol()) { |
| 8393 ConsumeToken(); | 8400 ConsumeToken(); |
| 8394 if ((CurrentToken() == Token::kLT) && !TryParseTypeParameters()) { | 8401 if ((CurrentToken() == Token::kLT) && !TryParseTypeParameters()) { |
| 8395 return false; | 8402 return false; |
| 8396 } | 8403 } |
| 8397 if (CurrentToken() == Token::kLPAREN) { | 8404 if (CurrentToken() == Token::kLPAREN) { |
| (...skipping 6794 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15192 const ArgumentListNode& function_args, | 15199 const ArgumentListNode& function_args, |
| 15193 const LocalVariable* temp_for_last_arg, | 15200 const LocalVariable* temp_for_last_arg, |
| 15194 bool is_super_invocation) { | 15201 bool is_super_invocation) { |
| 15195 UNREACHABLE(); | 15202 UNREACHABLE(); |
| 15196 return NULL; | 15203 return NULL; |
| 15197 } | 15204 } |
| 15198 | 15205 |
| 15199 } // namespace dart | 15206 } // namespace dart |
| 15200 | 15207 |
| 15201 #endif // DART_PRECOMPILED_RUNTIME | 15208 #endif // DART_PRECOMPILED_RUNTIME |
| OLD | NEW |