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

Side by Side Diff: runtime/vm/scanner.cc

Issue 8676001: Implement type checking of list literals (issue 220). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « runtime/vm/parser.cc ('k') | tests/co19/co19-runtime.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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/scanner.h" 5 #include "vm/scanner.h"
6 6
7 #include "vm/assert.h" 7 #include "vm/assert.h"
8 #include "vm/flags.h" 8 #include "vm/flags.h"
9 #include "vm/object.h" 9 #include "vm/object.h"
10 #include "vm/thread.h" 10 #include "vm/thread.h"
11 #include "vm/token.h" 11 #include "vm/token.h"
12 12
13 namespace dart { 13 namespace dart {
14 14
15 DEFINE_FLAG(bool, print_tokens, false, "Print scanned tokens."); 15 DEFINE_FLAG(bool, print_tokens, false, "Print scanned tokens.");
16 DECLARE_FLAG(bool, expose_core_impl);
17 16
18 void Scanner::InitKeywordTable() { 17 void Scanner::InitKeywordTable() {
19 for (int i = 0; i < Token::numKeywords; i++) { 18 for (int i = 0; i < Token::numKeywords; i++) {
20 Token::Kind token = static_cast<Token::Kind>(Token::kFirstKeyword + i); 19 Token::Kind token = static_cast<Token::Kind>(Token::kFirstKeyword + i);
21 keywords_[i].kind = token; 20 keywords_[i].kind = token;
22 keywords_[i].keyword_chars = Token::Str(token); 21 keywords_[i].keyword_chars = Token::Str(token);
23 keywords_[i].keyword_len = strlen(Token::Str(token)); 22 keywords_[i].keyword_len = strlen(Token::Str(token));
24 keywords_[i].keyword_symbol = NULL; 23 keywords_[i].keyword_symbol = NULL;
25 } 24 }
26 } 25 }
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 return; 244 return;
246 } 245 }
247 } 246 }
248 i++; 247 i++;
249 } 248 }
250 249
251 // We did not read a keyword. 250 // We did not read a keyword.
252 current_token_.kind = Token::kIDENT; 251 current_token_.kind = Token::kIDENT;
253 String& literal = 252 String& literal =
254 String::ZoneHandle(String::NewSymbol(source_, ident_pos, ident_length)); 253 String::ZoneHandle(String::NewSymbol(source_, ident_pos, ident_length));
255 if ((ident_char0 == kPrivateIdentifierStart) && !FLAG_expose_core_impl) { 254 if (ident_char0 == kPrivateIdentifierStart) {
256 // Private identifiers are mangled on a per script basis. 255 // Private identifiers are mangled on a per script basis.
257 literal = String::Concat(literal, private_key_); 256 literal = String::Concat(literal, private_key_);
258 literal = String::NewSymbol(literal); 257 literal = String::NewSymbol(literal);
259 } 258 }
260 current_token_.literal = &literal; 259 current_token_.literal = &literal;
261 } 260 }
262 261
263 262
264 // Parse integer or double number literal of format: 263 // Parse integer or double number literal of format:
265 // NUMBER = INTEGER | DOUBLE 264 // NUMBER = INTEGER | DOUBLE
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 "%c%"PRIxPTR, kPrivateKeySeparator, key_value); 850 "%c%"PRIxPTR, kPrivateKeySeparator, key_value);
852 const String& result = String::Handle(String::New(private_key)); 851 const String& result = String::Handle(String::New(private_key));
853 return result.raw(); 852 return result.raw();
854 } 853 }
855 854
856 855
857 void Scanner::InitOnce() { 856 void Scanner::InitOnce() {
858 } 857 }
859 858
860 } // namespace dart 859 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/parser.cc ('k') | tests/co19/co19-runtime.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698