Uil(3X) UNIX System V Uil(3X)
NAME
Uil - Invokes the UIL compiler from within an application
SYNOPSIS
#include <uil/UilDef.h>
Uilstatustype Uil (command_desc, compile_desc, message_cb,
message_data, status_cb, status_data)
Uilcommandtype *command_desc;
Uilcompiledesctype*compile_desc;
Uilcontinuetype (*message_cb) ();
char *message_data;
Uilcontinuetype (*status_cb) ();
char *status_data;
VERSION
This page documents version 1.2 of the Motif library.
DESCRIPTION
The Uil function provides a callable entry point for the UIL
compiler. The Uil callable interface can be used to process
a UIL source file and to generate UID files, as well as
return a detailed description of the UIL source module in
the form of a symbol table (parse tree).
command_desc Specifies the uil command line.
compile_desc Returns the results of the compilation.
message_cb Specifies a callback function that is
called when the compiler encounters
errors in the UIL source.
message_data Specifies user data that is passed to
the message callback function
(message_cb). Note that this argument is
not interpreted by UIL, and is used
exclusively by the calling application.
status_cb Specifies a callback function that is
called to allow X applications to
service X events such as updating the
screen. This function is called at
various check points, which have been
hard coded into the UIL compiler. The
status_update_delay argument in
command_desc specifies the number of
check points to be passed before the
status_cb function is invoked.
Page 1 (printed 4/30/98)
Uil(3X) UNIX System V Uil(3X)
status_data Specifies user data that is passed to
the status callback function
(status_cb). Note that this argument is
not interpreted by the UIL compiler, and
is used exclusively by the calling
application.
The data structures Uilcommandtype and
Uilcompiledesctype are detailed below.
typedef struct Uil_command_type {
char *source_file;
/* single source to compile */
char *resource_file; /* name of output file */
char *listing_file; /* name of listing file */
unsigned int *include_dir_count;
/* number of dirs. in include_dir */
char *((*include_dir) []);
/* dir. to search for include files */
unsigned listing_file_flag: 1;
/* produce a listing */
unsigned resource_file_flag: 1;
/* generate UID output */
unsigned machine_code_flag: 1;
/* generate machine code */
unsigned report_info_msg_flag: 1;
/* report info messages */
unsigned report_warn_msg_flag: 1;
/* report warnings */
unsigned parse_tree_flag: 1;
/* generate parse tree */
unsigned int status_update_delay;
/* number of times a status point is */
/* passed before calling status_cb */
/* function 0 means called every time */
char *database;
/* name of database file */
unsigned database_flag: 1;
/* read a new database file */
unsigned use_setlocale_flag: 1;
/* enable calls to setlocale */
};
typedef struct Uil_compile_desc_type {
unsigned int compiler_version;
/* version number of compiler */
unsigned int data_version;
/* version number of structures */
char *parse_tree_root; /* parse tree output */
unsigned int message_count [Uil_k_max_status+1];
/* array of severity counts */
Page 2 (printed 4/30/98)
Uil(3X) UNIX System V Uil(3X)
};
Following is a description of the message callback function
specified by message_cb:
Uilcontinuetype (*message_cb) (message_data, message_number,
severity, msg_buffer, src_buffer, ptr_buffer, loc_buffer,
message_count)
char *message_data;
int message_number;
int severity;
char *msg_buffer, *src_buffer;
char *ptr_buffer, *loc_buffer;
int message_count[];
Specifies a callback function that UIL invokes instead of
printing an error message when the compiler encounters an
error in the UIL source. The callback should return one of
these values:
Uilkterminate Tells UIL to terminate processing of the
source file.
Uilkcontinue Tells UIL to continue processing the
source file.
Following are the arguments:
message_data Data supplied by the application as the
message_data argument to the Uil
function. UIL does not interpret this
data in any way; it just passes it to
the callback.
message_number An index into a table of error messages
and severities, for internal use by UIL.
severity An integer that indicates the severity
of the error. The possible values are
the status constants returned by the Uil
function. See the "RETURN VALUE"
section below.
msg_buffer A string that describes the error.
src_buffer A string consisting of the source line
where the error occurred. This is not
Page 3 (printed 4/30/98)
Uil(3X) UNIX System V Uil(3X)
always available; the argument is then
NULL.
ptr_buffer A string consisting of whitespace and a
printing character in the character
position corresponding to the column of
the source line where the error
occurred. This string may be printed
beneath the source line to provide a
visual indication of the column where
the error occurred. This is not always
available; the argument is then NULL.
loc_buffer A string identifying the line number and
file of the source line where the error
occurred. This is not always available;
the argument is then NULL.
message_count An array of integers containing the
number of diagnostic messages issued
thus far for each severity level. To
find the number of messages issued for
the current severity level, use the
severity argument as the index into this
array.
Following is a description of the status callback function
specified by status_cb:
Uilcontinuetype (*status_cb) (status_data, percent_complete,
lines_processed, current_file, message_count)
char *status_data;
int percent_complete;
int lines_processed;
char *current_file;
int message_count[];
Specifies a callback function that is invoked to allow X
applications to service X events such as updating the
screen. The callback should return one of these values:
Uilkterminate Tells UIL to terminate processing of the
source file.
Uilkcontinue Tells UIL to continue processing the
source file.
Page 4 (printed 4/30/98)
Uil(3X) UNIX System V Uil(3X)
Following are the arguments:
status_data Data supplied by the application as the
status_data argument to the Uil
function. UIL does not interpret this
data in any way; it just passes it to
the callback.
percent_complete An integer indicating what percentage of
the current source file has been
processed so far.
lines_processed An integer indicating how many lines of
the current source file have been read
so far.
current_file A string containing the pathname of the
current source file.
message_count An array of integers containing the
number of diagnostic messages issued
thus far for each severity level. To
find the number of messages issued for a
given severity level, use the severity
level as the index into this array. The
possible severity levels are the status
constants returned by the Uil function.
See the "RETURN VALUE" section below.
RETURN VALUE
This function returns one of these status return constants:
Uilksuccessstatus The operation succeeded.
Uilkinfostatus The operation succeeded, and an
informational message is returned.
Uilkwarningstatus The operation succeeded, and a
warning message is returned.
Uilkerrorstatus The operation failed due to an
error.
Uilkseverestatus The operation failed due to an
error.
RELATED INFORMATION
UilDumpSymbolTable(3X) and uil(1X).
Page 5 (printed 4/30/98)