tree-sitter/src/compiler/grammar.cpp

25 lines
623 B
C++
Raw Normal View History

#include "grammar.h"
2013-12-15 14:41:51 -08:00
using namespace std;
namespace tree_sitter {
2013-11-13 20:22:06 -08:00
Grammar::Grammar(const rule_map_init_list &rules) :
rules(rules),
2013-11-13 20:22:06 -08:00
start_rule_name(rules.begin()->first) {}
2013-11-20 19:00:20 -08:00
const rules::rule_ptr Grammar::rule(const std::string &name) const {
2013-11-13 20:22:06 -08:00
auto iter = rules.find(name);
return (iter == rules.end()) ?
rules::rule_ptr(nullptr) :
iter->second;
}
2013-12-15 14:41:51 -08:00
vector<string> Grammar::rule_names() const {
vector<string> result;
for (auto pair : rules) {
result.push_back(pair.first);
}
return result;
}
}