aboutsummaryrefslogtreecommitdiff
path: root/gfsm/gfsm/src/programs
diff options
context:
space:
mode:
Diffstat (limited to 'gfsm/gfsm/src/programs')
-rw-r--r--gfsm/gfsm/src/programs/.cvsignore79
-rw-r--r--gfsm/gfsm/src/programs/Makefile.am613
-rw-r--r--gfsm/gfsm/src/programs/arith.tfst9
-rw-r--r--gfsm/gfsm/src/programs/c1.tfst5
-rw-r--r--gfsm/gfsm/src/programs/c2.lab11
-rw-r--r--gfsm/gfsm/src/programs/c2.tfst4
-rw-r--r--gfsm/gfsm/src/programs/c2a.tfst10
-rw-r--r--gfsm/gfsm/src/programs/c2b.tfst22
-rw-r--r--gfsm/gfsm/src/programs/c3a.tfst8
-rw-r--r--gfsm/gfsm/src/programs/c3b.tfst26
-rw-r--r--gfsm/gfsm/src/programs/c3filt.tfst20
-rw-r--r--gfsm/gfsm/src/programs/cat1.tfst3
-rw-r--r--gfsm/gfsm/src/programs/cat2.tfst4
-rw-r--r--gfsm/gfsm/src/programs/comp1a.tfst4
-rw-r--r--gfsm/gfsm/src/programs/comp1b.tfst4
-rw-r--r--gfsm/gfsm/src/programs/comp2.tfst6
-rw-r--r--gfsm/gfsm/src/programs/comp2a.tfst2
-rw-r--r--gfsm/gfsm/src/programs/comp2b.tfst3
-rw-r--r--gfsm/gfsm/src/programs/complement-in.tfst4
-rw-r--r--gfsm/gfsm/src/programs/compose-mohri-1.tfst5
-rw-r--r--gfsm/gfsm/src/programs/compose-mohri-2.tfst4
-rw-r--r--gfsm/gfsm/src/programs/config.h13
-rw-r--r--gfsm/gfsm/src/programs/connect-in.tfst7
-rw-r--r--gfsm/gfsm/src/programs/ctest.tfst7
-rw-r--r--gfsm/gfsm/src/programs/ctest2.tfst6
-rw-r--r--gfsm/gfsm/src/programs/det.tfst5
-rw-r--r--gfsm/gfsm/src/programs/determinize-in.tfst7
-rw-r--r--gfsm/gfsm/src/programs/elookup.tfst2
-rw-r--r--gfsm/gfsm/src/programs/gfsmarcsort.gog107
-rw-r--r--gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.c595
-rw-r--r--gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.h77
-rw-r--r--gfsm/gfsm/src/programs/gfsmarcsort_main.c102
-rw-r--r--gfsm/gfsm/src/programs/gfsmarith.gog132
-rw-r--r--gfsm/gfsm/src/programs/gfsmarith_cmdparser.c773
-rw-r--r--gfsm/gfsm/src/programs/gfsmarith_cmdparser.h93
-rw-r--r--gfsm/gfsm/src/programs/gfsmarith_main.c132
-rw-r--r--gfsm/gfsm/src/programs/gfsmclosure.gog79
-rw-r--r--gfsm/gfsm/src/programs/gfsmclosure_cmdparser.c495
-rw-r--r--gfsm/gfsm/src/programs/gfsmclosure_cmdparser.h67
-rw-r--r--gfsm/gfsm/src/programs/gfsmclosure_main.c100
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompile.gog102
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompile_cmdparser.c569
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompile_cmdparser.h73
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompile_main.c132
-rw-r--r--gfsm/gfsm/src/programs/gfsmcomplement.gog73
-rw-r--r--gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.c473
-rw-r--r--gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.h65
-rw-r--r--gfsm/gfsm/src/programs/gfsmcomplement_main.c105
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompose.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompose_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompose_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompose_main.c123
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompre.gog94
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompre_cmdparser.c542
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompre_cmdparser.h71
-rw-r--r--gfsm/gfsm/src/programs/gfsmcompre_main.c143
-rw-r--r--gfsm/gfsm/src/programs/gfsmconcat.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmconcat_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmconcat_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmconcat_main.c118
-rw-r--r--gfsm/gfsm/src/programs/gfsmconnect.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmconnect_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmconnect_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmconnect_main.c99
-rw-r--r--gfsm/gfsm/src/programs/gfsmconvert.gog89
-rw-r--r--gfsm/gfsm/src/programs/gfsmconvert_cmdparser.c517
-rw-r--r--gfsm/gfsm/src/programs/gfsmconvert_cmdparser.h69
-rw-r--r--gfsm/gfsm/src/programs/gfsmconvert_main.c110
-rw-r--r--gfsm/gfsm/src/programs/gfsmdeterminize.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmdeterminize_main.c100
-rw-r--r--gfsm/gfsm/src/programs/gfsmdifference.gog71
-rw-r--r--gfsm/gfsm/src/programs/gfsmdifference_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmdifference_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmdifference_main.c123
-rw-r--r--gfsm/gfsm/src/programs/gfsmdraw.gog138
-rw-r--r--gfsm/gfsm/src/programs/gfsmdraw_cmdparser.c835
-rw-r--r--gfsm/gfsm/src/programs/gfsmdraw_cmdparser.h99
-rw-r--r--gfsm/gfsm/src/programs/gfsmdraw_main.c166
-rw-r--r--gfsm/gfsm/src/programs/gfsmheader.gog57
-rw-r--r--gfsm/gfsm/src/programs/gfsmheader_cmdparser.c403
-rw-r--r--gfsm/gfsm/src/programs/gfsmheader_cmdparser.h60
-rw-r--r--gfsm/gfsm/src/programs/gfsmheader_main.c129
-rw-r--r--gfsm/gfsm/src/programs/gfsmindex.gog75
-rw-r--r--gfsm/gfsm/src/programs/gfsmindex_cmdparser.c473
-rw-r--r--gfsm/gfsm/src/programs/gfsmindex_cmdparser.h65
-rw-r--r--gfsm/gfsm/src/programs/gfsmindex_main.c124
-rw-r--r--gfsm/gfsm/src/programs/gfsminfo.gog57
-rw-r--r--gfsm/gfsm/src/programs/gfsminfo_cmdparser.c403
-rw-r--r--gfsm/gfsm/src/programs/gfsminfo_cmdparser.h60
-rw-r--r--gfsm/gfsm/src/programs/gfsminfo_main.c123
-rw-r--r--gfsm/gfsm/src/programs/gfsmintersect.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmintersect_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmintersect_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmintersect_main.c123
-rw-r--r--gfsm/gfsm/src/programs/gfsminvert.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsminvert_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsminvert_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsminvert_main.c95
-rw-r--r--gfsm/gfsm/src/programs/gfsmlabels.gog78
-rw-r--r--gfsm/gfsm/src/programs/gfsmlabels_cmdparser.c523
-rw-r--r--gfsm/gfsm/src/programs/gfsmlabels_cmdparser.h69
-rw-r--r--gfsm/gfsm/src/programs/gfsmlabels_main.c208
-rw-r--r--gfsm/gfsm/src/programs/gfsmlookup.gog77
-rw-r--r--gfsm/gfsm/src/programs/gfsmlookup_cmdparser.c473
-rw-r--r--gfsm/gfsm/src/programs/gfsmlookup_cmdparser.h65
-rw-r--r--gfsm/gfsm/src/programs/gfsmlookup_main.c125
-rw-r--r--gfsm/gfsm/src/programs/gfsmoptional.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmoptional_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmoptional_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmoptional_main.c101
-rw-r--r--gfsm/gfsm/src/programs/gfsmprint.gog80
-rw-r--r--gfsm/gfsm/src/programs/gfsmprint_cmdparser.c498
-rw-r--r--gfsm/gfsm/src/programs/gfsmprint_cmdparser.h67
-rw-r--r--gfsm/gfsm/src/programs/gfsmprint_main.c125
-rw-r--r--gfsm/gfsm/src/programs/gfsmproduct.gog78
-rw-r--r--gfsm/gfsm/src/programs/gfsmproduct_cmdparser.c450
-rw-r--r--gfsm/gfsm/src/programs/gfsmproduct_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmproduct_main.c123
-rw-r--r--gfsm/gfsm/src/programs/gfsmproject.gog76
-rw-r--r--gfsm/gfsm/src/programs/gfsmproject_cmdparser.c523
-rw-r--r--gfsm/gfsm/src/programs/gfsmproject_cmdparser.h71
-rw-r--r--gfsm/gfsm/src/programs/gfsmproject_main.c100
-rw-r--r--gfsm/gfsm/src/programs/gfsmrenumber.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmrenumber_main.c95
-rw-r--r--gfsm/gfsm/src/programs/gfsmreplace.gog79
-rw-r--r--gfsm/gfsm/src/programs/gfsmreplace_cmdparser.c514
-rw-r--r--gfsm/gfsm/src/programs/gfsmreplace_cmdparser.h69
-rw-r--r--gfsm/gfsm/src/programs/gfsmreplace_main.c108
-rw-r--r--gfsm/gfsm/src/programs/gfsmreverse.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmreverse_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmreverse_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmreverse_main.c101
-rw-r--r--gfsm/gfsm/src/programs/gfsmrmepsilon.gog80
-rw-r--r--gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmrmepsilon_main.c95
-rw-r--r--gfsm/gfsm/src/programs/gfsmsigma.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmsigma_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmsigma_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmsigma_main.c100
-rw-r--r--gfsm/gfsm/src/programs/gfsmstrings.gog76
-rw-r--r--gfsm/gfsm/src/programs/gfsmstrings_cmdparser.c525
-rw-r--r--gfsm/gfsm/src/programs/gfsmstrings_cmdparser.h69
-rw-r--r--gfsm/gfsm/src/programs/gfsmstrings_main.c153
-rw-r--r--gfsm/gfsm/src/programs/gfsmunion.gog70
-rw-r--r--gfsm/gfsm/src/programs/gfsmunion_cmdparser.c449
-rw-r--r--gfsm/gfsm/src/programs/gfsmunion_cmdparser.h63
-rw-r--r--gfsm/gfsm/src/programs/gfsmunion_main.c123
-rwxr-xr-xgfsm/gfsm/src/programs/gfsmview.sh6
-rw-r--r--gfsm/gfsm/src/programs/gfsmviterbi.gog88
-rw-r--r--gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.c473
-rw-r--r--gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.h65
-rw-r--r--gfsm/gfsm/src/programs/gfsmviterbi_main.c125
-rw-r--r--gfsm/gfsm/src/programs/isect1.tfst4
-rw-r--r--gfsm/gfsm/src/programs/isect2.tfst5
-rw-r--r--gfsm/gfsm/src/programs/lkptest.tfst13
-rw-r--r--gfsm/gfsm/src/programs/p1.tfst5
-rw-r--r--gfsm/gfsm/src/programs/p2.tfst3
-rw-r--r--gfsm/gfsm/src/programs/prunetest.tfst6
-rw-r--r--gfsm/gfsm/src/programs/r1.tfst9
-rw-r--r--gfsm/gfsm/src/programs/r2.tfst4
-rw-r--r--gfsm/gfsm/src/programs/renumber.tfst5
-rw-r--r--gfsm/gfsm/src/programs/renumber2.tfst8
-rw-r--r--gfsm/gfsm/src/programs/rev1.tfst7
-rw-r--r--gfsm/gfsm/src/programs/rme.tfst6
-rw-r--r--gfsm/gfsm/src/programs/rme2.tfst8
-rw-r--r--gfsm/gfsm/src/programs/rme2b.tfst8
-rw-r--r--gfsm/gfsm/src/programs/rme3.tfst5
-rw-r--r--gfsm/gfsm/src/programs/sort.tfst7
-rw-r--r--gfsm/gfsm/src/programs/sortme.tfst15
-rw-r--r--gfsm/gfsm/src/programs/symtest.lab15
-rw-r--r--gfsm/gfsm/src/programs/symtest.sym8
-rw-r--r--gfsm/gfsm/src/programs/test+lab.tfst3
-rw-r--r--gfsm/gfsm/src/programs/test-rn.tfst8
-rw-r--r--gfsm/gfsm/src/programs/test.lab15
-rw-r--r--gfsm/gfsm/src/programs/test.tfst3
-rw-r--r--gfsm/gfsm/src/programs/test2.tfst7
-rw-r--r--gfsm/gfsm/src/programs/test3.tfst6
-rw-r--r--gfsm/gfsm/src/programs/test4.tfst9
-rw-r--r--gfsm/gfsm/src/programs/test4b.tfst9
-rw-r--r--gfsm/gfsm/src/programs/test5.tfst3
-rw-r--r--gfsm/gfsm/src/programs/test6.tfst12
-rw-r--r--gfsm/gfsm/src/programs/test7.lab4
-rw-r--r--gfsm/gfsm/src/programs/test7.tfst2
-rw-r--r--gfsm/gfsm/src/programs/test8.tfst4
-rw-r--r--gfsm/gfsm/src/programs/test9.tfst4
-rw-r--r--gfsm/gfsm/src/programs/testa.tfsa6
-rw-r--r--gfsm/gfsm/src/programs/testa.tfst6
-rw-r--r--gfsm/gfsm/src/programs/testrn.tfst3
-rw-r--r--gfsm/gfsm/src/programs/vit-in.lab3
-rw-r--r--gfsm/gfsm/src/programs/vit-out.lab7
-rw-r--r--gfsm/gfsm/src/programs/vit-q.lab3
-rw-r--r--gfsm/gfsm/src/programs/vit.tfst17
-rw-r--r--gfsm/gfsm/src/programs/vit2.tfst15
198 files changed, 0 insertions, 25624 deletions
diff --git a/gfsm/gfsm/src/programs/.cvsignore b/gfsm/gfsm/src/programs/.cvsignore
deleted file mode 100644
index ccc326d..0000000
--- a/gfsm/gfsm/src/programs/.cvsignore
+++ /dev/null
@@ -1,79 +0,0 @@
-gfsmindex
-gfsmarith
-gfsmheader
-gfsmoptional
-gfsmreplace
-gfsmsigma
-gfsmarcsort
-gfsmclosure
-gfsmcompile
-gfsmcomplement
-gfsmcompose
-gfsmcompre
-gfsmconcat
-gfsmconnect
-gfsmconvert
-gfsmdeterminize
-gfsmdifference
-gfsmdraw
-gfsminfo
-gfsmintersect
-gfsminvert
-gfsmlabels
-gfsmlookup
-gfsmprint
-gfsmproduct
-gfsmproject
-gfsmprune
-gfsmrenumber
-gfsmreverse
-gfsmrmepsilon
-gfsmstrings
-gfsmunion
-gfsmviterbi
-
-*.out
-*.tmp
-tmp.*
-tmp
-SFST*
-
-*~
-.*~
-*.o
-*.lo
-*.la
-.libs
-*.a
-*.so
-.deps
-*.ps
-*.lfsa
-*.fst
-#*.tfst
-*.fsa
-#*.tfsa
-*.thfst
-*.afst
-*.afsa
-*.gfsa
-*.gfst
-*.dot
-#*.lab
-*.scl
-
-#*_cmdparser.c
-#*_cmdparser.h
-
-argh
-save
-tdata
-
-stamp-h*
-aclocal.m4
-Makefile
-Makefile.in
-README.txt
-configure
-
-ma-dwds-hacks
diff --git a/gfsm/gfsm/src/programs/Makefile.am b/gfsm/gfsm/src/programs/Makefile.am
deleted file mode 100644
index b59e087..0000000
--- a/gfsm/gfsm/src/programs/Makefile.am
+++ /dev/null
@@ -1,613 +0,0 @@
-## File: src/programs/Makefile.am
-## Package: gfsm
-## Description:
-## + src-level automake file
-##
-## Process this file with Automake to create Makefile.in.
-##-----------------------------------------------------------------------
-
-##-----------------------------------------------------------------------
-## subdirectories
-##-----------------------------------------------------------------------
-#SUBDIRS =
-
-##-----------------------------------------------------------------------
-## primary targets
-##-----------------------------------------------------------------------
-
-## --- executable programs
-#bin_PROGRAMS = ${prog_1} ... ${prog_N}
-bin_PROGRAMS = \
- gfsmarcsort \
- gfsmarith \
- gfsmclosure \
- gfsmcompile \
- gfsmcomplement \
- gfsmcompose \
- gfsmcompre \
- gfsmconcat \
- gfsmconnect \
- gfsmconvert \
- gfsmdeterminize \
- gfsmdifference \
- gfsmdraw \
- gfsmheader \
- gfsminfo \
- gfsmintersect \
- gfsminvert \
- gfsmlabels \
- gfsmlookup \
- gfsmoptional \
- gfsmprint \
- gfsmproduct \
- gfsmproject \
- gfsmrenumber \
- gfsmreplace \
- gfsmreverse \
- gfsmrmepsilon \
- gfsmsigma \
- gfsmstrings \
- gfsmunion \
- gfsmviterbi
-
-EXTRA_PROGRAMS = gfsmindex
-bin_PROGRAMS += gfsmindex
-
-EXTRA_DIST =
-
-#bin_SCRIPTS = ${script1} ... ${scriptN}
-
-## --- libtool libraries
-#lib_LTLIBRARIES = ${lib_1}.la ... ${lib_N}.la
-
-## --- shared data in @pkgdatadir@
-#pkgdata_DATA = ${data_1} ... ${data_N}
-
-## --- manpages -- section is auto-detected
-#man_MANS = ${man_1} ... ${man_N}
-
-##-----------------------------------------------------------------------
-## sources
-##-----------------------------------------------------------------------
-
-SUFFIXES = \
- .gog _cmdparser.c _cmdparser.cc _cmdparser.h \
- .pod .txt .1 .html .tex
-
-
-##-----------------------------------------------------------------------
-## individual programs
-##-----------------------------------------------------------------------
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-## --- Required sources
-#${prog_i}_SOURCES =
-##
-## --- Extra (possible)sources
-#EXTRA_${prog_i}_SOURCES =
-#EXTRA_${lib_i}_la_SOURCES =
-##
-## --- leftovers
-#mootconfig_SOURCES = mootconfig.cc
-##
-## --- Additional dependencies
-#gfsmcompile_main.o: gfsmcompile_cmdparser.h
-##
-## --- Linker flags
-#${prog_i}_LDFLAGS = -L. -static
-#${prog_i}_LDADD = ${non_src_file}.o -lsomelib
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-#gfsmX_SOURCES = \
-# gfsmX_main.c \
-# gfsmX_cmdparser.c gfsmX_cmdparser.h
-#
-#gfsmX_main.o: gfsmX_cmdparser.h
-#
-#gfsmX_LDFLAGS = $(LDFLAGS_COMMON)
-#gfsmX_LDADD = $(LDADD_COMMON)
-#
-#EXTRA_DIST += gfsmX.gog
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmarith_SOURCES = \
- gfsmarith_main.c \
- gfsmarith_cmdparser.c gfsmarith_cmdparser.h
-
-gfsmarith_main.o: gfsmarith_cmdparser.h
-
-gfsmarith_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmarith_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmarith.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmcompile_SOURCES = \
- gfsmcompile_main.c \
- gfsmcompile_cmdparser.c gfsmcompile_cmdparser.h
-
-gfsmcompile_main.o: gfsmcompile_cmdparser.h
-
-gfsmcompile_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmcompile_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmcompile.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmconvert_SOURCES = \
- gfsmconvert_main.c \
- gfsmconvert_cmdparser.c gfsmconvert_cmdparser.h
-
-gfsmconvert_main.o: gfsmconvert_cmdparser.h
-
-gfsmconvert_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmconvert_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmconvert.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmprint_SOURCES = \
- gfsmprint_main.c \
- gfsmprint_cmdparser.c gfsmprint_cmdparser.h
-
-gfsmprint_main.o: gfsmprint_cmdparser.h
-
-gfsmprint_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmprint_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmprint.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmindex_SOURCES = \
- gfsmindex_main.c \
- gfsmindex_cmdparser.c gfsmindex_cmdparser.h
-
-gfsmindex_main.o: gfsmindex_cmdparser.h
-
-gfsmindex_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmindex_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmindex.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsminfo_SOURCES = \
- gfsminfo_main.c \
- gfsminfo_cmdparser.c gfsminfo_cmdparser.h
-
-gfsminfo_main.o: gfsminfo_cmdparser.h
-
-gfsminfo_LDFLAGS = $(LDFLAGS_COMMON)
-gfsminfo_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsminfo.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmarcsort_SOURCES = \
- gfsmarcsort_main.c \
- gfsmarcsort_cmdparser.c gfsmarcsort_cmdparser.h
-
-gfsmarcsort_main.o: gfsmarcsort_cmdparser.h
-
-gfsmarcsort_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmarcsort_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmarcsort.gog
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmcomplement_SOURCES = \
- gfsmcomplement_main.c \
- gfsmcomplement_cmdparser.c gfsmcomplement_cmdparser.h
-
-gfsmcomplement_main.o: gfsmcomplement_cmdparser.h
-
-gfsmcomplement_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmcomplement_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmcomplement.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmcompose_SOURCES = \
- gfsmcompose_main.c \
- gfsmcompose_cmdparser.c gfsmcompose_cmdparser.h
-
-gfsmcompose_main.o: gfsmcompose_cmdparser.h
-
-gfsmcompose_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmcompose_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmcompose.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmcompre_SOURCES = \
- gfsmcompre_main.c \
- gfsmcompre_cmdparser.c gfsmcompre_cmdparser.h
-
-gfsmcompre_main.o: gfsmcompre_cmdparser.h
-
-gfsmcompre_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmcompre_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmcompre.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmconcat_SOURCES = \
- gfsmconcat_main.c \
- gfsmconcat_cmdparser.c gfsmconcat_cmdparser.h
-
-gfsmconcat_main.o: gfsmconcat_cmdparser.h
-
-gfsmconcat_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmconcat_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmconcat.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmclosure_SOURCES = \
- gfsmclosure_main.c \
- gfsmclosure_cmdparser.c gfsmclosure_cmdparser.h
-
-gfsmclosure_main.o: gfsmclosure_cmdparser.h
-
-gfsmclosure_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmclosure_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmclosure.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmconnect_SOURCES = \
- gfsmconnect_main.c \
- gfsmconnect_cmdparser.c gfsmconnect_cmdparser.h
-
-gfsmconnect_main.o: gfsmconnect_cmdparser.h
-
-gfsmconnect_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmconnect_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmconnect.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmdeterminize_SOURCES = \
- gfsmdeterminize_main.c \
- gfsmdeterminize_cmdparser.c gfsmdeterminize_cmdparser.h
-
-gfsmdeterminize_main.o: gfsmdeterminize_cmdparser.h
-
-gfsmdeterminize_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmdeterminize_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmdeterminize.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmdifference_SOURCES = \
- gfsmdifference_main.c \
- gfsmdifference_cmdparser.c gfsmdifference_cmdparser.h
-
-gfsmdifference_main.o: gfsmdifference_cmdparser.h
-
-gfsmdifference_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmdifference_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmdifference.gog
-
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmdraw_SOURCES = \
- gfsmdraw_main.c \
- gfsmdraw_cmdparser.c gfsmdraw_cmdparser.h
-
-gfsmdraw_main.o: gfsmdraw_cmdparser.h
-
-gfsmdraw_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmdraw_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmdraw.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmheader_SOURCES = \
- gfsmheader_main.c \
- gfsmheader_cmdparser.c gfsmheader_cmdparser.h
-
-gfsmheader_main.o: gfsmheader_cmdparser.h
-
-gfsmheader_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmheader_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmheader.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmintersect_SOURCES = \
- gfsmintersect_main.c \
- gfsmintersect_cmdparser.c gfsmintersect_cmdparser.h
-
-gfsmintersect_main.o: gfsmintersect_cmdparser.h
-
-gfsmintersect_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmintersect_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmintersect.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsminvert_SOURCES = \
- gfsminvert_main.c \
- gfsminvert_cmdparser.c gfsminvert_cmdparser.h
-
-gfsminvert_main.o: gfsminvert_cmdparser.h
-
-gfsminvert_LDFLAGS = $(LDFLAGS_COMMON)
-gfsminvert_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsminvert.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmlabels_SOURCES = \
- gfsmlabels_main.c \
- gfsmlabels_cmdparser.c gfsmlabels_cmdparser.h
-
-gfsmlabels_main.o: gfsmlabels_cmdparser.h
-
-gfsmlabels_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmlabels_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmlabels.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmlookup_SOURCES = \
- gfsmlookup_main.c \
- gfsmlookup_cmdparser.c gfsmlookup_cmdparser.h
-
-gfsmlookup_main.o: gfsmlookup_cmdparser.h
-
-gfsmlookup_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmlookup_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmlookup.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmoptional_SOURCES = \
- gfsmoptional_main.c \
- gfsmoptional_cmdparser.c gfsmoptional_cmdparser.h
-
-gfsmoptional_main.o: gfsmoptional_cmdparser.h
-
-gfsmoptional_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmoptional_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmoptional.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmproduct_SOURCES = \
- gfsmproduct_main.c \
- gfsmproduct_cmdparser.c gfsmproduct_cmdparser.h
-
-gfsmproduct_main.o: gfsmproduct_cmdparser.h
-
-gfsmproduct_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmproduct_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmproduct.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmproject_SOURCES = \
- gfsmproject_main.c \
- gfsmproject_cmdparser.c gfsmproject_cmdparser.h
-
-gfsmproject_main.o: gfsmproject_cmdparser.h
-
-gfsmproject_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmproject_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmproject.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmrenumber_SOURCES = \
- gfsmrenumber_main.c \
- gfsmrenumber_cmdparser.c gfsmrenumber_cmdparser.h
-
-gfsmrenumber_main.o: gfsmrenumber_cmdparser.h
-
-gfsmrenumber_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmrenumber_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmrenumber.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmreplace_SOURCES = \
- gfsmreplace_main.c \
- gfsmreplace_cmdparser.c gfsmreplace_cmdparser.h
-
-gfsmreplace_main.o: gfsmreplace_cmdparser.h
-
-gfsmreplace_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmreplace_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmreplace.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmreverse_SOURCES = \
- gfsmreverse_main.c \
- gfsmreverse_cmdparser.c gfsmreverse_cmdparser.h
-
-gfsmreverse_main.o: gfsmreverse_cmdparser.h
-
-gfsmreverse_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmreverse_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmreverse.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmrmepsilon_SOURCES = \
- gfsmrmepsilon_main.c \
- gfsmrmepsilon_cmdparser.c gfsmrmepsilon_cmdparser.h
-
-gfsmrmepsilon_main.o: gfsmrmepsilon_cmdparser.h
-
-gfsmrmepsilon_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmrmepsilon_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmrmepsilon.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmsigma_SOURCES = \
- gfsmsigma_main.c \
- gfsmsigma_cmdparser.c gfsmsigma_cmdparser.h
-
-gfsmsigma_main.o: gfsmsigma_cmdparser.h
-
-gfsmsigma_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmsigma_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmsigma.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmstrings_SOURCES = \
- gfsmstrings_main.c \
- gfsmstrings_cmdparser.c gfsmstrings_cmdparser.h
-
-gfsmstrings_main.o: gfsmstrings_cmdparser.h
-
-gfsmstrings_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmstrings_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmstrings.gog
-
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmunion_SOURCES = \
- gfsmunion_main.c \
- gfsmunion_cmdparser.c gfsmunion_cmdparser.h
-
-gfsmunion_main.o: gfsmunion_cmdparser.h
-
-gfsmunion_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmunion_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmunion.gog
-
-##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-gfsmviterbi_SOURCES = \
- gfsmviterbi_main.c \
- gfsmviterbi_cmdparser.c gfsmviterbi_cmdparser.h
-
-gfsmviterbi_main.o: gfsmviterbi_cmdparser.h
-
-gfsmviterbi_LDFLAGS = $(LDFLAGS_COMMON)
-gfsmviterbi_LDADD = $(LDADD_COMMON)
-
-EXTRA_DIST += gfsmviterbi.gog
-
-##-----------------------------------------------------------------------
-## headers
-##-----------------------------------------------------------------------
-
-## --- installable headers: @includedir@/@pkgname@
-#pkginclude_HEADERS = ${hfile_1} ... ${hfile_N}
-
-## --- no-install headers
-noinst_HEADERS = config.h
-
-##-----------------------------------------------------------------------
-## pre-compile rules: gengetopt
-##-----------------------------------------------------------------------
-
-##-----------------------------------------------------------------------
-## pre-compile rules: Getopt::Gen
-##-----------------------------------------------------------------------
-.SECONDARY:
-
-OPTGENFLAGS = -u -l --no-handle-rcfile
-
-if HAVE_OPTGEN
-
-.gog_cmdparser.h:
- optgen.perl $(OPTGENFLAGS) --nopod -F $*_cmdparser $<
-
-.gog_cmdparser.c:
- optgen.perl $(OPTGENFLAGS) --nopod -F $*_cmdparser $<
-
-.gog.pod:
- optgen.perl $(OPTGENFLAGS) --nocfile --nohfile -F $* $<
-
-endif
-
-##-----------------------------------------------------------------------
-## compile flags
-##-----------------------------------------------------------------------
-
-## --- preprocessor flags
-AM_CPPFLAGS = -I@srcdir@/../libgfsm -I../libgfsm
-
-## --- compiler flags (c++)
-AM_CFLAGS = $(gfsm_WFLAGS) $(gfsm_OFLAGS)
-
-##-----------------------------------------------------------------------
-## linker flags
-## + library special handling of configure.in vars:
-##-----------------------------------------------------------------------
-#${prog_i}_LDFLAGS = -L. -static
-#${prog_i}_LDADD = ${non_src_file}.o -lsomelib
-
-LDFLAGS_COMMON = -L../libgfsm
-LDADD_COMMON = ../libgfsm/libgfsm.la @gfsm_LIBS@
-
-#${lib_i}_la_LDFLAGS = -L. -version-info ${lib_i_current}:${lib_i_rev}:${lib_i_age}
-#${lib_i}_LIBADD = -lotherlib
-
-##-----------------------------------------------------------------------
-## cleanup: fst
-##-----------------------------------------------------------------------
-
-fsmclean:
- rm -f *.afsa *.afst *.gfsa *.gfst *.thfsa *.thfst
-
-##-----------------------------------------------------------------------
-## Variables: cleanup
-##-----------------------------------------------------------------------
-
-## --- mostlyclean: built by 'make' & commonly rebuilt
-#MOSTLYCLEANFILES =
-
-## --- clean: built by 'make'
-#CLEANFILES =
-
-## --- distclean: built by 'configure'
-#DISTCLEANFILES =
-
-## -- maintainerclean: built by maintainer / by hand
-MAINTAINERCLEANFILES = \
- *~ .*~ Makefile Makefile.in \
- *.man *.1 *.html *.txt *.tex \
- *.afsa *.afst *.gfsa *.gfst *.thfst \
- *.dot *.ps *.vcg
-
-# *_cmdparser.c *_cmdparser.h
-
-##-----------------------------------------------------------------------
-## Variables: distribution
-##-----------------------------------------------------------------------
-
-## --- extra distribution files
-#EXTRA_DIST =
-
-## --- recursion subdirectories for 'make dist'
-#DIST_SUBDIRS = $(SUBDIRS)
-
-## --- dist-hook: when another 'Makefile.am' is overkill
-#DISTHOOK_DIRS = foo
-#DISTHOOK_FILES = foo/bar.txt foo/baz.txt
-#dist-hook:
-# for d in $(DISTHOOK_DIRS); do\
-# mkdir -p $(distdir)/$$d ;\
-# done
-# for f in $(DISTHOOK_FILES); do\
-# cp -p $(srcdir)/$$f $(distdir)/$$f ;\
-# done
-
-##-----------------------------------------------------------------------
-## Rules: cleanup
-##-----------------------------------------------------------------------
-.PHONY: cvsclean
-
-cvsclean: maintainer-clean ;
diff --git a/gfsm/gfsm/src/programs/arith.tfst b/gfsm/gfsm/src/programs/arith.tfst
deleted file mode 100644
index d7e7b72..0000000
--- a/gfsm/gfsm/src/programs/arith.tfst
+++ /dev/null
@@ -1,9 +0,0 @@
-0 1 1 1 1
-0 2 2 2 2
-0 3 3 3 -3
-0 4 4 4 inf
-0 0
-1 1
-2 2
-3 -3
-4 inf
diff --git a/gfsm/gfsm/src/programs/c1.tfst b/gfsm/gfsm/src/programs/c1.tfst
deleted file mode 100644
index fef3d10..0000000
--- a/gfsm/gfsm/src/programs/c1.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 0 1 2
-0 1 0 0
-1 1 1 3
-0
-1
diff --git a/gfsm/gfsm/src/programs/c2.lab b/gfsm/gfsm/src/programs/c2.lab
deleted file mode 100644
index 5288861..0000000
--- a/gfsm/gfsm/src/programs/c2.lab
+++ /dev/null
@@ -1,11 +0,0 @@
-<eps> 0
-a 1
-b 2
-A 3
-B 4
-AA 5
-{A|B} 6
-{AA|B} 7
-{} 8
-[e2] 65533
-[e1] 65534
diff --git a/gfsm/gfsm/src/programs/c2.tfst b/gfsm/gfsm/src/programs/c2.tfst
deleted file mode 100644
index c437b71..0000000
--- a/gfsm/gfsm/src/programs/c2.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 0 2 3
-0 1 0 0
-1 1 3 1
-0
diff --git a/gfsm/gfsm/src/programs/c2a.tfst b/gfsm/gfsm/src/programs/c2a.tfst
deleted file mode 100644
index d6c5236..0000000
--- a/gfsm/gfsm/src/programs/c2a.tfst
+++ /dev/null
@@ -1,10 +0,0 @@
-0 1 a {A|B}
-1 2 <eps> a
-2 3 a {AA|B}
-3 2 <eps> a
-2 4 b {A|B}
-4 0 <eps> b
-0 5 b {A|B}
-5 0 <eps> b
-0
-2
diff --git a/gfsm/gfsm/src/programs/c2b.tfst b/gfsm/gfsm/src/programs/c2b.tfst
deleted file mode 100644
index b16d00e..0000000
--- a/gfsm/gfsm/src/programs/c2b.tfst
+++ /dev/null
@@ -1,22 +0,0 @@
-0 1 <eps> <eps>
-0 2 <eps> <eps>
-0 3 <eps> <eps>
-3 4 {A|B} B
-3 4 {AA|B} B
-4 1 b <eps>
-2 5 {A|B} A
-2 5 {AA|B} AA
-5 1 a <eps>
-3 6 {A|B} B
-3 6 {AA|B} B
-6 2 b <eps>
-2 7 {A|B} A
-2 7 {AA|B} AA
-7 2 a <eps>
-3 8 {A|B} B
-3 8 {AA|B} B
-8 3 b <eps>
-2 9 {A|B} A
-2 9 {AA|B} AA
-9 3 a <eps>
-1
diff --git a/gfsm/gfsm/src/programs/c3a.tfst b/gfsm/gfsm/src/programs/c3a.tfst
deleted file mode 100644
index d82ca52..0000000
--- a/gfsm/gfsm/src/programs/c3a.tfst
+++ /dev/null
@@ -1,8 +0,0 @@
-0 1 a a
-1 0 <eps> A
-0 2 b b
-2 0 <eps> B
-0
-0 0 <eps> <eps1>
-1 1 <eps> <eps1>
-2 2 <eps> <eps1>
diff --git a/gfsm/gfsm/src/programs/c3b.tfst b/gfsm/gfsm/src/programs/c3b.tfst
deleted file mode 100644
index 4a4133f..0000000
--- a/gfsm/gfsm/src/programs/c3b.tfst
+++ /dev/null
@@ -1,26 +0,0 @@
-0 1 <eps1> <eps>
-1
-0 2 <eps1> <eps>
-2 4 a A
-4 1 A <eps>
-2 5 a A
-5 2 A <eps>
-2 6 a A
-6 3 A <eps>
-0 3 <eps1> <eps>
-3 7 b B
-7 1 B <eps>
-3 8 b B
-8 3 B <eps>
-3 9 b B
-9 2 B <eps>
-0 0 <eps2> <eps>
-1 1 <eps2> <eps>
-2 2 <eps2> <eps>
-3 3 <eps2> <eps>
-4 4 <eps2> <eps>
-5 5 <eps2> <eps>
-6 6 <eps2> <eps>
-7 7 <eps2> <eps>
-8 8 <eps2> <eps>
-9 9 <eps2> <eps>
diff --git a/gfsm/gfsm/src/programs/c3filt.tfst b/gfsm/gfsm/src/programs/c3filt.tfst
deleted file mode 100644
index 34cc982..0000000
--- a/gfsm/gfsm/src/programs/c3filt.tfst
+++ /dev/null
@@ -1,20 +0,0 @@
-0 0 <eps2> <eps1>
-0 0 a a
-0 0 b b
-0 0 A A
-0 0 B B
-0
-0 1 <eps1> <eps1>
-1 1 <eps1> <eps1>
-1 0 a a
-1 0 b b
-1 0 A A
-1 0 B B
-1
-0 2 <eps2> <eps2>
-2 2 <eps2> <eps2>
-2 0 a a
-2 0 b b
-2 0 A A
-2 0 B B
-2
diff --git a/gfsm/gfsm/src/programs/cat1.tfst b/gfsm/gfsm/src/programs/cat1.tfst
deleted file mode 100644
index 9a51daf..0000000
--- a/gfsm/gfsm/src/programs/cat1.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 1 1 1.0
-1 2 2 2 2.0
-2 20
diff --git a/gfsm/gfsm/src/programs/cat2.tfst b/gfsm/gfsm/src/programs/cat2.tfst
deleted file mode 100644
index 5e9e740..0000000
--- a/gfsm/gfsm/src/programs/cat2.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 3 3 30
-0 2 4 4 40
-1 100
-2 200
diff --git a/gfsm/gfsm/src/programs/comp1a.tfst b/gfsm/gfsm/src/programs/comp1a.tfst
deleted file mode 100644
index c98130b..0000000
--- a/gfsm/gfsm/src/programs/comp1a.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 1 0 0
-1 2 0 0 0
-2 3 0 2 0
-3 0
diff --git a/gfsm/gfsm/src/programs/comp1b.tfst b/gfsm/gfsm/src/programs/comp1b.tfst
deleted file mode 100644
index 7818495..0000000
--- a/gfsm/gfsm/src/programs/comp1b.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 2 0 0
-1 2 0 0 0
-2 3 0 3 0
-3 0
diff --git a/gfsm/gfsm/src/programs/comp2.tfst b/gfsm/gfsm/src/programs/comp2.tfst
deleted file mode 100644
index 5eb2b86..0000000
--- a/gfsm/gfsm/src/programs/comp2.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 1 1 0 0
-1 2 0 0 0
-2 3 0 0 0
-3 4 0 0 0
-4 5 0 3 0
-5 0
diff --git a/gfsm/gfsm/src/programs/comp2a.tfst b/gfsm/gfsm/src/programs/comp2a.tfst
deleted file mode 100644
index ed416e9..0000000
--- a/gfsm/gfsm/src/programs/comp2a.tfst
+++ /dev/null
@@ -1,2 +0,0 @@
-0 1 1 2 0
-1 0
diff --git a/gfsm/gfsm/src/programs/comp2b.tfst b/gfsm/gfsm/src/programs/comp2b.tfst
deleted file mode 100644
index dbf6c01..0000000
--- a/gfsm/gfsm/src/programs/comp2b.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 2 0 0
-1 2 0 3 0
-2 0
diff --git a/gfsm/gfsm/src/programs/complement-in.tfst b/gfsm/gfsm/src/programs/complement-in.tfst
deleted file mode 100644
index 45e1e1b..0000000
--- a/gfsm/gfsm/src/programs/complement-in.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 1 1
-1 2 2 2
-2 2 2 2
-2 0
diff --git a/gfsm/gfsm/src/programs/compose-mohri-1.tfst b/gfsm/gfsm/src/programs/compose-mohri-1.tfst
deleted file mode 100644
index ebf0277..0000000
--- a/gfsm/gfsm/src/programs/compose-mohri-1.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 1 1 1
-1 2 2 0
-2 3 3 0
-3 4 4 4
-4
diff --git a/gfsm/gfsm/src/programs/compose-mohri-2.tfst b/gfsm/gfsm/src/programs/compose-mohri-2.tfst
deleted file mode 100644
index 154e266..0000000
--- a/gfsm/gfsm/src/programs/compose-mohri-2.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 1 4
-1 2 0 5
-2 3 4 1
-3
diff --git a/gfsm/gfsm/src/programs/config.h b/gfsm/gfsm/src/programs/config.h
deleted file mode 100644
index 2b1cb3c..0000000
--- a/gfsm/gfsm/src/programs/config.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <gfsmConfig.h>
-
-/* Define this for verbose memory debugging */
-//#define GFSM_DEBUG_VERBOSE
-
-#ifdef GFSM_DEBUG_VERBOSE
-# include <gfsmDebug.h>
-# define GFSM_INIT gfsm_debug_init();
-# define GFSM_FINISH gfsm_debug_finish(); gfsm_debug_print();
-#else
-# define GFSM_INIT
-# define GFSM_FINISH
-#endif
diff --git a/gfsm/gfsm/src/programs/connect-in.tfst b/gfsm/gfsm/src/programs/connect-in.tfst
deleted file mode 100644
index f160c6c..0000000
--- a/gfsm/gfsm/src/programs/connect-in.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 0 1
-0 2 0 2
-1 3 1 3
-1 4 1 4
-2 4 2 4
-2 3 2 3
-3
diff --git a/gfsm/gfsm/src/programs/ctest.tfst b/gfsm/gfsm/src/programs/ctest.tfst
deleted file mode 100644
index f160c6c..0000000
--- a/gfsm/gfsm/src/programs/ctest.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 0 1
-0 2 0 2
-1 3 1 3
-1 4 1 4
-2 4 2 4
-2 3 2 3
-3
diff --git a/gfsm/gfsm/src/programs/ctest2.tfst b/gfsm/gfsm/src/programs/ctest2.tfst
deleted file mode 100644
index b27f50a..0000000
--- a/gfsm/gfsm/src/programs/ctest2.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 1 0 1
-0 2 0 2
-1 3 1 3
-1 4 1 4
-2 4 2 4
-2 3 2 3
diff --git a/gfsm/gfsm/src/programs/det.tfst b/gfsm/gfsm/src/programs/det.tfst
deleted file mode 100644
index f93e247..0000000
--- a/gfsm/gfsm/src/programs/det.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 1 1 1
-0 2 1 2
-2 3 3 3
-1
-3
diff --git a/gfsm/gfsm/src/programs/determinize-in.tfst b/gfsm/gfsm/src/programs/determinize-in.tfst
deleted file mode 100644
index 8a6d556..0000000
--- a/gfsm/gfsm/src/programs/determinize-in.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 1 1
-0 2 2 2
-0 2 1 1
-2 1 1 1
-2 3 3 3
-1 10
-3 30
diff --git a/gfsm/gfsm/src/programs/elookup.tfst b/gfsm/gfsm/src/programs/elookup.tfst
deleted file mode 100644
index a7a0db1..0000000
--- a/gfsm/gfsm/src/programs/elookup.tfst
+++ /dev/null
@@ -1,2 +0,0 @@
-0 0 0 1 0
-0 0
diff --git a/gfsm/gfsm/src/programs/gfsmarcsort.gog b/gfsm/gfsm/src/programs/gfsmarcsort.gog
deleted file mode 100644
index ab827d6..0000000
--- a/gfsm/gfsm/src/programs/gfsmarcsort.gog
+++ /dev/null
@@ -1,107 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmarcsort"
-#program_version "0.01"
-
-purpose "Sort arcs of a finite state machine"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-flag "lower" l "Sort by (lower,upper,target) [default]."
-flag - i "Alias for -l"
-
-flag "upper" u "Sort by (upper,lower,target)."
-flag - o "Alias for '-u'"
-
-flag "weight" w "Sort by weight (ascending)."
-flag "cost" C "Alias for '-w'"
-
-string "mode" m "Sort by explicit mode string (overrides -l, -u, etc.)" \
- arg="MODE" \
- default="" \
- details="
-Sort by a mode string over the characters \"luwstLUWST_\", as accepted
-by gfsm_acmask_from_chars(). Each character in the string represents
-a single elementary arc field comparison, and the comparison with the
-highest priority should occur leftmost in the string. Correspondence
-between characters in MODE and arc comparisons is:
-
- CHAR : COMPARISON
- l : sort by lower labels in ascending order
- u : sort by upper labels in ascending order
- w : sort by arc weight in semiring-ascending order
- s : sort by source state in ascending order (useless here)
- t : sort by target state in ascending order
-
- L : sort by lower labels in descending order
- U : sort by upper labels in descending order
- W : sort by arc weight in semiring-descending order
- S : sort by source state in descending order (useless here)
- T : sort by target state in descending order
-
- _ : no comparison at the corresponding priority level
- x : user-specified comparison (useless here)
-
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.c b/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.c
deleted file mode 100644
index 94f4f16..0000000
--- a/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.c
+++ /dev/null
@@ -1,595 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmarcsort_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmarcsort_cmdparser gfsmarcsort.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmarcsort"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmarcsort_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmarcsort (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Sort arcs of a finite state machine\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmarcsort");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -l --lower Sort by (lower,upper,target) [default].\n");
- printf(" -i Alias for -l\n");
- printf(" -u --upper Sort by (upper,lower,target).\n");
- printf(" -o Alias for '-u'\n");
- printf(" -w --weight Sort by weight (ascending).\n");
- printf(" -C --cost Alias for '-w'\n");
- printf(" -mMODE --mode=MODE Sort by explicit mode string (overrides -l, -u, etc.)\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->lower_flag = 0;
- args_info->i_flag = 0;
- args_info->upper_flag = 0;
- args_info->o_flag = 0;
- args_info->weight_flag = 0;
- args_info->cost_flag = 0;
- args_info->mode_arg = strdup("");
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->lower_given = 0;
- args_info->i_given = 0;
- args_info->upper_given = 0;
- args_info->o_given = 0;
- args_info->weight_given = 0;
- args_info->cost_given = 0;
- args_info->mode_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "lower", 0, NULL, 'l' },
- { "upper", 0, NULL, 'u' },
- { "weight", 0, NULL, 'w' },
- { "cost", 0, NULL, 'C' },
- { "mode", 1, NULL, 'm' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'l',
- 'i',
- 'u',
- 'o',
- 'w',
- 'C',
- 'm', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'l': /* Sort by (lower,upper,target) [default]. */
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- if (args_info->lower_given <= 1)
- args_info->lower_flag = !(args_info->lower_flag);
- break;
-
- case 'i': /* Alias for -l */
- if (args_info->i_given) {
- fprintf(stderr, "%s: (`-i') option given more than once\n", PROGRAM);
- }
- args_info->i_given++;
- if (args_info->i_given <= 1)
- args_info->i_flag = !(args_info->i_flag);
- break;
-
- case 'u': /* Sort by (upper,lower,target). */
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- if (args_info->upper_given <= 1)
- args_info->upper_flag = !(args_info->upper_flag);
- break;
-
- case 'o': /* Alias for '-u' */
- if (args_info->o_given) {
- fprintf(stderr, "%s: (`-o') option given more than once\n", PROGRAM);
- }
- args_info->o_given++;
- if (args_info->o_given <= 1)
- args_info->o_flag = !(args_info->o_flag);
- break;
-
- case 'w': /* Sort by weight (ascending). */
- if (args_info->weight_given) {
- fprintf(stderr, "%s: `--weight' (`-w') option given more than once\n", PROGRAM);
- }
- args_info->weight_given++;
- if (args_info->weight_given <= 1)
- args_info->weight_flag = !(args_info->weight_flag);
- break;
-
- case 'C': /* Alias for '-w' */
- if (args_info->cost_given) {
- fprintf(stderr, "%s: `--cost' (`-C') option given more than once\n", PROGRAM);
- }
- args_info->cost_given++;
- if (args_info->cost_given <= 1)
- args_info->cost_flag = !(args_info->cost_flag);
- break;
-
- case 'm': /* Sort by explicit mode string (overrides -l, -u, etc.) */
- if (args_info->mode_given) {
- fprintf(stderr, "%s: `--mode' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->mode_given++;
- if (args_info->mode_arg) free(args_info->mode_arg);
- args_info->mode_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Sort by (lower,upper,target) [default]. */
- else if (strcmp(olong, "lower") == 0) {
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- if (args_info->lower_given <= 1)
- args_info->lower_flag = !(args_info->lower_flag);
- }
-
- /* Sort by (upper,lower,target). */
- else if (strcmp(olong, "upper") == 0) {
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- if (args_info->upper_given <= 1)
- args_info->upper_flag = !(args_info->upper_flag);
- }
-
- /* Sort by weight (ascending). */
- else if (strcmp(olong, "weight") == 0) {
- if (args_info->weight_given) {
- fprintf(stderr, "%s: `--weight' (`-w') option given more than once\n", PROGRAM);
- }
- args_info->weight_given++;
- if (args_info->weight_given <= 1)
- args_info->weight_flag = !(args_info->weight_flag);
- }
-
- /* Alias for '-w' */
- else if (strcmp(olong, "cost") == 0) {
- if (args_info->cost_given) {
- fprintf(stderr, "%s: `--cost' (`-C') option given more than once\n", PROGRAM);
- }
- args_info->cost_given++;
- if (args_info->cost_given <= 1)
- args_info->cost_flag = !(args_info->cost_flag);
- }
-
- /* Sort by explicit mode string (overrides -l, -u, etc.) */
- else if (strcmp(olong, "mode") == 0) {
- if (args_info->mode_given) {
- fprintf(stderr, "%s: `--mode' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->mode_given++;
- if (args_info->mode_arg) free(args_info->mode_arg);
- args_info->mode_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.h b/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.h
deleted file mode 100644
index 29f5f6a..0000000
--- a/gfsm/gfsm/src/programs/gfsmarcsort_cmdparser.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmarcsort_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06.
- *
- */
-
-#ifndef gfsmarcsort_cmdparser_h
-#define gfsmarcsort_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int lower_flag; /* Sort by (lower,upper,target) [default]. (default=0). */
- int i_flag; /* Alias for -l (default=0). */
- int upper_flag; /* Sort by (upper,lower,target). (default=0). */
- int o_flag; /* Alias for '-u' (default=0). */
- int weight_flag; /* Sort by weight (ascending). (default=0). */
- int cost_flag; /* Alias for '-w' (default=0). */
- char * mode_arg; /* Sort by explicit mode string (overrides -l, -u, etc.) (default=). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int lower_given; /* Whether lower was given */
- int i_given; /* Whether - was given */
- int upper_given; /* Whether upper was given */
- int o_given; /* Whether - was given */
- int weight_given; /* Whether weight was given */
- int cost_given; /* Whether cost was given */
- int mode_given; /* Whether mode was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmarcsort_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmarcsort_main.c b/gfsm/gfsm/src/programs/gfsmarcsort_main.c
deleted file mode 100644
index ac3e48f..0000000
--- a/gfsm/gfsm/src/programs/gfsmarcsort_main.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004-2007 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmarcsort_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmarcsort";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs & vars
-gfsmAutomaton *fsm;
-gfsmArcCompMask mode = gfsmASMLower;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- mode?
- if (args.mode_given) { mode = gfsm_acmask_from_chars(args.mode_arg); }
- else if (args.lower_given || args.i_given) mode = gfsmASMLower;
- else if (args.upper_given || args.o_given) mode = gfsmASMUpper;
- else if (args.weight_given || args.cost_given) mode = gfsmASMWeight;
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- sort
- gfsm_automaton_arcsort(fsm,mode);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmarith.gog b/gfsm/gfsm/src/programs/gfsmarith.gog
deleted file mode 100644
index b2f14b9..0000000
--- a/gfsm/gfsm/src/programs/gfsmarith.gog
+++ /dev/null
@@ -1,132 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmarith"
-#program_version "0.01"
-
-purpose "Perform an elementary arithmetic operation on automaton weights"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "FSMFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-
-#-------------------------------------------------------
-# Basic Options
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-------------------------------------------------------
-# Operator Selection
-group "Operator Selection"
-
-flag "exp" E "Real exponentiation"
-
-flag "log" L "Real logarithm"
-
-float "multiply" m "Real multiplication by WEIGHT" \
- arg="WEIGHT"
-
-float "add" a "Real addition of WEIGHT" \
- arg="WEIGHT"
-
-flag "positive" p "Set real negative weights to zero"
-
-
-float "times" - "Semiring multiplication by WEIGHT" \
- arg="WEIGHT"
-
-float "plus" - "Semiring addition of WEIGHT" \
- arg="WEIGHT"
-
-flag "sr-positive" - "Set semiring-negative weights to semiring-zero"
-
-#-------------------------------------------------------
-# Weight Selection
-group "Weight Selection"
-
-flag "no-arcs" A "Exclude arc weights (default: include)"
-
-flag "no-finals" f "Exclude final weights (default: include)"
-
-#flag "potentials" P "Include potentials (default: include)" ##-- what the heck are 'potentials'?
-
-flag "zero" Z "Include semiring-zero weights (default: exclude)"
-
-#-------------------------------------------------------
-# State & Label Selection
-group "State & Label Selection"
-
-flag "initial" i "Select only initial state and its arcs/finality"
-
-int "state" s "Select only state ID and its arcs/finality (default=all)" \
- arg="ID" \
- default="-1"
-
-int "lower" l "Select only arcs with lower-label LO (default=any)" \
- arg="LO" \
- default="-1"
-
-int "upper" u "Select only arcs with upper-label HI (defualt=any)" \
- arg="HI" \
- default="-1"
-
-
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-Note that the --plus and --times operations are
-sensitive to the semiring associated with the stored FSM file, while
-the --add and --multiply operations have the usual real-number interpretations,
-regardless of the automaton semiring.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmarith_cmdparser.c b/gfsm/gfsm/src/programs/gfsmarith_cmdparser.c
deleted file mode 100644
index 7aade2f..0000000
--- a/gfsm/gfsm/src/programs/gfsmarith_cmdparser.c
+++ /dev/null
@@ -1,773 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmarith_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmarith_cmdparser gfsmarith.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmarith"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmarith_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmarith (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Perform an elementary arithmetic operation on automaton weights\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... FSMFILE\n", "gfsmarith");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" FSMFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
- printf("\n");
- printf(" Operator Selection:\n");
- printf(" -E --exp Real exponentiation\n");
- printf(" -L --log Real logarithm\n");
- printf(" -mFLOAT --multiply=FLOAT Real multiplication by WEIGHT\n");
- printf(" -aFLOAT --add=FLOAT Real addition of WEIGHT\n");
- printf(" -p --positive Set real negative weights to zero\n");
- printf(" --times=FLOAT Semiring multiplication by WEIGHT\n");
- printf(" --plus=FLOAT Semiring addition of WEIGHT\n");
- printf(" --sr-positive Set semiring-negative weights to semiring-zero\n");
- printf("\n");
- printf(" Weight Selection:\n");
- printf(" -A --no-arcs Exclude arc weights (default: include)\n");
- printf(" -f --no-finals Exclude final weights (default: include)\n");
- printf(" -Z --zero Include semiring-zero weights (default: exclude)\n");
- printf("\n");
- printf(" State & Label Selection:\n");
- printf(" -i --initial Select only initial state and its arcs/finality\n");
- printf(" -sID --state=ID Select only state ID and its arcs/finality (default=all)\n");
- printf(" -lLO --lower=LO Select only arcs with lower-label LO (default=any)\n");
- printf(" -uHI --upper=HI Select only arcs with upper-label HI (defualt=any)\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
- args_info->exp_flag = 0;
- args_info->log_flag = 0;
- args_info->multiply_arg = 0;
- args_info->add_arg = 0;
- args_info->positive_flag = 0;
- args_info->times_arg = 0;
- args_info->plus_arg = 0;
- args_info->sr_positive_flag = 0;
- args_info->no_arcs_flag = 0;
- args_info->no_finals_flag = 0;
- args_info->zero_flag = 0;
- args_info->initial_flag = 0;
- args_info->state_arg = -1;
- args_info->lower_arg = -1;
- args_info->upper_arg = -1;
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
- args_info->exp_given = 0;
- args_info->log_given = 0;
- args_info->multiply_given = 0;
- args_info->add_given = 0;
- args_info->positive_given = 0;
- args_info->times_given = 0;
- args_info->plus_given = 0;
- args_info->sr_positive_given = 0;
- args_info->no_arcs_given = 0;
- args_info->no_finals_given = 0;
- args_info->zero_given = 0;
- args_info->initial_given = 0;
- args_info->state_given = 0;
- args_info->lower_given = 0;
- args_info->upper_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { "exp", 0, NULL, 'E' },
- { "log", 0, NULL, 'L' },
- { "multiply", 1, NULL, 'm' },
- { "add", 1, NULL, 'a' },
- { "positive", 0, NULL, 'p' },
- { "times", 1, NULL, 0 },
- { "plus", 1, NULL, 0 },
- { "sr-positive", 0, NULL, 0 },
- { "no-arcs", 0, NULL, 'A' },
- { "no-finals", 0, NULL, 'f' },
- { "zero", 0, NULL, 'Z' },
- { "initial", 0, NULL, 'i' },
- { "state", 1, NULL, 's' },
- { "lower", 1, NULL, 'l' },
- { "upper", 1, NULL, 'u' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- 'E',
- 'L',
- 'm', ':',
- 'a', ':',
- 'p',
- 'A',
- 'f',
- 'Z',
- 'i',
- 's', ':',
- 'l', ':',
- 'u', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 'E': /* Real exponentiation */
- if (args_info->exp_given) {
- fprintf(stderr, "%s: `--exp' (`-E') option given more than once\n", PROGRAM);
- }
- args_info->exp_given++;
- if (args_info->exp_given <= 1)
- args_info->exp_flag = !(args_info->exp_flag);
- break;
-
- case 'L': /* Real logarithm */
- if (args_info->log_given) {
- fprintf(stderr, "%s: `--log' (`-L') option given more than once\n", PROGRAM);
- }
- args_info->log_given++;
- if (args_info->log_given <= 1)
- args_info->log_flag = !(args_info->log_flag);
- break;
-
- case 'm': /* Real multiplication by WEIGHT */
- if (args_info->multiply_given) {
- fprintf(stderr, "%s: `--multiply' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->multiply_given++;
- args_info->multiply_arg = (float)strtod(val, NULL);
- break;
-
- case 'a': /* Real addition of WEIGHT */
- if (args_info->add_given) {
- fprintf(stderr, "%s: `--add' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->add_given++;
- args_info->add_arg = (float)strtod(val, NULL);
- break;
-
- case 'p': /* Set real negative weights to zero */
- if (args_info->positive_given) {
- fprintf(stderr, "%s: `--positive' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->positive_given++;
- if (args_info->positive_given <= 1)
- args_info->positive_flag = !(args_info->positive_flag);
- break;
-
- case 'A': /* Exclude arc weights (default: include) */
- if (args_info->no_arcs_given) {
- fprintf(stderr, "%s: `--no-arcs' (`-A') option given more than once\n", PROGRAM);
- }
- args_info->no_arcs_given++;
- if (args_info->no_arcs_given <= 1)
- args_info->no_arcs_flag = !(args_info->no_arcs_flag);
- break;
-
- case 'f': /* Exclude final weights (default: include) */
- if (args_info->no_finals_given) {
- fprintf(stderr, "%s: `--no-finals' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->no_finals_given++;
- if (args_info->no_finals_given <= 1)
- args_info->no_finals_flag = !(args_info->no_finals_flag);
- break;
-
- case 'Z': /* Include semiring-zero weights (default: exclude) */
- if (args_info->zero_given) {
- fprintf(stderr, "%s: `--zero' (`-Z') option given more than once\n", PROGRAM);
- }
- args_info->zero_given++;
- if (args_info->zero_given <= 1)
- args_info->zero_flag = !(args_info->zero_flag);
- break;
-
- case 'i': /* Select only initial state and its arcs/finality */
- if (args_info->initial_given) {
- fprintf(stderr, "%s: `--initial' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->initial_given++;
- if (args_info->initial_given <= 1)
- args_info->initial_flag = !(args_info->initial_flag);
- break;
-
- case 's': /* Select only state ID and its arcs/finality (default=all) */
- if (args_info->state_given) {
- fprintf(stderr, "%s: `--state' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->state_given++;
- args_info->state_arg = (int)atoi(val);
- break;
-
- case 'l': /* Select only arcs with lower-label LO (default=any) */
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- args_info->lower_arg = (int)atoi(val);
- break;
-
- case 'u': /* Select only arcs with upper-label HI (defualt=any) */
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- args_info->upper_arg = (int)atoi(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- /* Real exponentiation */
- else if (strcmp(olong, "exp") == 0) {
- if (args_info->exp_given) {
- fprintf(stderr, "%s: `--exp' (`-E') option given more than once\n", PROGRAM);
- }
- args_info->exp_given++;
- if (args_info->exp_given <= 1)
- args_info->exp_flag = !(args_info->exp_flag);
- }
-
- /* Real logarithm */
- else if (strcmp(olong, "log") == 0) {
- if (args_info->log_given) {
- fprintf(stderr, "%s: `--log' (`-L') option given more than once\n", PROGRAM);
- }
- args_info->log_given++;
- if (args_info->log_given <= 1)
- args_info->log_flag = !(args_info->log_flag);
- }
-
- /* Real multiplication by WEIGHT */
- else if (strcmp(olong, "multiply") == 0) {
- if (args_info->multiply_given) {
- fprintf(stderr, "%s: `--multiply' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->multiply_given++;
- args_info->multiply_arg = (float)strtod(val, NULL);
- }
-
- /* Real addition of WEIGHT */
- else if (strcmp(olong, "add") == 0) {
- if (args_info->add_given) {
- fprintf(stderr, "%s: `--add' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->add_given++;
- args_info->add_arg = (float)strtod(val, NULL);
- }
-
- /* Set real negative weights to zero */
- else if (strcmp(olong, "positive") == 0) {
- if (args_info->positive_given) {
- fprintf(stderr, "%s: `--positive' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->positive_given++;
- if (args_info->positive_given <= 1)
- args_info->positive_flag = !(args_info->positive_flag);
- }
-
- /* Semiring multiplication by WEIGHT */
- else if (strcmp(olong, "times") == 0) {
- if (args_info->times_given) {
- fprintf(stderr, "%s: `--times' option given more than once\n", PROGRAM);
- }
- args_info->times_given++;
- args_info->times_arg = (float)strtod(val, NULL);
- }
-
- /* Semiring addition of WEIGHT */
- else if (strcmp(olong, "plus") == 0) {
- if (args_info->plus_given) {
- fprintf(stderr, "%s: `--plus' option given more than once\n", PROGRAM);
- }
- args_info->plus_given++;
- args_info->plus_arg = (float)strtod(val, NULL);
- }
-
- /* Set semiring-negative weights to semiring-zero */
- else if (strcmp(olong, "sr-positive") == 0) {
- if (args_info->sr_positive_given) {
- fprintf(stderr, "%s: `--sr-positive' option given more than once\n", PROGRAM);
- }
- args_info->sr_positive_given++;
- if (args_info->sr_positive_given <= 1)
- args_info->sr_positive_flag = !(args_info->sr_positive_flag);
- }
-
- /* Exclude arc weights (default: include) */
- else if (strcmp(olong, "no-arcs") == 0) {
- if (args_info->no_arcs_given) {
- fprintf(stderr, "%s: `--no-arcs' (`-A') option given more than once\n", PROGRAM);
- }
- args_info->no_arcs_given++;
- if (args_info->no_arcs_given <= 1)
- args_info->no_arcs_flag = !(args_info->no_arcs_flag);
- }
-
- /* Exclude final weights (default: include) */
- else if (strcmp(olong, "no-finals") == 0) {
- if (args_info->no_finals_given) {
- fprintf(stderr, "%s: `--no-finals' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->no_finals_given++;
- if (args_info->no_finals_given <= 1)
- args_info->no_finals_flag = !(args_info->no_finals_flag);
- }
-
- /* Include semiring-zero weights (default: exclude) */
- else if (strcmp(olong, "zero") == 0) {
- if (args_info->zero_given) {
- fprintf(stderr, "%s: `--zero' (`-Z') option given more than once\n", PROGRAM);
- }
- args_info->zero_given++;
- if (args_info->zero_given <= 1)
- args_info->zero_flag = !(args_info->zero_flag);
- }
-
- /* Select only initial state and its arcs/finality */
- else if (strcmp(olong, "initial") == 0) {
- if (args_info->initial_given) {
- fprintf(stderr, "%s: `--initial' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->initial_given++;
- if (args_info->initial_given <= 1)
- args_info->initial_flag = !(args_info->initial_flag);
- }
-
- /* Select only state ID and its arcs/finality (default=all) */
- else if (strcmp(olong, "state") == 0) {
- if (args_info->state_given) {
- fprintf(stderr, "%s: `--state' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->state_given++;
- args_info->state_arg = (int)atoi(val);
- }
-
- /* Select only arcs with lower-label LO (default=any) */
- else if (strcmp(olong, "lower") == 0) {
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- args_info->lower_arg = (int)atoi(val);
- }
-
- /* Select only arcs with upper-label HI (defualt=any) */
- else if (strcmp(olong, "upper") == 0) {
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- args_info->upper_arg = (int)atoi(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmarith_cmdparser.h b/gfsm/gfsm/src/programs/gfsmarith_cmdparser.h
deleted file mode 100644
index 0f8b5c4..0000000
--- a/gfsm/gfsm/src/programs/gfsmarith_cmdparser.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmarith_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmarith_cmdparser_h
-#define gfsmarith_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
- int exp_flag; /* Real exponentiation (default=0). */
- int log_flag; /* Real logarithm (default=0). */
- float multiply_arg; /* Real multiplication by WEIGHT (default=0). */
- float add_arg; /* Real addition of WEIGHT (default=0). */
- int positive_flag; /* Set real negative weights to zero (default=0). */
- float times_arg; /* Semiring multiplication by WEIGHT (default=0). */
- float plus_arg; /* Semiring addition of WEIGHT (default=0). */
- int sr_positive_flag; /* Set semiring-negative weights to semiring-zero (default=0). */
- int no_arcs_flag; /* Exclude arc weights (default: include) (default=0). */
- int no_finals_flag; /* Exclude final weights (default: include) (default=0). */
- int zero_flag; /* Include semiring-zero weights (default: exclude) (default=0). */
- int initial_flag; /* Select only initial state and its arcs/finality (default=0). */
- int state_arg; /* Select only state ID and its arcs/finality (default=all) (default=-1). */
- int lower_arg; /* Select only arcs with lower-label LO (default=any) (default=-1). */
- int upper_arg; /* Select only arcs with upper-label HI (defualt=any) (default=-1). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
- int exp_given; /* Whether exp was given */
- int log_given; /* Whether log was given */
- int multiply_given; /* Whether multiply was given */
- int add_given; /* Whether add was given */
- int positive_given; /* Whether positive was given */
- int times_given; /* Whether times was given */
- int plus_given; /* Whether plus was given */
- int sr_positive_given; /* Whether sr-positive was given */
- int no_arcs_given; /* Whether no-arcs was given */
- int no_finals_given; /* Whether no-finals was given */
- int zero_given; /* Whether zero was given */
- int initial_given; /* Whether initial was given */
- int state_given; /* Whether state was given */
- int lower_given; /* Whether lower was given */
- int upper_given; /* Whether upper was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmarith_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmarith_main.c b/gfsm/gfsm/src/programs/gfsmarith_main.c
deleted file mode 100644
index 53f5708..0000000
--- a/gfsm/gfsm/src/programs/gfsmarith_main.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gfsm.h>
-
-#include "gfsmarith_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmarith";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmError *err = NULL;
-
-//-- arithmetic operation
-gfsmArithOp op=gfsmAONone;
-gfsmWeight arg=0;
-
-//-- weight selection
-gboolean do_arcs;
-gboolean do_finals;
-gboolean do_zero;
-
-//-- state & label selection
-gfsmStateId qid;
-gfsmLabelVal lo;
-gfsmLabelVal hi;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- outfilename = args.output_arg;
-
- //-- operator selection
- if (args.exp_given) { op = gfsmAOExp; }
- else if (args.log_given) { op = gfsmAOLog; }
- else if (args.multiply_given) { op = gfsmAOMult; arg=args.multiply_arg; }
- else if (args.add_given) { op = gfsmAOAdd; arg=args.add_arg; }
- else if (args.positive_given) { op = gfsmAONoNeg; }
- else if (args.times_given) { op = gfsmAOSRTimes; arg=args.times_arg; }
- else if (args.plus_given) { op = gfsmAOSRPlus; arg=args.plus_arg; }
- else if (args.sr_positive_given) { op = gfsmAOSRNoNeg; }
-
- //-- weight selection
- do_arcs = !args.no_arcs_given;
- do_finals = !args.no_finals_given;
- do_zero = args.zero_given;
-
- //-- state & label selection
- qid = args.state_given ? args.state_arg : gfsmNoState;
- lo = args.lower_given ? args.lower_arg : gfsmNoLabel;
- hi = args.upper_given ? args.upper_arg : gfsmNoLabel;
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(3);
- }
-
- //-- hack: initial-state selection
- if (args.initial_flag) qid=fsm->root_id;
-
- //-- perform weight aritmetic
- gfsm_automaton_arith_state(fsm, qid, op, arg, lo, hi, do_arcs, do_finals, do_zero);
-
- //-- store automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmclosure.gog b/gfsm/gfsm/src/programs/gfsmclosure.gog
deleted file mode 100644
index 77b5884..0000000
--- a/gfsm/gfsm/src/programs/gfsmclosure.gog
+++ /dev/null
@@ -1,79 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmclosure"
-#program_version "0.01"
-
-purpose "Compute Kleene closure of a finite state machine"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "times" n "Compute n-ary (^n) closure." \
- arg="N" \
- default="0"
-
-flag "plus" p "Compute transitive (+) closure." \
- details="
-Alias for '-n 1'.
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.c b/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.c
deleted file mode 100644
index 11f7bfd..0000000
--- a/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.c
+++ /dev/null
@@ -1,495 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmclosure_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmclosure_cmdparser gfsmclosure.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmclosure"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmclosure_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmclosure (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute Kleene closure of a finite state machine\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmclosure");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -nN --times=N Compute n-ary (^n) closure.\n");
- printf(" -p --plus Compute transitive (+) closure.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->times_arg = 0;
- args_info->plus_flag = 0;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->times_given = 0;
- args_info->plus_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "times", 1, NULL, 'n' },
- { "plus", 0, NULL, 'p' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'n', ':',
- 'p',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'n': /* Compute n-ary (^n) closure. */
- if (args_info->times_given) {
- fprintf(stderr, "%s: `--times' (`-n') option given more than once\n", PROGRAM);
- }
- args_info->times_given++;
- args_info->times_arg = (int)atoi(val);
- break;
-
- case 'p': /* Compute transitive (+) closure. */
- if (args_info->plus_given) {
- fprintf(stderr, "%s: `--plus' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->plus_given++;
- if (args_info->plus_given <= 1)
- args_info->plus_flag = !(args_info->plus_flag);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Compute n-ary (^n) closure. */
- else if (strcmp(olong, "times") == 0) {
- if (args_info->times_given) {
- fprintf(stderr, "%s: `--times' (`-n') option given more than once\n", PROGRAM);
- }
- args_info->times_given++;
- args_info->times_arg = (int)atoi(val);
- }
-
- /* Compute transitive (+) closure. */
- else if (strcmp(olong, "plus") == 0) {
- if (args_info->plus_given) {
- fprintf(stderr, "%s: `--plus' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->plus_given++;
- if (args_info->plus_given <= 1)
- args_info->plus_flag = !(args_info->plus_flag);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.h b/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.h
deleted file mode 100644
index 0837b6a..0000000
--- a/gfsm/gfsm/src/programs/gfsmclosure_cmdparser.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmclosure_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmclosure_cmdparser_h
-#define gfsmclosure_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int times_arg; /* Compute n-ary (^n) closure. (default=0). */
- int plus_flag; /* Compute transitive (+) closure. (default=0). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int times_given; /* Whether times was given */
- int plus_given; /* Whether plus was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmclosure_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmclosure_main.c b/gfsm/gfsm/src/programs/gfsmclosure_main.c
deleted file mode 100644
index 8b8d029..0000000
--- a/gfsm/gfsm/src/programs/gfsmclosure_main.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmclosure_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmclosure";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsm=NULL;
-guint times = 0;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- get closure length
- if (args.plus_given) times = 1;
- else times = args.times_arg;
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute closure
- gfsm_automaton_n_closure(fsm, times);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompile.gog b/gfsm/gfsm/src/programs/gfsmcompile.gog
deleted file mode 100644
index e53307b..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompile.gog
+++ /dev/null
@@ -1,102 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmcompile"
-#program_version "0.01"
-
-purpose "Compile text format gfsm files to binary"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "TXTFILE" "Input text file" \
- details="
-If unspecified, standard input will be read
-"
-
-#argument "BINFILE" "Output binary gfsm file" \
-# details="
-#If unspecified, output will be written to standard output.
-#"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-flag "acceptor" a "Compile as acceptor (default=transducer)" \
- default=0
-
-string "ilabels" i "Specify input (lower) labels file." \
- arg="LABELS"
-
-string "olabels" o "Specify output (upper) labels file." \
- arg="LABELS"
-
-string "slabels" S "Specify state labels file." \
- arg="LABELS"
-
-string "semiring" s "Specify semiring type." \
- arg="SRTYPE" \
- default="tropical" \
- details="
-Specify one of the following:
-
- boolean
- log
- plog
- real
- trivial
- tropical
-
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.c b/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.c
deleted file mode 100644
index ea17d5d..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.c
+++ /dev/null
@@ -1,569 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompile_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmcompile_cmdparser gfsmcompile.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmcompile"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmcompile_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmcompile (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compile text format gfsm files to binary\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... TXTFILE\n", "gfsmcompile");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" TXTFILE Input text file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -a --acceptor Compile as acceptor (default=transducer)\n");
- printf(" -iLABELS --ilabels=LABELS Specify input (lower) labels file.\n");
- printf(" -oLABELS --olabels=LABELS Specify output (upper) labels file.\n");
- printf(" -SLABELS --slabels=LABELS Specify state labels file.\n");
- printf(" -sSRTYPE --semiring=SRTYPE Specify semiring type.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->acceptor_flag = 0;
- args_info->ilabels_arg = NULL;
- args_info->olabels_arg = NULL;
- args_info->slabels_arg = NULL;
- args_info->semiring_arg = strdup("tropical");
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->acceptor_given = 0;
- args_info->ilabels_given = 0;
- args_info->olabels_given = 0;
- args_info->slabels_given = 0;
- args_info->semiring_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "acceptor", 0, NULL, 'a' },
- { "ilabels", 1, NULL, 'i' },
- { "olabels", 1, NULL, 'o' },
- { "slabels", 1, NULL, 'S' },
- { "semiring", 1, NULL, 's' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'a',
- 'i', ':',
- 'o', ':',
- 'S', ':',
- 's', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'a': /* Compile as acceptor (default=transducer) */
- if (args_info->acceptor_given) {
- fprintf(stderr, "%s: `--acceptor' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->acceptor_given++;
- if (args_info->acceptor_given <= 1)
- args_info->acceptor_flag = !(args_info->acceptor_flag);
- break;
-
- case 'i': /* Specify input (lower) labels file. */
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- break;
-
- case 'o': /* Specify output (upper) labels file. */
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- break;
-
- case 'S': /* Specify state labels file. */
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-S') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- break;
-
- case 's': /* Specify semiring type. */
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Compile as acceptor (default=transducer) */
- else if (strcmp(olong, "acceptor") == 0) {
- if (args_info->acceptor_given) {
- fprintf(stderr, "%s: `--acceptor' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->acceptor_given++;
- if (args_info->acceptor_given <= 1)
- args_info->acceptor_flag = !(args_info->acceptor_flag);
- }
-
- /* Specify input (lower) labels file. */
- else if (strcmp(olong, "ilabels") == 0) {
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- }
-
- /* Specify output (upper) labels file. */
- else if (strcmp(olong, "olabels") == 0) {
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- }
-
- /* Specify state labels file. */
- else if (strcmp(olong, "slabels") == 0) {
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-S') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- }
-
- /* Specify semiring type. */
- else if (strcmp(olong, "semiring") == 0) {
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.h b/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.h
deleted file mode 100644
index 53c4d59..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompile_cmdparser.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompile_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmcompile_cmdparser_h
-#define gfsmcompile_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int acceptor_flag; /* Compile as acceptor (default=transducer) (default=0). */
- char * ilabels_arg; /* Specify input (lower) labels file. (default=NULL). */
- char * olabels_arg; /* Specify output (upper) labels file. (default=NULL). */
- char * slabels_arg; /* Specify state labels file. (default=NULL). */
- char * semiring_arg; /* Specify semiring type. (default=tropical). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int acceptor_given; /* Whether acceptor was given */
- int ilabels_given; /* Whether ilabels was given */
- int olabels_given; /* Whether olabels was given */
- int slabels_given; /* Whether slabels was given */
- int semiring_given; /* Whether semiring was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmcompile_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmcompile_main.c b/gfsm/gfsm/src/programs/gfsmcompile_main.c
deleted file mode 100644
index feeba69..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompile_main.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gfsm.h>
-
-#include "gfsmcompile_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmcompile";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmAlphabet *ilabels=NULL, *olabels=NULL, *slabels=NULL;
-gfsmError *err = NULL;
-gfsmSRType srtype = gfsmSRTUnknown;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- outfilename = args.output_arg;
-
- //-- labels: input
- if (args.ilabels_given) {
- ilabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(ilabels,args.ilabels_arg,&err)) {
- g_printerr("%s: load failed for input-labels file '%s': %s\n",
- progname, args.ilabels_arg, err->message);
- exit(2);
- }
- }
- //-- labels: output
- if (args.olabels_given) {
- olabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(olabels,args.olabels_arg,&err)) {
- g_printerr("%s: load failed for output-labels file '%s': %s\n",
- progname, args.olabels_arg, err->message);
- exit(2);
- }
- }
- //-- labels: state
- if (args.slabels_given) {
- slabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(slabels,args.slabels_arg,&err)) {
- g_printerr("%s: load failed for state-labels file '%s': %s\n",
- progname, args.slabels_arg, err->message);
- exit(2);
- }
- }
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
- if (args.acceptor_given) fsm->flags.is_transducer = FALSE;
-
- //-- set semiring
- srtype = gfsm_sr_name_to_type(args.semiring_arg);
- if (srtype != fsm->sr->type) {
- gfsm_automaton_set_semiring(fsm, gfsm_semiring_new(srtype));
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- compile automaton
- if (!gfsm_automaton_compile_filename_full(fsm,infilename,ilabels,olabels,slabels,&err)) {
- g_printerr("%s: compile failed for '%s': %s\n", progname, infilename, err->message);
- exit(3);
- }
-
- //-- store automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (ilabels) gfsm_alphabet_free(ilabels);
- if (olabels) gfsm_alphabet_free(olabels);
- if (slabels) gfsm_alphabet_free(slabels);
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcomplement.gog b/gfsm/gfsm/src/programs/gfsmcomplement.gog
deleted file mode 100644
index 7712b3c..0000000
--- a/gfsm/gfsm/src/programs/gfsmcomplement.gog
+++ /dev/null
@@ -1,73 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmcomplement"
-#program_version "0.01"
-
-purpose "Compute complement of finite state acceptors"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "ilabels" i "Specify input (lower) labels file for alphabet." \
- arg="LABELS"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-Epsilon arcs are not handled correctly.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.c b/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.c
deleted file mode 100644
index d697579..0000000
--- a/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcomplement_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmcomplement_cmdparser gfsmcomplement.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmcomplement"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmcomplement_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmcomplement (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute complement of finite state acceptors\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmcomplement");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -iLABELS --ilabels=LABELS Specify input (lower) labels file for alphabet.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->ilabels_arg = NULL;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->ilabels_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "ilabels", 1, NULL, 'i' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'i', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'i': /* Specify input (lower) labels file for alphabet. */
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify input (lower) labels file for alphabet. */
- else if (strcmp(olong, "ilabels") == 0) {
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.h b/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.h
deleted file mode 100644
index 4b3d57d..0000000
--- a/gfsm/gfsm/src/programs/gfsmcomplement_cmdparser.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcomplement_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmcomplement_cmdparser_h
-#define gfsmcomplement_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * ilabels_arg; /* Specify input (lower) labels file for alphabet. (default=NULL). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int ilabels_given; /* Whether ilabels was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmcomplement_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmcomplement_main.c b/gfsm/gfsm/src/programs/gfsmcomplement_main.c
deleted file mode 100644
index 227b963..0000000
--- a/gfsm/gfsm/src/programs/gfsmcomplement_main.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmcomplement_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmcomplement";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmAlphabet *ilabels=NULL;
-gfsmError *err=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- labels: input
- if (args.ilabels_given) {
- ilabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(ilabels,args.ilabels_arg,&err)) {
- g_printerr("%s: load failed for input-labels file '%s': %s\n",
- progname, args.ilabels_arg, err->message);
- exit(2);
- }
- }
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- complement
- if (ilabels) gfsm_automaton_complement_full(fsm,ilabels);
- else gfsm_automaton_complement(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (ilabels) gfsm_alphabet_free(ilabels);
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompose.gog b/gfsm/gfsm/src/programs/gfsmcompose.gog
deleted file mode 100644
index c4e34f3..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompose.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmcompose"
-#program_version "0.01"
-
-purpose "Compute composition of finite-state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE(s)" "Stored binary gfsm file(s)" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-Probably many.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.c b/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.c
deleted file mode 100644
index 5a82199..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompose_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmcompose_cmdparser gfsmcompose.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmcompose"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmcompose_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmcompose (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute composition of finite-state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE(s)\n", "gfsmcompose");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE(s) Stored binary gfsm file(s)\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.h b/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.h
deleted file mode 100644
index a99342e..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompose_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompose_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmcompose_cmdparser_h
-#define gfsmcompose_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmcompose_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmcompose_main.c b/gfsm/gfsm/src/programs/gfsmcompose_main.c
deleted file mode 100644
index 232c5e6..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompose_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005-2007 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmcompose_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmcompose";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_operation()
- * + utility routine
- */
-void compute_operation(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute underlying FSM operation
- if (fsmOut == NULL) {
- fsmOut = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_compose(fsmOut,fsmIn);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num; i++) {
- compute_operation(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_operation("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompre.gog b/gfsm/gfsm/src/programs/gfsmcompre.gog
deleted file mode 100644
index 7e4058f..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompre.gog
+++ /dev/null
@@ -1,94 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmcompre"
-#program_version "0.01"
-
-purpose "Compile an automaton from a regular expression"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-#argument "LABELID..." "Input label IDs" \
-# details="
-#In ASCII decimal notation.
-#"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "labels" l "Basic label alphabet" \
- arg="LABFILE"
-
-string "regex" s "Regular expression to compile" \
- arg="REGEX"
-
-flag "string" x "Compile as string, not regex" \
- default=0
-
-string "semiring" r "Specify semiring type" \
- arg="SRTYPE" \
- default="tropical" \
- details="
-Specify one of the following:
-
- boolean
- log
- plog
- real
- trivial
- tropical
-
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.c b/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.c
deleted file mode 100644
index 75f5810..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.c
+++ /dev/null
@@ -1,542 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompre_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmcompre_cmdparser gfsmcompre.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmcompre"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmcompre_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmcompre (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compile an automaton from a regular expression\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... [FILES]...\n", "gfsmcompre");
-
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -lLABFILE --labels=LABFILE Basic label alphabet\n");
- printf(" -sREGEX --regex=REGEX Regular expression to compile\n");
- printf(" -x --string Compile as string, not regex\n");
- printf(" -rSRTYPE --semiring=SRTYPE Specify semiring type\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->labels_arg = NULL;
- args_info->regex_arg = NULL;
- args_info->string_flag = 0;
- args_info->semiring_arg = strdup("tropical");
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->labels_given = 0;
- args_info->regex_given = 0;
- args_info->string_given = 0;
- args_info->semiring_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "labels", 1, NULL, 'l' },
- { "regex", 1, NULL, 's' },
- { "string", 0, NULL, 'x' },
- { "semiring", 1, NULL, 'r' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'l', ':',
- 's', ':',
- 'x',
- 'r', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'l': /* Basic label alphabet */
- if (args_info->labels_given) {
- fprintf(stderr, "%s: `--labels' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->labels_given++;
- if (args_info->labels_arg) free(args_info->labels_arg);
- args_info->labels_arg = strdup(val);
- break;
-
- case 's': /* Regular expression to compile */
- if (args_info->regex_given) {
- fprintf(stderr, "%s: `--regex' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->regex_given++;
- if (args_info->regex_arg) free(args_info->regex_arg);
- args_info->regex_arg = strdup(val);
- break;
-
- case 'x': /* Compile as string, not regex */
- if (args_info->string_given) {
- fprintf(stderr, "%s: `--string' (`-x') option given more than once\n", PROGRAM);
- }
- args_info->string_given++;
- if (args_info->string_given <= 1)
- args_info->string_flag = !(args_info->string_flag);
- break;
-
- case 'r': /* Specify semiring type */
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Basic label alphabet */
- else if (strcmp(olong, "labels") == 0) {
- if (args_info->labels_given) {
- fprintf(stderr, "%s: `--labels' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->labels_given++;
- if (args_info->labels_arg) free(args_info->labels_arg);
- args_info->labels_arg = strdup(val);
- }
-
- /* Regular expression to compile */
- else if (strcmp(olong, "regex") == 0) {
- if (args_info->regex_given) {
- fprintf(stderr, "%s: `--regex' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->regex_given++;
- if (args_info->regex_arg) free(args_info->regex_arg);
- args_info->regex_arg = strdup(val);
- }
-
- /* Compile as string, not regex */
- else if (strcmp(olong, "string") == 0) {
- if (args_info->string_given) {
- fprintf(stderr, "%s: `--string' (`-x') option given more than once\n", PROGRAM);
- }
- args_info->string_given++;
- if (args_info->string_given <= 1)
- args_info->string_flag = !(args_info->string_flag);
- }
-
- /* Specify semiring type */
- else if (strcmp(olong, "semiring") == 0) {
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.h b/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.h
deleted file mode 100644
index 32361ea..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompre_cmdparser.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmcompre_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmcompre_cmdparser_h
-#define gfsmcompre_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * labels_arg; /* Basic label alphabet (default=NULL). */
- char * regex_arg; /* Regular expression to compile (default=NULL). */
- int string_flag; /* Compile as string, not regex (default=0). */
- char * semiring_arg; /* Specify semiring type (default=tropical). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int labels_given; /* Whether labels was given */
- int regex_given; /* Whether regex was given */
- int string_given; /* Whether string was given */
- int semiring_given; /* Whether semiring was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmcompre_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmcompre_main.c b/gfsm/gfsm/src/programs/gfsmcompre_main.c
deleted file mode 100644
index 78e7721..0000000
--- a/gfsm/gfsm/src/programs/gfsmcompre_main.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <gfsm.h>
-
-#include "gfsmcompre_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmcompre";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *fstfilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmRegexCompiler *rec = NULL;
-gfsmAlphabet *abet = NULL;
-gfsmError *err = NULL;
-gboolean emit_warnings = TRUE;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- sanity checks
- if (!args.regex_given) {
- g_printerr("%s: no regex specified!\n", progname);
- cmdline_parser_print_help();
- exit(-1);
- }
-
- //-- filenames
- outfilename = args.output_arg;
-
- //-- alphabet: basic labels
- abet = gfsm_string_alphabet_new();
- if (args.labels_given) {
- if (!gfsm_alphabet_load_filename(abet, args.labels_arg, &err)) {
- g_printerr("%s: load failed for labels file '%s': %s\n",
- progname, args.labels_arg, err->message);
- exit(2);
- }
- }
-
- //-- options for regex compiler
- rec = gfsm_regex_compiler_new_full("gfsmRegexCompiler",
- abet,
- gfsm_sr_name_to_type(args.semiring_arg),
- emit_warnings);
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmAutomaton *fsm;
- char *regex=NULL;
-
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- string-compile hack: escape everything
- if (args.string_flag) {
- GString *tmp = g_string_new("");
- int i;
- for (i=0; i < strlen(args.regex_arg); i++) {
- g_string_append_c(tmp,'\\');
- g_string_append_c(tmp,args.regex_arg[i]);
- }
- regex = tmp->str;
- g_string_free(tmp,FALSE);
- } else {
- regex = args.regex_arg;
- }
-
- //-- parse regex string
- gfsm_scanner_scan_string(&(rec->scanner), regex);
- fsm = gfsm_regex_compiler_parse(rec);
-
- //-- check for errors
- if (rec->scanner.err) {
- g_printerr("%s: %s\n", progname, err->message);
- exit(3);
- }
- if (!fsm) {
- g_printerr("%s: no automaton!\n", progname);
- exit(4);
- }
-
-
- //-- save output fsm
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(5);
- }
-
- //-- cleanup
- gfsm_regex_compiler_free(rec,TRUE,TRUE);
-
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconcat.gog b/gfsm/gfsm/src/programs/gfsmconcat.gog
deleted file mode 100644
index f9b1e47..0000000
--- a/gfsm/gfsm/src/programs/gfsmconcat.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmconcat"
-#program_version "0.01"
-
-purpose "Concatenate finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE(s)" "Stored binary gfsm file(s)" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.c b/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.c
deleted file mode 100644
index 617a630..0000000
--- a/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconcat_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmconcat_cmdparser gfsmconcat.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmconcat"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmconcat_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmconcat (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Concatenate finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE(s)\n", "gfsmconcat");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE(s) Stored binary gfsm file(s)\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.h b/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.h
deleted file mode 100644
index 43125dd..0000000
--- a/gfsm/gfsm/src/programs/gfsmconcat_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconcat_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmconcat_cmdparser_h
-#define gfsmconcat_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmconcat_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmconcat_main.c b/gfsm/gfsm/src/programs/gfsmconcat_main.c
deleted file mode 100644
index 9d63792..0000000
--- a/gfsm/gfsm/src/programs/gfsmconcat_main.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmconcat_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmconcat";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_operation()
- * + utility routine
- */
-void compute_operation(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute concat
- if (fsmOut == NULL) {
- fsmOut = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_concat(fsmOut,fsmIn);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num; i++) {
- compute_operation(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_operation("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconnect.gog b/gfsm/gfsm/src/programs/gfsmconnect.gog
deleted file mode 100644
index 2de8230..0000000
--- a/gfsm/gfsm/src/programs/gfsmconnect.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmconnect"
-#program_version "0.01"
-
-purpose "Remove non-coaccessible states from finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.c b/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.c
deleted file mode 100644
index a3f30cb..0000000
--- a/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconnect_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmconnect_cmdparser gfsmconnect.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmconnect"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmconnect_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmconnect (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Remove non-coaccessible states from finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmconnect");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.h b/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.h
deleted file mode 100644
index 08f42e0..0000000
--- a/gfsm/gfsm/src/programs/gfsmconnect_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconnect_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmconnect_cmdparser_h
-#define gfsmconnect_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmconnect_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmconnect_main.c b/gfsm/gfsm/src/programs/gfsmconnect_main.c
deleted file mode 100644
index 82c9c22..0000000
--- a/gfsm/gfsm/src/programs/gfsmconnect_main.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmconnect_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmconnect";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- int rc = 0;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- connect
- gfsm_automaton_connect(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- get exit status: 255 if no root state
- if (fsm->root_id == gfsmNoState) rc=255;
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return rc;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconvert.gog b/gfsm/gfsm/src/programs/gfsmconvert.gog
deleted file mode 100644
index 4bb24af..0000000
--- a/gfsm/gfsm/src/programs/gfsmconvert.gog
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmconvert"
-#program_version "0.01"
-
-purpose "Convert binary format gfsm files"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "FSMFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "transducer" t "Specify whether automaton is a transducer" \
- arg="BOOL"
-
-int "weighted" w "Specify whether automaton is weighted" \
- arg="BOOL"
-
-string "semiring" s "Specify semiring type." \
- arg="SRTYPE" \
- details="
-Specify one of the following:
-
- boolean
- log
- real
- trivial
- tropical
-
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.c b/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.c
deleted file mode 100644
index 3e77ce5..0000000
--- a/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.c
+++ /dev/null
@@ -1,517 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconvert_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmconvert_cmdparser gfsmconvert.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmconvert"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmconvert_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmconvert (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Convert binary format gfsm files\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... FSMFILE\n", "gfsmconvert");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" FSMFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -tBOOL --transducer=BOOL Specify whether automaton is a transducer\n");
- printf(" -wBOOL --weighted=BOOL Specify whether automaton is weighted\n");
- printf(" -sSRTYPE --semiring=SRTYPE Specify semiring type.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->transducer_arg = 0;
- args_info->weighted_arg = 0;
- args_info->semiring_arg = NULL;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->transducer_given = 0;
- args_info->weighted_given = 0;
- args_info->semiring_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "transducer", 1, NULL, 't' },
- { "weighted", 1, NULL, 'w' },
- { "semiring", 1, NULL, 's' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 't', ':',
- 'w', ':',
- 's', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 't': /* Specify whether automaton is a transducer */
- if (args_info->transducer_given) {
- fprintf(stderr, "%s: `--transducer' (`-t') option given more than once\n", PROGRAM);
- }
- args_info->transducer_given++;
- args_info->transducer_arg = (int)atoi(val);
- break;
-
- case 'w': /* Specify whether automaton is weighted */
- if (args_info->weighted_given) {
- fprintf(stderr, "%s: `--weighted' (`-w') option given more than once\n", PROGRAM);
- }
- args_info->weighted_given++;
- args_info->weighted_arg = (int)atoi(val);
- break;
-
- case 's': /* Specify semiring type. */
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify whether automaton is a transducer */
- else if (strcmp(olong, "transducer") == 0) {
- if (args_info->transducer_given) {
- fprintf(stderr, "%s: `--transducer' (`-t') option given more than once\n", PROGRAM);
- }
- args_info->transducer_given++;
- args_info->transducer_arg = (int)atoi(val);
- }
-
- /* Specify whether automaton is weighted */
- else if (strcmp(olong, "weighted") == 0) {
- if (args_info->weighted_given) {
- fprintf(stderr, "%s: `--weighted' (`-w') option given more than once\n", PROGRAM);
- }
- args_info->weighted_given++;
- args_info->weighted_arg = (int)atoi(val);
- }
-
- /* Specify semiring type. */
- else if (strcmp(olong, "semiring") == 0) {
- if (args_info->semiring_given) {
- fprintf(stderr, "%s: `--semiring' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->semiring_given++;
- if (args_info->semiring_arg) free(args_info->semiring_arg);
- args_info->semiring_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.h b/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.h
deleted file mode 100644
index 93a2291..0000000
--- a/gfsm/gfsm/src/programs/gfsmconvert_cmdparser.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmconvert_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmconvert_cmdparser_h
-#define gfsmconvert_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int transducer_arg; /* Specify whether automaton is a transducer (default=0). */
- int weighted_arg; /* Specify whether automaton is weighted (default=0). */
- char * semiring_arg; /* Specify semiring type. (default=NULL). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int transducer_given; /* Whether transducer was given */
- int weighted_given; /* Whether weighted was given */
- int semiring_given; /* Whether semiring was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmconvert_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmconvert_main.c b/gfsm/gfsm/src/programs/gfsmconvert_main.c
deleted file mode 100644
index 7c09f08..0000000
--- a/gfsm/gfsm/src/programs/gfsmconvert_main.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gfsm.h>
-
-#include "gfsmconvert_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmconvert";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmError *err = NULL;
-gfsmSRType srtype = gfsmSRTUnknown;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- outfilename = args.output_arg;
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(3);
- }
-
- //-- set flags
- if (args.transducer_given) fsm->flags.is_transducer = args.transducer_arg;
- if (args.weighted_given) fsm->flags.is_weighted = args.weighted_arg;
-
- //-- set semiring
- if (args.semiring_given) {
- srtype = gfsm_sr_name_to_type(args.semiring_arg);
- if (srtype == gfsmSRTUnknown) {
- g_printerr("%s: Warning: unknown semiring name '%s' defaults to type 'tropical'.\n",
- progname, args.semiring_arg);
- srtype = gfsmSRTTropical;
- }
- if (srtype != fsm->sr->type) {
- gfsm_automaton_set_semiring(fsm, gfsm_semiring_new(srtype));
- }
- }
-
- //-- store automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdeterminize.gog b/gfsm/gfsm/src/programs/gfsmdeterminize.gog
deleted file mode 100644
index 1fed7e8..0000000
--- a/gfsm/gfsm/src/programs/gfsmdeterminize.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmdeterminize"
-#program_version "0.01"
-
-purpose "Determinize a finite state machine"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.c b/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.c
deleted file mode 100644
index 0ce40e9..0000000
--- a/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdeterminize_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmdeterminize_cmdparser gfsmdeterminize.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmdeterminize"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmdeterminize_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmdeterminize (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Determinize a finite state machine\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmdeterminize");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.h b/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.h
deleted file mode 100644
index a0324f4..0000000
--- a/gfsm/gfsm/src/programs/gfsmdeterminize_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdeterminize_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmdeterminize_cmdparser_h
-#define gfsmdeterminize_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmdeterminize_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmdeterminize_main.c b/gfsm/gfsm/src/programs/gfsmdeterminize_main.c
deleted file mode 100644
index 66ba402..0000000
--- a/gfsm/gfsm/src/programs/gfsmdeterminize_main.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmdeterminize_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmdeterminize";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- determinize
- gfsm_automaton_determinize(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm, outfilename, args.compress_arg, &err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdifference.gog b/gfsm/gfsm/src/programs/gfsmdifference.gog
deleted file mode 100644
index 9bdb612..0000000
--- a/gfsm/gfsm/src/programs/gfsmdifference.gog
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmdifference"
-#program_version "0.01"
-
-purpose "Compute difference of epsilon-free finite state acceptors"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE(s)" "Stored binary gfsm file(s)" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-Epsilon arcs are not handled correctly.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.c b/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.c
deleted file mode 100644
index 80c51f7..0000000
--- a/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdifference_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmdifference_cmdparser gfsmdifference.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmdifference"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmdifference_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmdifference (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute difference of epsilon-free finite state acceptors\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE(s)\n", "gfsmdifference");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE(s) Stored binary gfsm file(s)\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.h b/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.h
deleted file mode 100644
index b61aa90..0000000
--- a/gfsm/gfsm/src/programs/gfsmdifference_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdifference_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmdifference_cmdparser_h
-#define gfsmdifference_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmdifference_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmdifference_main.c b/gfsm/gfsm/src/programs/gfsmdifference_main.c
deleted file mode 100644
index 19aaedf..0000000
--- a/gfsm/gfsm/src/programs/gfsmdifference_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmdifference_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmdifference";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_operation()
- * + utility routine
- */
-void compute_operation(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute difference
- if (fsmOut == NULL) {
- fsmOut = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_difference(fsmOut,fsmIn);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num; i++) {
- compute_operation(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_operation("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdraw.gog b/gfsm/gfsm/src/programs/gfsmdraw.gog
deleted file mode 100644
index 63fbb4f..0000000
--- a/gfsm/gfsm/src/programs/gfsmdraw.gog
+++ /dev/null
@@ -1,138 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmdraw"
-#program_version "0.01"
-
-purpose "Generate graph specifications from binary gfsm files"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details "
-gfsmdraw reads a binary GFSM file file and produces a graph specification
-in either dot(1) or vcg(1) format.
-"
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Common Options
-#-----------------------------------------------------------------------------
-group "Common Options"
-
-string "ilabels" i "Specify input (lower) labels file." \
- arg="LABELS"
-
-string "olabels" o "Specify output (upper) labels file." \
- arg="LABELS"
-
-string "slabels" s "Specify state labels file." \
- arg="LABELS"
-
-string "title" t "Specify output title." \
- arg="TITLE" \
- details="Default is input filename."
-
-flag "vertical" v "Draw vertically." \
- details="Default mode is top-to-bottom"
-
-string "output" F "Output graph specification." \
- arg="DOTFILE" \
- details="
-Default behavior is to write to stdout.
-"
-
-#-----------------------------------------------------------------------------
-# dot Options
-#-----------------------------------------------------------------------------
-group "dot Options"
-
-flag "dot" d "Request dot output (default)"
-
-float "width" W "Specify output width (default=bbox)." \
- arg="WIDTH" \
- default="8.5"
-float "height" H "Specify output height (default=bbox)." \
- arg="HEIGHT" \
- default="11"
-
-int "fontsize" f "Set output font size." \
- arg="POINTS" \
- default="14"
-string "font" - "Set output font name." \
- arg="FONT"
-
-float "nodesep" n "Set min node separation." \
- default="0.25"
-float "ranksep" r "Set min rank separation." \
- default="0.40"
-
-flag "portrait" p "Generate in portrait mode." \
- details="Default mode is landscape."
-
-#-----------------------------------------------------------------------------
-# VCG Options
-#-----------------------------------------------------------------------------
-group "VCG Options"
-
-flag "vcg" g "Request VCG output."
-
-int "xspace" x "Set xspace graph parameter." \
- default="40"
-int "yspace" y "Set yspace graph parameter." \
- default="20"
-
-string "state-shape" - "Set shape for state nodes." \
- arg="SHAPE" \
- default="box"
-
-string "state-color" - "Set default state color." \
- arg="COLOR" \
- default="white"
-
-string "final-color" - "Set color for final states." \
- arg="COLOR" \
- default="lightgrey"
-
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>,
-dot(1),
-vcg(1),
-xvcg(1)
-"
diff --git a/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.c b/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.c
deleted file mode 100644
index 40b52e6..0000000
--- a/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.c
+++ /dev/null
@@ -1,835 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdraw_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmdraw_cmdparser gfsmdraw.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmdraw"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmdraw_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmdraw (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Generate graph specifications from binary gfsm files\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmdraw");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf("\n");
- printf(" Common Options:\n");
- printf(" -iLABELS --ilabels=LABELS Specify input (lower) labels file.\n");
- printf(" -oLABELS --olabels=LABELS Specify output (upper) labels file.\n");
- printf(" -sLABELS --slabels=LABELS Specify state labels file.\n");
- printf(" -tTITLE --title=TITLE Specify output title.\n");
- printf(" -v --vertical Draw vertically.\n");
- printf(" -FDOTFILE --output=DOTFILE Output graph specification.\n");
- printf("\n");
- printf(" dot Options:\n");
- printf(" -d --dot Request dot output (default)\n");
- printf(" -WFLOAT --width=FLOAT Specify output width (default=bbox).\n");
- printf(" -HFLOAT --height=FLOAT Specify output height (default=bbox).\n");
- printf(" -fPOINTS --fontsize=POINTS Set output font size.\n");
- printf(" --font=FONT Set output font name.\n");
- printf(" -nFLOAT --nodesep=FLOAT Set min node separation.\n");
- printf(" -rFLOAT --ranksep=FLOAT Set min rank separation.\n");
- printf(" -p --portrait Generate in portrait mode.\n");
- printf("\n");
- printf(" VCG Options:\n");
- printf(" -g --vcg Request VCG output.\n");
- printf(" -xINT --xspace=INT Set xspace graph parameter.\n");
- printf(" -yINT --yspace=INT Set yspace graph parameter.\n");
- printf(" --state-shape=SHAPE Set shape for state nodes.\n");
- printf(" --state-color=COLOR Set default state color.\n");
- printf(" --final-color=COLOR Set color for final states.\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->ilabels_arg = NULL;
- args_info->olabels_arg = NULL;
- args_info->slabels_arg = NULL;
- args_info->title_arg = NULL;
- args_info->vertical_flag = 0;
- args_info->output_arg = NULL;
- args_info->dot_flag = 0;
- args_info->width_arg = 8.5;
- args_info->height_arg = 11;
- args_info->fontsize_arg = 14;
- args_info->font_arg = NULL;
- args_info->nodesep_arg = 0.25;
- args_info->ranksep_arg = 0.40;
- args_info->portrait_flag = 0;
- args_info->vcg_flag = 0;
- args_info->xspace_arg = 40;
- args_info->yspace_arg = 20;
- args_info->state_shape_arg = strdup("box");
- args_info->state_color_arg = strdup("white");
- args_info->final_color_arg = strdup("lightgrey");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->ilabels_given = 0;
- args_info->olabels_given = 0;
- args_info->slabels_given = 0;
- args_info->title_given = 0;
- args_info->vertical_given = 0;
- args_info->output_given = 0;
- args_info->dot_given = 0;
- args_info->width_given = 0;
- args_info->height_given = 0;
- args_info->fontsize_given = 0;
- args_info->font_given = 0;
- args_info->nodesep_given = 0;
- args_info->ranksep_given = 0;
- args_info->portrait_given = 0;
- args_info->vcg_given = 0;
- args_info->xspace_given = 0;
- args_info->yspace_given = 0;
- args_info->state_shape_given = 0;
- args_info->state_color_given = 0;
- args_info->final_color_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "ilabels", 1, NULL, 'i' },
- { "olabels", 1, NULL, 'o' },
- { "slabels", 1, NULL, 's' },
- { "title", 1, NULL, 't' },
- { "vertical", 0, NULL, 'v' },
- { "output", 1, NULL, 'F' },
- { "dot", 0, NULL, 'd' },
- { "width", 1, NULL, 'W' },
- { "height", 1, NULL, 'H' },
- { "fontsize", 1, NULL, 'f' },
- { "font", 1, NULL, 0 },
- { "nodesep", 1, NULL, 'n' },
- { "ranksep", 1, NULL, 'r' },
- { "portrait", 0, NULL, 'p' },
- { "vcg", 0, NULL, 'g' },
- { "xspace", 1, NULL, 'x' },
- { "yspace", 1, NULL, 'y' },
- { "state-shape", 1, NULL, 0 },
- { "state-color", 1, NULL, 0 },
- { "final-color", 1, NULL, 0 },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'i', ':',
- 'o', ':',
- 's', ':',
- 't', ':',
- 'v',
- 'F', ':',
- 'd',
- 'W', ':',
- 'H', ':',
- 'f', ':',
- 'n', ':',
- 'r', ':',
- 'p',
- 'g',
- 'x', ':',
- 'y', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'i': /* Specify input (lower) labels file. */
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- break;
-
- case 'o': /* Specify output (upper) labels file. */
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- break;
-
- case 's': /* Specify state labels file. */
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- break;
-
- case 't': /* Specify output title. */
- if (args_info->title_given) {
- fprintf(stderr, "%s: `--title' (`-t') option given more than once\n", PROGRAM);
- }
- args_info->title_given++;
- if (args_info->title_arg) free(args_info->title_arg);
- args_info->title_arg = strdup(val);
- break;
-
- case 'v': /* Draw vertically. */
- if (args_info->vertical_given) {
- fprintf(stderr, "%s: `--vertical' (`-v') option given more than once\n", PROGRAM);
- }
- args_info->vertical_given++;
- if (args_info->vertical_given <= 1)
- args_info->vertical_flag = !(args_info->vertical_flag);
- break;
-
- case 'F': /* Output graph specification. */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 'd': /* Request dot output (default) */
- if (args_info->dot_given) {
- fprintf(stderr, "%s: `--dot' (`-d') option given more than once\n", PROGRAM);
- }
- args_info->dot_given++;
- if (args_info->dot_given <= 1)
- args_info->dot_flag = !(args_info->dot_flag);
- break;
-
- case 'W': /* Specify output width (default=bbox). */
- if (args_info->width_given) {
- fprintf(stderr, "%s: `--width' (`-W') option given more than once\n", PROGRAM);
- }
- args_info->width_given++;
- args_info->width_arg = (float)strtod(val, NULL);
- break;
-
- case 'H': /* Specify output height (default=bbox). */
- if (args_info->height_given) {
- fprintf(stderr, "%s: `--height' (`-H') option given more than once\n", PROGRAM);
- }
- args_info->height_given++;
- args_info->height_arg = (float)strtod(val, NULL);
- break;
-
- case 'f': /* Set output font size. */
- if (args_info->fontsize_given) {
- fprintf(stderr, "%s: `--fontsize' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fontsize_given++;
- args_info->fontsize_arg = (int)atoi(val);
- break;
-
- case 'n': /* Set min node separation. */
- if (args_info->nodesep_given) {
- fprintf(stderr, "%s: `--nodesep' (`-n') option given more than once\n", PROGRAM);
- }
- args_info->nodesep_given++;
- args_info->nodesep_arg = (float)strtod(val, NULL);
- break;
-
- case 'r': /* Set min rank separation. */
- if (args_info->ranksep_given) {
- fprintf(stderr, "%s: `--ranksep' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->ranksep_given++;
- args_info->ranksep_arg = (float)strtod(val, NULL);
- break;
-
- case 'p': /* Generate in portrait mode. */
- if (args_info->portrait_given) {
- fprintf(stderr, "%s: `--portrait' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->portrait_given++;
- if (args_info->portrait_given <= 1)
- args_info->portrait_flag = !(args_info->portrait_flag);
- break;
-
- case 'g': /* Request VCG output. */
- if (args_info->vcg_given) {
- fprintf(stderr, "%s: `--vcg' (`-g') option given more than once\n", PROGRAM);
- }
- args_info->vcg_given++;
- if (args_info->vcg_given <= 1)
- args_info->vcg_flag = !(args_info->vcg_flag);
- break;
-
- case 'x': /* Set xspace graph parameter. */
- if (args_info->xspace_given) {
- fprintf(stderr, "%s: `--xspace' (`-x') option given more than once\n", PROGRAM);
- }
- args_info->xspace_given++;
- args_info->xspace_arg = (int)atoi(val);
- break;
-
- case 'y': /* Set yspace graph parameter. */
- if (args_info->yspace_given) {
- fprintf(stderr, "%s: `--yspace' (`-y') option given more than once\n", PROGRAM);
- }
- args_info->yspace_given++;
- args_info->yspace_arg = (int)atoi(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify input (lower) labels file. */
- else if (strcmp(olong, "ilabels") == 0) {
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- }
-
- /* Specify output (upper) labels file. */
- else if (strcmp(olong, "olabels") == 0) {
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- }
-
- /* Specify state labels file. */
- else if (strcmp(olong, "slabels") == 0) {
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- }
-
- /* Specify output title. */
- else if (strcmp(olong, "title") == 0) {
- if (args_info->title_given) {
- fprintf(stderr, "%s: `--title' (`-t') option given more than once\n", PROGRAM);
- }
- args_info->title_given++;
- if (args_info->title_arg) free(args_info->title_arg);
- args_info->title_arg = strdup(val);
- }
-
- /* Draw vertically. */
- else if (strcmp(olong, "vertical") == 0) {
- if (args_info->vertical_given) {
- fprintf(stderr, "%s: `--vertical' (`-v') option given more than once\n", PROGRAM);
- }
- args_info->vertical_given++;
- if (args_info->vertical_given <= 1)
- args_info->vertical_flag = !(args_info->vertical_flag);
- }
-
- /* Output graph specification. */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- /* Request dot output (default) */
- else if (strcmp(olong, "dot") == 0) {
- if (args_info->dot_given) {
- fprintf(stderr, "%s: `--dot' (`-d') option given more than once\n", PROGRAM);
- }
- args_info->dot_given++;
- if (args_info->dot_given <= 1)
- args_info->dot_flag = !(args_info->dot_flag);
- }
-
- /* Specify output width (default=bbox). */
- else if (strcmp(olong, "width") == 0) {
- if (args_info->width_given) {
- fprintf(stderr, "%s: `--width' (`-W') option given more than once\n", PROGRAM);
- }
- args_info->width_given++;
- args_info->width_arg = (float)strtod(val, NULL);
- }
-
- /* Specify output height (default=bbox). */
- else if (strcmp(olong, "height") == 0) {
- if (args_info->height_given) {
- fprintf(stderr, "%s: `--height' (`-H') option given more than once\n", PROGRAM);
- }
- args_info->height_given++;
- args_info->height_arg = (float)strtod(val, NULL);
- }
-
- /* Set output font size. */
- else if (strcmp(olong, "fontsize") == 0) {
- if (args_info->fontsize_given) {
- fprintf(stderr, "%s: `--fontsize' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fontsize_given++;
- args_info->fontsize_arg = (int)atoi(val);
- }
-
- /* Set output font name. */
- else if (strcmp(olong, "font") == 0) {
- if (args_info->font_given) {
- fprintf(stderr, "%s: `--font' option given more than once\n", PROGRAM);
- }
- args_info->font_given++;
- if (args_info->font_arg) free(args_info->font_arg);
- args_info->font_arg = strdup(val);
- }
-
- /* Set min node separation. */
- else if (strcmp(olong, "nodesep") == 0) {
- if (args_info->nodesep_given) {
- fprintf(stderr, "%s: `--nodesep' (`-n') option given more than once\n", PROGRAM);
- }
- args_info->nodesep_given++;
- args_info->nodesep_arg = (float)strtod(val, NULL);
- }
-
- /* Set min rank separation. */
- else if (strcmp(olong, "ranksep") == 0) {
- if (args_info->ranksep_given) {
- fprintf(stderr, "%s: `--ranksep' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->ranksep_given++;
- args_info->ranksep_arg = (float)strtod(val, NULL);
- }
-
- /* Generate in portrait mode. */
- else if (strcmp(olong, "portrait") == 0) {
- if (args_info->portrait_given) {
- fprintf(stderr, "%s: `--portrait' (`-p') option given more than once\n", PROGRAM);
- }
- args_info->portrait_given++;
- if (args_info->portrait_given <= 1)
- args_info->portrait_flag = !(args_info->portrait_flag);
- }
-
- /* Request VCG output. */
- else if (strcmp(olong, "vcg") == 0) {
- if (args_info->vcg_given) {
- fprintf(stderr, "%s: `--vcg' (`-g') option given more than once\n", PROGRAM);
- }
- args_info->vcg_given++;
- if (args_info->vcg_given <= 1)
- args_info->vcg_flag = !(args_info->vcg_flag);
- }
-
- /* Set xspace graph parameter. */
- else if (strcmp(olong, "xspace") == 0) {
- if (args_info->xspace_given) {
- fprintf(stderr, "%s: `--xspace' (`-x') option given more than once\n", PROGRAM);
- }
- args_info->xspace_given++;
- args_info->xspace_arg = (int)atoi(val);
- }
-
- /* Set yspace graph parameter. */
- else if (strcmp(olong, "yspace") == 0) {
- if (args_info->yspace_given) {
- fprintf(stderr, "%s: `--yspace' (`-y') option given more than once\n", PROGRAM);
- }
- args_info->yspace_given++;
- args_info->yspace_arg = (int)atoi(val);
- }
-
- /* Set shape for state nodes. */
- else if (strcmp(olong, "state-shape") == 0) {
- if (args_info->state_shape_given) {
- fprintf(stderr, "%s: `--state-shape' option given more than once\n", PROGRAM);
- }
- args_info->state_shape_given++;
- if (args_info->state_shape_arg) free(args_info->state_shape_arg);
- args_info->state_shape_arg = strdup(val);
- }
-
- /* Set default state color. */
- else if (strcmp(olong, "state-color") == 0) {
- if (args_info->state_color_given) {
- fprintf(stderr, "%s: `--state-color' option given more than once\n", PROGRAM);
- }
- args_info->state_color_given++;
- if (args_info->state_color_arg) free(args_info->state_color_arg);
- args_info->state_color_arg = strdup(val);
- }
-
- /* Set color for final states. */
- else if (strcmp(olong, "final-color") == 0) {
- if (args_info->final_color_given) {
- fprintf(stderr, "%s: `--final-color' option given more than once\n", PROGRAM);
- }
- args_info->final_color_given++;
- if (args_info->final_color_arg) free(args_info->final_color_arg);
- args_info->final_color_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.h b/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.h
deleted file mode 100644
index b494e48..0000000
--- a/gfsm/gfsm/src/programs/gfsmdraw_cmdparser.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmdraw_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmdraw_cmdparser_h
-#define gfsmdraw_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * ilabels_arg; /* Specify input (lower) labels file. (default=NULL). */
- char * olabels_arg; /* Specify output (upper) labels file. (default=NULL). */
- char * slabels_arg; /* Specify state labels file. (default=NULL). */
- char * title_arg; /* Specify output title. (default=NULL). */
- int vertical_flag; /* Draw vertically. (default=0). */
- char * output_arg; /* Output graph specification. (default=NULL). */
- int dot_flag; /* Request dot output (default) (default=0). */
- float width_arg; /* Specify output width (default=bbox). (default=8.5). */
- float height_arg; /* Specify output height (default=bbox). (default=11). */
- int fontsize_arg; /* Set output font size. (default=14). */
- char * font_arg; /* Set output font name. (default=NULL). */
- float nodesep_arg; /* Set min node separation. (default=0.25). */
- float ranksep_arg; /* Set min rank separation. (default=0.40). */
- int portrait_flag; /* Generate in portrait mode. (default=0). */
- int vcg_flag; /* Request VCG output. (default=0). */
- int xspace_arg; /* Set xspace graph parameter. (default=40). */
- int yspace_arg; /* Set yspace graph parameter. (default=20). */
- char * state_shape_arg; /* Set shape for state nodes. (default=box). */
- char * state_color_arg; /* Set default state color. (default=white). */
- char * final_color_arg; /* Set color for final states. (default=lightgrey). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int ilabels_given; /* Whether ilabels was given */
- int olabels_given; /* Whether olabels was given */
- int slabels_given; /* Whether slabels was given */
- int title_given; /* Whether title was given */
- int vertical_given; /* Whether vertical was given */
- int output_given; /* Whether output was given */
- int dot_given; /* Whether dot was given */
- int width_given; /* Whether width was given */
- int height_given; /* Whether height was given */
- int fontsize_given; /* Whether fontsize was given */
- int font_given; /* Whether font was given */
- int nodesep_given; /* Whether nodesep was given */
- int ranksep_given; /* Whether ranksep was given */
- int portrait_given; /* Whether portrait was given */
- int vcg_given; /* Whether vcg was given */
- int xspace_given; /* Whether xspace was given */
- int yspace_given; /* Whether yspace was given */
- int state_shape_given; /* Whether state-shape was given */
- int state_color_given; /* Whether state-color was given */
- int final_color_given; /* Whether final-color was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmdraw_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmdraw_main.c b/gfsm/gfsm/src/programs/gfsmdraw_main.c
deleted file mode 100644
index 7748419..0000000
--- a/gfsm/gfsm/src/programs/gfsmdraw_main.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmdraw_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmdraw";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmAlphabet *ilabels=NULL, *olabels=NULL, *slabels=NULL;
-gfsmError *err = NULL;
-
-typedef enum _gfsmDrawMode {
- gfsmDMNone,
- gfsmDMDot,
- gfsmDMVCG
-} gfsmDrawMode;
-gfsmDrawMode mode = gfsmDMDot; //-- default mode
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- if (args.output_given) outfilename = args.output_arg;
-
- //-- labels: input
- if (args.ilabels_given) {
- ilabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(ilabels,args.ilabels_arg,&err)) {
- g_printerr("%s: load failed for input-labels file '%s': %s\n",
- progname, args.ilabels_arg, (err ? err->message : "?"));
- exit(2);
- }
- }
- //-- labels: output
- if (args.olabels_given) {
- olabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(olabels,args.olabels_arg,&err)) {
- g_printerr("%s: load failed for output-labels file '%s': %s\n",
- progname, args.olabels_arg, (err ? err->message : "?"));
- exit(2);
- }
- }
- //-- labels: state
- if (args.slabels_given) {
- slabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(slabels,args.slabels_arg,&err)) {
- g_printerr("%s: load failed for state-labels file '%s': %s\n",
- progname, args.slabels_arg, (err ? err->message : "?"));
- exit(2);
- }
- }
-
- //-- draw mode
- if (args.dot_given) mode = gfsmDMDot;
- else if (args.vcg_given) mode = gfsmDMVCG;
-
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gboolean rc = FALSE;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, (err ? err->message : "?"));
- exit(3);
- }
-
- //-- draw automaton
- if (mode==gfsmDMDot)
- rc = gfsm_automaton_draw_dot_filename_full(fsm,
- outfilename,
- ilabels,
- olabels,
- slabels,
- (args.title_given ? args.title_arg : infilename),
- args.width_arg,
- args.height_arg,
- args.fontsize_arg,
- args.font_arg,
- args.portrait_given,
- args.vertical_given,
- args.nodesep_arg,
- args.ranksep_arg,
- &err);
- else if (mode==gfsmDMVCG)
- rc = gfsm_automaton_draw_vcg_filename_full(fsm,
- outfilename,
- ilabels,
- olabels,
- slabels,
- (args.title_given ? args.title_arg : infilename),
- args.xspace_arg,
- args.yspace_arg,
- (args.vertical_given ? "top_to_bottom" : "left_to_right"),
- args.state_shape_arg,
- args.state_color_arg,
- args.final_color_arg,
- &err);
-
- if (!rc) {
- g_printerr("%s: store failed to '%s': %s\n",
- progname, outfilename, (err ? err->message : "?"));
- exit(4);
- }
-
- //-- cleanup
- if (ilabels) gfsm_alphabet_free(ilabels);
- if (olabels) gfsm_alphabet_free(olabels);
- if (slabels) gfsm_alphabet_free(slabels);
- gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmheader.gog b/gfsm/gfsm/src/programs/gfsmheader.gog
deleted file mode 100644
index c3555ee..0000000
--- a/gfsm/gfsm/src/programs/gfsmheader.gog
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmheader"
-#program_version "0.01"
-
-purpose "Show header information from stored gfsm files"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmheader_cmdparser.c b/gfsm/gfsm/src/programs/gfsmheader_cmdparser.c
deleted file mode 100644
index 58f982f..0000000
--- a/gfsm/gfsm/src/programs/gfsmheader_cmdparser.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmheader_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmheader_cmdparser gfsmheader.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmheader"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmheader_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmheader (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Show header information from stored gfsm files\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmheader");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmheader_cmdparser.h b/gfsm/gfsm/src/programs/gfsmheader_cmdparser.h
deleted file mode 100644
index b9e0baa..0000000
--- a/gfsm/gfsm/src/programs/gfsmheader_cmdparser.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmheader_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmheader_cmdparser_h
-#define gfsmheader_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
-
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmheader_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmheader_main.c b/gfsm/gfsm/src/programs/gfsmheader_main.c
deleted file mode 100644
index 5ba0a87..0000000
--- a/gfsm/gfsm/src/programs/gfsmheader_main.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmheader_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmheader";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-
-//-- global structs
-gfsmAutomatonHeader hdr;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
-
- //-- initialize header
- memset(&hdr, 0, sizeof(gfsmAutomatonHeader));
-}
-
-/*--------------------------------------------------------------------------
- * Utilities
- *--------------------------------------------------------------------------*/
-#define bool2char(b) (b ? 'y' : 'n')
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- gfsmIOHandle *ioh = NULL;
- GString *modestr = NULL;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- //-- open file
- if (!(ioh = gfsmio_new_filename(infilename,"rb",-1,&err)) || err) {
- g_printerr("%s: open failed for '%s': %s\n", progname, infilename, err->message);
- exit(2);
- }
-
- //-- read header
- if (!gfsmio_read(ioh, &hdr, sizeof(gfsmAutomatonHeader))) {
- g_printerr("%s: failed to read header!\n", progname);
- exit(3);
- }
- gfsmio_close(ioh);
-
- //-- print header information
- printf("%-24s: %s\n", "Filename", infilename);
- printf("%-24s: %s\n", "magic", hdr.magic);
- printf("%-24s: %d.%d.%d\n", "version",
- hdr.version.major, hdr.version.minor, hdr.version.micro);
- printf("%-24s: %d.%d.%d\n", "version_min",
- hdr.version_min.major, hdr.version_min.minor, hdr.version_min.micro);
-
- printf("%-24s: %d\n", "flags.is_transducer", hdr.flags.is_transducer);
- printf("%-24s: %d\n", "flags.is_weighted", hdr.flags.is_transducer);
-#if 0
- printf("%-24s: %d (%s)\n", "flags.sort_mode",
- hdr.flags.sort_mode, gfsm_arc_sortmode_to_name(hdr.flags.sort_mode));
-#else
- modestr = gfsm_acmask_to_gstring(hdr.flags.sort_mode, modestr);
- printf("%-24s: %d (%s)\n", "flags.sort_mode", hdr.flags.sort_mode, modestr->str);
- g_string_free(modestr,TRUE);
-#endif
- printf("%-24s: %d\n", "flags.is_deterministic", hdr.flags.is_deterministic);
- printf("%-24s: %d\n", "flags.unused", hdr.flags.unused);
-
- printf("%-24s: %u\n", "root_id", hdr.root_id);
- printf("%-24s: %u\n", "n_states", hdr.n_states);
- printf("%-24s: %u\n", "n_arcs", hdr.n_arcs_007);
- printf("%-24s: %u (%s)\n", "srtype", hdr.srtype, gfsm_sr_type_to_name(hdr.srtype));
-
- printf("%-24s: %u\n", "unused1", hdr.unused1);
- printf("%-24s: %u\n", "unused2", hdr.unused2);
- printf("%-24s: %u\n", "unused3", hdr.unused3);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmindex.gog b/gfsm/gfsm/src/programs/gfsmindex.gog
deleted file mode 100644
index 53c2a14..0000000
--- a/gfsm/gfsm/src/programs/gfsmindex.gog
+++ /dev/null
@@ -1,75 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmindex"
-#program_version "0.01"
-
-purpose "Convert between indexed and un-indexed binary gfsm automata"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "FSMFILE" "Stored binary gfsm automaton file or index" \
- details="
-If unspecified, standard input will be read.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-flag "unindex" u "Convert indexed automaton to unindexed format" \
- details="
-Default behavior is to convert a plain unindexed automaton to an indexed automaton.
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmindex_cmdparser.c b/gfsm/gfsm/src/programs/gfsmindex_cmdparser.c
deleted file mode 100644
index 8de1602..0000000
--- a/gfsm/gfsm/src/programs/gfsmindex_cmdparser.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmindex_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmindex_cmdparser gfsmindex.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmindex"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmindex_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmindex (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Convert between indexed and un-indexed binary gfsm automata\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... FSMFILE\n", "gfsmindex");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" FSMFILE Stored binary gfsm automaton file or index\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -u --unindex Convert indexed automaton to unindexed format\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->unindex_flag = 0;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->unindex_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "unindex", 0, NULL, 'u' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'u',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'u': /* Convert indexed automaton to unindexed format */
- if (args_info->unindex_given) {
- fprintf(stderr, "%s: `--unindex' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->unindex_given++;
- if (args_info->unindex_given <= 1)
- args_info->unindex_flag = !(args_info->unindex_flag);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Convert indexed automaton to unindexed format */
- else if (strcmp(olong, "unindex") == 0) {
- if (args_info->unindex_given) {
- fprintf(stderr, "%s: `--unindex' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->unindex_given++;
- if (args_info->unindex_given <= 1)
- args_info->unindex_flag = !(args_info->unindex_flag);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmindex_cmdparser.h b/gfsm/gfsm/src/programs/gfsmindex_cmdparser.h
deleted file mode 100644
index 7dbcfb6..0000000
--- a/gfsm/gfsm/src/programs/gfsmindex_cmdparser.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmindex_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06.
- *
- */
-
-#ifndef gfsmindex_cmdparser_h
-#define gfsmindex_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int unindex_flag; /* Convert indexed automaton to unindexed format (default=0). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int unindex_given; /* Whether unindex was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmindex_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmindex_main.c b/gfsm/gfsm/src/programs/gfsmindex_main.c
deleted file mode 100644
index 76adf26..0000000
--- a/gfsm/gfsm/src/programs/gfsmindex_main.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2007 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <gfsm.h>
-
-#include "gfsmindex_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmindex";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm=NULL;
-gfsmIndexedAutomaton *xfsm=NULL;
-gfsmError *err=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- outfilename = args.output_arg;
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- dispatch
- if (args.unindex_given) {
- //-- convert indexed --> vanilla
-
- //-- load index
- xfsm = gfsm_indexed_automaton_new();
- if (!gfsm_indexed_automaton_load_bin_filename(xfsm,infilename,&err)) {
- g_printerr("%s: load failed for indexed automaton from '%s': %s\n", progname, infilename,
- (err ? err->message : "?"));
- exit(3);
- }
-
- //-- unindex
- fsm = gfsm_indexed_to_automaton(xfsm,NULL);
-
- //-- store vanilla
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed for vanilla automaton to '%s': %s\n", progname, outfilename,
- (err ? err->message : "?"));
- exit(4);
- }
- }
- else {
- //-- convert vanilla --> indexed
-
- //-- load vanilla
- fsm = gfsm_automaton_new();
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for vanilla automaton from '%s': %s\n", progname, infilename,
- (err ? err->message : "?"));
- exit(3);
- }
-
- //-- index & sort
- xfsm = gfsm_automaton_to_indexed(fsm,NULL);
- //gfsm_indexed_automaton_sort(xfsm, gfsm_acmask_from_args(gfsmACLower,gfsmACWeight)); //-- TODO: make these options!
-
- //-- store indexed
- if (!gfsm_indexed_automaton_save_bin_filename(xfsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed for indexed automaton to '%s': %s\n", progname, outfilename,
- (err ? err->message : "?"));
- exit(4);
- }
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
- if (xfsm) gfsm_indexed_automaton_free(xfsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsminfo.gog b/gfsm/gfsm/src/programs/gfsminfo.gog
deleted file mode 100644
index 22ddbec..0000000
--- a/gfsm/gfsm/src/programs/gfsminfo.gog
+++ /dev/null
@@ -1,57 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsminfo"
-#program_version "0.01"
-
-purpose "Show basic information about stored gfsm files"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsminfo_cmdparser.c b/gfsm/gfsm/src/programs/gfsminfo_cmdparser.c
deleted file mode 100644
index 79e978f..0000000
--- a/gfsm/gfsm/src/programs/gfsminfo_cmdparser.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsminfo_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsminfo_cmdparser gfsminfo.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsminfo"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsminfo_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsminfo (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Show basic information about stored gfsm files\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsminfo");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsminfo_cmdparser.h b/gfsm/gfsm/src/programs/gfsminfo_cmdparser.h
deleted file mode 100644
index 8aa6727..0000000
--- a/gfsm/gfsm/src/programs/gfsminfo_cmdparser.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsminfo_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsminfo_cmdparser_h
-#define gfsminfo_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
-
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsminfo_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsminfo_main.c b/gfsm/gfsm/src/programs/gfsminfo_main.c
deleted file mode 100644
index 7c6377d..0000000
--- a/gfsm/gfsm/src/programs/gfsminfo_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsminfo_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsminfo";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * Utilities
- *--------------------------------------------------------------------------*/
-#define bool2char(b) (b ? 'y' : 'n')
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- GString *modestr = NULL;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
- guint n_eps_i, n_eps_o, n_eps_io;
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(2);
- }
-
- //-- print information
- printf("%-24s: %s\n", "Filename", infilename);
- printf("%-24s: %s\n", "Semiring", gfsm_sr_type_to_name(fsm->sr->type));
- printf("%-24s: %c\n", "Transducer?", bool2char(gfsm_automaton_is_transducer(fsm)));
- printf("%-24s: %c\n", "Weighted?", bool2char(gfsm_automaton_is_weighted(fsm)));
- printf("%-24s: %c\n", "Deterministic?", bool2char(fsm->flags.is_deterministic));
-#if 0
- printf("%-24s: %s\n", "Sort Mode", gfsm_arc_sortmode_to_name(gfsm_automaton_sortmode(fsm)));
-#else
- modestr = gfsm_acmask_to_gstring(fsm->flags.sort_mode, modestr);
- printf("%-24s: %s\n", "Sort Mode", modestr->str);
- g_string_free(modestr,TRUE);
-#endif
- if (fsm->root_id != gfsmNoState) {
- printf("%-24s: %u\n", "Initial state", fsm->root_id);
- } else {
- printf("%-24s: %s\n", "Initial state", "none");
- }
- printf("%-24s: %u\n", "# of states", gfsm_automaton_n_states(fsm));
- printf("%-24s: %u\n", "# of final states", gfsm_automaton_n_final_states(fsm));
- printf("%-24s: %u\n", "# of arcs", gfsm_automaton_n_arcs_full(fsm, &n_eps_i, &n_eps_o, &n_eps_io));
- printf("%-24s: %u\n", "# of i/o epsilon arcs", n_eps_io);
- printf("%-24s: %u\n", "# of input epsilon arcs", n_eps_i);
- printf("%-24s: %u\n", "# of output epsilon arcs", n_eps_o);
-
- printf("%-24s: %c\n", "cyclic?", bool2char(gfsm_automaton_is_cyclic(fsm)));
- //...
-
- //-- cleanup
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmintersect.gog b/gfsm/gfsm/src/programs/gfsmintersect.gog
deleted file mode 100644
index 9ce5f79..0000000
--- a/gfsm/gfsm/src/programs/gfsmintersect.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmintersect"
-#program_version "0.01"
-
-purpose "Compute intersection of finite state acceptors"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE(s)" "Stored binary gfsm file(s)" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-Probably many.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.c b/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.c
deleted file mode 100644
index 28b385e..0000000
--- a/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmintersect_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmintersect_cmdparser gfsmintersect.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmintersect"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmintersect_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmintersect (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute intersection of finite state acceptors\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE(s)\n", "gfsmintersect");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE(s) Stored binary gfsm file(s)\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.h b/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.h
deleted file mode 100644
index 4ff1144..0000000
--- a/gfsm/gfsm/src/programs/gfsmintersect_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmintersect_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmintersect_cmdparser_h
-#define gfsmintersect_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmintersect_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmintersect_main.c b/gfsm/gfsm/src/programs/gfsmintersect_main.c
deleted file mode 100644
index 4fd05ff..0000000
--- a/gfsm/gfsm/src/programs/gfsmintersect_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmintersect_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmintersect";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_operation()
- * + utility routine
- */
-void compute_operation(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute underlying FSM operation
- if (fsmOut == NULL) {
- fsmOut = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_intersect(fsmOut,fsmIn);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num; i++) {
- compute_operation(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_operation("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsminvert.gog b/gfsm/gfsm/src/programs/gfsminvert.gog
deleted file mode 100644
index 4bb0f2e..0000000
--- a/gfsm/gfsm/src/programs/gfsminvert.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsminvert"
-#program_version "0.01"
-
-purpose "Invert input/output tapes of finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsminvert_cmdparser.c b/gfsm/gfsm/src/programs/gfsminvert_cmdparser.c
deleted file mode 100644
index 04d03c1..0000000
--- a/gfsm/gfsm/src/programs/gfsminvert_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsminvert_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsminvert_cmdparser gfsminvert.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsminvert"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsminvert_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsminvert (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Invert input/output tapes of finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsminvert");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsminvert_cmdparser.h b/gfsm/gfsm/src/programs/gfsminvert_cmdparser.h
deleted file mode 100644
index 47b8bad..0000000
--- a/gfsm/gfsm/src/programs/gfsminvert_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsminvert_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsminvert_cmdparser_h
-#define gfsminvert_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsminvert_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsminvert_main.c b/gfsm/gfsm/src/programs/gfsminvert_main.c
deleted file mode 100644
index acb285c..0000000
--- a/gfsm/gfsm/src/programs/gfsminvert_main.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsminvert_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsminvert";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- invert
- gfsm_automaton_invert(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmlabels.gog b/gfsm/gfsm/src/programs/gfsmlabels.gog
deleted file mode 100644
index 56642da..0000000
--- a/gfsm/gfsm/src/programs/gfsmlabels.gog
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmlabels"
-#program_version "0.01"
-
-purpose "Map input text characters to gfsm labels"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "TXTFILE" "Input text file" \
- details="
-If unspecified, standard input will be read.
-"
-
-#argument "BINFILE" "Output binary gfsm file" \
-# details="
-#If unspecified, output will be written to standard output.
-#"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "labels" l "Specify input alphabet (labels) file." \
- arg="LABELS"
-
-flag "att-mode" a "Parse string(s) in AT&T-compatible mode." \
- default="0"
-
-flag "map-mode" m "Output original strings in addition to label vectors." \
- default="0"
-
-flag "quiet" q "Suppress warnings about undefined symbols." \
- default="0"
-
-string "output" o "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.c b/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.c
deleted file mode 100644
index 078f4e5..0000000
--- a/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.c
+++ /dev/null
@@ -1,523 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmlabels_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmlabels_cmdparser gfsmlabels.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmlabels"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmlabels_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmlabels (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Map input text characters to gfsm labels\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... TXTFILE\n", "gfsmlabels");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" TXTFILE Input text file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -lLABELS --labels=LABELS Specify input alphabet (labels) file.\n");
- printf(" -a --att-mode Parse string(s) in AT&T-compatible mode.\n");
- printf(" -m --map-mode Output original strings in addition to label vectors.\n");
- printf(" -q --quiet Suppress warnings about undefined symbols.\n");
- printf(" -oFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->labels_arg = NULL;
- args_info->att_mode_flag = 0;
- args_info->map_mode_flag = 0;
- args_info->quiet_flag = 0;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->labels_given = 0;
- args_info->att_mode_given = 0;
- args_info->map_mode_given = 0;
- args_info->quiet_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "labels", 1, NULL, 'l' },
- { "att-mode", 0, NULL, 'a' },
- { "map-mode", 0, NULL, 'm' },
- { "quiet", 0, NULL, 'q' },
- { "output", 1, NULL, 'o' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'l', ':',
- 'a',
- 'm',
- 'q',
- 'o', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'l': /* Specify input alphabet (labels) file. */
- if (args_info->labels_given) {
- fprintf(stderr, "%s: `--labels' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->labels_given++;
- if (args_info->labels_arg) free(args_info->labels_arg);
- args_info->labels_arg = strdup(val);
- break;
-
- case 'a': /* Parse string(s) in AT&T-compatible mode. */
- if (args_info->att_mode_given) {
- fprintf(stderr, "%s: `--att-mode' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->att_mode_given++;
- if (args_info->att_mode_given <= 1)
- args_info->att_mode_flag = !(args_info->att_mode_flag);
- break;
-
- case 'm': /* Output original strings in addition to label vectors. */
- if (args_info->map_mode_given) {
- fprintf(stderr, "%s: `--map-mode' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->map_mode_given++;
- if (args_info->map_mode_given <= 1)
- args_info->map_mode_flag = !(args_info->map_mode_flag);
- break;
-
- case 'q': /* Suppress warnings about undefined symbols. */
- if (args_info->quiet_given) {
- fprintf(stderr, "%s: `--quiet' (`-q') option given more than once\n", PROGRAM);
- }
- args_info->quiet_given++;
- if (args_info->quiet_given <= 1)
- args_info->quiet_flag = !(args_info->quiet_flag);
- break;
-
- case 'o': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify input alphabet (labels) file. */
- else if (strcmp(olong, "labels") == 0) {
- if (args_info->labels_given) {
- fprintf(stderr, "%s: `--labels' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->labels_given++;
- if (args_info->labels_arg) free(args_info->labels_arg);
- args_info->labels_arg = strdup(val);
- }
-
- /* Parse string(s) in AT&T-compatible mode. */
- else if (strcmp(olong, "att-mode") == 0) {
- if (args_info->att_mode_given) {
- fprintf(stderr, "%s: `--att-mode' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->att_mode_given++;
- if (args_info->att_mode_given <= 1)
- args_info->att_mode_flag = !(args_info->att_mode_flag);
- }
-
- /* Output original strings in addition to label vectors. */
- else if (strcmp(olong, "map-mode") == 0) {
- if (args_info->map_mode_given) {
- fprintf(stderr, "%s: `--map-mode' (`-m') option given more than once\n", PROGRAM);
- }
- args_info->map_mode_given++;
- if (args_info->map_mode_given <= 1)
- args_info->map_mode_flag = !(args_info->map_mode_flag);
- }
-
- /* Suppress warnings about undefined symbols. */
- else if (strcmp(olong, "quiet") == 0) {
- if (args_info->quiet_given) {
- fprintf(stderr, "%s: `--quiet' (`-q') option given more than once\n", PROGRAM);
- }
- args_info->quiet_given++;
- if (args_info->quiet_given <= 1)
- args_info->quiet_flag = !(args_info->quiet_flag);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.h b/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.h
deleted file mode 100644
index 71f8d95..0000000
--- a/gfsm/gfsm/src/programs/gfsmlabels_cmdparser.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmlabels_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.06.
- *
- */
-
-#ifndef gfsmlabels_cmdparser_h
-#define gfsmlabels_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * labels_arg; /* Specify input alphabet (labels) file. (default=NULL). */
- int att_mode_flag; /* Parse string(s) in AT&T-compatible mode. (default=0). */
- int map_mode_flag; /* Output original strings in addition to label vectors. (default=0). */
- int quiet_flag; /* Suppress warnings about undefined symbols. (default=0). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int labels_given; /* Whether labels was given */
- int att_mode_given; /* Whether att-mode was given */
- int map_mode_given; /* Whether map-mode was given */
- int quiet_given; /* Whether quiet was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmlabels_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmlabels_main.c b/gfsm/gfsm/src/programs/gfsmlabels_main.c
deleted file mode 100644
index 0e25c78..0000000
--- a/gfsm/gfsm/src/programs/gfsmlabels_main.c
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005-2008 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <gfsm.h>
-
-/*-- use gnulib --*/
-#include "gnulib/getdelim.h"
-
-#include "gfsmlabels_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmlabels";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-FILE *outfile = NULL;
-
-//-- global structs
-gfsmAlphabet *labels=NULL;
-gfsmError *err = NULL;
-gboolean att_mode = FALSE;
-gboolean map_mode = FALSE;
-gboolean warn_on_undef = TRUE;
-
-/* HACK */
-//extern ssize_t getline(char **LINEPTR, size_t *N, FILE *STREAM);
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- outfilename = args.output_arg;
-
- //-- open output file
- if (args.output_given) {
- outfilename = args.output_arg;
- outfile = gfsm_open_filename(outfilename,"w",&err);
- if (!outfile) {
- g_printerr("%s: open failed for output file '%s': %s\n",
- progname, outfilename, strerror(errno));
- exit(2);
- }
- }
- else {
- outfile = stdout;
- }
-
- //-- labels
- if (args.labels_given) {
- labels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(labels, args.labels_arg, &err)) {
- g_printerr("%s: load failed for labels file '%s': %s\n",
- progname, args.labels_arg, err->message);
- exit(3);
- }
- } else {
- g_printerr("%s: no labels file specified!\n", progname);
- exit(3);
- }
-
- //-- mode flags
- att_mode = args.att_mode_flag;
- map_mode = args.map_mode_flag;
- warn_on_undef = !args.quiet_flag;
-}
-
-/*--------------------------------------------------------------------------
- * apply_labels_file()
- */
-void apply_labels_file(gfsmAlphabet *labels, FILE *infile, FILE *outfile)
-{
- char *str = NULL;
- size_t buflen = 0;
- ssize_t linelen = 0;
- ssize_t i;
- gfsmLabelVal lab;
- gfsmLabelVector *vec = g_ptr_array_new();
-
- while (!feof(infile)) {
- linelen = getdelim(&str,&buflen,'\n',infile);
- if (linelen<0) { break; } //-- EOF
-
- //-- truncate terminating newline character
- if (str[linelen-1] == '\n') { str[linelen-1] = 0; }
-
- //-- map mode?
- if (map_mode) { fprintf(outfile, "%s\t", str); }
-
- //-- convert
- vec = gfsm_alphabet_generic_string_to_labels(labels,str,vec,warn_on_undef,att_mode);
-
- //-- dump labels
- for (i=0; i<vec->len; i++) {
- lab = GPOINTER_TO_UINT(vec->pdata[i]);
- if (i>0) { fputc(' ',outfile); }
- fprintf(outfile, "%d", lab);
- }
- fputc('\n', outfile);
- }
-
- if (str) free(str);
- if (vec) g_ptr_array_free(vec,TRUE);
-}
-
-void apply_labels_file_0(gfsmAlphabet *labels, FILE *infile, FILE *outfile)
-{
- char *str = NULL;
- size_t buflen = 0;
- ssize_t linelen = 0;
- ssize_t i;
- gfsmLabelVal lab;
- char cs[2] = {'\0', '\0'};
-
- while (!feof(infile)) {
- /*linelen = getline(&str,&buflen,infile);*/
- linelen = getdelim(&str,&buflen,'\n',infile);
- for (i=0; i < linelen; i++) {
- if (isspace(str[i])) continue;
- cs[0] = str[i];
- lab = gfsm_alphabet_find_label(labels,cs);
-
- if (lab==gfsmNoLabel) {
- g_printerr("%s: Warning: no label for character '%c' -- skipping.\n",
- progname, cs[0]);
- continue;
- }
-
- fprintf(outfile, "%d ", lab);
- }
- fputs("\n", outfile);
- }
-
- if (str) free(str);
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- process input(s)
- if (args.inputs_num==0) {
- apply_labels_file(labels,stdin,outfile);
- }
- for (i=0; i < args.inputs_num; i++) {
- FILE *infile = (strcmp(args.inputs[i],"-")==0 ? stdin : fopen(args.inputs[i], "r"));
- if (!infile) {
- g_printerr("%s: load failed for input file '%s': %s\n", progname, args.inputs[i], strerror(errno));
- exit(255);
- }
- apply_labels_file(labels,infile,outfile);
- if (infile != stdin) fclose(infile);
- }
-
-
- //-- cleanup
- if (labels) gfsm_alphabet_free(labels);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmlookup.gog b/gfsm/gfsm/src/programs/gfsmlookup.gog
deleted file mode 100644
index 500108f..0000000
--- a/gfsm/gfsm/src/programs/gfsmlookup.gog
+++ /dev/null
@@ -1,77 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmlookup"
-#program_version "0.01"
-
-purpose "Apply a transducer to a linear label sequence"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "LABELID..." "Input label IDs" \
- details="
-In ASCII decimal notation.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "fst" f "Transducer to apply (default=stdin)." \
- arg="FSTFILE" \
- default="-" \
- details="
-If unspecified, standard input will be read.
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.c b/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.c
deleted file mode 100644
index ae36643..0000000
--- a/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmlookup_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmlookup_cmdparser gfsmlookup.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmlookup"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmlookup_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmlookup (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Apply a transducer to a linear label sequence\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... LABELID...\n", "gfsmlookup");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" LABELID... Input label IDs\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -fFSTFILE --fst=FSTFILE Transducer to apply (default=stdin).\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->fst_arg = strdup("-");
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->fst_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "fst", 1, NULL, 'f' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'f', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'f': /* Transducer to apply (default=stdin). */
- if (args_info->fst_given) {
- fprintf(stderr, "%s: `--fst' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fst_given++;
- if (args_info->fst_arg) free(args_info->fst_arg);
- args_info->fst_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Transducer to apply (default=stdin). */
- else if (strcmp(olong, "fst") == 0) {
- if (args_info->fst_given) {
- fprintf(stderr, "%s: `--fst' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fst_given++;
- if (args_info->fst_arg) free(args_info->fst_arg);
- args_info->fst_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.h b/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.h
deleted file mode 100644
index 3b20b24..0000000
--- a/gfsm/gfsm/src/programs/gfsmlookup_cmdparser.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmlookup_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmlookup_cmdparser_h
-#define gfsmlookup_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * fst_arg; /* Transducer to apply (default=stdin). (default=-). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int fst_given; /* Whether fst was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmlookup_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmlookup_main.c b/gfsm/gfsm/src/programs/gfsmlookup_main.c
deleted file mode 100644
index 39dd8a2..0000000
--- a/gfsm/gfsm/src/programs/gfsmlookup_main.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <gfsm.h>
-
-#include "gfsmlookup_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmlookup";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *fstfilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fst = NULL;
-gfsmError *err = NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.fst_given) fstfilename = args.fst_arg;
- outfilename = args.output_arg;
-
- //-- load FST
- fst = gfsm_automaton_new();
- if (!gfsm_automaton_load_bin_filename(fst, fstfilename, &err)) {
- g_printerr("%s: load failed for FST file '%s': %s\n", progname, fstfilename, err->message);
- exit(255);
- }
-}
-
-/*--------------------------------------------------------------------------
- * lookup_labels()
- */
-gfsmAutomaton *lookup_labels(gfsmAutomaton *fst, int argc, char **argv)
-{
- gfsmLabelVector *vec = g_ptr_array_sized_new(argc);
- char *s=NULL, *tail=NULL;
- gfsmLabelVal lab;
- gfsmAutomaton *result = NULL;
- int i;
-
- //-- fill input vector
- for (i=0; i < argc; i++) {
- for (s=argv[i], lab=strtol(s,&tail,0); s != tail; s=tail, lab=strtol(s,&tail,0)) {
- g_ptr_array_add(vec, (gpointer)lab);
- }
- }
-
- //-- actual lookup
- result = gfsm_automaton_lookup(fst, vec, result);
-
- //-- cleanup
- g_ptr_array_free(vec,TRUE);
-
- return result;
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmAutomaton *result;
-
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- process input
- result = lookup_labels(fst, args.inputs_num, args.inputs);
-
- //-- save output
- if (!gfsm_automaton_save_bin_filename(result,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fst) gfsm_automaton_free(fst);
- if (result) gfsm_automaton_free(result);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmoptional.gog b/gfsm/gfsm/src/programs/gfsmoptional.gog
deleted file mode 100644
index 3bf6102..0000000
--- a/gfsm/gfsm/src/programs/gfsmoptional.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmoptional"
-#program_version "0.01"
-
-purpose "Make a an automaton optional"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.c b/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.c
deleted file mode 100644
index 0f90ca4..0000000
--- a/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmoptional_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmoptional_cmdparser gfsmoptional.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmoptional"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmoptional_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmoptional (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Make a an automaton optional\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmoptional");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.h b/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.h
deleted file mode 100644
index 566495e..0000000
--- a/gfsm/gfsm/src/programs/gfsmoptional_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmoptional_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmoptional_cmdparser_h
-#define gfsmoptional_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmoptional_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmoptional_main.c b/gfsm/gfsm/src/programs/gfsmoptional_main.c
deleted file mode 100644
index 73c442c..0000000
--- a/gfsm/gfsm/src/programs/gfsmoptional_main.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmoptional_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmoptional";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * Utilities
- *--------------------------------------------------------------------------*/
-#define bool2char(b) (b ? 'y' : 'n')
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
-
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(2);
- }
-
- //-- make optional
- gfsm_automaton_optional(fsm);
-
- //-- store automaton
- if (!gfsm_automaton_save_bin_filename(fsm,args.output_arg,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, args.output_arg, err->message);
- exit(4);
- }
-
- //-- cleanup
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmprint.gog b/gfsm/gfsm/src/programs/gfsmprint.gog
deleted file mode 100644
index 4a01ef2..0000000
--- a/gfsm/gfsm/src/programs/gfsmprint.gog
+++ /dev/null
@@ -1,80 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmprint"
-#program_version "0.01"
-
-purpose "Convert binary format gfsm files to text"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-argument "TXTFILE" "Output text file" \
- details="
-If unspecified, output will be written to standard output.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "ilabels" i "Specify input (lower) labels file." \
- arg="LABELS"
-
-string "olabels" o "Specify output (upper) labels file." \
- arg="LABELS"
-
-string "slabels" s "Specify state labels file." \
- arg="LABELS"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="0" \
- details="
-Specify zlib compression level of output file. -1 indicates
-the library default compression level, 0 (default) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmprint_cmdparser.c b/gfsm/gfsm/src/programs/gfsmprint_cmdparser.c
deleted file mode 100644
index 253eb1d..0000000
--- a/gfsm/gfsm/src/programs/gfsmprint_cmdparser.c
+++ /dev/null
@@ -1,498 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmprint_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmprint_cmdparser gfsmprint.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmprint"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmprint_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmprint (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Convert binary format gfsm files to text\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE TXTFILE\n", "gfsmprint");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
- printf(" TXTFILE Output text file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -iLABELS --ilabels=LABELS Specify input (lower) labels file.\n");
- printf(" -oLABELS --olabels=LABELS Specify output (upper) labels file.\n");
- printf(" -sLABELS --slabels=LABELS Specify state labels file.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->ilabels_arg = NULL;
- args_info->olabels_arg = NULL;
- args_info->slabels_arg = NULL;
- args_info->compress_arg = 0;
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->ilabels_given = 0;
- args_info->olabels_given = 0;
- args_info->slabels_given = 0;
- args_info->compress_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "ilabels", 1, NULL, 'i' },
- { "olabels", 1, NULL, 'o' },
- { "slabels", 1, NULL, 's' },
- { "compress", 1, NULL, 'z' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'i', ':',
- 'o', ':',
- 's', ':',
- 'z', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'i': /* Specify input (lower) labels file. */
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- break;
-
- case 'o': /* Specify output (upper) labels file. */
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- break;
-
- case 's': /* Specify state labels file. */
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify input (lower) labels file. */
- else if (strcmp(olong, "ilabels") == 0) {
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- }
-
- /* Specify output (upper) labels file. */
- else if (strcmp(olong, "olabels") == 0) {
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- }
-
- /* Specify state labels file. */
- else if (strcmp(olong, "slabels") == 0) {
- if (args_info->slabels_given) {
- fprintf(stderr, "%s: `--slabels' (`-s') option given more than once\n", PROGRAM);
- }
- args_info->slabels_given++;
- if (args_info->slabels_arg) free(args_info->slabels_arg);
- args_info->slabels_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmprint_cmdparser.h b/gfsm/gfsm/src/programs/gfsmprint_cmdparser.h
deleted file mode 100644
index 0b06787..0000000
--- a/gfsm/gfsm/src/programs/gfsmprint_cmdparser.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmprint_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmprint_cmdparser_h
-#define gfsmprint_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * ilabels_arg; /* Specify input (lower) labels file. (default=NULL). */
- char * olabels_arg; /* Specify output (upper) labels file. (default=NULL). */
- char * slabels_arg; /* Specify state labels file. (default=NULL). */
- int compress_arg; /* Specify compression level of output file. (default=0). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int ilabels_given; /* Whether ilabels was given */
- int olabels_given; /* Whether olabels was given */
- int slabels_given; /* Whether slabels was given */
- int compress_given; /* Whether compress was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmprint_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmprint_main.c b/gfsm/gfsm/src/programs/gfsmprint_main.c
deleted file mode 100644
index fe6d7f3..0000000
--- a/gfsm/gfsm/src/programs/gfsmprint_main.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmprint_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmprint";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmAlphabet *ilabels=NULL, *olabels=NULL, *slabels=NULL;
-gfsmError *err = NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- if (args.inputs_num > 1) outfilename = args.inputs[1];
-
- //-- labels: input
- if (args.ilabels_given) {
- ilabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(ilabels,args.ilabels_arg,&err)) {
- g_printerr("%s: load failed for input-labels file '%s': %s\n",
- progname, args.ilabels_arg, err->message);
- exit(2);
- }
- }
- //-- labels: output
- if (args.olabels_given) {
- olabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(olabels,args.olabels_arg,&err)) {
- g_printerr("%s: load failed for output-labels file '%s': %s\n",
- progname, args.olabels_arg, err->message);
- exit(2);
- }
- }
- //-- labels: state
- if (args.slabels_given) {
- slabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(slabels,args.slabels_arg,&err)) {
- g_printerr("%s: load failed for state-labels file '%s': %s\n",
- progname, args.slabels_arg, err->message);
- exit(2);
- }
- }
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(3);
- }
-
- //-- print automaton
- if (!gfsm_automaton_print_filename_full(fsm,outfilename,ilabels,olabels,slabels,args.compress_arg,&err)) {
- g_printerr("%s: print failed to '%s': %s\n", progname, outfilename, err->message);
- exit(3);
- }
-
- //-- cleanup
- if (ilabels) gfsm_alphabet_free(ilabels);
- if (olabels) gfsm_alphabet_free(olabels);
- if (slabels) gfsm_alphabet_free(slabels);
- gfsm_automaton_free(fsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmproduct.gog b/gfsm/gfsm/src/programs/gfsmproduct.gog
deleted file mode 100644
index 120c823..0000000
--- a/gfsm/gfsm/src/programs/gfsmproduct.gog
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmproduct"
-#program_version "0.01"
-
-purpose "Compute Cartesian product of finite state acceptors"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "LOWER" "Stored binary gfsm file" \
- required=1 \
- details="
-FSM accepting the lower side of the output FST.
-Required argument.
-"
-
-argument "UPPER" "Stored binary gfsm file" \
- details="
-FSM accepting the upper side of the output FST.
-If unspecified, standard input will be read.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.c b/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.c
deleted file mode 100644
index 27fd759..0000000
--- a/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.c
+++ /dev/null
@@ -1,450 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmproduct_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmproduct_cmdparser gfsmproduct.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmproduct"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmproduct_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmproduct (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute Cartesian product of finite state acceptors\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... LOWER UPPER\n", "gfsmproduct");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" LOWER Stored binary gfsm file\n");
- printf(" UPPER Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.h b/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.h
deleted file mode 100644
index 527630e..0000000
--- a/gfsm/gfsm/src/programs/gfsmproduct_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmproduct_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmproduct_cmdparser_h
-#define gfsmproduct_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmproduct_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmproduct_main.c b/gfsm/gfsm/src/programs/gfsmproduct_main.c
deleted file mode 100644
index 446e875..0000000
--- a/gfsm/gfsm/src/programs/gfsmproduct_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmproduct_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmproduct";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_operation()
- * + utility routine
- */
-void compute_operation(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute product
- if (fsmOut == NULL) {
- fsmOut = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_product2(fsmOut,fsmIn); //-- dual-destructive version
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num && i < 2; i++) {
- compute_operation(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_operation("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmproject.gog b/gfsm/gfsm/src/programs/gfsmproject.gog
deleted file mode 100644
index 42fcb6c..0000000
--- a/gfsm/gfsm/src/programs/gfsmproject.gog
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmproject"
-#program_version "0.01"
-
-purpose "Project one side of finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-flag "first" 1 "Project lower side [default]."
-flag - i "Project input tape (alias for -1)"
-
-flag "second" 2 "Project upper side."
-flag - o "Project output side (alias for -2)"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmproject_cmdparser.c b/gfsm/gfsm/src/programs/gfsmproject_cmdparser.c
deleted file mode 100644
index 5905210..0000000
--- a/gfsm/gfsm/src/programs/gfsmproject_cmdparser.c
+++ /dev/null
@@ -1,523 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmproject_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmproject_cmdparser gfsmproject.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmproject"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmproject_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmproject (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Project one side of finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmproject");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -1 --first Project lower side [default].\n");
- printf(" -i Project input tape (alias for -1)\n");
- printf(" -2 --second Project upper side.\n");
- printf(" -o Project output side (alias for -2)\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->first_flag = 0;
- args_info->i_flag = 0;
- args_info->second_flag = 0;
- args_info->o_flag = 0;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->first_given = 0;
- args_info->i_given = 0;
- args_info->second_given = 0;
- args_info->o_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "first", 0, NULL, '1' },
- { "second", 0, NULL, '2' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- '1',
- 'i',
- '2',
- 'o',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case '1': /* Project lower side [default]. */
- if (args_info->first_given) {
- fprintf(stderr, "%s: `--first' (`-1') option given more than once\n", PROGRAM);
- }
- args_info->first_given++;
- if (args_info->first_given <= 1)
- args_info->first_flag = !(args_info->first_flag);
- break;
-
- case 'i': /* Project input tape (alias for -1) */
- if (args_info->i_given) {
- fprintf(stderr, "%s: (`-i') option given more than once\n", PROGRAM);
- }
- args_info->i_given++;
- if (args_info->i_given <= 1)
- args_info->i_flag = !(args_info->i_flag);
- break;
-
- case '2': /* Project upper side. */
- if (args_info->second_given) {
- fprintf(stderr, "%s: `--second' (`-2') option given more than once\n", PROGRAM);
- }
- args_info->second_given++;
- if (args_info->second_given <= 1)
- args_info->second_flag = !(args_info->second_flag);
- break;
-
- case 'o': /* Project output side (alias for -2) */
- if (args_info->o_given) {
- fprintf(stderr, "%s: (`-o') option given more than once\n", PROGRAM);
- }
- args_info->o_given++;
- if (args_info->o_given <= 1)
- args_info->o_flag = !(args_info->o_flag);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Project lower side [default]. */
- else if (strcmp(olong, "first") == 0) {
- if (args_info->first_given) {
- fprintf(stderr, "%s: `--first' (`-1') option given more than once\n", PROGRAM);
- }
- args_info->first_given++;
- if (args_info->first_given <= 1)
- args_info->first_flag = !(args_info->first_flag);
- }
-
- /* Project upper side. */
- else if (strcmp(olong, "second") == 0) {
- if (args_info->second_given) {
- fprintf(stderr, "%s: `--second' (`-2') option given more than once\n", PROGRAM);
- }
- args_info->second_given++;
- if (args_info->second_given <= 1)
- args_info->second_flag = !(args_info->second_flag);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmproject_cmdparser.h b/gfsm/gfsm/src/programs/gfsmproject_cmdparser.h
deleted file mode 100644
index e7fbb80..0000000
--- a/gfsm/gfsm/src/programs/gfsmproject_cmdparser.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmproject_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmproject_cmdparser_h
-#define gfsmproject_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int first_flag; /* Project lower side [default]. (default=0). */
- int i_flag; /* Project input tape (alias for -1) (default=0). */
- int second_flag; /* Project upper side. (default=0). */
- int o_flag; /* Project output side (alias for -2) (default=0). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int first_given; /* Whether first was given */
- int i_given; /* Whether - was given */
- int second_given; /* Whether second was given */
- int o_given; /* Whether - was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmproject_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmproject_main.c b/gfsm/gfsm/src/programs/gfsmproject_main.c
deleted file mode 100644
index 528b456..0000000
--- a/gfsm/gfsm/src/programs/gfsmproject_main.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmproject_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmproject";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs & vars
-gfsmAutomaton *fsm;
-gfsmLabelSide which = gfsmLSLower;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- which?
- if (args.second_given || args.o_given) which = gfsmLSUpper;
- else which = gfsmLSLower;
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- invert
- gfsm_automaton_project(fsm,which);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmrenumber.gog b/gfsm/gfsm/src/programs/gfsmrenumber.gog
deleted file mode 100644
index df2d0b6..0000000
--- a/gfsm/gfsm/src/programs/gfsmrenumber.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmrenumber"
-#program_version "0.01"
-
-purpose "Renumber states in finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.c b/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.c
deleted file mode 100644
index a058eb2..0000000
--- a/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmrenumber_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmrenumber_cmdparser gfsmrenumber.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmrenumber"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmrenumber_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmrenumber (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Renumber states in finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmrenumber");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.h b/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.h
deleted file mode 100644
index 08db747..0000000
--- a/gfsm/gfsm/src/programs/gfsmrenumber_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmrenumber_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmrenumber_cmdparser_h
-#define gfsmrenumber_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmrenumber_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmrenumber_main.c b/gfsm/gfsm/src/programs/gfsmrenumber_main.c
deleted file mode 100644
index 7bf7a59..0000000
--- a/gfsm/gfsm/src/programs/gfsmrenumber_main.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmrenumber_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmrenumber";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- renumber
- gfsm_automaton_renumber_states(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmreplace.gog b/gfsm/gfsm/src/programs/gfsmreplace.gog
deleted file mode 100644
index 466526d..0000000
--- a/gfsm/gfsm/src/programs/gfsmreplace.gog
+++ /dev/null
@@ -1,79 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmreplace"
-#program_version "0.01"
-
-purpose "Replace some automaton arcs with a whole automaton"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "replacement" r "Replacement automaton (binary gfsm file)" \
- arg="FSMFILE" \
- default="-" \
- details="
-If unspecified, standard input will be read.
-"
-
-int "lower" l "Lower label to replace (default=any)" \
- arg="LABEL"
-
-int "upper" u "Upper label to replace (default=any)" \
- arg="LABEL"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.c b/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.c
deleted file mode 100644
index 652c7a7..0000000
--- a/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.c
+++ /dev/null
@@ -1,514 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmreplace_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmreplace_cmdparser gfsmreplace.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmreplace"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmreplace_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmreplace (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Replace some automaton arcs with a whole automaton\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... [FILES]...\n", "gfsmreplace");
-
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -rFSMFILE --replacement=FSMFILE Replacement automaton (binary gfsm file)\n");
- printf(" -lLABEL --lower=LABEL Lower label to replace (default=any)\n");
- printf(" -uLABEL --upper=LABEL Upper label to replace (default=any)\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->replacement_arg = strdup("-");
- args_info->lower_arg = 0;
- args_info->upper_arg = 0;
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->replacement_given = 0;
- args_info->lower_given = 0;
- args_info->upper_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "replacement", 1, NULL, 'r' },
- { "lower", 1, NULL, 'l' },
- { "upper", 1, NULL, 'u' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'r', ':',
- 'l', ':',
- 'u', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'r': /* Replacement automaton (binary gfsm file) */
- if (args_info->replacement_given) {
- fprintf(stderr, "%s: `--replacement' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->replacement_given++;
- if (args_info->replacement_arg) free(args_info->replacement_arg);
- args_info->replacement_arg = strdup(val);
- break;
-
- case 'l': /* Lower label to replace (default=any) */
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- args_info->lower_arg = (int)atoi(val);
- break;
-
- case 'u': /* Upper label to replace (default=any) */
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- args_info->upper_arg = (int)atoi(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Replacement automaton (binary gfsm file) */
- else if (strcmp(olong, "replacement") == 0) {
- if (args_info->replacement_given) {
- fprintf(stderr, "%s: `--replacement' (`-r') option given more than once\n", PROGRAM);
- }
- args_info->replacement_given++;
- if (args_info->replacement_arg) free(args_info->replacement_arg);
- args_info->replacement_arg = strdup(val);
- }
-
- /* Lower label to replace (default=any) */
- else if (strcmp(olong, "lower") == 0) {
- if (args_info->lower_given) {
- fprintf(stderr, "%s: `--lower' (`-l') option given more than once\n", PROGRAM);
- }
- args_info->lower_given++;
- args_info->lower_arg = (int)atoi(val);
- }
-
- /* Upper label to replace (default=any) */
- else if (strcmp(olong, "upper") == 0) {
- if (args_info->upper_given) {
- fprintf(stderr, "%s: `--upper' (`-u') option given more than once\n", PROGRAM);
- }
- args_info->upper_given++;
- args_info->upper_arg = (int)atoi(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.h b/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.h
deleted file mode 100644
index f7c704d..0000000
--- a/gfsm/gfsm/src/programs/gfsmreplace_cmdparser.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmreplace_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmreplace_cmdparser_h
-#define gfsmreplace_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * replacement_arg; /* Replacement automaton (binary gfsm file) (default=-). */
- int lower_arg; /* Lower label to replace (default=any) (default=0). */
- int upper_arg; /* Upper label to replace (default=any) (default=0). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int replacement_given; /* Whether replacement was given */
- int lower_given; /* Whether lower was given */
- int upper_given; /* Whether upper was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmreplace_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmreplace_main.c b/gfsm/gfsm/src/programs/gfsmreplace_main.c
deleted file mode 100644
index c2b1107..0000000
--- a/gfsm/gfsm/src/programs/gfsmreplace_main.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <gfsm.h>
-
-#include "gfsmreplace_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmreplace";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *replfilename = "-";
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *repl = NULL, *fsm=NULL;
-gfsmError *err = NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.replacement_given) replfilename = args.replacement_arg;
- outfilename = args.output_arg;
-
- //-- load replacement automaton
- repl = gfsm_automaton_new();
- if (!gfsm_automaton_load_bin_filename(repl, replfilename, &err)) {
- g_printerr("%s: load failed for FST file '%s': %s\n", progname, replfilename, err->message);
- exit(255);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- load input automaton
- fsm = gfsm_automaton_new();
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- perform replacement
- gfsm_automaton_replace(fsm,
- (args.lower_given ? args.lower_arg : gfsmNoLabel),
- (args.upper_given ? args.upper_arg : gfsmNoLabel),
- repl);
-
- //-- save output
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (repl) gfsm_automaton_free(repl);
- if (fsm) gfsm_automaton_free(fsm);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmreverse.gog b/gfsm/gfsm/src/programs/gfsmreverse.gog
deleted file mode 100644
index f67c417..0000000
--- a/gfsm/gfsm/src/programs/gfsmreverse.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmreverse"
-#program_version "0.01"
-
-purpose "Reverse a finite state machine"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.c b/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.c
deleted file mode 100644
index f992776..0000000
--- a/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmreverse_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmreverse_cmdparser gfsmreverse.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmreverse"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmreverse_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmreverse (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Reverse a finite state machine\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmreverse");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.h b/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.h
deleted file mode 100644
index 81ed264..0000000
--- a/gfsm/gfsm/src/programs/gfsmreverse_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmreverse_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmreverse_cmdparser_h
-#define gfsmreverse_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmreverse_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmreverse_main.c b/gfsm/gfsm/src/programs/gfsmreverse_main.c
deleted file mode 100644
index e2b24f1..0000000
--- a/gfsm/gfsm/src/programs/gfsmreverse_main.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmreverse_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmreverse";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs & vars
-gfsmAutomaton *fsm;
-int which = 1;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- invert
- gfsm_automaton_reverse(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmrmepsilon.gog b/gfsm/gfsm/src/programs/gfsmrmepsilon.gog
deleted file mode 100644
index e1b78d6..0000000
--- a/gfsm/gfsm/src/programs/gfsmrmepsilon.gog
+++ /dev/null
@@ -1,80 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmrmepsilon"
-#program_version "0.01"
-
-purpose "Remove epsilon arcs from finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-=over 4
-
-=item
-
-No negative-cost epsilon cycles are allowed in the input automaton.
-
-=item
-
-Probably many more.
-
-=back
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.c b/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.c
deleted file mode 100644
index 1f4351f..0000000
--- a/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmrmepsilon_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmrmepsilon_cmdparser gfsmrmepsilon.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmrmepsilon"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmrmepsilon_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmrmepsilon (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Remove epsilon arcs from finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmrmepsilon");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.h b/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.h
deleted file mode 100644
index e9deda5..0000000
--- a/gfsm/gfsm/src/programs/gfsmrmepsilon_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmrmepsilon_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmrmepsilon_cmdparser_h
-#define gfsmrmepsilon_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmrmepsilon_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmrmepsilon_main.c b/gfsm/gfsm/src/programs/gfsmrmepsilon_main.c
deleted file mode 100644
index ec3e899..0000000
--- a/gfsm/gfsm/src/programs/gfsmrmepsilon_main.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmrmepsilon_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmrmepsilon";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fsm;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) infilename = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsm = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmError *err = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- rmepsilon
- gfsm_automaton_rmepsilon(fsm);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsm,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsm) gfsm_automaton_free(fsm);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmsigma.gog b/gfsm/gfsm/src/programs/gfsmsigma.gog
deleted file mode 100644
index 68b7243..0000000
--- a/gfsm/gfsm/src/programs/gfsmsigma.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmsigma"
-#program_version "0.01"
-
-purpose "Create a single-state alphabet acceptor"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "LABFILE" "Alphabet file" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.c b/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.c
deleted file mode 100644
index 7cf017f..0000000
--- a/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmsigma_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmsigma_cmdparser gfsmsigma.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmsigma"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmsigma_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmsigma (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Create a single-state alphabet acceptor\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... LABFILE\n", "gfsmsigma");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" LABFILE Alphabet file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.h b/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.h
deleted file mode 100644
index 4a7832c..0000000
--- a/gfsm/gfsm/src/programs/gfsmsigma_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmsigma_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmsigma_cmdparser_h
-#define gfsmsigma_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmsigma_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmsigma_main.c b/gfsm/gfsm/src/programs/gfsmsigma_main.c
deleted file mode 100644
index ce5c59d..0000000
--- a/gfsm/gfsm/src/programs/gfsmsigma_main.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmsigma_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmsigma";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *abetname = "-";
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmOut=NULL;
-gfsmAlphabet *abet=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- output
- if (args.inputs_num) abetname = args.inputs[0];
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- initialize automaton
- fsmOut = gfsm_automaton_new();
-}
-
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- //-- load alphabet
- abet = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(abet, abetname, &err)) {
- g_printerr("%s: load failed for alphabet file '%s': %s\n",
- progname, abetname, err->message);
- exit(2);
- }
-
- //-- compute operation
- gfsm_automaton_sigma(fsmOut,abet);
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmOut,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (abet) gfsm_alphabet_free(abet);
- if (fsmOut) gfsm_automaton_free(fsmOut);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmstrings.gog b/gfsm/gfsm/src/programs/gfsmstrings.gog
deleted file mode 100644
index 5672f36..0000000
--- a/gfsm/gfsm/src/programs/gfsmstrings.gog
+++ /dev/null
@@ -1,76 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmstrings"
-#program_version "0.01"
-
-purpose "Serialize binary acyclic gfsm files to lists of strings"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-#details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/gfsmrc"
-#rcfile "~/.gfsmrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE" "Stored binary gfsm file" \
- details="
-If unspecified, standard input will be read.
-"
-
-#-----------------------------------------------------------------------------
-# Common Options
-#-----------------------------------------------------------------------------
-group "Common Options"
-
-string "ilabels" i "Specify input (lower) labels file." \
- arg="LABELS"
-
-string "olabels" o "Specify output (upper) labels file." \
- arg="LABELS"
-
-flag "att" a "Output in AT&T regex format." \
- default=0
-
-flag "viterbi" v "Treat input automaton as a Viterbi trellis." \
- default=0
-
-string "output" F "Output file." \
- arg="TXTFILE" \
- details="
-Default behavior is to write to stdout.
-"
-
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>,
-"
diff --git a/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.c b/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.c
deleted file mode 100644
index 6f2c30b..0000000
--- a/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.c
+++ /dev/null
@@ -1,525 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmstrings_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmstrings_cmdparser gfsmstrings.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmstrings"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmstrings_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmstrings (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Serialize binary acyclic gfsm files to lists of strings\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE\n", "gfsmstrings");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE Stored binary gfsm file\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf("\n");
- printf(" Common Options:\n");
- printf(" -iLABELS --ilabels=LABELS Specify input (lower) labels file.\n");
- printf(" -oLABELS --olabels=LABELS Specify output (upper) labels file.\n");
- printf(" -a --att Output in AT&T regex format.\n");
- printf(" -v --viterbi Treat input automaton as a Viterbi trellis.\n");
- printf(" -FTXTFILE --output=TXTFILE Output file.\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->ilabels_arg = NULL;
- args_info->olabels_arg = NULL;
- args_info->att_flag = 0;
- args_info->viterbi_flag = 0;
- args_info->output_arg = NULL;
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->ilabels_given = 0;
- args_info->olabels_given = 0;
- args_info->att_given = 0;
- args_info->viterbi_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "ilabels", 1, NULL, 'i' },
- { "olabels", 1, NULL, 'o' },
- { "att", 0, NULL, 'a' },
- { "viterbi", 0, NULL, 'v' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'i', ':',
- 'o', ':',
- 'a',
- 'v',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'i': /* Specify input (lower) labels file. */
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- break;
-
- case 'o': /* Specify output (upper) labels file. */
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- break;
-
- case 'a': /* Output in AT&T regex format. */
- if (args_info->att_given) {
- fprintf(stderr, "%s: `--att' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->att_given++;
- if (args_info->att_given <= 1)
- args_info->att_flag = !(args_info->att_flag);
- break;
-
- case 'v': /* Treat input automaton as a Viterbi trellis. */
- if (args_info->viterbi_given) {
- fprintf(stderr, "%s: `--viterbi' (`-v') option given more than once\n", PROGRAM);
- }
- args_info->viterbi_given++;
- if (args_info->viterbi_given <= 1)
- args_info->viterbi_flag = !(args_info->viterbi_flag);
- break;
-
- case 'F': /* Output file. */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify input (lower) labels file. */
- else if (strcmp(olong, "ilabels") == 0) {
- if (args_info->ilabels_given) {
- fprintf(stderr, "%s: `--ilabels' (`-i') option given more than once\n", PROGRAM);
- }
- args_info->ilabels_given++;
- if (args_info->ilabels_arg) free(args_info->ilabels_arg);
- args_info->ilabels_arg = strdup(val);
- }
-
- /* Specify output (upper) labels file. */
- else if (strcmp(olong, "olabels") == 0) {
- if (args_info->olabels_given) {
- fprintf(stderr, "%s: `--olabels' (`-o') option given more than once\n", PROGRAM);
- }
- args_info->olabels_given++;
- if (args_info->olabels_arg) free(args_info->olabels_arg);
- args_info->olabels_arg = strdup(val);
- }
-
- /* Output in AT&T regex format. */
- else if (strcmp(olong, "att") == 0) {
- if (args_info->att_given) {
- fprintf(stderr, "%s: `--att' (`-a') option given more than once\n", PROGRAM);
- }
- args_info->att_given++;
- if (args_info->att_given <= 1)
- args_info->att_flag = !(args_info->att_flag);
- }
-
- /* Treat input automaton as a Viterbi trellis. */
- else if (strcmp(olong, "viterbi") == 0) {
- if (args_info->viterbi_given) {
- fprintf(stderr, "%s: `--viterbi' (`-v') option given more than once\n", PROGRAM);
- }
- args_info->viterbi_given++;
- if (args_info->viterbi_given <= 1)
- args_info->viterbi_flag = !(args_info->viterbi_flag);
- }
-
- /* Output file. */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.h b/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.h
deleted file mode 100644
index 51e085e..0000000
--- a/gfsm/gfsm/src/programs/gfsmstrings_cmdparser.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmstrings_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmstrings_cmdparser_h
-#define gfsmstrings_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * ilabels_arg; /* Specify input (lower) labels file. (default=NULL). */
- char * olabels_arg; /* Specify output (upper) labels file. (default=NULL). */
- int att_flag; /* Output in AT&T regex format. (default=0). */
- int viterbi_flag; /* Treat input automaton as a Viterbi trellis. (default=0). */
- char * output_arg; /* Output file. (default=NULL). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int ilabels_given; /* Whether ilabels was given */
- int olabels_given; /* Whether olabels was given */
- int att_given; /* Whether att was given */
- int viterbi_given; /* Whether viterbi was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmstrings_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmstrings_main.c b/gfsm/gfsm/src/programs/gfsmstrings_main.c
deleted file mode 100644
index 4b561e6..0000000
--- a/gfsm/gfsm/src/programs/gfsmstrings_main.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmstrings_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmstrings";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename = "-";
-const char *outfilename = "-";
-FILE *outfile = NULL;
-
-//-- global structs
-gfsmAutomaton *fsm;
-gfsmAlphabet *ilabels=NULL, *olabels=NULL;
-gfsmError *err = NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.inputs_num > 0) infilename = args.inputs[0];
- if (args.output_given) outfilename = args.output_arg;
-
- //-- labels: input
- if (args.ilabels_given) {
- ilabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(ilabels,args.ilabels_arg,&err)) {
- g_printerr("%s: load failed for input-labels file '%s': %s\n",
- progname, args.ilabels_arg, (err ? err->message : "?"));
- exit(2);
- }
- }
- //-- labels: output
- if (args.olabels_given) {
- olabels = gfsm_string_alphabet_new();
- if (!gfsm_alphabet_load_filename(olabels,args.olabels_arg,&err)) {
- g_printerr("%s: load failed for output-labels file '%s': %s\n",
- progname, args.olabels_arg, (err ? err->message : "?"));
- exit(2);
- }
- }
-
- //-- initialize fsm
- fsm = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmSet *paths = NULL;
- GSList *strings = NULL;
- get_my_options(argc,argv);
-
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsm,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, (err ? err->message : "?"));
- exit(3);
- }
-
- //-- sanity check
- if (gfsm_automaton_is_cyclic(fsm)) {
- g_printerr("%s: input automaton must be acyclic!\n", progname);
- exit(255);
- }
-
- //-- open output file
- outfile = gfsm_open_filename(outfilename, "w", &err);
- if (!outfile) {
- g_printerr("%s: %s\n", progname, (err ? err->message : "?"));
- exit(4);
- }
-
-
- //-- get & stringify full paths
- if (args.viterbi_flag) {
- //-- serialize Viterbi trellis automaton
- paths = gfsm_viterbi_trellis_paths_full(fsm, NULL, gfsmLSBoth);
- }
- else {
- //-- serialize "normal" automaton
- paths = gfsm_automaton_paths_full(fsm, NULL, gfsmLSBoth);
- }
- strings = gfsm_paths_to_strings(paths,
- ilabels,
- olabels,
- fsm->sr,
- TRUE,
- args.att_given,
- NULL);
- while (strings) {
- //-- pop first datum
- char *s = (char *)strings->data;
- strings = g_slist_delete_link(strings,strings);
-
- //-- print string
- fputs(s, outfile);
- fputc('\n', outfile);
-
- g_free(s);
- }
-
- //-- cleanup
- if (paths) gfsm_set_free(paths);
- if (ilabels) gfsm_alphabet_free(ilabels);
- if (olabels) gfsm_alphabet_free(olabels);
- if (fsm) gfsm_automaton_free(fsm);
-
- if (outfile != stdout) fclose(outfile);
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmunion.gog b/gfsm/gfsm/src/programs/gfsmunion.gog
deleted file mode 100644
index 96d84e2..0000000
--- a/gfsm/gfsm/src/programs/gfsmunion.gog
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmunion"
-#program_version "0.01"
-
-purpose "Compute union of finite state machines"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "BINFILE(s)" "Stored binary gfsm file(s)" \
- details="
-If unspecified, standard input will be read
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-None known.
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmunion_cmdparser.c b/gfsm/gfsm/src/programs/gfsmunion_cmdparser.c
deleted file mode 100644
index 31aafa8..0000000
--- a/gfsm/gfsm/src/programs/gfsmunion_cmdparser.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmunion_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmunion_cmdparser gfsmunion.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmunion"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmunion_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmunion (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" Compute union of finite state machines\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... BINFILE(s)\n", "gfsmunion");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" BINFILE(s) Stored binary gfsm file(s)\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmunion_cmdparser.h b/gfsm/gfsm/src/programs/gfsmunion_cmdparser.h
deleted file mode 100644
index 6086492..0000000
--- a/gfsm/gfsm/src/programs/gfsmunion_cmdparser.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmunion_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmunion_cmdparser_h
-#define gfsmunion_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmunion_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmunion_main.c b/gfsm/gfsm/src/programs/gfsmunion_main.c
deleted file mode 100644
index dd7998d..0000000
--- a/gfsm/gfsm/src/programs/gfsmunion_main.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2004 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gfsm.h>
-
-#include "gfsmunion_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmunion";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *infilename;
-const char *outfilename = "-";
-
-//-- global structs etc.
-gfsmError *err = NULL;
-gfsmAutomaton *fsmUnion=NULL, *fsmIn=NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- require at least one file argument
- if (args.inputs_num < 1) {
- cmdline_parser_print_help();
- exit(2);
- }
-
- //-- output
- if (args.output_arg) outfilename = args.output_arg;
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- initialize automaton
- fsmIn = gfsm_automaton_new();
-}
-
-/*--------------------------------------------------------------------------
- * compute_union()
- * + utility routine
- */
-void compute_union(const char *infilename)
-{
- //-- load automaton
- if (!gfsm_automaton_load_bin_filename(fsmIn,infilename,&err)) {
- g_printerr("%s: load failed for '%s': %s\n", progname, infilename, err->message);
- exit(255);
- }
-
- //-- compute union
- if (fsmUnion == NULL) {
- fsmUnion = fsmIn;
- fsmIn = gfsm_automaton_new();
- } else {
- gfsm_automaton_union(fsmUnion,fsmIn);
- }
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- int i;
-
- GFSM_INIT
-
- get_my_options(argc,argv);
-
- for (i = 0; i < args.inputs_num; i++) {
- compute_union(args.inputs[i]);
- }
- if (args.inputs_num == 1) compute_union("-");
-
- //-- spew automaton
- if (!gfsm_automaton_save_bin_filename(fsmUnion,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fsmIn) gfsm_automaton_free(fsmIn);
- if (fsmUnion) gfsm_automaton_free(fsmUnion);
-
- GFSM_FINISH
-
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmview.sh b/gfsm/gfsm/src/programs/gfsmview.sh
deleted file mode 100755
index d8df9c2..0000000
--- a/gfsm/gfsm/src/programs/gfsmview.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-GFSMDRAW=./gfsmdraw
-DOTGV=dotgv.sh
-
-exec $GFSMDRAW "$@" | $DOTGV
diff --git a/gfsm/gfsm/src/programs/gfsmviterbi.gog b/gfsm/gfsm/src/programs/gfsmviterbi.gog
deleted file mode 100644
index 827d26e..0000000
--- a/gfsm/gfsm/src/programs/gfsmviterbi.gog
+++ /dev/null
@@ -1,88 +0,0 @@
-# -*- Mode: Shell-Script -*-
-#
-# Getopt::Gen specification
-#-----------------------------------------------------------------------------
-program "gfsmviterbi"
-#program_version "0.01"
-
-purpose "EXPERIMENTAL: Compute Viterbi trellis for a linear label sequence in a transducer"
-author "Bryan Jurish <moocow@ling.uni-potsdam.de>"
-on_reparse "warn"
-
-#-----------------------------------------------------------------------------
-# Details
-#-----------------------------------------------------------------------------
-details ""
-
-#-----------------------------------------------------------------------------
-# Files
-#-----------------------------------------------------------------------------
-#rcfile "/etc/mootrc"
-#rcfile "~/.mootrc"
-
-#-----------------------------------------------------------------------------
-# Arguments
-#-----------------------------------------------------------------------------
-argument "LABELID..." "Input label IDs" \
- details="
-In ASCII decimal notation.
-"
-
-#-----------------------------------------------------------------------------
-# Options
-#-----------------------------------------------------------------------------
-#group "Basic Options"
-
-string "fst" f "Weighted transducer to apply (default=stdin)." \
- arg="FSTFILE" \
- default="-" \
- details="
-If unspecified, standard input will be read.
-"
-
-int "compress" z "Specify compression level of output file." \
- arg="LEVEL" \
- default="-1" \
- details="
-Specify zlib compression level of output file. -1 (default) indicates
-the default compression level, 0 (zero) indicates no zlib compression at all,
-and 9 indicates the best possible compression.
-"
-
-string "output" F "Specifiy output file (default=stdout)." \
- arg="FILE" \
- default="-"
-
-#-----------------------------------------------------------------------------
-# Addenda
-#-----------------------------------------------------------------------------
-#addenda ""
-
-#-----------------------------------------------------------------------------
-# Bugs
-#-----------------------------------------------------------------------------
-bugs "
-
-=over 4
-
-=item
-
-No negative-cost epsilon cycles are allowed in the transducer.
-
-=item
-
-The Viterbi API, the existence of the gfsmviterbi command-line program,
-its arguments & optiosn, etc. are HIGHLY UNSTABLE.
-
-=back
-
-"
-
-#-----------------------------------------------------------------------------
-# Footer
-#-----------------------------------------------------------------------------
-#acknowledge `cat acknowledge.pod`
-
-seealso "
-L<gfsmutils>
-"
diff --git a/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.c b/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.c
deleted file mode 100644
index f4de7a9..0000000
--- a/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.c
+++ /dev/null
@@ -1,473 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmviterbi_cmdparser.c
- * Description: Code for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05
- * generated with the following command:
- * /usr/local/bin/optgen.perl -u -l --no-handle-rcfile --nopod -F gfsmviterbi_cmdparser gfsmviterbi.gog
- *
- * The developers of optgen.perl consider the fixed text that goes in all
- * optgen.perl output files to be in the public domain:
- * we make no copyright claims on it.
- *
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <ctype.h>
-
-/* If we use autoconf/autoheader. */
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_PWD_H
-# include <pwd.h>
-#endif
-
-/* Allow user-overrides for PACKAGE and VERSION */
-#ifndef PACKAGE
-# define PACKAGE "PACKAGE"
-#endif
-
-#ifndef VERSION
-# define VERSION "VERSION"
-#endif
-
-
-#ifndef PROGRAM
-# define PROGRAM "gfsmviterbi"
-#endif
-
-/* #define cmdline_parser_DEBUG */
-
-/* Check for "configure's" getopt check result. */
-#ifndef HAVE_GETOPT_LONG
-# include "getopt.h"
-#else
-# include <getopt.h>
-#endif
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-# define strdup gengetopt_strdup
-#endif /* HAVE_STRDUP */
-
-#include "gfsmviterbi_cmdparser.h"
-
-
-/* user code section */
-
-/* end user code section */
-
-
-void
-cmdline_parser_print_version (void)
-{
- printf("gfsmviterbi (%s %s) by Bryan Jurish <moocow@ling.uni-potsdam.de>\n", PACKAGE, VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
- cmdline_parser_print_version ();
- printf("\n");
- printf("Purpose:\n");
- printf(" EXPERIMENTAL: Compute Viterbi trellis for a linear label sequence in a transducer\n");
- printf("\n");
-
- printf("Usage: %s [OPTIONS]... LABELID...\n", "gfsmviterbi");
-
- printf("\n");
- printf(" Arguments:\n");
- printf(" LABELID... Input label IDs\n");
-
- printf("\n");
- printf(" Options:\n");
- printf(" -h --help Print help and exit.\n");
- printf(" -V --version Print version and exit.\n");
- printf(" -fFSTFILE --fst=FSTFILE Weighted transducer to apply (default=stdin).\n");
- printf(" -zLEVEL --compress=LEVEL Specify compression level of output file.\n");
- printf(" -FFILE --output=FILE Specifiy output file (default=stdout).\n");
-}
-
-#if !defined(HAVE_STRDUP) && !defined(strdup)
-/* gengetopt_strdup(): automatically generated from strdup.c. */
-/* strdup.c replacement of strdup, which is not standard */
-static char *
-gengetopt_strdup (const char *s)
-{
- char *result = (char*)malloc(strlen(s) + 1);
- if (result == (char*)0)
- return (char*)0;
- strcpy(result, s);
- return result;
-}
-#endif /* HAVE_STRDUP */
-
-/* clear_args(args_info): clears all args & resets to defaults */
-static void
-clear_args(struct gengetopt_args_info *args_info)
-{
- args_info->fst_arg = strdup("-");
- args_info->compress_arg = -1;
- args_info->output_arg = strdup("-");
-}
-
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
- int c; /* Character of the parsed option. */
- int missing_required_options = 0;
-
- args_info->help_given = 0;
- args_info->version_given = 0;
- args_info->fst_given = 0;
- args_info->compress_given = 0;
- args_info->output_given = 0;
-
- clear_args(args_info);
-
- /* rcfile handling */
-
- /* end rcfile handling */
-
- optarg = 0;
- optind = 1;
- opterr = 1;
- optopt = '?';
-
- while (1)
- {
- int option_index = 0;
- static struct option long_options[] = {
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
- { "fst", 1, NULL, 'f' },
- { "compress", 1, NULL, 'z' },
- { "output", 1, NULL, 'F' },
- { NULL, 0, NULL, 0 }
- };
- static char short_options[] = {
- 'h',
- 'V',
- 'f', ':',
- 'z', ':',
- 'F', ':',
- '\0'
- };
-
- c = getopt_long (argc, argv, short_options, long_options, &option_index);
-
- if (c == -1) break; /* Exit from 'while (1)' loop. */
-
- if (cmdline_parser_parse_option(c, long_options[option_index].name, optarg, args_info) != 0) {
- exit (EXIT_FAILURE);
- }
- } /* while */
-
-
-
- if ( missing_required_options )
- exit (EXIT_FAILURE);
-
-
- if (optind < argc) {
- int i = 0 ;
- args_info->inputs_num = argc - optind ;
- args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ;
- while (optind < argc)
- args_info->inputs[ i++ ] = strdup (argv[optind++]) ;
- }
-
- return 0;
-}
-
-
-/* Parse a single option */
-int
-cmdline_parser_parse_option(char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info)
-{
- if (!oshort && !(olong && *olong)) return 1; /* ignore null options */
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "parse_option(): oshort='%c', olong='%s', val='%s'\n", oshort, olong, val);*/
-#endif
-
- switch (oshort)
- {
- case 'h': /* Print help and exit. */
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'V': /* Print version and exit. */
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- break;
-
- case 'f': /* Weighted transducer to apply (default=stdin). */
- if (args_info->fst_given) {
- fprintf(stderr, "%s: `--fst' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fst_given++;
- if (args_info->fst_arg) free(args_info->fst_arg);
- args_info->fst_arg = strdup(val);
- break;
-
- case 'z': /* Specify compression level of output file. */
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- break;
-
- case 'F': /* Specifiy output file (default=stdout). */
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- break;
-
- case 0: /* Long option(s) with no short form */
- /* Print help and exit. */
- if (strcmp(olong, "help") == 0) {
- if (args_info->help_given) {
- fprintf(stderr, "%s: `--help' (`-h') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_help();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Print version and exit. */
- else if (strcmp(olong, "version") == 0) {
- if (args_info->version_given) {
- fprintf(stderr, "%s: `--version' (`-V') option given more than once\n", PROGRAM);
- }
- clear_args(args_info);
- cmdline_parser_print_version();
- exit(EXIT_SUCCESS);
-
- }
-
- /* Weighted transducer to apply (default=stdin). */
- else if (strcmp(olong, "fst") == 0) {
- if (args_info->fst_given) {
- fprintf(stderr, "%s: `--fst' (`-f') option given more than once\n", PROGRAM);
- }
- args_info->fst_given++;
- if (args_info->fst_arg) free(args_info->fst_arg);
- args_info->fst_arg = strdup(val);
- }
-
- /* Specify compression level of output file. */
- else if (strcmp(olong, "compress") == 0) {
- if (args_info->compress_given) {
- fprintf(stderr, "%s: `--compress' (`-z') option given more than once\n", PROGRAM);
- }
- args_info->compress_given++;
- args_info->compress_arg = (int)atoi(val);
- }
-
- /* Specifiy output file (default=stdout). */
- else if (strcmp(olong, "output") == 0) {
- if (args_info->output_given) {
- fprintf(stderr, "%s: `--output' (`-F') option given more than once\n", PROGRAM);
- }
- args_info->output_given++;
- if (args_info->output_arg) free(args_info->output_arg);
- args_info->output_arg = strdup(val);
- }
-
- else {
- fprintf(stderr, "%s: unknown long option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
- }
- break;
-
- case '?': /* Invalid Option */
- fprintf(stderr, "%s: unknown option '%s'.\n", PROGRAM, olong);
- return (EXIT_FAILURE);
-
-
- default: /* bug: options not considered. */
- fprintf (stderr, "%s: option unknown: %c\n", PROGRAM, oshort);
- abort ();
- } /* switch */
- return 0;
-}
-
-
-/* Initialize options not yet given from environmental defaults */
-void
-cmdline_parser_envdefaults(struct gengetopt_args_info *args_info)
-{
-
-
- return;
-}
-
-
-/* Load option values from an .rc file */
-void
-cmdline_parser_read_rcfile(const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified)
-{
- char *fullname;
- FILE *rcfile;
-
- if (!filename) return; /* ignore NULL filenames */
-
-#if defined(HAVE_GETUID) && defined(HAVE_GETPWUID)
- if (*filename == '~') {
- /* tilde-expansion hack */
- struct passwd *pwent = getpwuid(getuid());
- if (!pwent) {
- fprintf(stderr, "%s: user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- if (!pwent->pw_dir) {
- fprintf(stderr, "%s: home directory for user-id %d not found!\n", PROGRAM, getuid());
- return;
- }
- fullname = (char *)malloc(strlen(pwent->pw_dir)+strlen(filename));
- strcpy(fullname, pwent->pw_dir);
- strcat(fullname, filename+1);
- } else {
- fullname = strdup(filename);
- }
-#else /* !(defined(HAVE_GETUID) && defined(HAVE_GETPWUID)) */
- fullname = strdup(filename);
-#endif /* defined(HAVE_GETUID) && defined(HAVE_GETPWUID) */
-
- /* try to open */
- rcfile = fopen(fullname,"r");
- if (!rcfile) {
- if (user_specified) {
- fprintf(stderr, "%s: warning: open failed for rc-file '%s': %s\n",
- PROGRAM, fullname, strerror(errno));
- }
- }
- else {
- cmdline_parser_read_rc_stream(rcfile, fullname, args_info);
- }
-
- /* cleanup */
- if (fullname != filename) free(fullname);
- if (rcfile) fclose(rcfile);
-
- return;
-}
-
-
-/* Parse option values from an .rc file : guts */
-#define OPTPARSE_GET 32
-void
-cmdline_parser_read_rc_stream(FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info)
-{
- char *optname = (char *)malloc(OPTPARSE_GET);
- char *optval = (char *)malloc(OPTPARSE_GET);
- size_t onsize = OPTPARSE_GET;
- size_t ovsize = OPTPARSE_GET;
- size_t onlen = 0;
- size_t ovlen = 0;
- int lineno = 0;
- char c;
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'):\n", filename);
-#endif
-
- while ((c = fgetc(rcfile)) != EOF) {
- onlen = 0;
- ovlen = 0;
- lineno++;
-
- /* -- get next option-name */
- /* skip leading space and comments */
- if (isspace(c)) continue;
- if (c == '#') {
- while ((c = fgetc(rcfile)) != EOF) {
- if (c == '\n') break;
- }
- continue;
- }
-
- /* parse option-name */
- while (c != EOF && c != '=' && !isspace(c)) {
- /* re-allocate if necessary */
- if (onlen >= onsize-1) {
- char *tmp = (char *)malloc(onsize+OPTPARSE_GET);
- strcpy(tmp,optname);
- free(optname);
-
- onsize += OPTPARSE_GET;
- optname = tmp;
- }
- optname[onlen++] = c;
- c = fgetc(rcfile);
- }
- optname[onlen++] = '\0';
-
-#ifdef cmdline_parser_DEBUG
- fprintf(stderr, "cmdline_parser_read_rc_stream('%s'): line %d: optname='%s'\n",
- filename, lineno, optname);
-#endif
-
- /* -- get next option-value */
- /* skip leading space */
- while ((c = fgetc(rcfile)) != EOF && isspace(c)) {
- ;
- }
-
- /* parse option-value */
- while (c != EOF && c != '\n') {
- /* re-allocate if necessary */
- if (ovlen >= ovsize-1) {
- char *tmp = (char *)malloc(ovsize+OPTPARSE_GET);
- strcpy(tmp,optval);
- free(optval);
- ovsize += OPTPARSE_GET;
- optval = tmp;
- }
- optval[ovlen++] = c;
- c = fgetc(rcfile);
- }
- optval[ovlen++] = '\0';
-
- /* now do the action for the option */
- if (cmdline_parser_parse_option('\0',optname,optval,args_info) != 0) {
- fprintf(stderr, "%s: error in file '%s' at line %d.\n", PROGRAM, filename, lineno);
-
- }
- }
-
- /* cleanup */
- free(optname);
- free(optval);
-
- return;
-}
diff --git a/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.h b/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.h
deleted file mode 100644
index d38087d..0000000
--- a/gfsm/gfsm/src/programs/gfsmviterbi_cmdparser.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* -*- Mode: C -*-
- *
- * File: gfsmviterbi_cmdparser.h
- * Description: Headers for command-line parser struct gengetopt_args_info.
- *
- * File autogenerated by optgen.perl version 0.05.
- *
- */
-
-#ifndef gfsmviterbi_cmdparser_h
-#define gfsmviterbi_cmdparser_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*
- * moocow: Never set PACKAGE and VERSION here.
- */
-
-struct gengetopt_args_info {
- char * fst_arg; /* Weighted transducer to apply (default=stdin). (default=-). */
- int compress_arg; /* Specify compression level of output file. (default=-1). */
- char * output_arg; /* Specifiy output file (default=stdout). (default=-). */
-
- int help_given; /* Whether help was given */
- int version_given; /* Whether version was given */
- int fst_given; /* Whether fst was given */
- int compress_given; /* Whether compress was given */
- int output_given; /* Whether output was given */
-
- char **inputs; /* unnamed arguments */
- unsigned inputs_num; /* number of unnamed arguments */
-};
-
-/* read rc files (if any) and parse all command-line options in one swell foop */
-int cmdline_parser (int argc, char *const *argv, struct gengetopt_args_info *args_info);
-
-/* instantiate defaults from environment variables: you must call this yourself! */
-void cmdline_parser_envdefaults (struct gengetopt_args_info *args_info);
-
-/* read a single rc-file */
-void cmdline_parser_read_rcfile (const char *filename,
- struct gengetopt_args_info *args_info,
- int user_specified);
-
-/* read a single rc-file (stream) */
-void cmdline_parser_read_rc_stream (FILE *rcfile,
- const char *filename,
- struct gengetopt_args_info *args_info);
-
-/* parse a single option */
-int cmdline_parser_parse_option (char oshort, const char *olong, const char *val,
- struct gengetopt_args_info *args_info);
-
-/* print help message */
-void cmdline_parser_print_help(void);
-
-/* print version */
-void cmdline_parser_print_version(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* gfsmviterbi_cmdparser_h */
diff --git a/gfsm/gfsm/src/programs/gfsmviterbi_main.c b/gfsm/gfsm/src/programs/gfsmviterbi_main.c
deleted file mode 100644
index 33bb01a..0000000
--- a/gfsm/gfsm/src/programs/gfsmviterbi_main.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- gfsm-utils : finite state automaton utilities
- Copyright (C) 2005 by Bryan Jurish <moocow@ling.uni-potsdam.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-*/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <gfsm.h>
-
-#include "gfsmviterbi_cmdparser.h"
-
-/*--------------------------------------------------------------------------
- * Globals
- *--------------------------------------------------------------------------*/
-char *progname = "gfsmviterbi";
-
-//-- options
-struct gengetopt_args_info args;
-
-//-- files
-const char *fstfilename = "-";
-const char *outfilename = "-";
-
-//-- global structs
-gfsmAutomaton *fst = NULL;
-gfsmError *err = NULL;
-
-/*--------------------------------------------------------------------------
- * Option Processing
- *--------------------------------------------------------------------------*/
-void get_my_options(int argc, char **argv)
-{
- if (cmdline_parser(argc, argv, &args) != 0)
- exit(1);
-
- //-- load environmental defaults
- //cmdline_parser_envdefaults(&args);
-
- //-- filenames
- if (args.fst_given) fstfilename = args.fst_arg;
- outfilename = args.output_arg;
-
- //-- load FST
- fst = gfsm_automaton_new();
- if (!gfsm_automaton_load_bin_filename(fst, fstfilename, &err)) {
- g_printerr("%s: load failed for FST file '%s': %s\n", progname, fstfilename, err->message);
- exit(255);
- }
-}
-
-/*--------------------------------------------------------------------------
- * viterbi_labels()
- */
-gfsmAutomaton *viterbi_labels(gfsmAutomaton *fst, int argc, char **argv)
-{
- gfsmLabelVector *vec = g_ptr_array_sized_new(argc);
- char *s=NULL, *tail=NULL;
- gfsmLabelVal lab;
- gfsmAutomaton *trellis = NULL;
- int i;
-
- //-- fill input vector
- for (i=0; i < argc; i++) {
- for (s=argv[i], lab=strtol(s,&tail,0); s != tail; s=tail, lab=strtol(s,&tail,0)) {
- g_ptr_array_add(vec, (gpointer)lab);
- }
- }
-
- //-- actual viterbi lookup
- trellis = gfsm_automaton_lookup_viterbi(fst, vec, trellis);
-
- //-- cleanup
- g_ptr_array_free(vec,TRUE);
-
- return trellis;
-}
-
-/*--------------------------------------------------------------------------
- * MAIN
- *--------------------------------------------------------------------------*/
-int main (int argc, char **argv)
-{
- gfsmAutomaton *trellis;
-
- GFSM_INIT
- get_my_options(argc,argv);
-
- //-- process input
- trellis = viterbi_labels(fst, args.inputs_num, args.inputs);
-
- //-- save output
- if (!gfsm_automaton_save_bin_filename(trellis,outfilename,args.compress_arg,&err)) {
- g_printerr("%s: store failed to '%s': %s\n", progname, outfilename, err->message);
- exit(4);
- }
-
- //-- cleanup
- if (fst) gfsm_automaton_free(fst);
- if (trellis) gfsm_automaton_free(trellis);
-
- GFSM_FINISH
- return 0;
-}
diff --git a/gfsm/gfsm/src/programs/isect1.tfst b/gfsm/gfsm/src/programs/isect1.tfst
deleted file mode 100644
index 5781fec..0000000
--- a/gfsm/gfsm/src/programs/isect1.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 0 0
-1
-1 2 1 1
-2
diff --git a/gfsm/gfsm/src/programs/isect2.tfst b/gfsm/gfsm/src/programs/isect2.tfst
deleted file mode 100644
index d64b6cb..0000000
--- a/gfsm/gfsm/src/programs/isect2.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 0 1 1
-0 1 0 0
-0
-1 1 2 2
-1
diff --git a/gfsm/gfsm/src/programs/lkptest.tfst b/gfsm/gfsm/src/programs/lkptest.tfst
deleted file mode 100644
index 40c6d7a..0000000
--- a/gfsm/gfsm/src/programs/lkptest.tfst
+++ /dev/null
@@ -1,13 +0,0 @@
-0 0 1 2 1
-0 0 2 3 1
-0 0 3 1 1
-0 0
-
-0 1 2 2 1
-1 2 2 2 1
-2 3 3 3 1
-3 0
-
-0 4 1 0 1
-4 5 0 3 1
-5 0
diff --git a/gfsm/gfsm/src/programs/p1.tfst b/gfsm/gfsm/src/programs/p1.tfst
deleted file mode 100644
index 671e9e0..0000000
--- a/gfsm/gfsm/src/programs/p1.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 1 1 1
-0 1 2 2
-1
-1 2 3 3
-2
diff --git a/gfsm/gfsm/src/programs/p2.tfst b/gfsm/gfsm/src/programs/p2.tfst
deleted file mode 100644
index f8fd663..0000000
--- a/gfsm/gfsm/src/programs/p2.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 4 4
-0 1 5 5
-1
diff --git a/gfsm/gfsm/src/programs/prunetest.tfst b/gfsm/gfsm/src/programs/prunetest.tfst
deleted file mode 100644
index 0dc8950..0000000
--- a/gfsm/gfsm/src/programs/prunetest.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 1 1 1 0
-1 2 2 2 0
-0 3 3 3 0
-1 0
-4 5 4 4 0
-5 0
diff --git a/gfsm/gfsm/src/programs/r1.tfst b/gfsm/gfsm/src/programs/r1.tfst
deleted file mode 100644
index f9608f2..0000000
--- a/gfsm/gfsm/src/programs/r1.tfst
+++ /dev/null
@@ -1,9 +0,0 @@
-0 1 1 1
-0 2 0 1
-0 3 1 0
-1 4 4 4
-2 5 5 5
-3 6 6 6
-4
-5
-6
diff --git a/gfsm/gfsm/src/programs/r2.tfst b/gfsm/gfsm/src/programs/r2.tfst
deleted file mode 100644
index a61738d..0000000
--- a/gfsm/gfsm/src/programs/r2.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 24 7
-0 2 7 24
-1 10
-2 20
diff --git a/gfsm/gfsm/src/programs/renumber.tfst b/gfsm/gfsm/src/programs/renumber.tfst
deleted file mode 100644
index b4697b0..0000000
--- a/gfsm/gfsm/src/programs/renumber.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-5 4 43 0 0
-5 1 42 0 0
-7 0
-1 7 1 1 0
-4 7 1 1 0
diff --git a/gfsm/gfsm/src/programs/renumber2.tfst b/gfsm/gfsm/src/programs/renumber2.tfst
deleted file mode 100644
index 1c71c3d..0000000
--- a/gfsm/gfsm/src/programs/renumber2.tfst
+++ /dev/null
@@ -1,8 +0,0 @@
-5 1 42 0 0
-5 4 43 0 0
-6 7 1 1 0
-7 0
-0 1 42 0 0
-1 7 1 1 0
-3 4 43 0 0
-4 7 1 1 0
diff --git a/gfsm/gfsm/src/programs/rev1.tfst b/gfsm/gfsm/src/programs/rev1.tfst
deleted file mode 100644
index 5a428b4..0000000
--- a/gfsm/gfsm/src/programs/rev1.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 0 1 1
-1 2 1 2 12
-2 2 2 2 22
-2 20
-1 3 1 3 13
-3 4 3 4 34
-4 40 \ No newline at end of file
diff --git a/gfsm/gfsm/src/programs/rme.tfst b/gfsm/gfsm/src/programs/rme.tfst
deleted file mode 100644
index 06922fa..0000000
--- a/gfsm/gfsm/src/programs/rme.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 0 0 0 0
-0 1 0 0 1
-1 2 0 0 2
-0 2 0 0 10
-2 3 1 1 3
-3
diff --git a/gfsm/gfsm/src/programs/rme2.tfst b/gfsm/gfsm/src/programs/rme2.tfst
deleted file mode 100644
index b30d66e..0000000
--- a/gfsm/gfsm/src/programs/rme2.tfst
+++ /dev/null
@@ -1,8 +0,0 @@
-5 0 0 0 0
-5 3 0 0 0
-6 7 0 0 0
-7 0
-0 1 42 0 0
-1 6 0 0 0
-3 4 43 0 0
-4 6 0 0 0
diff --git a/gfsm/gfsm/src/programs/rme2b.tfst b/gfsm/gfsm/src/programs/rme2b.tfst
deleted file mode 100644
index da2ffd2..0000000
--- a/gfsm/gfsm/src/programs/rme2b.tfst
+++ /dev/null
@@ -1,8 +0,0 @@
-5 0 0 0 0
-5 3 0 0 0
-6 7 1 1 0
-7 0
-0 1 42 0 0
-1 6 0 0 0
-3 4 43 0 0
-4 6 0 0 0
diff --git a/gfsm/gfsm/src/programs/rme3.tfst b/gfsm/gfsm/src/programs/rme3.tfst
deleted file mode 100644
index 8235e2b..0000000
--- a/gfsm/gfsm/src/programs/rme3.tfst
+++ /dev/null
@@ -1,5 +0,0 @@
-0 1 42 0
-0 2 43 0
-1 3 0 0 0
-2 3 0 0 0
-3 0
diff --git a/gfsm/gfsm/src/programs/sort.tfst b/gfsm/gfsm/src/programs/sort.tfst
deleted file mode 100644
index a5bb1c7..0000000
--- a/gfsm/gfsm/src/programs/sort.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 1 2 1
-0 1 2 1 2
-0 1 2 2 3
-0 1 1 2 3
-0 1 2 1 2
-0 1 2 2 1
-1
diff --git a/gfsm/gfsm/src/programs/sortme.tfst b/gfsm/gfsm/src/programs/sortme.tfst
deleted file mode 100644
index d48ea71..0000000
--- a/gfsm/gfsm/src/programs/sortme.tfst
+++ /dev/null
@@ -1,15 +0,0 @@
-0 1 1 10 10.0
-0 1 2 10 10.0
-0 1 1 20 10.0
-0 1 2 20 10.0
-0 1 3 10 10.0
-0 1 3 20 10.0
-0 1 3 30 10.0
-0 1 4 40 1.0
-0 1 4 40 2.0
-0 1 4 40 3.0
-0 0 5 50 10.0
-0 0 5 50 10.0
-0 0 5 50 10.0
-0 0.0
-1 0.0
diff --git a/gfsm/gfsm/src/programs/symtest.lab b/gfsm/gfsm/src/programs/symtest.lab
deleted file mode 100644
index 4d677d5..0000000
--- a/gfsm/gfsm/src/programs/symtest.lab
+++ /dev/null
@@ -1,15 +0,0 @@
-<epsilon> 0
-a 1
-b 2
-c 3
-A 4
-B 5
-C 6
-acc 7
-dat 8
-sg 9
-pl 10
-_NOUN 11
-_Case 12
-_Number 13
-_VERB 14
diff --git a/gfsm/gfsm/src/programs/symtest.sym b/gfsm/gfsm/src/programs/symtest.sym
deleted file mode 100644
index f151932..0000000
--- a/gfsm/gfsm/src/programs/symtest.sym
+++ /dev/null
@@ -1,8 +0,0 @@
-Lower a b c
-Upper A B C
-
-Case acc dat
-Number sg pl
-
-Category: NOUN Case Number
-Category: VERB Number
diff --git a/gfsm/gfsm/src/programs/test+lab.tfst b/gfsm/gfsm/src/programs/test+lab.tfst
deleted file mode 100644
index 252d6a6..0000000
--- a/gfsm/gfsm/src/programs/test+lab.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 a b 0
-1 2 c d 0
-2 0
diff --git a/gfsm/gfsm/src/programs/test-rn.tfst b/gfsm/gfsm/src/programs/test-rn.tfst
deleted file mode 100644
index 694ddcd..0000000
--- a/gfsm/gfsm/src/programs/test-rn.tfst
+++ /dev/null
@@ -1,8 +0,0 @@
-0 1 1 1 0
-0 0
-1 0
-2 0
-3 0
-4
-5
-6
diff --git a/gfsm/gfsm/src/programs/test.lab b/gfsm/gfsm/src/programs/test.lab
deleted file mode 100644
index b7c05ae..0000000
--- a/gfsm/gfsm/src/programs/test.lab
+++ /dev/null
@@ -1,15 +0,0 @@
-<eps> 0
-a 1
-b 2
-c 3
-d 4
-e 5
-f 6
-fourtwenty 420
-twentyfour 24
-seven 7
-( 10
-) 11
-FOO 12
-BAR 13
-BAZ 14
diff --git a/gfsm/gfsm/src/programs/test.tfst b/gfsm/gfsm/src/programs/test.tfst
deleted file mode 100644
index 02acee3..0000000
--- a/gfsm/gfsm/src/programs/test.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 420 24 0.7
-1 2 0 0 99
-2
diff --git a/gfsm/gfsm/src/programs/test2.tfst b/gfsm/gfsm/src/programs/test2.tfst
deleted file mode 100644
index 37fe96a..0000000
--- a/gfsm/gfsm/src/programs/test2.tfst
+++ /dev/null
@@ -1,7 +0,0 @@
-0 1 1 3 .042
-0 2 2 2 .24
-0 3 3 1 .07
-1
-2
-3
-
diff --git a/gfsm/gfsm/src/programs/test3.tfst b/gfsm/gfsm/src/programs/test3.tfst
deleted file mode 100644
index 669bfc9..0000000
--- a/gfsm/gfsm/src/programs/test3.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 1 1 1 100
-0 4 4 4 400
-1 2 2 2 200
-2 3 3 3 300
-3 0
-4 0
diff --git a/gfsm/gfsm/src/programs/test4.tfst b/gfsm/gfsm/src/programs/test4.tfst
deleted file mode 100644
index 44d5c9e..0000000
--- a/gfsm/gfsm/src/programs/test4.tfst
+++ /dev/null
@@ -1,9 +0,0 @@
-0 1 0 0 0
-0 1 0 0 1
-0 1 0 1 0
-0 1 0 1 1
-0 1 1 0 0
-0 1 1 0 1
-0 1 1 1 0
-0 1 1 1 1
-1
diff --git a/gfsm/gfsm/src/programs/test4b.tfst b/gfsm/gfsm/src/programs/test4b.tfst
deleted file mode 100644
index 8890ba6..0000000
--- a/gfsm/gfsm/src/programs/test4b.tfst
+++ /dev/null
@@ -1,9 +0,0 @@
-0 1 1 1 1
-0 1 1 1 0
-0 1 1 0 1
-0 1 1 0 0
-0 1 0 1 1
-0 1 0 1 0
-0 1 0 0 1
-0 1 0 0 0
-1 \ No newline at end of file
diff --git a/gfsm/gfsm/src/programs/test5.tfst b/gfsm/gfsm/src/programs/test5.tfst
deleted file mode 100644
index ac8c248..0000000
--- a/gfsm/gfsm/src/programs/test5.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-0 1 1 1 0
-1 2 2 2 0
-2 0
diff --git a/gfsm/gfsm/src/programs/test6.tfst b/gfsm/gfsm/src/programs/test6.tfst
deleted file mode 100644
index 4c306da..0000000
--- a/gfsm/gfsm/src/programs/test6.tfst
+++ /dev/null
@@ -1,12 +0,0 @@
-0 1 0 0 0
-0 2 0 0 0
-0 3 0 0 0
-3 4 0 0 0
-1 10 1 1 0
-2 20 2 2 0
-4 5 4 4 0
-4 1 4 4 1
-10
-20
-5
-
diff --git a/gfsm/gfsm/src/programs/test7.lab b/gfsm/gfsm/src/programs/test7.lab
deleted file mode 100644
index 0cedd17..0000000
--- a/gfsm/gfsm/src/programs/test7.lab
+++ /dev/null
@@ -1,4 +0,0 @@
-<eps> 0
-a 1
-b 2
-c 3
diff --git a/gfsm/gfsm/src/programs/test7.tfst b/gfsm/gfsm/src/programs/test7.tfst
deleted file mode 100644
index c96f7e6..0000000
--- a/gfsm/gfsm/src/programs/test7.tfst
+++ /dev/null
@@ -1,2 +0,0 @@
-0 1 1 1 0
-1 0
diff --git a/gfsm/gfsm/src/programs/test8.tfst b/gfsm/gfsm/src/programs/test8.tfst
deleted file mode 100644
index 9009985..0000000
--- a/gfsm/gfsm/src/programs/test8.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 1 1 1 0
-0 2 2 2 0
-1 0
-2 0
diff --git a/gfsm/gfsm/src/programs/test9.tfst b/gfsm/gfsm/src/programs/test9.tfst
deleted file mode 100644
index 47867d2..0000000
--- a/gfsm/gfsm/src/programs/test9.tfst
+++ /dev/null
@@ -1,4 +0,0 @@
-0 0
-1 0
-2 0
-3 0
diff --git a/gfsm/gfsm/src/programs/testa.tfsa b/gfsm/gfsm/src/programs/testa.tfsa
deleted file mode 100644
index f2926c5..0000000
--- a/gfsm/gfsm/src/programs/testa.tfsa
+++ /dev/null
@@ -1,6 +0,0 @@
-0 0 0
-0 1 1 10
-0
-1 2 2 20
-1 100
-2 200
diff --git a/gfsm/gfsm/src/programs/testa.tfst b/gfsm/gfsm/src/programs/testa.tfst
deleted file mode 100644
index 1078be4..0000000
--- a/gfsm/gfsm/src/programs/testa.tfst
+++ /dev/null
@@ -1,6 +0,0 @@
-0 0 0
-0 1 1 1
-0
-1 2 2 2 20
-1 100
-2 200
diff --git a/gfsm/gfsm/src/programs/testrn.tfst b/gfsm/gfsm/src/programs/testrn.tfst
deleted file mode 100644
index 0bcf201..0000000
--- a/gfsm/gfsm/src/programs/testrn.tfst
+++ /dev/null
@@ -1,3 +0,0 @@
-300 100 1 1
-100 200 2 2
-200 0
diff --git a/gfsm/gfsm/src/programs/vit-in.lab b/gfsm/gfsm/src/programs/vit-in.lab
deleted file mode 100644
index 5c74e25..0000000
--- a/gfsm/gfsm/src/programs/vit-in.lab
+++ /dev/null
@@ -1,3 +0,0 @@
-<eps> 0
-a 1
-b 2
diff --git a/gfsm/gfsm/src/programs/vit-out.lab b/gfsm/gfsm/src/programs/vit-out.lab
deleted file mode 100644
index bd1493c..0000000
--- a/gfsm/gfsm/src/programs/vit-out.lab
+++ /dev/null
@@ -1,7 +0,0 @@
-<eps> 0
-a_A 1
-a_B 2
-b_A 3
-b_B 4
-<eps>_A 5
-<eps>_B 6
diff --git a/gfsm/gfsm/src/programs/vit-q.lab b/gfsm/gfsm/src/programs/vit-q.lab
deleted file mode 100644
index 0fbd83b..0000000
--- a/gfsm/gfsm/src/programs/vit-q.lab
+++ /dev/null
@@ -1,3 +0,0 @@
-<BOS> 0
-A 1
-B 2
diff --git a/gfsm/gfsm/src/programs/vit.tfst b/gfsm/gfsm/src/programs/vit.tfst
deleted file mode 100644
index e92ec55..0000000
--- a/gfsm/gfsm/src/programs/vit.tfst
+++ /dev/null
@@ -1,17 +0,0 @@
-<BOS> A a a_A 1
-<BOS> A b b_A 1
-<BOS> B a a_B 1
-<BOS> B b b_B 1
-<BOS> 1
-
-A A a a_A .4
-A A b b_A .3
-A B a a_B .2
-A B b b_B .1
-A 1
-
-B B b b_B .4
-B A a a_A .3
-B A b b_A .2
-B B a a_B .1
-B 1
diff --git a/gfsm/gfsm/src/programs/vit2.tfst b/gfsm/gfsm/src/programs/vit2.tfst
deleted file mode 100644
index 879b3a1..0000000
--- a/gfsm/gfsm/src/programs/vit2.tfst
+++ /dev/null
@@ -1,15 +0,0 @@
-<BOS> A <eps> <eps>_A .4
-<BOS> A a a_A .3
-<BOS> B <eps> <eps>_B .2
-<BOS> B b b_B .1
-<BOS> 1
-
-A A a a_A .7
-A B <eps> <eps>_B .2
-A B b b_B .1
-A 1
-
-B B b b_B .7
-B A a a_A .2
-B A <eps> <eps>_A .1
-B 1