#ifndef V8_PARSING_SCANNER_INL_H_
#define V8_PARSING_SCANNER_INL_H_
#include "src/parsing/keywords-gen.h"
#include "src/parsing/scanner.h"
#include "src/strings/char-predicates-inl.h"
#include "src/utils/utils.h"
namespace v8 {
namespace internal {
#define KEYWORDS …
constexpr bool IsKeywordStart(char c) { … }
V8_INLINE Token::Value KeywordOrIdentifierToken(const uint8_t* input,
int input_length) { … }
template <int N>
constexpr bool IsInString(const char (&s)[N], char c, size_t i = 0) { … }
inline constexpr bool CanBeKeywordCharacter(char c) { … }
static_assert …;
constexpr Token::Value GetOneCharToken(char c) { … }
static const constexpr Token::Value one_char_tokens[128] = …;
#undef KEYWORDS
V8_INLINE Token::Value Scanner::ScanIdentifierOrKeyword() { … }
enum class ScanFlags : uint8_t { … };
constexpr uint8_t GetScanFlags(char c) { … }
inline bool TerminatesLiteral(uint8_t scan_flags) { … }
inline bool CanBeKeyword(uint8_t scan_flags) { … }
inline bool IdentifierNeedsSlowPath(uint8_t scan_flags) { … }
inline bool MultilineCommentCharacterNeedsSlowPath(uint8_t scan_flags) { … }
inline bool MayTerminateString(uint8_t scan_flags) { … }
static constexpr const uint8_t character_scan_flags[128] = …;
inline bool CharCanBeKeyword(base::uc32 c) { … }
V8_INLINE Token::Value Scanner::ScanIdentifierOrKeywordInner() { … }
V8_INLINE Token::Value Scanner::SkipWhiteSpace() { … }
V8_INLINE Token::Value Scanner::ScanSingleToken() { … }
void Scanner::Scan(TokenDesc* next_desc) { … }
void Scanner::Scan() { … }
}
}
#endif