From b97e4f1de8a7d7625fb45da9c5eb23566440225c Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Thu, 1 May 2014 23:40:04 -0700 Subject: [PATCH] Clean up intern symbols function --- .../prepare_grammar/intern_symbols.cc | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/src/compiler/prepare_grammar/intern_symbols.cc b/src/compiler/prepare_grammar/intern_symbols.cc index 7f6b2f16..fd0e5807 100644 --- a/src/compiler/prepare_grammar/intern_symbols.cc +++ b/src/compiler/prepare_grammar/intern_symbols.cc @@ -16,26 +16,19 @@ namespace tree_sitter { namespace prepare_grammar { class InternSymbols : public rules::IdentityRuleFn { - const Grammar grammar; using rules::IdentityRuleFn::apply_to; - int index_of(string rule_name) { - for (size_t i = 0; i < grammar.rules.size(); i++) - if (grammar.rules[i].first == rule_name) - return i; - return -1; - } - rule_ptr apply_to(const rules::NamedSymbol *rule) { - int index = index_of(rule->name); - if (index == -1) - missing_rule_name = rule->name; - return make_shared(index); + for (size_t i = 0; i < grammar.rules.size(); i++) + if (grammar.rules[i].first == rule->name) + return make_shared(i); + missing_rule_name = rule->name; + return rule_ptr(); } public: explicit InternSymbols(const Grammar &grammar) : grammar(grammar) {} - + const Grammar grammar; string missing_rule_name; };