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 ( '|' sequence )* sequence ::= term+ term ::= ( '.' | class | literal | '(' regex ')' ) quantifier? class ::= '[' '^'? literal+ ']' literal ::= non-special | '\' special quantifier ::= '*' | '+' | '?' special ::= quantifier | '|' | '(' | ')' | '[' | ']' | '^' | '\' Building and Running Tests There are two scripts, build.sh and test.sh, which will (much to everybody's shock) build and run tests. The build script uses Clang but the code is ISO C11 so it should compile just fine with GCC or something instead. sh scripts/build.sh # Compile library and test code sh scripts/test.sh # Run tests There is also an entr.sh script which will watch all the project's files and rebuild and rerun the tests on any changes, using the entr tool.
Description
Languages
C
96.2%
CMake
2.9%
Shell
0.9%