In TransitionMap constructor, use initializer lists for pairs

This commit is contained in:
Max Brunsfeld 2013-11-14 21:33:36 -08:00
parent 2102d542e1
commit 80acabb03e
4 changed files with 33 additions and 42 deletions

View file

@ -13,7 +13,7 @@ namespace tree_sitter {
}
TransitionMap<Rule> Char::transitions() const {
return TransitionMap<Rule>({ character(value) }, { blank() });
return TransitionMap<Rule>({{ character(value), blank() }});
}
bool Char::operator==(const Rule &rule) const {

View file

@ -11,7 +11,7 @@ namespace tree_sitter {
}
TransitionMap<Rule> Symbol::transitions() const {
return TransitionMap<Rule>({ sym(name) }, { blank() });
return TransitionMap<Rule>({{ sym(name) , blank() }});
}
bool Symbol::operator==(const Rule &rule) const {

View file

@ -21,13 +21,7 @@ namespace tree_sitter {
TransitionMap() : contents(contents_type()) {};
TransitionMap(std::initializer_list<rule_ptr> keys, std::initializer_list<mapped_ptr> values) : TransitionMap() {
auto value_iter(values.begin());
for (auto key_iter(keys.begin()); key_iter != keys.end(); ++key_iter) {
add(*key_iter, *value_iter);
++value_iter;
}
}
TransitionMap(std::initializer_list<std::pair<rule_ptr, mapped_ptr>> pairs) : contents(pairs) {};
typedef typename contents_type::const_iterator const_iterator;
typedef typename contents_type::iterator iterator;
@ -45,7 +39,7 @@ namespace tree_sitter {
return contents.size();
}
mapped_ptr operator[](rules::Rule const &on_rule) {
mapped_ptr operator[](rules::Rule const &on_rule) const {
pair_type *pair = pair_for_key(on_rule);
if (pair)
return pair->second;