• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

man/H03-May-2022-8,3668,027

Makefile.amH A D03-Dec-20212.8 KiB10374

Makefile.inH A D03-May-202271.6 KiB2,0121,895

READMEH A D03-Dec-20212.7 KiB6048

autcross.ccH A D03-Dec-202125.3 KiB905791

autfilt.ccH A D03-Dec-202157.1 KiB1,7301,596

common_aoutput.ccH A D03-Dec-202126.8 KiB858766

common_aoutput.hhH A D03-Dec-20216 KiB217149

common_color.ccH A D03-Dec-20212.7 KiB10369

common_color.hhH A D03-Dec-20211.1 KiB329

common_conv.ccH A D03-Dec-20212.3 KiB9367

common_conv.hhH A D03-Dec-20211.2 KiB339

common_cout.ccH A D03-Dec-20211.7 KiB6232

common_cout.hhH A D03-Dec-2021857 243

common_file.ccH A D03-Dec-20211.6 KiB5732

common_file.hhH A D03-Dec-20211.4 KiB5526

common_finput.ccH A D03-Dec-202112 KiB392283

common_finput.hhH A D03-Dec-20212.1 KiB8647

common_hoaread.ccH A D03-Dec-20212.8 KiB9565

common_hoaread.hhH A D03-Dec-20214 KiB14698

common_output.ccH A D03-Dec-202112.1 KiB442384

common_output.hhH A D03-Dec-20214.2 KiB9261

common_post.ccH A D03-Dec-202111 KiB287247

common_post.hhH A D03-Dec-20211.5 KiB4015

common_r.ccH A D03-Dec-20211.2 KiB4119

common_r.hhH A D03-Dec-20212 KiB4822

common_range.ccH A D03-Dec-20212.4 KiB8548

common_range.hhH A D03-Dec-20212.1 KiB5726

common_setup.ccH A D03-Dec-20215.8 KiB214144

common_setup.hhH A D03-Dec-20211.3 KiB3911

common_sys.hhH A D03-Dec-2021868 254

common_trans.ccH A D03-Dec-202128.7 KiB1,005845

common_trans.hhH A D03-Dec-20214.5 KiB178110

dstar2tgba.ccH A D03-Dec-20214.5 KiB165121

genaut.ccH A D03-Dec-20214.3 KiB162119

genltl.ccH A D03-Dec-202112.2 KiB360303

ltl2tgba.ccH A D03-Dec-20215.8 KiB201141

ltl2tgta.ccH A D03-Dec-20217.3 KiB252191

ltlcross.ccH A D03-Dec-202159.2 KiB1,8481,638

ltldo.ccH A D03-Dec-202115.2 KiB503414

ltlfilt.ccH A D03-Dec-202127.8 KiB862757

ltlgrind.ccH A D03-Dec-20216.5 KiB207167

ltlsynt.ccH A D03-Dec-202124.4 KiB766656

options.pyH A D03-Dec-20212.4 KiB7237

randaut.ccH A D03-Dec-202113.8 KiB418331

randltl.ccH A D03-Dec-202110.8 KiB328265

spot-x.ccH A D03-Dec-202114.7 KiB265236

spot.ccH A D03-Dec-20213.3 KiB8455

README

1This directory contains the source of some command-line tools that
2expose some of Spot's algorithms to Unix users.
3
4Man pages are generated from the --help output of each tool,
5supplemented by any text in the man/*.x files.  Usually the extra text
6contains either some bibliographical references, some formal
7definitions or some examples that are too long for --help.  Having a
8few short examples at the end of --help is good.
9
10This directory also builds some non-installed binaries, like spot-x,
11whose purpose is just to generate a man-page with the same format as
12the other man pages (this includes keeping the version number
13up-to-date).
14
15There is also a script called 'options.py' that summerizes how the
16different short options are used among the tools.
17
18Routines that are shared by multiple command-line tools are stored in
19files called common_*.{cc,hh}.
20
21
22Recommendations when adding new tools or features:
23--------------------------------------------------
24
25 - Tools should be designed to work on multiple inputs (e.g., read
26   different outputs from multiple files, and accept many inputs from
27   the same file, including stdin).  They should also all be designed
28   to produce several outputs, usually one per input.  This way they
29   can be piped one onto the other easily.
30
31 - When naming an option, seek inspiration from the POSIX standard, or
32   from GNU extensions.  For instance ltlfilt and autfilt both have a
33   -v option to invert the filter; this is inspired from grep's -v
34   option.  The long version of this option (--invert-match) is also
35   the same as in grep.
36
37 - When adding a new option, implement only the --long-option by
38   default.  Do not add a short version unless
39     (1) you are sure it will be frequently used interactively
40         (if it is only used in scripts, then a long option is enough)
41     (2) this option can be shared by multiple tools.
42
43 - As much as possible, use the same option names across tools.  Use
44   the script options.py in this directory to check what short options
45   are used.  It's OK if the same short option correspond to different
46   long names in the various tools, as long as the intent is similar.
47   For instance -n has different long options depending on the tool:
48     autfilt -n N     means   --max-count=N
49     randltl -n N     means   --formulas=N
50     randaut -n N     means   --automata=N
51  but in all cases, the intent is to specify the number of items
52  to output.
53
54 - In the --help output, all options should appear in a named
55   section (like "Input options:", "Output options:"), and those
56   sections are best ordered according to one's mental view
57   of how the tool works: first, it reads the input, then
58   it processes it, then it outputs the result.  Keep --help
59   and --version at the very bottom.
60