mgen: match automatons and C generation

The algorithm to generate matchers
took a long time to be discovered
and refined to its present version.
The rest of mgen is mostly boring
engineering.

Extensive fuzzing ensures that the
two core components of mgen (tables
and matchers generation) are correct
on specific problem instances.
This commit is contained in:
Quentin Carbonneaux 2023-05-12 16:44:04 +02:00
parent 56e2263ca4
commit a609527752
11 changed files with 2144 additions and 444 deletions

16
tools/mgen/Makefile Normal file
View file

@ -0,0 +1,16 @@
BIN = mgen
SRC = \
match.ml \
fuzz.ml \
cgen.ml \
sexp.ml \
test.ml \
main.ml
$(BIN): $(SRC)
ocamlopt -o $(BIN) -g str.cmxa $(SRC)
clean:
rm -f *.cm? *.o $(BIN)
.PHONY: clean