]> granicus.if.org Git - re2c/commit
POSIX disambiguation: use the same comparison algorithm for orbit and non-orbit tags.
authorUlya Trofimovich <skvadrik@gmail.com>
Fri, 28 Jul 2017 10:17:10 +0000 (11:17 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Fri, 28 Jul 2017 10:17:10 +0000 (11:17 +0100)
commitca9f601f1655e65b593c485b00c67f9b58bba577
tree24aa7d140fd4add089779ec38148a0e749e58e0c
parentebbbcb1569bf0739e05c3f98e6d34d46e9800b42
POSIX disambiguation: use the same comparison algorithm for orbit and non-orbit tags.

Previously we needed a different algorithm for non-orbit tags, because
disambiguation was based on both start and end tags. Non-orbit start tags
cannot be compared incrementally, like orbit tags, becuse default value
may be discovered on a later step than non-default value. Non-orbit end
tags do not have this problem: since negative tags are inserted at the end
of alternatives, default value is always discovered on the same step as
non-default value (provided that all higher-priority tags agree and
comparison reaches this tag at all).

Now that start tags are ignored, we can use incremental comparison for both
orbit and non-orbit subhistories, which simplifies the code.
re2c/src/dfa/closure.cc
re2c/src/dfa/tagtree.cc
re2c/src/dfa/tagtree.h