wyg(1) generate config-file parsers and automate use of getopt_long


wyg [options] [file]


Where's Your Grammar (or wyg) is a config-file-parser generator that automates the use of lex(1), yacc(1), and GNU getopt_long(3) so that you can worry about more important parts of your code.

wyg reads a configuration file describing the configuration variables available to your program and generates a number of output files. The simplest way of running wyg is simply to type:


This will read the file wyg.conf and generate the output files. If you want to use a different configuration file for input to wyg, you can specify that on the wyg command line:

     wyg foo.conf

wyg provides a few options that help automate the generation of the wyg library. To automatically build libwyg.a, type:

     wyg --make

This will compile libwyg.a using the rules in Makefile.wyg. If you also want to generate a simple test program to make sure everything is working as expected, you can use the --maketest option:

     wyg --maketest

This will build a simple program called wygtest that, when run, will display the value of all your configuration variables. The source code to wygtest can be found in /usr/doc/wyg/examples/wygtest.c.

This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page. Instead, it has documentation in HTML format; see below.


You tell wyg what configuration variables your code will use via the wyg configuration file (usually called wyg.conf). This is a text file that can include blank lines, comments (lines beginning with consist of five fields, seperated by whitespace:

   Name Letter Type Default Help-Text

The name of the configuration variable. This can consist of letters, numbers, and "_". It must start with a letter or with "_".
The short version of the variable for use on the command line. If this variable has no short equivalent, set this field to "-".
The data type of this variable. This can be int, string, float or bool.
The default value of this variable. This field may not contain any whitespace; thus, strings values are currently limited to single-word defaults. This will probably change soon.
Help text for display to the user. This is a free-form field that can contain anything you want (except for embedded newlines).


The programs follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options are included below. For a complete description, see the HTML file.
-h, --help
Show summary of options.
-v, --version
Show version of program.


This manual page was written by James R. Van Zandt <[email protected]>, for the Debian GNU/Linux system (but may be used by others).