374 Commits

Author SHA1 Message Date
Justin Viiret
ea8d0bcb1c rose: build fragments directly 2017-04-26 15:04:30 +10:00
Justin Viiret
79512bd5c3 rose: use fragment ids earlier for anchored dfas 2017-04-26 15:04:30 +10:00
Justin Viiret
8b25d83415 rose: write fragment ids into literal_info 2017-04-26 15:04:30 +10:00
Justin Viiret
1eae677d73 rose_build_impl: fix header guard 2017-04-26 15:04:30 +10:00
Justin Viiret
893674d3c7 rose_build_anchored: tbi->build 2017-04-26 15:04:30 +10:00
Justin Viiret
821a1b81e6 rose: only dump delay rebuild table if streaming 2017-04-26 14:58:46 +10:00
Justin Viiret
d43e9d838f rose: delete dead code for cloneVertex 2017-04-26 14:56:49 +10:00
Justin Viiret
c4bfe0449c lookaround: reduce compile time for trimLiterals 2017-04-26 14:56:49 +10:00
Justin Viiret
8ee8f5f236 safety assertions for delayed rebuild 2017-04-26 14:56:49 +10:00
Justin Viiret
a4af801dd1 rose: define invalid value for program offset 2017-04-26 14:56:49 +10:00
Justin Viiret
ebe12797e6 assert program offsets are non-zero 2017-04-26 14:56:49 +10:00
Justin Viiret
7bdb327203 rose: use final_ids less in program construction 2017-04-26 14:56:48 +10:00
Justin Viiret
a83b7cb348 move final_id_to_literal into build_context 2017-04-26 14:56:48 +10:00
Justin Viiret
a0260c0362 rose: do fragment group assignment earlier 2017-04-26 14:56:48 +10:00
Justin Viiret
6bf35cb637 rose: make groupByFragment local 2017-04-26 14:49:51 +10:00
Justin Viiret
a5b3bc814f rose: delete RoseEngine::literalCount 2017-04-26 14:49:51 +10:00
Justin Viiret
9550058e75 remove lit program tables from bytecode 2017-04-26 14:49:51 +10:00
Justin Viiret
bd3357d3ac rose: dump lit programs from frag map 2017-04-26 14:49:51 +10:00
Justin Viiret
c6bf1919d0 rose: merge all dump code into rose_build_dump.cpp 2017-04-26 14:49:35 +10:00
Justin Viiret
c2cac5009a tidy up args to builders 2017-04-26 14:46:49 +10:00
Justin Viiret
3ae2fb417e move final_to_frag_map into RoseBuildImpl (for dump code) 2017-04-26 14:46:49 +10:00
Justin Viiret
cfa63a7096 stream: simplify do_rebuild call site 2017-04-26 14:46:49 +10:00
Justin Viiret
76f72b6ab4 rose: use program offsets directly in lit tables 2017-04-26 14:46:48 +10:00
Justin Viiret
ac858cd47c rose: build a separate delay rebuild matcher 2017-04-26 14:46:48 +10:00
Justin Viiret
5706acf5c0 role aliasing: bail if new graph is not implementable 2017-04-26 14:46:46 +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
c32d7d51d9 remove ng_rose 2017-04-26 14:44:49 +10:00
Alex Coyte
d89cf2f699 tidy 2017-04-26 14:44:29 +10:00
Alex Coyte
7767651b59 shift all early_dfa creation logic to ng_violet/ng_rose 2017-04-26 14:44:29 +10:00
Alex Coyte
9d35e2ad36 allow outfixes to be converted to prefixes of the eod event literal 2017-04-26 14:44:03 +10:00
Alex Coyte
512c049493 shift early_dfa construction earlier 2017-04-26 14:44:03 +10:00
Alex Coyte
caa46201f0 add information on the runtime impl to rose.txt 2017-04-26 14:44:03 +10:00
Justin Viiret
c6b2563df6 rose: delete literal_info requires_explode flag 2017-04-26 14:43:28 +10:00
Justin Viiret
f964801923 rose: explode mixed-case literals early 2017-04-26 14:43:28 +10:00
Justin Viiret
f307956584 rose: do not combine fragments which squash groups 2017-04-26 14:41:30 +10:00
Justin Viiret
c31c1c366e filterLits: better debug output 2017-04-26 14:41:30 +10:00
Justin Viiret
988ea6b4e1 rose: role aliasing improvements
These changes improve the performance of the role aliasing passes on
very large cases and fix a couple of small errors in the left and right
merge passes as well.
2017-04-26 14:41:30 +10:00
Justin Viiret
1584da9025 rose: don't accel noodle engines 2017-04-26 14:41:29 +10:00
Justin Viiret
68a35ff3b8 rose: give longer literals to accel analysis 2017-04-26 14:41:29 +10:00
Justin Viiret
2fda8c0b20 hwlm: move accel from hwlm build to rose 2017-04-26 14:41:29 +10:00
Justin Viiret
abcac24b47 rose: add more program dump code 2017-04-26 14:41:29 +10:00
Justin Viiret
eb14792a63 rose: group final ids by fragment 2017-04-26 14:41:29 +10:00
Justin Viiret
07a6b6510c rose/hwlm: limit literals to eight bytes
Rework HWLM to work over literals of eight bytes ("medium length"),
doing confirm in the Rose interpreter.
2017-04-26 14:41:29 +10:00
Justin Viiret
5c9c540424 rose: fix up comments referring to CHECK_LITERAL
This instruction is now called CHECK_LONG_LIT.
2017-04-26 14:41:29 +10:00
Justin Viiret
5061b76901 rose: mark RoseInstrCheckLongLit ctor explit 2017-04-26 14:41:29 +10:00
Justin Viiret
8f1b3c89fa rose: remove no-longer-used convertBadLeaves pass 2017-04-26 14:41:29 +10:00
Matthew Barr
bc2f336d9d Work around for deficiency in C++11/14/17 standard
As explained to us by STL at Microsoft (the author of their
vector), there is a hole in the standard wrt the vector copy
constructor, which always exists even if it won't compile.
2017-04-26 14:41:29 +10:00
Justin Viiret
68bdc800fc dump: render literals as regexes (with comments) 2017-04-26 14:41:29 +10:00
Alex Coyte
f9324febde Ensure the queue structure is initialised in roseEnginesEod(). 2017-03-01 13:05:10 +11:00
Alex Coyte
734eb2ce62 we can only trim lookarounds based on information common to all literals 2017-01-17 11:39:17 +11:00