Uil(3X)

Uil --Invokes the UIL compiler from within an application

As shipped in IRIX 6.5.30. Unchanged since IRIX 6.5.

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;


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 gen-
     erate 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 call-
                         back  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 com-
                         piler.   The  status_update_delay  argument   in   com-
                         mand_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  call-
                         back  function  (status_cb). Note that this argument is
                         not interpreted by the UIL compiler, and is used exclu-
                         sively 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 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 */
     };


     Following is a description of the message callback  function  specified  by
     message_cb:

     Uil_continue_type (*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 call-
     back should return one of these values:


     Uil_k_terminate     Tells UIL to terminate processing of the source file.

     Uil_k_continue      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 call-
                         back.

     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 always available;  the  argument
                         is then NULL.

     ptr_buffer          A  string consisting of whitespace and a printing char-
                         acter 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 er-
                         ror  occurred.  This is not always available; the argu-
                         ment is then NULL.

     loc_buffer          A string identifying the line number and  file  of  the
                         source  line where the error occurred.  This is not al-
                         ways available; the argument is then NULL.

     message_count       An array of integers containing the number of  diagnos-
                         tic  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:

     Uil_continue_type (*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:


     Uil_k_terminate     Tells UIL to terminate processing of the source file.

     Uil_k_continue      Tells UIL to continue processing the source file.


     Following are the arguments:


     status_data         Data supplied by the application as the status_data ar-
                         gument  to  the  Uil  function.  UIL does not interpret
                         this data in any way; it just passes it  to  the  call-
                         back.

     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  diagnos-
                         tic  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:


     Uil_k_success_status     The operation succeeded.

     Uil_k_info_status        The operation succeeded, and an informational mes-
                              sage 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(3X) and uil(1X).

                                                                         Uil(3X)