Uil(3Xm)

NAME
Uil - invokes the uil compiler from within an application.

SYNOPSIS
#include <uil/UilDef.h>
Uil_status_type Uil(command_desc, compile_desc, message_cb, message_data,
status_cb, status_data)
Uil_command_type *command_desc;
Uil_compile_desc_type *compile_desc;
Uil_continue_type (*message_cb) ();
char *message_data;
Uil_continue_type (*status_cb) ();
char *status_data;

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.

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 Uil_command_type and Uil_compile_desc_type 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 directories in */
/* include_dir array */
char *((*include_dir) []); /* directory 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 */
};

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 /*
};

RETURN VALUE

This function returns one of these status return constants:

Uil_k_success_status
    The operation succeeded.

Uil_k_info_status
    The operation succeeded, and an informational message is returned.

Uil_k_warning_status
    The operation succeeded, and a warning message is returned.

Uil_k_error_status
    The operation failed due to an error.

Uil_k_severe_status
    The operation failed due to an error.

RELATED INFORMATION
UilDumpSymbolTable(3Xm), uil(1X)