COMPILE_ET(1)              OpenBSD Reference Manual              COMPILE_ET(1)

NAME
     compile_et - error table compiler

SYNOPSIS
     compile_et file

DESCRIPTION
     compile_et converts a table listing error-code names and associated mes-
     sages into a C source file suitable for use with the com_err(3) library.

     The source file name must end with a suffix of ``.et''; the file consists
     of headers and declarations supplying the name (up to four characters
     long) of the error-code table.

     The file may have these declarations:

     id string
             Specify string as a revision control system tag.

     prefix string
             Prepends string to all error codes specified in the file.

     error_table name
             Specifies the name of the error table.

     index number
             Sets the assigned error number for the next entry.

     error_code name, "string"
             Declares an error code called name with description string; up to
             256 error codes are allowed.

     end     Indicates the end of the table.

     The name of the table is used to construct the name of a subroutine
     initialize_XXXX_error_table which must be called in order for the
     com_err(3) library to recognize the error table.

     The various error codes defined are assigned sequentially increasing num-
     bers (starting with a large number computed as a hash function of the
     name of the table); thus for compatibility it is suggested that new codes
     be added only to the end of an existing table, and that no codes be re-
     moved from tables.

     The names defined in the table are placed into a C header file with pre-
     processor directives defining them as integer constants of up to 32 bits
     in magnitude.

     A C source file is also generated which should be compiled and linked
     with the object files which reference these error codes; it contains the
     text of the messages and the initialization subroutine.  Both C files
     have names derived from that of the original source file, with the
     ``.et'' suffix replaced by ``.c'' and ``.h''.

     A hash mark (`#') in the source file is treated as a comment character;
     subsequent characters to the end of the source line will be ignored.

SEE ALSO
     yacc(1), com_err(3)

     Ken Raeburn, A Common Error Description Library for UNIX.

BUGS
     Since compile_et uses a very simple parser based on yacc(1), its error
     recovery leaves much to be desired.

OpenBSD 2.9                    November 22, 1988                             2
