19 lines
653 B
Plaintext
19 lines
653 B
Plaintext
REGEX ENGINE
|
|
|
|
I've thought for a while it would be fun and interesting to write my
|
|
own regular expression engine using Thompson's construction algorithm,
|
|
so here we are.
|
|
|
|
Grammar
|
|
|
|
This engine is not going to be strictly supporting any standard
|
|
syntax; the expression syntax I intend to support follows.
|
|
|
|
regex ::= sequence ( '|' regex )?
|
|
sequence ::= term+
|
|
term ::= ( '.' | class | literal | '(' regex ')' ) quantifier?
|
|
class ::= '[' '^'? literal+ ']'
|
|
literal ::= non-special | '\' special
|
|
quantifier ::= '*' | '+' | '?'
|
|
special ::= quantifier | '|' | '(' | ')' | '[' | ']' | '^' | '\'
|