#include "src/tint/lang/wgsl/reader/parser/lexer.h"
#include <cctype>
#include <charconv>
#include <cmath>
#include <cstring>
#include <limits>
#include <optional>
#include <string>
#include <tuple>
#include <utility>
#include "src/tint/lang/core/fluent_types.h"
#include "src/tint/lang/core/number.h"
#include "src/tint/utils/ice/ice.h"
#include "src/tint/utils/strconv/parse_num.h"
#include "src/tint/utils/text/unicode.h"
usingnamespacetint::core::fluent_types;
namespace tint::wgsl::reader {
namespace {
static_assert …;
static constexpr size_t kDefaultListSize = …;
bool read_blankspace(std::string_view str,
size_t i,
bool* is_blankspace,
uint32_t* blankspace_size) { … }
uint32_t dec_value(char c) { … }
uint32_t hex_value(char c) { … }
}
Lexer::Lexer(const Source::File* file) : … { … }
Lexer::~Lexer() = default;
std::vector<Token> Lexer::Lex() { … }
std::string_view Lexer::line() const { … }
uint32_t Lexer::pos() const { … }
uint32_t Lexer::length() const { … }
const char& Lexer::at(uint32_t pos) const { … }
std::string_view Lexer::substr(uint32_t offset, uint32_t count) { … }
void Lexer::advance(uint32_t offset) { … }
void Lexer::set_pos(uint32_t pos) { … }
void Lexer::advance_line() { … }
bool Lexer::is_eof() const { … }
bool Lexer::is_eol() const { … }
Token Lexer::next() { … }
Source Lexer::begin_source() const { … }
void Lexer::end_source(Source& src) const { … }
bool Lexer::is_null() const { … }
bool Lexer::is_digit(char ch) const { … }
bool Lexer::is_hex(char ch) const { … }
bool Lexer::matches(uint32_t pos, std::string_view sub_string) { … }
bool Lexer::matches(uint32_t pos, char ch) { … }
std::optional<Token> Lexer::skip_blankspace_and_comments() { … }
std::optional<Token> Lexer::skip_comment() { … }
std::optional<Token> Lexer::try_float() { … }
std::optional<Token> Lexer::try_hex_float() { … }
Token Lexer::build_token_from_int_if_possible(Source source,
uint32_t start,
uint32_t prefix_count,
int32_t base) { … }
std::optional<Token> Lexer::try_hex_integer() { … }
std::optional<Token> Lexer::try_integer() { … }
std::optional<Token> Lexer::try_ident() { … }
std::optional<Token> Lexer::try_punctuation() { … }
std::optional<Token::Type> Lexer::parse_keyword(std::string_view str) { … }
}