Regular expression compiler and matcher based on nondeterministic finite automata
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
materials
.gitignore
Makefile
README
TODO
in2post.c
main.c
match.c
match.h
nfa.c
nfa.h
regex.h
routine.h
type.c
type.h

README

					Regular expressions
					automata builder and
					string matcher

This program is a fully functional regex implementation based on nondeterministic finite automatas.
However, some things have to be added, removed or fixed in order to provide (see the list in
TODO):
- NFA graphs
- other forms of user input than CLI parameters (reading files)
- precompiled NFA storing in files
- operator priority adjusting.

Another note on the latter: "|" has the same priority as concatenation (not visible), so
"ab|c" will be transformed into "ab[CONCAT]c|" instead of "abc|[CONCAT]", so
instead of allowing only strings { "ab", "ac" } the automata will allow only { "ab", "c" }.
Please, explicitly place "()" around each "|" usage, providing either
"a(b|c)" or "(ab)|c"!
This is applicable to any prospective binar operations, I just do not have any now.

--
Stanislav Hubin