Make ParseItemSet & LexItemSet classes
This commit is contained in:
parent
f01972c64e
commit
ef2acf9496
11 changed files with 88 additions and 44 deletions
|
|
@ -23,15 +23,21 @@ class ParseItem {
|
|||
int rule_id;
|
||||
};
|
||||
|
||||
typedef std::map<ParseItem, LookaheadSet> ParseItemSet;
|
||||
class ParseItemSet {
|
||||
public:
|
||||
ParseItemSet();
|
||||
ParseItemSet(const std::map<ParseItem, LookaheadSet> &);
|
||||
|
||||
struct ParseItemSetHash {
|
||||
size_t operator()(const ParseItemSet &) const;
|
||||
std::map<rules::Symbol, ParseItemSet> transitions(const SyntaxGrammar &) const;
|
||||
bool operator==(const ParseItemSet &) const;
|
||||
|
||||
std::map<ParseItem, LookaheadSet> entries;
|
||||
|
||||
struct Hash {
|
||||
size_t operator()(const ParseItemSet &) const;
|
||||
};
|
||||
};
|
||||
|
||||
std::map<rules::Symbol, ParseItemSet> parse_item_set_transitions(
|
||||
const ParseItemSet &, const SyntaxGrammar &);
|
||||
|
||||
} // namespace build_tables
|
||||
} // namespace tree_sitter
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue