X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fkeyword.cc;h=b5f7947ada203e31550ee041a557f37f439b115c;hb=b872748c6aa8bb721ced458691b38ac2fac5dfc8;hp=418542cd2566237b3d9a254ff4969c7bb3e2751f;hpb=c659cb200486c2f908703696a1b2873e78c8160a;p=lilypond.git diff --git a/lily/keyword.cc b/lily/keyword.cc index 418542cd25..b5f7947ada 100644 --- a/lily/keyword.cc +++ b/lily/keyword.cc @@ -1,36 +1,34 @@ /* keyword.cc -- keywords and identifiers - */ +*/ #include "keyword.hh" #include #include +using namespace std; /* for qsort */ -int tabcmp (Keyword_ent const &p1, Keyword_ent const &p2) +bool tab_less (Keyword_ent const &p1, Keyword_ent const &p2) { - return strcmp (p1.name_, p2.name_); + return strcmp (p1.name_, p2.name_) < 0; } Keyword_table::Keyword_table (Keyword_ent *tab) { while (tab->name_) - { - table_.push (*tab++); - } + table_.push_back (*tab++); - table_.sort (tabcmp); + vector_sort (table_, tab_less); } -int +vsize Keyword_table::lookup (char const *s) const { - Keyword_ent e ; - e.name_ = s; - int idx = binary_search (table_, e, tabcmp); - if (idx >= 0) + Keyword_ent e; + e.name_ = s; + vsize idx = binary_search (table_, e, tab_less); + if (idx != VPOS) return table_[idx].tokcode_; - else - return -1; + return VPOS; }