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

Side by Side Diff: src/scanner.cc

Issue 6824071: Cleanup of ScannerConstants, now named UnicodeCache. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed review comments. Created 9 years, 8 months 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 | « src/scanner.h ('k') | src/scanner-base.h » ('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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
11 // with the distribution. 11 // with the distribution.
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 // after a newline and scan first token. 338 // after a newline and scan first token.
339 has_line_terminator_before_next_ = true; 339 has_line_terminator_before_next_ = true;
340 SkipWhiteSpace(); 340 SkipWhiteSpace();
341 Scan(); 341 Scan();
342 } 342 }
343 343
344 344
345 // ---------------------------------------------------------------------------- 345 // ----------------------------------------------------------------------------
346 // JsonScanner 346 // JsonScanner
347 347
348 JsonScanner::JsonScanner(ScannerConstants* scanner_constants) 348 JsonScanner::JsonScanner(UnicodeCache* unicode_cache)
349 : Scanner(scanner_constants) { } 349 : Scanner(unicode_cache) { }
350 350
351 351
352 void JsonScanner::Initialize(UC16CharacterStream* source) { 352 void JsonScanner::Initialize(UC16CharacterStream* source) {
353 source_ = source; 353 source_ = source;
354 Init(); 354 Init();
355 // Skip initial whitespace. 355 // Skip initial whitespace.
356 SkipJsonWhiteSpace(); 356 SkipJsonWhiteSpace();
357 // Preload first token as look-ahead. 357 // Preload first token as look-ahead.
358 ScanJson(); 358 ScanJson();
359 } 359 }
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 if (AsciiAlphaToLower(c0_) == 'e') { 553 if (AsciiAlphaToLower(c0_) == 'e') {
554 AddLiteralCharAdvance(); 554 AddLiteralCharAdvance();
555 if (c0_ == '-' || c0_ == '+') AddLiteralCharAdvance(); 555 if (c0_ == '-' || c0_ == '+') AddLiteralCharAdvance();
556 if (c0_ < '0' || c0_ > '9') return Token::ILLEGAL; 556 if (c0_ < '0' || c0_ > '9') return Token::ILLEGAL;
557 do { 557 do {
558 AddLiteralCharAdvance(); 558 AddLiteralCharAdvance();
559 } while (c0_ >= '0' && c0_ <= '9'); 559 } while (c0_ >= '0' && c0_ <= '9');
560 } 560 }
561 literal.Complete(); 561 literal.Complete();
562 ASSERT_NOT_NULL(next_.literal_chars); 562 ASSERT_NOT_NULL(next_.literal_chars);
563 number_ = StringToDouble(next_.literal_chars->ascii_literal(), 563 number_ = StringToDouble(unicode_cache_,
564 next_.literal_chars->ascii_literal(),
564 NO_FLAGS, // Hex, octal or trailing junk. 565 NO_FLAGS, // Hex, octal or trailing junk.
565 OS::nan_value()); 566 OS::nan_value());
566 return Token::NUMBER; 567 return Token::NUMBER;
567 } 568 }
568 569
569 570
570 Token::Value JsonScanner::ScanJsonIdentifier(const char* text, 571 Token::Value JsonScanner::ScanJsonIdentifier(const char* text,
571 Token::Value token) { 572 Token::Value token) {
572 LiteralScope literal(this); 573 LiteralScope literal(this);
573 while (*text != '\0') { 574 while (*text != '\0') {
574 if (c0_ != *text) return Token::ILLEGAL; 575 if (c0_ != *text) return Token::ILLEGAL;
575 Advance(); 576 Advance();
576 text++; 577 text++;
577 } 578 }
578 if (scanner_constants_->IsIdentifierPart(c0_)) return Token::ILLEGAL; 579 if (unicode_cache_->IsIdentifierPart(c0_)) return Token::ILLEGAL;
579 literal.Complete(); 580 literal.Complete();
580 return token; 581 return token;
581 } 582 }
582 583
583 584
584 } } // namespace v8::internal 585 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/scanner.h ('k') | src/scanner-base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698