OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Features shared by parsing and pre-parsing scanners. | 5 // Features shared by parsing and pre-parsing scanners. |
6 | 6 |
7 #include "src/parsing/scanner.h" | 7 #include "src/parsing/scanner.h" |
8 | 8 |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1601 DCHECK(BookmarkHasBeenSet()); // Caller hasn't called SetBookmark. | 1601 DCHECK(BookmarkHasBeenSet()); // Caller hasn't called SetBookmark. |
1602 | 1602 |
1603 source_->ResetToBookmark(); | 1603 source_->ResetToBookmark(); |
1604 c0_ = bookmark_c0_; | 1604 c0_ = bookmark_c0_; |
1605 CopyToNextTokenDesc(&bookmark_current_); | 1605 CopyToNextTokenDesc(&bookmark_current_); |
1606 current_ = next_; | 1606 current_ = next_; |
1607 CopyToNextTokenDesc(&bookmark_next_); | 1607 CopyToNextTokenDesc(&bookmark_next_); |
1608 bookmark_c0_ = kBookmarkWasApplied; | 1608 bookmark_c0_ = kBookmarkWasApplied; |
1609 } | 1609 } |
1610 | 1610 |
1611 | 1611 bool Scanner::BookmarkHasBeenSet() { |
1612 bool Scanner::BookmarkHasBeenSet() { return bookmark_c0_ >= 0; } | 1612 return bookmark_c0_ != kNoBookmark && bookmark_c0_ != kBookmarkWasApplied; |
1613 | 1613 } |
1614 | 1614 |
1615 bool Scanner::BookmarkHasBeenReset() { | 1615 bool Scanner::BookmarkHasBeenReset() { |
1616 return bookmark_c0_ == kBookmarkWasApplied; | 1616 return bookmark_c0_ == kBookmarkWasApplied; |
1617 } | 1617 } |
1618 | 1618 |
1619 | 1619 |
1620 void Scanner::DropBookmark() { bookmark_c0_ = kNoBookmark; } | 1620 void Scanner::DropBookmark() { bookmark_c0_ = kNoBookmark; } |
1621 | 1621 |
1622 void Scanner::CopyToNextTokenDesc(TokenDesc* from) { | 1622 void Scanner::CopyToNextTokenDesc(TokenDesc* from) { |
1623 StartLiteral(); | 1623 StartLiteral(); |
1624 StartRawLiteral(); | 1624 StartRawLiteral(); |
1625 CopyTokenDesc(&next_, from); | 1625 CopyTokenDesc(&next_, from); |
1626 if (next_.literal_chars->length() == 0) next_.literal_chars = nullptr; | 1626 if (next_.literal_chars->length() == 0) next_.literal_chars = nullptr; |
1627 if (next_.raw_literal_chars->length() == 0) next_.raw_literal_chars = nullptr; | 1627 if (next_.raw_literal_chars->length() == 0) next_.raw_literal_chars = nullptr; |
1628 } | 1628 } |
1629 | 1629 |
1630 void Scanner::CopyTokenDesc(TokenDesc* to, TokenDesc* from) { | 1630 void Scanner::CopyTokenDesc(TokenDesc* to, TokenDesc* from) { |
1631 DCHECK_NOT_NULL(to); | 1631 DCHECK_NOT_NULL(to); |
1632 DCHECK_NOT_NULL(from); | 1632 DCHECK_NOT_NULL(from); |
1633 to->token = from->token; | 1633 to->token = from->token; |
1634 to->location = from->location; | 1634 to->location = from->location; |
1635 to->literal_chars->CopyFrom(from->literal_chars); | 1635 to->literal_chars->CopyFrom(from->literal_chars); |
1636 to->raw_literal_chars->CopyFrom(from->raw_literal_chars); | 1636 to->raw_literal_chars->CopyFrom(from->raw_literal_chars); |
1637 } | 1637 } |
1638 | 1638 |
1639 | 1639 |
1640 | 1640 |
1641 } // namespace internal | 1641 } // namespace internal |
1642 } // namespace v8 | 1642 } // namespace v8 |
OLD | NEW |