diff --git a/spec/rules/rules_spec.cpp b/spec/rules/rules_spec.cpp index 0aa2ddbc..7c47e777 100644 --- a/spec/rules/rules_spec.cpp +++ b/spec/rules/rules_spec.cpp @@ -29,37 +29,34 @@ Describe(Rules) { It(handles_symbols) { AssertThat( symbol1->transitions(), - EqualsTransitionMap(TransitionMap( - { symbol1 }, - { rules::blank() } - ))); + EqualsTransitionMap(TransitionMap({ + { symbol1, rules::blank() } + }))); } It(handles_characters) { AssertThat( char1->transitions(), - EqualsTransitionMap(TransitionMap( - { char1 }, - { rules::blank() } - ))); + EqualsTransitionMap(TransitionMap({ + { char1, rules::blank() } + }))); } It(handles_choices) { AssertThat( rules::choice({ symbol1, symbol2 })->transitions(), - EqualsTransitionMap(TransitionMap( - { symbol1, symbol2 }, - { rules::blank(), rules::blank() } - ))); + EqualsTransitionMap(TransitionMap({ + { symbol1, rules::blank() }, + { symbol2, rules::blank() } + }))); } It(handles_sequences) { AssertThat( rules::seq({ symbol1, symbol2 })->transitions(), - EqualsTransitionMap(TransitionMap( - { symbol1 }, - { symbol2 } - ))); + EqualsTransitionMap(TransitionMap({ + { symbol1, symbol2 } + }))); } It(handles_long_sequences) { @@ -70,10 +67,9 @@ Describe(Rules) { symbol3, symbol4 })->transitions(), - EqualsTransitionMap(TransitionMap( - { symbol1 }, - { rules::seq({ symbol2, symbol3, symbol4 }) } - ))); + EqualsTransitionMap(TransitionMap({ + { symbol1, rules::seq({ symbol2, symbol3, symbol4 }) } + }))); } It(handles_choices_with_common_starting_symbols) { @@ -81,28 +77,29 @@ Describe(Rules) { rules::choice({ rules::seq({ symbol1, symbol2 }), rules::seq({ symbol1, symbol3 }) })->transitions(), - EqualsTransitionMap(TransitionMap( - { symbol1 }, - { rules::choice({ symbol2, symbol3 }) } - ))); + EqualsTransitionMap(TransitionMap({ + { symbol1, rules::choice({ symbol2, symbol3 }) } + }))); } It(handles_strings) { AssertThat( rules::str("bad")->transitions(), - EqualsTransitionMap(TransitionMap( - { rules::character('b') }, - { rules::seq({ rules::character('a'), rules::character('d') }) } - ))); + EqualsTransitionMap(TransitionMap({ + { + rules::character('b'), + rules::seq({ rules::character('a'), rules::character('d') }) + } + }))); } It(handles_patterns) { AssertThat( rules::pattern("a|b")->transitions(), - EqualsTransitionMap(TransitionMap( - { rules::character('a'), rules::character('b') }, - { rules::blank(), rules::blank() } - ))); + EqualsTransitionMap(TransitionMap({ + { rules::character('a'), rules::blank() }, + { rules::character('b'), rules::blank() } + }))); } }; }; diff --git a/src/rules/char.cpp b/src/rules/char.cpp index cbe06a1f..6fba0f24 100644 --- a/src/rules/char.cpp +++ b/src/rules/char.cpp @@ -13,7 +13,7 @@ namespace tree_sitter { } TransitionMap Char::transitions() const { - return TransitionMap({ character(value) }, { blank() }); + return TransitionMap({{ character(value), blank() }}); } bool Char::operator==(const Rule &rule) const { diff --git a/src/rules/symbol.cpp b/src/rules/symbol.cpp index 8b3f8c6c..7ed19363 100644 --- a/src/rules/symbol.cpp +++ b/src/rules/symbol.cpp @@ -11,7 +11,7 @@ namespace tree_sitter { } TransitionMap Symbol::transitions() const { - return TransitionMap({ sym(name) }, { blank() }); + return TransitionMap({{ sym(name) , blank() }}); } bool Symbol::operator==(const Rule &rule) const { diff --git a/src/transition_map.h b/src/transition_map.h index 7bd65cec..516ed585 100644 --- a/src/transition_map.h +++ b/src/transition_map.h @@ -21,13 +21,7 @@ namespace tree_sitter { TransitionMap() : contents(contents_type()) {}; - TransitionMap(std::initializer_list keys, std::initializer_list 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> 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;