a + bmeansaorba * bmeansaba ** nmeansaaaa...aaa(n times)a ** Nonemeansepsoraoraaor ...0means nothing (empty set of possible strings)1means eps
(a + 1) * (b + 1) means eps or a or b or ab
python command.py --operations [OPERATIONS...] --letters LETTERS
where:
OPERATIONS is a sequence of operations from this list:
- re-to-eps-nfa
- remove-eps
- make-deterministic
- make-full
- minimize
- invert
- eps-nfa-to-re
<labels> - All labels to be used (alphabet).
Note: commands are executed in a given order from left to right. Each of them has preconditions that must be met for it to work, which can be seen by calling --help. Script will refuse to work without them.
python3 -m pip install pytest coverage
pytest ./test_all.py
./coverage.sh
Name Stmts Miss Cover
---------------------------------
command.py 199 16 92%
convert.py 190 6 97%
fa.py 120 1 99%
utils.py 12 3 75%
validate.py 29 2 93%
---------------------------------
TOTAL 550 28 95%