Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 1 | .\" Copyright (c) 1988 Massachusetts Institute of Technology, |
| 2 | .\" Student Information Processing Board. All rights reserved. |
| 3 | .\" |
| 4 | .\" $Header$ |
| 5 | .\" |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 6 | .TH COMPILE_ET 1 "30 Mar 1998" SIPB |
Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 7 | .SH NAME |
| 8 | compile_et \- error table compiler |
| 9 | .SH SYNOPSIS |
| 10 | .B compile_et |
| 11 | file |
| 12 | .SH DESCRIPTION |
| 13 | .B Compile_et |
| 14 | converts a table listing error-code names and associated messages into |
| 15 | a C source file suitable for use with the |
| 16 | .IR com_err (3) |
| 17 | library. |
| 18 | |
| 19 | The source file name must end with a suffix of ``.et''; the file |
| 20 | consists of a declaration supplying the name (up to four characters |
| 21 | long) of the error-code table: |
| 22 | |
| 23 | .B error_table |
| 24 | .I name |
| 25 | |
| 26 | followed by up to 256 entries of the form: |
| 27 | |
| 28 | .B error_code |
| 29 | .I name, |
| 30 | " |
| 31 | .I string |
| 32 | " |
| 33 | |
| 34 | and a final |
| 35 | |
| 36 | .B end |
| 37 | |
| 38 | to indicate the end of the table. |
| 39 | |
| 40 | The name of the table is used to construct the name of a subroutine |
| 41 | .I initialize_XXXX_error_table |
| 42 | which must be called in order for the |
| 43 | .I com_err |
| 44 | library to recognize the error table. |
| 45 | |
| 46 | The various error codes defined are assigned sequentially increasing |
| 47 | numbers (starting with a large number computed as a hash function of |
| 48 | the name of the table); thus for compatibility it is suggested that |
| 49 | new codes be added only to the end of an existing table, and that no |
| 50 | codes be removed from tables. |
| 51 | |
| 52 | The names defined in the table are placed into a C header file with |
| 53 | preprocessor directives defining them as integer constants of up to |
| 54 | 32 bits in magnitude. |
| 55 | |
| 56 | A C source file is also generated which should be compiled and linked |
| 57 | with the object files which reference these error codes; it contains |
| 58 | the text of the messages and the initialization subroutine. Both C |
| 59 | files have names derived from that of the original source file, with |
| 60 | the ``.et'' suffix replaced by ``.c'' and ``.h''. |
| 61 | |
| 62 | A ``#'' in the source file is treated as a comment character, and all |
| 63 | remaining text to the end of the source line will be ignored. |
| 64 | |
| 65 | .SH BUGS |
| 66 | |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 67 | Since the original |
Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 68 | .B compile_et |
| 69 | uses a very simple parser based on |
Theodore Ts'o | f72df23 | 2000-12-04 23:49:07 +0000 | [diff] [blame] | 70 | .IR yacc (1), |
| 71 | and this current version of |
Theodore Ts'o | e5fa0e3 | 1998-04-01 02:18:45 +0000 | [diff] [blame] | 72 | .B compile_et |
| 73 | uses an awk/sed combination of scripts, |
Theodore Ts'o | 3839e65 | 1997-04-26 13:21:57 +0000 | [diff] [blame] | 74 | its error recovery leaves much to be desired. |
| 75 | |
| 76 | .\" .IR for manual entries |
| 77 | .\" .PP for paragraph breaks |
| 78 | |
| 79 | .SH "SEE ALSO" |
| 80 | com_err (3). |
| 81 | |
| 82 | Ken Raeburn, "A Common Error Description Library for UNIX". |