]> granicus.if.org Git - re2c/commitdiff
Don't forget final and fallback commands when looking for history-based tags.
authorUlya Trofimovich <skvadrik@gmail.com>
Sat, 8 Apr 2017 18:58:50 +0000 (19:58 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Sat, 8 Apr 2017 18:58:50 +0000 (19:58 +0100)
re2c/src/code/emit_dfa.cc

index dd6e4f0b4e8cd18608752da29e15cd04e70a9499..ee49049b51fa6beb2ca028a4c05bfa8c9b15ac24 100644 (file)
@@ -151,6 +151,8 @@ static void find_list_tags(const DFA &dfa, bool *list)
                for (uint32_t i = 0; i < go.nSpans; ++i) {
                        find_list_tags_cmd(dfa.tcpool[go.span[i].tags], list);
                }
+               find_list_tags_cmd(dfa.tcpool[s->rule_tags], list);
+               find_list_tags_cmd(dfa.tcpool[s->fall_tags], list);
        }
        prop_list_tags_cmd(dfa.tcpool[dfa.tags0], list);
        for (State *s = dfa.head; s; s = s->next) {
@@ -159,6 +161,8 @@ static void find_list_tags(const DFA &dfa, bool *list)
                for (uint32_t i = 0; i < go.nSpans; ++i) {
                        prop_list_tags_cmd(dfa.tcpool[go.span[i].tags], list);
                }
+               prop_list_tags_cmd(dfa.tcpool[s->rule_tags], list);
+               prop_list_tags_cmd(dfa.tcpool[s->fall_tags], list);
        }
 }