| OLD | NEW |
| 1 // Copyright 2011 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 |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 412 inline Token::Value Select(uc32 next, Token::Value then, Token::Value else_) { | 412 inline Token::Value Select(uc32 next, Token::Value then, Token::Value else_) { |
| 413 Advance(); | 413 Advance(); |
| 414 if (c0_ == next) { | 414 if (c0_ == next) { |
| 415 Advance(); | 415 Advance(); |
| 416 return then; | 416 return then; |
| 417 } else { | 417 } else { |
| 418 return else_; | 418 return else_; |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 | 421 |
| 422 uc32 ScanHexEscape(uc32 c, int length); | 422 uc32 ScanHexNumber(int expected_length); |
| 423 | 423 |
| 424 // Return the current source position. | 424 // Return the current source position. |
| 425 int source_pos() { | 425 int source_pos() { |
| 426 return source_->pos() - kCharacterLookaheadBufferSize; | 426 return source_->pos() - kCharacterLookaheadBufferSize; |
| 427 } | 427 } |
| 428 | 428 |
| 429 UnicodeCache* unicode_cache_; | 429 UnicodeCache* unicode_cache_; |
| 430 | 430 |
| 431 // Buffers collecting literal strings, numbers, etc. | 431 // Buffers collecting literal strings, numbers, etc. |
| 432 LiteralBuffer literal_buffer1_; | 432 LiteralBuffer literal_buffer1_; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 530 | 530 |
| 531 void ScanEscape(); | 531 void ScanEscape(); |
| 532 Token::Value ScanString(); | 532 Token::Value ScanString(); |
| 533 | 533 |
| 534 // Scans a possible HTML comment -- begins with '<!'. | 534 // Scans a possible HTML comment -- begins with '<!'. |
| 535 Token::Value ScanHtmlComment(); | 535 Token::Value ScanHtmlComment(); |
| 536 | 536 |
| 537 // Decodes a unicode escape-sequence which is part of an identifier. | 537 // Decodes a unicode escape-sequence which is part of an identifier. |
| 538 // If the escape sequence cannot be decoded the result is kBadChar. | 538 // If the escape sequence cannot be decoded the result is kBadChar. |
| 539 uc32 ScanIdentifierUnicodeEscape(); | 539 uc32 ScanIdentifierUnicodeEscape(); |
| 540 // Recognizes a uniocde escape-sequence and adds its characters, |
| 541 // uninterpreted, to the current literal. Used for parsing RegExp |
| 542 // flags. |
| 543 bool ScanLiteralUnicodeEscape(); |
| 540 | 544 |
| 541 // Start position of the octal literal last scanned. | 545 // Start position of the octal literal last scanned. |
| 542 Location octal_pos_; | 546 Location octal_pos_; |
| 543 | 547 |
| 544 // Whether there is a line terminator whitespace character after | 548 // Whether there is a line terminator whitespace character after |
| 545 // the current token, and before the next. Does not count newlines | 549 // the current token, and before the next. Does not count newlines |
| 546 // inside multiline comments. | 550 // inside multiline comments. |
| 547 bool has_line_terminator_before_next_; | 551 bool has_line_terminator_before_next_; |
| 548 // Whether there is a multi-line comment that contains a | 552 // Whether there is a multi-line comment that contains a |
| 549 // line-terminator after the current token, and before the next. | 553 // line-terminator after the current token, and before the next. |
| 550 bool has_multiline_comment_before_next_; | 554 bool has_multiline_comment_before_next_; |
| 551 // Whether we scan 'let' as a keyword for harmony block scoped | 555 // Whether we scan 'let' as a keyword for harmony block scoped |
| 552 // let bindings. | 556 // let bindings. |
| 553 bool harmony_block_scoping_; | 557 bool harmony_block_scoping_; |
| 554 }; | 558 }; |
| 555 | 559 |
| 556 } } // namespace v8::internal | 560 } } // namespace v8::internal |
| 557 | 561 |
| 558 #endif // V8_SCANNER_BASE_H_ | 562 #endif // V8_SCANNER_BASE_H_ |
| OLD | NEW |