Jordan Dehmel, 2024
Programming languages at CMU under Dr. Warren MacEvoy
This software was produced as a final project for Programming Languages under Dr. Warren MacEvoy at Colorado Mesa University. It is a regular expression compiler, targetting DFA. It goes through the following steps:
- Break input regular expression into subexpressions
- Compile each subexpression into an
$\epsilon$ -NFA - Knit
$\epsilon$ -NFAs into a single expression (also an$\epsilon$ -NFA) - Remove epsilon transitions to bring the expression to DFA form
- Remove dead nodes from DFA
This software has dependencies on the following piece(s) of software:
g++20 or laterclang-formatgraphviz/dotplantumlmake
On Linux:
# Compile and run unit tests
make runThis can be used in C++ programs by including regex.hpp or
regex_manager.hpp.
This software is licensed under the MIT license.