Make ParseTableBuilder a private class
This commit is contained in:
parent
73d8cb3722
commit
84a7afbca5
4 changed files with 63 additions and 67 deletions
|
|
@ -1,27 +1,13 @@
|
|||
#ifndef __TreeSitter__parse_table_builder__
|
||||
#define __TreeSitter__parse_table_builder__
|
||||
|
||||
#include <unordered_map>
|
||||
#include "grammar.h"
|
||||
#include "item_set.h"
|
||||
#include "parse_table.h"
|
||||
|
||||
namespace tree_sitter {
|
||||
class Grammar;
|
||||
|
||||
namespace lr {
|
||||
class ParseTableBuilder {
|
||||
const Grammar grammar;
|
||||
ParseTable table;
|
||||
std::unordered_map<const ItemSet, size_t> state_indices;
|
||||
|
||||
long state_index_for_item_set(const ItemSet &item_set) const;
|
||||
void add_shift_actions(const ItemSet &item_set, size_t state_index);
|
||||
void add_reduce_actions(const ItemSet &item_set, size_t state_index);
|
||||
size_t add_item_set(const ItemSet &item_set);
|
||||
public:
|
||||
ParseTableBuilder(const Grammar &grammar);
|
||||
static ParseTable build_table(const Grammar &grammar);
|
||||
void build();
|
||||
};
|
||||
ParseTable build_tables(const Grammar &grammar);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue