Justin Viiret
a1bc69f3dd
rose_build_groups: allow simple-exh lits to squash
2017-04-26 15:18:13 +10:00
Alex Coyte
bbd64f98ae
allow streams to marked as exhausted in more cases
...
At stream boundaries, we can mark streams as exhausted if there are no
groups active and there are no other ways to report matches. This allows us
to stop maintaining the history buffer on subsequent stream writes.
Previously, streams were only marked as exhausted if a pure highlander case
reported all patterns or the outfix in a sole outfix case died.
2017-04-26 14:44:53 +10:00
Alex Coyte
e1e9010cac
Introduce custom adjacency-list based graph
2016-12-02 11:31:33 +11:00
Justin Viiret
7cc5346c11
assign groups: turn pair<pair> into a tuple
2016-08-10 14:49:24 +10:00
Justin Viiret
7690881f85
rose: make assignGroupsToLiterals a free function
2016-07-08 10:47:08 +10:00
Justin Viiret
89dbbe6c53
rose: make assignGroupsToRoles a free function
2016-07-08 10:47:08 +10:00
Justin Viiret
de201997b7
rose_build_groups: move findGroupSquashers
2016-07-08 10:47:07 +10:00
Justin Viiret
70ef229b2b
rose_build_groups: move getGroups, getSuccGroups
2016-07-08 10:47:07 +10:00
Justin Viiret
42419a26d2
rose_build_groups: move assignGroupsToRoles
2016-07-08 10:47:07 +10:00
Justin Viiret
2b24000b1a
rose_build_groups: move assignGroupsToLiterals
2016-07-08 10:47:07 +10:00
Justin Viiret
c2496fbf76
rose: elide SET_GROUPS when possible
2016-07-08 10:47:07 +10:00