1 UIL
 Invokes the VMS DECwindows UIL compiler to compile a User  Interface
 Language  (UIL) specification.  A UIL specification is a description
 of the windowing interface to a VMS DECwindows application.  The UIL
 command  and  the User Interface Language are described in detail in
 the "OSF/Motif Programmer's Guide".

 Format of UIL command line:

       UIL file_spec
2 /MOTIF          

 Directs the system to use the  MOTIF  Toolkit  UIL  compiler.   This
 switch  is provided for backward compability.  the default is to use
 the MOTIF Toolkit UIL compiler.
3 /WIDGET_META_DESCRIPTION[=file-spec]          

 Directs the compiler to use a widget  meta  description  file.   The
 default file specification is DECW$SYSTEM_DEFAULTS:*.WMD.

 The default is to use the  MOTIF  Toolkit  UIL  compiler's  internal
 tables.
2 /WIDGET_META_DESCRIPTION[=file-spec]          

 Directs the compiler to use a widget  meta  description  file.   The
 default file specification is DECW$SYSTEM_DEFAULTS:*.WMD.

 The default is to use the  MOTIF  Toolkit  UIL  compiler's  internal
 tables when the /MOTIF qualifier is used.
2 /LOCALE

 Directs the compiler to enable the use of setlocale and the creation
 of localized Compound Strings (-s option).
2 /LIST[=file-spec]          
 Negative form:  /NOLIST

 Controls whether the compiler produces a listing file.  The  default
 output file type is .LIS.

 /LIST is the batch default and /NOLIST is the interactive default.
2 /MACHINE_CODE              
 Negative form:  /NOMACHINE_CODE

 Controls whether the listing produced by the compiler  includes  the
 User   Interface   Description   (UID)  code  generated  during  the
 compilation.   You  must  include  the  /LIST  qualifier  with   the
 /MACHINE_CODE qualifier on the command line.

 The default is /NOMACHINE_CODE.
2 /OUTPUT[=file-spec]        
 Negative form:  /NOOUTPUT

 Controls whether the compiler produces a User Interface  Description
 (UID) file.  The default output file type is .UID.

 Specify /NOOUTPUT when you want to compile a specification to obtain
 only  a  listing,  or  when  you  want  the  compiler  to  check the
 specification for errors only and to display diagnostic messages.

 The default is /OUTPUT.
2 /WARNINGS[=(msg_type,...)] 
 Negative form:  /NOWARNINGS

 Controls  whether  the  compiler  prints  messages  for   diagnostic
 warnings.

   You can specify one or both of the following for msg_type:
   
   NOINFORMATIONALS  Do not print informational messages
   NOWARNINGS        Do not print warning messages

 The default is to print  both  informational  and  warning  messages
 (/WARNINGS).
2 Parameters                 
 file-spec

 Specifies a single UIL specification file to be  compiled.   If  you
 omit  the  file  type,  the  UIL compiler uses the default file type
 .UIL.

2 Compile_Time_Errors        
3 ARG_COUNT           
 ERROR:   The  declaration  of  the  marked  procedure  specified   a
 different  number  of  arguments  than are present in this procedure
 reference.

 USER ACTION:  Check that you are calling the correct  function.   If
 you intend to call the procedure with a varying number of arguments,
 omit the argument list in the procedure declaration.
3 ARG_TYPE            
 ERROR:   The  declaration  of  the  marked  procedure  specified   a
 different  type  of  argument  than  is  present  in  this procedure
 reference.

 USER ACTION:  Check that you are passing the correct argument to the
 correct  function.  If you intend to call the procedure with varying
 argument types, declare the procedure specifying ANY for the type of
 the argument.
3 BACKSLASH_IGNORED   
 ERROR:  A backslash was followed by an unknown escape character.   \
 is the escape character in UIL.  A selected set of single characters
 can follow a \ such as \n for newline or \\  to  insert  a  \.   The
 character following the \ was not one of the selected set.

 USER ACTION:  If you want to add  a  backslash  use  \\.   Otherwise
 consult the documentation for the supported escape sequences.
3 BUG_CHECK           
 SEVERE:  The compiler diagnosed an internal error.

 USER ACTION:  Submit an SPR.
3 CIRCULAR_DEF        
 ERROR:  The indicated  object  is  referenced  as  a  descendant  of
 itself, either within its own definition or within the definition of
 one of the objects in the widget hierarchy which it controls.

 USER ACTION:  Change the definition of the indicated object so  that
 it is not a descendant of itself.

3 CONTROL_CHAR        
 ERROR:  The compiler encountered a illegal control character in  the
 specification  file.   The  decimal  value of the character is given
 between the \ \ characters.

 USER ACTION:  Replace the character with the sequence  specified  in
 the  message  (for  example, \3\ if the control character's internal
 value is 3).  UIL provides several built-in control characters  such
 as  \n  and  \r  for  newline and carriage return.  Consult the "VMS
 DECwindows User Interface Language Reference Manual" for a  complete
 list of supported escape sequences.
3 CREATE_PROC_INV      
 ERROR:  You specified a  creation  procedure  when  referring  to  a
 widget.   You can specify a creation procedure only when you declare
 the widget.

 USER ACTION:  Remove the procedure clause following the widget type.
3 CREATE_PROC_REQ      
 ERROR:  When defining a user-defined widget, you  must  specify  the
 name  of  the low-level creation routine for creating an instance of
 this widget.

 USER ACTION:  Insert a procedure clause following the widget type in
 the  widget  declaration.   You  also  need  to declare the creation
 procedure using a procedure declaration.  For example:

         procedure my_list_box_creation_proc();

         object list_box1: 
             user_defined procedure my_list_box_creation_proc()
               { arguments ... };
        
3 CTX_REQ             
 ERROR:  At the point marked in the specification, one type of object
 (such  as  a  widget)  is required and your specification supplied a
 different type of object (such as value).

 USER ACTION:  Check for misspelling or that you have referred to the
 intended object.
3 DUP_LETTER          
 ERROR:  Each of the letters used to represent a  color  in  a  color
 table must be unique.  If not, that letter in a icon would represent
 more than one color; each pixel can have only one  color  associated
 with it at a time.  The letter marked has been assigned to more than
 one color.

 USER ACTION:  Choose which color the  letter  is  to  represent  and
 remove or assign a new character to any duplicates.
3 DUP_LIST            
 ERROR:  A  widget  or  gadget  declaration  can  have  at  most  one
 arguments list, one callbacks list, and one controls list.

 USER ACTION:  If you wish to specify multiple  lists  of  arguments,
 controls,  and  callbacks,  you  can  do  so  within  one list.  For
 example:
        arguments { arguments_list1; arguments_list2; };
3 GADGET_NOT_SUP      
 WARNING:  The indicated  object  type  does  not  support  a  gadget
 variant;  only  a  widget variant is supported for this object type.
 The UIL compiler ignores the gadget indication, and creates  widgets
 of this object type.

 USER ACTION:  Specify that this object type is a widget instead of a
 gadget.
3 ICON_LETTER         
 ERROR:  You have specified a color to be used in an icon that is not
 in  that icon's color table.  The invalid color is identified in the
 message by displaying  the  letter  used  to  represent  that  color
 between  \  \  .  This letter was not defined in the specified color
 table.

 USER ACTION:  Either add the color to the icon's color table or  use
 a  character  representing  a color in the color table.  The default
 color table defines " " as background and "*" as foreground.
3 ICON_WIDTH          
 ERROR:  The icons supported by  UIL  are  rectangular  (that  is,  x
 pixels  wide  by  y  pixels high).  As a result, each of the strings
 used to represent a row of pixels in an  icon  must  have  the  same
 length.   The  specified  row  does  not have the same length as the
 first row.

 USER ACTION:  Make all the strings in the  icon  function  the  same
 length.
3 INV_MODULE          
 ERROR:  The structure of the module is incorrect.

 USER ACTION:  If there are any syntax errors reported, fix them  and
 recompile.  If the error occurs before the first object declaration,
 check the syntax of the module header for  unwanted  ";"  characters
 after  the  module clauses, for example.  If the error occurs at the
 end of the module, check that the module concludes with  the  clause
 "end module;".
3 LIST_ITEM           
 ERROR:  The indicated list item is not of the type required  by  the
 list.   Arguments  lists  must  contain  argument entries, callbacks
 lists must contain callback entries, and controls lists must contain
 control entries.

 USER ACTION:  Check the syntax for the type of list  entry  that  is
 required in this context and change the indicated list item.
3 LISTING_OPEN        
 SEVERE:  The compiler could not create the listing file noted in the
 message.

 USER ACTION:  Check that you have write access to the directory  you
 specified to hold the listing file.
3 LISTING_WRITE       
 SEVERE:  The compiler could not write a line into the  listing  file
 noted in the message.

 USER ACTION:  Check to see that there is adequate space on the  disk
 specified to hold the listing file.
3 NAME_TOO_LONG       
 ERROR:   The  UIL  compiler  encountered  a  name  longer  than   31
 characters.   The  compiler  truncated  the  name to the leftmost 31
 characters.

 USER ACTION:  Shorten the name in the UIL module source.
3 NAMES               
 ERROR:  The case-sensitivity clause, if specified, must be the first
 clause  following  the  module's  name.   You  have inserted another
 module clause before this clause.

 USER   ACTION:    Reorder   the   module   clauses   so   that   the
 case-sensitivity clause is first.
3 NEVER_DEF           
 ERROR:  Certain UIL objects such  as  gadgets  and  widgets  can  be
 referred  to  before they are defined.  The marked object is such an
 object, however, the compiler never found the object's declaration.

 USER  ACTION:   Check   for   misspelling.    If   the   module   is
 case-sensitive,  the  spellings  of  names  in  declarations  and in
 references must match exactly.
3 NO_UID              
 INFORMATIONAL:  If the compiler reported error or severe diagnostics
 (that  is,  any of the diagnostic abbreviations starting with %UIL-E
 or %UIL-F), a UID file is not created.  This diagnostic informs  you
 that the compiler did not produce a UID file.

 USER ACTION:  Fix the problems reported by the compiler.
3 NONPVT              
 ERROR:  A private value is one that is not imported or exported.  In
 the  context  marked  by the message, only a private value is legal.
 Situations where this message is issued include:  defining one value
 in  terms  of  another;  and  arguments to functions.  In general, a
 value must be private when the  compiler  must  know  the  value  at
 compile  time.   Exported  values  are disallowed in these contexts,
 even though  a  value  is  present,  because  that  value  could  be
 overridden at run time.

 USER ACTION:  Change the value to be private.
3 NOT_IMPL            
 ERROR:   You  are  using  a  feature  of  UIL  that  has  not   been
 implemented.

 USER ACTION:  Try an alternate technique.
3 OBJ_TYPE            
 ERROR:  Most arguments take values of a specific  type.   The  value
 specified is not correct for this argument.

 USER ACTION:  The message indicates the expected type  of  argument.
 Check  that  you  have  specified  the  intended  value and that you
 specified the correct argument.
3 OPERAND_TYPE        
 ERROR:  The indicated operand is not of a type that is supported  by
 this operator.

 USER ACTION:  Check the definition of the operator and make sure the
 type of the operand you specify is supported by the operator.

3 OUT_OF_MEMORY       
 SEVERE:  The compiler ran out of virtual memory.

 USER ACTION:  Reduce the size of your application.
3 OUT_RANGE           
 ERROR:  The value specified is outside the legal range of its type.

 USER ACTION:  Change the UIL module source.
3 PREV_ERROR          
 SEVERE:  Errors encountered during the compilation have  caused  the
 compiler to abort.

 USER ACTION:  Fix the errors already diagnosed by the  compiler  and
 recompile.
3 PREVIOUS_DEF        
 ERROR:  The name marked by  the  message  was  used  in  a  previous
 declaration.   UIL  requires  that the names of all objects declared
 within a module be unique.

 USER  ACTION:   Check  for  a  misspelling.   If   the   module   is
 case-sensitive,  the  spellings  of  names  in  declarations  and in
 references must match exactly.
3 SINGLE_LETTER       
 ERROR:  The string associated with each color in a color table  must
 hold exactly one character.  You have specified a string with either
 fewer or more characters.

 USER ACTION:  Use a string exactly one character in length.
3 SINGLE_OCCUR        
 ERROR:  You have specified a particular clause more than once  in  a
 context  where  that  clause  can only occur once.  For example, the
 version clause in the module can only occur once.

 USER ACTION:  Choose the correct clause and delete the others.
3 SRC_LIMIT           
 SEVERE:  The compiler has a fixed limit for the number of source and
 include  files  that it can process.  This number is reported in the
 message.

 USER ACTION:  Use fewer include files.
3 SRC_NULL_CHAR       
 ERROR:  The specified source line contains a  null  character.   The
 compiler ignores any text following the null character.

 USER ACTION:  Replace each null character with the  escape  sequence
 \0\.
3 SRC_OPEN            
 SEVERE:  The compiler could not  open  the  UIL  specification  file
 listed in the message.

 USER ACTION:  Check that the file listed in the message is  the  one
 you  want  to compile, that it exists, and that you have read access
 to the file.  If you are using a large number of include files,  you
 may have exceeded your quota for open files.
3 SRC_READ            
 SEVERE:  The compiler could not read a line of the UIL specification
 file listed in the message.

 USER ACTION:  In  the  listing  file,  this  message  should  appear
 following the last line the compiler read successfully.  First check
 that the file you are compiling is a UIL specification file.  If  it
 is, the file mostly likely contains corrupted records.
3 SRC_TRUNCATE        
 ERROR:  The compiler encountered a  source  line  greater  than  132
 characters.  Characters beyond the 132 character limit were ignored.

 USER ACTION:  Break each source line longer than 132 characters into
 several source lines.  Long string literals can be created using the
 concatenation operator.
3 SUBMIT_SPR          
 SEVERE:  The compiler diagnosed an internal error.

 USER ACTION:  Get a listing  and  look  where  the  error  is  being
 issued.   Try  fixing  any  faulty  syntax in this area.  If you are
 unable to prevent this error, submit an SPR.
3 SUBNOTALL           
 SEVERE:  Subqualifiers are not allowed for the negative form of this
 qualifier.   For  example,  /NOWARNINGS  is correct but /NOWARNINGS=
 NOINFORMATIONALS is not allowed.

 USER ACTION:  Use the positive form of the qualifier.  For  example,
 /WARNINGS=NOINFORMATIONALS.
3 SUMMARY             
 INFORMATIONAL:  This message lists  a  summary  of  the  diagnostics
 issued  by the compiler, and appears only when diagnostics have been
 issued.

 USER ACTION:  Fix the problems reported.  You can use the  /WARNINGS
 qualifier to suppress informational and warning diagnostics that you
 have determined to be harmless.
3 SUPERSEDE           
 INFORMATIONAL:  An argument or callback list has either a  duplicate
 argument or duplicate reason.

 USER ACTION:  This is not necessarily an  error.   The  compiler  is
 alerting  you  to  make  sure that you intended to override an prior
 argument's value.  This  informational  message  can  be  suppressed
 using the /WARNINGS qualifier.
3 SYNTAX              
 ERROR:  At the point marked in the  module,  the  compiler  found  a
 construct  such  as a punctuation mark, name, or keyword when it was
 expecting a different construct.  The compiler  continued  analyzing
 the  module  at  the  next occurrence of the construct stated in the
 message.

 USER ACTION:  Check the syntax of  your  UIL  module  at  the  point
 marked  by  the  compiler.   If  the module specifies case-sensitive
 names, check that your keywords are in lowercase characters.
3 TOO_MANY            
 ERROR:  You exceeded a compiler limit such as the number of fonts in
 a  font  table or the number of strings in a translation table.  The
 message indicates the limit imposed by the compiler.

 USER ACTION:  Restructure your UIL module.
3 UID_OPEN            
 SEVERE:  The compiler could not create the UID  file  noted  in  the
 message.    A   UID   file   holds   the   compiled  user  interface
 specification.

 USER ACTION:  Check that you have write access to the directory  you
 specified  to  hold  the  UID  file.   If you have a large number of
 source and include files, check that you have not exceeded your open
 file quota.
3 UNDEFINED           
 ERROR:  The object pointed  to  in  the  message  was  either  never
 defined  or  not  defined  prior  to  this point in the module.  The
 compiler requires the object to be defined before you refer  to  the
 object.

 USER ACTION:  Check for  a  misspelling  of  the  object's  name,  a
 missing  declaration  for  the object, or declaring the object after
 its first reference.  If names in the module are case-sensitive, the
 spellings  of  the name in the declaration and in the reference must
 match exactly.
3 UNKNOWN_CHARSET     
 ERROR:  The message is pointing to a context where a  character  set
 name  is  required.   You have not specified the name of a character
 set in that context.

 USER ACTION:  Check  for  misspelling.   A  list  of  the  supported
 character  sets  is  given  in  the  "VMS  DECwindows User Interface
 Language Reference Manual".  If you specified  case-sensitive  names
 in  the  module,  check  that the character set name is in lowercase
 characters.
3 UNKNOWN_SEQ         
 ERROR:  The compiler detected a sequence of printable characters  it
 did not understand.  The compiler omitted the sequence of characters
 listed between the quotation marks (" ").

 USER ACTION:  Fix the UIL module source.
3 UNSUPPORTED         
 WARNING:   Each  widget  or  gadget  supports  a  specific  set   of
 arguments,  reasons, and children.  The particular argument, reason,
 or child you specified is not supported for this widget or gadget.

 USER ACTION:  See the UIL built-in tables  in  the  "VMS  DECwindows
 User   Interface  Language  Reference  Manual"  for  the  arguments,
 reasons, and children supported for each  object.   If  a  low-level
 creation routine accepts an argument that UIL rejects, this does not
 necessarily indicate that  the  compiler  is  in  error.   Low-level
 routines   ignore  arguments  that  they  do  not  support,  without
 notifying you that the argument is being ignored.
3 UNTERM_SEQ          
 ERROR:  The compiler detected  a  sequence  that  was  not  properly
 terminated,  such  as a string literal without the closing quotation
 mark.

 USER ACTION:  Insert the proper termination characters.
3 WRONG_TYPE          
 ERROR:  The indicated value is not of the specific type required  by
 UIL in this context.

 USER ACTION:  Check the definition of the function or clause.

2 Using_UIL             
 Using the User Interface Language  (UIL)  on  VAX  VMS  is  somewhat
 different  from  using  most VAX VMS compiled languages.  First, you
 describe a user interface by creating a UIL module with one  of  the
 editors  available  on  VAX  VMS (such as the VAX Language-Sensitive
 Editor), and you store this interface description in a file  (called
 a  UIL  specification  file).   The  default  file  type  for  a UIL
 specification file is .UIL.

 Next, you create the application program that uses this interface to
 invoke  the  application's functions.  Your application must include
 Motif Resource Manager (MRM) routines to retrieve  information  from
 the compiled UIL module.

 If, for example, the file INTERFACE.UIL contains your UIL module and
 APPLICATION.C  contains  your  application,  the steps you follow to
 create and use an interface are as follows:


 1.  Create the specification in file INTERFACE.UIL.

 2.  Compile the specification with the UIL compiler, as follows:

          $ UIL/LIST INTERFACE

     This DCL command creates a User Interface Description (UID) file
     named INTERFACE.UID and a listing file named INTERFACE.LIS.

 3.  Create   and   compile   the   application   program   in   file
     APPLICATION.C.

 4.  Link the  application  program  APPLICATION.OBJ  using  the  VMS
     Linker.

 5.  Run the application, using the following command:

          $ RUN APPLICATION

     The User Interface Description  (UID)  file,  INTERFACE.UID,  is
     read  directly  by  the application and is NOT linked as part of
     the application.  As a result, you can change the interface  and
     recompile  it  with UIL compiler.  To rerun the application with
     the new interface, you do NOT have to recompile  or  relink  the
     application.


 The "VMS DECwindows Guide to  Applications  Programming"  completely
 describes  how  to  create  a  UIL  module  and how your application
 extracts information from the UIL module  to  build  its  interface.
 The  MRM routines are fully described in the "VMS DECwindows Toolkit
 Routines Reference Manual".