#! /usr/bin/perl use locale; use strict; my $file = shift; my $filename; if ($file eq "") { print "Podaj nazwę pliku.\n"; exit(1); } if ($file =~ /(.*)\.dic/) { $filename = $1; } else { print "The input file must have .dic extension."; exit(1); } `makeLabels.pl > labels.sym`; `lexmakelab labels`; print "Kanonizuję opisy........................................."; #`canon.pl <$file >temp2`; print "Kompiluję automat........................................"; `lexcomplex -l labels.lab -S labels.scl <$file > temp1`; print "OK\n"; print "Usuwam epsilon-przejscia................................."; `fsmrmepsilon temp1> temp2`; print "OK\n"; print "Determinizuję automat...................................."; `fsmdeterminize temp2 > temp1`; print "OK\n"; print "Minimalizuję automat....................................."; `fsmminimize temp1> temp2`; print "OK\n"; print "Konwertuję automat do formatu fsa........................"; `fsmprint -i labels.lab temp2> temp1`; `cp temp1 pofsmprint`; `../fsm2aut temp1> temp2`; `./aut2fsa.nowy < temp2> $filename.bin`; print "OK\n"; print "Czyszczę pliki pomocnicze................................"; `rm temp2`; `rm temp1`; #`rm labels.*`; print "OK\n";