compile_et - error table compiler
compile_et file
compile_et converts a table listing error-code names and associated messages
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 numbers
(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 removed
from tables.
The names defined in the table are placed into a C header
file with preprocessor
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.
yacc(1), com_err(3)
Ken Raeburn, A Common Error Description Library for UNIX.
Since compile_et uses a very simple parser based on yacc(1),
its error
recovery leaves much to be desired.
OpenBSD 3.6 November 22, 1988
[ Back ] |