#include "src/torque/earley-parser.h"
#include <algorithm>
#include <optional>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include "src/torque/ast.h"
#include "src/torque/utils.h"
namespace v8::internal::torque {
namespace {
struct LineAndColumnTracker { … };
}
std::optional<ParseResult> Rule::RunAction(const Item* completed_item,
const LexerResult& tokens) const { … }
Symbol& Symbol::operator=(std::initializer_list<Rule> rules) { … }
std::vector<const Item*> Item::Children() const { … }
std::string Item::SplitByChildren(const LexerResult& tokens) const { … }
void Item::CheckAmbiguity(const Item& other, const LexerResult& tokens) const { … }
LexerResult Lexer::RunLexer(const std::string& input) { … }
Symbol* Lexer::MatchToken(InputPosition* pos, InputPosition end) { … }
const Item* RunEarleyAlgorithm(
Symbol* start, const LexerResult& tokens,
std::unordered_set<Item, base::hash<Item>>* processed) { … }
DISABLE_CFI_ICALL
bool Grammar::MatchChar(int (*char_class)(int), InputPosition* pos) { … }
bool Grammar::MatchChar(bool (*char_class)(char), InputPosition* pos) { … }
bool Grammar::MatchString(const char* s, InputPosition* pos) { … }
bool Grammar::MatchAnyChar(InputPosition* pos) { … }
}