Justin Viiret
1245156f44
parser: handle "control verbs" without close paren
2017-04-26 14:59:02 +10:00
Justin Viiret
084596bb5e
parser: check for std::out_of_range from stoul
2017-04-26 14:58:46 +10:00
Justin Viiret
bef6889844
parser: use control_verb parser inline
2017-04-26 14:58:43 +10:00
Justin Viiret
bfc8be5675
parser: use stoul(), not strtol()
2017-04-26 14:57:53 +10:00
Justin Viiret
4def0c8a52
parser: switch to using char* pointers
2017-04-26 14:57:53 +10:00
Justin Viiret
1875d55cf1
parser: add initial parser for control verbs
...
This more reliably handles control verbs like (*UTF8) that can only
happen at the start of the pattern, and allows them in any ordering.
2017-04-26 14:57:46 +10:00
Justin Viiret
67e450115a
parser: ignore \E that is not preceded by \Q
...
This conforms to PCRE's behaviour, where an isolated \E that is not
preceded by \Q is ignored.
2016-08-10 15:08:01 +10:00
Matthew Barr
cbd115f7fe
Don't shadow names
2016-08-10 15:06:57 +10:00
Justin Viiret
fd19168025
Restore \Q..\E support in character classes
2015-11-18 15:27:05 +11:00
Justin Viiret
c68bfe05d8
Don't use class_empty in early class parsing
...
Instead, explicitly track whether we're still in the early class parsing
machine.
2015-11-10 14:36:39 +11:00
Justin Viiret
b1f6a539c7
Remove dead ComponentClass::{get,set}FirstChar
2015-11-10 14:36:39 +11:00
Justin Viiret
9a7b912a5d
Rework parser rejection for POSIX collating elems
...
Implement rejection of POSIX collating elements ("[.ch.]" and "[=ch=]"
entirely in the Ragel parser, using the same approach both inside and
ouside character classes.
Fix buggy rejection of [^.ch.], which we should accept as a character
class.
2015-11-10 14:36:39 +11:00
Matthew Barr
904e436f11
Initial commit of Hyperscan
2015-10-20 09:13:35 +11:00