Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ Uil(3X) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought



Uil(3X)                          UNIX System V                          Uil(3X)


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.




10/89                                                                    Page 1







Uil(3X)                          UNIX System V                          Uil(3X)


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

      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                                                                    10/89







Uil(3X)                          UNIX System V                          Uil(3X)


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

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













10/89                                                                    Page 3







Uil(3X)                          UNIX System V                          Uil(3X)


      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:

      Uil_continue_type (*status_cb) (status_data, percent_complete,
      lines_processed, current_file, message_count)
                     char*status_data;
                     intpercent_complete;
                     intlines_processed;
                     char*current_file;
                     intmessage_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.














Page 4                                                                    10/89







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:

      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(3X) and uil(1X).













10/89                                                                    Page 5





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026