Justin Viiret
5fe524fbb3
rose: allow lits that squash to share fragments
2017-04-26 15:18:26 +10:00
Justin Viiret
18f843bcc1
rose: add CLEAR_WORK_DONE instruction
...
Preparatory work for allowing fragments to be shared between literals
that squash groups and those that don't.
2017-04-26 15:18:26 +10:00
Alex Coyte
de52b30c3e
make rose responsible for dumping its bytecode
2017-04-26 15:17:19 +10:00
Alex Coyte
aeba9bc42c
rose_build_bytecode: make build_context, RoseBuildImpl params const
2017-04-26 15:17:19 +10:00
Justin Viiret
96fdca6f54
rose: guard writeNfaInfo from zero NFAs
2017-04-26 15:16:03 +10:00
Matthew Barr
c50a931bb4
Use std::move explicitly to avoid ambiguity with boost
2017-04-26 15:16:03 +10:00
Justin Viiret
60fc975c81
rose: use ROUNDUP_N for alignment
2017-04-26 15:11:10 +10:00
Justin Viiret
09d19c7c57
rose: remove unnecessary engine blob size check
2017-04-26 15:11:10 +10:00
Justin Viiret
2ec3019e04
rose: do state work before writing NfaInfo structs
2017-04-26 15:11:10 +10:00
Justin Viiret
96be1190ef
rose: move matcher bytecode to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
b2aae060d8
rose: consistent naming in updateNfaState
2017-04-26 15:11:10 +10:00
Justin Viiret
6013fb1546
engine_blob: add_range() member function
2017-04-26 15:11:10 +10:00
Justin Viiret
10aa806d67
rose: clean up nfa state alloc
2017-04-26 15:11:10 +10:00
Justin Viiret
246f9f4f86
rose: update nfa info earlier, in engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
a0b0247e47
rose: move NfaInfo to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
c619621573
rose: move leftfix info into engine blob, refactor
2017-04-26 15:11:10 +10:00
Justin Viiret
395d6ae650
rose: move dkey info to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
e3d2d67833
rose: move lookaround tables to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
b6254ca11f
rose: move active leftfix iter to engine blob
2017-04-26 15:11:10 +10:00
Justin Viiret
282f72e04d
rose: move SOM reverse NFAs to engine_blob
2017-04-26 15:11:10 +10:00
Justin Viiret
f4bda9def6
rose: build RoseEngine prototype for bytecode
...
Rather than tracking a great many offsets in u32 variables, build them
in a RoseEngine prototype.
2017-04-26 15:11:10 +10:00
Justin Viiret
7b5c4c85cc
rose: create new ProgramBuild struct
2017-04-26 15:04:31 +10:00
Justin Viiret
78875614c8
rose: make buildLiteralProgram take one lit_id
2017-04-26 15:04:31 +10:00
Justin Viiret
b525d7786c
rose: don't assign fragments for event lits
2017-04-26 15:04:31 +10:00
Justin Viiret
bf93c993cb
rose: remove final_id
2017-04-26 15:04:31 +10:00
Justin Viiret
b68694b729
rose: new program construction code
2017-04-26 15:04:31 +10:00
Justin Viiret
176c61aeaa
rose_build_bytecode: clean up findEdgesByLiteral()
2017-04-26 15:04:31 +10:00
Justin Viiret
6a0dc261a2
rose_build_bytecode: less final_id
2017-04-26 15:04:31 +10:00
Justin Viiret
24ffb156e9
rose: eliminate global final to fragment map
2017-04-26 15:04:31 +10:00
Justin Viiret
454fbf33d5
rose: tidy
2017-04-26 15:04:31 +10:00
Justin Viiret
dc50ab291b
container: allow sort_and_unique to have a comparator
2017-04-26 15:04:31 +10:00
Justin Viiret
cea8f452f2
rose: reorganise delay program generation
2017-04-26 15:04:31 +10:00
Justin Viiret
a2d2f7cb95
rose: dedupe anch programs and RECORD_ANCHOREDs
2017-04-26 15:04:31 +10:00
Justin Viiret
75c7f42314
rose: don't emit RECORD_ANCHORED in anchored progs
2017-04-26 15:04:31 +10:00
Justin Viiret
f5dd20e461
rose: rearrange anchored program generation
2017-04-26 15:04:31 +10:00
Justin Viiret
6a945e27fb
rose: reduce delay program dep on final_id
2017-04-26 15:04:31 +10:00
Justin Viiret
dc8220648c
rose: remove now-unused anchored_base_id
2017-04-26 15:04:30 +10:00
Justin Viiret
c426d2dc7d
rose: reduce anchored program dep on final_id
...
We only need to build anchored programs for cases where a
RECORD_ANCHORED instruction has been generated, and we can key those
directly rather than using final_id.
2017-04-26 15:04:30 +10:00
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
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
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
76f72b6ab4
rose: use program offsets directly in lit tables
2017-04-26 14:46:48 +10:00