VMS Help  —  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

1    /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.

1.1    /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.

3    /LOCALE

  Directs the compiler to enable the use of setlocale and the creation
  of localized Compound Strings (-s option).

4    /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.

5    /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.

6    /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.

7    /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).

8  –  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.

9  –  Compile Time Errors

9.1  –  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.

9.2  –  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.

9.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.

9.4  –  BUG_CHECK

  SEVERE:  The compiler diagnosed an internal error.

  USER ACTION:  Submit an SPR.

9.5  –  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.

9.6  –  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.

9.7  –  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.

9.8  –  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 ... };

9.9  –  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.

9.10  –  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.

9.11  –  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; };

9.12  –  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.

9.13  –  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.

9.14  –  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.

9.15  –  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;".

9.16  –  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.

9.17  –  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.

9.18  –  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.

9.19  –  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.

9.20  –  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.

9.21  –  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.

9.22  –  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.

9.23  –  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.

9.24  –  NOT_IMPL

  ERROR:   You  are  using  a  feature  of  UIL  that  has  not   been
  implemented.

  USER ACTION:  Try an alternate technique.

9.25  –  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.

9.26  –  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.

9.27  –  OUT_OF_MEMORY

  SEVERE:  The compiler ran out of virtual memory.

  USER ACTION:  Reduce the size of your application.

9.28  –  OUT_RANGE

  ERROR:  The value specified is outside the legal range of its type.

  USER ACTION:  Change the UIL module source.

9.29  –  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.

9.30  –  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.

9.31  –  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.

9.32  –  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.

9.33  –  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.

9.34  –  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\.

9.35  –  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.

9.36  –  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.

9.37  –  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.

9.38  –  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.

9.39  –  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.

9.40  –  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.

9.41  –  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.

9.42  –  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.

9.43  –  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.

9.44  –  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.

9.45  –  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.

9.46  –  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.

9.47  –  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.

9.48  –  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.

9.49  –  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.

9.50  –  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.

10  –  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".
Close Help