Remove old cruft: osf/* and utils/prog*
authorJon Trulson <jon@radscan.com>
Wed, 28 Mar 2018 18:15:04 +0000 (12:15 -0600)
committerJon Trulson <jon@radscan.com>
Wed, 28 Mar 2018 18:15:04 +0000 (12:15 -0600)
The osf/ stuff includes uil, wml, etc - we expect these to be provided
by Motif, and make no attempt to build them in CDE, so no need for
them.

The only program in utils/prog/ is an ancient verion of lndir that we
do not need for CDE.  If you need lndir for some reason, use the
laters version from Xorg, usually installed via the xutils-dev
package.

94 files changed:
cde/osf/Imakefile [deleted file]
cde/osf/bindings/CDE [deleted file]
cde/osf/bindings/Imakefile [deleted file]
cde/osf/bindings/README [deleted file]
cde/osf/bindings/acorn [deleted file]
cde/osf/bindings/apollo [deleted file]
cde/osf/bindings/dec [deleted file]
cde/osf/bindings/dg_AViiON [deleted file]
cde/osf/bindings/doubleclick [deleted file]
cde/osf/bindings/hal [deleted file]
cde/osf/bindings/hitachi [deleted file]
cde/osf/bindings/hp [deleted file]
cde/osf/bindings/ibm [deleted file]
cde/osf/bindings/intergraph [deleted file]
cde/osf/bindings/intergraph17 [deleted file]
cde/osf/bindings/megatek [deleted file]
cde/osf/bindings/motorola [deleted file]
cde/osf/bindings/ncr_at [deleted file]
cde/osf/bindings/ncr_vt [deleted file]
cde/osf/bindings/pc [deleted file]
cde/osf/bindings/sgi [deleted file]
cde/osf/bindings/siemens_9733 [deleted file]
cde/osf/bindings/siemens_wx200 [deleted file]
cde/osf/bindings/sni [deleted file]
cde/osf/bindings/sni_97801 [deleted file]
cde/osf/bindings/sony [deleted file]
cde/osf/bindings/sun [deleted file]
cde/osf/bindings/sun_at [deleted file]
cde/osf/bindings/tek [deleted file]
cde/osf/bindings/xmbind.alias [deleted file]
cde/osf/uil/Imakefile [deleted file]
cde/osf/uil/Uil.h [deleted file]
cde/osf/uil/Uil.msg [deleted file]
cde/osf/uil/UilCmd.c [deleted file]
cde/osf/uil/UilCmdDef.h [deleted file]
cde/osf/uil/UilCompGl.h [deleted file]
cde/osf/uil/UilDB.c [deleted file]
cde/osf/uil/UilData.c [deleted file]
cde/osf/uil/UilDef.h [deleted file]
cde/osf/uil/UilDefI.h [deleted file]
cde/osf/uil/UilDiagDef.h [deleted file]
cde/osf/uil/UilDiags.c [deleted file]
cde/osf/uil/UilIODef.h [deleted file]
cde/osf/uil/UilKeyTab.c [deleted file]
cde/osf/uil/UilLexAna.c [deleted file]
cde/osf/uil/UilLexDef.h [deleted file]
cde/osf/uil/UilLstLst.c [deleted file]
cde/osf/uil/UilLstMac.c [deleted file]
cde/osf/uil/UilMain.c [deleted file]
cde/osf/uil/UilMess.h [deleted file]
cde/osf/uil/UilMessTab.h [deleted file]
cde/osf/uil/UilP2Out.c [deleted file]
cde/osf/uil/UilP2Reslv.c [deleted file]
cde/osf/uil/UilSarComp.c [deleted file]
cde/osf/uil/UilSarDef.h [deleted file]
cde/osf/uil/UilSarExp.c [deleted file]
cde/osf/uil/UilSarInc.c [deleted file]
cde/osf/uil/UilSarMod.c [deleted file]
cde/osf/uil/UilSarObj.c [deleted file]
cde/osf/uil/UilSarProc.c [deleted file]
cde/osf/uil/UilSarVal.c [deleted file]
cde/osf/uil/UilSemCSet.c [deleted file]
cde/osf/uil/UilSemVal.c [deleted file]
cde/osf/uil/UilSrcDef.h [deleted file]
cde/osf/uil/UilSrcSrc.c [deleted file]
cde/osf/uil/UilSymDef.h [deleted file]
cde/osf/uil/UilSymGl.h [deleted file]
cde/osf/uil/UilSymNam.c [deleted file]
cde/osf/uil/UilSymStor.c [deleted file]
cde/osf/uil/XmAppl.uil [deleted file]
cde/osf/uil/libUil.elist [deleted file]
cde/osf/wml/Imakefile [deleted file]
cde/osf/wml/README [deleted file]
cde/osf/wml/Uil.y [deleted file]
cde/osf/wml/UilDBDef.h [deleted file]
cde/osf/wml/motif.wml [deleted file]
cde/osf/wml/wml.c [deleted file]
cde/osf/wml/wml.h [deleted file]
cde/osf/wml/wmldbcreate.c [deleted file]
cde/osf/wml/wmllex.l [deleted file]
cde/osf/wml/wmlouth.c [deleted file]
cde/osf/wml/wmloutkey.c [deleted file]
cde/osf/wml/wmloutmm.c [deleted file]
cde/osf/wml/wmloutp1.c [deleted file]
cde/osf/wml/wmlparse.y [deleted file]
cde/osf/wml/wmlresolve.c [deleted file]
cde/osf/wml/wmlsynbld.c [deleted file]
cde/osf/wml/wmluiltok.l [deleted file]
cde/osf/wml/wmlutils.c [deleted file]
cde/osf/xmbind/0040.xmbind [deleted file]
cde/osf/xmbind/Imakefile [deleted file]
cde/osf/xmbind/README [deleted file]
cde/osf/xmbind/xmbind.c [deleted file]
cde/util/progs/lndir.c [deleted file]

diff --git a/cde/osf/Imakefile b/cde/osf/Imakefile
deleted file mode 100644 (file)
index 4080dee..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-XCOMM $XConsortium: Imakefile /main/4 1995/10/27 08:47:01 rswiston $
-#ifdef SunArchitecture
-.NO_PARALLEL:
-#endif
-
-#define IHaveSubdirs
-#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
-
-#if BUILD_UNITY_1_ONLY
-SUBDIRS=wml uil xmbind
-#else
-SUBDIRS = wml mwm xmbind
-#endif
-
-/* Force a top path that works for external Motif subdirectories. */
-TOP = ../../cde/.
-
-MakeSubdirs($(SUBDIRS))
-DependSubdirs($(SUBDIRS))
-LintSubdirs($(SUBDIRS))
diff --git a/cde/osf/bindings/CDE b/cde/osf/bindings/CDE
deleted file mode 100644 (file)
index 8bc825f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-! $XConsortium: CDE /main/4 1995/07/17 10:28:16 drk $
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF).  See the file named COPYRIGHT.MOTIF
-! for the full copyright text.
-! 
-! 
-! HISTORY
-! 
-! Bindings for CDE 1.0, generic keyboard
-! 
-! This file does not correspond to any specific server, so it cannot
-! be accessed via xmbind.aliases.  If you wish to use these bindings,
-! copy them into ~/.motifbind or use xmbind to load this file directly.
-
-osfActivate       : <Key>KP_Enter, <Key>Execute
-osfAddMode        : Shift<Key>F8
-osfBackSpace      : <Key>BackSpace
-osfBeginLine      : <Key>Home, <Key>Begin
-osfCancel         : <Key>Escape, <Key>Cancel, Ctrl<Key>s
-osfClear          : <Key>Clear
-osfCopy                   : Ctrl<Key>c, Ctrl<Key>Insert
-osfCut            : Ctrl<Key>x, Shift<Key>Delete
-osfDelete         : <Key>Delete
-osfDown                   : <Key>Down
-osfEndLine        : <Key>End
-osfHelp                   : <Key>F1, <Key>Help
-osfInsert         : <Key>Insert
-osfLeft                   : <Key>Left
-osfMenu                   : Shift<Key>F10, <Key>Menu
-osfMenuBar        : <Key>F10, Shift<Key>Menu
-osfPageDown       : <Key>Next
-osfPageUp         : <Key>Prior
-osfPaste          : Ctrl<Key>v, Shift<Key>Insert
-osfRight          : <Key>Right
-osfSelect         : <Key>Select
-osfSwitchDirection : Alt<Key>Return, Alt<Key>KP_Enter
-osfUndo                   : <Key>Undo
-osfUp             : <Key>Up
diff --git a/cde/osf/bindings/Imakefile b/cde/osf/bindings/Imakefile
deleted file mode 100644 (file)
index ea7367c..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-XCOMM 
-XCOMM @OSF_COPYRIGHT@
-XCOMM COPYRIGHT NOTICE
-XCOMM Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-XCOMM ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-XCOMM the full copyright text.
-XCOMM 
-XCOMM 
-XCOMM HISTORY
-XCOMM 
-XCOMM   $TOG: Imakefile /main/8 1997/07/02 17:51:43 samborn $
-INSTALLFLAGS = $(INSTINCFLAGS)
-
-FILES = \
-       xmbind.alias \
-       acorn \
-       apollo \
-       dec \
-       dg_AViiON \
-       doubleclick \
-       hal \
-       hitachi \
-       hp \
-       ibm \
-       intergraph \
-       intergraph17 \
-       megatek \
-       motorola \
-       ncr_at \
-       ncr_vt \
-       pc \
-       sgi \
-       sni \
-       sni_97801 \
-       siemens_9733 \
-       siemens_wx200 \
-       sony \
-       sun_mit \
-       sun_news \
-       tek
-
-
-all::
-
-InstallMultiple($(FILES),VirtualBindingsPath)
-
-depend::
-
diff --git a/cde/osf/bindings/README b/cde/osf/bindings/README
deleted file mode 100644 (file)
index 23574d4..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* $XConsortium: README /main/3 1996/07/15 13:55:02 drk $ */
-
-This directory contains a collection of sample ".motifbind" files:
-
-acorn
-apollo
-dec
-dg_AViiON
-doubleclick
-hitachi
-hp
-ibm
-intergraph17
-intergraph
-megatek
-motorola
-ncr_at
-ncr_vt
-sgi
-siemens_9733
-siemens_wx200
-sun_mit
-sun_news
-tek
-
-These files were provided by various vendors, though not necessarily
-the vendors whose hardware they apply to.  Each file contains a set of
-keyboard bindings that is suggested for use on that particular
-server/hardware combination.  These files should be used as examples 
-of ~/.motifbind files to work from.
-
-By copying the appropriate file into the user's home directory and
-renaming it to ".motifbind", the bindings will be recognized and used
-when the Motif window manager is (re)started.
-These bindings will override any other default bindings except those 
-initiated within a client application (using XtOverrideTranslations).
-
-These examples are provided, as is, only as a service to the vendors
-and users.
diff --git a/cde/osf/bindings/acorn b/cde/osf/bindings/acorn
deleted file mode 100644 (file)
index c400a10..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: acorn /main/6 1995/07/14 09:19:28 drk $
-!
-!"Acorn Computers Ltd"
-! Acorn RISC iX versions 1.0->1.2 running on Acorn R140, R225, R260
-! (all national keyboard variants)
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfActivate    :               <Key>KP_Enter
-osfCopy                :               <Key>Select
-
diff --git a/cde/osf/bindings/apollo b/cde/osf/bindings/apollo
deleted file mode 100644 (file)
index b2f5aa7..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: apollo /main/6 1995/07/14 09:19:33 drk $
-!
-!"Apollo Computer Inc."
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>apRightBar
-osfBeginLine   :               <Key>apLeftBar
-osfPageUp      :               <Key>apUpBox
-osfPageDown    :               <Key>apDownBox
-osfPageLeft    :               <Key>apLeftBox
-osfPageRight   :               <Key>apRightBox
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>apCharDel
-osfInsert      :               <Key>Select
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfCopy                :               <Key>apCopy
-osfCut         :               <Key>apCut
-osfPaste       :               <Key>apPaste
-osfUndo                :               <Key>Undo
diff --git a/cde/osf/bindings/dec b/cde/osf/bindings/dec
deleted file mode 100644 (file)
index e902019..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: dec /main/6 1995/07/14 09:19:39 drk $
-!
-!"DECWINDOWS DigitalEquipmentCorp."
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>Delete
-osfDelete      :               <Key>DRemove
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfSelect      :               <Key>Select
-osfActivate    :               <Key>KP_Enter
-osfPrimaryPaste        :               <Key>F14
-osfQuickPaste  :               <Key>F17
diff --git a/cde/osf/bindings/dg_AViiON b/cde/osf/bindings/dg_AViiON
deleted file mode 100644 (file)
index ae0a4bb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: dg_AViiON /main/6 1995/07/14 09:19:45 drk $
-!
-!"Data General Corporation  Rev 04"
-! AViiON
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/doubleclick b/cde/osf/bindings/doubleclick
deleted file mode 100644 (file)
index 447c3eb..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: doubleclick /main/6 1995/07/14 09:19:51 drk $
-!
-!"Double Click Imaging, Inc. KeyX"
-! for the version of KeyX running on 386 AT bus compatibles.
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/hal b/cde/osf/bindings/hal
deleted file mode 100644 (file)
index 12ae3d5..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-! $XConsortium: hal /main/4 1995/07/17 10:28:29 drk $
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! HISTORY
-!
-!
-! "HaL" server for a Sun type 4 keyboard
-!
-osfCancel      :       <Key>Escape
-osfLeft                :       <Key>Left 
-osfUp          :       <Key>Up
-osfRight       :       <Key>Right
-osfDown                :       <Key>Down
-osfEndLine     :       <Key>F33
-osfBeginLine   :       <Key>F27
-osfPageUp      :       <Key>F29
-osfPageDown    :       <Key>F35
-osfBackSpace   :       <Key>BackSpace
-osfDelete      :       <Key>Delete
-osfInsert      :       <Key>Insert
-osfAddMode     :Shift  <Key>F8
-osfHelp                :       <Key>Help
-osfMenu                :Shift  <Key>F10
-osfMenuBar     :       <Key>F10
-osfCopy                :       <Key>F16
-osfCut         :       <Key>F20
-osfPaste       :       <Key>F18
-osfUndo                :       <Key>F14 
diff --git a/cde/osf/bindings/hitachi b/cde/osf/bindings/hitachi
deleted file mode 100644 (file)
index c725a06..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: hitachi /main/6 1995/07/14 09:19:58 drk $
-!
-!
-! Hitachi System 2050
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/hp b/cde/osf/bindings/hp
deleted file mode 100644 (file)
index 1972006..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: hp /main/7 1996/11/21 13:06:42 cde-hp $
-!
-!"Hewlett-Packard Company"
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfSelect      :               <Key>Select
-osfClear       :               <Key>Clear
-osfUndo                :               <Key>Undo
-osfPrimaryPaste        :Meta   Ctrl    <Key>Insert
-
-
diff --git a/cde/osf/bindings/ibm b/cde/osf/bindings/ibm
deleted file mode 100644 (file)
index e406986..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: ibm /main/6 1995/07/14 09:20:11 drk $
-!
-!"International Business Machines"
-! for AIX/PS2 and RS/6000 systems
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/intergraph b/cde/osf/bindings/intergraph
deleted file mode 100644 (file)
index 39c6225..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: intergraph /main/6 1995/07/14 09:20:18 drk $
-!
-! Intergraph
-! with Delete & Backspace keys
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/intergraph17 b/cde/osf/bindings/intergraph17
deleted file mode 100644 (file)
index 89a4cb2..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: intergraph17 /main/6 1995/07/14 09:20:24 drk $
-!
-! Intergraph
-! with single Delete/Backspace keys (use F17 for Delete)
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>F17
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/megatek b/cde/osf/bindings/megatek
deleted file mode 100644 (file)
index d0b503c..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: megatek /main/6 1995/07/14 09:20:29 drk $
-!
-!"Megatek Corporation"
-! Megatek X-Cellerator
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>R13
-osfBeginLine   :               <Key>F27
-osfPageUp      :               <Key>F29
-osfPageDown    :               <Key>F35
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfCopy                :               <Key>F16
-osfCut         :               <Key>F20
-osfPaste       :               <Key>F18
-osfUndo                :               <Key>F14
diff --git a/cde/osf/bindings/motorola b/cde/osf/bindings/motorola
deleted file mode 100644 (file)
index 1832796..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: motorola /main/6 1995/07/14 09:20:35 drk $
-!
-!"Motorola Inc. (Microcomputer Division) "
-! (c) Copyright 1990 Motorola Inc.
-! Motorola provides these key bindings as is,
-! with no guarantees or warranties implied.
-! Motorola is under no obligation to support,
-! update, or extend these key bindings for
-! future releases.
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/ncr_at b/cde/osf/bindings/ncr_at
deleted file mode 100644 (file)
index c1e6c9a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: ncr_at /main/6 1995/07/14 09:20:41 drk $
-!
-! NCR XL Series X-Station
-! PC AT keyboard
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfActivate    :               <Key>KP_Enter
diff --git a/cde/osf/bindings/ncr_vt b/cde/osf/bindings/ncr_vt
deleted file mode 100644 (file)
index 80420a0..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: ncr_vt /main/6 1995/07/14 09:20:46 drk $
-!
-! NCR XL Series X-Station
-! VT 220 keyboard
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfSelect      :               <Key>Select
-osfActivate    :               <Key>KP_Enter
-osfQuickPaste  :               <Key>F17
-
-
diff --git a/cde/osf/bindings/pc b/cde/osf/bindings/pc
deleted file mode 100644 (file)
index 3772cff..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-! $XConsortium: pc /main/4 1995/07/17 10:28:38 drk $
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! HISTORY
-
-! Generic OSF/Motif Style Guide bindings for PC keyboards
-
-osfActivate    :               <Key>KP_Enter
-osfCancel      :               <Key>Escape
-osfMenuBar     :               <Key>F10
-osfMenu                :       Shift   <Key>F10
-osfHelp                :               <Key>F1
-
-osfBackSpace   :               <Key>BackSpace
-osfInsert      :               <Key>Insert
-osfDelete      :               <Key>Delete
-
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfPageLeft    :       Ctrl    <Key>Prior
-osfPageRight   :       Ctrl    <Key>Next
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-
-osfLeft                :               <Key>Left
-osfRight       :               <Key>Right
-osfUp          :               <Key>Up
-osfDown                :               <Key>Down
-
-osfAddMode     :       Shift   <Key>F8
-
-osfCut         :       Shift   <Key>Delete
-osfCopy                :       Ctrl    <Key>Insert
-osfPaste       :       Shift   <Key>Insert
-
-osfPrimaryPaste        :Meta   Ctrl    <Key>Insert
-
diff --git a/cde/osf/bindings/sgi b/cde/osf/bindings/sgi
deleted file mode 100644 (file)
index 19b3141..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: sgi /main/7 1995/07/14 09:20:51 drk $
-!
-!"Silicon Graphics Inc."
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfActivate    :               <Key>KP_Enter
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/siemens_9733 b/cde/osf/bindings/siemens_9733
deleted file mode 100644 (file)
index 1d63713..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: siemens_9733 /main/6 1995/07/14 09:20:56 drk $
-!
-!"Siemens Munich (SP-4's hacker-clan)"
-! Siemens 9733 system
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete_char
-osfInsert      :               <Key>Insert_char
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help
-osfMenu                :               <Key>Linefeed
-osfMenuBar     :               <Key>F10
-
-
-
diff --git a/cde/osf/bindings/siemens_wx200 b/cde/osf/bindings/siemens_wx200
deleted file mode 100644 (file)
index 48afe00..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: siemens_wx200 /main/6 1995/07/14 09:21:02 drk $
-!
-!"Siemens Munich by SP-4's Hacker Crew"
-! Siemens WX200 system
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>Cancel
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete,<Key>F29
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>Help,<Key>F1
-osfActivate    :               <Key>KP_Enter
-osfMenu                :               <Key>Menu,Shift <Key>F10
-osfMenuBar     :               <Key>F10
-
-
-
diff --git a/cde/osf/bindings/sni b/cde/osf/bindings/sni
deleted file mode 100644 (file)
index 314b07d..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-! $XConsortium: sni /main/4 1995/07/17 10:28:46 drk $
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! HISTORY
-!
-!
-! "Siemens Nixdorf Informationssysteme AG"
-! SNI MFII keyboard
-
-osfCancel      :       <Key>Escape
-osfLeft                :       <Key>Left
-osfUp          :       <Key>Up
-osfRight       :       <Key>Right
-osfDown                :       <Key>Down
-osfEndLine     :       <Key>End
-osfBeginLine   :       <Key>Home
-osfPageUp      :       <Key>Prior
-osfPageDown    :       <Key>Next
-osfBackSpace   :       <Key>BackSpace
-osfDelete      :       <Key>Delete
-osfInsert      :       <Key>Insert
-osfAddMode     : Shift <Key>F8
-osfHelp                :       <Key>F1
-osfActivate    :       <Key>KP_Enter
-osfMenu                : Shift <Key>F10
-osfMenuBar     :       <Key>F10
diff --git a/cde/osf/bindings/sni_97801 b/cde/osf/bindings/sni_97801
deleted file mode 100644 (file)
index c811197..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-! $XConsortium: sni_97801 /main/4 1995/07/17 10:29:04 drk $
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! HISTORY
-!
-! "Siemens Nixdorf Informationssysteme AG (97801)"
-! SNI 97801 keyboard
-
-osfCancel      :       <Key>Escape
-osfLeft                :       <Key>Left
-osfUp          :       <Key>Up
-osfRight       :       <Key>Right
-osfDown                :       <Key>Down
-osfEndLine     :       <Key>Cancel,<Key>End
-osfBeginLine   :       <Key>Home
-osfPageUp      :       <Key>Prior
-osfPageDown    :       <Key>Next
-osfBackSpace   :       <Key>BackSpace
-osfDelete      :       <Key>Delete,<Key>F29
-osfInsert      :       <Key>Insert
-osfAddMode     : Shift <Key>F8
-osfHelp                :       <Key>Help,<Key>F1
-osfActivate    :       <Key>KP_Enter
-osfMenu                :       <Key>Menu,Shift <Key>F10
-osfMenuBar     :       <Key>F10
diff --git a/cde/osf/bindings/sony b/cde/osf/bindings/sony
deleted file mode 100644 (file)
index be5da78..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: sony /main/5 1995/07/14 09:21:08 drk $
-!
-!"Sony Corporation"
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :Alt            <Key>Right
-osfBeginLine   :Alt            <Key>Left
-osfPageUp      :Alt            <Key>Up
-osfPageDown    :Alt            <Key>Down
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>F5
-osfAddMode     :Shift          <Key>F18
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-osfSelect      :               <Key>Select
-osfActivate    :               <Key>KP_Enter
diff --git a/cde/osf/bindings/sun b/cde/osf/bindings/sun
deleted file mode 100644 (file)
index 04afa64..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-!
-!
-! $Id: sun /main/3 1999/07/14 10:48:40 mgreess $
-!
-! "Sun Microsystems, Inc."
-osfActivate    :               <Key>KP_Enter
-osfCancel      :               <Key>Escape
-osfHelp                :               <Key>Help,<Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
-
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-
-osfBeginLine   :               <Key>Home
-osfEndLine     :               <Key>End
-
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfUndo                :               <Key>Undo
-osfAddMode     :Shift          <Key>F8
-osfCopy                :               <Key>SunCopy
-osfCut         :               <Key>SunCut
-osfPaste       :               <Key>SunPaste
-
diff --git a/cde/osf/bindings/sun_at b/cde/osf/bindings/sun_at
deleted file mode 100644 (file)
index 9ee72d9..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-!
-!
-! $Id: sun_at /main/2 1999/03/26 17:09:14 samborn $
-!
-! "Sun Microsystems, Inc."
-osfActivate     :               <Key>KP_Enter
-osfCancel       :               <Key>Escape
-osfHelp         :               <Key>F1
-osfMenu         :Shift          <Key>F10
-osfMenuBar      :               <Key>F10
-
-osfLeft         :               <Key>Left
-osfUp           :               <Key>Up
-osfRight        :               <Key>Right
-osfDown         :               <Key>Down
-
-osfBeginLine    :               <Key>Home
-osfEndLine      :               <Key>End
-
-osfPageUp       :               <Key>Prior
-osfPageDown     :               <Key>Next
-
-osfBackSpace    :               <Key>BackSpace
-osfDelete       :               <Key>Delete
-osfInsert       :               <Key>Insert
-osfAddMode      :Shift          <Key>F8
diff --git a/cde/osf/bindings/tek b/cde/osf/bindings/tek
deleted file mode 100644 (file)
index 2d1856a..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $XConsortium: tek /main/6 1995/07/14 09:21:24 drk $
-!
-!"Tektronix, Inc."
-!
-!
-
-osfCancel      :               <Key>Escape
-osfLeft                :               <Key>Left
-osfUp          :               <Key>Up
-osfRight       :               <Key>Right
-osfDown                :               <Key>Down
-osfEndLine     :               <Key>End
-osfBeginLine   :               <Key>Home
-osfPageUp      :               <Key>Prior
-osfPageDown    :               <Key>Next
-osfBackSpace   :               <Key>BackSpace
-osfDelete      :               <Key>Delete
-osfInsert      :               <Key>Insert
-osfAddMode     :Shift          <Key>F8
-osfHelp                :               <Key>F1
-osfMenu                :Shift          <Key>F10
-osfMenuBar     :               <Key>F10
diff --git a/cde/osf/bindings/xmbind.alias b/cde/osf/bindings/xmbind.alias
deleted file mode 100644 (file)
index 3660e0e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-!
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-!
-!
-! HISTORY
-!
-!   $TOG: xmbind.alias /main/6 1999/03/26 17:03:23 samborn $
-!
-!
-! bindings alias file
-!
-! format:
-!    "<ServerVendor(display)>[<space><VendorRelease(display)>]"  bindings_file
-!
-
-"Acorn Computers Ltd"                                  acorn
-"Apollo Computer Inc."                                 apollo
-"DECWINDOWS DigitalEquipmentCorp."                     dec
-"DECWINDOWS DigitalEquipmentCorporation UWS2.2"                dec
-"Data General Corporation  Rev 04"                     dg_AViiON
-"Double Click Imaging, Inc. KeyX"                      doubleclick
-"HaL"                                                  hal
-"Hewlett-Packard Company"                              hp
-! "Hitachi?"                                           hitachi
-"International Business Machines"                      ibm
-"Intergraph Corporation"                               intergraph
-! "Intergraph Corporation ?"                           intergraph17
-"Megatek Corporation"                                  megatek
-"Motorola Inc. (Microcomputer Division) "              motorola
-! "NCR?"                                               ncr_at
-! "NCR?"                                               ncr_vt
-! "?" (Generic PC keyboard bindings)                   pc
-"Silicon Graphics Inc."                                        sgi
-"Silicon Graphics"                                     sgi
-"Siemens Nixdorf Informationssysteme AG"               sni
-"Siemens Nixdorf Informationssysteme AG (97801)"       sni_97801
-"Siemens Munich by SP-4's Hacker Crew"                 siemens_wx200
-"Siemens Munich (SP-4's hacker-clan)"                  siemens_9733
-"Sony Corporation"                                     sony
-"X11/NeWS - Sun Microsystems Inc."                     sun
-! sun: for Displays with Type-4/Type-5 keyboards
-! sun_at: for Displays with PC AT style keyboards
-"Sun Microsystems, Inc."                               sun
-! "Sun Microsystems, Inc."                             sun_at
-"Tektronix, Inc."                                      tek
diff --git a/cde/osf/uil/Imakefile b/cde/osf/uil/Imakefile
deleted file mode 100644 (file)
index 3dbaf3e..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-XCOMM 
-XCOMM @OSF_COPYRIGHT@
-XCOMM COPYRIGHT NOTICE
-XCOMM Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-XCOMM ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-XCOMM the full copyright text.
-XCOMM 
-XCOMM 
-XCOMM HISTORY
-XCOMM 
-XCOMM   $TOG: Imakefile /main/23 1997/07/03 12:32:45 samborn $
-
-#define DoNormalLib    NormalLibUil
-#define DoSharedLib    SharedLibUil
-#define DoDebugLib     DebugLibUil
-#define DoProfileLib   ProfileLibUil
-#define LibName                Uil
-#define        SoRev           SOUILREV
-#define HasSharedData  NO
-#define IncSubdir      uil
-
-#ifdef SharedUilReqs
-REQUIREDLIBS = SharedUilReqs
-#endif
-
-INCLUDES       = -I. -I$(INCLUDESRC) -I$(MINCLUDESRC) -I$(MLIBSRC) -I$(MTOP)/include
-DEPLIBS2       = MrmClientDepLibs
-LOCAL_LIBRARIES = MrmClientLibs
-LINTLIBS       = $(LINTMRESOURCE) $(LINTXMLIB) $(LINTXMTOOL) $(LINTXLIB)
-
-COMMON_SRC =   UilCmd.c        UilDiags.c      UilKeyTab.c     UilLexAna.c  \
-               UilLexPars.c    UilLstLst.c     UilP2Out.c      UilP2Reslv.c \
-               UilSarComp.c    UilSarExp.c     UilSarInc.c     UilSarMod.c \
-               UilSarObj.c     UilSarProc.c    UilSarVal.c     UilSrcSrc.c  \
-               UilSymNam.c     UilSymStor.c    UilData.c       \
-               UilLstMac.c     UilSemVal.c     UilSemCSet.c    UilDB.c
-
-SRCS =         $(COMMON_SRC)   UilParser.c
-SRCS2 =                $(COMMON_SRC)   UilMain.c
-
-COMMON_OBJ =   UilCmd.o        UilDiags.o      UilKeyTab.o     UilLexAna.o  \
-               UilLexPars.o    UilLstLst.o     UilP2Out.o      UilP2Reslv.o \
-               UilSarComp.o    UilSarExp.o     UilSarInc.o     UilSarMod.o \
-               UilSarObj.o     UilSarProc.o    UilSarVal.o     UilSrcSrc.o  \
-               UilSymNam.o     UilSymStor.o    UilData.o \
-               UilLstMac.o     UilSemVal.o     UilSemCSet.o    UilDB.o
-
-OBJS =         $(COMMON_OBJ)   UilParser.o
-OBJS2 =                $(COMMON_OBJ)   UilMain.o
-
-HEADERS =      Uil.h           UilSymGl.h      UilDBDef.h      UilSymDef.h \
-               UilDef.h        XmAppl.uil
-
-#include <Library.tmpl>
-
-PROGRAMS = uil
-
-AllTarget($(PROGRAMS))
-
-MComplexProgramTarget_2(uil,$(LOCAL_LIBRARIES),NullParameter)
-
-SpecialLibObjectRule(UilDB.o,NullParameter,-DLIBDIR='"'$(XPROJECTROOT)/lib/X11'"' -DINCDIR='"'$(XPROJECTROOT)/include/X11'"')
-
-LinkFile(UilParser.c,UilMain.c)
-SpecialLibObjectRule(UilParser.o,NullParameter,-DCALLABLE)
-
-
-DependTarget3($(COMMON_SRC),UilMain.c,UilParser.c)
-
-#ifdef UseVista
-VistaMapRule(uil.M,libUil.a)
-#endif
-
-MessageCatalogRule(Uil)
diff --git a/cde/osf/uil/Uil.h b/cde/osf/uil/Uil.h
deleted file mode 100644 (file)
index a170506..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: Uil.h /main/11 1995/07/14 09:32:19 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the set of definitions for use with
-**     UIL compiler callable interface.
-**
-**--
-**/
-
-#ifndef Uil_h
-#define Uil_h
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-
-
-/*
-**
-**  Definition of Compiler Severity Statuses
-**
-*/
-
-typedef unsigned int   Uil_status_type;
-#define Uil_k_min_status       0
-#define Uil_k_success_status   0
-#define Uil_k_info_status      1
-#define Uil_k_warning_status   2
-#define Uil_k_error_status     3
-#define Uil_k_severe_status    4
-#define Uil_k_max_status       4
-
-/*
-**
-*/
-
-typedef char (*string_array)[];
-#define CEIL(a,b) ((a) < (b) ? (a) : (b))
-
-
-/*
-**  Uil_command_type -- Input which describes how/what to compile.
-*/
-
-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       */
-                                           /* includes 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        issue_summary: 1;       /* issue diagnostics summary    */
-    
-    unsigned int    status_update_delay;    /* Number of times a status            */
-                                           /* point is passed before       */
-                                           /* calling statusCB routine     */
-                                           /* 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    */
-} Uil_command_type;
-
-
-
-/*
-** Uil_compile_desc_type -- Output information about the compilation including
-** the compiler_version, data_structure_version, parse tree, and error counts.
-*/
-
-typedef struct _Uil_comp_desc
-{
-    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 */
-} Uil_compile_desc_type;    
-
-
-
-
-/*
-**  Uil_continue_type -- A value returned from a Uil callback routine which
-**  allows the application to specify whether to terminate or continue the
-**  compilation.
-*/
-
-typedef unsigned int   Uil_continue_type;
-#define Uil_k_terminate                0
-#define Uil_k_continue         1
-
-
-
-/*
-**
-**  Entry Points
-**
-*/
-
-#ifndef _ARGUMENTS
-#define _ARGUMENTS(arglist) arglist
-#endif
-
-#if defined(__cplusplus) || defined(c_plusplus)
-extern "C" {
-#endif
-
-extern Uil_status_type Uil
-                   _ARGUMENTS((
-                       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 ));
-
-
-#if defined(__cplusplus) || defined(c_plusplus)
-}
-#endif
-
-#undef _ARGUMENTS
-
-
-#endif /* Uil_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/Uil.msg b/cde/osf/uil/Uil.msg
deleted file mode 100644 (file)
index 27b1b53..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-$ $XConsortium: Uil.msg /main/4 1996/08/19 11:53:43 pascale $
-$set UIL_SET1
-
-UIL_0 duplicate option \"%s\" was ignored
-UIL_1 unknown option \"%s\" was ignored
-UIL_2 additional UIL source file: %s was ignored
-UIL_3 error opening source file: %s
-UIL_4 error reading next line of source file: %s
-UIL_5 Internal error: %s
-UIL_6 line truncated at %d characters
-UIL_7 value of %s is out of range %s
-UIL_8 %s not terminated %s
-UIL_9 unprintable character \\%d\\ ignored
-UIL_10 unknown sequence \"%s\" ignored
-UIL_11 unknown escape sequence \"\\%c\" - \\ ignored
-UIL_12 name exceeds %d characters - truncated to: %s
-UIL_13 compiler ran out of virtual memory
-UIL_14 unexpected %s token found - parsing resumes after \"%c\"
-UIL_15 %s %s must be defined before this reference
-UIL_16 context requires a %s - %s was specified
-UIL_17 %s is not implemented yet
-UIL_18 found %s value when expecting %s value
-UIL_19 the %s %s is not supported for the %s object
-UIL_20 this %s %s supersedes a previous definition in this %s %s
-UIL_21 name %s previously defined as %s
-UIL_22 value used in this context must be private
-UIL_23 procedure %s was previously declared with %d arguments
-UIL_24 found %s value - procedure %s argument must be %s value
-UIL_25 found %s %s when expecting %s %s
-UIL_26 %s %s was never defined
-UIL_27 %s %s already specified for this %s %s
-UIL_28 %s item not allowed in %s %s
-UIL_29 compilation terminated - please fix previous errors
-UIL_30 internal error - please submit defect report
-UIL_31  
-UIL_32 %s missing following \"%s\" option
-UIL_33 error opening listing file: %s
-UIL_34 error writing to listing file: %s
-UIL_35 invalid module structure - check UIL module syntax
-UIL_36 too many source files open: %s
-UIL_37 source line contains a null character
-UIL_38 errors: %d  warnings: %d  informationals: %d
-UIL_39 error opening UID file: %s
-UIL_40 no UID file was produced
-UIL_41 creation procedure is not supported by the %s widget
-UIL_42 creation procedure is not allowed in a %s widget reference
-UIL_43 creation procedure is required in a %s widget declaration
-UIL_44 a NULL character in a string is not supported
-UIL_45 widget %s is part of a circular definition
-UIL_46 no source file specified
-UIL_47 %s %s supports only a single %s %s
-UIL_48 %s widget supports only a single control
-UIL_49 unknown character set
-UIL_50 place names clause before other module clauses
-UIL_51 color letter string must be a single character
-UIL_52 color letter used for prior color in this table
-UIL_53 row %d must have same width as row 1
-UIL_54 row %d, column %d: letter \"%c\" not in color table
-UIL_55 too many %ss in %s, limit is %d
-UIL_56 Subqualifier not allowed with negated qualifier
-UIL_57 %s gadget is not supported - %s widget will be used instead
-UIL_58 %s type is not valid for %s
-UIL_59 support for this character set may be removed in a future release
-UIL_60 the %s constraint is not supported for the %s %s
-UIL_61 too many \"%s\" options, limit is %d
-UIL_62 error closing source file: %s
-UIL_63 the %s value is circularly defined
-UIL_64 overriding built-in name %s
-UIL_65 the %s argument does not support enumerated values
-UIL_66 the %s argument does not support the %s enumerated value
-UIL_67 $LANG contains an unknown character set
-UIL_68 the %s object's controls hierarchy contains a reference to itself
-UIL_69 value %s is too large for context buffer
-UIL_70 forward referencing is not allowed for %s
-UIL_71 cannot convert %s type to %s type
-UIL_72 %s is invalid
-UIL_V2_73 error reading binary database
-UIL_V2_74 binary database compiled with a future version
-UIL_V2_75 error opening database file: %s
-UIL_V2_76 error writing UID file: %s
-UIL_V2_77 '%s' is an unknown Toolkit class record name
-UIL_78 invalid include file name
-UIL_V2_79 incompatible unit types for arithmetic operation
-UIL_V2_80 %s used as charset name; %s used as charset component
-
-$set UIL_VALUES
-UIL_VAL_0 ** error **
-UIL_VAL_1 ** unknown **
-
-$set UIL_SET_MISC
-
-UIL_INF Info: 
-UIL_WAR Warning: 
-UIL_ERR Error: 
-UIL_SEV Severe: 
-UIL_MISC_0 \t\t line: %d  file: %s
-UIL_MISC_1 \t\t line: %d  position: %d  file: %s
diff --git a/cde/osf/uil/UilCmd.c b/cde/osf/uil/UilCmd.c
deleted file mode 100644 (file)
index bd27485..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilCmd.c /main/11 1995/07/14 09:32:29 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      Command line interpreter for the
-**
-**--
-**/
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-
-#include "UilDefI.h"
-#include "UilCmdDef.h"
-
-
-/*
-**
-**  GLOBAL DECLARATIONS
-**
-**/
-
-externaldef(uil_comp_glbl) cmd_command_line_type Uil_cmd_z_command;
-
-\f
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure parses the command line and places the
-**     results of the parse in the global structure "Uil_cmd_z_command".
-**
-**  FORMAL PARAMETERS:
-**
-**      l_arg_count:   number of command arguments
-**     rac_arg_value:  array of pointers to null terminated character strings
-**                     each of which is one of the command line arguments
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      Uil_cmd_z_command:     respository for command line info
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      Uil_cmd_z_command is set
-**
-**--
-**/
-void   cmd_decode_command_line( l_arg_count, rac_arg_value )
-int    l_arg_count;
-char   *rac_arg_value[ ];
-
-{
-    static char            *include_list       [Uil_k_max_include_dir_count];
-    int        i;
-
-    Uil_cmd_z_command.ac_source_file = NULL;
-    Uil_cmd_z_command.ac_resource_file = NULL;
-    Uil_cmd_z_command.ac_listing_file = NULL;
-    Uil_cmd_z_command.include_dir_count = 0;
-    Uil_cmd_z_command.ac_include_dir = (char **)include_list;
-    Uil_cmd_z_command.v_resource_file = TRUE;
-    Uil_cmd_z_command.v_listing_file = FALSE;
-    Uil_cmd_z_command.v_show_machine_code = FALSE;
-    Uil_cmd_z_command.v_report_info_msg = TRUE;
-    Uil_cmd_z_command.v_report_warn_msg = TRUE;
-    Uil_cmd_z_command.v_parse_tree = FALSE;
-    Uil_cmd_z_command.v_use_setlocale = FALSE;
-    Uil_cmd_z_command.status_update_delay = 0;
-    Uil_cmd_z_command.message_cb = (Uil_continue_type(*)())NULL;
-    Uil_cmd_z_command.status_cb = (Uil_continue_type(*)())NULL;
-    Uil_cmd_z_command.ac_database = NULL;
-    Uil_cmd_z_command.v_database = FALSE;
-
-#if debug_version
-    uil_v_dump_tokens = FALSE;
-    uil_v_dump_symbols = FALSE;
-#endif
-
-    /* traverse the options on the command line */
-
-    for (i = 1;  i < l_arg_count;  i++)
-    {
-       /* check for an output file  */
-
-       if ( strcmp("-o", rac_arg_value[ i ]) == 0 )
-       {
-           /* the next argument is the output file name  */
-
-           /* check next field is not an option */
-
-            if (((i+1) >= l_arg_count) ||
-                ( '-' == rac_arg_value[ i+1 ][ 0 ] ))
-           {
-               diag_issue_diagnostic
-                       ( d_miss_opt_arg, 
-                         diag_k_no_source, diag_k_no_column,
-                         rac_arg_value[ i ],
-                         "output file"
-                       );
-               continue;
-           }
-
-           if (Uil_cmd_z_command.ac_resource_file == NULL)
-               Uil_cmd_z_command.ac_resource_file = rac_arg_value[ i+1 ];
-           else
-               diag_issue_diagnostic
-                   ( d_dupl_opt, 
-                     diag_k_no_source, diag_k_no_column,
-                     rac_arg_value[ i ]
-                   );
-           i = i + 1;
-       }
-           
-       /* check for a binary database file */
-
-       else if ( strcmp("-wmd", rac_arg_value[ i ]) == 0 )
-       {
-           /* the next argument is the binary database file name  */
-
-           /* check next field is not an option */
-
-            if (((i+1) >= l_arg_count) ||
-                ( '-' == rac_arg_value[ i+1 ][ 0 ] ))
-           {
-               diag_issue_diagnostic
-                       ( d_miss_opt_arg, 
-                         diag_k_no_source, diag_k_no_column,
-                         rac_arg_value[ i ],
-                         "binary database file"
-                       );
-               continue;
-           }
-
-           if (!Uil_cmd_z_command.v_database)
-           {
-               Uil_cmd_z_command.v_database = TRUE;
-               Uil_cmd_z_command.ac_database = rac_arg_value[ i+1 ];
-           }
-           else
-               diag_issue_diagnostic
-                   ( d_dupl_opt, 
-                     diag_k_no_source, diag_k_no_column,
-                     rac_arg_value[ i ]
-                   );
-           i = i + 1;
-       }
-
-       /* check for an listing file */
-
-       else if ( strcmp("-v", rac_arg_value[ i ]) == 0 )
-       {
-           /* the next argument is the listing file name  */
-
-           /* check next field is not an option */
-
-            if (((i+1) >= l_arg_count) ||
-                ( '-' == rac_arg_value[ i+1 ][ 0 ] ))
-           {
-               diag_issue_diagnostic
-                       ( d_miss_opt_arg, 
-                         diag_k_no_source, diag_k_no_column,
-                         rac_arg_value[ i ],
-                         "listing file"
-                       );
-               continue;
-           }
-
-           if (!Uil_cmd_z_command.v_listing_file)
-           {
-               Uil_cmd_z_command.v_listing_file = TRUE;
-               Uil_cmd_z_command.ac_listing_file = rac_arg_value[ i+1 ];
-           }
-           else
-               diag_issue_diagnostic
-                   ( d_dupl_opt, 
-                     diag_k_no_source, diag_k_no_column,
-                     rac_arg_value[ i ]
-                   );
-           i = i + 1;
-       }
-           
-       /* check for the machine code option */
-
-       else if ( strcmp("-m", rac_arg_value[ i ]) == 0 )
-       {
-               Uil_cmd_z_command.v_show_machine_code = TRUE;
-       }
-           
-       /* check if warnings are to be supressed */
-
-       else if ( strcmp("-w", rac_arg_value[ i ]) == 0 )
-       {
-               Uil_cmd_z_command.v_report_info_msg = FALSE;
-               Uil_cmd_z_command.v_report_warn_msg = FALSE;
-       }
-
-       /* check if setlocale is to be enabled */
-
-       else if ( strcmp("-s", rac_arg_value[ i ]) == 0 )
-       {
-         Uil_cmd_z_command.v_use_setlocale = TRUE;
-       }
-       
-       /* check for an unexpected option */
-
-       else if ( '-' == rac_arg_value[ i ][ 0 ] )
-       {
-
-       /* check for an include directory */
-
-           if ( 'I' == rac_arg_value[ i ][ 1 ] )
-           {
-               if (Uil_cmd_z_command.include_dir_count < Uil_k_max_include_dir_count)
-                   
-                   include_list[Uil_cmd_z_command.include_dir_count++] = 
-                       & rac_arg_value[i] [2];
-               else
-                   diag_issue_diagnostic
-                       ( d_too_many_dirs, 
-                         diag_k_no_source, diag_k_no_column,
-                         rac_arg_value[ i ], Uil_k_max_include_dir_count
-                       );
-           } else
-           {
-               diag_issue_diagnostic
-                   ( d_unknown_opt, 
-                     diag_k_no_source, diag_k_no_column,
-                     rac_arg_value[ i ]
-                   );
-           }
-       }
-
-       /* assume it is a UIL source file specification
-        * validation of the file spec is done when file is opened */
-
-       else
-       {
-           if (Uil_cmd_z_command.ac_source_file == NULL)
-              Uil_cmd_z_command.ac_source_file = rac_arg_value[ i ];
-           else
-               diag_issue_diagnostic
-                   ( d_add_source, 
-                     diag_k_no_source, diag_k_no_column,
-                     rac_arg_value[ i ]
-                   );
-       }
-    }
-
-    /*
-    ** Check for a source file - otherwise issue a diagnostic.
-    */
-
-    if (Uil_cmd_z_command.ac_source_file == NULL)
-       diag_issue_diagnostic
-           ( d_no_source, diag_k_no_source, diag_k_no_column );
-
-    if (Uil_cmd_z_command.ac_resource_file == NULL)
-       {
-        Uil_cmd_z_command.ac_resource_file = XtMalloc (strlen ("a.uid") + 1);
-        strcpy (Uil_cmd_z_command.ac_resource_file,"a.uid");
-        }
-
-    /*
-    ** Machine code listing only makes sense if listing is set.
-    */
-    
-    Uil_cmd_z_command.v_show_machine_code =
-        ( Uil_cmd_z_command.v_listing_file & 
-         Uil_cmd_z_command.v_show_machine_code);
-}
-
-\f
-
diff --git a/cde/osf/uil/UilCmdDef.h b/cde/osf/uil/UilCmdDef.h
deleted file mode 100644 (file)
index 340a59b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilCmdDef.h /main/10 1995/07/14 09:32:45 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL command line
-**     processing.
-**
-**--
-**/
-
-#ifndef UilCmdDef_h
-#define UilCmdDef_h
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-
-typedef struct  
-{
-    char           *ac_source_file;
-    char           *ac_resource_file;
-    char           *ac_listing_file;
-    unsigned int    include_dir_count;     /* number of directories in     */
-                                           /* ac_include_dir array         */
-    char           **ac_include_dir;    /* pointer to array of     */
-                                           /* directories to search for    */
-                                           /* includes in                  */
-    unsigned       v_listing_file: 1;
-    unsigned       v_resource_file: 1;
-    unsigned       v_show_machine_code: 1;
-    unsigned       v_report_info_msg: 1;
-    unsigned       v_report_warn_msg: 1;
-    unsigned       v_parse_tree: 1;        /* generate parse tree          */
-    unsigned        v_issue_summary: 1;
-    
-    unsigned int    status_update_delay;    /* Number of times a status            */
-                                           /* point is passed before       */
-                                           /* calling statusCB routine     */
-                                           /* 0 means called every time    */
-    Uil_continue_type  (*message_cb)();
-    char               *message_data;
-    Uil_continue_type  (*status_cb)();
-    char               *status_data;
-    unsigned           v_use_setlocale: 1;    /* Allow localized strings */
-    char               *ac_database;
-    unsigned           v_database: 1;
-} cmd_command_line_type;
-
-#endif /* UilCmdDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilCompGl.h b/cde/osf/uil/UilCompGl.h
deleted file mode 100644 (file)
index aedc54e..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilCompGl.h /main/10 1995/07/14 09:32:57 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file contains external declarations of all Uil
-**     compiler globals excluding those which define the recognized
-**     language which are declared in UilSymGl.h
-**
-**--
-**/
-
-#ifndef UilCompGl_h
-#define UilCompGl_h
-
-#include <setjmp.h>
-
-/*
- * Defined in UilCmd.c
- */
-externalref cmd_command_line_type              Uil_cmd_z_command;
-
-/*
- * Defined in UilData
- */
-externalref boolean                            uil_v_case_sensitive;
-externalref jmp_buf                            uil_az_error_env_block;
-externalref boolean                            uil_az_error_env_valid;
-#if debug_version
-externalref boolean                            uil_v_dump_tokens;
-externalref boolean                            uil_v_dump_symbols;
-#endif
-externalref status                             uil_l_compile_status;
-externalref Uil_compile_desc_type              *Uil_compile_desc_ptr;
-externalref int                                        Uil_percent_complete;
-externalref int                                        Uil_lines_processed;
-externalref char                               *Uil_current_file;
-
-/*
- * Defined in UilDiags
- */
-externalref int                                        Uil_message_count[];
-
-/*
- * Defined in UilLexAna
- */
-externalref int                                        Uil_lex_l_user_default_charset;
-externalref sym_value_entry_type               *Uil_lex_az_charset_entry;
-externalref int                                        Uil_lex_l_charset_specified;
-externalref int                                        Uil_lex_l_localized;
-externalref int                                        Uil_lex_l_literal_charset;
-externalref sym_value_entry_type               *Uil_lex_az_literal_charset;
-externalref char                               *comment_text;
-externalref int                                        comment_size;
-/* % Complete */
-externalref int                                Uil_characters_read;
-
-/*
- * Defined in UilLstLst
- */
-externalref char                               Uil_lst_c_title2[];
-
-/*
- * Defined in UilP2Out
- */
-externalref IDBFile                            out_az_idbfile_id;
-
-/*
- * Defined in UilSarMod
- */
-externalref src_source_record_type             *src_az_module_source_record;
-externalref unsigned short int                 *uil_urm_variant;
-externalref unsigned short int                 *uil_arg_compr;
-externalref unsigned short int                 *uil_reas_compr;
-externalref unsigned short int                 *uil_widget_compr;
-externalref unsigned short int                 *uil_child_compr;
-
-/*
- * Defined in UilSrcSrc
- */
-externalref src_source_buffer_type             *src_az_current_source_buffer;
-externalref src_source_buffer_type             *src_az_avail_source_buffer;
-externalref src_message_item_type              *src_az_orphan_messages;
-externalref src_source_record_type             *src_az_current_source_record;
-externalref src_source_record_type             *src_az_first_source_record;
-externalref uil_fcb_type                       *src_az_source_file_table[];
-externalref int                                        src_l_last_source_file_number;
-/* %COMPLETE */
-externalref long                                Uil_file_size;
-
-/*
- * Defined in UilSymStor
- */
-externalref sym_name_entry_type                        *sym_az_hash_table[];
-externalref sym_value_entry_type               *sym_az_error_value_entry;
-externalref sym_external_def_entry_type                *sym_az_external_def_chain;
-externalref sym_forward_ref_entry_type         *sym_az_forward_ref_chain;
-externalref sym_val_forward_ref_entry_type     *sym_az_val_forward_ref_chain;
-externalref sym_module_entry_type              *sym_az_module_entry;
-externalref sym_root_entry_type                        *sym_az_root_entry;
-externalref sym_section_entry_type             *sym_az_current_section_entry;
-externalref sym_entry_type                     *sym_az_entry_list_header;
-externalref URMPointerListPtr                  sym_az_allocated_nodes;
-externalref URMPointerListPtr                  sym_az_freed_nodes;
-
-#endif /* UilCompGl_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilDB.c b/cde/osf/uil/UilDB.c
deleted file mode 100644 (file)
index 8c29541..0000000
+++ /dev/null
@@ -1,1017 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilDB.c /main/11 1996/11/21 20:03:11 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-
-/*
- *++
- *  FACILITY:
- *
- *      UIL Bindary Database :
- *
- *  ABSTRACT:
- *
- *--
- */
-
-/*
- * This file contains routines which change the internal tables of UIL based on
- * a binary data base parameter in the command line 
- */
-
-
-/*
- *
- *  INCLUDE FILES
- *
- */
-
-#ifndef X_NOT_STDC_ENV
-#include <stdlib.h>
-#include <unistd.h>
-#endif
-
-#include <Mrm/MrmAppl.h>
-#include <Mrm/Mrm.h>
-
-#include "UilDefI.h"
-
-#define X_INCLUDE_PWD_H
-#define XOS_USE_XT_LOCKING
-#include <X11/Xos_r.h>
-#include <stdio.h>
-
-/*
- *
- *  TABLE OF CONTENTS
- *
- *
- */
-
-
-/*
- *
- *  DEFINE and MACRO DEFINITIONS
- *
- */
-#define _check_read( __number_returned ) \
-       if (( (__number_returned) != 1) || (feof(dbfile)) || (ferror(dbfile)) ) \
-       {  diag_issue_diagnostic( d_bad_database, diag_k_no_source, diag_k_no_column ); } 
-
-
-
-
-/*
- *
- *  EXTERNAL VARIABLE DECLARATIONS
- *
- */
-
-/*
- *
- *  GLOBAL VARIABLE DECLARATIONS
- *
- */
-
-
-/*
- *
- *  OWN VARIABLE DECLARATIONS
- *
- */
-static FILE *dbfile;
-static int  num_bits;
-\f
-void db_incorporate()
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine incorporate the binary database passed in the command line.
- *
- *
- *  FORMAL PARAMETERS:
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-{
-    int                        return_num_items;
-    _db_header         header;
-    _db_globals                globals;
-
-    db_open_file();
-
-    return_num_items = fread (&globals, sizeof(_db_globals), 1, dbfile);
-    _check_read (return_num_items);
-
-    /*
-     * Some heuristics to see if this is a reasonable database.
-     * The magic numbers are about 10 times as big as the DXm database
-     * for DECWindows V3. The diagnostic does a fatal exit.
-     */
-    if ( globals.uil_max_arg>5000 ||
-        globals.uil_max_charset>200 ||
-        globals.charset_lang_table_max>1000 ||
-        globals.uil_max_object>500 ||
-        globals.uil_max_reason>1000 ||
-        globals.uil_max_enumval>3000 ||
-        globals.uil_max_enumset>1000 ||
-        globals.key_k_keyword_count>10000 ||
-        globals.key_k_keyword_max_length>200 ||
-        globals.uil_max_child>250)
-       diag_issue_diagnostic (d_bad_database,
-                              diag_k_no_source,
-                              diag_k_no_column);
-
-    uil_max_arg = globals.uil_max_arg ;
-    uil_max_charset = globals.uil_max_charset ;
-    charset_lang_table_max = globals.charset_lang_table_max ;
-    uil_max_object = globals.uil_max_object ;
-    uil_max_reason = globals.uil_max_reason ;
-    uil_max_enumval = globals.uil_max_enumval ;
-    uil_max_enumset = globals.uil_max_enumset ;
-    key_k_keyword_count = globals.key_k_keyword_count ;
-    key_k_keyword_max_length = globals.key_k_keyword_max_length ;
-    uil_max_child = globals.uil_max_child;
-    num_bits = (uil_max_object +7) / 8;
-
-    if (globals.version > DB_Compiled_Version) 
-       diag_issue_diagnostic( d_future_version, diag_k_no_source, diag_k_no_column );
-
-    for (;;) 
-       {
-       return_num_items = fread (&header, sizeof(_db_header), 1, dbfile);
-       if (feof(dbfile)) break;
-       _check_read (return_num_items);
-       switch (header.table_id)
-           {
-           case Constraint_Tab:
-               constraint_tab = (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = fread (constraint_tab, 
-                                            sizeof(unsigned char) * header.num_items,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Argument_Type_Table_Value:
-               /*
-                * NOTE: The first entry is not used but we copy it anyway
-                */
-               argument_type_table = (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = fread (argument_type_table,
-                                            sizeof(unsigned char) * header.num_items,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Child_Class_Table:
-               /*
-                * NOTE: The first entry is not used but we copy it anyway
-                */
-               child_class_table = 
-                 (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = 
-                 fread (child_class_table,
-                        sizeof(unsigned char) * header.num_items, 1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Charset_Wrdirection_Table:
-               charset_writing_direction_table = (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = fread (charset_writing_direction_table, 
-                                            sizeof(unsigned char) * header.num_items,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Charset_Parsdirection_Table:
-               charset_parsing_direction_table = (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = fread (charset_parsing_direction_table, 
-                                            sizeof(unsigned char) * header.num_items,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Charset_Charsize_Table:
-               charset_character_size_table = (unsigned char *) XtMalloc (header.table_size);
-               return_num_items = fread (charset_character_size_table, 
-                                            sizeof(unsigned char) * header.num_items,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Key_Table:
-           case Key_Table_Case_Ins:
-               db_read_ints_and_string (&header);
-               break;
-           case Allowed_Argument_Table:
-           case Allowed_Child_Table:
-           case Allowed_Control_Table:
-           case Allowed_Reason_Table:
-               db_read_char_table (&header);
-               break;
-           case Charset_Xmstring_Names_Table:
-           case Charset_Lang_Names_Table:
-           case Uil_Widget_Names:
-           case Uil_Children_Names:
-           case Uil_Argument_Names:
-           case Uil_Reason_Names:
-           case Uil_Enumval_names:
-           case Uil_Charset_Names:
-           case Uil_Widget_Funcs:
-           case Uil_Argument_Toolkit_Names:
-           case Uil_Reason_Toolkit_Names:
-               db_read_length_and_string (&header);
-               break;
-           case Charset_Lang_Codes_Table:
-               charset_lang_codes_table = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (charset_lang_codes_table, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Argument_Enum_Set_Table:
-               argument_enumset_table = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (argument_enumset_table, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Related_Argument_Table:
-               related_argument_table = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (related_argument_table, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Uil_Gadget_Funcs:
-               uil_gadget_variants = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (uil_gadget_variants, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Uil_Urm_Nondialog_Class:
-               uil_urm_nondialog_class = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (uil_urm_nondialog_class, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Uil_Urm_Subtree_Resource:
-               uil_urm_subtree_resource = (unsigned short int *) XtMalloc (header.table_size);
-               return_num_items = fread (uil_urm_subtree_resource, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           case Enum_Set_Table:
-               db_read_int_and_shorts(&header);
-               break;
-           case Enumval_Values_Table:
-               enumval_values_table = (int *) XtMalloc (header.table_size);
-               return_num_items = fread (enumval_values_table, 
-                                            header.table_size,
-                                            1, dbfile);
-               _check_read (return_num_items);
-               break;
-           default:
-               diag_issue_diagnostic( d_bad_database, diag_k_no_source, diag_k_no_column );
-           } /* end switch */
-       } /* end for */
-    fclose (dbfile);
-    return;
-}
-
-
-\f
-void db_read_ints_and_string(header)
-    _db_header_ptr   header;
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine reads in tables of integers and one string unsigned chars and places them into 
- *     memory. It will Malloc new space for the table. The tables supported
- *     this routine are:
- *
- *         Key_Table:
- *         Key_Table_Case_Ins:
- *
- *
- *  FORMAL PARAMETERS:
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-{
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-       int                     return_num_items, i, string_size=0;
-       key_keytable_entry_type *table;
-       char                    *string_table;
-        
-       switch (header->table_id)
-           {
-           /*
-            * NOTE: Calloc is used here to protect against bad
-            *       pointers.
-            */
-           case Key_Table:
-               key_table = (key_keytable_entry_type *) XtCalloc (1, header->table_size);
-               table = key_table;
-               break;
-           case Key_Table_Case_Ins:
-               key_table_case_ins = (key_keytable_entry_type *) XtCalloc (1, header->table_size);
-               table = key_table_case_ins;
-               break;
-           default:
-               diag_issue_internal_error ("Bad table_id in db_read_ints_and_string");
-           }
-
-       /* 
-        * Get the entire table with one read. 
-        * Then loop through the table and up the length of the strings.
-        * Get all the strings with one read.
-        * Reassign the addresses
-        */
-       return_num_items = fread(table, header->table_size, 1, dbfile);
-       _check_read (return_num_items);
-
-       for ( i=0 ; i<header->num_items; i++)
-           {
-           /*
-            * Add one for the null character on the string
-            */
-           string_size += table[i].b_length + 1;
-           };
-
-       string_table = XtMalloc (sizeof (char) * string_size);
-       return_num_items = fread(string_table, 
-                                   sizeof(unsigned char) * string_size,
-                                   1, dbfile);
-       _check_read (return_num_items);
-
-       for ( i=0 ; i<header->num_items; i++)
-           {
-           table[i].at_name = string_table;
-           string_table +=  table[i].b_length + 1; 
-           };
-
-       return;
-}
-
-
-\f
-void db_read_char_table(header)
-    _db_header_ptr   header;
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine reads in tables of unsigned chars and places them into 
- *     memory. It will Malloc new space for the table. The tables supported
- *     this routine are:
- *
- *         Allowed_Argument_Table:
- *         Allowed_Child_Table:
- *         Allowed_Control_Table:
- *         Allowed_Reason_Table:
- *
- *
- *  FORMAL PARAMETERS:
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-{
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-       unsigned char   **ptr;
-       int             return_num_items, i;
-       unsigned char   *table;
-        
-       switch (header->table_id)
-           {
-           /*
-            * NOTE: Calloc is used here to protect against bad
-            *       pointers.
-            */
-           case Allowed_Argument_Table:
-               allowed_argument_table = (unsigned char **) XtCalloc (1, header->table_size);
-               ptr = allowed_argument_table;
-               break;
-           case Allowed_Child_Table:
-               allowed_child_table = 
-                 (unsigned char **) XtCalloc (1, header->table_size);
-               ptr = allowed_child_table;
-               break;
-           case Allowed_Control_Table:
-               allowed_control_table = (unsigned char **) XtCalloc (1, header->table_size);
-               ptr = allowed_control_table;
-               break;
-           case Allowed_Reason_Table:
-               allowed_reason_table = (unsigned char **) XtCalloc (1, header->table_size);
-               ptr = allowed_reason_table;
-               break;
-           default:
-               diag_issue_internal_error ("Bad table_id in db_read_char_table");
-       }
-
-       /*
-        * Read in the entire table contents in one whack.
-        * Then go through the table and set the addresses
-        */
-       table = (unsigned char *) XtMalloc (sizeof (unsigned char) * header->num_items * num_bits);
-       return_num_items = fread(table, 
-                                   sizeof(char) * num_bits * header->num_items,
-                                   1, dbfile);
-       _check_read (return_num_items);
-       for ( i=1 ; i<=header->num_items; i++ )
-           {
-           ptr[i] = table;
-           table += num_bits;
-           };
-
-       return;
-}
-
-
-\f
-void db_read_length_and_string(header)
-    _db_header_ptr   header;
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine reads in length and strings of unsigned chars and places them into 
- *     memory. It will Malloc new space for the table. The tables supported
- *     this routine are:
- *
- *         Charset_Xmstring_Names_Table:
- *         Charset_Lang_Names_Table:
- *         Uil_Widget_Names:
- *         Uil_Children_Names:
- *         Uil_Argument_Names:
- *         Uil_Reason_Names:
- *         Uil_Enumval_names:
- *         Uil_Charset_Names:
- *         Uil_Widget_Funcs:
- *         Uil_Argument_Toolkit_Names:
- *         Uil_Reason_Toolkit_Names:
- *
- *
- *  FORMAL PARAMETERS:
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-{
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-       int             return_num_items, i, string_size=0;
-       int             *lengths;
-       char            *string_table;
-       char            **table;
-        
-       switch (header->table_id)
-           {
-           /*
-            * NOTE: Calloc is used here because it might be possible to
-            *       have a string of zero length, particularly for the
-            *       first record. Ergo we Calloc to protect against bad
-            *       pointers.
-            */
-           case Charset_Xmstring_Names_Table:
-               charset_xmstring_names_table = (char **) XtCalloc (1, header->table_size);
-               table = charset_xmstring_names_table;
-               break;
-           case Charset_Lang_Names_Table:
-               charset_lang_names_table = (char **) XtCalloc (1, header->table_size);
-               table = charset_lang_names_table;
-               break;
-           case Uil_Widget_Names:
-               uil_widget_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_widget_names ;
-               break;
-           case Uil_Children_Names:
-               uil_child_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_child_names ;
-               break;
-           case Uil_Argument_Names:
-               uil_argument_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_argument_names;
-               break;
-           case Uil_Reason_Names:
-               uil_reason_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_reason_names;
-               break;
-           case Uil_Enumval_names:
-               uil_enumval_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_enumval_names;
-               break;
-           case Uil_Charset_Names:
-               uil_charset_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_charset_names;
-               break;
-           case Uil_Widget_Funcs:
-               uil_widget_funcs = (char **) XtCalloc (1, header->table_size);
-               table = uil_widget_funcs;
-               break;
-           case Uil_Argument_Toolkit_Names:
-               uil_argument_toolkit_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_argument_toolkit_names;
-               break;
-           case Uil_Reason_Toolkit_Names:
-               uil_reason_toolkit_names = (char **) XtCalloc (1, header->table_size);
-               table = uil_reason_toolkit_names;
-               break;
-           default:
-               diag_issue_internal_error ("Bad table_id in db_read_length_and_string");
-           }
-
-       /* 
-        * Get the lengths of all the strings with one read.  
-        * Then loop through the table and up the length of the strings.
-        * Get all the strings with one read. 
-        * Reassign the addresses using the length table and string table.
-        * Cleanup by Freeing length table.
-        * 
-        * NOTE: In some tables the counting starts at 1 not 0 so you
-        *       have to be carefull.
-        */
-
-       lengths = (int *) XtMalloc (sizeof (int) * (header->num_items + 1));
-       return_num_items = fread(lengths, 
-                                   sizeof(int) * (header->num_items + 1),
-                                   1, dbfile);
-       _check_read (return_num_items);
-       for ( i=0 ; i<=header->num_items; i++)
-           {
-           /*
-            * Add one for the null terminator
-            */
-           if (lengths[i])
-               {
-               string_size += lengths[i] + 1;
-               }
-           }
-
-       string_table = XtMalloc (sizeof (unsigned char) * string_size);
-       return_num_items = fread(string_table, 
-                                   sizeof(unsigned char) * string_size,
-                                   1, dbfile);
-       _check_read (return_num_items);
-       for ( i=0 ; i<=header->num_items; i++)
-           {
-           if (lengths[i])
-               {
-               table[i] = string_table;
-/* BEGIN HaL Fix CR 5618 */
-                 if ((header->table_id == Uil_Widget_Names) &&
-                     (strcmp(table[i], "user_defined") == 0))
-                   uil_sym_user_defined_object = i;
-/* END HaL Fix CR 5618 */
-               string_table +=  lengths[i] + 1;
-               }
-           }
-
-       XtFree ((char *)lengths);
-
-       return;
-}
-
-
-\f
-void db_read_int_and_shorts(header)
-    _db_header_ptr   header;
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine reads in a structure consisting of one integer and a 
- *     pointer to a table of integer and places them into 
- *     memory. It will Malloc new space for the table. The tables supported
- *     this routine are:
- *
- *         Enum_Set_Table:
- *
- *
- *  FORMAL PARAMETERS:
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-{
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-       int                     return_num_items, i, int_table_size=0;
-       UilEnumSetDescDef       *table;
-       unsigned short int      *int_table;
-        
-       switch (header->table_id)
-           {
-           case Enum_Set_Table:
-               enum_set_table = (UilEnumSetDescDef *) XtCalloc (1, header->table_size);
-               table = enum_set_table;
-               break;
-           default:
-               diag_issue_internal_error ("Bad table_id in db_read_int_shorts");
-           }
-
-       /* 
-        * Get the entire table with one read. 
-        * Then loop through the table and add up the number of ints in each int table.
-        * Get all the integer tables with one read.
-        * Reassign the addresses of the tables.
-        */
-       return_num_items = fread(table, header->table_size, 1, dbfile);
-       _check_read (return_num_items);
-       for ( i=0 ; i<=header->num_items; i++)
-           {
-           int_table_size += table[i].values_cnt;
-           }
-
-       int_table = (unsigned short int *) XtCalloc (1, sizeof (short) * int_table_size);
-       return_num_items = fread(int_table, 
-                                   sizeof(short) * int_table_size,
-                                   1, dbfile);
-       _check_read (return_num_items);
-       for ( i=0 ; i<=header->num_items; i++)
-           {
-           if (table[i].values_cnt)
-               {
-               table[i].values = int_table;
-               int_table += table[i].values_cnt;
-               }
-           }
-
-       return;
-}
-
-
-\f
-void db_open_file ()
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine opens the binary database file in a platform-dependent way,
- *     performing i18n language switching in order to do so.
- *
- *     Per the latest agreement on semantics, this routine does:
- *             - first, try to open in the local directory (that is, with
- *               no switching).
- *             - second, try language switching and open
- *
- *  FORMAL PARAMETERS:
- *
- *     name            A system-dependent string specifying the IDB file
- *                     to be opened.
- *
- *  IMPLICIT INPUTS:
- *
- *  IMPLICIT OUTPUTS:
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *--
- */
-
-{
-
-/*
- *  External Functions
- */
-
-/*
- *  Local variables
- */
-       char                    *resolvedname;          /* current resolved name */
-       SubstitutionRec         subs[3];
-       char                    *wmdPath;
-
-       /*
-        * Use XtFindFile instead of XtResolvePathName. XtResolvePathName requires a
-        * display which UIL doesn't have. At the current time there is no support for
-        * $LANG in the path string. If such support was deamed necessary, the %L, %l,
-        * %t, %c values would be set up as subs here using globals from the fetch of
-        * LANG variable used to determine the default codeset (or vice versa depending
-        * on which is called first) 
-        *
-        * If the last 4 characters of the file name are not .bdb
-        * then pass in the suffix of .bdb. If a file isn't found with the suffix passed
-        * in then try without the suffix.
-        */
-
-       /*
-        * Make sure 'S' is the last one so we can remove the suffix for the first pass.
-        */
-       subs[0].match = 'N';
-       subs[0].substitution = Uil_cmd_z_command.ac_database;
-       subs[1].match = 'T';
-       subs[1].substitution = "wmd";
-       subs[2].match = 'S';
-       subs[2].substitution = ".wmd";
-
-       wmdPath = init_wmd_path(Uil_cmd_z_command.ac_database);
-
-       resolvedname = 0;
-
-       /*
-        * Check and see if the .wmd suffix is already on the file. If not then try to
-        * resolve the pathname with .wmd suffix first. If that fails or the suffix is
-        * already on the file then just try to resolve the pathname.
-        */
-       if ( strcmp (&Uil_cmd_z_command.ac_database[strlen(Uil_cmd_z_command.ac_database)-4],".wmd") != 0 ) 
-               resolvedname = XtFindFile(wmdPath,
-                                             subs,
-                                             XtNumber(subs),
-                                             (XtFilePredicate)NULL);
-
-       /*
-        * No .wmd suffix or a failure to resolve the pathname with the .wmd suffix
-        * Try without the suffix.
-        */
-       subs[2].substitution = "";
-       if (resolvedname == 0) 
-               resolvedname = XtFindFile(wmdPath,
-                                             subs,
-                                             XtNumber(subs),
-                                             (XtFilePredicate)NULL);
-
-       if (resolvedname == 0)
-           {
-           diag_issue_diagnostic( d_wmd_open,
-                                  diag_k_no_source, diag_k_no_column,
-                                  Uil_cmd_z_command.ac_database);
-           }
-
-       dbfile = fopen (resolvedname, "r");
-
-       /* If the file is not found, a fatal error is generated.        */
-       if (dbfile == NULL)
-           {
-           diag_issue_diagnostic( d_src_open,
-                                  diag_k_no_source, diag_k_no_column,
-                                  resolvedname);
-           }
-
-       return;
-}
-
-
-\f
-
-String get_root_dir_name()
-{
-       int uid;
-       _Xgetpwparams pwd_buf;
-       struct passwd *pwd_value;
-       static char *ptr = NULL;
-       char *outptr;
-
-       if (ptr == NULL)
-       {
-       if((ptr = (char *)getenv("HOME")) == NULL) 
-           {
-           if((ptr = (char *)getenv(USER_VAR)) != NULL) 
-               {
-               pwd_value = _XGetpwnam(ptr, pwd_buf);
-               }
-           else 
-               {
-               uid = getuid();
-               pwd_value = _XGetpwuid(uid, pwd_buf);
-               }
-           if (pwd_value != NULL)
-               {
-               ptr = pwd_value->pw_dir;
-               }
-           else 
-               {
-                ptr = "";
-               }
-           }
-       }
-
-       outptr = XtMalloc (strlen(ptr) + 2);
-       strcpy (outptr, ptr);
-       strcat (outptr, "/");
-       return outptr; 
-}
-\f
-/*
- * XAPPLRES_DEFAULT and UIDPATH_DEFAULT are intentionally split to support
- * SCCS. DO NOT reformat the lines else %-N-%-S could be converted by SCCS into
- * something totally bizarre causing MrmOpenHierarchy failures.
- */
-
-/* The following are usually defined in the Makefile */
-
-#ifndef LIBDIR
-#define LIBDIR "/usr/lib/X11"
-#endif
-#ifndef INCDIR
-#define INCDIR "/usr/include/X11"
-#endif
-
-static char libdir[] = LIBDIR;
-static char incdir[] = INCDIR;
-
-static char XAPPLRES_DEFAULT[] = "\
-%%N\
-%%S:\
-%s/%%T/%%N\
-%%S:\
-%s%%T/%%N\
-%%S:\
-%s%%N\
-%%S:\
-%s/%%T/%%N\
-%%S:\
-%s/%%T/%%N\
-%%S";
-
-static char WMDPATH_DEFAULT[] = "\
-%%N\
-%%S:\
-%s%%T/%%N\
-%%S:\
-%s%%N\
-%%S:\
-%s/%%L/%%T/%%N\
-%%S:\
-%s/%%T/%%N\
-%%S";
-
-static char ABSOLUTE_PATH[] = "\
-%N\
-%S";
-
-String init_wmd_path(filename)
-    String     filename ;
-{
-    String path;
-    String old_path;
-    String homedir;
-    String wmd_path;
-
-
-    if (filename[0] == '/')
-       {
-       wmd_path = XtMalloc(strlen(ABSOLUTE_PATH));
-       strcpy (wmd_path, ABSOLUTE_PATH);
-       }
-    else
-       {
-       path = (char *)getenv ("WMDPATH");
-       if (path  == NULL) 
-           {
-           homedir = get_root_dir_name();
-           old_path = (char *)getenv ("XAPPLRESDIR");
-           if (old_path == NULL) 
-               {
-               wmd_path = XtCalloc(1, 2*strlen(homedir) +
-                                strlen(libdir) + strlen(incdir) +
-                                strlen(WMDPATH_DEFAULT));
-               sprintf( wmd_path, WMDPATH_DEFAULT,
-                        homedir, homedir, libdir, incdir);
-               } 
-           else 
-               {
-               wmd_path = XtCalloc(1, 1*strlen(old_path) + 2*strlen(homedir) +
-                                strlen(libdir) + strlen(incdir) +
-                                strlen(XAPPLRES_DEFAULT));
-               sprintf(wmd_path, XAPPLRES_DEFAULT, 
-                       old_path,
-                       homedir, homedir, libdir, incdir);
-               }
-           XtFree (homedir);
-           }
-       else
-           {
-           wmd_path = XtMalloc(strlen(path) + 1);
-           strcpy (wmd_path, path);
-           free (path);
-           }
-       }
-    return (wmd_path);
-}
diff --git a/cde/osf/uil/UilData.c b/cde/osf/uil/UilData.c
deleted file mode 100644 (file)
index da6ab0b..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilData.c /main/14 1999/04/16 10:41:44 mgreess $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      Global data definitions
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <setjmp.h>
-
-#include <Dt/Editor.h>
-#include <Dt/Help.h>
-#include <Dt/HelpDialog.h>
-#include <Dt/HelpQuickD.h>
-#include <Dt/MenuButton.h>
-#include <Dt/Print.h>
-#include <Dt/TermPrim.h>
-#include <Dt/Term.h>
-
-#include <Mrm/MrmAppl.h>
-#include <Mrm/Mrm.h>
-#include <Xm/MwmUtil.h> /* For MWM_*_* defines. */
-
-#include "UilDefI.h"
-#include "UilSymGen.h"
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-/*    Case sensitivity switch; TRUE if case sensitive.    */
-
-
-
-externaldef(uil_comp_glbl) boolean     uil_v_case_sensitive = TRUE;
-
-/*    Location to store error type.    */
-
-externaldef(uil_comp_glbl) jmp_buf     uil_az_error_env_block;
-externaldef(uil_comp_glbl) boolean     uil_az_error_env_valid = FALSE;
-
-/*    Debugging switches.    */
-
-#if debug_version
-externaldef(uil_comp_glbl) boolean     uil_v_dump_tokens = FALSE;
-externaldef(uil_comp_glbl) boolean     uil_v_dump_symbols = FALSE;
-#endif
-
-externaldef(uil_comp_glbl) status      uil_l_compile_status = uil_k_success_status;
-externaldef(uil_comp_glbl) Uil_compile_desc_type   *Uil_compile_desc_ptr = NULL;
-externaldef(uil_comp_glbl) int         Uil_percent_complete = 0;
-externaldef(uil_comp_glbl) int         Uil_lines_processed = 0;
-externaldef(uil_comp_glbl) char        *Uil_current_file = "";
-
-
-/*     Define the user-defined object and default character set */
-externaldef(uil_sym_glbl) unsigned short int   uil_sym_user_defined_object =
-               sym_k_user_defined_object;
-externaldef(uil_sym_glbl) unsigned short int   uil_sym_default_charset =
-               sym_k_iso_latin1_charset;
-externaldef(uil_sym_glbl) unsigned short int   uil_sym_isolatin1_charset =
-               sym_k_iso_latin1_charset;
-
-/*     argument types, allowed tables, constraints, related arguments */
-#include "UilSymArTy.h"
-#include "UilSymRArg.h"
-#include "UilSymArTa.h"
-#include "UilSymReas.h"
-#include "UilSymCtl.h"
-#include "UilConst.h"
-
-/* Allowed children and child classes */
-#include "UilSymChCl.h"
-#include "UilSymChTa.h"
-
-/*     sym_k... to name vectors. */
-#include "UilSymNam.h"
-
-/*     Define mapping of sym_k_..._value to data type names. */
-externaldef(uil_comp_glbl) int uil_max_value = sym_k_max_value;
-externaldef(uil_comp_glbl) char *uil_datatype_names [] = {
-    "",        /* NOT USED */
-    "any",
-    "boolean",
-    "string",          /* char 8 */
-    "compound_string",
-    "float",
-    "integer",
-    "single_float",
-    "localized_string",
-    "wchar_string",
-    "horizontal_dimension_integer",
-    "vertical_dimension_integer",
-    "horizontal_dimension_float",
-    "vertical_dimension_float",
-    "argument",
-    "asciz_table",
-    "class_rec_name",
-    "color",
-    "color_table",
-    "font",
-    "font_table",
-    "icon",
-    "identifier",
-    "integer_table",
-    "keysym",
-    "pixmap",
-    "reason",
-    "rgb",
-    "string_table",
-    "translation_table",
-    "widget_ref",
-    "xbitmapfile",
-    "fontset",
-    "child",
-};
-
-/*     Enumeration Set/Value tables */
-#include "UilSymEnum.h"
-
-/*     Character set attribute tables */
-#include "UilSymCSet.h"
-
-/*     Mrm encoding information */
-#include "UilUrmClas.h"
-
-/*     Names of tokens in grammar */
-#include "UilTokName.h"
-
-/*     The keyword tables */
-#include "UilKeyTab.h"
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
diff --git a/cde/osf/uil/UilDef.h b/cde/osf/uil/UilDef.h
deleted file mode 100644 (file)
index bcd4860..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilDef.h /main/13 1995/07/14 09:33:37 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the set of definitions used by the public
-**     access routines Uil and UilDumpSymbolTable.
-**
-**--
-**/
-
-#ifndef UilDef_h
-#define UilDef_h
-
-#if    !defined(__STDC__) && !defined(__cplusplus) && !defined(c_plusplus) \
-    && !defined(FUNCPROTO) && !defined(XTFUNCPROTO) && !defined(XMFUNCPROTO)
-#define _NO_PROTO
-#endif /* __STDC__ */
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-/*
-** Includes needed by other include files.
-*/
-#include <X11/Intrinsic.h>     
-
-/*
-**
-** Common includes needed by public functions.
-**
-*/
-#include <uil/Uil.h>
-#include <uil/UilDBDef.h>      /* This has to be loaded first. */
-#include <uil/UilSymGl.h>
-#include <uil/UilSymDef.h>
-
-/*
-** Function declarations not defined elsewhere
-*/
-#define _ARGUMENTS(arglist) arglist
-
-#if defined(__cplusplus) || defined(c_plusplus)
-extern "C" {
-#endif
-
-/* uilmain.c */
-extern Uil_status_type Uil _ARGUMENTS((Uil_command_type
-*comand_desc,Uil_compile_desc_type *compile_desc,Uil_continue_type
-(*message_cb)(), char *message_data, Uil_continue_type (*status_cb)(),
-char *status_data));
-
-/* uilsymstor.c */
-extern void UilDumpSymbolTable  _ARGUMENTS(( sym_entry_type *node_entry ));
-
-#if defined(__cplusplus) || defined(c_plusplus)
-}
-#endif
-
-#endif /* UilDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilDefI.h b/cde/osf/uil/UilDefI.h
deleted file mode 100644 (file)
index 243d5dc..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $TOG: UilDefI.h /main/13 1999/07/07 10:24:15 vipin $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the set of definitions used by all of
-**     modules of the UIL compiler.
-**
-**--
-**/
-
-#ifndef UilDefI_h
-#define UilDefI_h
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#define X_INCLUDE_TIME_H
-#define XOS_USE_XT_LOCKING
-#include <X11/Xos_r.h>         /* for _Xctimeparams */
-
-#include <Mrm/MrmAppl.h>
-#include <Mrm/Mrm.h>
-
-/*
-**                                    
-**  Universal Definitions
-**
-*/
-
-#define _compiler_version "V2.0-000"
-#define _compiler_version_int 2
-#define _data_version 2
-#define _host_compiler "Motif Uil Compiler"
-
-#ifdef TRUE
-#undef TRUE
-#endif
-#define TRUE           1
-
-#ifdef FALSE
-#undef FALSE
-#endif
-#define FALSE          0
-
-#ifndef debug_version
-#define debug_version  FALSE
-#endif
-
-#define NOSTRING_DIRECTION 2
-
-#define k_normal       1
-#define k_error        0
-
-typedef int status;
-typedef int boolean;
-
-/*
-**  Copy const handling from XmP.h.
-*/
-
-#ifndef XmConst
-#if defined(__STDC__) || !defined( NO_CONST )
-#define XmConst const
-#else
-#define XmConst
-#endif /* __STDC__ */
-#endif /* XmConst */
-
-/* Uil will automatically strip this prefix when saving name of automatically
- * created child.  This is used to prevent name conflicts in existing uil 
- * files.  Children names without this prefix will be saved as is.
- */
-#define AUTO_CHILD_PREFIX "Xm_"
-
-/*
-**
-**  Constants controlling limits in the compiler
-**
-*/
-
-#define src_k_max_source_files         101
-#define src_k_max_source_line_length   132
-#define lex_k_unprint_sub              '?'
-#define sym_k_max_list_count           1000
-#define sym_k_max_color_count          256
-#define Uil_k_max_include_dir_count    32
-
-/*
-**
-**  Definition of Compiler Termination Statuses
-**
-*/
-
-#define uil_k_min_status       Uil_k_min_status
-#define uil_k_success_status   Uil_k_success_status
-#define uil_k_info_status      Uil_k_info_status
-#define uil_k_warning_status   Uil_k_warning_status
-#define uil_k_error_status     Uil_k_error_status
-#define uil_k_severe_status    Uil_k_severe_status
-#define uil_k_max_status       Uil_k_max_status
-
-
-/*
-**
-**  Macros to access bit vectors
-**
-*/
-
-/* MOVED TO DBDef.h */
-
-
-/*
-**
-**  Upper and Lower Case Translation Macros
-**
-*/
-
-#define _upper(c)      ((c) >= 'a' && (c) <= 'z' ? (c) & 0x5F:(c))
-#define _lower(c)      ((c) >= 'A' && (c) <= 'Z' ? (c) | 0x20:(c))
-
-
-/*
-**
-**  Assert Macro
-**
-*/
-
-#if debug_version
-#define _assert( __condition, __text )                 \
-       if (!(__condition))                             \
-       {  diag_issue_internal_error( (__text)); }
-#else
-#define _assert( __condition, __text )                 \
-       if (!(__condition))                             \
-       {  diag_issue_internal_error( NULL ); }
-#endif
-
-/*
-**
-**  _error and _okay macro
-**
-*/
-
-#define _error( __status )     \
-       ((__status & 1)==0)
-
-#define _success( __status )   \
-       ((__status & 1)==1)
-
-
-/*
-**
-**  Memory allocation definitions
-**
-*/
-
-#define _get_memory XtMalloc
-
-#define _free_memory XtFree
-
-/*
-**
-**  Move macro
-**
-*/
-
-#ifdef NO_MEMMOVE
-/* For fixing the bug CR 4581 */
-extern char* uil_mmove(char*, char*, int);
-
-#define _move uil_mmove
-#else
-#define _move memmove
-#endif /* NO_MEMMOVE */
-
-/*
-**
-**  Compare macro
-**
-*/
-
-#define _compare strcmp
-
-/*
-**
-**  Fill macro
-**
-*/
-
-#define _fill( __string, __char, __len )       \
-    {                                          \
-      register int i = __len;                  \
-      while (--i >= 0)                         \
-       (__string)[i] = __char;                 \
-    }
-
-/*
-**
-**  Index macro
-**
-*/
-
-#define _index( __char, __string, __len ) \
-    ((int)((char *)memchr( __string, __char, __len ) - (char *)__string ))
-
-/*
-**
-**  Debug output macro
-**
-*/
-#if debug_version
-#define _debug_output lst_debug_output
-#else
-#define _debug_output printf
-#endif
-
-
-/*
-**
-** Common includes needed by most modules
-**
-*/
-#include "Uil.h"
-#include "UilDBDef.h"                      /* for binary database */
-#include "UilMess.h"
-#include "UilSymDef.h"                 /* must come before UilKeyDef.h */
-#include "UilSrcDef.h"                 /* must come before UilIODef.h */
-#include "UilIODef.h"
-#include "UilDiagDef.h"
-#include "UilSarDef.h"
-#if defined(linux)
-#define YYSTYPE yystype
-#endif
-#include "UilLexPars.h"
-#include "UilCmdDef.h"
-#include "UilLexDef.h"
-
-/*
-** Global declarations
-*/
-#include "UilSymGl.h"
-#include "UilCompGl.h"
-
-/* Needed for following macro. */
-#include "UilSymGen.h"
-
-#define DEFAULT_TAG uil_charset_names[sym_k_XmFONTLIST_DEFAULT_TAG_charset]
-
-/*
-** Function declarations not defined elsewhere
-*/
-#define _ARGUMENTS(arglist) arglist
-
-/* uilcmd.c */
-
-#if defined(__cplusplus) || defined(c_plusplus)
-extern "C" {
-#endif
-
-extern void diag_issue_diagnostic  
-       _ARGUMENTS(( int d_message_number , 
-                   src_source_record_type *az_src_rec ,
-                   int l_start_column, ... ));
-extern void lst_debug_output  _ARGUMENTS(( char *format, ... ));
-
-
-void cmd_decode_command_line  _ARGUMENTS(( int l_arg_count , char *rac_arg_value []));
-
-/* uildb.c */
-extern void db_incorporate _ARGUMENTS(( void ));
-extern void db_read_ints_and_string _ARGUMENTS((_db_header_ptr header));
-extern void db_read_char_table _ARGUMENTS((_db_header_ptr header));
-extern void db_read_length_and_string _ARGUMENTS((_db_header_ptr header));
-extern void db_read_int_and_shorts _ARGUMENTS((_db_header_ptr header));
-extern void db_open_file _ARGUMENTS(( void ));
-extern String get_root_dir_name _ARGUMENTS(( void ));
-extern String init_wmd_path _ARGUMENTS((String filename));
-
-/* uildiags.c */
-extern void diag_issue_summary  _ARGUMENTS(( void ));
-extern char *diag_tag_text  _ARGUMENTS(( int XmConst b_tag ));
-extern char *diag_object_text  _ARGUMENTS(( int XmConst b_type ));
-extern char *diag_value_text  _ARGUMENTS(( int XmConst b_type ));
-extern char *diag_charset_text  _ARGUMENTS(( int XmConst b_type ));
-extern void diag_initialize_diagnostics  _ARGUMENTS(( void ));
-extern void diag_restore_diagnostics  _ARGUMENTS(( void ));
-extern void diag_reset_overflow_handler  _ARGUMENTS(( void ));
-extern void diag_handler  _ARGUMENTS(( int l_error ));
-extern void diag_issue_internal_error  _ARGUMENTS(( char *error_text ));
-extern void write_msg_to_standard_error  _ARGUMENTS(( XmConst int message_number , XmConst char *src_buffer , XmConst char *ptr_buffer , XmConst char *msg_buffer , XmConst char *loc_buffer ));
-extern char XmConst *diag_get_message_abbrev  _ARGUMENTS(( int d_message_number ));
-extern void diag_report_status  _ARGUMENTS(( void ));
-
-/* uilkeytab.c */
-extern key_keytable_entry_type *key_find_keyword  _ARGUMENTS(( unsigned int symbol_length , char *symbol_ptr ));
-extern void key_initialize  _ARGUMENTS(( void ));
-
-/* uillexana.c */
-extern int yylex  _ARGUMENTS(( void ));
-extern void lex_initialize_analyzer  _ARGUMENTS(( void ));
-extern void Uil_lex_cleanup_analyzer  _ARGUMENTS(( void ));
-extern void lex_issue_error  _ARGUMENTS(( int restart_token ));
-extern void issue_control_char_diagnostic  _ARGUMENTS(( unsigned char c_char ));
-extern void lex_filter_unprintable_chars  _ARGUMENTS(( unsigned char *buffer , int length , unsigned long flags ));
-extern long cvt_ascii_to_long  _ARGUMENTS(( unsigned char XmConst *c_text ));
-extern sym_value_entry_type *create_str_entry  _ARGUMENTS(( int l_size , int l_charset , sym_value_entry_type *az_charset_entry ));
-
-/* uillstlst.c */
-extern void lst_open_listing  _ARGUMENTS(( void ));
-extern void Uil_lst_cleanup_listing  _ARGUMENTS(( void ));
-extern status create_listing_file  _ARGUMENTS(( uil_fcb_type *az_fcb ));
-extern void lst_output_line  _ARGUMENTS(( char *ac_line , boolean v_new_page ));
-extern char *current_time  _ARGUMENTS(( _Xctimeparams *ctime_buf ));
-extern void lst_output_listing  _ARGUMENTS(( void ));
-extern void lst_output_messages  _ARGUMENTS(( src_message_item_type *az_message_item ));
-extern void lst_output_machine_code  _ARGUMENTS(( src_source_record_type *az_src_rec ));
-extern void lst_output_message_ptr_line  _ARGUMENTS(( src_source_record_type *az_src_rec , char *src_buffer ));
-
-/* uillstmac.c */
-extern void save_widget_machine_code  _ARGUMENTS(( sym_widget_entry_type *widget_entry , URMResourceContext *az_context ));
-extern void unload_stack  _ARGUMENTS(( char *rec , int rec_size , src_source_record_type *az_src_rec ));
-extern void save_value_machine_code  _ARGUMENTS(( sym_value_entry_type *value_entry , URMResourceContext *az_context ));
-extern void save_module_machine_code  _ARGUMENTS(( src_source_record_type *az_src_rec , URMResourceContext *az_context ));
-extern void off_put  _ARGUMENTS(( unsigned short off_type , unsigned short off_offset ));
-extern void off_get  _ARGUMENTS(( unsigned short *off_type , unsigned short *off_offset ));
-extern char *type_from_code  _ARGUMENTS(( MrmType type_code ));
-extern char *access_from_code  _ARGUMENTS(( MrmFlag access_code ));
-extern char *group_from_code  _ARGUMENTS(( MrmGroup group_code ));
-extern void format_arg_value  _ARGUMENTS(( RGMArgValuePtr argval_ptr , char *buffer ));
-extern char *class_name_from_code  _ARGUMENTS(( MrmCode mrm_class ));
-extern char *resource_name_from_code  _ARGUMENTS(( MrmCode resource ));
-
-/* uilmain.c */
-extern void uil_exit  _ARGUMENTS(( int severity ));
-extern Uil_status_type Uil _ARGUMENTS((Uil_command_type
-*comand_desc,Uil_compile_desc_type *compile_desc,Uil_continue_type
-(*message_cb)(), char *message_data, Uil_continue_type (*status_cb)(),
-char *status_data));
-
-
-/* uilp2out.c */
-extern void sem_output_uid_file  _ARGUMENTS(( void ));
-extern void push  _ARGUMENTS(( sym_entry_type *sym_entry ));
-extern sym_entry_type *pop  _ARGUMENTS(( void ));
-extern void out_emit_widget  _ARGUMENTS(( sym_widget_entry_type *widget_entry ));
-extern void extract_subtree_control  _ARGUMENTS(( sym_list_entry_type *list_entry , sym_control_entry_type **menu_entry , int *count ));
-extern void extract_create_callback  _ARGUMENTS(( sym_list_entry_type *list_entry , sym_callback_entry_type **create_entry ));
-extern void process_all_callbacks  _ARGUMENTS(( sym_list_entry_type *list_entry , int *arglist_index ));
-extern void process_all_arguments  _ARGUMENTS(( sym_list_entry_type *list_entry , int *arglist_index , int *related_count ));
-extern void process_all_controls  _ARGUMENTS(( sym_list_entry_type *list_entry , int *widget_index ));
-extern void out_emit_value  _ARGUMENTS(( sym_value_entry_type *value_entry ));
-extern void emit_callback  _ARGUMENTS(( sym_callback_entry_type *callback_entry , int *arglist_index , boolean emit_create ));
-extern void emit_callback_procedures _ARGUMENTS(( sym_proc_ref_entry_type *proc_ref_entry_next, int *proc_ref_index, MrmOffset callback_offset ));
-extern int count_proc _ARGUMENTS(( sym_list_entry_type *proc_list, int count));
-extern void emit_argument  _ARGUMENTS(( sym_argument_entry_type *argument_entry , int arglist_index , int *related_arg_count ));
-extern void emit_control  _ARGUMENTS(( sym_control_entry_type *control_entry , int control_offset ));
-extern MrmCode ref_value  _ARGUMENTS(( sym_value_entry_type *value_entry , MrmCode *arg_type , long *arg_value , MrmCode *arg_access , char **arg_index , MrmResource_id *arg_id , MrmCode *arg_group ));
-extern MrmCode ref_control  _ARGUMENTS(( sym_control_entry_type *control_entry , MrmCode *access , char **index , MrmResource_id *id ));
-extern void issue_urm_error  _ARGUMENTS(( char *problem ));
-extern MrmCode Urm_code_from_uil_type  _ARGUMENTS(( int uil_type ));
-extern int compute_color_table_size  _ARGUMENTS(( sym_value_entry_type *table_entry ));
-extern void create_color_table  _ARGUMENTS(( sym_value_entry_type *table_entry , char *buffer ));
-extern int compute_icon_size  _ARGUMENTS(( sym_value_entry_type *icon_entry ));
-extern void create_icon  _ARGUMENTS(( sym_value_entry_type *icon_entry , char *buffer ));
-extern int compute_list_size  _ARGUMENTS(( sym_list_entry_type *list_entry , int type ));
-extern void create_int_compression_codes  _ARGUMENTS(( void ));
-extern void create_ext_compression_codes  _ARGUMENTS(( void ));
-
-/* uilp2reslv.c */
-extern void sem_resolve_forward_refs  _ARGUMENTS(( void ));
-
-/* uilsarcomp.c */
-extern sym_value_entry_type *sem_create_cstr  _ARGUMENTS(( void ));
-extern sym_value_entry_type *sem_create_wchar_str  _ARGUMENTS(( void ));
-extern void sem_append_str_to_cstr  _ARGUMENTS(( sym_value_entry_type *az_cstr_entry , sym_value_entry_type *az_str_entry , boolean op2_temporary ));
-extern void sem_append_cstr_to_cstr  _ARGUMENTS(( sym_value_entry_type *az_cstr1_entry , sym_value_entry_type *az_cstr2_entry , boolean op2_temporary ));
-extern sym_value_entry_type *sem_cat_str_to_str  _ARGUMENTS(( sym_value_entry_type *az_str1_entry , boolean op1_temporary , sym_value_entry_type *az_str2_entry , boolean op2_temporary ));
-extern int sem_map_subclass_to_charset  _ARGUMENTS(( int charset_as_subclass ));
-extern void sar_charset_verify  _ARGUMENTS(( yystype *charset_frame ));
-extern void sar_make_fallback_charset _ARGUMENTS((yystype *name_frame)); 
-extern void sar_chk_charset_attr  _ARGUMENTS(( yystype *target_frame , yystype *value_frame , yystype *prior_value_frame ));
-extern void sar_make_charset  _ARGUMENTS(( yystype *target_frame , yystype *value_frame , yystype *attr_frame , yystype *keyword_frame ));
-
-/* uilsarexp.c */
-extern void sar_binary_op  _ARGUMENTS(( yystype *operator_frame , yystype *op1_frame , yystype *op2_frame ));
-extern void sar_unary_op  _ARGUMENTS(( yystype *operator_frame , yystype *op1_frame ));
-
-/* uilsarinc.c */
-extern void sar_include_file  _ARGUMENTS(( yystype *file_frame , yystype *include_frame , yystype *semi_frame ));
-
-/* uilsarmod.c */
-extern void sar_initialize  _ARGUMENTS(( void ));
-extern void sar_create_root  _ARGUMENTS(( yystype *root_frame ));
-extern void sar_create_module  _ARGUMENTS(( yystype *target_frame , yystype *id_frame , yystype *module_frame ));
-extern void sar_process_module_version  _ARGUMENTS(( yystype *value_frame , yystype *start_frame ));
-extern void sar_process_module_sensitivity  _ARGUMENTS(( yystype *token_frame , yystype *start_frame ));
-extern void sar_process_module_charset  _ARGUMENTS(( yystype *token_frame , yystype *start_frame ));
-extern void sar_save_module_source  _ARGUMENTS(( void ));
-extern void sar_make_def_obj  _ARGUMENTS(( yystype *object_frame ));
-extern void sar_process_module_variant  _ARGUMENTS(( yystype *obj_type_frame , yystype *variant_frame ));
-extern void sar_save_section_source  _ARGUMENTS(( yystype *header_frame , int section_type ));
-
-/* uilsarobj.c */
-extern void sar_assoc_comment  _ARGUMENTS(( sym_obj_entry_type    *object ));
-extern void sar_create_object  _ARGUMENTS(( yystype *object_frame , unsigned char object_type ));
-extern void sar_create_child  _ARGUMENTS(( yystype *object_frame ));
-extern void sar_link_section  _ARGUMENTS(( yystype *id_frame ));
-extern void sar_save_src_semicolon_pos  _ARGUMENTS(( yystype *semi_frame ));
-extern void sar_save_list_end  _ARGUMENTS(( yystype *close_frame ));
-extern void sar_save_src_entry_end  _ARGUMENTS(( yystype *close_frame , yystype *entry_frame ));
-extern void sar_set_object_flags  _ARGUMENTS(( yystype *current_frame , unsigned char mask ));
-extern void sar_unset_object_flags  _ARGUMENTS(( yystype *current_frame , unsigned char mask ));
-extern void sar_set_list_type  _ARGUMENTS(( yystype *current_frame ));
-extern void sar_set_object_class  _ARGUMENTS(( yystype *current_frame ));
-extern void sar_set_object_variant  _ARGUMENTS(( yystype *current_frame ));
-extern yystype *sem_find_object  _ARGUMENTS(( yystype *current_frame ));
-extern void sar_object_reference  _ARGUMENTS(( yystype *ref_frame ));
-extern void sar_update_parent_list  _ARGUMENTS(( yystype *control_list_frame ));
-extern void parent_list_traverse  _ARGUMENTS(( sym_widget_entry_type *widget_entry , sym_list_entry_type *control_list_entry ));
-extern void sar_save_feature  _ARGUMENTS(( yystype *feature_frame ));
-extern void sar_save_argument_pair  _ARGUMENTS(( yystype *argument_frame , yystype *value_frame , yystype *equals_frame ));
-extern void sar_save_reason_binding  _ARGUMENTS(( yystype *reason_frame , yystype *proc_ref_frame , yystype *equals_frame ));
-extern void sar_save_control_item  _ARGUMENTS(( yystype *managed_frame , yystype *item_frame ));
-extern void sar_save_control_widget  _ARGUMENTS(( yystype *control_frame , yystype *item_frame ));
-extern void sar_save_user_proc_ref_src  _ARGUMENTS(( yystype *procedure_frame , yystype *proc_id_frame , yystype *proc_arg_frame ));
-extern void sar_process_proc_ref  _ARGUMENTS(( yystype *proc_id_frame , yystype *proc_arg_frame , int context ));
-extern void sar_add_list_entry  _ARGUMENTS(( yystype *entry_frame ));
-extern void sar_add_forward_list_entry  _ARGUMENTS(( yystype *entry_frame ));
-extern void sar_verify_object  _ARGUMENTS(( yystype *current_frame ));
-extern sym_entry_type *sem_allocate_node  _ARGUMENTS(( unsigned char node_tag , unsigned short node_size ));
-extern void sem_free_node  _ARGUMENTS(( sym_entry_type *node_ptr ));
-
-/* uilsarproc.c */
-extern void sar_create_procedure  _ARGUMENTS(( XmConst yystype *id_frame , XmConst yystype *param_frame , XmConst yystype *class_frame , XmConst yystype *semi_frame ));
-extern sym_proc_ref_entry_type *sem_reference_procedure  _ARGUMENTS(( yystype *id_frame , XmConst yystype *value_frame , XmConst int context ));
-extern sym_entry_type *sem_ref_name  _ARGUMENTS(( yystype *id_frame , XmConst int tag ));
-
-/* uilsarval.c */
-extern void sar_map_keyword_to_name  _ARGUMENTS(( yystype *target_frame , yystype *keyword_frame ));
-extern void sar_process_id  _ARGUMENTS(( yystype *target_frame , yystype *id_frame ));
-extern void sar_process_id_ref  _ARGUMENTS(( yystype *id_frame ));
-extern void sar_make_private_value  _ARGUMENTS(( yystype *value_frame , yystype *token_frame , int value_type , yystype *keyword_frame , int arg_type ));
-extern void sar_make_rgb_private_value  _ARGUMENTS(( yystype *value_frame , yystype *token_frame , int value_type , yystype *keyword_frame , int arg_type ));
-extern void sar_append_table_value  _ARGUMENTS(( yystype *value_frame , yystype *table_frame , int table_type , yystype *comma_frame ));
-extern void sar_value_not_implemented  _ARGUMENTS(( yystype *value_frame , yystype *token_frame , char *error_text ));
-extern void sar_cat_value  _ARGUMENTS(( yystype *operator_frame , yystype *op1_frame , yystype *op2_frame ));
-extern void sar_chk_comp_str_attr  _ARGUMENTS(( yystype *target_frame , yystype *value_frame , yystype *prior_value_frame ));
-extern void sar_make_comp_str  _ARGUMENTS(( yystype *target_frame , yystype *value_frame , yystype *attr_frame , yystype *keyword_frame ));
-extern void sar_make_comp_str_comp _ARGUMENTS((yystype *target_frame, yystype *type_frame, yystype *value_frame, yystype *keyword_frame));
-extern void sar_make_wchar_str  _ARGUMENTS(( yystype *target_frame , yystype *value_frame , yystype *attr_frame , yystype *keyword_frame ));
-extern void sar_value_type_error  _ARGUMENTS(( yystype *value_frame , int expected_type ));
-extern void sar_private_error  _ARGUMENTS(( yystype *value_frame ));
-extern void sar_import_value_entry  _ARGUMENTS(( yystype *target_frame , yystype *token_frame ));
-extern void sar_bind_value_name  _ARGUMENTS(( yystype *id_frame , yystype *value_frame , yystype *semi_frame ));
-extern sym_name_entry_type *sem_dcl_name  _ARGUMENTS(( XmConst yystype *id_frame ));
-extern sym_value_entry_type *sem_create_value_entry  _ARGUMENTS(( char *value , int length , int value_type ));
-extern void sar_create_identifier  _ARGUMENTS(( XmConst yystype *id_frame , XmConst yystype *semi_frame ));
-extern void sar_make_font_table  _ARGUMENTS(( yystype *target_frame , yystype *font_frame , yystype *prior_target_frame , yystype *keyword_frame ));
-extern void sar_make_font_item  _ARGUMENTS(( yystype *target_frame , yystype *charset_frame , yystype *font_frame ));
-extern void sar_make_font  _ARGUMENTS(( yystype *target_frame , yystype *charset_frame , yystype *value_frame , yystype *keyword_frame ));
-extern void sar_make_fontset  _ARGUMENTS(( yystype *target_frame , yystype *charset_frame , yystype *value_frame , yystype *keyword_frame ));
-extern void sar_make_color_item  _ARGUMENTS(( yystype *target_frame , yystype *color_frame , yystype *letter_frame ));
-extern void sar_append_color_item  _ARGUMENTS(( yystype *target_frame , yystype *item_frame , yystype *prior_target_frame ));
-extern void sar_make_color_table  _ARGUMENTS(( yystype *target_frame , yystype *list_frame , yystype *keyword_frame ));
-extern void sar_make_color  _ARGUMENTS(( yystype *target_frame , yystype *color_frame , yystype *mono_frame , yystype *keyword_frame ));
-extern void sar_make_icon  _ARGUMENTS(( yystype *target_frame , yystype *list_frame , yystype *table_frame , yystype *keyword_frame ));
-
-/* uilsemcset.c */
-extern char *sem_charset_name  _ARGUMENTS(( int l_charset , sym_value_entry_type *az_charset_entry ));
-extern void sem_charset_info  _ARGUMENTS(( int l_charset , sym_value_entry_type *az_charset_entry , int *write_direction , int *parse_direction , int *sixteen_bit ));
-extern int sem_charset_lang_name  _ARGUMENTS(( char *lang_charset ));
-
-/* uilsemval.c */
-typedef        union   {
-           boolean     boolean_value;
-           int         integer_value;
-           double      real_value;
-           char        character_value;   /* character data type RAP */
-           float       single_float_value; /* single float data type RAP */
-       } data_value_type;
-
-extern void sem_validation  _ARGUMENTS(( void ));
-extern void sem_validate_node  _ARGUMENTS(( sym_entry_type *node ));
-extern sym_value_entry_type *sem_validate_value_node  _ARGUMENTS(( sym_value_entry_type *value_node ));
-extern void sem_validate_widget_node  _ARGUMENTS(( sym_widget_entry_type *widget_node ));
-extern void sem_validate_argument_list  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , sym_argument_entry_type **seen ));
-extern void sem_validate_argument_entry  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , sym_argument_entry_type *argument_entry , sym_argument_entry_type **seen ));
-extern void sem_validate_argument_enumset  _ARGUMENTS(( sym_argument_entry_type *argument_entry , int arg_code , sym_value_entry_type *arg_value_entry ));
-extern void sem_validate_constraint_entry  _ARGUMENTS(( sym_widget_entry_type *widget_node , sym_argument_entry_type *argument_entry, unsigned int widget_type ));
-extern void sem_validate_callback_list  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , sym_callback_entry_type **seen ));
-extern void sem_validate_callback_entry  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , sym_callback_entry_type *callback_entry , sym_callback_entry_type **seen ));
-extern void sem_validate_control_list  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , int *count ));
-extern void sem_validate_control_entry  _ARGUMENTS(( sym_widget_entry_type *widget_node , unsigned int widget_type , sym_list_entry_type *list_entry , sym_control_entry_type *control_entry , int *gadget_count ));
-extern void sem_validate_widget_cycle  _ARGUMENTS(( sym_list_entry_type *list_entry , sym_name_entry_type *cycle_name ));
-extern boolean sem_validate_widget_cycle_aux  _ARGUMENTS(( sym_list_entry_type *list_entry , sym_name_entry_type *cycle_name ));
-extern boolean sem_validate_verify_cycle  _ARGUMENTS(( sym_widget_entry_type *cycle_obj , sym_list_entry_type *list_entry ));
-extern void sem_validate_procref_list  _ARGUMENTS(( sym_list_entry_type *list_entry ));
-extern void sem_validate_procref_entry  _ARGUMENTS(( sym_proc_ref_entry_type *procref_entry ));
-extern boolean sem_argument_allowed  _ARGUMENTS(( unsigned int arg_code , unsigned int class_code ));
-extern boolean sem_reason_allowed  _ARGUMENTS(( unsigned int rsn_code , unsigned int class_code ));
-extern boolean sem_control_allowed  _ARGUMENTS(( unsigned int ctl_code , unsigned int class_code ));
-extern boolean sem_child_allowed  _ARGUMENTS(( unsigned int ctl_code , unsigned int class_code ));
-extern sym_value_entry_type *sem_evaluate_value  _ARGUMENTS(( sym_value_entry_type *val_entry ));
-extern sym_value_entry_type *sem_evaluate_value_cs  _ARGUMENTS(( sym_value_entry_type *csval_entry ));
-/* BEGIN OSF Fix CR 4859 */
-/* END OSF Fix CR 4859 */
-extern sym_value_entry_type *sem_evaluate_value_expr  _ARGUMENTS(( sym_value_entry_type *value_entry ));
-extern int validate_arg  _ARGUMENTS(( sym_value_entry_type *operand_entry , int v_operator ));
-extern int sem_convert_to_float  _ARGUMENTS(( sym_value_entry_type *operand_entry , data_value_type *data_value ));
-extern int sem_convert_to_integer  _ARGUMENTS(( sym_value_entry_type *operand_entry , data_value_type *data_value ));
-extern int sem_convert_to_single_float  _ARGUMENTS(( sym_value_entry_type *operand_entry , data_value_type *data_value ));
-extern int sem_convert_to_error  _ARGUMENTS(( sym_value_entry_type *operand_entry , data_value_type *data_value ));
-extern void sar_cat_value_entry  _ARGUMENTS(( sym_value_entry_type **target_entry , sym_value_entry_type *op1_entry , sym_value_entry_type *op2_entry ));
-
-/* uilsrcsrc.c */
-extern void src_initialize_source  _ARGUMENTS(( void ));
-extern void Uil_src_cleanup_source  _ARGUMENTS(( void ));
-extern void src_open_file  _ARGUMENTS(( XmConst char *c_file_name , char *full_file_name ));
-extern status src_get_source_line  _ARGUMENTS(( void ));
-extern status open_source_file  _ARGUMENTS(( XmConst char *c_file_name , uil_fcb_type *az_fcb , src_source_buffer_type *az_source_buffer ));
-extern status close_source_file  _ARGUMENTS(( uil_fcb_type *az_fcb ));
-extern status get_line  _ARGUMENTS(( uil_fcb_type *az_fcb ));
-extern boolean reget_line  _ARGUMENTS(( uil_fcb_type *az_fcb , char *c_buffer , XmConst z_key *z_access_key ));
-extern char *src_get_file_name  _ARGUMENTS(( XmConst src_source_record_type *az_src_rec ));
-extern boolean src_retrieve_source  _ARGUMENTS(( XmConst src_source_record_type *az_src_rec , char *c_buffer ));
-extern void src_append_diag_info  _ARGUMENTS(( XmConst src_source_record_type *az_src_rec , XmConst int l_src_pos , XmConst char *c_msg_text , XmConst int l_msg_number ));
-extern void src_append_machine_code  _ARGUMENTS(( src_source_record_type *az_src_rec , XmConst int l_offset , XmConst int l_code_len , XmConst char *c_code , XmConst char *c_text_arg ));
-
-/* uilsymnam.c */
-extern sym_name_entry_type *sym_find_name  _ARGUMENTS(( int l_length , char *c_text ));
-extern sym_name_entry_type *sym_insert_name  _ARGUMENTS(( int l_length , char *c_text ));
-extern int hash_function  _ARGUMENTS(( int l_length , char *c_value ));
-#if debug_version
-extern void sym_dump_hash_table  _ARGUMENTS(( void ));
-#endif
-
-/* uilsymstor.c */
-extern void sym_initialize_storage  _ARGUMENTS(( void ));
-extern void Uil_sym_cleanup_storage  _ARGUMENTS(( boolean freealloc ));
-extern void sym_make_external_def  _ARGUMENTS(( XmConst sym_name_entry_type *az_name ));
-extern void sym_make_forward_ref  _ARGUMENTS(( XmConst yystype *az_id_frame , XmConst int l_widget_type , XmConst char *a_location ));
-extern void sym_make_value_forward_ref  _ARGUMENTS(( XmConst yystype *az_value_frame , XmConst char *a_location , XmConst unsigned char fwd_ref_flags ));
-extern void UilDumpSymbolTable  _ARGUMENTS(( sym_entry_type *node_entry ));
-extern void sym_dump_symbols  _ARGUMENTS(( void ));
-extern void sym_dump_symbol  _ARGUMENTS(( sym_entry_type *az_symbol_entry ));
-extern void sym_dump_widget  _ARGUMENTS(( XmConst sym_widget_entry_type *az_widget_entry ));
-extern void sym_dump_argument  _ARGUMENTS(( XmConst sym_argument_entry_type *az_argument_entry ));
-extern void sym_dump_control  _ARGUMENTS(( XmConst sym_control_entry_type *az_control_entry ));
-extern void sym_dump_callback  _ARGUMENTS(( XmConst sym_callback_entry_type *az_callback_entry ));
-extern void sym_dump_list  _ARGUMENTS(( XmConst sym_list_entry_type *az_list_entry ));
-extern void sym_dump_name  _ARGUMENTS(( XmConst sym_name_entry_type *az_name_entry ));
-extern void sym_dump_module  _ARGUMENTS(( XmConst sym_module_entry_type *az_module_entry ));
-extern void sym_dump_color_item  _ARGUMENTS(( XmConst sym_color_item_entry_type *az_color_item_entry ));
-extern void sym_dump_parent_list_item  _ARGUMENTS(( XmConst sym_parent_list_type *az_parent_list_item ));
-extern void sym_dump_external_def  _ARGUMENTS(( XmConst sym_external_def_entry_type *az_external_def_entry ));
-extern void sym_dump_proc_def  _ARGUMENTS(( XmConst sym_proc_def_entry_type *az_proc_def_entry ));
-extern void sym_dump_proc_ref  _ARGUMENTS(( XmConst sym_proc_ref_entry_type *az_proc_ref_entry ));
-extern void sym_dump_forward_ref  _ARGUMENTS(( XmConst sym_forward_ref_entry_type *az_forward_ref_entry ));
-extern void sym_dump_value  _ARGUMENTS(( XmConst sym_value_entry_type *az_value_entry ));
-extern void output_text  _ARGUMENTS(( XmConst int length , XmConst char *text ));
-extern void sym_dump_source_info  _ARGUMENTS(( sym_entry_header_type *hdr ));
-extern void sym_dump_obj_header  _ARGUMENTS(( XmConst sym_obj_entry_type *az_obj_entry ));
-extern void sym_dump_include_file  _ARGUMENTS(( sym_include_file_entry_type *az_symbol_entry ));
-extern void sym_dump_section  _ARGUMENTS(( sym_section_entry_type *az_symbol_entry ));
-extern void sym_dump_object_variant  _ARGUMENTS(( sym_def_obj_entry_type *az_symbol_entry ));
-extern void sym_dump_root_entry  _ARGUMENTS(( sym_root_entry_type *az_symbol_entry ));
-extern char *sym_section_text  _ARGUMENTS(( int b_type ));
-extern void dump_free_list  _ARGUMENTS(( void ));
-
-#if defined(__cplusplus) || defined(c_plusplus)
-}
-#endif
-
-#endif /* UilDefI_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilDiagDef.h b/cde/osf/uil/UilDiagDef.h
deleted file mode 100644 (file)
index 80380c5..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilDiagDef.h /main/10 1995/07/14 09:34:00 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL diagnostic
-**     issuing procedures in the UIL compiler.
-**
-**--
-**/
-
-#ifndef UilDiagDef_h
-#define UilDiagDef_h
-
-
-#define diag_k_no_source     NULL
-#define diag_k_no_column     255
-
-
-#endif /* UilDiagDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilDiags.c b/cde/osf/uil/UilDiags.c
deleted file mode 100644 (file)
index ed3f16e..0000000
+++ /dev/null
@@ -1,1291 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilDiags.c /main/15 1996/10/21 11:06:46 cde-osf $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the procedures for issuing diagnostics
-**     for the UIL compiler.
-**
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <stdio.h>
-#include <signal.h>
-#include <setjmp.h>
-#include <X11/Intrinsic.h>
-#include <X11/Xos.h>
-#include <Xm/Xm.h>
-
-#include <stdarg.h>
-
-#include "UilDefI.h"
-#include "UilMessTab.h"
-
-/*
-**
-**  EXTERNAL Storage
-**
-*/
-
-externaldef(uil_comp_glbl)     int     Uil_message_count[uil_k_max_status+1];
-
-/*
-**
-**  OWN Storage
-**
-*/
-
-static boolean issuing_diagnostic;
-static int     Uil_diag_status_delay_count;
-
-/*
- * Fix for CR 5534 - static storage for old signal handlers
- */
-static void    (*bus_handler)();
-static void    (*sys_handler)();
-static void    (*fpe_handler)();
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      diag_store_handlers saves the signal handlers from the calling
-**     application in global variables.
-**
-**  FORMAL PARAMETERS:
-**
-**     none
-**
-**  IMPLICIT INPUTS:
-**
-**     none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the global signal handler variables are changed.
-**
-**--
-**/
-
-void    diag_store_handlers
-            ( void )
-{
-/*
- * Fix for CR 5534 - set the file variables for holding previous bus handlers
- *                   to NULL and then store the old handlers (if any) when
- *                   calling signal for the Uil handlers
- */
-    bus_handler = signal( SIGBUS, diag_handler );       /* access violations */
-#ifdef SIGSYS
-    sys_handler = signal( SIGSYS, diag_handler );       /* bad arguments to sys calls */
-#endif
-    fpe_handler = signal( SIGFPE, diag_handler );       /* overflows */
-/*
- * End Fix for CR 5534
- */
-
-}
-
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      diag_issue_diagnostic emits a diagnostic to the listing file if
-**     there is one and also sends an error to standard error file.
-**
-**  FORMAL PARAMETERS:
-**
-**      d_message_number:  index of the error to issue.  The indices are
-**                        defined in message.h
-**     a_src_rec:         pointer to the source record to issue the
-**                        diagnostic against.  This data structure has
-**     l_start_column:    position within the source line for diagnostic.
-**                        A negative value indicates no position.
-**     args:              a variable length parameter list that holds the
-**                        arguments to be substituted in the diagnositic
-**
-**  IMPLICIT INPUTS:
-**
-**      diag_rz_msg_table: table of messages and their severities defined
-**                        in message_table.h
-**     diag_rl_external_code:  Possible OS-specific external code
-**
-**  IMPLICIT OUTPUTS:
-**
-**      messages emitted
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      message counts updated
-**
-**--
-**/
-
-#define buf_size (src_k_max_source_line_length + 1)
-
-void   diag_issue_diagnostic
-           ( int d_message_number, src_source_record_type *az_src_rec, 
-             int l_start_column, ...)
-
-{
-    va_list    ap;                     /* ptr to variable length parameter */
-    int                severity;               /* severity of message */
-    int                message_number;         /* message number */
-    char       msg_buffer[132];        /* buffer to construct message */
-    char       ptr_buffer[buf_size];   /* buffer to construct pointer */
-    char       loc_buffer[132];        /* buffer to construct location */
-    char       src_buffer[buf_size];   /* buffer to hold source line */
-
-    /*
-    ** check if we are in a loop issuing errors
-    */
-
-    if (issuing_diagnostic)
-    {
-       _debug_output( "nested diagnostics issued" );
-       Uil_message_count[ uil_k_severe_status ]++;
-       uil_exit( uil_k_severe_status );
-    }
-
-    issuing_diagnostic = TRUE;
-
-    /*
-    ** determine the severity of the error.  For d_submit_spr we issue
-    ** the fix previous error diagnostic, if we encountered prior errors;
-    **  otherwise we let it thru.
-    */
-
-    message_number = d_message_number;
-
-    if (message_number == d_submit_spr)
-       if (Uil_message_count[ uil_k_error_status ] > 0)
-           message_number = d_prev_error;
-
-    severity = diag_rz_msg_table[ message_number ].l_severity;
-
-    /*
-    ** check if messages of this severity are to be reported.
-    */
-
-    switch (severity)
-    {
-    case uil_k_info_status:
-       if (Uil_cmd_z_command.v_report_info_msg)
-           break;
-
-       issuing_diagnostic = FALSE;
-       return;
-
-    case uil_k_warning_status:
-       if (Uil_cmd_z_command.v_report_warn_msg)
-           break;
-
-       issuing_diagnostic = FALSE;
-       return;
-
-    default:
-       ;
-    }
-
-    Uil_message_count[ severity ]++;
-    if (severity > uil_l_compile_status)
-       uil_l_compile_status = severity;
-
-    /*
-    ** Diagnostic format varies considerably
-    **    1) no source
-    **         message
-    **    2) source but no column
-    **         source line
-    **         message
-    **         location in source message
-    **    3) source and column
-    **         source line
-    **         column pointer
-    **         message
-    **         location in source message
-    **    4) source and column but no access key 
-    **         message
-    **         location in source message
-    */
-
-    /* 
-    ** substitute any parameters into the error message placing the
-    ** resultant string in msg_buffer
-    */
-
-    va_start(ap, l_start_column);
-
-#ifndef NO_MESSAGE_CATALOG
-    vsprintf( msg_buffer, 
-             catgets(uil_catd, UIL_SET1, msg_cat_table[ message_number ],
-                     diag_rz_msg_table[ message_number ].ac_text), 
-            ap );
-#else
-    vsprintf( msg_buffer, 
-             diag_rz_msg_table[ message_number ].ac_text, 
-             ap );
-#endif
-    va_end(ap);
-
-    src_buffer[ 0 ] = 0;
-    loc_buffer[ 0 ] = 0;
-    ptr_buffer[ 0 ] = 0;
-
-    if (az_src_rec != diag_k_no_source) 
-    {
-       if ( !_src_null_access_key(az_src_rec->z_access_key) )
-       {
-           /*
-           **  create the location line line
-           */
-
-#ifndef NO_MESSAGE_CATALOG
-           sprintf( loc_buffer,
-                    catgets(uil_catd, UIL_SET_MISC,
-                            UIL_MISC_0, "\t\t line: %d  file: %s"),
-                    az_src_rec->w_line_number,
-                    src_get_file_name( az_src_rec ) );
-#else
-           sprintf( loc_buffer,
-                    "\t\t line: %d  file: %s",
-                    az_src_rec->w_line_number,
-                    src_get_file_name( az_src_rec ) );
-#endif
-
-           /*
-           **  retrieve the source line
-           */
-
-           src_buffer[ 0 ] = '\t';
-           src_retrieve_source( az_src_rec, &src_buffer[ 1 ] );
-
-           /*
-           **  filter the standard unprintable characters.
-           */
-
-           lex_filter_unprintable_chars
-                   ( (unsigned char *)src_buffer, strlen( src_buffer ), 0 );
-
-           /*
-           **  create the column pointer if a source position was given
-           */
-
-           if (l_start_column != diag_k_no_column)
-           {
-               int     i;
-
-               for (i=0;  i < l_start_column+1;  i++)
-               {
-                   if (src_buffer[ i ] == '\t')
-                       ptr_buffer[ i ] = '\t';
-                   else
-                       ptr_buffer[ i ] = ' ';
-                }
-
-               ptr_buffer[ i++ ] = '*';
-               ptr_buffer[ i ]   = 0;
-           }
-       }
-       else    /* no access key */
-       {
-           /*
-           **  create the location line line
-           */
-
-           if (l_start_column != diag_k_no_column)
-#ifndef NO_MESSAGE_CATALOG
-             sprintf(loc_buffer,
-                     catgets(uil_catd, UIL_SET_MISC,
-                             UIL_MISC_1, 
-                             "\t\t line: %d  position: %d  file: %s"),
-                     az_src_rec->w_line_number,
-                     l_start_column + 1,
-                     src_get_file_name( az_src_rec ) );
-#else
-             sprintf(loc_buffer,
-                     "\t\t line: %d  position: %d  file: %s",
-                     az_src_rec->w_line_number,
-                     l_start_column + 1,
-                     src_get_file_name( az_src_rec ) );
-#endif
-           else
-#ifndef NO_MESSAGE_CATALOG
-               sprintf( loc_buffer, catgets(uil_catd, UIL_SET_MISC,
-                                            UIL_MISC_0,
-                                            "\t\t line: %d  file: %s"),
-                        az_src_rec->w_line_number,
-                        src_get_file_name( az_src_rec ) );
-#else
-               sprintf( loc_buffer,
-                        "\t\t line: %d  file: %s",
-                        az_src_rec->w_line_number,
-                        src_get_file_name( az_src_rec ) );
-#endif
-       }
-    }
-
-    /*
-    **  issue the error to standard error file (system specific)
-    */
-
-    write_msg_to_standard_error
-       ( message_number, src_buffer, ptr_buffer, msg_buffer, loc_buffer );
-
-    /* 
-    ** if we have a listing, place message in the source structure
-    */
-
-    if (Uil_cmd_z_command.v_listing_file)
-       src_append_diag_info
-           ( az_src_rec, l_start_column, msg_buffer, message_number );
-
-    issuing_diagnostic = FALSE;
-
-    /* 
-    ** if there are fatal errors, print the listing file and exit.
-    */
-
-    if (Uil_message_count[ uil_k_severe_status] > 0)
-    {
-       lst_output_listing();
-       uil_exit( uil_k_severe_status );
-    }
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      diag_issue_summary emits a diagnostic summary if any diagnostics
-**     were issued during the compilation
-**
-**  FORMAL PARAMETERS:
-**
-**      void
-**
-**  IMPLICIT INPUTS:
-**
-**      Uil_message_count         table of messages issued
-**
-**  IMPLICIT OUTPUTS:
-**
-**      messages optionally emitted
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   diag_issue_summary()
-
-{
-    
-    if (uil_l_compile_status == uil_k_success_status)
-       return;
-
-    Uil_cmd_z_command.v_report_info_msg = TRUE;
-
-    diag_issue_diagnostic
-       ( d_summary,
-         diag_k_no_source, diag_k_no_column,
-         Uil_message_count[ uil_k_error_status ],
-         Uil_message_count[ uil_k_warning_status ],
-         Uil_message_count[ uil_k_info_status ] );
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      The major constructs in the UIL language each have a data structure
-**     and a tag value in the first byte of that data structure.  Given
-**     a tag value, this routine will return a string that can be substituted
-**      in an error message to describe that construct.
-**
-**  FORMAL PARAMETERS:
-**
-**      b_tag
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      char *  text corresponding to tag
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char   *diag_tag_text( b_tag )
-
-int XmConst   b_tag;
-
-{
-
-    switch (b_tag)
-    {
-    case sym_k_value_entry:
-       return "value";
-    case sym_k_widget_entry:
-       return "widget";
-    case sym_k_gadget_entry:
-       return "gadget";
-    case sym_k_child_entry:
-       return "auto child";
-    case sym_k_module_entry:
-       return "module";
-    case sym_k_proc_def_entry:
-    case sym_k_proc_ref_entry:
-       return "procedure";
-    case sym_k_identifier_entry:
-       return "identifier";
-
-/*   These are used by the symbol table dumper.    */
-
-    case sym_k_argument_entry:
-       return "argument";
-    case sym_k_callback_entry:
-       return "callback";
-    case sym_k_control_entry:
-       return "control";
-    case sym_k_name_entry:
-       return "name";
-    case sym_k_forward_ref_entry:
-       return "forward ref";
-    case sym_k_external_def_entry:
-       return "external def";
-    case sym_k_list_entry:
-       return "list";
-    case sym_k_root_entry:
-       return "root";
-    case sym_k_include_file_entry:
-       return "include file";
-    case sym_k_def_obj_entry:
-       return "default variant";
-    case sym_k_section_entry:
-       return "section";
-
-    default:
-#ifndef NO_MESSAGE_CATALOG
-       return (catgets(uil_catd, UIL_VALUES, UIL_VAL_1, "** unknown **"));
-#else
-       return "** unknown **";
-#endif
-    }
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Each widget in the UIL language has a integer value.  Given this
-**     value, this routine will return a string that can be substituted
-**      in an error message to describe that widget.
-**
-**  FORMAL PARAMETERS:
-**
-**      b_type         integer rep of the widget type
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      char *  text corresponding to type
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char   *diag_object_text( b_type )
-
-int XmConst   b_type;
-
-{
-    if ( b_type <= sym_k_error_object )
-#ifndef NO_MESSAGE_CATALOG
-       return (catgets(uil_catd, UIL_VALUES, UIL_VAL_0, "** error **"));
-#else
-       return "** error **";
-#endif
-    if ( b_type <= uil_max_object )
-       return uil_widget_names[b_type];
-#ifndef NO_MESSAGE_CATALOG
-    return (catgets(uil_catd, UIL_VALUES, UIL_VAL_1, "** unknown **"));
-#else
-    return "** unknown **";
-#endif
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Each value in the UIL language has a integer value.  Given this
-**     value, this routine will return a string that can be substituted
-**      in an error message to describe that value.
-**
-**  FORMAL PARAMETERS:
-**
-**      b_type         integer rep of the value type
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      char *  text corresponding to type
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char   *diag_value_text( b_type )
-
-int XmConst   b_type;
-
-{
-
-    if ( b_type <= sym_k_error_value )
-#ifndef NO_MESSAGE_CATALOG
-       return (catgets(uil_catd, UIL_VALUES, UIL_VAL_0, "** error **"));
-#else
-       return "** error **";
-#endif
-    if ( b_type <= sym_k_max_value )
-       return uil_datatype_names[b_type];
-#ifndef NO_MESSAGE_CATALOG
-    return (catgets(uil_catd, UIL_VALUES, UIL_VAL_1, "** unknown **"));
-#else
-    return "** unknown **";
-#endif
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Each charset supported by UIL has a integer value.  Given this
-**     value, this routine will return a string that can be substituted
-**      in an error message to describe that charset.
-**
-**  FORMAL PARAMETERS:
-**
-**      b_type         integer rep of the charset
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      char *  text corresponding to type
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char   *diag_charset_text( b_type )
-
-int XmConst   b_type;
-
-{
-    
-    if ( b_type <= sym_k_error_charset )
-#ifndef NO_MESSAGE_CATALOG
-       return (catgets(uil_catd, UIL_VALUES, UIL_VAL_0, "** error **"));
-#else
-       return "** error **";
-#endif
-    if ( b_type <= uil_max_charset )
-       return uil_charset_names[b_type];
-#ifndef NO_MESSAGE_CATALOG
-    return (catgets(uil_catd, UIL_VALUES, UIL_VAL_1, "** unknown **"));
-#else
-    return "** unknown **";
-#endif
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine initializes the diagnostic system.  This includes
-**     establishes a handler for catastrophic errors and initializing
-**     error tables.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      Uil_message_count
-**     issuing_diagnostic
-**     Uil_diag_status_delay_count
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error handler is supplied for SIGBUS, SIGFPE and SIGSYS errors
-**
-**--
-**/
-
-void   diag_initialize_diagnostics()
-
-{
-
-    int            i;
-
-    /* 
-    ** Set up a handler to be invoked if access violations or
-    ** bad arguments to sys calls occur.
-    **  Other errors should be processed as is standard for the OS.
-    */
-/*
- * Fix for CR 5534 - call diag_store_handlers to save the old signal handlers.
- */
-    diag_store_handlers();
-/*
- * End Fix for CR 5534
- */
-
-    signal( SIGBUS, diag_handler );    /* access violations */
-#ifdef SIGSYS
-    signal( SIGSYS, diag_handler );    /* bad arguments to sys calls */
-#endif
-    signal( SIGFPE, diag_handler );    /* overflows */
-
-
-    /*
-    **  Reset the message counts to zero.
-    */
-    for (i=0;  i <= uil_k_max_status;  i++)
-       Uil_message_count[ i ] = 0;
-
-
-    /*
-    **  Clear the flag that we used to detect recursive error reporinting.
-    */
-    issuing_diagnostic = FALSE;
-
-
-    /*
-    **  Make sure there is no delay before starting to report status.
-    */
-    Uil_diag_status_delay_count = 0;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine resets the handler for detecting overflows.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error handler is supplied for SIGFPE 
-**
-**--
-**/
-
-void   diag_reset_overflow_handler()
-
-{
-
-    signal( SIGFPE, diag_handler );    /* overflows */
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine is the handler for internal errors.
-**
-**  FORMAL PARAMETERS:
-**
-**      l_error            type of signal being raised
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      image will exit (done by diag_issue_diagnostic)
-**
-**--
-**/
-
-void   diag_handler( l_error )
-
-int    l_error;
-
-{
-    /* 
-    ** This handler is invoked for access violations, oeverflows or bad 
-    **  arguments to sys calls.  Other errors are processed as is standard 
-    ** for the OS.  The handler checks on overflow to see if we are trying
-    ** to catch them at the moment.  Otherwise it issues an internal error.
-    */
-
-    if (l_error == SIGFPE)
-    {
-       if (uil_az_error_env_valid)
-       {
-           longjmp( uil_az_error_env_block, 1);
-       }
-    }
-
-#if debug_version
-    {
-      char     *error_text;
-      
-      switch (l_error)
-       {
-       case SIGBUS:
-         error_text = "Access Violation";
-         break;
-#ifdef SIGSYS
-       case SIGSYS:
-         error_text = "Bad system call";
-         break;
-#endif
-       case SIGFPE:
-         error_text = "Overflow";
-         break;
-       default:
-         error_text = "Unknown reason";
-       }
-
-      diag_issue_internal_error( error_text );
-    }
-    
-#else
-
-    diag_issue_internal_error( NULL );
-
-#endif
-
-    /* we don't expect to come back */
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine issues an internal error.
-**
-**  FORMAL PARAMETERS:
-**
-**      error_text     In the debug version this parameter holds a
-**                     description of the internal error.  In the
-**                     non debug version it is omitted.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      image will exit (done by diag_issue_diagnostic)
-**
-**--
-**/
-
-void   diag_issue_internal_error( error_text )
-
-char   * error_text;
-
-{
-
-    /* 
-    ** This routine is a focal point for issuing internal errors.
-    **  In DEBUG mode it takes an argument that gives more information
-    ** about the failure.
-    */
-
-#if debug_version
-
-    diag_issue_diagnostic
-       ( d_bug_check, diag_k_no_source, diag_k_no_column , error_text );
-
-#else
-
-    diag_issue_diagnostic( d_submit_spr, diag_k_no_source, diag_k_no_column );
-
-#endif
-
-    /* we don't expect to come back */
-
-}
-
-\f
-
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      this routine emits a diagnostic to stderr
-**
-**  FORMAL PARAMETERS:
-**
-**     msg_number:     message number 
-**      src_buffer:    ptr to source buffer for the error
-**      ptr_buffer:    ptr to column buffer locator for the error
-**      msg_buffer:    ptr to message buffer for the error
-**      loc_buffer:    ptr to location buffer for the error
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      messages emitted
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-
-static char    XmConst success_text[1]  = "";
-static char    XmConst info_text[7]     = "Info: ";
-static char    XmConst warning_text[10] = "Warning: ";
-static char    XmConst error_text[8]    = "Error: ";
-static char    XmConst severe_text[9]   = "Severe: ";
-
-static char    XmConst *severity_table [] =
-    { success_text, info_text, warning_text, error_text, severe_text, };
-
-void   write_msg_to_standard_error
-               (message_number, src_buffer, ptr_buffer, msg_buffer, loc_buffer)
-
-XmConst int   message_number;
-XmConst char  *src_buffer;
-XmConst char  *ptr_buffer;
-XmConst char  *msg_buffer;
-XmConst char  *loc_buffer;
-
-{
-
-    /*
-    **  If message callback was supplied, call it with the description of the
-    **  error instead of writing it to standard output.
-    */
-    if (Uil_cmd_z_command.message_cb != (Uil_continue_type(*)())NULL) 
-    {
-       Uil_status_type return_status;
-/*
- * Fix for 5534 - restore the old signal handers before calling message_cb
- *                and restore the Uil signal handlers immediately afterwards
- */
-        diag_restore_diagnostics();
-       return_status = (*Uil_cmd_z_command.message_cb)(
-                           Uil_cmd_z_command.message_data,
-                           message_number,
-                           diag_rz_msg_table[ message_number ].l_severity,
-                           msg_buffer,
-                           src_buffer,
-                           ptr_buffer,
-                           loc_buffer,
-                           Uil_message_count);
-         diag_store_handlers();
-/*
- * End Fix for 5534
- */
-
-       /*
-       **  If request is for termination, then longjmp back to main routine
-       **  and set the return status to reflect user abort.
-       */
-       if (return_status == Uil_k_terminate)
-           uil_exit (uil_k_error_status);          
-       else
-           return;
-    }
-
-
-
-    /* print source line */
-
-    fprintf ( stderr, "\n" );
-
-    if (src_buffer[ 0 ] != 0)
-    {
-       fprintf ( stderr, "%s\n", src_buffer );
-     }
-
-    /* print the source column locator line */
-
-    if (ptr_buffer[ 0 ] != 0)
-    {
-       fprintf ( stderr, "%s\n", ptr_buffer );
-     }
-
-    /* print message line */
-
-#ifndef NO_MESSAGE_CATALOG
-    fprintf ( stderr, "%s%s\n", 
-             catgets(uil_catd, UIL_SET_MISC,
-                     diag_rz_msg_table[ message_number ].l_severity, 
-                     severity_table
-                     [ diag_rz_msg_table[ message_number ].l_severity ]),
-             msg_buffer );
-#else
-    fprintf ( stderr, "%s%s\n", 
-             severity_table
-               [ diag_rz_msg_table[ message_number ].l_severity ],
-             msg_buffer );
-#endif
-
-    /* print location line */
-
-    if (loc_buffer[ 0 ] != 0)
-    {
-       fprintf ( stderr, "%s\n", loc_buffer );
-     }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      function to return abbreviation for a message number
-**
-**  FORMAL PARAMETERS:
-**
-**      d_message_number       message number to look up
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      ptr to text for message number
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char XmConst *diag_get_message_abbrev( d_message_number )
-
-int    d_message_number;
-
-{
-    return
-       severity_table[ diag_rz_msg_table[ d_message_number ].l_severity ];
-}
-
-\f
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     Routine to invoke the user-supplied status callback routine.  If none
-**     is supplied this routine returns without error.  Otherwise, the user's
-**     delay information is processed and if the requested criteria is met the
-**     user's routine is invoked.  with parameters to describe the progress of
-**     the compilation.  
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      Uil_cmd_z_command_line
-**
-**  IMPLICIT OUTPUTS:
-**
-**      Uil_diag_status_delay_count
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   diag_report_status ( )
-
-{
-    Uil_continue_type  return_status;
-
-    /*
-    **  If no status callback was supplied, just return.
-    */
-    if (Uil_cmd_z_command.status_cb == (Uil_continue_type(*)())NULL) return;
-
-    /*
-    ** If delay is used up (less than or equal to zero) then invoke the
-    ** callback, and reset the delay count.
-    */
-    if (Uil_diag_status_delay_count <= 0)
-    {
-       Uil_diag_status_delay_count = Uil_cmd_z_command.status_update_delay;
-/*
- * Fix for CR 5534 - restore the application signal handlers before calling
- *                   status_cb and then return the Uil signal handlers 
- *                   immediately after.
- */
-        diag_restore_diagnostics();
-       return_status = (*Uil_cmd_z_command.status_cb)(
-                           Uil_cmd_z_command.status_data,
-                           Uil_percent_complete,
-                           Uil_lines_processed,
-                           Uil_current_file,
-                           Uil_message_count);
-        diag_store_handlers();
-/*
- * End Fix for CR 5534
- */
-
-       /*
-       **  If request is for termination, then longjmp back to main routine
-       **  and set the return status to reflect user abort.
-       */
-       if (return_status == Uil_k_terminate)
-       {
-           uil_exit (uil_k_error_status);          
-       }
-    }  
-
-    /*
-    **  Delay not used-up, so decrement by one.
-    */
-    else
-       Uil_diag_status_delay_count--;
-
-}
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine restores the old signal handlers that were replaced by 
-**     Uil.  This routine is only called by the callable Uil.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error handlers for SIGBUS, SIGFPE and SIGSYS errors are restored to
-**     pre-Uil condition.
-**
-**--
-**/
-
-void
-diag_restore_diagnostics(void)
-{
-
-/*
- * Fix for CR 5534 - restore the old signal handlers
- */
-    signal( SIGBUS, bus_handler );
-#ifdef SIGSYS
-    signal( SIGSYS, sys_handler );
-#endif
-    signal( SIGFPE, fpe_handler );
-/*
- * End Fix for CR 5534
- */
-}
-
diff --git a/cde/osf/uil/UilIODef.h b/cde/osf/uil/UilIODef.h
deleted file mode 100644 (file)
index 11e997d..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilIODef.h /main/10 1995/07/14 09:34:21 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the operating system
-**     io facilities.  
-**
-**--
-**/
-
-#ifndef UilIODef_h
-#define UilIODef_h
-
-
-/*
-**  Define a UIL File Control Block or FCB.
-*/
-
-
-#include <stdio.h>
-#ifndef NULL
-#define NULL 0L
-#endif
-
-typedef struct  
-{
-    FILE       *az_file_ptr;
-    char       *c_buffer;
-    boolean    v_position_before_get;
-    z_key      last_key;
-    char       expanded_name[ 256 ];
-} uil_fcb_type;
-
-#endif /* UilIODef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilKeyTab.c b/cde/osf/uil/UilKeyTab.c
deleted file mode 100644 (file)
index 3a58655..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilKeyTab.c /main/11 1995/07/14 09:34:29 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the keyword table used by the lexical analyzer
-**     to look up the keywords in the UIL.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-/*    Keyword table pointer.    */
-
-static key_keytable_entry_type * key_keytable_ptr;
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine searches for a symbol in the compiler's keyword table.
-**     There are two arguments to the routine, the length of the symbol and
-**      the address of the start of the symbol.  The routine returns the
-**     address of the keyword entry found, or a NULL pointer if the
-**     symbol is not found in the table.
-**
-**     The search for the symbol is case sensitive depending upon the
-**     keytable binding that was established by the key_initialize routine.
-**
-**     The require file UilKeyTab.h defines and initializes the keyword
-**     tables.  It is built automatically from other files, thus it should
-**     not be hand editted.
-**
-**  FORMAL PARAMETERS:
-**
-**     symbol_length.rl.v :    length of symbol to look up
-**     symbol_ptr.ra.v :       address of symbol to look up
-**
-**  IMPLICIT INPUTS:
-**
-**      key_keytable_ptr               : current keyword table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**     NULL            : if the symbol is not in the keyword table
-**     otherwise       : the address of the keyword table entry for
-**                       the specified symbol.
-**
-** SIDE EFFECTS:
-**
-**     none
-**
-**--
-**/
-key_keytable_entry_type *
-       key_find_keyword (symbol_length, symbol_ptr)
-
-unsigned int   symbol_length;
-char           * symbol_ptr;
-
-{
-    
-    int
-       lower_limit,
-       upper_limit;
-    
-/*    Check the arguments.    */
-
-    if (symbol_length > key_k_keyword_max_length)
-       return NULL;
-
-/*    Initialize region to search.    */
-    
-    lower_limit = 0;
-    upper_limit = key_k_keyword_count-1;
-    
-/*    Perform binary search on keyword index.    */
-    
-    do {
-       int             mid_point, result;
-
-       key_keytable_entry_type * keyword_entry_ptr;
-
-       mid_point = (lower_limit + upper_limit) >> 1;   /* divide by 2 */
-
-       keyword_entry_ptr = & key_keytable_ptr [mid_point];
-
-       result = strcmp (symbol_ptr, keyword_entry_ptr -> at_name);
-
-       if (result == 0) {
-           return keyword_entry_ptr;           /*    Found keyword.    */
-       } else if (result < 0) {
-           upper_limit = mid_point - 1;        /*    Search lower half.    */
-       } else {
-           lower_limit = mid_point + 1;        /*    Search upper half.    */
-       }
-
-    } while (lower_limit <= upper_limit);
-
-/*    If we fall out of the bottom of the loop, symbol was not found.    */
-
-    return NULL;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine initializes the keyword lookup facility.  It can be
-**     called multiple times during a single compilation.  It must be called
-**     at least once before the keyword table is accessed.
-**
-**  FORMAL PARAMETERS:
-**
-**     none
-**
-**  IMPLICIT INPUTS:
-**
-**      uil_v_case_sensitive   : case sensitive switch, determines which
-**                             : keyword table to use.
-**
-**  IMPLICIT OUTPUTS:
-**
-**      key_keytable_ptr       : pointer to the keyword table to
-**                               use for keyword lookups.
-**
-**  FUNCTION VALUE:
-**
-**     none
-**
-** SIDE EFFECTS:
-**
-**     none
-**
-**--
-**/
-void
-       key_initialize ()
-
-{
-
-/*    Use the correct keyword table based on the global case
-      sensitivity.   */
-
-    if (uil_v_case_sensitive) {
-       key_keytable_ptr = key_table;
-    } else {
-       key_keytable_ptr = key_table_case_ins;
-    }
-
-}    
-
diff --git a/cde/osf/uil/UilLexAna.c b/cde/osf/uil/UilLexAna.c
deleted file mode 100644 (file)
index 5fee199..0000000
+++ /dev/null
@@ -1,2544 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilLexAna.c /main/14 1997/03/12 15:10:52 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module hold the routines that build tokens for the UIL
-**     compiler.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Xm/Xm.h>
-/* I think this one should be public too, it's not the case right now,
-   and I don't want to include XmP.h here - dd */
-extern char *_XmStringGetCurrentCharset ();
-#include <Xm/XmosP.h>  /* Need this for MB_CUR_MAX */
-
-#include <Mrm/MrmosI.h> /* Need this for _MrmOSSetLocale. */
-
-#include "UilDefI.h"
-#include <ctype.h>
-
-double atof();
-
-#include <errno.h>     /* needed to support conversion functions */
-#ifdef X_NOT_STDC_ENV
-extern int errno;
-#endif
-
-/*
-**
-**  TABLE OF CONTENTS
-**
-*/
-
-/*
-** FORWARD DECLARATIONS
-*/
-
-typedef struct _lex_buffer_type
-{
-    struct _lex_buffer_type    *az_next_buffer;
-    unsigned char              c_text[ 1 ];
-} lex_buffer_type;
-
-
-static lex_buffer_type *get_lex_buffer  _ARGUMENTS(( lex_buffer_type *az_current_lex_buffer ));
-#if debug_version
-static void dump_token  _ARGUMENTS(( lex_buffer_type *az_current_lex_buffer , int l_lex_pos ));
-#endif
-
-
-/*
-**
-**  EXTERNAL DEFINITIONS
-**
-*/
-
-
-/*    These values are set by Lex initiailize routine or if the charset            */
-/*    option is specified on the module declaration                        */
-externaldef(uil_comp_glbl) int                 Uil_lex_l_user_default_charset;
-externaldef(uil_comp_glbl) sym_value_entry_type *Uil_lex_az_charset_entry;
-externaldef(uil_comp_glbl) int                         Uil_lex_l_localized;
-     
-
-/*  This is the most recent character set recognized by the grammar.  It    */
-/*  allows the use of the CHARACTER_SET function to prefix general string   */
-/*  literals.                                                              */
-externaldef(uil_comp_glbl) int                  Uil_lex_l_charset_specified;
-externaldef(uil_comp_glbl) int                  Uil_lex_l_literal_charset;
-externaldef(uil_comp_glbl) sym_value_entry_type *Uil_lex_az_literal_charset;
-/* %COMPLETE */
-externaldef(uil_comp_glbl) int Uil_characters_read;
-
-/*    For portability, declare all yy* variables as extern.    */
-
-extern yystype                 yylval;
-extern yystype                 prev_yylval;
-
-/*    This stack entry is used as the result of epsilon productions.   */
-
-extern yystype                 gz_yynullval;
-
-
-/*
- * Retain comments as scanned
- */
-#define INITIAL_COMMENT_SIZE 8000
-#define INCR_COMMENT_SIZE 2000
-
-
-externaldef(uil_comp_glbl) char *comment_text;
-externaldef(uil_comp_glbl) int comment_size;
-
-static int last_token_seen = 0;
-
-
-\f
-/*
-**
-**  MACRO DEFINITIONS
-**
-**/
-
-/* 
-**  Each of the 256 possible input characters has an associated class.
-**  These defines gives names to the classes.
-*/
-
-#define            class_blank     0           /* white space */
-#define     class_punc     1           /* punctuation characters */
-#define     class_name     2           /* alphabetics - {eEntvbrf} + {$ _} */
-#define     class_e        3           /* e */
-#define     class_escape    4          /* n t v b r f */
-#define     class_ff       5           /* form feed */
-#define     class_digit            6           /* 0..9 */
-#define     class_dot      7           /* . */
-#define            class_sign      8           /* - + */
-#define     class_quote            9           /* ' */
-#define     class_bslash    10         /* \ */
-#define     class_slash            11          /* / */
-#define     class_star     12          /* * */
-#define     class_exclam    13         /* ! */
-#define     class_eol      14          /* end of line - ascii nul */
-#define     class_rest     15          /* remaining printable characters */
-#define     class_illegal   16         /* remaining non printable characters */
-#define     class_pound            17          /* # */
-#define     class_dquote    18         /* " */
-#define            class_langle    19          /* < */
-#define            class_rangle    20          /* > */
-#define     class_highbit   21         /* high order bit set */
-#define     max_class      21          
-
-/*
-**   states within the token table
-*/
-
-#define            state_initial   0           /* initial state of automaton */
-#define            state_name      1           /* looking for a name */
-#define            state_integer   2           /* looking for a integer */
-#define            state_real_1    3           /* looking for a real */
-#define            state_real_2    4           /* looking for a real */
-#define            state_exp_1     5           /* looking for a real with exponent */
-#define            state_exp_2     6           /* looking for a real with exponent */
-#define            state_exp_3     7           /* looking for a real with exponent */
-#define            state_str_1     8           /* looking for a string */
-#define            state_str_2     9           /* looking for a string */
-#define            state_str_3     10          /* looking for a string */
-#define            state_comment_1 11          /* looking for a comment */
-#define            state_comment_2 12          /* looking for a comment */
-#define            state_comment_3 13          /* looking for a comment */
-#define            state_comment_4 14          /* looking for a comment */
-#define            state_eat_rest  15          /* eat up rest characters */
-#define            state_gstr_1    16          /* looking for a general string */
-#define            state_gstr_2    17          /* looking for a general string */
-#define            state_gstr_3    18          /* looking for a general string */
-#define            state_gstr_4    19          /* looking for a general string */
-#define            state_gstr_5    20          /* looking for a general string */
-#define            state_langle    21          /* looking for << */
-#define            state_rangle    22          /* looking for >> */
-#define            max_state       22
-
-/*
-**   actions in token table
-**       all actions requiring a move of the current character have
-**       a negative value
-*/
-
-#define            NEGATIVE 0x40
-
-#define     min_action     1
-#define            move_advance    (NEGATIVE | 1)      /* save character - goto next state */
-#define            advance         1           /* goto next state */
-#define     move_final      (NEGATIVE | 2)     /* save character - found token */
-#define     final           2          /* found token */
-#define     move_error      (NEGATIVE | 3)     /* save character - found error */
-#define     error           3          /* found error */
-#define            move_special    (NEGATIVE | 4)              /* special action */
-#define            special         4           /* save character - special action */
-#define            reset           5           /* reset the analyzer */
-#define     final_comment   (NEGATIVE | 6)       /* save whole comment  RAP */
-
-/*
-**  errors encoded in the token table
-*/
-
-#define            min_error       0           
-#define            bad_prefix      0           /* junk starts a token */
-#define            error_max       0
-
-/*
-**  final states in the token table
-*/
-
-#define     token_min          1
-#define            token_punc          1       /* punctuation character */
-#define     token_eol          2       /* end of line */
-#define     token_real         3       /* real number */
-#define     token_integer      4       /* integer */
-#define     token_name         5       /* identifier */
-#define     token_ustring      6       /* unterminated string */
-#define     token_string       7       /* string */
-#define     token_ff           8       /* form feed */
-#define     token_ugstr                9       /* unterminated general string */
-#define     token_gstr         10      /* general string */
-#define     token_punc2                11      /* 2 character punctuation */
-#define     token_comment       12      /* comment block RAP */
-#define            token_lstr          13      /* localized general string */
-#define     token_max          13
-
-
-/*
-**  special actions that take place
-*/
-
-#define            control_char    1           /* unprintable character in construct */
-#define            start_bslash    2           /* start of \ construct in string */
-#define            ignore_bslash   3           /* \ not followed by correct sequence */
-#define            found_digit     4           /* digit in \ sequence */
-#define            end_digits      5           /* end of \digit...\ sequence */
-#define            insert_char     6           /* end of \x sequence */
-#define            missing_bslash  7           /* \ at end of \digit...\ missing */
-#define            string_wrap     8           /* string wraps to next line */
-#define            comment_wrap    9           /* comment wraps to next line */
-#define            charset_gstr    10          /* found char set for general string */
-#define            nocharset_gstr  11          /* default char set for general string */
-#define            highbit_char    12          /* default char set for general string */
-
-/*
-**  define backup field values of a token table cell
-*/
-
-#define            not_used        0           /* value not defined for this action */
-#define            backup_0        0           /* no backup required */
-#define            backup_1        1           /* 1 character backup needed */
-#define            backup_2        2           /* 2 character backup needed */
-#define            backup_3        3           /* 3 character backup needed */
-
-/* 
-**  form of each cell in the token table
-*/
-
-\f
-typedef struct
-{
-    char       action;                     /* action to be taken */
-    char        next_state;                /* next state */
-                                           /* terminal found */
-                                           /* error found */
-    char       backup;                     /* number of character to backup */
-                                           /* action for special cases */
-    char       unused;
-} cell;
-
-/*
-**
-**  OWN Storage for TOKEN BUILDER
-**
-*/
-
-#define l_max_lex_buffer_pos  127
-
-static lex_buffer_type  *az_first_lex_buffer;
-
-/*
-**  the actual token table
-*/
-
-static cell XmConst token_table[ max_state+1][ max_class+1] =
-  { 
-    { /* state_initial */
-       /* class_blank   */ { reset,            state_initial,      not_used },
-       /* class_punc    */ { move_final,       token_punc,         backup_0 },
-       /* class_name    */ { move_advance,     state_name,         not_used },
-       /* class_e       */ { move_advance,     state_name,         not_used },
-       /* class_escape  */ { move_advance,     state_name,         not_used },
-       /* class_ff      */ { final,            token_ff,           backup_0 },
-       /* class_digit   */ { move_advance,     state_integer,      not_used },
-       /* class_dot     */ { move_advance,     state_real_1,       not_used },
-       /* class_sign    */ { move_final,       token_punc,         backup_0 },
-       /* class_quote   */ { advance,          state_str_1,        not_used },
-       /* class_bslash  */ { move_advance,     state_eat_rest,     not_used },
-       /* class_slash   */ { move_advance,     state_comment_1,    not_used },
-       /* class_star    */ { move_final,       token_punc,         backup_0 },
-       /* class_exclam  */ { move_advance,     state_comment_4,    not_used },
-       /* class_eol     */ { final,            token_eol,          backup_0 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_initial,  control_char },
-       /* class_pound   */ { move_final,       token_punc,         backup_0 },
-       /* class_dquote  */ { special,          state_gstr_3, nocharset_gstr },
-       /* class_langle  */ { move_advance,     state_langle,       not_used },
-       /* class_rangle  */ { move_advance,     state_rangle,       not_used },
-       /* class_highbit */ { move_advance,     state_eat_rest,     not_used },
-    },
-    { /* state_name */
-       /* class_blank   */ { final,            token_name,         backup_0 },
-       /* class_punc    */ { move_final,       token_name,         backup_1 },
-       /* class_name    */ { move_advance,     state_name,         not_used },
-       /* class_e       */ { move_advance,     state_name,         not_used },
-       /* class_escape  */ { move_advance,     state_name,         not_used },
-       /* class_ff      */ { move_final,       token_name,         backup_1 },
-       /* class_digit   */ { move_advance,     state_name,         not_used },
-       /* class_dot     */ { move_final,       token_name,         backup_1 },
-       /* class_sign    */ { move_final,       token_name,         backup_1 },
-       /* class_quote   */ { move_final,       token_name,         backup_1 },
-       /* class_bslash  */ { move_final,       token_name,         backup_1 },
-       /* class_slash   */ { move_final,       token_name,         backup_1 },
-       /* class_star    */ { move_final,       token_name,         backup_1 },
-       /* class_exclam  */ { move_final,       token_name,         backup_1 },
-       /* class_eol     */ { move_final,       token_name,         backup_1 },
-       /* class_rest    */ { move_final,       token_name,         backup_1 },
-       /* class_illegal */ { move_final,       token_name,         backup_1 },
-       /* class_pound   */ { move_final,       token_name,         backup_1 },
-       /* class_dquote  */ { move_final,       token_name,         backup_1 },
-       /* class_langle  */ { move_final,       token_name,         backup_1 },
-       /* class_rangle  */ { move_final,       token_name,         backup_1 },
-       /* class_highbit */ { move_final,       token_name,         backup_1 },
-    },
-    { /* state_integer */
-       /* class_blank   */ { final,            token_integer,      backup_0 },
-       /* class_punc    */ { move_final,       token_integer,      backup_1 },
-       /* class_name    */ { move_final,       token_integer,      backup_1 },
-       /* class_e       */ { move_final,       token_integer,      backup_1 },
-       /* class_escape  */ { move_final,       token_integer,      backup_1 },
-       /* class_ff      */ { move_final,       token_integer,      backup_1 },
-       /* class_digit   */ { move_advance,     state_integer,      not_used },
-       /* class_dot     */ { move_advance,     state_real_2,       not_used },
-       /* class_sign    */ { move_final,       token_integer,      backup_1 },
-       /* class_quote   */ { move_final,       token_integer,      backup_1 },
-       /* class_bslash  */ { move_final,       token_integer,      backup_1 },
-       /* class_slash   */ { move_final,       token_integer,      backup_1 },
-       /* class_star    */ { move_final,       token_integer,      backup_1 },
-       /* class_exclam  */ { move_final,       token_integer,      backup_1 },
-       /* class_eol     */ { move_final,       token_integer,      backup_1 },
-       /* class_rest    */ { move_final,       token_integer,      backup_1 },
-       /* class_illegal */ { move_final,       token_integer,      backup_1 },
-       /* class_pound   */ { move_final,       token_integer,      backup_1 },
-       /* class_dquote  */ { move_final,       token_integer,      backup_1 },
-       /* class_langle  */ { move_final,       token_integer,      backup_1 },
-       /* class_rangle  */ { move_final,       token_integer,      backup_1 },
-       /* class_highbit */ { move_final,       token_integer,      backup_1 },
-    },
-    { /* state_real_1 */
-       /* class_blank   */ { move_advance,     state_eat_rest,     not_used },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_e       */ { move_error,       bad_prefix,         backup_1 },
-       /* class_escape  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_ff      */ { special,          state_real_1,   control_char },
-       /* class_digit   */ { move_advance,     state_real_2,       not_used },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_real_1,   control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_langle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rangle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_highbit */ { move_advance,     state_eat_rest,     not_used },
-    },
-    { /* state_real_2 */
-       /* class_blank   */ { final,            token_real,         backup_0 },
-       /* class_punc    */ { move_final,       token_real,         backup_1 },
-       /* class_name    */ { move_final,       token_real,         backup_1 },
-       /* class_e       */ { move_advance,     state_exp_1,        not_used },
-       /* class_escape  */ { move_final,       token_real,         backup_1 },
-       /* class_ff      */ { move_final,       token_real,         backup_1 },
-       /* class_digit   */ { move_advance,     state_real_2,       not_used },
-       /* class_dot     */ { move_final,       token_real,         backup_1 },
-       /* class_sign    */ { move_final,       token_real,         backup_1 },
-       /* class_quote   */ { move_final,       token_real,         backup_1 },
-       /* class_bslash  */ { move_final,       token_real,         backup_1 },
-       /* class_slash   */ { move_final,       token_real,         backup_1 },
-       /* class_star    */ { move_final,       token_real,         backup_1 },
-       /* class_exclam  */ { move_final,       token_real,         backup_1 },
-       /* class_eol     */ { move_final,       token_real,         backup_1 },
-       /* class_rest    */ { move_final,       token_real,         backup_1 },
-       /* class_illegal */ { move_final,       token_real,         backup_1 },
-       /* class_pound   */ { move_final,       token_real,         backup_1 },
-       /* class_dquote  */ { move_final,       token_real,         backup_1 },
-       /* class_langle  */ { move_final,       token_real,         backup_1 },
-       /* class_rangle  */ { move_final,       token_real,         backup_1 },
-       /* class_highbit */ { move_final,       token_real,         backup_1 },
-    },
-    { /* state_exp_1 */
-       /* class_blank   */ { move_final,       token_real,         backup_2 },
-       /* class_punc    */ { move_final,       token_real,         backup_2 },
-       /* class_name    */ { move_final,       token_real,         backup_2 },
-       /* class_e       */ { move_final,       token_real,         backup_2 },
-       /* class_escape  */ { move_final,       token_real,         backup_2 },
-       /* class_ff      */ { move_final,       token_real,         backup_2 },
-       /* class_digit   */ { move_advance,     state_exp_3,        not_used },
-       /* class_dot     */ { move_final,       token_real,         backup_2 },
-       /* class_sign    */ { move_advance,     state_exp_2,        not_used },
-       /* class_quote   */ { move_final,       token_real,         backup_2 },
-       /* class_bslash  */ { move_final,       token_real,         backup_2 },
-       /* class_slash   */ { move_final,       token_real,         backup_2 },
-       /* class_star    */ { move_final,       token_real,         backup_2 },
-       /* class_exclam  */ { move_final,       token_real,         backup_2 },
-       /* class_eol     */ { move_final,       token_real,         backup_2 },
-       /* class_rest    */ { move_final,       token_real,         backup_2 },
-       /* class_illegal */ { move_final,       token_real,         backup_2 },
-       /* class_pound   */ { move_final,       token_real,         backup_2 },
-       /* class_dquote  */ { move_final,       token_real,         backup_2 },
-       /* class_langle  */ { move_final,       token_real,         backup_2 },
-       /* class_rangle  */ { move_final,       token_real,         backup_2 },
-       /* class_highbit */ { move_final,       token_real,         backup_2 },
-    },
-    { /* state_exp_2 */
-       /* class_blank   */ { move_final,       token_real,         backup_3 },
-       /* class_punc    */ { move_final,       token_real,         backup_3 },
-       /* class_name    */ { move_final,       token_real,         backup_3 },
-       /* class_e       */ { move_final,       token_real,         backup_3 },
-       /* class_escape  */ { move_final,       token_real,         backup_3 },
-       /* class_ff      */ { move_final,       token_real,         backup_3 },
-       /* class_digit   */ { move_advance,     state_exp_3,        not_used },
-       /* class_dot     */ { move_final,       token_real,         backup_3 },
-       /* class_sign    */ { move_final,       token_real,         backup_3 },
-       /* class_quote   */ { move_final,       token_real,         backup_3 },
-       /* class_bslash  */ { move_final,       token_real,         backup_3 },
-       /* class_slash   */ { move_final,       token_real,         backup_3 },
-       /* class_star    */ { move_final,       token_real,         backup_3 },
-       /* class_exclam  */ { move_final,       token_real,         backup_3 },
-       /* class_eol     */ { move_final,       token_real,         backup_3 },
-       /* class_rest    */ { move_final,       token_real,         backup_3 },
-       /* class_illegal */ { move_final,       token_real,         backup_3 },
-       /* class_pound   */ { move_final,       token_real,         backup_3 },
-       /* class_dquote  */ { move_final,       token_real,         backup_3 },
-       /* class_langle  */ { move_final,       token_real,         backup_3 },
-       /* class_rangle  */ { move_final,       token_real,         backup_3 },
-       /* class_highbit */ { move_final,       token_real,         backup_3 },
-    },
-    { /* state_exp_3 */
-       /* class_blank   */ { final,            token_real,         backup_0 },
-       /* class_punc    */ { move_final,       token_real,         backup_1 },
-       /* class_name    */ { move_final,       token_real,         backup_1 },
-       /* class_e       */ { move_final,       token_real,         backup_1 },
-       /* class_escape  */ { move_final,       token_real,         backup_1 },
-       /* class_ff      */ { move_final,       token_real,         backup_1 },
-       /* class_digit   */ { move_advance,     state_exp_3,        not_used },
-       /* class_dot     */ { move_final,       token_real,         backup_1 },
-       /* class_sign    */ { move_final,       token_real,         backup_1 },
-       /* class_quote   */ { move_final,       token_real,         backup_1 },
-       /* class_bslash  */ { move_final,       token_real,         backup_1 },
-       /* class_slash   */ { move_final,       token_real,         backup_1 },
-       /* class_star    */ { move_final,       token_real,         backup_1 },
-       /* class_exclam  */ { move_final,       token_real,         backup_1 },
-       /* class_eol     */ { move_final,       token_real,         backup_1 },
-       /* class_rest    */ { move_final,       token_real,         backup_1 },
-       /* class_illegal */ { move_final,       token_real,         backup_1 },
-       /* class_pound   */ { move_final,       token_real,         backup_1 },
-       /* class_dquote  */ { move_final,       token_real,         backup_1 },
-       /* class_langle  */ { move_final,       token_real,         backup_1 },
-       /* class_rangle  */ { move_final,       token_real,         backup_1 },
-       /* class_highbit */ { move_final,       token_real,         backup_1 },
-    },
-    { /* state_str_1 */
-       /* class_blank   */ { move_advance,     state_str_1,        not_used },
-       /* class_punc    */ { move_advance,     state_str_1,        not_used },
-       /* class_name    */ { move_advance,     state_str_1,        not_used },
-       /* class_e       */ { move_advance,     state_str_1,        not_used },
-       /* class_escape  */ { move_advance,     state_str_1,        not_used },
-       /* class_ff      */ { special,          state_str_1,    control_char },
-       /* class_digit   */ { move_advance,     state_str_1,        not_used },
-       /* class_dot     */ { move_advance,     state_str_1,        not_used },
-       /* class_sign    */ { move_advance,     state_str_1,        not_used },
-       /* class_quote   */ { final,            token_string,       backup_0 },
-       /* class_bslash  */ { special,          state_str_2,    start_bslash },
-       /* class_slash   */ { move_advance,     state_str_1,        not_used },
-       /* class_star    */ { move_advance,     state_str_1,        not_used },
-       /* class_exclam  */ { move_advance,     state_str_1,        not_used },
-       /* class_eol     */ { move_final,       token_ustring,      backup_1 },
-       /* class_rest    */ { move_advance,     state_str_1,        not_used },
-       /* class_illegal */ { special,          state_str_1,    control_char },
-       /* class_pound   */ { move_advance,     state_str_1,        not_used },
-       /* class_dquote  */ { move_advance,     state_str_1,        not_used },
-       /* class_langle  */ { move_advance,     state_str_1,        not_used },
-       /* class_rangle  */ { move_advance,     state_str_1,        not_used },
-       /* class_highbit */ { move_advance,     state_str_1,        not_used },
-    },
-    { /* state_str_2 */
-       /* class_blank   */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_punc    */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_name    */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_e       */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_escape  */ { special,          state_str_1,     insert_char },
-       /* class_ff      */ { special,          state_str_1,    control_char },
-       /* class_digit   */ { special,          state_str_3,     found_digit },
-       /* class_dot     */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_sign    */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_quote   */ { special,          state_str_1,     insert_char },
-       /* class_bslash  */ { special,          state_str_1,     insert_char },
-       /* class_slash   */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_star    */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_exclam  */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_eol     */ { special,          state_str_1,     string_wrap },
-       /* class_rest    */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_illegal */ { special,          state_str_1,    control_char },
-       /* class_pound   */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_dquote  */ { special,          state_str_1,     insert_char },
-       /* class_langle  */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_rangle  */ { move_special,     state_str_1,   ignore_bslash },
-       /* class_highbit */ { move_special,     state_str_1,   ignore_bslash },
-    },
-    { /* state_str_3 */
-       /* class_blank   */ { move_special,     state_str_1,  missing_bslash },
-       /* class_punc    */ { move_special,     state_str_1,  missing_bslash },
-       /* class_name    */ { move_special,     state_str_1,  missing_bslash },
-       /* class_e       */ { move_special,     state_str_1,  missing_bslash },
-       /* class_escape  */ { move_special,     state_str_1,  missing_bslash },
-       /* class_ff      */ { special,          state_str_1,    control_char },
-       /* class_digit   */ { special,          state_str_3,     found_digit },
-       /* class_dot     */ { move_special,     state_str_1,  missing_bslash },
-       /* class_sign    */ { move_special,     state_str_1,  missing_bslash },
-       /* class_quote   */ { move_special,     state_str_1,  missing_bslash },
-       /* class_bslash  */ { special,          state_str_1,      end_digits },
-       /* class_slash   */ { move_special,     state_str_1,  missing_bslash },
-       /* class_star    */ { move_special,     state_str_1,  missing_bslash },
-       /* class_exclam  */ { move_special,     state_str_1,  missing_bslash },
-       /* class_eol     */ { move_final,       token_ustring,      backup_1 },
-       /* class_rest    */ { move_special,     state_str_1,  missing_bslash },
-       /* class_illegal */ { special,          state_str_3,    control_char },
-       /* class_pound   */ { move_special,     state_str_1,  missing_bslash },
-       /* class_dquote  */ { move_special,     state_str_1,  missing_bslash },
-       /* class_langle  */ { move_special,     state_str_1,  missing_bslash },
-       /* class_rangle  */ { move_special,     state_str_1,  missing_bslash },
-       /* class_highbit */ { move_special,     state_str_1,  missing_bslash },
-    },
-    { /* state_comment_1 */ 
-       /* class_blank   */ { move_final,       token_punc,         backup_0 },
-       /* class_punc    */ { move_final,       token_punc,         backup_1 },
-       /* class_name    */ { move_final,       token_punc,         backup_1 },
-       /* class_e       */ { move_final,       token_punc,         backup_1 },
-       /* class_escape  */ { move_final,       token_punc,         backup_1 },
-       /* class_ff      */ { special,          state_comment_1,control_char },
-       /* class_digit   */ { move_final,       token_punc,         backup_1 },
-       /* class_dot     */ { move_final,       token_punc,         backup_1 },
-       /* class_sign    */ { move_final,       token_punc,         backup_1 },
-       /* class_quote   */ { move_final,       token_punc,         backup_1 },
-       /* class_bslash  */ { move_final,       token_punc,         backup_1 },
-       /* class_slash   */ { move_final,       token_punc,         backup_1 },
-       /* class_star    */ { move_advance,     state_comment_2,    not_used },
-       /* class_exclam  */ { move_final,       token_punc,         backup_1 },
-       /* class_eol     */ { move_final,       token_punc,         backup_1 },
-       /* class_rest    */ { move_final,       token_punc,         backup_1 },
-       /* class_illegal */ { special,          state_comment_1,control_char },
-       /* class_pound   */ { move_final,       token_punc,         backup_1 },
-       /* class_dquote  */ { move_final,       token_punc,         backup_1 },
-       /* class_langle  */ { move_final,       token_punc,         backup_1 },
-       /* class_rangle  */ { move_final,       token_punc,         backup_1 },
-       /* class_highbit */ { move_final,       token_punc,         backup_1 },
-    },
-    { /* state_comment_2 */ 
-       /* class_blank   */ { move_advance,     state_comment_2,    not_used },
-       /* class_punc    */ { move_advance,     state_comment_2,    not_used },
-       /* class_name    */ { move_advance,     state_comment_2,    not_used },
-       /* class_e       */ { move_advance,     state_comment_2,    not_used },
-       /* class_escape  */ { move_advance,     state_comment_2,    not_used },
-       /* class_ff      */ { move_special,     state_comment_2,control_char },
-       /* class_digit   */ { move_advance,     state_comment_2,    not_used },
-       /* class_dot     */ { move_advance,     state_comment_2,    not_used },
-       /* class_sign    */ { move_advance,     state_comment_2,    not_used },
-       /* class_quote   */ { move_advance,     state_comment_2,    not_used },
-       /* class_bslash  */ { move_advance,     state_comment_2,    not_used },
-       /* class_slash   */ { move_advance,     state_comment_2,    not_used },
-       /* class_star    */ { move_advance,     state_comment_3,    not_used },
-       /* class_exclam  */ { move_advance,     state_comment_2,    not_used },
-       /* class_eol     */ { move_special,     state_comment_2,comment_wrap },
-       /* class_rest    */ { move_advance,     state_comment_2,    not_used },
-       /* class_illegal */ { move_special,     state_comment_2,control_char },
-       /* class_pound   */ { move_advance,     state_comment_2,    not_used },
-       /* class_dquote  */ { move_advance,     state_comment_2,    not_used },
-       /* class_langle  */ { move_advance,     state_comment_2,    not_used },
-       /* class_rangle  */ { move_advance,     state_comment_2,    not_used },
-       /* class_highbit */ { move_advance,     state_comment_2,    not_used },
-    },
-    { /* state_comment_3 */ 
-       /* class_blank   */ { move_advance,     state_comment_2,    not_used },
-       /* class_punc    */ { move_advance,     state_comment_2,    not_used },
-       /* class_name    */ { move_advance,     state_comment_2,    not_used },
-       /* class_e       */ { move_advance,     state_comment_2,    not_used },
-       /* class_escape  */ { move_advance,     state_comment_2,    not_used },
-       /* class_ff      */ { move_special,     state_comment_2,control_char },
-       /* class_digit   */ { move_advance,     state_comment_2,    not_used },
-       /* class_dot     */ { move_advance,     state_comment_2,    not_used },
-       /* class_sign    */ { move_advance,     state_comment_2,    not_used },
-       /* class_quote   */ { move_advance,     state_comment_2,    not_used },
-       /* class_bslash  */ { move_advance,     state_comment_2,    not_used },
-       /* class_slash   */ { final_comment,    token_comment,      not_used },
-       /* class_star    */ { move_advance,     state_comment_3,    not_used },
-       /* class_exclam  */ { move_advance,     state_comment_2,    not_used },
-       /* class_eol     */ { move_special,     state_comment_2,comment_wrap },
-       /* class_rest    */ { move_advance,     state_comment_2,    not_used },
-       /* class_illegal */ { move_special,     state_comment_2,control_char },
-       /* class_pound   */ { move_advance,     state_comment_2,    not_used },
-       /* class_dquote  */ { move_advance,     state_comment_2,    not_used },
-       /* class_langle  */ { move_advance,     state_comment_2,    not_used },
-       /* class_rangle  */ { move_advance,     state_comment_2,    not_used },
-       /* class_highbit */ { move_advance,     state_comment_2,    not_used },
-    },
-    { /* state_comment_4 */ 
-       /* class_blank   */ { move_advance,     state_comment_4,    not_used },
-       /* class_punc    */ { move_advance,     state_comment_4,    not_used },
-       /* class_name    */ { move_advance,     state_comment_4,    not_used },
-       /* class_e       */ { move_advance,     state_comment_4,    not_used },
-       /* class_escape  */ { move_advance,     state_comment_4,    not_used },
-       /* class_ff      */ { move_special,     state_comment_4,control_char },
-       /* class_digit   */ { move_advance,     state_comment_4,    not_used },
-       /* class_dot     */ { move_advance,     state_comment_4,    not_used },
-       /* class_sign    */ { move_advance,     state_comment_4,    not_used },
-       /* class_quote   */ { move_advance,     state_comment_4,    not_used },
-       /* class_bslash  */ { move_advance,     state_comment_4,    not_used },
-       /* class_slash   */ { move_advance,     state_comment_4,    not_used },
-       /* class_star    */ { move_advance,     state_comment_4,    not_used },
-       /* class_exclam  */ { move_advance,     state_comment_4,    not_used },
-       /* class_eol     */ { final_comment,    token_comment,      backup_1 },
-       /* class_rest    */ { move_advance,     state_comment_4,    not_used },
-       /* class_illegal */ { move_special,     state_comment_4,control_char },
-       /* class_pound   */ { move_advance,     state_comment_4,    not_used },
-       /* class_dquote  */ { move_advance,     state_comment_4,    not_used },
-       /* class_langle  */ { move_advance,     state_comment_4,    not_used },
-       /* class_rangle  */ { move_advance,     state_comment_4,    not_used },
-       /* class_highbit */ { move_advance,     state_comment_4,    not_used },
-    },
-    { /* state_eat_rest */ 
-       /* class_blank   */ { move_advance,     state_eat_rest,     not_used },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_e       */ { move_error,       bad_prefix,         backup_1 },
-       /* class_escape  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_ff      */ { special,          state_eat_rest, control_char },
-       /* class_digit   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_advance,     state_eat_rest,     not_used },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_eat_rest, control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_langle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rangle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_highbit */ { move_advance,     state_eat_rest,     not_used },
-    },
-    { /* state_gstr_1 */ 
-       /* class_blank   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_advance,     state_gstr_2,       not_used },
-       /* class_e       */ { move_advance,     state_gstr_2,       not_used },
-       /* class_escape  */ { move_advance,     state_gstr_2,       not_used },
-       /* class_ff      */ { special,          state_gstr_1,   control_char },
-       /* class_digit   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_advance,     state_eat_rest,     not_used },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_eat_rest, control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_langle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rangle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_highbit */ { move_advance,     state_eat_rest,     not_used },
-    },
-    { /* state_gstr_2 */ 
-       /* class_blank   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_advance,     state_gstr_2,       not_used },
-       /* class_e       */ { move_advance,     state_gstr_2,       not_used },
-       /* class_escape  */ { move_advance,     state_gstr_2,       not_used },
-       /* class_ff      */ { special,          state_gstr_2,   control_char },
-       /* class_digit   */ { move_advance,     state_gstr_2,       not_used },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_advance,     state_eat_rest,     not_used },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_eat_rest, control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { special,          state_gstr_3,   charset_gstr },
-       /* class_langle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rangle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_highbit */ { move_advance,     state_eat_rest,     not_used },
-    },
-    { /* state_gstr_3 */
-       /* class_blank   */ { move_advance,     state_gstr_3,       not_used },
-       /* class_punc    */ { move_advance,     state_gstr_3,       not_used },
-       /* class_name    */ { move_advance,     state_gstr_3,       not_used },
-       /* class_e       */ { move_advance,     state_gstr_3,       not_used },
-       /* class_escape  */ { move_advance,     state_gstr_3,       not_used },
-       /* class_ff      */ { special,          state_gstr_3,   control_char },
-       /* class_digit   */ { move_advance,     state_gstr_3,       not_used },
-       /* class_dot     */ { move_advance,     state_gstr_3,       not_used },
-       /* class_sign    */ { move_advance,     state_gstr_3,       not_used },
-       /* class_quote   */ { move_advance,     state_gstr_3,       not_used },
-       /* class_bslash  */ { special,          state_gstr_4,   start_bslash },
-       /* class_slash   */ { move_advance,     state_gstr_3,       not_used },
-       /* class_star    */ { move_advance,     state_gstr_3,       not_used },
-       /* class_exclam  */ { move_advance,     state_gstr_3,       not_used },
-       /* class_eol     */ { move_final,       token_ugstr,        backup_1 },
-       /* class_rest    */ { move_advance,     state_gstr_3,       not_used },
-       /* class_illegal */ { special,          state_gstr_3,   control_char },
-       /* class_pound   */ { move_advance,     state_gstr_3,       not_used },
-       /* class_dquote  */ { final,            token_gstr,         backup_0 },
-       /* class_langle  */ { move_advance,     state_gstr_3,       not_used },
-       /* class_rangle  */ { move_advance,     state_gstr_3,       not_used },
-       /* class_highbit */ { move_special,     state_gstr_3,   highbit_char },
-    },
-    { /* state_gstr_4 */
-       /* class_blank   */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_punc    */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_name    */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_e       */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_escape  */ { special,          state_gstr_3,    insert_char },
-       /* class_ff      */ { special,          state_gstr_3,   control_char },
-       /* class_digit   */ { special,          state_gstr_5,    found_digit },
-       /* class_dot     */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_sign    */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_quote   */ { special,          state_gstr_3,    insert_char },
-       /* class_bslash  */ { special,          state_gstr_3,    insert_char },
-       /* class_slash   */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_star    */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_exclam  */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_eol     */ { move_final,       token_ugstr,        backup_1 },
-       /* class_rest    */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_illegal */ { special,          state_gstr_3,   control_char },
-       /* class_pound   */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_dquote  */ { special,          state_gstr_3,    insert_char },
-       /* class_langle  */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_rangle  */ { move_special,     state_gstr_3,  ignore_bslash },
-       /* class_highbit */ { move_special,     state_gstr_3,  ignore_bslash },
-    },
-    { /* state_gstr_5 */
-       /* class_blank   */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_punc    */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_name    */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_e       */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_escape  */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_ff      */ { special,          state_gstr_3,   control_char },
-       /* class_digit   */ { special,          state_gstr_5,    found_digit },
-       /* class_dot     */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_sign    */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_quote   */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_bslash  */ { special,          state_gstr_3,     end_digits },
-       /* class_slash   */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_star    */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_exclam  */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_eol     */ { move_final,       token_ugstr,        backup_1 },
-       /* class_rest    */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_illegal */ { special,          state_str_3,    control_char },
-       /* class_pound   */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_dquote  */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_langle  */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_rangle  */ { move_special,     state_gstr_3, missing_bslash },
-       /* class_highbit */ { move_special,     state_gstr_3, missing_bslash },
-    },
-    { /* state_langle */
-       /* class_blank   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_e       */ { move_error,       bad_prefix,         backup_1 },
-       /* class_escape  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_ff      */ { special,          state_langle,   control_char },
-       /* class_digit   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_final,       token_ugstr,        backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_langle,   control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_langle  */ { move_final,       token_punc2,        backup_0 },
-       /* class_rangle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_highbit */ { move_error,       bad_prefix,         backup_1 },
-    },
-    { /* state_rangle */
-       /* class_blank   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_punc    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_name    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_e       */ { move_error,       bad_prefix,         backup_1 },
-       /* class_escape  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_ff      */ { special,          state_langle,   control_char },
-       /* class_digit   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dot     */ { move_error,       bad_prefix,         backup_1 },
-       /* class_sign    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_quote   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_bslash  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_slash   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_star    */ { move_error,       bad_prefix,         backup_1 },
-       /* class_exclam  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_eol     */ { move_final,       token_ugstr,        backup_1 },
-       /* class_rest    */ { move_advance,     state_eat_rest,     not_used },
-       /* class_illegal */ { special,          state_langle,   control_char },
-       /* class_pound   */ { move_error,       bad_prefix,         backup_1 },
-       /* class_dquote  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_langle  */ { move_error,       bad_prefix,         backup_1 },
-       /* class_rangle  */ { move_final,       token_punc2,        backup_0 },
-       /* class_highbit */ { move_error,       bad_prefix,         backup_1 },
-    },
-  };
-
-\f
-static char class_table[ 256 ] =
-  {
-/* 00 */    class_eol,      class_illegal,  class_illegal,  class_illegal,
-/* 04 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 08 */    class_illegal,  class_blank,    class_illegal,  class_illegal,
-/* 0C */    class_ff,      class_illegal,  class_illegal,  class_illegal,
-/* 10 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 14 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 18 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 1C */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 20 */    class_blank,    class_exclam,   class_dquote,   class_pound,
-/* 24 */    class_name,            class_rest,     class_punc,     class_quote,
-/* 28 */    class_punc,            class_punc,     class_star,     class_sign,
-/* 2C */    class_punc,     class_sign,     class_dot,      class_slash,
-/* 30 */    class_digit,    class_digit,    class_digit,    class_digit,
-/* 34 */    class_digit,    class_digit,    class_digit,    class_digit,
-/* 38 */    class_digit,    class_digit,    class_punc,     class_punc,
-/* 3C */    class_langle,   class_punc,     class_rangle,   class_rest,
-/* 40 */    class_rest,     class_name,     class_name,     class_name, 
-/* 44 */    class_name,     class_e,       class_name,     class_name, 
-/* 48 */    class_name,     class_name,     class_name,     class_name, 
-/* 4C */    class_name,     class_name,     class_name,            class_name, 
-/* 50 */    class_name,     class_name,     class_name,     class_name,
-/* 54 */    class_name,     class_name,     class_name,     class_name, 
-/* 58 */    class_name,     class_name,     class_name,     class_rest,
-/* 5C */    class_bslash,   class_rest,     class_punc,     class_name,
-/* 60 */    class_rest,     class_name,     class_escape,   class_name, 
-/* 64 */    class_name,     class_e,        class_escape,   class_name, 
-/* 68 */    class_name,     class_name,     class_name,     class_name, 
-/* 6C */    class_name,     class_name,     class_escape,   class_name, 
-/* 70 */    class_name,     class_name,     class_escape,   class_name,
-/* 74 */    class_escape,   class_name,     class_escape,   class_name, 
-/* 78 */    class_name,     class_name,     class_name,     class_punc,
-/* 7C */    class_punc,            class_punc,     class_punc,     class_illegal,
-/* 80 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 84 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 88 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 8C */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 90 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 94 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 98 */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* 9C */    class_illegal,  class_illegal,  class_illegal,  class_illegal,
-/* A0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* A4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* A8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* AC */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* B0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* B4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* B8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* BC */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* C0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* C4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* C8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* CC */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* D0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* D4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* D8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* DC */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* E0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* E4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* E8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* EC */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* F0 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* F4 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* F8 */    class_highbit,  class_highbit,  class_highbit,  class_highbit,
-/* FC */    class_highbit,  class_highbit,  class_highbit,  class_highbit
-
-  };
-
-
-/*    Tables to correlate token numbers and ASCII values for
-      punctuation characters.  Used by yylex and lex_issue_error.     */
-
-#define tok_punc_token_num     17
-static unsigned char   punc_char[tok_punc_token_num] = {
-                       '{', '}', '=', ';', '(', ')', ':', '+', '-', 
-                       ',', '&', '~', '*', '/', '^', '|', '#'};
-static int     punc_token[tok_punc_token_num] =
-                   {   LEFT_BRACE,
-                       RIGHT_BRACE,
-                       EQUAL_SIGN,
-                       SEMICOLON,
-                       LEFT_PAREN,
-                       RIGHT_PAREN,
-                       COLON,
-                       PLUS,
-                       MINUS,
-                       COMMA,
-                       AND,
-                       NOT,
-                       MULTIPLY, 
-                       DIVIDE,
-                       XOR,
-                       OR,
-                       POUND };
-
-/*    Tables to correlate token numbers and ASCII value pairs for
-      punctuation characters.  Used by yylex and lex_issue_error.     */
-
-static unsigned char   punc2_char[2] = {'<', '>'};
-static int     punc2_token[2] =
-                   {   LEFT_SHIFT,
-                       RIGHT_SHIFT };
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function returns the next token to be built in the UIL source
-**     program being read by the compiler.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      
-**
-**  IMPLICIT OUTPUTS:
-**
-**      
-**
-**  FUNCTION VALUE:
-**
-**      number of the token generated
-**
-**  SIDE EFFECTS:
-**
-**      
-**
-**
-**--
-**/
-int    yylex()
-{
-    unsigned char c_char;          /* current character */
-    int                l_class;            /* current character's class */
-    int                l_state;            /* current token_table state */
-    int                l_lex_pos;          /* next available position in c_lex_buffer*/
-    cell       z_cell;             /* local copy of current token_table state*/
-    int                l_bslash_value;     /* current value of \digit...\ construct */
-    int                l_start_src_pos;    /* starting source position of a token */
-    int                l_charset;          /* character set for strings */
-    int                l_write_direction;          /* writing direction */
-    int                l_parse_direction;          /* parsing direction */
-    int                l_charset_sixteen_bit = FALSE; /* true if charset is 16-bit */
-    sym_value_entry_type
-               *az_charset_entry;  /* value entry for the current charset */
-    int                l_16bit_char_count = 0; /* for strings, count 16-bit chars */
-    int                l_16bit_chars_only; /* True if the gstr we are */
-                                   /* processing only has 16-bit chars */
-    src_source_record_type
-               *az_start_src_record;/* starting source record of a token */
-    lex_buffer_type  
-               *az_current_lex_buffer; /* current lexical buffer */
-
-       az_charset_entry = (sym_value_entry_type *) 0;
-
-    /*
-    **  Call the Status callback routine to report our progress.
-    */
-    /* %COMPLETE  (between 0-50) */
-    Uil_percent_complete =
-      CEIL((int)( .5 * ((float)Uil_characters_read/(float)Uil_file_size))*100, 50);
-    if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-       diag_report_status();    
-
-
-initialize_token_builder:
-
-    /* initialize the lexical analyzer by
-     *     saving starting source position of the token
-     *     resetting the lexical buffer
-     *     putting the analyser in its initial state */
-
-    az_start_src_record = src_az_current_source_record;
-    l_start_src_pos = src_az_current_source_buffer->w_current_position;
-
-    az_current_lex_buffer = az_first_lex_buffer;
-    l_lex_pos = 0;
-    l_charset = lex_k_default_charset;
-    l_16bit_chars_only = FALSE;
-    l_state = state_initial;
-    
-    /* start looking for the token */
-
-continue_in_next_state:
-
-    for (;;)
-    {
-                                                   /* get next input char */
-                                                   /* advance source too */
-       c_char = src_az_current_source_buffer->c_text
-                   [ src_az_current_source_buffer->w_current_position++ ];
-
-       /* %COMPLETE */
-       Uil_characters_read++;
-
-       l_class = class_table[ c_char ];            /* determine its class */
-       z_cell = token_table[ l_state][l_class ];   /* load state cell */
-
-       /* pick up the next state, or terminal, or error */
-
-       l_state = z_cell.next_state;                
-
-       /* l_state is negative for action states requiring the current 
-        * character be saved in the current lexical buffer */
-
-       if (z_cell.action & NEGATIVE)
-       {
-           if (l_lex_pos > l_max_lex_buffer_pos )
-           {
-               az_current_lex_buffer = get_lex_buffer( az_current_lex_buffer );
-               l_lex_pos = 0;
-           }
-           az_current_lex_buffer->c_text[ l_lex_pos ] = c_char;
-           l_lex_pos++;
-       }
-
-       /* next step is based on action */
-
-       switch (z_cell.action)
-       {
-       case move_advance:
-       case advance:
-           if (l_16bit_chars_only) goto found_16bit_char;
-           continue;
-
-       case reset:
-           
-           goto initialize_token_builder;
-
-       case move_final: 
-       case final:
-        case final_comment:  /* RAP retain comments */
-
-           goto found_token;
-
-       case move_error: 
-       case error:
-
-           goto found_error;
-
-       case move_special:
-       case special:
-
-           goto special_processing;
-
-       default:
-
-           _assert( FALSE, "unknown token_table action" );
-
-       }
-    }
-
-    /* process special actions */
-
-special_processing:
-
-    switch (z_cell.backup)     /* backup holds special processing code */
-    {
-    case control_char:         /* encountered a control char in a string or
-                                * comment - issue a diagnotic and continue */
-       issue_control_char_diagnostic( c_char );
-       break;
-
-    case start_bslash:         /* start of a \ construct in a string */
-
-       l_bslash_value = 0;         /* initialize collection cell */
-       break;
-
-    case found_digit:          /* next digit in a \digit...\ sequence */
-
-       if (l_bslash_value < 256 )  /* if still in range add in next digit */
-           l_bslash_value = l_bslash_value * 10 + ( c_char - 48 );
-       break;
-
-    case end_digits:           /* end of \digit...\ sequence */
-
-       if (l_bslash_value >= 256 )  /* issue a diagnostic */
-       {   diag_issue_diagnostic
-               ( d_out_range, 
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1,
-                 "\\digit...\\ sequence",
-                 "0-255" );
-           l_bslash_value = lex_k_unprint_sub;
-       }
-
-       if (l_bslash_value == 0 )  /* issue a diagnostic */
-       {   diag_issue_diagnostic
-               ( d_null,
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1 );
-       }
-
-       if (l_lex_pos > l_max_lex_buffer_pos )
-       {
-           az_current_lex_buffer = get_lex_buffer( az_current_lex_buffer );
-           l_lex_pos = 0;
-       }
-       az_current_lex_buffer->c_text[ l_lex_pos++ ] = l_bslash_value;
-       break;
-
-    case insert_char:          /* place special character in lex buffer */
-    {
-       
-       static unsigned char c_bslash_char[10]  = {
-               '\\', '\'', 'n', 't', 'v', 'b', 'r', 'f', '"'};
-       static unsigned char ab_bslash_value[9] =
-                { 0x5C, 0x27, 0x0A, 0x09, 0x0B, 0x08, 0x0D, 0x0C, 0x22 };
-
-       if (l_lex_pos > l_max_lex_buffer_pos )
-       {
-           az_current_lex_buffer = get_lex_buffer( az_current_lex_buffer );
-           l_lex_pos = 0;
-       }
-       az_current_lex_buffer->c_text[ l_lex_pos++ ] = 
-           ab_bslash_value
-               [ _index( c_char, c_bslash_char, sizeof( c_bslash_char )-1 )];
-       break;
-    }
-
-    case missing_bslash:       /* \digit...\ sequence not terminated */
-
-       diag_issue_diagnostic
-               ( d_unterm_seq, 
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1,
-                 "\\digit...\\ sequence",
-                 "with \\" );
-       break;
-
-    case ignore_bslash:                /* \ not followed by valid character */
-
-       diag_issue_diagnostic
-               ( d_backslash_ignored, 
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1,
-                 c_char );
-       break;
-
-    case string_wrap:
-
-       if (src_get_source_line( ) == src_k_end_source)
-       {
-           diag_issue_diagnostic
-                   ( d_unterm_seq, 
-                     src_az_current_source_record,
-                     src_az_current_source_buffer->w_current_position - 1,
-                     "character string",
-                     "before end of source" );
-
-           src_az_current_source_buffer->w_current_position--;
-       }
-
-       break;
-
-    case comment_wrap:
-
-       if (src_get_source_line( ) == src_k_end_source)
-       {
-           diag_issue_diagnostic
-                   ( d_unterm_seq, 
-                     src_az_current_source_record,
-                     src_az_current_source_buffer->w_current_position - 1,
-                     "comment",
-                     "before end of source" );
-
-           src_az_current_source_buffer->w_current_position--;
-           return UILEOF;
-       }
-       az_current_lex_buffer->
-           c_text[strlen((char *)az_current_lex_buffer->c_text)] = '\n';
-       break;
-
-    case highbit_char:         /* check if must accept extra chars */
-found_16bit_char:
-    {
-       unsigned char    next_char;
-       
-
-       /*
-       **  If the current character set allows 16-bit characters, then
-       **  process them specially.
-       */
-       if ( l_charset_sixteen_bit )
-       {
-           /* need to:
-           **  1) get next input char and advance the source 
-           **  2) check that the next is not a control character
-           **  3) place the next character in the lex buffer
-           */
-
-           next_char = src_az_current_source_buffer->c_text
-                   [ src_az_current_source_buffer->w_current_position++ ];
-
-           switch (class_table[ next_char ])
-           {
-
-           case class_eol:
-               src_az_current_source_buffer->w_current_position--;
-           case class_illegal:
-               issue_control_char_diagnostic( next_char );
-               break;
-           default:
-               break;
-           }
-
-           if (l_lex_pos > l_max_lex_buffer_pos )
-           {
-               az_current_lex_buffer = get_lex_buffer( az_current_lex_buffer );
-               l_lex_pos = 0;
-           }
-
-           az_current_lex_buffer->c_text[ l_lex_pos++ ] = next_char;
-           l_16bit_char_count ++;
-       }
-
-       break;
-    }
-
-    case charset_gstr:         /* set l_charset with the char set */
-    {
-       _assert( FALSE, "Should never get to charset_gstr" );
-       break;
-    }
-
-    case nocharset_gstr:
-       if (Uil_lex_l_charset_specified) {
-           /* use the specified charset*/
-           l_charset = Uil_lex_l_literal_charset;
-           az_charset_entry = Uil_lex_az_literal_charset;
-           }
-       else if (Uil_lex_l_localized) goto found_localized_string;
-       else {          
-           /* No charset specified, use the default */
-           l_charset = Uil_lex_l_user_default_charset;
-           az_charset_entry = Uil_lex_az_charset_entry;
-           }
-
-
-
-       /* Get the charset information */
-       sem_charset_info
-           (l_charset,
-            az_charset_entry,
-            &l_write_direction,
-            &l_parse_direction,
-            &l_charset_sixteen_bit);
-
-       /* reset 16 bit character count to 0 */
-
-       l_16bit_char_count = 0;
-
-       /*
-       **  if this is a user-defined, 16-bit charset then treat all
-       **  as 16-bit.
-       */
-       if ((l_charset_sixteen_bit) && (l_charset == lex_k_userdefined_charset))
-           l_16bit_chars_only = TRUE;
-
-       break;
-
-    default:
-       _assert( FALSE, "unknown token_table special action" );
-
-    }
-
-    /* Next state of the token builder is should already be in l_state.
-     * Continue at this point */
-
-    goto continue_in_next_state;
-
-
-found_localized_string:
-    {
-      /* Local variables */
-      int              mb_len, i;
-      unsigned char    mb_byte;
-      
-      /* Should be looking at the first byte of the string. */
-      /* Localize... */
-      _MrmOSSetLocale("");
-    
-      /* Parse the string. */
-      while (TRUE)
-       {
-         mb_len = mblen((char *)&src_az_current_source_buffer->c_text
-                        [src_az_current_source_buffer->w_current_position],
-                        MB_CUR_MAX);
-      
-         mb_byte = src_az_current_source_buffer->c_text
-           [src_az_current_source_buffer->w_current_position];
-
-         if (mb_len == 1)
-           switch (class_table[mb_byte])
-             {
-             case class_eol:
-               z_cell.backup = backup_0;
-               l_state = token_ugstr;
-
-               if (l_lex_pos > l_max_lex_buffer_pos )
-                 {
-                   az_current_lex_buffer = 
-                     get_lex_buffer( az_current_lex_buffer );
-                   l_lex_pos = 0;
-                 }
-               az_current_lex_buffer->c_text[ l_lex_pos++ ] = mb_byte;
-               _MrmOSSetLocale("C");
-               goto found_token;
-
-             case class_dquote:
-               z_cell.backup = backup_0;
-               l_state = token_lstr;
-               src_az_current_source_buffer->w_current_position++;
-               _MrmOSSetLocale("C");
-               goto found_token;
-
-             default:
-               break;
-             }
-      
-         if (l_lex_pos > l_max_lex_buffer_pos )
-           {
-             az_current_lex_buffer = get_lex_buffer( az_current_lex_buffer );
-             l_lex_pos = 0;
-           }
-
-         for (i = 0; i < mb_len; i++)
-           {
-             if (l_lex_pos > l_max_lex_buffer_pos )
-               {
-                 az_current_lex_buffer = get_lex_buffer(az_current_lex_buffer);
-                 l_lex_pos = 0;
-               }
-             az_current_lex_buffer->c_text[l_lex_pos++] = 
-               src_az_current_source_buffer->c_text
-                 [src_az_current_source_buffer->w_current_position++];
-           }
-       }
-    }
-      
-found_token:
-
-    /* do any backup of the source buffer position and lex buffer */
-
-    src_az_current_source_buffer->w_current_position -= z_cell.backup;
-    l_lex_pos -= z_cell.backup;
-
-    /* put a null at the end of the current lex buffer */
-
-    az_current_lex_buffer->c_text[ l_lex_pos ] = 0;
-
-    /* case on the token found */
-
-    switch (l_state)           /* l_state holds the token found */
-    {
-    case token_name:
-    {
-
-       key_keytable_entry_type *az_keyword;
-
-       /* check the case sensitivity flag and change case if necessary */
-
-       if (! uil_v_case_sensitive) 
-       {
-           char        * ptr;
-           for ( ptr = (char *)(az_current_lex_buffer->c_text);
-                 (* ptr) != 0;
-                 (* ptr) = _upper (* ptr), ptr++)
-           {}
-       }
-
-       /* check if the name is a keyword */
-
-       az_keyword = 
-           key_find_keyword( l_lex_pos, (char *)az_current_lex_buffer->c_text );
-       if( az_keyword != NULL)
-           {
-             /* check that the length of the name is in range */
-
-             if (l_lex_pos > key_k_keyword_max_length)
-               {
-                 l_lex_pos = key_k_keyword_max_length;
-                 az_current_lex_buffer->c_text[ l_lex_pos ] = 0;
-                 diag_issue_diagnostic
-                   ( d_name_too_long,
-                    az_start_src_record,
-                    l_start_src_pos,
-                    az_current_lex_buffer->c_text );
-               }
-
-             yylval.value.az_keyword_entry = az_keyword;
-             yylval.b_type = az_keyword->b_token;
-             break;
-           }
-
-       /* process the name as an identifier */
-
-        /* check that the length of the identifier is in range */
-        /* Added for fix to CR 5566 */
-
-       if (l_lex_pos > lex_k_identifier_max_length)
-           {
-           l_lex_pos = lex_k_identifier_max_length;
-           az_current_lex_buffer->c_text[ l_lex_pos ] = 0;
-           diag_issue_diagnostic
-               ( d_name_too_long,
-                 az_start_src_record,
-                 l_start_src_pos,
-                 lex_k_identifier_max_length,
-                 az_current_lex_buffer->c_text );
-           }
-
-       yylval.value.az_symbol_entry =
-           (sym_entry_type *) sym_insert_name( l_lex_pos, (char *)az_current_lex_buffer->c_text );
-
-       yylval.b_type = NAME;
-       break;
-    }
-
-    case token_punc:
-    {
-       int             l_token;
-
-       /* found a punctuation mark - look up its token number in a table */
-
-       l_token = punc_token
-                   [ _index( az_current_lex_buffer->c_text[ 0 ],
-                             punc_char, sizeof( punc_char )) ];
-       yylval.b_type = l_token;
-
-        break;
-    }
-
-    case token_punc2:
-    {
-       int             l_token;
-
-       /* found a punctuation mark - look up its token number in a table */
-
-       l_token = punc2_token
-                   [ _index( az_current_lex_buffer->c_text[ 0 ],
-                             punc2_char, sizeof( punc2_char )) ];
-       yylval.b_type = l_token;
-
-        break;
-    }
-
-    case token_eol:
-       
-       /* if there is no more source
-        *   then return an end of file
-        *   otherwise go look for the next token */
-
-       if (src_get_source_line( ) == src_k_end_source)
-           return UILEOF;
-
-       goto initialize_token_builder;
-
-    case token_integer:
-    {
-       long                    l_integer;
-
-       yylval.b_type = UNS_INT_LITERAL;
-
-       /* convert the text to binary
-        *    the sign of the number is applied as part of semantic
-        *    analysis; thus we only handle integers in range 0..2**31-1
-        */
-
-        errno = 0;
-       l_integer = cvt_ascii_to_long(az_current_lex_buffer->c_text);
-
-       if (errno != 0)
-           diag_issue_diagnostic
-               ( d_out_range, 
-                 az_start_src_record,
-                 l_start_src_pos,
-                 "integer",
-                 " " );
-
-       yylval.value.az_symbol_entry = 
-               (sym_entry_type *)sem_create_value_entry
-                   ( (char *)&l_integer, sizeof( long ), sym_k_integer_value );
-       break;
-    }  
-
-    case token_ustring:
-
-       diag_issue_diagnostic
-               ( d_unterm_seq, 
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1,
-                 "character string",
-                 "before end of line" );
-
-  case token_comment:       /* RAP preserve comments */
-    {
-      int size;
-
-      if (last_token_seen != token_comment)
-       comment_text[0]=0;
-
-      size = (int)strlen((char *)az_current_lex_buffer->c_text)+1;
-      if ((size  + (int)strlen (comment_text)) >= comment_size)
-       {
-         comment_text = XtRealloc(comment_text, INCR_COMMENT_SIZE + strlen(comment_text));
-         comment_size = INCR_COMMENT_SIZE + strlen (comment_text);
-       }
-         
-      strcat (comment_text, (char *)az_current_lex_buffer->c_text);
-      strcat (comment_text, "\n");
-      last_token_seen = token_comment;
-           goto initialize_token_builder;
-    }
-
-
-    case token_string:
-found_primitive_string:
-    {
-       int                     l_length;
-       lex_buffer_type         *az_lex_buffer;
-       sym_value_entry_type    *az_value;
-       unsigned char           *c_char;
-
-       l_length = l_lex_pos;
-
-       for (az_lex_buffer = az_first_lex_buffer;  
-            az_lex_buffer != az_current_lex_buffer;  
-            az_lex_buffer = az_lex_buffer->az_next_buffer)
-           l_length = l_length + l_max_lex_buffer_pos + 1;
-
-       az_value = create_str_entry( l_length, l_charset, az_charset_entry );
-
-       c_char = (unsigned char *)az_value->value.c_value;
-
-       for (az_lex_buffer = az_first_lex_buffer;
-            az_lex_buffer != az_current_lex_buffer;  
-            az_lex_buffer = az_lex_buffer->az_next_buffer)
-       {
-           _move( c_char, az_lex_buffer->c_text, l_max_lex_buffer_pos + 1);
-           c_char = c_char + l_max_lex_buffer_pos + 1;
-       }
-
-       _move( c_char, az_lex_buffer->c_text, l_lex_pos );
-
-       yylval.value.az_symbol_entry = (sym_entry_type *) az_value;
-       yylval.b_type = CHAR_8_LITERAL;
-
-       break;
-    }
-
-    case token_real:
-    {
-       double  d_real;
-
-       yylval.b_type = UNS_FLOAT_LITERAL;
-
-        errno = 0;
-       d_real = atof((char *)az_current_lex_buffer->c_text);
-
-       if (errno != 0)
-           diag_issue_diagnostic
-               ( d_out_range, 
-                 az_start_src_record,
-                 l_start_src_pos,
-                 "real",
-                 " " );
-
-       yylval.value.az_symbol_entry = 
-               (sym_entry_type *)sem_create_value_entry
-                   ( (char *)&d_real, sizeof( double ), sym_k_float_value );
-       break;
-    }
-       
-    case token_ff:
-
-       if (l_start_src_pos != 0)
-           issue_control_char_diagnostic( c_char );
-
-        src_az_current_source_record->b_flags |= src_m_form_feed; 
-
-       goto initialize_token_builder;
-
-    case token_ugstr:
-
-       diag_issue_diagnostic
-               ( d_unterm_seq, 
-                 src_az_current_source_record,
-                 src_az_current_source_buffer->w_current_position - 1,
-                 "character string",
-                 "before end of line" );
-
-    case token_gstr:
-
-       /*
-       ** Some general strings require special processing.  Those
-       ** that do not can go thru the normal string code.
-       */
-        if ( l_parse_direction == XmSTRING_DIRECTION_R_TO_L )
-       {
-           int             i,j;
-           unsigned char   tmp1;
-           unsigned char   tmp2;
-
-           /* assuming the string is confined to a single lex buffer.      */
-           /* just flip the characters around.  16-bit characters need to  */
-           /* be done in groups of two bytes                               */
-           if (l_charset_sixteen_bit != TRUE)
-               /*
-               **  Just reverse the bytes from the first to last
-               */
-               for (i=0, j=l_lex_pos-1;  i < (l_lex_pos>>1);  i++,j--)
-               {
-                   tmp1 = az_current_lex_buffer->c_text[ i ];
-                   az_current_lex_buffer->c_text[ i ] = 
-                       az_current_lex_buffer->c_text[ j ];
-                   az_current_lex_buffer->c_text[ j ] = tmp1;
-               }
-
-           /*
-           **  Don't reverse the string if have less than 2 characters (4 bytes)
-           */
-           else if ((l_lex_pos>>1) > 1)
-               /*
-               **  This reversing doesn't work for mixed 8/16-bit character
-               **  sets, but only built-in character sets allow mixing and
-               **  they are not right-to-left.  We do the same copying as in
-               **  the 8-bit case above, but we move two bytes at a time and
-               **  reverse the order as we copy so they end up correct.
-               */
-               for (i=0, j=l_lex_pos-1;  i < (l_lex_pos>>1);  i+=2,j-=2)
-               {
-                   tmp1 = az_current_lex_buffer->c_text[ i ];
-                   tmp2 = az_current_lex_buffer->c_text[ i + 1 ];
-                   az_current_lex_buffer->c_text[ i ] = 
-                       az_current_lex_buffer->c_text[ j - 1 ];
-                   az_current_lex_buffer->c_text[ i + 1 ] = 
-                       az_current_lex_buffer->c_text[ j ];
-                   az_current_lex_buffer->c_text[ j ] = tmp2;
-                   az_current_lex_buffer->c_text[ j - 1 ] = tmp1;
-               }
-       }
-
-
-       /*
-       **  If the string isn't 16-bit or it is userdefined and thus
-       **  cannot be mixed 8/16-bit then we can just make a primitive
-       **  string.
-       */
-       if ((l_charset_sixteen_bit != TRUE) ||
-           (l_charset == lex_k_userdefined_charset))
-           goto found_primitive_string;
-       else
-       {
-       
-           sym_value_entry_type    *cstr_entry;
-           sym_value_entry_type    *str_entry;
-           int                     a_off, off;
-
-           /*
-           **  if string consists solely of 8-bit ascii characters,
-           **  l_16bit_char_count will be zero.
-           **  if string consists solely of 16 bit characters,
-           **  l_16bit_char_count*2 will equal l_lex_pos.
-           **  In either of these cases, the result is still a
-           **  primitive string.
-           */
-
-           /*
-           **  For KANJI and HANZI treat 8-bit characters as ISO_LATIN1.  
-           */
-           if (l_16bit_char_count == 0)
-           {
-               l_charset = uil_sym_isolatin1_charset;
-               goto found_primitive_string;
-           }
-
-           /*
-           **  If the string only contains 16-bit characters,
-           **  it still can be stored as a primitive string.
-           */
-           if ((l_16bit_char_count<<1) == l_lex_pos)
-               goto found_primitive_string;
-
-
-           /*
-           **  lex buffer is a mix of 8 and 16 bit characters.
-           **  need to build a compound string.
-           */
-
-           cstr_entry = sem_create_cstr();
-
-           for ( a_off = 0,
-                 off = 0;
-                 off < l_lex_pos;
-               )
-
-           {
-
-               for (off = a_off;  off < l_lex_pos;  off++)
-                   if (az_current_lex_buffer->c_text[ off ] > 0x97)
-                       break;
-
-/*
- * Create the 8 bit string with iso_latin1
- */
-
-               if (off > a_off)
-               {
-                   str_entry = create_str_entry
-                       ( off - a_off,
-                        uil_sym_isolatin1_charset,
-                        az_charset_entry );
-
-                   _move( str_entry->value.c_value,
-                          &az_current_lex_buffer->c_text[ a_off ],
-                          off-a_off );
-
-                   sem_append_str_to_cstr( cstr_entry, str_entry, TRUE );
-               }
-
-               for (a_off = off;  a_off < l_lex_pos;  a_off += 2)
-                   if (az_current_lex_buffer->c_text[ a_off ] <= 0x97)
-                       break;
-
-/*
- * Create the 16 bit string with its charset
- */
-
-               if (a_off > off)
-               {
-                   str_entry = 
-                       create_str_entry( a_off - off, l_charset, az_charset_entry );
-
-                   _move( str_entry->value.c_value,
-                          &az_current_lex_buffer->c_text[ off ],
-                          a_off-off );
-
-                   sem_append_str_to_cstr( cstr_entry, str_entry, TRUE );
-               }
-
-           }
-
-           yylval.value.az_symbol_entry = (sym_entry_type *)cstr_entry;
-           yylval.b_type = COMP_STRING;
-
-       }
-       break;
-
-  case token_lstr:
-    {
-      int                      l_length = 0;
-      lex_buffer_type          *az_lex_buffer;
-      sym_value_entry_type     *str_entry;
-      unsigned char            *c_char;
-
-      l_length = l_lex_pos;
-
-      for (az_lex_buffer = az_first_lex_buffer;  
-          az_lex_buffer != az_current_lex_buffer;  
-          az_lex_buffer = az_lex_buffer->az_next_buffer)
-       l_length = l_length + l_max_lex_buffer_pos + 1;
-
-      str_entry = create_str_entry(l_length, lex_k_fontlist_default_tag, 
-                                 az_charset_entry );
-
-      c_char = (unsigned char *)str_entry->value.c_value;
-
-      for (az_lex_buffer = az_first_lex_buffer;
-          az_lex_buffer != az_current_lex_buffer;  
-          az_lex_buffer = az_lex_buffer->az_next_buffer)
-       {
-         _move( c_char, az_lex_buffer->c_text, l_max_lex_buffer_pos + 1);
-         c_char = c_char + l_max_lex_buffer_pos + 1;
-       }
-
-      _move( c_char, az_lex_buffer->c_text, l_lex_pos );
-      
-      yylval.value.az_symbol_entry = (sym_entry_type *)str_entry;
-      yylval.b_type = LOC_STRING;
-
-      break;
-    }
-
-    default:
-       _assert( FALSE, "unknown token table final state" );
-  }
-
-/* RAP we want to keep track of whether we are appending sequential comments */
-    last_token_seen = l_state;
-
-    /* set position information in token value */
-
-    yylval.az_source_record = az_start_src_record;
-    yylval.b_source_pos = l_start_src_pos;
-    yylval.b_source_end = src_az_current_source_buffer->w_current_position;  /*  was "l_start_src_pos + l_lex_pos;" */
-    yylval.b_tag = sar_k_token_frame;
-
-    /* dump the token if requested */
-
-#if debug_version
-    if (uil_v_dump_tokens)
-       dump_token( az_current_lex_buffer, l_lex_pos );
-#endif
-
-    /*
-    ** save this token
-    */
-
-    prev_yylval = yylval;
-
-    /* return the token generated */
-
-    return yylval.b_type;
-
-found_error:
-
-    /* do any backup of the source buffer position and lex buffer */
-
-    src_az_current_source_buffer->w_current_position -= z_cell.backup;
-    l_lex_pos -= z_cell.backup;
-
-    /* put a null at the end of the current lex buffer */
-
-    az_current_lex_buffer->c_text[ l_lex_pos ] = 0;
-
-    /* case on the type of error */
-
-    switch (l_state)           /* contains the type of error */
-    {
-    case bad_prefix:
-
-       /* printable characters that are not part of a token were found */
-
-       diag_issue_diagnostic
-               ( d_unknown_seq, 
-                 az_start_src_record,
-                 l_start_src_pos,
-                 az_current_lex_buffer->c_text );
-
-       break;
-
-    default:
-       _assert( FALSE, "unknown token table error state" );
-       break;
-      }
-
-    goto initialize_token_builder;
-
-  }
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function initializes the lexical analyzer.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      az_first_lex_buffer
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      lexical buffer is allocated
-**
-**--
-**/
-
-#define UNSCHAR_MINUS_ONE (unsigned char) 255;
-
-void  lex_initialize_analyzer( )
-
-{
-String language;
-
-/* RAP preserve comments */
-comment_text = (char *) _get_memory(INITIAL_COMMENT_SIZE);
-comment_size = INITIAL_COMMENT_SIZE;
-
-comment_text[0] = '\0';
-
-/* BEGIN OSF Fix CR 4749 */
-/* The lex algorithm has the potential to write
- * into index l_max_lex_buffer_pos + 1, so allocate l_max_lex_buffer_pos
- * plus 2 positions in buffer.
- */
-az_first_lex_buffer = 
-    (lex_buffer_type *) _get_memory (l_max_lex_buffer_pos + 2 +
-                                    sizeof(lex_buffer_type *));
-/* END OSF Fix CR 4749 */
-az_first_lex_buffer->az_next_buffer = NULL;
-
-/*   Initialize the stack frame entry for epsilon productions.   */
-
-gz_yynullval.b_tag = sar_k_null_frame;
-
-/*   Initialize the default character set  */
-
-language = (char *) _XmStringGetCurrentCharset();
-if ( language == NULL )
-    Uil_lex_l_user_default_charset = lex_k_default_charset;
-else
-    {
-    Uil_lex_l_user_default_charset = sem_charset_lang_name (language);
-    if (Uil_lex_l_user_default_charset == sym_k_error_charset)
-       {
-       diag_issue_diagnostic
-           ( d_bad_lang_value, 
-            diag_k_no_source,
-            diag_k_no_column);
-       Uil_lex_l_user_default_charset = lex_k_default_charset;
-       }               
-    }
-Uil_lex_az_charset_entry = NULL;
-
-/* Determine if localized strings are possible */
-if (Uil_cmd_z_command.v_use_setlocale == FALSE)
-  Uil_lex_l_localized = FALSE;
-else
-  {
-    Uil_lex_l_localized = TRUE;
-    _MrmOSSetLocale("C");
-  }
-
-/*   Initialize the current character set */
-Uil_lex_l_charset_specified = FALSE;
-
-/*    Initialize the source position and record */
-
-prev_yylval.b_source_end = UNSCHAR_MINUS_ONE;
-prev_yylval.az_source_record = src_az_current_source_record;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function performs the cleanup processing of the lexical analyzer.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      az_first_lex_buffer
-**
-**  IMPLICIT OUTPUTS:
-**
-**      az_first_lex_buffer
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      lexical buffer is freed
-**
-**--
-**/
-
-void  Uil_lex_cleanup_analyzer( )
-
-{
-    /* pointer to next buffer to free  */
-    lex_buffer_type  *az_buffer_to_free;
-
-    /* Loop through the list of buffers freeing them all */
-    while (az_first_lex_buffer != NULL) {
-       az_buffer_to_free = az_first_lex_buffer;
-       az_first_lex_buffer = az_first_lex_buffer->az_next_buffer;
-       _free_memory((char*)az_buffer_to_free);
-       }
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function issues a syntax error.  It is called from the
-**     error handling mechanism in the parser.
-**
-**  FORMAL PARAMETERS:
-**
-**      restart_token          the token number for the punctuation
-**                             character where parsing will resume after
-**                             this error is issued.
-**
-**  IMPLICIT INPUTS:
-**
-**      current lex buffer
-**     punc_token and punc_char tables
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      issue a diagnostic
-**
-**--
-**/
-
-void  lex_issue_error( restart_token )
-
-int            restart_token;
-
-{
-
-    int                    i, token_num;
-    unsigned char   c_char = '.';
-    char           * tok_name;
-
-/*    Find the token number for the restart character in the table.
-      It should be there.  Get the corresponding character for this
-      token.    */
-
-    for ( i = 0 ; i<tok_punc_token_num ; i++ )
-       {
-       if (restart_token == punc_token [i])
-           {
-           c_char = punc_char [i];
-           break;
-           }
-       }
-
-/*    Get the text of the token name which caused the error.    */
-
-    token_num = yylval.b_type;
-    if ( (token_num < 0) || (token_num > tok_num_tokens) )
-       tok_name = "UNKNOWN_TOKEN";
-    else
-       tok_name = tok_token_name_table[token_num];
-
-/*    Issue the error.    */
-
-    diag_issue_diagnostic
-       (d_syntax, 
-        yylval.az_source_record,
-        yylval.b_source_pos,
-        tok_name,
-        c_char);
-
-}
-
-\f
-
-/*
-**
-**  LOCAL FUNCTIONS
-**
-*/
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Issue an error for an illegal control character.
-**
-**  FORMAL PARAMETERS:
-**
-**      c_char
-**
-**  IMPLICIT INPUTS:
-**
-**      current source position
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      issue a diagnostic
-**
-**--
-**/
-
-void issue_control_char_diagnostic
-
-       (unsigned char c_char )
-
-{
-
-    diag_issue_diagnostic
-       ( d_control_char, 
-         src_az_current_source_record,
-         src_az_current_source_buffer->w_current_position - 1,
-         c_char );
-
-    src_az_current_source_record->b_flags |= src_m_unprintable_chars; 
-
-    return;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function obtains another lexical buffer.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_current_lex_buffer
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      address of a new lexical buffer
-**
-**  SIDE EFFECTS:
-**
-**      another lexical buffer may be allocated
-**
-**--
-**/
-
-static lex_buffer_type *get_lex_buffer( az_current_lex_buffer )
-
-lex_buffer_type *az_current_lex_buffer;
-
-{
-    lex_buffer_type *az_lex_buffer;
-
-    /* check to see if another buffer is available - if not allocate one */
-
-    az_lex_buffer = az_current_lex_buffer->az_next_buffer;
-
-    if (az_lex_buffer == NULL)
-    {
-/* BEGIN OSF Fix CR 4749 */
-      /* The lex algorithm has the potential to write
-       * into index l_max_lex_buffer_pos + 1, so allocate l_max_lex_buffer_pos
-       * plus 2 positions in buffer.
-       */
-       az_lex_buffer = 
-           (lex_buffer_type *)_get_memory( l_max_lex_buffer_pos + 2 +
-                                          sizeof(lex_buffer_type *));
-/* END OSF Fix CR 4749 */
-       az_current_lex_buffer->az_next_buffer = az_lex_buffer;
-       az_lex_buffer->az_next_buffer = NULL;
-    }
-
-    return az_lex_buffer;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure will change all the unprintable characters in
-**     a buffer to lex_k_unprint_sub.
-**
-**  FORMAL PARAMETERS:
-**
-**      buffer         buffer to be checked
-**     length          length of the buffer
-**     flags           lex_m_filter_xxx flags to indicate if additional
-**                     characters should be filtered.
-**
-**  IMPLICIT INPUTS:
-**
-**      class_table    gives the unprintable characters
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void lex_filter_unprintable_chars
-(unsigned char *buffer,
- int           length,
- unsigned long flags )
-{
-    int                    i;
-       
-    for (i=0;  i<length;  i++)
-    {
-       if ((class_table[ buffer[ i ] ] == class_illegal) ||
-           (buffer[ i ] == 12) ||  /* form feed */
-           (buffer[ i ] == 0) ||    /* null */
-           ( (flags & lex_m_filter_tab)
-               && buffer[ i ] == 9 )/* horizontal tab */
-          )
-           buffer[ i ] = lex_k_unprint_sub;
-    }
-
-}
-
-\f
-#if debug_version
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure will dump a token.
-**
-**  FORMAL PARAMETERS:
-**
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  SIDE EFFECTS:
-**
-**
-**--
-**/
-
-static void    dump_token( az_current_lex_buffer,
-                   l_lex_pos)
-
-lex_buffer_type        *az_current_lex_buffer;
-int            l_lex_pos;
-{
-    unsigned char    c_buffer[l_max_lex_buffer_pos +2];
-    lex_buffer_type *az_lex_buffer;
-    int                    i;
-    int                    last;
-    int                    last_buffer;
-    unsigned char   c_char;
-
-
-    _debug_output
-        ("token: %d start: %d, %d  end: %d, %d \n", 
-          yylval.b_type,
-          yylval.az_source_record->w_line_number,
-          yylval.b_source_pos,
-          src_az_current_source_record->w_line_number,
-          src_az_current_source_buffer->w_current_position );
-
-    for (az_lex_buffer = az_first_lex_buffer;  
-        ;  
-        az_lex_buffer = az_lex_buffer->az_next_buffer)
-    {
-       last_buffer = ( az_lex_buffer == az_current_lex_buffer );
-       if (last_buffer)
-           last = l_lex_pos;
-       else
-           last = l_max_lex_buffer_pos+1;
-
-       _move( c_buffer, az_lex_buffer->c_text, last );
-       
-       lex_filter_unprintable_chars (c_buffer, last, 0);
-
-       c_buffer[ last ] = 0;
-       _debug_output("%s \n", c_buffer);
-    
-        if (last_buffer)
-           return;
-    }
-}
-#endif
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a null terminated string to a 
-**     longword integer in the range 0..2**31-1.  If the ascii value is
-**     outside that range, the external variable errno is set to ERANGE
-**     and the value returned is 2**31-1 
-**
-**  FORMAL PARAMETERS:
-**
-**      c_text         null terminate string holding integer in ascii
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      errno          set if overflow occurs
-**
-**  FUNCTION VALUE:
-**
-**      long           integer value of c_text
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-#define k_max_int 2147483647
-#define k_max_div_10 214748364
-
-long           cvt_ascii_to_long(c_text)
-unsigned char XmConst  *c_text;
-{
-    unsigned long      l_value;
-    int                        pos;
-
-    l_value = 0;
-    for (pos = 0;  c_text[ pos ] != 0;  pos++)
-    {
-       if (l_value >= k_max_div_10)
-           goto potential_overflow;
-       l_value = (l_value * 10) + c_text[ pos ] - '0';
-    }
-
-    return l_value;
-
-potential_overflow:
-    if (l_value > k_max_div_10)
-    {
-       errno = ERANGE;
-       return k_max_int;
-    }
-
-    l_value = (l_value * 10) + c_text[ pos ] - '0';
-
-    if (l_value > k_max_int)
-    {
-       errno = ERANGE;
-       return k_max_int;
-    }
-
-    return l_value;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a symbol entry for a primitive string.
-**
-**  FORMAL PARAMETERS:
-**
-**      l_size     number of bytes to allocate
-**     l_charset   charset of the string (token value)
-**     az_charset_entry   charset of the string (symbol table value entry)
-**
-**  IMPLICIT INPUTS:
-**
-**      yylval
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      symbol node created
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-sym_value_entry_type *create_str_entry (l_size, l_charset, az_charset_entry)
-
-    int                                l_size;
-    int                                l_charset;
-    sym_value_entry_type       *az_charset_entry;
-                       
-
-{
-
-    sym_value_entry_type       *node;
-    int                                charset;        /* from sym_k_..._charset */
-    unsigned char              direction;      /* writing direction */
-
-    /*
-     * Determine character set and writing direction
-     */
-    if (l_charset != lex_k_userdefined_charset)
-       {
-       charset = sem_map_subclass_to_charset( l_charset );
-       direction = charset_writing_direction_table[charset];
-       }
-    else
-       {
-       charset = sym_k_userdefined_charset;
-       direction = az_charset_entry->b_direction;
-       }
-       
-
-    /* size of entry
-     * sym_k_value_entry for common part of a value entry
-     * l_size for the string
-     * 1 for the null on string
-     */
-
-    node = (sym_value_entry_type *)
-           sem_allocate_node
-               ( sym_k_value_entry,
-                 sym_k_value_entry_size );
-
-    node->value.c_value = XtCalloc(1, l_size + 1);
-
-    node->header.az_src_rec = yylval.az_source_record;
-    node->header.b_src_pos = yylval.b_source_pos;
-    node->header.b_end_pos = yylval.b_source_end;
-
-    node->b_type = sym_k_char_8_value;
-    node->w_length = l_size;
-    node->b_charset = charset;
-    node->b_direction = direction;
-    node->az_charset_value = az_charset_entry;
-    node->obj_header.b_flags = sym_m_private | sym_m_builtin;
-
-    return node;
-
-    }
-
diff --git a/cde/osf/uil/UilLexDef.h b/cde/osf/uil/UilLexDef.h
deleted file mode 100644 (file)
index b2be089..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilLexDef.h /main/11 1995/07/14 09:34:58 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL lexical
-**     analyzer.
-**
-**--
-**/
-
-#ifndef UilLexDef_h
-#define UilLexDef_h
-
-
-/*
-**  Define flags to indicate whether certain characters are to be
-**  filtered in text output.
-*/
-
-#define                lex_m_filter_tab        (1 << 0)
-
-/*
-**  Define the default character set.  In Motif, the default character set is
-**  not isolatin1, but simply the null string, thus we must be able to
-**  distinguish the two.
-*/
-
-
-#define lex_k_default_charset      -1
-#define lex_k_userdefined_charset   -2
-#define lex_k_fontlist_default_tag  -3
-
-/*
-**  Since key_k_keyword_max_length assumes the length of the longest
-**  WML generated keyword, we need a new constant to define the
-**  longest allowable identifier.  This length should not exceed
-**  URMMaxIndexLen.  (CR 5566)
-*/
-
-#define lex_k_identifier_max_length    31
-
-#endif /* UilLexDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilLstLst.c b/cde/osf/uil/UilLstLst.c
deleted file mode 100644 (file)
index b82dbad..0000000
+++ /dev/null
@@ -1,1032 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilLstLst.c /main/20 1999/07/21 09:03:16 vipin $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the procedures for managing the UIL listing.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <X11/Intrinsic.h>
-#include <Xm/Xm.h>
-
-#include <stdarg.h>
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  EXTERNAL storage used by the listing
-**
-*/
-
-
-/*
-**
-**  OWN storage used by the listing
-**
-*/
-
-externaldef(uil_comp_glbl) char                Uil_lst_c_title2[132];
-
-static     int                 lst_l_usable_lines;
-static     int                 lst_l_lines_left;
-static     int                 lst_l_page_no;
-static     char                lst_c_title1[132];
-static     uil_fcb_type        *lst_az_fcb;
-static      boolean            lst_v_listing_open = FALSE;
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function opens the UIL listing file to be written and
-**     initializes OWN storage used by the listing package.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      lst_l_usable_lines         number of usable lines per page
-**      lst_l_lines_left           number of lines left on page
-**      lst_l_page_no              current page number
-**      lst_c_title1               title line 1
-**      Uil_lst_c_title2                   title line 2
-**      lst_v_listing_open         can the listing be written to
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      listing file is opened
-**
-**--
-**/
-
-void   lst_open_listing()
-{
-    status  open_status;
-    _Xctimeparams      ctime_buf;
-
-    /* allocate fcb */
-
-    lst_az_fcb = (uil_fcb_type *)_get_memory( sizeof( uil_fcb_type ) );
-
-    /* open the listing file */
-
-    open_status = 
-       create_listing_file( lst_az_fcb );
-
-    if ( open_status == src_k_open_error )
-    {
-       diag_issue_diagnostic( d_listing_open,
-                              diag_k_no_source, diag_k_no_column,
-                              lst_az_fcb->expanded_name );
-        /* should never return - error is fatal */
-
-       return;
-    }
-
-    lst_l_lines_left = 0;
-    lst_l_page_no = 0;
-    lst_v_listing_open = TRUE;
-
-    sprintf(lst_c_title1, 
-           "%s %s \t%s\t\t Page ",
-           _host_compiler, _compiler_version,
-           current_time(&ctime_buf));
-
-    /*
-    ** Haven't parsed the module yet.
-    **  UilSarMod.c routines will fill it in.
-    */
-
-    Uil_lst_c_title2[ 0 ] = 0;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function does the clean up processing for the listing facility.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      lst_c_title1               title line 1
-**      Uil_lst_c_title2                   title line 2
-**      lst_v_listing_open         can the listing be written to
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      dynamic memory is freed
-**
-**--
-**/
-
-void   Uil_lst_cleanup_listing()
-{
-    /*
-    ** Check that there is a listing file requested and that
-    ** it is not already in error.
-    */
-
-    if (!(lst_v_listing_open && Uil_cmd_z_command.v_listing_file))
-       return;
-
-    /*
-    ** free fcb 
-    */
-
-    _free_memory((char*)lst_az_fcb);
-    lst_az_fcb = NULL;
-}
-
-\f
-
-
-\f
-
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      routine to create the listing file.
-**
-**  FORMAL PARAMETERS:
-**
-**     az_fcb              file control block for the file
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      src_k_open_normal
-**      src_k_open_error
-**
-**  SIDE EFFECTS:
-**
-**      file is created
-**
-**--
-**/
-
-status create_listing_file( az_fcb )
-
-uil_fcb_type                   *az_fcb;
-
-{
-    /* place the file name in the expanded_name buffer */
-
-    strcpy(az_fcb->expanded_name, Uil_cmd_z_command.ac_listing_file);
-
-    /* open the file */
-
-    az_fcb->az_file_ptr = fopen(Uil_cmd_z_command.ac_listing_file, "w");
-
-    if (az_fcb->az_file_ptr == NULL)
-       return src_k_open_error;
-
-    /* assume 66 lines on a page */
-
-    lst_l_usable_lines = 66 - 9;
-
-    return src_k_open_normal;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      function to write a line to the listing file.
-**
-**  FORMAL PARAMETERS:
-**
-**      ac_line                text of the line to output
-**
-**  IMPLICIT INPUTS:
-**
-**      lst_l_lines_left
-**      lst_l_usable_lines
-**     lst_az_fcb
-**     lst_c_title1
-**     lst_c_title1
-**
-**  IMPLICIT OUTPUTS:
-**
-**      lst_l_lines_left
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      line output to file
-**
-**--
-**/
-
-
-void   lst_output_line( ac_line, v_new_page )
-
-char   *ac_line;
-boolean        v_new_page;
-
-{
-    status     error_status;
-
-    if (!lst_v_listing_open)
-       return;
-
-    /*
-    ** Update the current file and call the Status callback routine to report
-    ** our progress.
-    */
-    Uil_current_file = lst_az_fcb->expanded_name;
-    if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-       diag_report_status();    
-
-
-    if ((lst_l_lines_left <= 0) || v_new_page)
-    {
-       lst_l_page_no ++;
-       lst_l_lines_left = lst_l_usable_lines;
-
-       fprintf(lst_az_fcb->az_file_ptr, 
-               "\f\n%s%d\n%s\n\n", 
-               lst_c_title1, lst_l_page_no, Uil_lst_c_title2);
-    }
-
-    error_status = fprintf(lst_az_fcb->az_file_ptr, "%s\n", ac_line);
-
-    if (error_status == EOF)
-    {
-       lst_v_listing_open = FALSE;
-        diag_issue_diagnostic( d_listing_write,
-                               diag_k_no_source, diag_k_no_column,
-                               lst_az_fcb->expanded_name );
-    }
-
-    lst_l_lines_left --;
-
-    return;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     function to return ASCII date and time
-**
-**  FORMAL PARAMETERS:
-**
-**      void
-**
-**  IMPLICIT INPUTS:
-**
-**      void
-**
-**  IMPLICIT OUTPUTS:
-**
-**      void
-**
-**  FUNCTION VALUE:
-**
-**      pointer to a null terminated string
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char   *current_time(_Xctimeparams *ctime_buf)
-{
-    time_t     time_location;
-    char       *ascii_time;
-
-    time_location = time( 0 );
-
-    ascii_time = _XCtime( &time_location, *ctime_buf );
-
-    ascii_time[24] = 0;
-
-    return ascii_time;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function outputs the UIL listing file
-**
-**  FORMAL PARAMETERS:
-**
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  SIDE EFFECTS:
-**
-**
-**--
-**/
-
-void   lst_output_listing()
-
-{
-    src_source_record_type  *az_src_rec;
-    char                   src_buffer[ src_k_max_source_line_length+12 ];
-    char                   *src_ptr;
-    int                            i;
-
-    /*
-    ** Check that there is a listing file requested and that
-    ** it is not already in error.
-    */
-
-    if (!(lst_v_listing_open &&
-         Uil_cmd_z_command.v_listing_file)
-       )
-       return;
-
-    /*
-    ** Walk the list of source records.
-    */
-
-    for (az_src_rec = src_az_first_source_record;  
-        az_src_rec != NULL;  
-        az_src_rec = az_src_rec->az_next_source_record)
-    {
-
-       /*
-       **  place the line and file number in the output buffer
-       */
-
-       sprintf(src_buffer, "%5d (%d)\t", 
-               az_src_rec->w_line_number, 
-               az_src_rec->b_file_number);
-
-       src_ptr = &(src_buffer[ strlen( src_buffer ) ]);
-       
-       src_retrieve_source( az_src_rec, src_ptr );
-
-       /*
-       **  filter standard unprintable characters if necessary
-       */
-
-       if ( az_src_rec->b_flags & src_m_unprintable_chars)
-           lex_filter_unprintable_chars( (unsigned char*)src_ptr, strlen( src_ptr ), 0 );
-
-       /*
-       **  replace leading formfeed with a blank
-       */
-
-       if ( az_src_rec->b_flags & src_m_form_feed)
-           *src_ptr = ' ';
-
-       lst_output_line( src_buffer, 
-                        (az_src_rec->b_flags & src_m_form_feed) != 0 );
-
-       /*
-       **  if the line has messages, get them displayed
-       */
-
-       if (az_src_rec->az_message_list != NULL)
-       {
-           lst_output_message_ptr_line( az_src_rec, src_ptr );
-           lst_output_messages( az_src_rec->az_message_list );
-       }
-
-       /*
-       **  if the line has machine code, get it displayed if requested
-       */
-
-       if ( (Uil_cmd_z_command.v_show_machine_code) &&
-            (az_src_rec->w_machine_code_cnt > 0) )
-       {
-           lst_output_machine_code( az_src_rec );
-       }
-
-    }
-
-    /*
-    **  output the orphan messages
-    */
-
-    if (src_az_orphan_messages != NULL)
-       lst_output_messages( src_az_orphan_messages );
-
-    /*
-    **  output the file summary
-    */
-
-    lst_output_line( " ", FALSE );
-
-    for (i = 0; i <= src_l_last_source_file_number; i++) {
-
-       uil_fcb_type    *az_fcb;            /* file control block ptr */
-       char            buffer [132];
-
-       az_fcb = src_az_source_file_table [i];
-       sprintf (buffer,
-                "     File (%d)   %s",
-                i, az_fcb->expanded_name );
-       lst_output_line( buffer, FALSE );
-    }    
-
-    lst_output_line( " ", FALSE );
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function outputs a list of messages to the UIL listing file
-**
-**  FORMAL PARAMETERS:
-**
-**      az_message_item            ptr to start of the message list
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      messages are written to the listing file
-**
-**--
-**/
-
-void   lst_output_messages( az_message_item )
-
-src_message_item_type  *az_message_item;
-
-{
-    src_message_item_type      *az_msg;
-    char                       buffer[132];
-    int                                msg_no;
-    int                                last_pos;
-    int                                current_pos;
-
-    last_pos = -1;
-    msg_no = 9;
-
-    for (az_msg = az_message_item;  
-        az_msg != NULL;  
-        az_msg = az_msg->az_next_message)
-    {
-       current_pos = az_msg->b_source_pos;
-
-       if (last_pos < current_pos)
-       {
-           last_pos = current_pos;
-           if (last_pos == diag_k_no_column)
-               msg_no = 0;
-           else
-               msg_no = (msg_no % 9) + 1;
-       }
-
-
-       sprintf(buffer, "%s (%d) %s", 
-               diag_get_message_abbrev( az_msg->l_message_number ),
-               msg_no, 
-               az_msg->c_text);
-
-       lst_output_line( buffer, FALSE );
-    }    
-
-    lst_output_line( " ", FALSE );
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function outputs a list of machine code items to the
-**     UIL listing file
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec         ptr to a source record
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      machine code is written to the listing file
-**
-**--
-**/
-
-void   lst_output_machine_code ( az_src_rec )
-
-src_source_record_type *az_src_rec;
-
-{
-
-    static     src_machine_code_type * * mc_array = NULL;
-    static     unsigned short mc_cnt = 0;
-
-    src_machine_code_type      *az_code;
-    int                                code_cnt, mc_i;
-
-/*     Go through the machine code list, and save the entries in
-       the array; traverse them in reverse order.  Reuse the vector
-       if it is large enough.  */
-
-
-
-    code_cnt = az_src_rec->w_machine_code_cnt;
-
-    if ((int)mc_cnt < code_cnt) {
-       if (mc_array != NULL) {
-           _free_memory ((char*)mc_array);
-       }
-       mc_array = 
-           (src_machine_code_type * *)_get_memory (sizeof (char *) * code_cnt);
-       mc_cnt = code_cnt;
-    }
-
-    for (az_code = az_src_rec->az_machine_code_list, mc_i = 0;
-        az_code != NULL;  
-        az_code = az_code->az_next_machine_code, mc_i++) {
-       mc_array [mc_i] = az_code;
-    }
-   
-    for (mc_i = code_cnt - 1; mc_i >= 0; mc_i--)
-    {
-
-#define BIT_64_LONG   ((sizeof(long)*8)==64)
-
-#define         OFFSET_COL      (BIT_64_LONG ? 75 : 43) /*should be 75 on 64 bit mach, 43 on 32*/
-#define         TEXT_COL        (BIT_64_LONG ? 82 : 50) /*82 on 64 bit mach, 50 on 32*/
-#define         BUF_LEN         (BIT_64_LONG ? 164 : 132) /*164 on 64 bit mach. 132 on 32 bit mach.*/
-#define         HEX_PER_WORD    4
-#define         HEX_PER_LONG    (BIT_64_LONG ? 16 : 8) /*should be 16 on 64 bit mach., 8 on 32 bit mach*/
-
-#define                LONG_PER_LINE   4
-#define                ASCII_PER_LINE  (LONG_PER_LINE * sizeof (long))
-
-       unsigned short  long_cnt, extra_byte_cnt, text_len, code_len,
-                       line_cnt, extra_long_cnt, i, j, code_offset;
-       unsigned char   buffer[ BUF_LEN + 1 ], * text_ptr,
-                       hex_longword [HEX_PER_LONG + 1], line_written;
-       unsigned long   * code_ptr;
-
-       unsigned long temp_long;
-        static unsigned short start_hex_long [4];
-       /*if 64-bit environment, it should have vals { 55, 38, 21, 4 };
-         if 32 bit environment, { 31, 22, 13, 4 };
-       */
-       start_hex_long[0]=(BIT_64_LONG ? 55 : 31);
-       start_hex_long[1]=(BIT_64_LONG ? 38 : 22);
-       start_hex_long[2]=(BIT_64_LONG ? 21 : 13);
-       start_hex_long[3]=4;
-
-
-       az_code = mc_array [mc_i];
-
-       code_ptr = (unsigned long *)az_code -> data.c_data;
-       code_len = az_code -> w_code_len;
-       code_offset = az_code -> w_offset;
-       text_ptr = (unsigned char *)(& az_code -> data.c_data [code_len]);
-       text_len = strlen ((char *)text_ptr);
-       if (text_len > (unsigned short) (BUF_LEN - TEXT_COL + 1))
-           text_len = BUF_LEN - TEXT_COL + 1;
-
-       long_cnt = code_len / sizeof (char *);
-       line_cnt = long_cnt / LONG_PER_LINE;
-       extra_long_cnt = long_cnt % LONG_PER_LINE;
-       extra_byte_cnt = code_len % sizeof (char *);
-
-       _fill (buffer, ' ', sizeof buffer - 1);
-
-
-       sprintf ((char *)hex_longword, "%04X", code_offset);
-       _move  (& buffer [OFFSET_COL - 1], hex_longword, HEX_PER_WORD);
-
-       _move (& buffer [TEXT_COL - 1], text_ptr, text_len);
-       buffer [TEXT_COL + text_len] = '\0';
-
-       line_written = FALSE;
-
-/*
-**     Write out entire lines.  Clear the text after the first line.
-**     Filter all non-printable characters.
-*/
-
-       for (i = 0; i < line_cnt; i++) {
-
-           if (text_len == 0) {
-               _move  (& buffer [TEXT_COL - 1], code_ptr, ASCII_PER_LINE);
-               lex_filter_unprintable_chars ((unsigned char*)
-                       & buffer [TEXT_COL - 1], ASCII_PER_LINE,
-                       lex_m_filter_tab );
-               buffer [TEXT_COL - 1 + ASCII_PER_LINE] = '\0';
-           }
-
-           for (j = 0; j < LONG_PER_LINE; j++, code_ptr++) {
-
-
-             if (BIT_64_LONG){
-
-               sprintf ((char *)hex_longword, "%lX", (* code_ptr));
-             }
-             else{
-                sprintf ((char *)hex_longword, "%08X", (* code_ptr));
-             }
-
-               _move (& buffer [start_hex_long [j]],
-                       hex_longword, HEX_PER_LONG);
-
-           }
-
-
-           lst_output_line((char*) buffer, FALSE );
-           line_written = TRUE;
-
-           code_offset += LONG_PER_LINE * sizeof (long);
-           sprintf ((char *)hex_longword, "%04X", code_offset);
-           _move  (& buffer [OFFSET_COL - 1], hex_longword, HEX_PER_WORD);
-
-           if (i == 0 && text_len > 0) {
-               _fill (& buffer [TEXT_COL - 1], ' ', text_len);
-           }
-       }
-
-/*     Write out a partial line.       */
-
-       if (extra_long_cnt > 0 || extra_byte_cnt > 0) {
-
-           if (text_len == 0) {
-               int     ascii_cnt;
-
-               ascii_cnt = (extra_long_cnt * sizeof (long)) + extra_byte_cnt;
-               _move  (& buffer [TEXT_COL - 1], code_ptr, ascii_cnt);
-               lex_filter_unprintable_chars ((unsigned char*)
-                       & buffer [TEXT_COL - 1], ascii_cnt,
-                       lex_m_filter_tab );
-               buffer [TEXT_COL - 1 + ascii_cnt] = '\0';
-           }
-
-/*     Clear code from previous lines, keeping the offset and text if
-       it is there. */
-
-           _fill (buffer, ' ', OFFSET_COL - 1);
-
-           if (extra_long_cnt > 0) {
-
-/*     Format the code longwords.      */
-
-               for (i = 0; i < extra_long_cnt; i++, code_ptr++) {
-                    unsigned long temp_long;
-                   if (BIT_64_LONG){
-/*                   _move( (char*) &temp_long, (char*) code_ptr, sizeof(temp_long));*/
-                     sprintf ((char *)hex_longword, "%lX", (* code_ptr));
-                   }
-                   else{
-                     sprintf ((char *)hex_longword, "%08X", (*code_ptr));
-                   }
-
-                   _move (& buffer [start_hex_long [i]],
-                       hex_longword, HEX_PER_LONG);
-               }
-           }
-
-/*     Format the extra code bytes.    */
-
-           if (extra_byte_cnt > 0) {
-               int             l;
-               unsigned char   extra_bytes [sizeof (long)];
-
-               _move (extra_bytes, code_ptr, extra_byte_cnt);
-               _fill (hex_longword, ' ', HEX_PER_LONG);
-               for (l = extra_byte_cnt - 1; l >= 0; l--) {
-               if (BIT_64_LONG)
-                   sprintf ((char *)
-                            & hex_longword [HEX_PER_LONG - (2 * (l + 1))],
-                            "%02X", extra_bytes [l]);
-               else
-                   sprintf ((char *)
-                            & hex_longword [HEX_PER_LONG - (2 * (l + 1))],
-                            "%02X", extra_bytes [extra_byte_cnt-l-1]);
-               
-               }
-               _move (& buffer [start_hex_long [extra_long_cnt]],
-                       hex_longword, HEX_PER_LONG);
-           }
-
-/*     Output the partial line.        */
-
-           lst_output_line( (char*)buffer, FALSE );
-
-           line_written = TRUE;
-
-       }
-
-       if (! line_written) {
-           if (text_len > 0) {
-               lst_output_line((char*) buffer, FALSE );
-           } else {
-               lst_output_line( " ", FALSE );
-           }
-       }
-
-    }    
-
-
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function outputs a pointer line showing the position of
-**     diagnostics to the UIL listing file.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec         ptr to a source record
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      message ptr line is written to the listing file
-**
-**--
-**/
-
-void   lst_output_message_ptr_line( az_src_rec, src_buffer )
-
-src_source_record_type *az_src_rec;
-char                   *src_buffer;
-
-{
-    src_message_item_type      *az_msg;
-    char                       buffer[ src_k_max_source_line_length + 3 ];
-    char                       *ptr_buffer;
-    int                                msg_no;
-    int                                pos;
-    int                                msg_pos;
-    char                       c_char;
-    boolean                    v_output_line;
-
-    if (_src_null_access_key( az_src_rec->z_access_key) )
-       return;
-
-    msg_no = 9;
-
-    buffer[ 0 ] = '\t';
-    buffer[ 1 ] = '\t';
-    ptr_buffer = &buffer[ 2 ];
-
-    az_msg = az_src_rec->az_message_list;
-    if (az_msg == NULL)
-       return;
-    msg_pos = az_msg->b_source_pos;
-    if (msg_pos == diag_k_no_column)
-       return;
-
-    v_output_line = FALSE;
-    
-    for (pos = 0;  c_char = src_buffer[ pos ], c_char != 0; )
-    {
-       if (pos < msg_pos)
-       {
-           if (c_char == '\t')
-               ptr_buffer[ pos++ ] = '\t';
-           else
-               ptr_buffer[ pos++ ] = ' ';
-
-           continue;
-       }
-    
-       msg_no = (msg_no % 9) + 1;
-       ptr_buffer[ pos++ ] = msg_no + '0';
-       v_output_line = TRUE;
-
-next_message:
-       az_msg = az_msg->az_next_message;
-       if (az_msg == NULL)
-           goto finished_scan;
-       msg_pos = az_msg->b_source_pos;
-       if ((pos-1) == msg_pos)                 /* pos already advanced */
-           goto next_message;
-       if (msg_pos == diag_k_no_column)
-           goto finished_scan;
-
-    }
-
-finished_scan:
-    ptr_buffer[ pos ] = 0;
-
-    if (v_output_line)
-       lst_output_line( buffer, FALSE );
-
-    return;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      lst_debug_output sends debugging info to the listing file if
-**     there is one; if not the output goes to standard output.
-**
-**  FORMAL PARAMETERS:
-**
-**      standard Xprintf argument list
-**
-**  IMPLICIT INPUTS:
-**
-**      lst_v_listing_open
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      print lines either in the listing file or to standard output
-**
-**--
-**/
-
-static int     cur_pos=0;
-static char    buffer[132];
-
-void   lst_debug_output
-
-       (char *format, ...)
-{
-    va_list    ap;                     /* ptr to variable length parameter */
-
-    /*
-    ** establish the start of the parameter list
-    */
-
-    va_start(ap,format);
-
-    /*
-    ** check if the listing file is open for output
-    */
-
-    if (lst_v_listing_open)
-    {
-       int     count;
-       char    *ptr;
-
-       vsprintf( &(buffer[cur_pos]), format, ap );
-
-       for ( ptr=buffer; ptr[0] != '\0'; ptr += (count+1) )
-       {
-           _assert( ptr <= &(buffer[132]), "Overflowed debug listing buffer" );
-           count = strcspn( ptr, "\n" );
-           if (count == strlen( ptr )) 
-           {
-               cur_pos = ptr - buffer + count;
-               return;
-           } 
-           else 
-           {
-               ptr[ count ] = '\0';
-           }
-           lst_output_line( ptr, FALSE );
-       }
-       cur_pos = 0;
-
-    }
-    else
-       vprintf( format, ap );
-
-    va_end(ap);
-}
diff --git a/cde/osf/uil/UilLstMac.c b/cde/osf/uil/UilLstMac.c
deleted file mode 100644 (file)
index ff3137b..0000000
+++ /dev/null
@@ -1,1753 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilLstMac.c /main/15 1997/03/12 15:21:48 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the routines for creating the machine listing.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-
-
-#include <Mrm/MrmAppl.h>
-#include <X11/Xmd.h>           /* For 64-bit architecture dependencies */
-
-
-#ifdef DXM_V11
-#include <DXm/DXmHelpB.h>
-#endif
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-/*     Holds offset info for machine code listing.     */
-
-typedef struct _off_info {
-       unsigned short int      w_off_type;
-       unsigned short int      w_off_offset;
-       } off_info_type;
-
-#define                k_name_off              0
-#define                k_class_off             1
-#define                k_arglist_off           2
-#define                k_children_off          3
-#define                k_comment_off           4
-#define                k_creation_off          5
-#define                k_callback_off          6
-#define                k_resource_off          7
-#define                k_float_off             8
-#define                k_unknown_off           9
-#define                k_resource_id_off       10
-#define                k_child_off             11
-#define                k_text_entry_off        12
-#define                k_null_text_entry_off   13
-#define         k_single_float_off      14 /* single float data type RAP */
-
-#define                k_off_stack_size        300
-
-static off_info_type   off_info_stack [k_off_stack_size];
-
-static int             off_info_cnt = 0;
-
-
-
-
-#define                off_stack_empty         (off_info_cnt == 0)
-
-#define _Offset(type,base,field)    \
-        ((unsigned int)(base + XtOffsetOf(type, field)))
-
-#if defined(__STDC__)
-#define _OffsetArray(type,base,field)    \
-        ((unsigned int)(base + XtOffsetOf(type, field)))
-#else
-#define _OffsetArray(type,base,field)    \
-        ((unsigned int)(base + XtOffsetOf(type, field[0])))
-#endif
-#define        _Pointer(base,offset) ((char *)(base)+(offset))
-
-#define ASNHEADERLEN 3
-#define CSLONGBIT    (unsigned char)(0x80)
-#define ASNstrlen(a) (ASNHEADERLEN+ \
-                     (((unsigned char)(a)[ASNHEADERLEN]&CSLONGBIT)? \
-                      (((unsigned short)((a)[ASNHEADERLEN+1])<<8) | \
-                       (unsigned short)((a)[ASNHEADERLEN+2]))+3 : \
-                      ((unsigned short)((a)[ASNHEADERLEN]))+1))
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function saves the machine code listing information for widgets.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_entry   Symbol node for this widget
-**      az_context     context containing the URM output information.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the machine code is saved in the source record structure for
-**     the widget.
-**
-**--
-**/
-
-void           save_widget_machine_code ( widget_entry, az_context )
-
-sym_widget_entry_type  * widget_entry;
-URMResourceContext     * az_context;
-
-{
-
-    RGMWidgetRecordPtr         w_rec;
-    char                       buffer [132];
-    unsigned short int         w_rec_size;
-    src_source_record_type     * az_src_rec;
-
-#define        _WRPointer(w_rec,offset) ((char *)(w_rec)+(offset))
-
-#define _WROffset(field)    (_Offset(RGMWidgetRecord,0,field))
-
-    az_src_rec = widget_entry->header.az_src_rec;
-
-    if (widget_entry->resource_id != 0 ) {
-       sprintf (buffer, "Resource ID: %08X", widget_entry->resource_id);
-       src_append_machine_code (
-               az_src_rec,
-               0,
-               0, 0,
-               buffer );
-    } else if (widget_entry->obj_header.az_name != NULL) {
-       sprintf (buffer, "Resource index: %s",
-                widget_entry->obj_header.az_name->c_text);
-       src_append_machine_code (
-               az_src_rec,
-               0,
-               0, 0,
-               buffer );
-    }
-
-    w_rec = (RGMWidgetRecordPtr) UrmRCBuffer (az_context);
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (validation),
-               sizeof (w_rec->validation), (char*)& w_rec->validation,
-               "widget record" );
-
-    sprintf (buffer, "size: %d", w_rec->size);
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (size),
-               sizeof (w_rec->size), (char*)& w_rec->size,
-               buffer );
-
-    w_rec_size = w_rec->size;
-
-    sprintf (buffer, "access: %s",
-                       access_from_code (w_rec->access) );
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (access),
-               sizeof (w_rec->access), (char*)& w_rec->access,
-               buffer );
-
-    sprintf (buffer, "locked: ");
-
-    if (w_rec->lock) {
-       strcat (buffer, "true");
-    } else {
-       strcat (buffer, "false");
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (lock),
-               sizeof (w_rec->lock), (char*)& w_rec->lock,
-               buffer );
-
-    sprintf (buffer, "type: ");
-
-    strcat (buffer, class_name_from_code (w_rec->type));
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (type),
-               sizeof (w_rec->type), (char*)& w_rec->type,
-               buffer );
-
-    if (w_rec->name_offs == (MrmOffset) 0) {
-       sprintf (buffer, "no name specified");
-    } else {
-       sprintf (buffer, "name: offset %X (hex)",
-                w_rec->name_offs);
-       off_put (k_name_off, w_rec->name_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (name_offs),
-               sizeof (w_rec->name_offs),
-               (char*)& w_rec->name_offs,
-               buffer );
-
-    if (w_rec->class_offs == (MrmOffset) 0) {
-       sprintf (buffer, "class: builtin");
-    } else {
-       sprintf (buffer, "class: offset %X (hex)",
-                w_rec->class_offs);
-       off_put (k_class_off, w_rec->class_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (class_offs),
-               sizeof (w_rec->class_offs),
-               (char*)& w_rec->class_offs,
-               buffer );
-
-    if (w_rec->arglist_offs == (MrmOffset) 0) {
-       sprintf (buffer, "no argument list");
-    } else {
-       sprintf (buffer, "argument list offset: %X (hex)", w_rec->arglist_offs);
-       off_put (k_arglist_off, w_rec->arglist_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (arglist_offs),
-               sizeof (w_rec->arglist_offs),
-               (char*)& w_rec->arglist_offs,
-               buffer );
-
-    if (w_rec->children_offs == (MrmOffset) 0) {
-       sprintf (buffer, "no children");
-    } else {
-       sprintf (buffer, "children list offset: %X (hex)",
-                w_rec->children_offs);
-       off_put (k_children_off, w_rec->children_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (children_offs),
-               sizeof (w_rec->children_offs),
-               (char*)& w_rec->children_offs,
-               buffer );
-
-    if (w_rec->comment_offs == (MrmOffset) 0) {
-       sprintf (buffer, "no comment specified");
-    } else {
-       sprintf (buffer, "comment: offset %X (hex)",
-                w_rec->comment_offs);
-       off_put (k_comment_off, w_rec->comment_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (comment_offs),
-               sizeof (w_rec->comment_offs),
-               (char*)& w_rec->comment_offs,
-               buffer );
-
-    if (w_rec->creation_offs == (MrmOffset) 0) {
-       sprintf (buffer, "no creation callback");
-    } else {
-       sprintf (buffer, "creation callback offset: %X (hex)",
-                w_rec->creation_offs);
-       off_put (k_creation_off, w_rec->creation_offs);
-    }
-
-    src_append_machine_code (
-               az_src_rec,
-               _WROffset (creation_offs),
-               sizeof (w_rec->creation_offs),
-               (char*)& w_rec->creation_offs,
-               buffer );
-
-    unload_stack(( char *) w_rec, w_rec_size, az_src_rec );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function unloads entries placed on a stack and outputs them
-**     into the listing.  The routine is used by both widgets and gadgets
-**     to output their argument, control, and callback lists.
-**
-**  FORMAL PARAMETERS:
-**
-**      rec        base of the record being annotated
-**      rec_sizr    size of the record being annotated
-**      az_src_rec  address of the source for record being annotated
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  SIDE EFFECTS:
-**
-**
-**--
-**/
-void   unload_stack( rec, rec_size, az_src_rec )
-
-char                   *rec;
-int                    rec_size;
-src_source_record_type *az_src_rec;
-
-{
-
-    char                       buffer [132], * ptr;
-    int                                child_index;
-
-    while ( ! off_stack_empty ) {
-
-       unsigned short          off_type, off_offset;
-
-       off_get (& off_type, & off_offset);
-
-       switch (off_type) {
-
-           case k_name_off :
-           case k_class_off :
-           case k_comment_off : {
-
-               ptr = (char *) _Pointer(rec, off_offset);
-               src_append_machine_code (
-                       az_src_rec, off_offset,
-                       strlen (ptr) + 1, ptr, NULL );
-               break;
-           }
-           
-           case k_unknown_off : {
-
-               unsigned short int      len;
-
-/*     Write out everything up to the next offset or the end of the
-       record. */
-
-               if ( ! off_stack_empty ) {
-                   unsigned short int  next_type, next_offset;
-
-                   off_get (& next_type, & next_offset);
-                   off_put (next_type, next_offset);
-                   len = next_offset - off_offset;
-               } else {
-                   len = rec_size - off_offset;
-               }
-
-               ptr = (char *) _Pointer(rec, off_offset);
-               src_append_machine_code (
-                       az_src_rec, off_offset,
-                       len, ptr, NULL );
-               break;
-           }
-           
-           case k_arglist_off : {
-
-               RGMArgListDescPtr       argdesc;
-               RGMArgumentPtr          arg_ptr;
-               int                     j;
-
-               argdesc = (RGMArgListDescPtr) _Pointer(rec, off_offset);
-
-               sprintf (buffer, "argument count: %d", argdesc->count);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgListDesc, off_offset, count),
-                       sizeof (argdesc->count),
-                       (char*)& argdesc->count,
-                       buffer );
-
-               sprintf (buffer, "related argument count: %d", argdesc->extra);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgListDesc, off_offset, extra),
-                       sizeof (argdesc->extra),
-                       (char*)& argdesc->extra,
-                       buffer );
-
-               off_offset = _OffsetArray (RGMArgListDesc, off_offset, args);
-
-               for (j = 0, arg_ptr = argdesc->args;
-                    j < argdesc->count;
-                    j++, arg_ptr++, off_offset += sizeof (RGMArgument)) {
-
-                   if (arg_ptr->tag_code != UilMrmUnknownCode )
-                       {
-                       sprintf (buffer,
-                                "(%d) arg type: %s",
-                                j,
-                                resource_name_from_code(arg_ptr->tag_code));
-                       }
-                   else
-                       {
-                       ptr = (char *)
-                           _Pointer(rec,arg_ptr->stg_or_relcode.tag_offs);
-                       sprintf (buffer,
-                                "(%d) arg type: %s (user defined)",
-                                j,
-                                ptr);
-                       }
-
-                   src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgument, off_offset, tag_code),
-                       sizeof (arg_ptr->tag_code),
-                       (char*)& arg_ptr->tag_code,
-                       buffer );
-
-                   if (arg_ptr->stg_or_relcode.tag_offs == (MrmOffset) 0) {
-                       sprintf (buffer, "(%d) no tag offset", j);
-                   } else {
-                       sprintf (buffer, "(%d) tag offset: %X (hex)",
-                                       j, arg_ptr->stg_or_relcode.tag_offs);
-                       off_put (k_name_off, arg_ptr->stg_or_relcode.tag_offs);
-                   }
-
-                   src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgument, off_offset, stg_or_relcode.tag_offs),
-                       sizeof (arg_ptr->stg_or_relcode.tag_offs),
-                       (char*)& arg_ptr->stg_or_relcode.tag_offs,
-                       buffer );
-
-                   sprintf (buffer, "(%d) type: %s",
-                       j, type_from_code (arg_ptr->arg_val.rep_type) );
-
-                   src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgument, off_offset,
-                                                       arg_val.rep_type),
-                       sizeof (arg_ptr->arg_val.rep_type),
-                       (char*)& arg_ptr->arg_val.rep_type,
-                       buffer );
-
-                   sprintf (buffer, "(%d) ", j);
-
-                   format_arg_value (& arg_ptr->arg_val,
-                               & buffer [strlen (buffer)]);
-
-                   src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMArgument, off_offset,
-                                                       arg_val.datum),
-                       sizeof (arg_ptr->arg_val.datum),
-                       (char*)& arg_ptr->arg_val.datum,
-                       buffer );
-
-               }
-
-               break;
-           }
-
-           case k_float_off : {
-
-               double  * dptr;
-
-               dptr = (double *) _Pointer (rec, off_offset);
-               sprintf (buffer, "floating point value: %g", (* dptr));
-               src_append_machine_code (
-                       az_src_rec,
-                       off_offset,
-                       sizeof (double), (char*)dptr, buffer );
-               break;
-           }
-
-/* single float data type RAP */
-           case k_single_float_off :
-             {
-               float *fptr;
-
-               fptr = (float *) _Pointer(rec, off_offset);
-               sprintf(buffer, "Single float value: %g", (* fptr));
-               src_append_machine_code (
-                                        az_src_rec,
-                                        off_offset,
-                                        sizeof (float), (char*)fptr, buffer);
-               break;
-             }
-
-
-           case k_creation_off :
-           case k_callback_off : {
-
-               RGMCallbackDescPtr      cb_desc_ptr;
-               RGMCallbackItemPtr      cb_item_ptr;
-               int                     j;
-
-               cb_desc_ptr =
-                       (RGMCallbackDescPtr) _Pointer (rec, off_offset);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMCallbackDesc, off_offset, validation),
-                       sizeof (cb_desc_ptr->validation),
-                       (char*)& cb_desc_ptr->validation,
-                       "callback descriptor" );
-
-               sprintf (buffer, "callback count: %d", cb_desc_ptr->count);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMCallbackDesc, off_offset, count),
-                       sizeof (cb_desc_ptr->count),
-                       (char*)& cb_desc_ptr->count,
-                       buffer );
-
-               off_offset =
-                       _OffsetArray (RGMCallbackDesc, off_offset, item);
-
-               for (j = 0, cb_item_ptr = cb_desc_ptr->item;
-                    j < cb_desc_ptr->count;
-                    j++, cb_item_ptr++,
-                               off_offset += sizeof (RGMCallbackItem)) {
-
-                   sprintf (buffer,
-                               "(%d) routine name offset: %X (hex)",
-                               j, cb_item_ptr->cb_item.routine);
-
-                   src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMCallbackItem, off_offset,
-                                cb_item.routine),
-#ifndef WORD64
-                       sizeof (cb_item_ptr->cb_item.routine),
-                       (char*)& cb_item_ptr->cb_item.routine,
-#else /* 64-bit architecture */
-                       4,
-                       (char*)& cb_item_ptr->cb_item,
-#endif /* WORD64 */
-                       buffer );
-
-                   off_put (k_name_off, cb_item_ptr->cb_item.routine);
-
-                   sprintf (buffer, "(%d) routine tag type: %s",
-                       j, type_from_code (
-                               cb_item_ptr->cb_item.rep_type) );
-
-                   src_append_machine_code
-                       (az_src_rec,
-                        _Offset (RGMCallbackItem, off_offset,
-                                 cb_item.rep_type),
-#ifndef WORD64
-                        sizeof (cb_item_ptr->cb_item.rep_type),
-                        (char*)& cb_item_ptr->cb_item.rep_type,
-#else /* 64-bit architecture */
-                       4,
-                       (char*)& cb_item_ptr->cb_item + 4,
-#endif /* WORD64 */
-                        buffer );
-
-                   sprintf (buffer, "(%d) value: ", j);
-                   src_append_machine_code
-                       (az_src_rec,
-                        _Offset (RGMCallbackItem, off_offset,
-                                 cb_item.datum),
-                        sizeof (cb_item_ptr->cb_item.datum),
-                        (char*)& cb_item_ptr->cb_item.datum,
-                        buffer );
-
-               }       /* for */
-
-               break;
-           }
-
-           case k_resource_off : {
-
-               RGMResourceDescPtr      r_desc_ptr;
-
-               r_desc_ptr =
-                       (RGMResourceDescPtr) _Pointer (rec, off_offset);
-
-               sprintf (buffer, "resource descriptor, size: %d",
-                        r_desc_ptr->size);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMResourceDesc, off_offset, size),
-                       sizeof (r_desc_ptr->size),
-                       (char*)& r_desc_ptr->size,
-                       buffer );
-
-               sprintf (buffer, "access: %s",
-                               access_from_code (r_desc_ptr->access) );
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMResourceDesc, off_offset, access),
-                       sizeof (r_desc_ptr->access),
-                       (char*)& r_desc_ptr->access,
-                       buffer );
-
-               switch (r_desc_ptr->type) {
-                   case URMrIndex:
-                       sprintf (buffer, "index, offset: %X (hex)",
-                               _Offset (RGMResourceDesc, off_offset, key) );
-
-                       off_put (k_name_off,
-                               _Offset (RGMResourceDesc, off_offset, key) );
-                       break;
-
-                   case URMrRID:
-
-                       sprintf (buffer, "resource ID, offset: %X (hex)",
-                               _Offset (RGMResourceDesc, off_offset, key) );
-
-                       off_put (k_resource_id_off,
-                               _Offset (RGMResourceDesc, off_offset, key) );
-                       break;
-
-                   default:
-                       sprintf (buffer, "unknown resource type");
-                       break;
-               }
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMResourceDesc, off_offset, type),
-                       sizeof (r_desc_ptr->type),
-                       (char*)& r_desc_ptr->type,
-                       buffer );
-
-               sprintf (buffer, "resource group: %s",
-                        group_from_code (r_desc_ptr->res_group) );
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMResourceDesc, off_offset, res_group),
-                       sizeof (r_desc_ptr->res_group),
-                       (char*)& r_desc_ptr->res_group,
-                       buffer );
-
-               sprintf (buffer, "resource type: %s",
-                       (r_desc_ptr->res_group == URMgLiteral) ? 
-                               type_from_code (r_desc_ptr->cvt_type) :
-                               class_name_from_code (r_desc_ptr->cvt_type) );
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMResourceDesc, off_offset, cvt_type),
-                       sizeof (r_desc_ptr->cvt_type),
-                       (char*)& r_desc_ptr->cvt_type,
-                       buffer );
-
-               break;
-           }
-
-           case k_resource_id_off : {
-
-               sprintf (buffer, "resource id");
-
-               src_append_machine_code (
-                       az_src_rec,
-                       off_offset,
-                       sizeof (MrmResource_id),
-                       (char *) _Pointer (rec, off_offset),
-                       buffer );
-
-               break;
-           }
-
-           case k_children_off : {
-
-               RGMChildrenDescPtr      c_desc_ptr;
-               int                     j;
-
-               c_desc_ptr = (RGMChildrenDescPtr) _Pointer(rec, off_offset);
-
-               sprintf (buffer, "Children count: %d",
-                        c_desc_ptr->count);
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMChildrenDesc, off_offset, count),
-                       sizeof (c_desc_ptr->count),
-                       (char*)& c_desc_ptr->count,
-                       buffer );
-
-               off_offset =
-                       _OffsetArray (RGMChildrenDesc, off_offset, child);
-
-               for (j = 0; j < c_desc_ptr->count;
-                            j++, off_offset += sizeof (RGMChildDesc)) {
-
-                   off_put (k_child_off, off_offset);
-               }       /* for */
-
-               child_index = 0;
-
-               break;
-           }
-
-           case k_child_off : {
-
-               RGMChildDescPtr         c_ptr;
-               int                     j;
-
-               c_ptr = (RGMChildDescPtr) _Pointer(rec, off_offset);
-
-               j = child_index;
-
-               child_index++;
-
-               if (c_ptr->manage) {
-                   sprintf (buffer, "(%d) managed", j);
-               } else {
-                   sprintf (buffer, "(%d) unmanaged", j);
-               }
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMChildDesc, off_offset, manage),
-                       sizeof (c_ptr->manage),
-                       (char*)& c_ptr->manage,
-                       buffer );
-
-               sprintf (buffer, "(%d) access: %s", j,
-                               access_from_code (c_ptr->access) );
-
-               src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMChildDesc, off_offset, access),
-                       sizeof (c_ptr->access),
-                       (char*)& c_ptr->access,
-                       buffer );
-
-               switch (c_ptr->type) {
-                   case URMrIndex:
-                       sprintf (buffer, "(%d) index, offset: %X (hex)",
-                               j, c_ptr->key.index_offs);
-
-                       src_append_machine_code (
-                               az_src_rec,
-                               _Offset (RGMChildDesc, off_offset, type),
-                               sizeof (c_ptr->type) + sizeof (c_ptr->key),
-                               (char*)& c_ptr->type,
-                               buffer );
-
-                       off_put (k_name_off, c_ptr->key.index_offs);
-
-                       break;
-
-                   case URMrRID:
-                       sprintf (buffer,
-                               "(%d) resource ID, offset: %X (hex)",
-                               j, _Offset (RGMChildDesc, off_offset, key) );
-
-                       src_append_machine_code (
-                               az_src_rec,
-                               _Offset (RGMChildDesc, off_offset, type),
-                               sizeof (c_ptr->type),
-                               (char*)& c_ptr->type,
-                               buffer );
-
-                       off_put (k_resource_id_off,
-                               _Offset (RGMChildDesc, off_offset, key) );
-                       break;
-
-                   default:
-
-                       sprintf (buffer, "(%d) unknown class", j);
-
-                       src_append_machine_code (
-                               az_src_rec,
-                               _Offset (RGMChildDesc, off_offset, type),
-                               sizeof (c_ptr->type),
-                               (char*)& c_ptr->type,
-                               buffer );
-
-                       break;
-               }
-
-               break;
-           }
-
-           default : {
-
-               break;
-           }
-        }      /* switch       */
-    }          /*  for         */
-
-    src_append_machine_code ( az_src_rec, 0, 0, 0, 0 );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function saves the machine code listing information for values.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_entry    Symbol node for this value
-**      az_context     context containing the URM output information.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the machine code is saved in the source record structure for this
-**     value.
-**
-**--
-**/
-
-void           save_value_machine_code ( value_entry, az_context )
-
-sym_value_entry_type   * value_entry;
-URMResourceContext     * az_context;
-
-{
-    src_source_record_type     * az_src_rec;
-    char                       buffer [132], * rc_buffer;
-    unsigned short int         rc_size;
-
-    az_src_rec = value_entry->header.az_src_rec;
-
-    if (value_entry->resource_id != 0) {
-       sprintf (buffer, "Resource ID: %08X", value_entry->resource_id);
-       src_append_machine_code (
-               az_src_rec,
-               0,
-               0, 0,
-               buffer );
-    } else if (value_entry->obj_header.az_name != NULL) {
-       sprintf (buffer, "Resource index: %s",
-                value_entry->obj_header.az_name->c_text);
-       src_append_machine_code
-           (az_src_rec,
-            0,
-            0, 0,
-            buffer);
-    }
-
-    sprintf (buffer, "size: %d, group: %s",
-            UrmRCSize (az_context),
-            group_from_code (UrmRCGroup (az_context)) );
-    src_append_machine_code ( az_src_rec, 0, 0, 0, buffer );
-
-    sprintf (buffer, "type: %s, access: %s, locked: ",
-            type_from_code (UrmRCType (az_context)),
-            access_from_code (UrmRCAccess (az_context)) );
-
-    if (UrmRCLock (az_context)) {
-       strcat (buffer, "true");
-    } else {
-       strcat (buffer, "false");
-    }
-
-    src_append_machine_code ( az_src_rec, 0, 0, 0, buffer );
-
-    rc_buffer = UrmRCBuffer (az_context);
-    rc_size = UrmRCSize (az_context);
-
-    /* 
-    ** Case on the type of literal.
-    */
-
-    switch (value_entry->b_type)
-       {
-       case sym_k_bool_value:
-
-           if ( * (unsigned long *) rc_buffer )
-               sprintf (buffer, "value: true");
-           else
-               sprintf (buffer, "value: false");
-           src_append_machine_code (
-               az_src_rec, 0, rc_size, rc_buffer, buffer );
-           break;
-
-       case sym_k_integer_value:
-       case sym_k_horizontal_integer_value:
-       case sym_k_vertical_integer_value:
-
-           sprintf (buffer, "value: %d",
-                    (* (unsigned long *) rc_buffer) );
-           src_append_machine_code (
-               az_src_rec, 0, rc_size, rc_buffer, buffer );
-           break;
-
-       case sym_k_integer_table_value: 
-       case sym_k_rgb_value:  /* rgb data type RAP */
-           {
-           int index = 0;
-           int offset = 0;
-
-           for (offset = 0; offset < (int)rc_size; offset += sizeof(int), index++)
-               {
-               sprintf (buffer, "value[%d]: %d",
-                        index, ((unsigned long *) rc_buffer)[index] );
-               
-               src_append_machine_code
-                   (az_src_rec, 0, sizeof(int), 
-                    (char*)&(((unsigned long *)rc_buffer)[index]), buffer );
-               }
-           break;
-           }
-
-       case sym_k_float_value:
-       case sym_k_horizontal_float_value:
-       case sym_k_vertical_float_value:
-           sprintf (buffer, "value: %g",
-                    (* (double *) rc_buffer) );
-           src_append_machine_code (
-               az_src_rec, 0, rc_size, rc_buffer, buffer );
-           break;
-
-       case sym_k_single_float_value:
-           sprintf (buffer, "value: %g",
-                    (* (float *) rc_buffer));
-           src_append_machine_code
-               (az_src_rec, 0, rc_size, rc_buffer, buffer );
-            break;
-
-       case sym_k_char_8_value:
-       case sym_k_color_value:
-       case sym_k_color_table_value:
-       case sym_k_icon_value:
-       case sym_k_font_value:
-       case sym_k_fontset_value:
-       case sym_k_font_table_value:
-       case sym_k_reason_value:
-       case sym_k_argument_value:
-       case sym_k_identifier_value:
-       case sym_k_compound_string_value:
-       case sym_k_xbitmapfile_value:
-       case sym_k_keysym_value:
-           src_append_machine_code (
-               az_src_rec,
-               0,
-               rc_size, rc_buffer, 0 );
-           break;
-
-       case sym_k_asciz_table_value:
-       case sym_k_string_table_value: {
-           RGMTextVectorPtr    tv_ptr;
-           unsigned short      off_type, off_offset, off_cnt;
-           int                 i;
-
-           off_offset = 0;
-           tv_ptr = (RGMTextVectorPtr) rc_buffer;
-           src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMTextVector, off_offset, validation),
-                       sizeof (tv_ptr->validation),
-                       (char*)& tv_ptr->validation,
-                       "text vector" );
-
-           sprintf (buffer, "count: %d", tv_ptr->count);
-           src_append_machine_code (
-                       az_src_rec,
-                       _Offset (RGMTextVector, off_offset, count),
-                       sizeof (tv_ptr->count), (char*)& tv_ptr->count,
-                       buffer );
-
-           off_offset = _OffsetArray (RGMTextVector, off_offset, item);
-           for (i = 0; i < tv_ptr->count;
-                i++, off_offset += sizeof (RGMTextEntry)) {
-
-               off_put (k_text_entry_off, off_offset);
-           }
-
-           off_put (k_null_text_entry_off, off_offset);
-           off_cnt = 0;
-           while ( ! off_stack_empty ) {
-
-               RGMTextEntryPtr te_ptr;
-               off_get (& off_type, & off_offset);
-               switch (off_type) {
-                   case k_name_off :
-
-                     {
-                       char *stringPtr = (char *) _Pointer (rc_buffer,off_offset);
-                       src_append_machine_code (az_src_rec, off_offset,
-                                                ASNstrlen( stringPtr ),
-                                                stringPtr, NULL );         
-                     }
-                       break;
-
-                   case k_null_text_entry_off :
-
-                       src_append_machine_code (
-                               az_src_rec, off_offset,
-                               sizeof (RGMTextEntry),
-                               (char*)_Pointer (rc_buffer, off_offset),
-                               "end of text vector" );
-
-                       break;
-           
-                   case k_text_entry_off :
-
-                       te_ptr = (RGMTextEntryPtr)
-                                       _Pointer (rc_buffer, off_offset);
-
-                       sprintf (buffer, "(%d) type: %s, offset: %X (hex)",
-                           off_cnt,
-                           type_from_code (te_ptr->text_item.rep_type),
-                           te_ptr->text_item.offset );
-
-                       src_append_machine_code (
-                               az_src_rec,
-                               _Offset (RGMTextEntry, off_offset,
-                                                               text_item),
-                               sizeof (te_ptr->text_item),
-                               (char*)& te_ptr->text_item,
-                               buffer );
-
-                       off_cnt++;
-
-                       off_put (k_name_off, te_ptr->text_item.offset);
-
-                       break;
-
-                   default:
-
-                       sprintf (buffer, "(%d) unknown text entry", i);
-
-                       src_append_machine_code (
-                               az_src_rec,
-                               off_offset,
-                               0, 0, buffer );
-
-                       break;
-                   }
-               }
-
-           break;
-       }
-
-       case sym_k_trans_table_value:
-
-           src_append_machine_code (
-               az_src_rec, 0, rc_size, rc_buffer, NULL );
-
-           break;
-           
-       default: {
-
-           sprintf (buffer, "unknown value");
-
-           src_append_machine_code (
-               az_src_rec,
-               0,
-               0, 0, buffer );
-
-           break;
-       }
-    }
-
-    src_append_machine_code ( az_src_rec, 0, 0, 0, 0 );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function saves the machine code listing information for modules.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec     Source record for this machine code info.
-**      az_context     context containing the URM output information.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the machine code is saved in the source record structure
-**
-**--
-**/
-
-void           save_module_machine_code ( az_src_rec, az_context )
-
-src_source_record_type * az_src_rec;
-URMResourceContext     * az_context;
-
-{
-
-    RGMModuleDescPtr           m_rec;
-    RGMTopmostDescPtr          t_rec;
-    char                       buffer [132];
-    unsigned short             off_offset;
-    int                                i;
-
-    off_offset = 0;
-
-    m_rec = (RGMModuleDescPtr) UrmRCBuffer (az_context);
-
-    src_append_machine_code (
-               az_src_rec,
-               _Offset (RGMModuleDesc, off_offset, validation),
-               sizeof (m_rec->validation), (char*)& m_rec->validation,
-               "module record" );
-
-    sprintf (buffer, "topmost count: %d", m_rec->count);
-
-    src_append_machine_code (
-               az_src_rec,
-               _Offset (RGMModuleDesc, off_offset, count),
-               sizeof (m_rec->count), (char*)& m_rec->count,
-               buffer );
-
-    off_offset = _OffsetArray (RGMModuleDesc, off_offset, topmost);
-
-    for (i = 0, t_rec = m_rec->topmost;
-        i < m_rec->count;
-        i++, t_rec++, off_offset += sizeof (RGMTopmostDesc)) {
-
-       sprintf (buffer, "(%d) %s", i, t_rec->index);
-
-       src_append_machine_code (
-               az_src_rec,
-               _OffsetArray (RGMTopmostDesc, off_offset, index),
-               strlen(t_rec->index), t_rec->index,
-               buffer );
-
-    }  /* for */
-
-    src_append_machine_code ( az_src_rec, 0, 0, 0, 0 );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function adds an offset entry to the offset stack for
-**     machine code.  The entry is inserted in the proper place in
-**     the stack depending on the offset value.
-**
-**  FORMAL PARAMETERS:
-**
-**      off_type       type of offset entry
-**     off_offset      offset value for this offset entry
-**
-**  IMPLICIT INPUTS:
-**
-**     off_info_cnt            number of offset stack entries
-**      off_info_stack stack containing offset entries
-**
-**  IMPLICIT OUTPUTS:
-**
-**     off_info_cnt            number of offset stack entries
-**      off_info_stack stack containing offset entries
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the offset info is saved in the offset stack
-**
-**--
-**/
-
-void   off_put 
-
-       (unsigned short off_type, unsigned short off_offset)
-
-{
-    off_info_type      off_info, * off_info_ptr;
-    int                        i;
-
-    if (off_info_cnt >= k_off_stack_size) {
-       diag_issue_internal_error ("stack overflow in machine listing");
-    }
-
-    off_info.w_off_type = off_type;
-    off_info.w_off_offset = off_offset;
-
-    /*   Insert on the stack before the first entry with a lower offset
-        value  */
-
-    for (i = 0, off_info_ptr = off_info_stack;
-                        i < off_info_cnt; i++, off_info_ptr++) {
-       if (off_info.w_off_offset > off_info_ptr->w_off_offset) {
-           break;
-       }
-    }
-
-    _move ( & off_info_ptr [1], off_info_ptr,
-           (off_info_cnt - i) * sizeof (off_info_type) );
-
-    (* off_info_ptr) = off_info;
-    off_info_cnt++;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function removes an offset entry to the offset stack for
-**     machine code.
-**
-**  FORMAL PARAMETERS:
-**
-**      off_type       address to receive the type of offset entry
-**     off_offset      address to receive the  offset value for this
-**                     offset entry
-**
-**  IMPLICIT INPUTS:
-**
-**     off_info_cnt            number of offset stack entries
-**      off_info_stack stack containing offset entries
-**
-**  IMPLICIT OUTPUTS:
-**
-**     off_info_cnt            number of offset stack entries
-**      off_info_stack stack containing offset entries
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the offset info is retrieved from the offset stack
-**
-**--
-**/
-
-void   off_get (off_type, off_offset)
-
-unsigned short         * off_type;
-unsigned short         * off_offset;
-
-{
-    off_info_type      * off_info_ptr;
-
-    if (off_info_cnt <= 0) {
-       diag_issue_internal_error ("stack underflow in machine listing");
-    }
-
-    /*   Remove from the stack the entry with the lowest offset value  */
-
-    off_info_ptr = & off_info_stack [off_info_cnt - 1];
-
-    (* off_type) = off_info_ptr->w_off_type;
-    (* off_offset) = off_info_ptr->w_off_offset;
-
-    off_info_cnt--;
-
-}
-\f
-char * type_from_code 
-
-       (MrmType type_code)
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure returns the string corresponding to a URM type code
- *
- *  FORMAL PARAMETERS:
- *
- *     type            type code from RGMrType...
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     The string corresponding to the type code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-{
-
-    switch (type_code)
-       {
-       case MrmRtypeInteger:
-           return uil_datatype_names[sym_k_integer_value];
-       case MrmRtypeHorizontalInteger:
-           return uil_datatype_names[sym_k_horizontal_integer_value];
-       case MrmRtypeVerticalInteger:
-           return uil_datatype_names[sym_k_vertical_integer_value];
-       case MrmRtypeBoolean:
-           return uil_datatype_names[sym_k_bool_value];
-       case MrmRtypeChar8:
-           return uil_datatype_names[sym_k_char_8_value];
-       case MrmRtypeChar8Vector:
-           return uil_datatype_names[sym_k_asciz_table_value];
-       case MrmRtypeCString:
-           return uil_datatype_names[sym_k_compound_string_value];
-       case MrmRtypeCStringVector:
-           return uil_datatype_names[sym_k_string_table_value];
-       case MrmRtypeFloat:
-           return uil_datatype_names[sym_k_float_value];
-       case MrmRtypeHorizontalFloat:
-           return uil_datatype_names[sym_k_horizontal_float_value];
-       case MrmRtypeVerticalFloat:
-           return uil_datatype_names[sym_k_vertical_float_value];
-       case MrmRtypeSingleFloat: /* single float data type RAP */
-           return uil_datatype_names[sym_k_single_float_value];
-       case MrmRtypeCallback:
-           return "callback";
-       case MrmRtypePixmapImage:
-           return "pixmap image";
-       case MrmRtypePixmapDDIF:
-           return "pixmap DDIF";
-       case MrmRtypeResource:
-           return "resource";
-       case MrmRtypeAddrName:
-           return "addr name";
-       case MrmRtypeIconImage:
-           return uil_datatype_names[sym_k_icon_value];
-       case MrmRtypeFont:
-           return uil_datatype_names[sym_k_font_value];
-       case MrmRtypeFontSet:
-           return uil_datatype_names[sym_k_fontset_value];
-       case MrmRtypeFontList:
-           return uil_datatype_names[sym_k_font_table_value];
-       case MrmRtypeColor:
-           return uil_datatype_names[sym_k_color_value];
-       case MrmRtypeColorTable:
-           return uil_datatype_names[sym_k_color_table_value];
-       case MrmRtypeAny:
-           return uil_datatype_names[sym_k_any_value];
-       case MrmRtypeTransTable:
-           return uil_datatype_names[sym_k_trans_table_value];
-       case MrmRtypeClassRecName:
-           return uil_datatype_names[sym_k_class_rec_name_value];
-       case MrmRtypeIntegerVector:
-           return uil_datatype_names[sym_k_integer_table_value];
-       case MrmRtypeXBitmapFile:
-           return uil_datatype_names[sym_k_xbitmapfile_value];
-         case MrmRtypeKeysym:
-           return uil_datatype_names[sym_k_keysym_value];
-       default:
-           return "unknown";
-    }
-
-}
-\f
-char * access_from_code 
-
-       (MrmFlag access_code)
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure returns the string corresponding to a URM access code
- *
- *  FORMAL PARAMETERS:
- *
- *     access_code             access code
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     The string corresponding to the access code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-{
-
-    switch (access_code) {
-       case URMaPublic:        return "public"; 
-       case URMaPrivate:       return "private"; 
-       default:                return "unknown"; 
-    }
-
-}
-\f
-char * group_from_code 
-
-       (MrmGroup group_code)
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure returns the string corresponding to a URM group code
- *
- *  FORMAL PARAMETERS:
- *
- *     group_code              group code
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     The string corresponding to the group code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-{
-
-    switch (group_code) {
-       case URMgWidget:        return "widget"; 
-       case URMgLiteral:       return "literal"; 
-       case URMgResourceSet:   return "resource set"; 
-       default:                return "unknown"; 
-    }
-
-}
-\f
-
-void format_arg_value (argval_ptr, buffer)
-
-RGMArgValuePtr         argval_ptr;
-char                   * buffer;
-
-/*
- *++
- *
- *  FUNCTION PROTOTYPE
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This routine formats a value descriptor into the buffer.
- *
- *  FORMAL PARAMETERS:
- *
- *     argval_ptr      pointer to the argument value descriptor
- *     buffer          buffer to receive the formatted value
- *
- *  IMPLICIT INPUTS:
- *
- *
- *  IMPLICIT OUTPUTS:
- *
- *
- *  FUNCTION VALUE:
- *
- *  SIDE EFFECTS:
- *
- *
- *--
- */
-
-{
-
-    switch ( argval_ptr->rep_type ) {
-
-       case MrmRtypeInteger:
-        case MrmRtypeHorizontalInteger:
-        case MrmRtypeVerticalInteger:
-           sprintf (buffer, "value: %d", argval_ptr->datum.ival);
-           break;
-
-       case MrmRtypeBoolean:
-           if (argval_ptr->datum.ival) {
-               sprintf (buffer, "value: true");
-           } else {
-               sprintf (buffer, "value: false");
-           }
-           break;
-
-       case MrmRtypeChar8:
-       case MrmRtypeCStringVector:
-       case MrmRtypePixmapImage:
-       case MrmRtypePixmapDDIF:
-       case MrmRtypeCString:
-       case MrmRtypeAddrName:
-        case MrmRtypeKeysym:
-           sprintf (buffer, "offset: %X (hex)", argval_ptr->datum.offset);
-           off_put (k_unknown_off, argval_ptr->datum.offset);
-           break;
-
-       case MrmRtypeFloat:
-        case MrmRtypeHorizontalFloat:
-        case MrmRtypeVerticalFloat:
-           sprintf (buffer, "offset: %X (hex)", argval_ptr->datum.offset);
-           off_put (k_float_off, argval_ptr->datum.offset);
-           break;
-
-         case MrmRtypeSingleFloat: /* single float data type RAP */
-           sprintf (buffer, "offset: %X (hex)", argval_ptr->datum.offset);
-            off_put (k_single_float_off, argval_ptr->datum.offset);
-            break;
-
-       case MrmRtypeCallback:
-           sprintf (buffer, "offset: %X (hex)", argval_ptr->datum.offset);
-           off_put (k_callback_off, argval_ptr->datum.offset);
-           break;
-
-       case MrmRtypeResource:
-           sprintf (buffer, "offset: %X (hex)", argval_ptr->datum.offset);
-           off_put (k_resource_off, argval_ptr->datum.offset);
-           break;
-
-       default:
-           sprintf (buffer, "value unknown");
-           break;
-    }
-
-}
-
-\f
-char * class_name_from_code 
-
-       (MrmCode class)
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure returns the string corresponding to a URM class code
- *
- *  FORMAL PARAMETERS:
- *
- *     class           class code from URMwc...
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     The string corresponding to the class code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-{
-
-int            sym_code;
-
-
-/*
- * Find the sym_k code for the class, then return its name
- */
-for ( sym_code=sym_k_error_object+1;
-      sym_code<=uil_max_object;
-      sym_code++ )
-    if ( uil_widget_compr[sym_code] == class )
-       return uil_widget_names[sym_code];
-return "unknown";
-
-}
-
-\f
-char * resource_name_from_code 
-
-       (MrmCode resource)
-
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure returns the string corresponding to a compression code
- *
- *  FORMAL PARAMETERS:
- *
- *     resource        compression code for argument or reason
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     The string corresponding to the resource code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-{
-
-int            sym_code;
-
-
-/*
- * Find the sym_k code for the resource, then return its name
- */
-for ( sym_code=0 ; sym_code<=uil_max_arg ; sym_code++ )
-    if ( uil_arg_compr[sym_code] == resource )
-       return uil_argument_names[sym_code];
-for ( sym_code=0 ; sym_code<=uil_max_reason ; sym_code++ )
-    if ( uil_reas_compr[sym_code] == resource )
-       return uil_reason_names[sym_code];
-for ( sym_code=0 ; sym_code<=uil_max_child ; sym_code++ )
-    if ( uil_child_compr[sym_code] == resource )
-       return uil_child_names[sym_code];
-return "unknown";
-
-}
-
diff --git a/cde/osf/uil/UilMain.c b/cde/osf/uil/UilMain.c
deleted file mode 100644 (file)
index d60fb80..0000000
+++ /dev/null
@@ -1,675 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilMain.c /main/14 1996/06/03 15:49:20 pascale $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module is the main procedure of the UIL Compiler.
-**
-**--
-**/
-
-/*
-**
-**  INCLUDE FILES
-**
-*/
-
-#include <X11/Xlocale.h>
-/* Sun's locale.h defines ON && OFF, which is also defined in UilLexPars.h */
-#ifdef ON
-#undef ON
-#endif
-#ifdef OFF
-#undef OFF
-#endif
-#ifndef X_NOT_STDC_ENV
-#include <stdlib.h>
-#endif
-#include "UilDefI.h"
-#include <setjmp.h>
-
-/*
-**
-**  TABLE OF CONTENTS
-**
-*/
-
-/*
-** FORWARD DECLARATIONS
-*/
-
-
-extern int main  _ARGUMENTS(( int l_argc , char *rac_argv []));
-
-static void common_main  _ARGUMENTS(( void ));
-static void common_cleanup  _ARGUMENTS(( void ));
-
-#ifdef CALLABLE
-static void UilWrapup _ARGUMENTS((Uil_compile_desc_type *compile_desc));
-#endif /* CALLABLE */
-
-/*
-**
-**  EXTERNAL Definitions
-**
-*/
-
-
-#ifndef NO_MESSAGE_CATALOG
-#include <nl_types.h>
-#if !defined(NL_CAT_LOCALE)
-#define NL_CAT_LOCALE  0
-#endif
-
-externaldef(uilmsg) nl_catd uil_catd = NULL;
-
-#endif
-
-/*
-**
-**  MODULE Definitions
-**
-*/
-
-static status      return_status = 0;
-static jmp_buf     environment;
-static unsigned    module_flags = 0;
-static unsigned           doing_exit = 0;
-
-/*  Bit definitions for module_flags */
-
-#define     compiler_called (1 << 0)
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is the common part of the main routine.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      compilation occurs
-**
-**--
-**/
-
-static void    common_main()
-{
-#ifndef NO_MESSAGE_CATALOG
-  if (uil_catd == NULL)
-    uil_catd = catopen("Uil", NL_CAT_LOCALE);
-#endif
-
-  /* Initialize the X toolkit. */
-  XtToolkitInitialize(); 
-  
-    /* use the user supplied data base instead */
-    if (Uil_cmd_z_command.v_database)
-       db_incorporate();
-
-    /* initialize the diagnostic system */
-    diag_initialize_diagnostics();
-
-    /* initialize the symbol table */
-    sym_initialize_storage();
-
-    /* initialize the source */
-    src_initialize_source();
-
-    /* open listing file if requested */
-    if (Uil_cmd_z_command.v_listing_file)
-       lst_open_listing();
-
-    /* initialize the lexical analyzer */
-    lex_initialize_analyzer();
-
-    /* initialize the keyword table */
-    key_initialize();
-
-    /* initialize the sar data structures */
-    sar_initialize();
-
-    /* call YACC to parse the source file */
-    /* return 0 for success, 1 for failure */
-    /* Make sure the root entry sections pointer is filled in */
-    if (yyparse() != 0)
-       diag_issue_diagnostic
-           (d_inv_module, diag_k_no_source, diag_k_no_column);
-    sym_az_root_entry->sections = sym_az_current_section_entry;
-
-    /* call forward reference resolver */
-    sem_resolve_forward_refs();
-
-    /* call semantic validation */
-    sem_validation ();
-
-    /* call the output phase if requested */
-    if (Uil_cmd_z_command.v_resource_file)
-       sem_output_uid_file();
-
-    /* call symbol table dumper - if requested */
-#if debug_version
-    if (uil_v_dump_symbols == TRUE)
-       sym_dump_symbols();
-#endif
-
-
-    /* write compilation summary */
-    diag_issue_summary();
-
-
-    /* write listing file if requested */
-    if (Uil_cmd_z_command.v_listing_file)
-       lst_output_listing();
-
-    /* Storage is not cleaned up, since we will exit */
-    uil_exit( uil_l_compile_status );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is the image termination procedure for the UIL compiler.
-**
-**  FORMAL PARAMETERS:
-**
-**      severity       status of compilation on exit
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      never return from this procedure
-**
-**--
-**/
-
-void   uil_exit(severity)
-
-int    severity;
-
-{
-
-
-
-
-    /* Prevent multiple looping through this routine */
-    if ( doing_exit ) return;
-    doing_exit = 1;
-
-    return_status = (severity >= uil_k_error_status);
-
-    /* Close and remove the uid file if it's still open. */
-    /* It will only be open if a severe error occurred during the output */
-    /* of the uid file. */
-
-    if (out_az_idbfile_id != NULL)
-       UrmIdbCloseFile (out_az_idbfile_id, FALSE);
-
-    /* If compiler called, return to calling program rather than */
-    /* exiting process */
-
-    if (module_flags & compiler_called)
-        longjmp (environment, 1);
-
-    /* RAP FIX for listing files */
-    common_cleanup();
-
-
-    exit(return_status);
-}
-
-\f
-
-
-\f
-
-#ifndef CALLABLE
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is the main routine
-**
-**  FORMAL PARAMETERS:
-**
-**      l_argc:            the number of command line arguments
-**     rac_argv:   an array of pointers to character array arguments
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  COMPLETION CODES:
-**
-**      1 if errors; 0 otherwise
-**
-**  SIDE EFFECTS:
-**
-**     produce possibly a resource file and a listing file
-**--
-**/
-
-int    main( l_argc, rac_argv )
-int    l_argc;
-char   *rac_argv[ ];
-{
-    
-    setlocale(LC_ALL, "");
-
-    /* call routine to parse the command line */
-
-    cmd_decode_command_line( l_argc, rac_argv );
-
-    /* call common main routine */
-
-    common_main();
-
-}
-#endif /* !CALLABLE */
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is the dynamic memory cleanup routine.  It calls all facility
-**     provided cleanup routines so that dynamic structures can be released.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      all dynamic memory is freed 
-**
-**--
-**/
-
-static void    common_cleanup()
-{
-
-    /* cleanup the source file information */
-
-    Uil_src_cleanup_source();
-
-
-    /* cleanup listing facility */
-
-    Uil_lst_cleanup_listing();
-
-
-    /* cleanup the lexical analyzer */
-
-    Uil_lex_cleanup_analyzer();
-
-
-    return;
-}
-
-\f
-#ifdef CALLABLE
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is the callable entry point for the UIL Compiler. 
-**
-**  FORMAL PARAMETERS:
-**
-**      command_desc    pointer to data structure defining UIL command line
-**
-**     compile_desc    pointer to data structure describing the results of
-**                     the compilation.
-**
-**     message_cb      callback routine to process messages
-**
-**     message_data    user-data passed to the message_cb
-**
-**     status_cb       callback routine to process messages
-**
-**     status_data     user-data passed to the status_cb
-**
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  COMPLETION CODES:
-**
-**      uil$_normal if no errors; uil$_no_output otherwise
-**
-**  SIDE EFFECTS:
-**
-**         none
-**--
-**/
-
-
-Uil_status_type Uil 
-
-(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)
-
-
-{
-
-    /* Indicate compiler called rather than being started via command line */
-
-    module_flags = module_flags | compiler_called;
-    doing_exit = 0;
-
-
-    /* Initialize command line data structure */
-
-    Uil_cmd_z_command.ac_database = command_desc -> database;
-    Uil_cmd_z_command.v_database = command_desc -> database_flag;
-    Uil_cmd_z_command.ac_source_file = command_desc -> source_file;
-    Uil_cmd_z_command.ac_resource_file = command_desc -> resource_file;
-    Uil_cmd_z_command.ac_listing_file = command_desc -> listing_file;
-    Uil_cmd_z_command.include_dir_count = command_desc -> include_dir_count;
-    Uil_cmd_z_command.ac_include_dir = command_desc -> include_dir;
-    Uil_cmd_z_command.v_listing_file = command_desc -> listing_file_flag;
-    Uil_cmd_z_command.v_resource_file = command_desc -> resource_file_flag;
-    Uil_cmd_z_command.v_show_machine_code = command_desc -> machine_code_flag;
-    Uil_cmd_z_command.v_report_info_msg = command_desc -> report_info_msg_flag;
-    Uil_cmd_z_command.v_report_warn_msg = command_desc -> report_warn_msg_flag;
-    Uil_cmd_z_command.v_parse_tree = command_desc -> parse_tree_flag;
-    Uil_cmd_z_command.v_use_setlocale = command_desc -> use_setlocale_flag;
-    Uil_cmd_z_command.v_issue_summary = command_desc -> issue_summary;
-    Uil_cmd_z_command.status_update_delay = command_desc -> status_update_delay;
-    Uil_cmd_z_command.message_cb = message_cb;
-    Uil_cmd_z_command.message_data = message_data;
-    Uil_cmd_z_command.status_cb = status_cb;
-    Uil_cmd_z_command.status_data = status_data;
-
-    /* The setjmp function allows us to unwind from a fatal error setjmp is */
-    /* nonzero if we are returning from a fatal error                      */
-
-        if (setjmp(environment) == 0) {
-    
-           /* use the user supplied data base instead. If no source file
-              is given (this call is only to change the database), return at
-              this point with a success. */
-           if ( Uil_cmd_z_command.v_database )
-               {
-               db_incorporate ();
-               if ( Uil_cmd_z_command.ac_source_file == NULL )
-                   uil_exit (uil_k_success_status);
-               }
-
-            /* initialize the diagnostic system */
-           uil_l_compile_status = uil_k_success_status;
-            diag_initialize_diagnostics();
-    
-            /* initialize the symbol table */
-            sym_initialize_storage();
-    
-            /* initialize the source */
-            src_initialize_source();
-    
-            /* open listing file if requested */
-            if (Uil_cmd_z_command.v_listing_file)
-               lst_open_listing();
-
-            /* initialize the lexical analyzer */
-            lex_initialize_analyzer();
-    
-            /* initialize the keyword table */
-            key_initialize();
-    
-           /* initialize the sar data structures */
-           sar_initialize();
-
-           /* call YACC to parse the source file */
-            /* return 0 for success, 1 for failure */
-           /* Make sure the root entry sections pointer is filled in */
-            if (yyparse() != 0)
-               diag_issue_diagnostic
-                   (d_inv_module, diag_k_no_source, diag_k_no_column);
-           sym_az_root_entry->sections = sym_az_current_section_entry;
-    
-            /* call forward reference resolver */
-            sem_resolve_forward_refs();
-        
-           /* call semantic validation */
-           sem_validation ();
-
-            /* call the output phase if requested */
-            if (Uil_cmd_z_command.v_resource_file)
-               sem_output_uid_file();
-
-            /* call symbol table dumper - if requested */
-#if debug_version
-               if (uil_v_dump_symbols == TRUE)
-                   sym_dump_symbols();
-#endif
-
-           /* Perform standard wrapup processing */
-           UilWrapup (compile_desc);
-    
-/*
- * Fix for CR 5534 - call the routine to restore the old signal handlers
- */
-            diag_restore_diagnostics();
-/*
- * End Fix for CR 5534 
- */
-
-           /* exit with the compile status */
-           return uil_l_compile_status;
-
-            }
-
-       /*
-       **  longjmp return from setjmp.  This is the case of a return via 
-       **  uil_exit the value return_status is set by uil_exit.
-       */
-        else
-           {
-           /* Do standard compiler wrapup */
-           UilWrapup (compile_desc);
-
-           /* return the status set by uil_exit */
-           return uil_l_compile_status;
-
-           }
-
-}
-
-/*
- * Local function to provide compiler wrapup processing. It is called both
- * from the longjmp and sequential paths in the callable compiler above.
- */
-static void UilWrapup (compile_desc)
-    Uil_compile_desc_type      *compile_desc;
-
-{
-
-    int i;  /* loop index for copying message counts               */
-
-    /* write compilation summary if requested */
-    if ( Uil_cmd_z_command.v_issue_summary )
-       diag_issue_summary();
-    
-    /* write listing file if requested */
-    if (Uil_cmd_z_command.v_listing_file)
-       lst_output_listing();
-
-    /*
-     ** fill in the "parse tree root" in the compile descriptor,
-     ** and set the version for the compiler and the symbol table
-     ** structure.
-     */
-    compile_desc->parse_tree_root = (char *)sym_az_root_entry;
-    compile_desc->data_version = _data_version;
-    compile_desc->compiler_version = _compiler_version_int;
-
-    /* Fill in the message_summary array in the compile_desc */
-    for (i = uil_k_min_status; i <= uil_k_max_status; i++)
-       compile_desc->message_count[i] = Uil_message_count[i];
-
-    /* If there are any error/severe messages, then don't return */
-    /* a symbol table for the callable compiler - clean up here */
-    if ( Uil_message_count[Uil_k_error_status]>0 ||
-        Uil_message_count[Uil_k_severe_status]>0 )
-       {
-       Uil_cmd_z_command.v_parse_tree = FALSE;
-       compile_desc->parse_tree_root = NULL;
-       }
-
-    /* Call the cleanup routine to free dynamic memory */
-    common_cleanup();
-    
-    /* Cleanup storage; what is cleaned up depends on whether compiler */
-    /* was called or not                                               */
-    Uil_sym_cleanup_storage (Uil_cmd_z_command.v_parse_tree!=1);    
-
-    }
-
-#endif /* CALLABLE */
-
-#ifdef NO_MEMMOVE
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This is a memmove function that explicitly handles
-**      overlapping memory areas.  Written in response to
-**      CR 4851.
-**
-**  FORMAL PARAMETERS:
-**
-**      same as memcpy
-**
-**  COMPLETION CODES:
-**
-**      same as memcpy
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-char *uil_mmove(s1, s2, n)
-char *s1, *s2;
-int n;
-{
-     char *temp;
-
-     if(s2 == s1)
-         return(s2);
-     if(s2 < s1 && s1 <= s2 + n){
-         if(temp = (char *)malloc(n)){
-             memcpy(temp, s2, n);
-             memcpy(s1, temp, n);
-             free(temp);
-             return(s1);
-         }
-         printf("uil_mmove: Memory allocation failed!\n");
-         exit(-1);
-     }
-     return((char *)memcpy(s1, s2, n));
-}
-#endif  /* NO_MEMMOVE */
diff --git a/cde/osf/uil/UilMess.h b/cde/osf/uil/UilMess.h
deleted file mode 100644 (file)
index 70b0465..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilMess.h /main/10 1995/07/14 09:35:51 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-#define d_add_source 2
-#define d_arg_count 23
-#define d_arg_type 24
-#define d_backslash_ignored 11
-#define d_bad_argument 72
-#define d_bad_database 73
-#define d_bad_lang_value 67
-#define d_bug_check 5
-#define d_cannot_convert 71
-#define d_circular_def 45
-#define d_circular_ref 63
-#define d_control_char 9
-#define d_create_proc 41
-#define d_create_proc_inv 42
-#define d_create_proc_req 43
-#define d_ctx_req 16
-#define d_default_charset 80
-#define d_different_units 79
-#define d_dup_letter 52
-#define d_dup_list 27
-#define d_dupl_opt 0
-#define d_future_version 74
-#define d_gadget_not_sup 57
-#define d_icon_letter 54
-#define d_icon_width 53
-#define d_illegal_forward_ref 70
-#define d_include_file 78
-#define d_info 31
-#define d_inv_module 35
-#define d_invalid_enumval 66
-#define d_list_item 28
-#define d_listing_open 33
-#define d_listing_write 34
-#define d_miss_opt_arg 32
-#define d_name_too_long 12
-#define d_names 50
-#define d_never_def 26
-#define d_no_enumset 65
-#define d_no_source 46
-#define d_no_uid 40
-#define d_nonpvt 22
-#define d_not_impl 17
-#define d_null 44
-#define d_obj_type 25
-#define d_operand_type 58
-#define d_out_of_memory 13
-#define d_out_range 7
-#define d_override_builtin 64
-#define d_prev_error 29
-#define d_previous_def 21
-#define d_single_control 48
-#define d_single_letter 51
-#define d_single_occur 47
-#define d_src_close 62
-#define d_src_limit 36
-#define d_src_null_char 37
-#define d_src_open 3
-#define d_src_read 4
-#define d_src_truncate 6
-#define d_submit_spr 30
-#define d_subnotall 56
-#define d_summary 38
-#define d_supersede 20
-#define d_syntax 14
-#define d_too_many 55
-#define d_too_many_dirs 61
-#define d_uid_open 39
-#define d_uid_write 76
-#define d_undefined 15
-#define d_unknown_charset 49
-#define d_unknown_classrecnam 77
-#define d_unknown_opt 1
-#define d_unknown_seq 10
-#define d_unsupp_charset 59
-#define d_unsupp_const 60
-#define d_unsupported 19
-#define d_unterm_seq 8
-#define d_value_too_large 69
-#define d_widget_cycle 68
-#define d_wmd_open 75
-#define d_wrong_type 18
diff --git a/cde/osf/uil/UilMessTab.h b/cde/osf/uil/UilMessTab.h
deleted file mode 100644 (file)
index 369d28c..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilMessTab.h /main/11 1995/07/14 09:36:09 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      DECwindows Toolkit User Interface Language Compiler (UIL)
-**--
-**/
-
-
-char XmConst msg0[36] = "duplicate option \"%s\" was ignored";
-char XmConst msg1[34] = "unknown option \"%s\" was ignored";
-char XmConst msg2[43] = "additional UIL source file: %s was ignored";
-char XmConst msg3[30] = "error opening source file: %s";
-char XmConst msg4[43] = "error reading next line of source file: %s";
-char XmConst msg5[19] = "Internal error: %s";
-char XmConst msg6[32] = "line truncated at %d characters";
-char XmConst msg7[31] = "value of %s is out of range %s";
-char XmConst msg8[21] = "%s not terminated %s";
-char XmConst msg9[37] = "unprintable character \\%d\\ ignored";
-char XmConst msg10[32] = "unknown sequence \"%s\" ignored";
-char XmConst msg11[46] = "unknown escape sequence \"\\%c\" - \\ ignored";
-char XmConst msg12[46] = "name exceeds %d characters - truncated to: %s";
-char XmConst msg13[35] = "compiler ran out of virtual memory";
-char XmConst msg14[56] = "unexpected %s token seen - parsing resumes after \"%c\"";
-char XmConst msg15[44] = "%s %s must be defined before this reference";
-char XmConst msg16[41] = "context requires a %s - %s was specified";
-char XmConst msg17[26] = "%s is not implemented yet";
-char XmConst msg18[39] = "found %s value when expecting %s value";
-char XmConst msg19[45] = "the %s %s is not supported for the %s object";
-char XmConst msg20[62] = "this %s %s is superseded by the last definition in this %s %s";
-char XmConst msg21[33] = "name %s previously defined as %s";
-char XmConst msg22[43] = "value used in this context must be private";
-char XmConst msg23[55] = "procedure %s was previously declared with %d arguments";
-char XmConst msg24[56] = "found %s value - procedure %s argument must be %s value";
-char XmConst msg25[33] = "found %s %s when expecting %s %s";
-char XmConst msg26[24] = "%s %s was never defined";
-char XmConst msg27[39] = "%s %s already specified for this %s %s";
-char XmConst msg28[29] = "%s item not allowed in %s %s";
-char XmConst msg29[45] = "compilation terminated - fix previous errors";
-char XmConst msg30[38] = "internal error - submit defect report";
-char XmConst msg31[2] = " ";
-char XmConst msg32[35] = "%s missing following \"%s\" option";
-char XmConst msg33[31] = "error opening listing file: %s";
-char XmConst msg34[34] = "error writing to listing file: %s";
-char XmConst msg35[51] = "invalid module structure - check UIL module syntax";
-char XmConst msg36[31] = "too many source files open: %s";
-char XmConst msg37[38] = "source line contains a null character";
-char XmConst msg38[45] = "errors: %d  warnings: %d  informationals: %d";
-char XmConst msg39[27] = "error opening UID file: %s";
-char XmConst msg40[25] = "no UID file was produced";
-char XmConst msg41[53] = "creation procedure is not supported by the %s widget";
-char XmConst msg42[59] = "creation procedure is not allowed in a %s widget reference";
-char XmConst msg43[58] = "creation procedure is required in a %s widget declaration";
-char XmConst msg44[46] = "a NULL character in a string is not supported";
-char XmConst msg45[43] = "widget %s is part of a circular definition";
-char XmConst msg46[25] = "no source file specified";
-char XmConst msg47[35] = "%s %s supports only a single %s %s";
-char XmConst msg48[41] = "%s widget supports only a single control";
-char XmConst msg49[22] = "unknown character set";
-char XmConst msg50[47] = "place names clause before other module clauses";
-char XmConst msg51[47] = "color letter string must be a single character";
-char XmConst msg52[48] = "color letter used for prior color in this table";
-char XmConst msg53[37] = "row %d must have same width as row 1";
-char XmConst msg54[52] = "row %d, column %d: letter \"%c\" not in color table";
-char XmConst msg55[32] = "too many %ss in %s, limit is %d";
-char XmConst msg56[48] = "Subqualifier not allowed with negated qualifier";
-char XmConst msg57[60] = "%s gadget is not supported - %s widget will be used instead";
-char XmConst msg58[28] = "%s type is not valid for %s";
-char XmConst msg59[66] = "support for this character set may be removed in a future release";
-char XmConst msg60[49] = "the %s constraint is not supported for the %s %s";
-char XmConst msg61[37] = "too many \"%s\" options, limit is %d";
-char XmConst msg62[30] = "error closing source file: %s";
-char XmConst msg63[35] = "the %s value is circularly defined";
-char XmConst msg64[28] = "overriding built-in name %s";
-char XmConst msg65[51] = "the %s argument does not support enumerated values";
-char XmConst msg66[57] = "the %s argument does not support the %s enumerated value";
-char XmConst msg67[40] = "$LANG contains an unknown character set";
-char XmConst msg68[66] = "the %s object's controls hierarchy contains a reference to itself";
-char XmConst msg69[41] = "value %s is too large for context buffer";
-char XmConst msg70[42] = "forward referencing is not allowed for %s";
-char XmConst msg71[34] = "cannot convert %s type to %s type";
-char XmConst msg72[14] = "%s is invalid";
-char XmConst msg73[30] = "error reading binary database";
-char XmConst msg74[47] = "binary database compiled with a future version";
-char XmConst msg75[32] = "error opening database file: %s";
-char XmConst msg76[27] = "error writing UID file: %s";
-char XmConst msg77[45] = "'%s' is an unknown Toolkit class record name";
-char XmConst msg78[26] = "invalid include file name";
-char XmConst msg79[49] = "incompatible unit types for arithmetic operation";
-char XmConst msg80[54] = "%s used as charset name; %s used as charset component";
-
-typedef struct
-{
-  XmConst int  l_severity;
-  char XmConst *ac_text;
-} diag_rz_msg_entry;
-
-XmConst diag_rz_msg_entry diag_rz_msg_table[81] =
-        {
-          { 2, msg0 },
-          { 2, msg1 },
-          { 3, msg2 },
-          { 4, msg3 },
-          { 4, msg4 },
-          { 4, msg5 },
-          { 3, msg6 },
-          { 3, msg7 },
-          { 3, msg8 },
-          { 3, msg9 },
-          { 3, msg10 },
-          { 3, msg11 },
-          { 3, msg12 },
-          { 4, msg13 },
-          { 3, msg14 },
-          { 3, msg15 },
-          { 3, msg16 },
-          { 3, msg17 },
-          { 3, msg18 },
-          { 2, msg19 },
-          { 1, msg20 },
-          { 3, msg21 },
-          { 3, msg22 },
-          { 3, msg23 },
-          { 3, msg24 },
-          { 3, msg25 },
-          { 3, msg26 },
-          { 3, msg27 },
-          { 3, msg28 },
-          { 4, msg29 },
-          { 4, msg30 },
-          { 1, msg31 },
-          { 3, msg32 },
-          { 4, msg33 },
-          { 4, msg34 },
-          { 3, msg35 },
-          { 4, msg36 },
-          { 3, msg37 },
-          { 1, msg38 },
-          { 4, msg39 },
-          { 1, msg40 },
-          { 3, msg41 },
-          { 3, msg42 },
-          { 3, msg43 },
-          { 2, msg44 },
-          { 3, msg45 },
-          { 4, msg46 },
-          { 2, msg47 },
-          { 2, msg48 },
-          { 3, msg49 },
-          { 3, msg50 },
-          { 3, msg51 },
-          { 3, msg52 },
-          { 3, msg53 },
-          { 3, msg54 },
-          { 3, msg55 },
-          { 4, msg56 },
-          { 2, msg57 },
-          { 3, msg58 },
-          { 2, msg59 },
-          { 2, msg60 },
-          { 2, msg61 },
-          { 2, msg62 },
-          { 3, msg63 },
-          { 2, msg64 },
-          { 2, msg65 },
-          { 2, msg66 },
-          { 3, msg67 },
-          { 3, msg68 },
-          { 4, msg69 },
-          { 4, msg70 },
-          { 3, msg71 },
-          { 3, msg72 },
-          { 4, msg73 },
-          { 4, msg74 },
-          { 4, msg75 },
-          { 4, msg76 },
-          { 2, msg77 },
-          { 4, msg78 },
-          { 4, msg79 },
-          { 1, msg80 },
-        };
-
-#ifndef NO_MESSAGE_CATALOG
-#include <nl_types.h>
-#include "UilMsgCatI.h"
-externalref nl_catd uil_catd;
-
-XmConst int msg_cat_table[81] = {
-  UIL_0,  UIL_1,  UIL_2,  UIL_3,  UIL_4,
-  UIL_5,  UIL_6,  UIL_7,  UIL_8,  UIL_9,
-  UIL_10, UIL_11, UIL_12, UIL_13, UIL_14,
-  UIL_15, UIL_16, UIL_17, UIL_18, UIL_19,
-  UIL_20, UIL_21, UIL_22, UIL_23, UIL_24,
-  UIL_25, UIL_26, UIL_27, UIL_28, UIL_29,
-  UIL_30, UIL_31, UIL_32, UIL_33, UIL_34,
-  UIL_35, UIL_36, UIL_37, UIL_38, UIL_39,
-  UIL_40, UIL_41, UIL_42, UIL_43, UIL_44,
-  UIL_45, UIL_46, UIL_47, UIL_48, UIL_49,
-  UIL_50, UIL_51, UIL_52, UIL_53, UIL_54,
-  UIL_55, UIL_56, UIL_57, UIL_58, UIL_59,
-  UIL_60, UIL_61, UIL_62, UIL_63, UIL_64,
-  UIL_65, UIL_66, UIL_67, UIL_68, UIL_69,
-  UIL_70, UIL_71, UIL_72,
-  UIL_V2_73, UIL_V2_74, UIL_V2_75, UIL_V2_76, 
-  UIL_V2_77, UIL_78, UIL_V2_79, UIL_V2_80,
-};
-
-#endif
diff --git a/cde/osf/uil/UilP2Out.c b/cde/osf/uil/UilP2Out.c
deleted file mode 100644 (file)
index c2815ab..0000000
+++ /dev/null
@@ -1,4052 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilP2Out.c /main/15 1997/03/12 15:17:24 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the routines for creating the UID file.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#ifdef DXM_V11
-#include <DXm/DXmHelpB.h>
-#endif
-
-#include "UilDefI.h"
-#include "UilSymGen.h"
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-#ifdef WORD64
-#define _shift 3
-#else
-#define _shift 2
-#endif
-
-#define initial_context_size 2048
-/* alpha port note:
-   the original define makes some assumptions on the sizes of the
-   structures when calculating this value. I 'think' I have devined
-   the intent of this and have replaced it with a more generic
-   calculation.
-   */
-#define out_k_last_offset \
-       (((src_k_max_source_line_length +1) / sizeof(sym_entry_type *)))
-
-/* #define out_k_last_offset ((sizeof( src_source_buffer_type )>>_shift)-2) */
-
-typedef        struct  _out_queue_type
-{
-    struct _out_queue_type  *az_prior_queue;
-    sym_entry_type         *entry[out_k_last_offset + 1];
-} out_queue_type;
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-char   *_get_memory();
-void   _free_memory();
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-externaldef(uil_comp_glbl) IDBFile             out_az_idbfile_id;
-
-static  URMResourceContext     *out_az_context;
-static out_queue_type          *out_az_queue;
-static int                     out_l_next_offset;
-static UidCompressionTable             *extern_arg_compr;
-static UidCompressionTable      *extern_class_compr;
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function begins the process of creating the UID file.  It
-**     handles:
-**         1) creating the UID file and closing it
-**         2) initializing the queue of other objects to be processed
-**         3) creating the module widget 
-**         4) emitting exported literals and procedures
-**         5) creating the compression code table for this UID file
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_external_def_chain   list of exported object
-**     src_az_avail_source_buffer  use source buffers for queue of objects
-**                                 requiring further attention
-**
-**  IMPLICIT OUTPUTS:
-**
-**      src_az_avail_source_buffer
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      UID file is created
-**
-**--
-**/
-
-void   sem_output_uid_file()
-
-{
-    sym_external_def_entry_type        *ext_entry;
-    char                       *module_version;
-    char                       *module_name;
-    status                     urm_status;
-    sym_entry_type             *symbol_entry;
-    int                                topmost_widget_count;
-    int                                topmost_index;
-    struct
-    {   MrmOsOpenParam os_param;
-       char            result_file[256];
-    } uid_fcb;
-
-
-    /*
-    **  No UID file is created if any error severity message has
-    ** been emitted.
-    */
-
-    if (uil_l_compile_status >= uil_k_error_status)
-    {
-       diag_issue_diagnostic( 
-           d_no_uid,
-           diag_k_no_source,
-           diag_k_no_column );
-
-       return;
-    }
-
-    /*
-    ** Request URM hold error message and report via status rather
-    ** that sending them to stdout.  This permits the compiler to
-    ** deal with the messages as it does with others.
-    */
-
-    urm_status =
-    Urm__UT_SetErrorReport( URMErrOutMemory );
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "allocating context" );
-
-    /*
-    ** Open the UID file
-    */
-    uid_fcb.os_param.version = MrmOsOpenParamVersion;
-
-
-    /* clobber flag lets a.uid replace an existing a.uid */
-    uid_fcb.os_param.nam_flg.clobber_flg = TRUE;
-
-    module_version = "";
-    module_name = sym_az_module_entry->obj_header.az_name->c_text;
-
-    if (sym_az_module_entry->az_version != NULL)
-       module_version = sym_az_module_entry->az_version->value.c_value;
-
-    urm_status = UrmIdbOpenFileWrite
-                 ( Uil_cmd_z_command.ac_resource_file,
-                   & uid_fcb.os_param,
-                   _host_compiler,
-                   _compiler_version,
-                   module_name,
-                   module_version,
-                   &out_az_idbfile_id,
-                   uid_fcb.result_file );
-
-    if (urm_status != MrmSUCCESS)
-    {
-       diag_issue_diagnostic( 
-           d_uid_open,
-           diag_k_no_source,
-           diag_k_no_column,
-           uid_fcb.result_file );
-
-       return;
-    }
-
-
-    /*
-    ** Set the name of the file we are accessing as the current file and call
-    ** the Status callback routine to report our progress.
-    */
-    Uil_current_file =  uid_fcb.result_file;
-    if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-       diag_report_status();    
-
-
-    /*
-    ** Create a context
-    */
-
-    urm_status =
-       UrmGetResourceContext ( _get_memory, _free_memory, 
-       initial_context_size, &out_az_context );
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "allocating context" );
-
-    /*
-    ** Initialize queue of objects to be processed.
-    */
-
-    out_l_next_offset = 0;
-    out_az_queue = (out_queue_type *)src_az_avail_source_buffer;
-    out_az_queue->az_prior_queue = NULL;
-    src_az_avail_source_buffer = 
-       src_az_avail_source_buffer->az_prior_source_buffer;
-
-    /*
-    ** Count the number of topmost widgets by scanning the external list.
-    ** A topmost widget is one that is not referenced.
-    */
-
-    topmost_widget_count = 0;
-
-    for (ext_entry = sym_az_external_def_chain;  
-        ext_entry != NULL;  
-        ext_entry = ext_entry->az_next_object)
-    {
-       symbol_entry = ext_entry->az_name->az_object;
-
-       if (symbol_entry->header.b_tag == sym_k_widget_entry)
-           if ((((sym_widget_entry_type *)symbol_entry)->
-                   obj_header.az_name->b_flags & sym_m_referenced) == 0)
-               topmost_widget_count++;
-
-    }
-
-    /*
-    ** Initialize the context to build the interface module.
-    */
-
-    urm_status =
-    UrmIFMInitModule
-       ( out_az_context, topmost_widget_count, URMaPublic, FALSE );
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "initializing module" );
-
-    /*
-    **  Create the compression code table for use with this UID file.
-    */
-
-    create_int_compression_codes();
-
-    /* 
-    ** Exported objects are on a chain that we will now walk.
-    ** They can be of 3 types: widgets, gadgets and values.
-    ** Values, gadgets and widgets are pushed on LIFO queue and processed 
-    ** shortly.
-    ** Each widget on the list is top most if it is not referenced.  Topmost
-    ** widgets are added to the current context for the interface module.
-    */
-
-    topmost_index = 0;
-
-    for (ext_entry = sym_az_external_def_chain;  
-        ext_entry != NULL;  
-        ext_entry = ext_entry->az_next_object)
-    {
-       /*
-       **  Call the Status callback routine to report our progress.
-       */
-      /* %COMPLETE */
-      Uil_percent_complete=CEIL(
-           80+ (.20 *((float)topmost_index/(float)(topmost_widget_count+.5)))*100, 80);
-
-       if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-           diag_report_status();    
-
-       symbol_entry = ext_entry->az_name->az_object;
-
-       switch (symbol_entry->header.b_tag)
-       {
-
-       case sym_k_value_entry:
-       {
-           sym_value_entry_type   *value_entry;
-
-           value_entry = (sym_value_entry_type *)symbol_entry;
-       
-           value_entry->output_state = sym_k_queued;
-
-           push( (sym_entry_type *)value_entry );
-
-           break;
-       }
-
-       case sym_k_gadget_entry:
-       case sym_k_widget_entry:
-       {
-           sym_widget_entry_type   *widget_entry;
-
-           widget_entry = (sym_widget_entry_type *)symbol_entry;
-       
-           if ((widget_entry->obj_header.az_name->b_flags & sym_m_referenced)
-               == 0)
-           {
-               widget_entry->output_state = sym_k_queued;
-
-               push((sym_entry_type *) widget_entry );
-
-               urm_status = 
-               UrmIFMSetTopmost
-                   ( out_az_context, 
-                     topmost_index, 
-                     widget_entry->obj_header.az_name->c_text );
-               if( urm_status != MrmSUCCESS)
-                   issue_urm_error( "adding topmost widget" );
-
-               topmost_index++;
-           }
-
-           break;
-       }
-
-       default:
-           _assert( FALSE, "unexpected entry on external chain");
-           break;
-       }
-    }
-
-    /*
-    ** Emit the Interface Module
-    */
-
-    urm_status =
-    UrmIFMPutModule
-       ( out_az_idbfile_id, module_name, out_az_context );
-    if( urm_status != MrmSUCCESS)
-       {
-       if (urm_status == MrmEOF)
-           diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                   diag_k_no_column, Uil_current_file );
-       else
-           issue_urm_error( "emitting module" );
-       }
-
-    if (Uil_cmd_z_command.v_show_machine_code) {
-       save_module_machine_code 
-           ( src_az_module_source_record, out_az_context );
-    }
-
-    /*
-    ** Start to process the widgets that have been pushed on
-    ** the queue.
-    */
-
-    for (symbol_entry = pop();  symbol_entry != NULL;  symbol_entry = pop() )
-    {
-       /*
-       **  Call the Status callback routine to report our progress.
-       */
-       if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-           diag_report_status();    
-
-       switch (symbol_entry->header.b_tag)
-       {
-
-       case sym_k_value_entry:
-           out_emit_value(( sym_value_entry_type *) symbol_entry );
-           break;
-
-       case sym_k_widget_entry:
-       case sym_k_gadget_entry:
-       case sym_k_child_entry:
-           out_emit_widget(( sym_widget_entry_type *) symbol_entry );
-           break;
-
-       default:
-           _assert( FALSE, "unexpected entry popped during output");
-           break;
-       }
-    }
-
-    create_ext_compression_codes ();
-
-    /*
-    ** Close the UID file - if there are errors don't keep the file
-    */
-
-    urm_status = (uil_l_compile_status < uil_k_error_status);
-
-    if (!urm_status)
-    {
-       diag_issue_diagnostic
-           ( d_no_uid, diag_k_no_source, diag_k_no_column );
-    }
-
-    urm_status =
-    UrmIdbCloseFile( out_az_idbfile_id, urm_status );
-       out_az_idbfile_id = NULL;
-    if( urm_status != MrmSUCCESS)
-      diag_issue_diagnostic
-       ( d_uid_write, diag_k_no_source, diag_k_no_column, Uil_current_file );
-
-
-    /*
-    ** Free the context 
-    */
-
-    urm_status =
-    UrmFreeResourceContext( out_az_context );
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "freeing context" );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function pushes a symbol table entry into a LIFO queue.
-**
-**  FORMAL PARAMETERS:
-**
-**      sym_entry              pointer to symbol table to push
-**
-**  IMPLICIT INPUTS:
-**
-**      out_l_next_offset      next offset in current queue
-**     out_az_queue            current queue
-**     src_az_avail_source_buffer
-**                             next available queue buffer
-**
-**  IMPLICIT OUTPUTS:
-**
-**      same as inputs
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      argument is placed on a queue
-**
-**--
-**/
-
-void   push(sym_entry)
-
-sym_entry_type *sym_entry;
-
-{
-
-    out_queue_type  *next_queue;
-
-    /*
-    ** We reuse source buffers for the output queues.
-    */
-
-    if (out_l_next_offset > out_k_last_offset)
-    {
-       if (src_az_avail_source_buffer == NULL)
-       {
-           src_az_avail_source_buffer = 
-               (src_source_buffer_type *)
-                   _get_memory( sizeof( src_source_buffer_type ) );
-           src_az_avail_source_buffer->az_prior_source_buffer = NULL;
-       }
-
-       next_queue = (out_queue_type *)src_az_avail_source_buffer;
-       src_az_avail_source_buffer = 
-           src_az_avail_source_buffer->az_prior_source_buffer;
-
-       next_queue->az_prior_queue = out_az_queue;
-       out_az_queue = next_queue;
-       out_l_next_offset = 0;
-    }
-
-    out_az_queue->entry[out_l_next_offset] = sym_entry;
-
-    out_l_next_offset++;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function pops a symbol table entry from a LIFO queue.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      out_l_next_offset      next offset in current queue
-**     out_az_queue            current queue
-**     src_az_avail_source_buffer
-**                             next available queue buffer
-**
-**  IMPLICIT OUTPUTS:
-**
-**      same as inputs
-**
-**  FUNCTION VALUE:
-**
-**      sym_entry              pointer to symbol table popped
-**     NULL                    when no more to pop
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-sym_entry_type *pop()
-
-{
-
-    src_source_buffer_type  *avail_buffer;
-
-    out_l_next_offset--;
-
-    if (out_l_next_offset < 0)
-    {
-       avail_buffer = (src_source_buffer_type *)out_az_queue;
-       out_az_queue = out_az_queue->az_prior_queue;
-       avail_buffer->az_prior_source_buffer = src_az_avail_source_buffer;
-       src_az_avail_source_buffer = avail_buffer;
-
-       if (out_az_queue == NULL)
-           return NULL;
-
-       out_l_next_offset = out_k_last_offset;
-    }
-
-    return out_az_queue->entry[out_l_next_offset];
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds the URM record for a widget.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_entry       symbol table pointer for a widget
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      write a widget record to UID file
-**      push other objects on the queue to be processed
-**
-**--
-**/
-
-void   out_emit_widget( widget_entry )
-
-sym_widget_entry_type  *widget_entry;
-
-{
-
-char                           buffer[32];
-char                           *widget_name;
-char                           *widget_class_name;
-unsigned int                   widget_class;
-unsigned long                  widget_variety;
-int                            arg_count;
-int                            related_arg_count;
-int                            arglist_index;
-sym_list_entry_type            *list_entry;
-MrmCode                                access_code;
-status                         urm_status;
-MrmCode                                subtree_code;
-sym_control_entry_type         *subtree_control;
-
-
-_assert( (widget_entry->header.b_tag == sym_k_widget_entry) ||
-        (widget_entry->header.b_tag == sym_k_gadget_entry) ||
-        (widget_entry->header.b_tag == sym_k_child_entry),
-        "object to be emitted is not an object" );
-
-_assert( (widget_entry->obj_header.b_flags & 
-        (sym_m_exported | sym_m_private)),
-        "object being emitted is not exported or private" );
-
-if (widget_entry->header.b_tag == sym_k_child_entry)
-  widget_variety = UilMrmAutoChildVariety;
-else widget_variety = UilMrmWidgetVariety;
-
-/*
-* Each real widget needs a name.  Automatic children just get an
-* empty string since the name is stored in the compression tables.
-* For real widgets, we use the user provided name
-* if there is one; otherwise widgetfile#-line#-col# 
-* For example, widget-1-341-111 was defined in file=1, line=341
-* and column=11
-*/
-if (widget_variety == UilMrmAutoChildVariety)
-  widget_name = "";
-else if (widget_entry->obj_header.az_name == NULL)
-  {
-    sprintf(buffer, "widget-%d-%d-%d", 
-           widget_entry->header.az_src_rec->b_file_number,
-           widget_entry->header.az_src_rec->w_line_number,
-           widget_entry->header.b_src_pos);
-    widget_name = buffer;
-  }
-else
-    widget_name = widget_entry->obj_header.az_name->c_text;
-
-access_code = URMaPublic;
-if (widget_entry->obj_header.b_flags & sym_m_private)
-    access_code = URMaPrivate;
-
-urm_status = UrmCWRInit (out_az_context, widget_name, access_code, FALSE);
-if( urm_status != MrmSUCCESS)
-    issue_urm_error( "initializing context" );
-
-    /*
-    ** Set the class of the widget. 
-    */
-
-    widget_class_name = NULL;
-
-    arg_count = 0;
-    related_arg_count = 0;
-    subtree_control = NULL;
-
-    /*
-    ** Special processing 1: User defined widgets have the class as
-    ** creation routine
-    */
-    if ( widget_entry->header.b_type == uil_sym_user_defined_object )
-       {
-       widget_class_name = 
-           widget_entry->az_create_proc->az_proc_def->obj_header.az_name->c_text;
-       }
-
-    /*
-    ** Special processing 2. Widgets which map their (single) control to
-    ** a (subtree) resource. This handles the convention (originally invented
-    ** for the pulldown menu which is the child of a cascade button) that
-    ** subtrees which must be instantiated to serve as a resource value are
-    ** treated as children rather than as widget references. Multiple
-    ** children issue a diagnostic.
-    */
-    subtree_code = uil_urm_subtree_resource[widget_entry->header.b_type];
-    if ( subtree_code != 0 )
-       {
-       int                         count;
-
-       list_entry = widget_entry->az_controls;
-       count = 0;
-       extract_subtree_control (list_entry, &subtree_control, &count);
-       switch ( count )
-           {
-           case 0:
-               break;
-           case 1:
-               arg_count += 1;
-               break;
-           default:
-               arg_count += 1;
-               diag_issue_diagnostic
-                   (d_single_control,
-                    _sar_source_pos2(subtree_control),
-                    diag_object_text(widget_entry->header.b_type));
-               break;
-           }
-      }
-
-
-    /*
-     * Set the class in the widget record
-     */
-    if (widget_variety == UilMrmAutoChildVariety)
-      widget_class = uil_child_compr[widget_entry->header.b_type];
-    else widget_class = uil_widget_compr[widget_entry->header.b_type];      
-
-
-    /*
-     * User defined widgets don't get compressed.  
-     */
-
-    if (widget_entry->header.b_type == uil_sym_user_defined_object)
-       widget_class = MrmwcUnknown;
-
-    urm_status =
-    UrmCWRSetClass( out_az_context, 
-                   widget_class,
-                   widget_class_name,
-                   widget_variety );
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "setting class" );
-
-    /*
-    ** Check the callback list for the creation reason and process it.
-    ** Do this first since it affects arg_count.
-    */
-    list_entry = widget_entry->az_callbacks;
-    if (list_entry != NULL)
-       {
-       sym_callback_entry_type     *callback_entry;
-
-       arg_count += compute_list_size (list_entry, sym_k_callback_entry);
-       callback_entry = NULL;
-       extract_create_callback (list_entry, &callback_entry);
-       if ( callback_entry != NULL )
-           {
-           arglist_index = 0;
-           emit_callback (callback_entry, &arglist_index, TRUE);
-           arg_count -= 1;
-           }
-       }
-
-    /*
-    ** Output the list of arguments.  Arguments are either callbacks
-    ** or arguments.
-    */
-
-    if (widget_entry->az_arguments != NULL)
-       arg_count += compute_list_size
-           (widget_entry->az_arguments, sym_k_argument_entry);
-
-    if (arg_count > 0)
-       {
-       urm_status =
-       UrmCWRInitArglist( out_az_context, arg_count );
-       if( urm_status != MrmSUCCESS)
-           issue_urm_error( "initializing arglist" );
-       arglist_index = arg_count - 1;
-
-       /*
-       **      Process the callbacks, then the arguments
-       */
-       process_all_callbacks
-           (widget_entry->az_callbacks, &arglist_index);
-       process_all_arguments
-           (widget_entry->az_arguments, &arglist_index, &related_arg_count);
-
-       /*
-       ** Process a control which is to be entered as a subtree resource. Mark
-       ** the control so it won't be processed again.
-       */
-       if (subtree_control != NULL)
-           {
-           MrmCode         widget_access;
-           MrmCode         widget_form;
-           char            *widget_index;
-           MrmResource_id  widget_id;
-           
-           urm_status =
-           UrmCWRSetCompressedArgTag
-               (out_az_context, arglist_index,
-               uil_arg_compr[subtree_code], 0);
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "setting compressed arg" );
-
-           widget_form = 
-               ref_control( subtree_control, 
-                           &widget_access, &widget_index, &widget_id );
-           urm_status =
-               UrmCWRSetArgResourceRef
-                   (out_az_context,
-                    arglist_index,
-                    widget_access,
-                    URMgWidget,
-                    RGMwrTypeSubTree,
-                    widget_form,
-                    widget_index,
-                    widget_id );
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "setting arg reference" );
-           subtree_control->header.b_tag = sym_k_error_entry;
-
-           arglist_index++;
-           
-           }
-       }
-
-    /*
-    ** Process controls
-    */
-
-    list_entry = widget_entry->az_controls;
-
-    if (list_entry != NULL)
-       {
-       int                         widget_index;
-
-       /*
-       **  The list of controls is in reverse order.  To correct for
-       **  this, controls are placed in the list from bottom to top.
-       **  Thus widget_index represent the last slot in the list used.
-       */
-
-       widget_index = compute_list_size (list_entry, sym_k_control_entry);
-       if (widget_index > 0)
-           {
-           urm_status =
-               UrmCWRInitChildren (out_az_context, widget_index );
-           if ( urm_status != MrmSUCCESS)
-               issue_urm_error( "initializing children" );
-           process_all_controls (list_entry, &widget_index);
-           }
-       }
-
-    /*
-    ** If we have any related arguments, report the number.
-    */
-
-    if (related_arg_count > 0)
-       UrmCWRSetExtraArgs( out_az_context, related_arg_count );
-
-    /*
-    ** Emit the widget record to UID file
-    ** All widgets are indexed as long as they are named.  This is so
-    ** they can be included in module interface structure.
-    */
-
-    if (widget_entry->obj_header.az_name == NULL)
-       {
-       if (widget_entry->resource_id == 0 )
-           {
-           urm_status =
-           UrmIdbGetResourceId
-               ( out_az_idbfile_id, &(widget_entry->resource_id) );
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "obtaining resource id" );
-           }
-
-        urm_status =
-           UrmPutRIDWidget
-           (out_az_idbfile_id,
-            widget_entry->resource_id,
-            out_az_context );
-       }
-    else
-        urm_status =
-           UrmPutIndexedWidget
-           (out_az_idbfile_id,
-            widget_name,
-            out_az_context );
-
-    if( urm_status != MrmSUCCESS)
-       {
-       if (urm_status == MrmEOF)
-           diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                   diag_k_no_column, Uil_current_file );
-       else
-           issue_urm_error( "emitting widget" );
-       }
-
-    if (Uil_cmd_z_command.v_show_machine_code)
-       {
-       save_widget_machine_code (widget_entry, out_az_context);
-       }
-
-    widget_entry->output_state = sym_k_emitted;
-    }
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine extracts the controlled widget (top-level) from
-**     a controls list for subtree resources (those whose subtree must
-**     be instantiated as part of parent creation, but which are
-**     implemented as resources, not children). It returns the count of
-**     the number of such entries found, and a pointer to the last one
-**     encountered.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be (recursively) searched
-**     menu_entry              to return a ponter to the pulldown menu
-**     count                   counts the number of entries found
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void extract_subtree_control (list_entry, menu_entry, count)
-    sym_list_entry_type                *list_entry;
-    sym_control_entry_type     **menu_entry;
-    int                                *count;
-    
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-
-
-/*
- * Process the list elements, recursing on nested lists. Ignore error entries.
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           extract_subtree_control
-               (nested_list_entry->az_list, menu_entry, count);
-           break;
-        case sym_k_control_entry:
-           control_entry = (sym_control_entry_type *) list_member;
-           *count += 1;
-           *menu_entry = control_entry;
-           
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine searches a callbacks list (and any nested lists)
-**     for the create callback.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be (recursively) searched
-**     create_entry            to return a pointer to the create entry
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void extract_create_callback (list_entry, create_entry)
-    sym_list_entry_type                *list_entry;
-    sym_callback_entry_type    **create_entry;
-    
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_callback_entry_type                *callback_entry;
-sym_value_entry_type           *value_entry;
-key_keytable_entry_type                *key_entry;
-
-
-/*
- * Process the list elements, recursing on nested lists. Ignore error entries.
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           extract_create_callback
-               (nested_list_entry->az_list, create_entry);
-           break;
-       case sym_k_callback_entry:
-           callback_entry = (sym_callback_entry_type *) list_member;
-           value_entry = callback_entry->az_call_reason_name;
-           if (value_entry->obj_header.b_flags & sym_m_builtin)
-               {
-               key_entry = 
-                   (key_keytable_entry_type *)value_entry->value.l_integer;
-               if ( strcmp(uil_reason_toolkit_names[key_entry->b_subclass],
-                           MrmNcreateCallback) == 0 )
-                   {
-                   *create_entry = callback_entry;
-                   return;
-                   }
-               }
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine processes all valid callbacks in an callbacks list,
-**     recursing on nested lists. Each valid callback is emitted to
-**     the output.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be (recursively) processed
-**     arglist_index           the modifiable index of arguments in the
-**                             output argslist.
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void process_all_callbacks (list_entry, arglist_index)
-    sym_list_entry_type                *list_entry;
-    int                                *arglist_index;
-    
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_callback_entry_type                *callback_entry;
-
-
-/*
- * Process the list elements, recursing on nested lists. Ignore error entries.
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           process_all_callbacks (nested_list_entry->az_list, arglist_index);
-           break;
-       case sym_k_callback_entry:
-           callback_entry = (sym_callback_entry_type *) list_member;
-           emit_callback (callback_entry, arglist_index, FALSE);
-           break;
-       case sym_k_error_entry:
-           break;
-       default:
-           _assert (FALSE, "unknown entry in callback list");
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine processes all valid arguments in an arguments list,
-**     recursing on nested lists. Each valid argument is emitted to
-**     the output.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be (recursively) processed
-**     arglist_index           the modifiable index of arguments in the
-**                             output argslist.
-**     related_count           the modifiable count of related args
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void process_all_arguments (list_entry, arglist_index, related_count)
-    sym_list_entry_type                *list_entry;
-    int                                *arglist_index;
-    int                                *related_count;
-    
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_argument_entry_type                *argument_entry;
-
-
-/*
- * Process the list elements, recursing on nested lists. Ignore error entries.
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           process_all_arguments
-               (nested_list_entry->az_list, arglist_index, related_count);
-           break;
-       case sym_k_argument_entry:
-           argument_entry = (sym_argument_entry_type *) list_member;
-           emit_argument (argument_entry, *arglist_index, related_count);
-           *arglist_index -= 1;
-           break;
-       case sym_k_error_entry:
-           break;
-       default:
-           _assert (FALSE, "unknown entry in argument list");
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine processes all valid controls in an controls list,
-**     recursing on nested lists. Each valid control is emitted to
-**     the output.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be (recursively) processed
-**     widget_index            the modifiable index of children
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void process_all_controls (list_entry, widget_index)
-    sym_list_entry_type                *list_entry;
-    int                                *widget_index;
-    
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-
-
-/*
- * Process the list elements, recursing on nested lists. Ignore error entries.
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           process_all_controls (nested_list_entry->az_list, widget_index);
-           break;
-       case sym_k_control_entry:
-           control_entry = (sym_control_entry_type *) list_member;
-           *widget_index -= 1;
-           emit_control (control_entry, *widget_index);
-           break;
-       case sym_k_error_entry:
-           break;
-       default:
-           _assert (FALSE, "unknown entry in control list");
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds the URM record for a value.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_entry        symbol table pointer for a value
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      write a value record to UID file
-**
-**--
-**/
-
-void   out_emit_value( value_entry )
-
-sym_value_entry_type   *value_entry;
-
-{
-    MrmCode        access;
-    int                    value_size;
-    MrmType        value_type;
-    int                    value_count;    
-    char           *buffer;
-    status         urm_status;
-    XmString       tmp_str;
-    
-    _assert( value_entry->header.b_tag == sym_k_value_entry,
-            "object to be emitted is not a value" );
-
-    _assert( (value_entry->obj_header.b_flags & (sym_m_exported | sym_m_private)),
-            "value being emitted is not exported or private" );
-
-    access = URMaPublic;
-
-    if (value_entry->obj_header.b_flags & sym_m_private)
-    {
-       if (value_entry->resource_id == 0 )
-       {
-           urm_status =
-           UrmIdbGetResourceId
-               ( out_az_idbfile_id, &(value_entry->resource_id) );
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "obtaining resource id" );
-       }
-
-       access = URMaPrivate;
-    }
-
-    /* 
-    ** Case on the type of literal.
-    */
-
-    value_type = Urm_code_from_uil_type( value_entry->b_type );
-    switch (value_entry->b_type)
-       {
-       case sym_k_bool_value:
-       case sym_k_integer_value:
-           _assert(access == URMaPublic, 
-                   "private value should not get resource ids");
-           value_size = sizeof(long);
-           break;
-
-       case sym_k_horizontal_integer_value:
-       case sym_k_vertical_integer_value:
-           value_size = sizeof(RGMUnitsInteger);
-           break;
-
-       case sym_k_float_value:
-           _assert(access == URMaPublic, 
-                   "private floats should not get resource ids");
-           value_size = sizeof (double);
-           break;
-
-       case sym_k_horizontal_float_value:
-       case sym_k_vertical_float_value:
-           value_size = sizeof(RGMUnitsFloat);
-           break;
-
-       case sym_k_single_float_value:
-           _assert(access == URMaPublic,
-                   "private single floats should not get resource ids");
-           value_size = sizeof(float);
-           break;
-
-       case sym_k_compound_string_value:
-           tmp_str = value_entry->value.xms_value;
-           value_size = 
-             XmCvtXmStringToByteStream(tmp_str, 
-                               (unsigned char **)&(value_entry->value.c_value));
-           XmStringFree(tmp_str);
-           break;
-
-       case sym_k_font_value:
-       case sym_k_fontset_value:
-           {
-           /*
-            * Size is FontItem plus size of charset name string and
-            * size of font name string.
-            */
-            value_size = sizeof(RGMFontItem)
-              + strlen(sem_charset_name(value_entry->b_charset,
-                                        value_entry->az_charset_value)) 
-                + 1 + strlen(value_entry->value.c_value) + 1;
-           break;
-           }
-       case sym_k_color_value:
-           /* null on end of color name accounted for in RGMColorDesc */
-           value_size = sizeof( RGMColorDesc ) + value_entry->w_length;
-           break;
-
-       case sym_k_rgb_value:
-           {
-           sym_value_entry_type    *value_segment;
-
-           value_size = sizeof( RGMIntegerVector );
-           value_count = 0;
-           for (value_segment = value_entry->az_first_table_value;
-                value_segment != NULL;
-                value_segment =  value_segment->az_next_table_value)
-               {
-               value_size += sizeof(long);
-               value_count++;
-               }
-           break;
-           }
-
-       case sym_k_color_table_value:
-           value_size = compute_color_table_size( value_entry );
-           break;
-
-       case sym_k_icon_value:
-           value_size = compute_icon_size( value_entry );
-           break;
-
-       case sym_k_char_8_value:
-       case sym_k_reason_value:
-       case sym_k_argument_value:
-       case sym_k_class_rec_name_value:
-       case sym_k_xbitmapfile_value:
-       case sym_k_keysym_value:
-       case sym_k_localized_string_value:
-           /* BEGIN OSF Fix CR 4859 */
-/* END OSF Fix CR 4859 */
-           value_size = value_entry->w_length + 1;  /* +1 for the null */
-           break;
-
-/* BEGIN OSF Fix CR 4859 */
-       case sym_k_wchar_string_value:
-           value_size = sizeof(RGMWCharEntry) +
-             value_entry->az_first_table_value->w_length;  
-           break;
-/* END OSF Fix CR 4859 */
-       case sym_k_identifier_value:
-           value_size = value_entry->w_length;  /* includes the null */
-           break;
-
-       case sym_k_string_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           
-           /* value_size accounts for header and null at end of the index */
-           value_size = sizeof( RGMTextVector ); 
-           value_count = 0;
-
-           /* 
-            **  Determine the size of the string table by adding together
-            **  the lengths of component strings.  Before the string is a
-            **  table of words.  The first word is the number of component
-            **  string.  Next comes the word offsets of each of the strings
-            **  from the start of the buffer.
-            */
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               value_count++;
-
-               value_size += 
-                 XmCvtXmStringToByteStream(value_segment->value.xms_value, NULL) +
-                   sizeof( RGMTextEntry );
-               }
-           break;
-           }
-
-
-       case sym_k_asciz_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-
-           /* value_size accounts for header and null at end of the index */
-           value_size = sizeof( RGMTextVector ); 
-           value_count = 0;
-
-           /* 
-            **  Determine the size of the string table by adding together
-            **  the lengths of component strings.  Before the string is a
-            **  table of words.  The first word is the number of component
-            **  string.  Next comes the word offsets of each of the strings
-            **  from the start of the buffer.
-            */
-
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               value_count++;
-               value_size +=
-                   value_segment->w_length + sizeof(RGMTextEntry) + 1;
-               }
-           break;
-           }
-
-       case sym_k_integer_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           
-           /*
-            **  The size needed for the vector is the size of the header
-            **  information followed by the the list of integers.  Add in
-            **  the header size here.
-            */
-           value_size = sizeof( RGMIntegerVector ); 
-           value_count = 0;
-
-           /* 
-            **  Determine the size of the integer table by adding together
-            **  the lengths of component integers to the header.
-            */
-
-           for (value_segment = value_entry->az_first_table_value;  
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               value_size += sizeof(long);
-               value_count++;
-               }
-           break;
-           }
-
-
-       case sym_k_font_table_value:
-           {
-           sym_value_entry_type        *font_value;
-
-           /*
-            * Size is size of basic table, plus strings for all FontItems.
-            * We allocate one fewer FontItems than specified in the structure
-            * definition.
-            */
-           /* value_size accounts for header and null at end of the index */
-           value_size = sizeof(RGMFontList) - sizeof(RGMFontItem); 
-           value_count = 0;
-           
-           /* 
-            **  Determine the size of the font list by adding together
-            **  the lengths of component fonts.  Each component is a FontItem
-            **  in the list, plus space for the charset name and font name.
-            */
-           for (font_value = value_entry->az_first_table_value;  
-                font_value != NULL;  
-                font_value = font_value->az_next_table_value)
-               {
-               /* Fix for CR 5266 Part 2a -- Pull az_charset_value off of
-                *                    font_value, rather than value_entry.
-                */
-               value_count += 1;
-               value_size += sizeof(RGMFontItem)
-                   + strlen(sem_charset_name(font_value->b_charset,
-                                             font_value->az_charset_value))
-                     + 1 + strlen(font_value->value.c_value) + 1;
-               }
-           break;
-           }
-
-       case sym_k_trans_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           
-           value_size = 0;
-
-           /*
-            **  Determine the length of the translation table by adding
-            **  together the length of the component strings.
-            */
-           for (value_segment = value_entry->az_first_table_value;  
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               value_size += value_segment->w_length + 1;
-           break;
-           }
-       
-       default:
-           _assert( FALSE, "unexpected value type" );
-       }
-
-    /*
-    ** Check that the context is large enough to hold the value
-    */
-
-    if ((int)(UrmRCSize( out_az_context ) ) < value_size)
-       {
-       if( MrmSUCCESS != 
-          UrmResizeResourceContext( out_az_context, value_size ))
-           issue_urm_error( "allocating context" );
-       urm_status = UrmResizeResourceContext( out_az_context, value_size );
-       if ( urm_status != MrmSUCCESS)
-           {
-           if (urm_status == MrmTOO_MANY)
-               {
-               diag_issue_diagnostic
-                   ( d_value_too_large,
-                    (src_source_record_type *)value_entry->header.az_src_rec,
-                    diag_k_no_column,
-                    value_entry->obj_header.az_name->c_text );
-               }
-           else
-               issue_urm_error( "allocating context" );
-           }
-       }
-    
-    
-    /*
-    ** Move the literal to the context.
-    */
-
-    UrmRCSetGroup( out_az_context, URMgLiteral );
-    UrmRCSetType( out_az_context, value_type );
-    UrmRCSetAccess( out_az_context, access );
-    UrmRCSetLock( out_az_context, FALSE );
-    UrmRCSetSize( out_az_context, value_size );
-
-    buffer = (char *) UrmRCBuffer( out_az_context );
-
-    bzero( buffer, value_size );
-
-    switch (value_entry->b_type)
-       {
-       case sym_k_bool_value:
-       case sym_k_integer_value:
-       case sym_k_float_value:
-       case sym_k_reason_value:
-       case sym_k_argument_value:
-           _move( buffer, &value_entry->value.l_integer, value_size );
-           break;
-
-       case sym_k_single_float_value:
-           _move( buffer, &value_entry->value.single_float, value_size);
-           break;
-
-       case sym_k_char_8_value:
-       case sym_k_localized_string_value:
-       case sym_k_identifier_value:
-       case sym_k_class_rec_name_value:
-       case sym_k_xbitmapfile_value:
-       case sym_k_keysym_value:
-       case sym_k_compound_string_value:
-           _move( buffer, value_entry->value.c_value, value_size );
-           break;
-
-/* BEGIN OSF Fix CR 4859 */
-        case sym_k_wchar_string_value:
-          {
-            RGMWCharEntryPtr  wcharentry;
-            
-            wcharentry = (RGMWCharEntryPtr)buffer;
-            
-            wcharentry->wchar_item.count = value_size;
-            
-            _move(wcharentry->wchar_item.bytes,
-                  value_entry->az_first_table_value->value.c_value, value_size);
-            break;
-          }
-/* END OSF Fix CR 4859 */
-          
-       case sym_k_font_value:
-       case sym_k_fontset_value:
-           {
-           RGMFontItemPtr      fontitem;
-           MrmOffset           textoffs;
-           char                *textptr;
-           char                *charset_name;
-           int                 text_len;
-           
-           fontitem = (RGMFontItemPtr) buffer;
-           textoffs = (MrmOffset) sizeof(RGMFontItem);
-           textptr = (char *)fontitem+textoffs;
-           
-           charset_name = sem_charset_name (value_entry->b_charset, 
-                                            value_entry->az_charset_value);
-           text_len = strlen(charset_name) + 1;
-
-           fontitem->type = Urm_code_from_uil_type(value_entry->b_type);
-           fontitem->cset.cs_offs = textoffs;
-           strcpy (textptr, charset_name);
-           textoffs += text_len;
-           textptr += text_len;
-           fontitem->font.font_offs = textoffs;
-           strcpy (textptr, value_entry->value.c_value);
-           
-           break;
-           }
-
-       case sym_k_color_value:
-           {
-           RGMColorDesc        *color_buffer;
-           
-           color_buffer = (RGMColorDesc *)buffer;
-           
-           switch (value_entry->b_arg_type)
-               {
-               case sym_k_unspecified_color:
-                   color_buffer->mono_state = URMColorMonochromeUnspecified;
-                   break;
-               case sym_k_foreground_color:
-                   color_buffer->mono_state = URMColorMonochromeForeground;
-                   break;
-               case sym_k_background_color:
-                   color_buffer->mono_state = URMColorMonochromeBackground;
-                   break;
-               }
-
-           color_buffer->desc_type = URMColorDescTypeName;
-
-           _move( color_buffer->desc.name, 
-                 value_entry->value.c_value, 
-                 value_entry->w_length + 1 );
-           
-           break;
-           }
-
-       case sym_k_rgb_value:
-           {
-           sym_value_entry_type        *value_segment;
-           RGMColorDesc                *color_buffer;
-           int                         color_vector[3];
-           int                         index;
-
-           color_buffer = (RGMColorDesc *)buffer;
-           index = value_count;
-           
-           index--;
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;
-                value_segment = value_segment->az_next_table_value)
-               {
-               color_vector[index] = (long) value_segment->value.l_integer;
-               index--;
-               }
-           
-           color_buffer->desc_type = URMColorDescTypeRGB;
-           color_buffer->desc.rgb.red = color_vector[0];
-           color_buffer->desc.rgb.green = color_vector[1];
-           color_buffer->desc.rgb.blue = color_vector[2];
-           color_buffer->mono_state = URMColorMonochromeUnspecified;
-
-           break;
-           }
-
-
-       case sym_k_color_table_value:
-           create_color_table( value_entry, buffer );
-           break;
-
-       case sym_k_icon_value:
-           create_icon( value_entry, buffer );
-           break;
-
-       case sym_k_string_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           int                         text_offset;
-           int                         index;
-           int                         segment_size;
-           RGMTextVector               *string_vector;
-           
-           /*
-            **  Value entries are reversed.  Need to fill the buffer
-            **  from the end to front.
-            */
-           text_offset = value_size;
-           string_vector = (RGMTextVector *)buffer;
-           string_vector->validation = URMTextVectorValid;
-           string_vector->count = value_count;
-           index = value_count;
-           string_vector->item[index].pointer = NULL;
-           
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-                 tmp_str = value_segment->value.xms_value;
-                 segment_size = 
-                   XmCvtXmStringToByteStream(tmp_str, 
-                                     (unsigned char **)&(value_segment->value.c_value));
-                 XmStringFree(tmp_str);
-                 text_offset -= segment_size;
-                 _move(&(buffer[text_offset]), 
-                       value_segment->value.c_value, segment_size);
-                 index--;
-                 string_vector->item[index].text_item.offset = text_offset;
-                 string_vector->item[index].text_item.rep_type =
-                   MrmRtypeCString;
-               }
-           break;
-           }
-
-       case sym_k_asciz_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           int                         text_offset;
-           int                         index;
-           int                         segment_size;
-           RGMTextVector               *string_vector;
-           
-           /*
-            **  Value entries are reversed.  Need to fill the buffer
-            **  from the end to front.
-            */
-           text_offset = value_size;
-           string_vector = (RGMTextVector *)buffer;
-           string_vector->validation = URMTextVectorValid;
-           string_vector->count = value_count;
-           index = value_count;
-           string_vector->item[index].pointer = NULL;
-
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               segment_size = value_segment->w_length + 1;
-               buffer[text_offset-1] = '\0';
-               text_offset -= segment_size;
-               _move( &(buffer[text_offset]), 
-                     value_segment->value.c_value, segment_size - 1);
-               index--;
-               string_vector->item[index].text_item.offset = text_offset;
-               string_vector->item[index].text_item.rep_type = MrmRtypeChar8;
-               }
-           break;
-           }
-
-       case sym_k_integer_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           int                         index;
-           RGMIntegerVector            *integer_vector;
-
-           /*
-            **  Fill in the header information
-            */
-           integer_vector = (RGMIntegerVector *)buffer;
-           integer_vector->validation = URMIntegerVectorValid;
-           integer_vector->count = value_count;
-
-           /*
-            **  Value entries are reversed.  Need to fill the buffer
-            **  from the end to front.
-            */
-           index = value_count - 1;
-           for (value_segment=value_entry->az_first_table_value;
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               integer_vector->item [index] =
-                   (long) value_segment->value.l_integer;
-               index--;
-               }
-           break;
-           }
-
-       case sym_k_font_table_value:
-           {
-           RGMFontListPtr              fontlist;
-           RGMFontItemPtr              fontitem;
-           sym_value_entry_type        *font_value;
-           int                         textoffs;
-           char                        *textptr;
-           int                         index;
-           char                        *charset_name;
-           int                         text_len;
-           
-           /*
-            **  Font items are in correct order.
-            */
-           fontlist = (RGMFontList *)buffer;
-           fontlist->validation = URMFontListValid;
-           fontlist->count = value_count;
-
-           /*
-            **  textoffs need to be the offset just beyond the last
-            **  FontItem in the list. One FontItem is already allocated,
-            **  so account for it in sizing.
-            */
-           textoffs = sizeof (RGMFontList) +
-               sizeof(RGMFontItem)*(value_count-1);
-           textptr = (char *)fontlist+textoffs;
-           
-           for (index = 0,
-                font_value = value_entry->az_first_table_value;  
-                font_value != NULL;  
-                index++, font_value = font_value->az_next_table_value)
-               {
-               fontitem = &fontlist->item[index];
-                /*
-                 * Fix for CR 5266 Part 2b -- Pull az_charset_value off of
-                 *                    font_value, rather than value_entry.
-                 */
-               charset_name = 
-                 sem_charset_name (font_value->b_charset, 
-                                   font_value->az_charset_value);
-
-               fontitem->type = Urm_code_from_uil_type(font_value->b_type);
-               fontitem->cset.cs_offs = textoffs;
-               strcpy (textptr, charset_name);
-               text_len = strlen(charset_name) + 1;
-               textoffs += text_len;
-               textptr += text_len;
-               fontitem->font.font_offs = textoffs;
-               strcpy (textptr, font_value->value.c_value);
-               text_len = strlen(font_value->value.c_value) + 1;
-               textoffs += text_len;
-               textptr += text_len;
-               }
-           break;
-           }
-
-       case sym_k_trans_table_value:
-           {
-           sym_value_entry_type        *value_segment;
-           int                         offset;
-           int                         segment_size;
-           
-           /*
-            **  Value entries are reversed.  Need to fill the buffer
-            **  from the end to front.
-            */
-
-           offset = value_size;
-           for (value_segment = value_entry->az_first_table_value;  
-                value_segment != NULL;  
-                value_segment = value_segment->az_next_table_value)
-               {
-               buffer[offset - 1] = '\n';
-               segment_size = value_segment->w_length + 1;
-               offset -= segment_size;
-               _move( &(buffer[offset]), 
-                     value_segment->value.c_value, segment_size-1 );
-               }
-           buffer[value_size - 1] = 0;
-           break;
-           }
-
-       case sym_k_horizontal_integer_value:
-       case sym_k_vertical_integer_value:
-           {
-           RGMUnitsIntegerPtr uiptr;
-
-           uiptr = (RGMUnitsIntegerPtr) buffer;
-           uiptr->value = value_entry->value.l_integer;
-           uiptr->units = value_entry->b_arg_type;
-           break;
-           }
-
-       case sym_k_horizontal_float_value:
-       case sym_k_vertical_float_value:
-           {
-           RGMUnitsFloatPtr ufptr;
-
-           ufptr = (RGMUnitsFloatPtr) buffer;
-           *((double *)(&ufptr->value[0])) = value_entry->value.d_real;
-           ufptr->units = value_entry->b_arg_type;
-           break;
-           }
-       }
-
-    /*
-    ** Output the literal
-    */
-    if (access == URMaPublic)
-        urm_status = UrmPutIndexedLiteral
-           (out_az_idbfile_id,
-            value_entry->obj_header.az_name->c_text,
-            out_az_context);
-    else
-        urm_status = UrmPutRIDLiteral
-           (out_az_idbfile_id, value_entry->resource_id, out_az_context);
-
-    if( urm_status != MrmSUCCESS)
-       {
-       if (urm_status == MrmEOF)
-           diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                   diag_k_no_column, Uil_current_file );
-       else
-           issue_urm_error( "emitting literal" );
-       }
-    
-    if (Uil_cmd_z_command.v_show_machine_code)
-       save_value_machine_code (value_entry, out_az_context);
-    
-    value_entry->output_state = sym_k_emitted;
-    
-    }
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds the callback argument for a widget record
-**
-**  FORMAL PARAMETERS:
-**
-**      callback_entry     symbol table pointer for the callback
-**     arglist_index       index in arglist to place callback
-**                         (this is an in/out argument)
-**     emit_create         true: emit a create reason
-**                         false: skip create reason
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      callback data is added to out_az_context
-**
-**--
-**/
-
-void   emit_callback
-
-       (sym_callback_entry_type *callback_entry,
-       int *arglist_index,
-       boolean emit_create)
-
-{
-sym_value_entry_type           *reason_entry;
-sym_proc_ref_entry_type                *proc_ref_entry_next;
-int                            proc_ref_index;
-int                            proc_count;
-boolean                                qcreate = FALSE;
-MrmOffset                      callback_offset;
-status                         urm_status;
-
-/*
- * Count number of entries in callback list
- */
-if ( callback_entry->az_call_proc_ref != 0 )
-    proc_count = 1;
-else
-    proc_count = count_proc (callback_entry->az_call_proc_ref_list, 0);
-
-/*
-** Reasons can take several forms:
-**    1) create reason: value is builtin - keyword Urm value is "created"
-**     this need special handling
-**    2) builtin reasons: value is builtin - keyword Urm value as URM
-**     compressed equivalent argument
-**    3) non-builtin private: value is not builtin but private -
-**     use an uncompressed argument tag
-**    4) non-builtin public: value is not builtin and public -
-**     not supported yet
-*/
-
-reason_entry = callback_entry->az_call_reason_name;
-if ( reason_entry->obj_header.b_flags & sym_m_builtin )
-    {
-    key_keytable_entry_type *key_entry;
-    
-    key_entry = (key_keytable_entry_type *) reason_entry->value.l_integer;
-    qcreate =
-       (strcmp(uil_reason_toolkit_names[key_entry->b_subclass],
-               MrmNcreateCallback) == 0);
-    if ( qcreate )
-       {
-       /*
-        **     case 1: create reason - return if we are not to emit
-        **     otherwise use special routine to describe
-        */
-       if ( !emit_create ) return;
-       urm_status = UrmCWRSetCreationCallback
-           (out_az_context,
-            proc_count,
-            &callback_offset);
-       if( urm_status != MrmSUCCESS)
-           {
-           if (urm_status == MrmEOF)
-               diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                       diag_k_no_column, Uil_current_file );
-           else
-               issue_urm_error ("emitting creation callback");
-           }
-
-       }
-    else
-       {
-       /*
-        **     case 2: builtin case - use a compressed argument
-        */
-       urm_status = UrmCWRSetCompressedArgTag
-           (out_az_context,
-            *arglist_index,
-            uil_reas_compr[key_entry->b_subclass],
-            0);        
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "setting compressed arg" );
-       }
-    }
-else
-    {
-    /*
-     **  Non private reasons and arguments are not supported
-     */
-    if ( reason_entry->obj_header.b_flags & (sym_m_imported|sym_m_exported) )
-       {
-       diag_issue_diagnostic
-           (d_not_impl, diag_k_no_source, diag_k_no_column,
-            "EXPORTED and IMPORTED arguments and reasons" );
-       return;
-       }
-    
-    /*
-     **  case 3: private, non-builtin case - use an uncompressed argument
-     */
-    urm_status = UrmCWRSetUncompressedArgTag
-       (out_az_context,
-        *arglist_index,
-        reason_entry->value.c_value);
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "setting uncompressed arg" );
-    }
-
-/*
- * Create the callback value (this is not done for the create callback)
- */
-if ( ! qcreate )
-    {
-    urm_status = UrmCWRSetArgCallback
-       (out_az_context, *arglist_index, proc_count, &callback_offset);
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error ("setting callback arg");
-    }
-
-/*
- * Create the callback procedures
- */
-if (callback_entry->az_call_proc_ref != 0)
-    {
-    proc_ref_index = 0;
-    proc_ref_entry_next = callback_entry->az_call_proc_ref;
-    }
-else
-    {
-    proc_ref_index = proc_count - 1;
-    proc_ref_entry_next = 
-       (sym_proc_ref_entry_type *) callback_entry->
-           az_call_proc_ref_list->obj_header.az_next;
-    }
-emit_callback_procedures
-    (proc_ref_entry_next, &proc_ref_index, callback_offset);
-*arglist_index = *arglist_index - 1;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function counts the number of procedures in a procedure list
-**     including nested procedure lists.
-**
-**  FORMAL PARAMETERS:
-**
-**      proc_list          list of procedures (and nested list entries)
-**     count               count of procedures encountered so far
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      count of procedures in procedure list
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-int    count_proc(proc_list, count)
-sym_list_entry_type    *proc_list;
-int                    count;
-
-{
-    sym_obj_entry_type         *proc_list_next;
-
-    for (proc_list_next = (sym_obj_entry_type *)proc_list->obj_header.az_next;
-                           proc_list_next != 0;
-                           proc_list_next = (sym_obj_entry_type *)
-                               proc_list_next->obj_header.az_next)
-       {
-       switch (proc_list_next->header.b_tag)
-           {
-           case sym_k_nested_list_entry:
-               count = count_proc(((sym_nested_list_entry_type *)
-                       proc_list_next)->
-                       az_list, 
-                       count);
-               break;
-           case sym_k_proc_ref_entry:
-               count++;
-               break;
-           default:
-               _assert(FALSE, "unknown entry in procedures list");
-           }
-       }
-       return (count);
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function output a procedure list referenced by a callback entry
-**
-**  FORMAL PARAMETERS:
-**
-**     proc_ref_entry_next next procedure reference entry
-**     proc_ref_index      index of procedure in procedure list (for Mrm)
-**     callback_offset     offset of callback (for Mrm)
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-/*
- * Fix for CR 4772 - Change the proc_ref_index entry from an integer to an 
- *                   integer pointer to allow for proper construction of 
- *                   internal callback arrays.
- */
-void   emit_callback_procedures
-
-       (sym_proc_ref_entry_type *proc_ref_entry_next,
-       int *proc_ref_index,
-       MrmOffset callback_offset)
-
-{
-    sym_proc_def_entry_type *proc_def_entry;
-    sym_value_entry_type    *proc_arg_entry;
-    MrmCode                arg_access;
-    MrmCode                arg_form;
-    char                   *arg_index;
-    MrmResource_id         arg_id;
-    MrmCode                arg_type, arg_group;
-    long                   arg_value;
-    sym_nested_list_entry_type *nested_proc_list_entry;
-    sym_list_entry_type            *proc_list_entry;
-    status                 urm_status;
-
-    for (
-        ;
-        proc_ref_entry_next != 0;
-        proc_ref_entry_next = 
-            (sym_proc_ref_entry_type *) proc_ref_entry_next->
-            obj_header.az_next)
-
-        {
-       switch (proc_ref_entry_next->header.b_tag)
-           {
-           case sym_k_nested_list_entry:
-               nested_proc_list_entry = (sym_nested_list_entry_type *)
-                   proc_ref_entry_next;
-               proc_list_entry = nested_proc_list_entry->az_list;
-               emit_callback_procedures (( sym_proc_ref_entry_type *)proc_list_entry->obj_header.az_next, 
-                   proc_ref_index,             
-                   callback_offset);
-               break;
-           case sym_k_proc_ref_entry:
-                proc_def_entry = proc_ref_entry_next->az_proc_def;
-                proc_arg_entry = proc_ref_entry_next->az_arg_value;
-
-                if (proc_arg_entry == NULL)
-                    {
-                       arg_type = MrmRtypeNull;
-                       arg_value = 0L;
-                       arg_form = URMrImmediate;
-                    }
-                else
-                    {
-                       arg_form = ref_value
-                                   ( proc_arg_entry, 
-                                     &arg_type, &arg_value, &arg_access, &arg_index,
-                                     &arg_id, &arg_group );
-                    }
-    
-                if (arg_form == URMrImmediate)
-                    urm_status =
-               UrmCWRSetCallbackItem
-                   ( out_az_context, callback_offset, *proc_ref_index,
-                     proc_def_entry->obj_header.az_name->c_text,
-                     arg_type,
-                     arg_value );
-                else
-                    urm_status =
-               UrmCWRSetCallbackItemRes
-                   ( out_az_context, callback_offset, *proc_ref_index,
-                     proc_def_entry->obj_header.az_name->c_text,
-                     arg_group,
-                     arg_access,
-                     arg_type,
-                     arg_form,
-                     arg_index,
-                     arg_id );
-    
-                if( urm_status != MrmSUCCESS)
-                   issue_urm_error( "setting callback proc" );
-               *proc_ref_index = *proc_ref_index - 1;
-                break;
-
-           case sym_k_error_entry:
-               break;
-           default:
-               _assert (FALSE, "unknown entry in procedures list");
-               break;
-           }
-        }
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds an argument for a widget record
-**
-**  FORMAL PARAMETERS:
-**
-**      argument_entry     symbol table pointer for the argument
-**     arglist_index       index in arglist to place argument
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      argument data is added to out_az_context
-**
-**--
-**/
-
-void   emit_argument( argument_entry, arglist_index, related_arg_count )
-
-sym_argument_entry_type        *argument_entry;
-int                    arglist_index;
-int                    *related_arg_count;
-
-{
-sym_value_entry_type           *arg_name_entry;
-sym_value_entry_type           *arg_value_entry;
-MrmCode                                arg_access;
-MrmCode                                arg_form;
-char                           *arg_index;
-MrmResource_id                 arg_id;
-MrmCode                                arg_type, arg_group;
-long                           arg_value;
-unsigned char                  expected_type;
-status                         urm_status;
-
-
-/*
- *     For an argument, we must:
- *         1) create the argument 
- *         2) create the argument value
- */
-
-arg_name_entry = argument_entry->az_arg_name;
-if (arg_name_entry->obj_header.b_flags & sym_m_builtin)
-    {
-    key_keytable_entry_type *key_entry;
-    
-    key_entry = (key_keytable_entry_type *)arg_name_entry->value.l_integer;
-    
-    urm_status = UrmCWRSetCompressedArgTag
-       (out_az_context,
-        arglist_index,
-        uil_arg_compr[key_entry->b_subclass],
-        uil_arg_compr[related_argument_table[key_entry->b_subclass]]); 
-    if ( related_argument_table[key_entry->b_subclass] != 0 )
-       *related_arg_count += 1;
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "setting compressed arg" );
-    }
-else
-    {
-    /*
-     **  Non private reasons and arguments are not supported
-     */
-    
-    if ( arg_name_entry->obj_header.b_flags & (sym_m_imported|sym_m_exported) )
-       {
-       diag_issue_diagnostic
-           (d_not_impl, diag_k_no_source, diag_k_no_column,
-            "EXPORTED and IMPORTED arguments and reasons" );
-           return;
-       }
-
-    /*
-     **  case 3: private, non-builtin case - use an uncompressed argument
-     */
-       urm_status = UrmCWRSetUncompressedArgTag
-           (out_az_context,
-            arglist_index,
-            arg_name_entry->value.c_value);
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "setting uncompressed arg" );
-    }
-
-/*
- * Acquire the argument parameters. If it is an immediate value, set it.
- * Else set it up as a literal or widget reference. For literal references,
- * the expected type must be set up in order to enable coercion in Mrm.
- */
-arg_value_entry = argument_entry->az_arg_value;
-arg_form = ref_value
-    (arg_value_entry,
-     &arg_type,
-     &arg_value,
-     &arg_access,
-     &arg_index,
-     &arg_id,
-     &arg_group);
-if (arg_form == URMrImmediate)
-    urm_status = UrmCWRSetArgValue
-       (out_az_context,
-        arglist_index,
-        arg_type,
-        arg_value );
-else
-    {
-    switch ( arg_group )
-       {
-       case URMgLiteral:
-           if ( argument_entry->az_arg_name->obj_header.b_flags &
-               sym_m_builtin )
-               {
-               key_keytable_entry_type         * keytable_entry;
-           
-               keytable_entry = (key_keytable_entry_type *)
-                   argument_entry->az_arg_name->value.l_integer;
-               _assert (keytable_entry->b_class == tkn_k_class_argument,
-                        "name is not an argument");
-               expected_type =
-                   argument_type_table[keytable_entry->b_subclass];
-               }
-           else
-               expected_type = argument_entry->az_arg_name->b_arg_type;
-           urm_status = UrmCWRSetArgResourceRef
-               (out_az_context,
-                arglist_index,
-                arg_access,
-                arg_group,
-                Urm_code_from_uil_type(expected_type),
-                arg_form,
-                arg_index,
-                arg_id );
-           break;
-       case URMgWidget:
-           urm_status = UrmCWRSetArgResourceRef
-               (out_az_context,
-                arglist_index,
-                arg_access,
-                arg_group,
-                RGMwrTypeReference,
-                arg_form,
-                arg_index,
-                arg_id );
-           break;
-       }
-    }
-    
-if( urm_status != MrmSUCCESS)
-    issue_urm_error ("setting arg value");
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a control for a widget record
-**
-**  FORMAL PARAMETERS:
-**
-**      control_entry      symbol table pointer for the control
-**     control_offset      offset of object in the control list
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      control data is added to out_az_context
-**
-**--
-**/
-
-void   emit_control( control_entry, control_offset )
-
-sym_control_entry_type *control_entry;
-int                    control_offset;
-
-{
-    MrmCode                access;
-    MrmCode                form;
-    char                   *index;
-    MrmResource_id         id;
-    status                 urm_status;
-    sym_widget_entry_type   *widget_entry;
-    Boolean                managed;
-
-    /*
-    **  1) Process the object reference
-    **  2) set object as a child of current context
-    */
-
-    form = ref_control( control_entry, &access, &index, &id );
-
-    /* Truly gross hack.  Fix in WML before beta */
-#ifndef sym_k_XmRenderTable_object
-#define sym_k_XmRenderTable_object 0
-#endif
-#ifndef sym_k_XmRendition_object
-#define sym_k_XmRendition_object 0
-#endif
-#ifndef sym_k_XmTabList_object
-#define sym_k_XmTabList_object 0
-#endif
-    widget_entry = control_entry->az_con_obj;
-
-    while (widget_entry->obj_header.az_reference != NULL)
-      widget_entry = 
-       (sym_widget_entry_type *)widget_entry->obj_header.az_reference;
-
-    managed = ((widget_entry->header.b_type != sym_k_XmRenderTable_object) &&
-              (widget_entry->header.b_type != sym_k_XmRendition_object) &&
-              (widget_entry->header.b_type != sym_k_XmTabList_object) &&
-              ((control_entry->obj_header.b_flags & sym_m_managed) != 0));
-    
-    /*
-    **  Add the object as a child.
-    */
-
-    urm_status =
-    UrmCWRSetChild
-       ( out_az_context,
-         control_offset,
-         managed,
-         access,
-         form,
-         index,
-         id );
-    
-    if( urm_status != MrmSUCCESS)
-       issue_urm_error( "setting child" );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function process a reference to a value.
-**
-**  FORMAL PARAMETERS:
-**
-**      arg_value_entry            (in)  value entry to process
-**     arg_type            (out) URM argument type
-**     arg_value           (out) argument value if immediate
-**     arg_access          (out) private or public
-**     arg_index           (out) index if value is an index
-**     arg_id              (out) resource id if value is a resource id
-**     arg_group           (out) URM group (widget or literal)
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      URMrIndex, URMrRID, URMrImmediate (class of value)
-**     defines which of the output parameters have meaning
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-MrmCode        ref_value(value_entry, 
-                 arg_type, arg_value, arg_access, arg_index, arg_id, arg_group)
-
-sym_value_entry_type   *value_entry;
-MrmCode                        *arg_type;
-long                   *arg_value;
-MrmCode                        *arg_access;
-char                   **arg_index;
-MrmResource_id         *arg_id;
-MrmCode                        *arg_group;
-
-{
-
-    status     urm_status;
-
-    *arg_value = 0L;
-    *arg_index = NULL;
-    *arg_id = 0;
-    *arg_group = URMgLiteral;
-
-    /*  This value may actually be a widget reference, so check for this
-        case first.    */
-
-    if (value_entry->header.b_tag == sym_k_widget_entry)
-       {
-       
-       /*  Set up a dummy control entry, and process the widget reference.  */
-
-       sym_control_entry_type  control_entry;
-       sym_widget_entry_type   * widget_entry;
-       
-       widget_entry = (sym_widget_entry_type *)value_entry;
-       control_entry.header.b_tag = sym_k_control_entry;
-       control_entry.az_con_obj = widget_entry;
-       
-       *arg_group = URMgWidget;
-       *arg_type = RGMwrTypeReference;
-       
-       return ref_control (&control_entry, arg_access, arg_index, arg_id);
-       }
-
-    *arg_type = Urm_code_from_uil_type( value_entry->b_type );
-
-    if (value_entry->obj_header.b_flags & sym_m_private)
-       {
-       *arg_access = URMaPrivate;
-
-       switch (value_entry->b_type)
-           {
-           case sym_k_bool_value:
-           case sym_k_integer_value:
-               *arg_value = value_entry->value.l_integer;
-               return URMrImmediate;
-
-           case sym_k_float_value:
-               *arg_value = (long)(&(value_entry->value.d_real));
-               return URMrImmediate;
-
-           case sym_k_single_float_value:
-               *arg_value = (long)(value_entry->value.single_float);
-               return URMrImmediate;
-
-           case sym_k_char_8_value:
-           case sym_k_font_value:
-           case sym_k_fontset_value:
-           case sym_k_color_value:
-           case sym_k_reason_value:
-           case sym_k_argument_value:
-           case sym_k_trans_table_value:
-           case sym_k_asciz_table_value:
-           case sym_k_integer_table_value:
-           case sym_k_string_table_value:
-           case sym_k_color_table_value:
-           case sym_k_icon_value:
-           case sym_k_font_table_value:
-           case sym_k_compound_string_value:
-           case sym_k_identifier_value:
-           case sym_k_class_rec_name_value:
-           case sym_k_xbitmapfile_value:
-           case sym_k_keysym_value:
-           case sym_k_rgb_value:
-           case sym_k_wchar_string_value:
-           case sym_k_localized_string_value:
-           case sym_k_horizontal_integer_value:
-           case sym_k_vertical_integer_value:
-           case sym_k_horizontal_float_value:
-           case sym_k_vertical_float_value:
-               if (value_entry->resource_id == 0 )
-                   {
-                   urm_status =
-                       UrmIdbGetResourceId
-                           (out_az_idbfile_id, &(value_entry->resource_id) );
-                   if ( urm_status != MrmSUCCESS )
-                       issue_urm_error( "obtaining resource id" );
-                   }
-
-               if (value_entry->output_state == sym_k_not_processed)
-                   {
-                   value_entry->output_state = sym_k_queued;
-                   push((sym_entry_type *) value_entry );
-                   }
-               
-               *arg_id = value_entry->resource_id;
-               return URMrRID;
-               
-           default:
-               _assert( FALSE, "unexpected value type" );
-               return URMrImmediate;
-           }
-       
-       }
-
-    /*
-    ** Only Imported and Exported Values reach this point
-    */
-
-    *arg_access = URMaPublic;
-    *arg_index = (char *)(value_entry->obj_header.az_name->c_text);
-
-    if ((value_entry->obj_header.b_flags & sym_m_exported) &&
-       (value_entry->output_state == sym_k_not_processed))
-       {
-       value_entry->output_state = sym_k_queued;
-       push((sym_entry_type *) value_entry );
-       }
-
-    return URMrIndex;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function process a reference to a control (widget or gadget)
-**
-**  FORMAL PARAMETERS:
-**
-**      control_entry      (in)  control entry for widget reference
-**     access              (out) private or public
-**     index               (out) index if widget is an index
-**     id                  (out) resource id if widget is a resource id
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      URMrIndex, URMrRID (class of control)
-**     defines which of the output parameters have meaning
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-MrmCode        ref_control(control_entry, access, index, id)
-
-sym_control_entry_type *control_entry;
-MrmCode                        *access;
-char                   **index;
-MrmResource_id         *id;
-
-{
-
-    sym_widget_entry_type   *widget_entry;
-    MrmCode                form;
-    status                 urm_status;
-
-    _assert( control_entry->header.b_tag == sym_k_control_entry,
-            "expecting a control entry" );
-
-    /*
-    ** For a control, we must:
-    **     1) determine if this is a definition or a reference
-    **     2) queue the widget to be created if it isn't yet
-    **     3) get a resource id for the control if unnamed
-    */
-
-    widget_entry = control_entry->az_con_obj;
-
-    /*
-    ** If the reference field is set, this is a reference to a control
-    ** defined elsewhere.  Otherwise it is an inline definition.
-    */
-
-    while (widget_entry->obj_header.az_reference != NULL)
-       widget_entry = 
-           (sym_widget_entry_type *)widget_entry->obj_header.az_reference;
-
-    /*
-    ** Queue the control to be processed if it has not already been
-    ** emitted or queued for processing.
-    */
-
-    if ((widget_entry->obj_header.b_flags & (sym_m_exported | sym_m_private))
-       && 
-       (widget_entry->output_state == sym_k_not_processed)
-       )
-    {
-       widget_entry->output_state = sym_k_queued;
-
-       push((sym_entry_type *) widget_entry );
-    }
-
-    if (widget_entry->obj_header.az_name == NULL)
-    {
-       /*
-       **  Need a resource id.
-       */
-
-       if (widget_entry->resource_id == 0 )
-       {
-           urm_status =
-           UrmIdbGetResourceId
-               ( out_az_idbfile_id, &(widget_entry->resource_id) );
-           if( urm_status != MrmSUCCESS)
-               issue_urm_error( "obtaining resource id" );
-       }
-
-        form = URMrRID;
-       *id = widget_entry->resource_id;
-       *index = NULL;
-    }
-    else
-    {
-       /*
-       **  Need an index
-       */
-
-        form = URMrIndex;
-       *index = widget_entry->obj_header.az_name->c_text;
-       *id = 0 ;
-    }
-
-    *access = URMaPublic;
-
-    if (widget_entry->obj_header.b_flags & sym_m_private)
-        *access = URMaPrivate;
-
-    return form;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function issue a diagnostic for an error detected by URM.
-**
-**  FORMAL PARAMETERS:
-**
-**      problem                string indicating what p2_output was trying to do
-**
-**  IMPLICIT INPUTS:
-**
-**      out_az_context context in error (hold further info about error)
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      diagnostic is issued - compilation stops
-**
-**--
-**/
-
-void   issue_urm_error( problem )
-
-char   *problem;
-
-{
-    char    buffer[132];
-
-    sprintf(buffer, "while %s encountered %s", 
-           problem, 
-           Urm__UT_LatestErrorMessage());
-
-    diag_issue_internal_error( buffer );
-}
-\f
-/*
- *++
- *
- *  PROCEDURE DESCRIPTION:
- *
- *     This procedure maps uil literal type to Urm equivalent types
- *
- *  FORMAL PARAMETERS:
- *
- *     uil_type         uil types sym_k_..._value
- *
- *  IMPLICIT INPUTS:
- *
- *      none
- *
- *  IMPLICIT OUTPUTS:
- *
- *      none
- *
- *  FUNCTION VALUE:
- *
- *     corresponding RGMrType... code
- *
- *  SIDE EFFECTS:
- *
- *      none
- *
- *--
- */
-
-MrmCode Urm_code_from_uil_type( uil_type )
-
-int    uil_type;
-
-{
-
-    switch (uil_type)
-    {
-    case sym_k_integer_value:              return MrmRtypeInteger;
-    case sym_k_horizontal_integer_value:    return MrmRtypeHorizontalInteger;
-    case sym_k_vertical_integer_value:     return MrmRtypeVerticalInteger;
-    case sym_k_bool_value:                 return MrmRtypeBoolean;
-    case sym_k_char_8_value:               return MrmRtypeChar8;
-    case sym_k_localized_string_value:     return MrmRtypeChar8;
-    case sym_k_argument_value:             return MrmRtypeChar8;
-    case sym_k_reason_value:               return MrmRtypeChar8;
-    case sym_k_trans_table_value:          return MrmRtypeTransTable;
-    case sym_k_asciz_table_value:          return MrmRtypeChar8Vector;
-    case sym_k_string_table_value:         return MrmRtypeCStringVector;
-    case sym_k_compound_string_value:      return MrmRtypeCString;
-    case sym_k_wchar_string_value:         return MrmRtypeWideCharacter; 
-    case sym_k_integer_table_value:        return MrmRtypeIntegerVector;
-    case sym_k_color_value:                return MrmRtypeColor;
-    case sym_k_color_table_value:          return MrmRtypeColorTable;
-    case sym_k_icon_value:                 return MrmRtypeIconImage;
-    case sym_k_float_value:                return MrmRtypeFloat;
-    case sym_k_horizontal_float_value:     return MrmRtypeHorizontalFloat;
-    case sym_k_vertical_float_value:       return MrmRtypeVerticalFloat;
-    case sym_k_font_value:                 return MrmRtypeFont;
-    case sym_k_fontset_value:              return MrmRtypeFontSet;
-    case sym_k_font_table_value:           return MrmRtypeFontList;
-    case sym_k_identifier_value:           return MrmRtypeAddrName;
-    case sym_k_class_rec_name_value:        return MrmRtypeClassRecName;
-    case sym_k_xbitmapfile_value:          return MrmRtypeXBitmapFile;
-    case sym_k_widget_ref_value:           return MrmRtypeAny;
-    case sym_k_pixmap_value:               return MrmRtypeIconImage;
-    case sym_k_any_value:                  return MrmRtypeAny;
-    case sym_k_keysym_value:                return MrmRtypeKeysym;    
-    case sym_k_single_float_value:          return MrmRtypeSingleFloat;
-    case sym_k_rgb_value:                   return MrmRtypeColor;
-
-    default:
-       _assert( FALSE, "unknown value type" );
-       return 0;
-    }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function computes the size of a color table.
-**
-**  FORMAL PARAMETERS:
-**
-**      table_entry        value entry for the color table
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      size of the color table
-**
-**  SIDE EFFECTS:
-**
-**      colors within the color table may be allocated
-**
-**--
-**/
-
-int    compute_color_table_size(table_entry)
-
-sym_value_entry_type   *table_entry;
-
-{
-    sym_value_entry_type    *color_entry;
-    int                            size;
-    int                            i;
-    MrmCode                arg_type;
-    long                   arg_value;
-    MrmCode                arg_access;
-    char                   *arg_index;
-    MrmResource_id         arg_id;
-    MrmCode                arg_group;
-
-    /*
-    ** Compute the size of the ColorTable plus the size of the Color
-    ** table entries (one per color including fore and back ground).
-    ** Multiply entry size by max_index rather than max_index + 1
-    ** since RGMColorTable includes 1 entry. Note that descriptors
-    **  are sized to consume fullword-aligned blocks of memory in
-    **  to preserve alignment for processors requiring such alignment.
-    */
-
-    size = sizeof(RGMColorTable) +
-       sizeof(RGMColorTableEntry)*table_entry->b_max_index;
-    size = _FULLWORD (size);
-
-    /*
-    ** Compute space needed for resource descriptors for the colors.
-    */
-
-    for (i = 0;  i < (int)table_entry->b_table_count;  i++)
-    {
-       color_entry = table_entry->value.z_color[i].az_color;
-
-       /*
-       **  Default colors have az_color set to 0=back and 1=fore.
-       **  These require ColorTableEntries but no resource descriptors.
-       */
-
-       if ((long)color_entry > 1)
-       {
-           /*
-           **  Call ref_value for each of the colors in the color table.
-           **  This will cause them to be created if necessary and also
-           **  classify the type of resource needed.
-           */
-
-           table_entry->value.z_color[i].w_desc_offset = size;
-
-           switch (ref_value( color_entry,
-                              & arg_type, & arg_value, & arg_access,
-                              & arg_index, & arg_id, & arg_group ) )
-           {
-           case URMrRID:
-               size += sizeof (RGMResourceDesc);
-               size = _FULLWORD (size);
-               break;
-           case URMrIndex:
-               size += sizeof(RGMResourceDesc) - sizeof(MrmResource_id) +
-                       strlen(arg_index)+1;
-               size = _FULLWORD (size);
-               break;
-           default:
-               _assert( FALSE, "immediate color values not supported" );
-           }
-       }
-    }
-
-    table_entry->w_length = size;
-
-    return size;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a color table in a context.
-**
-**  FORMAL PARAMETERS:
-**
-**      table_entry        value entry for the color table
-**      buffer             pointer to a context buffer
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   create_color_table(table_entry, buffer)
-
-sym_value_entry_type   *table_entry;
-char                   *buffer;
-
-{
-    RGMColorTable          *table;
-    RGMColorTableEntry     *item;
-    RGMResourceDesc        *desc;
-    int                            i;
-    MrmCode                arg_form;
-    MrmCode                arg_type;
-    long                   arg_value;
-    MrmCode                arg_access;
-    char                   *arg_index;
-    MrmResource_id         arg_id;
-    MrmCode                arg_group;
-
-    /*
-    ** Fill in the Color Table fields
-    */
-
-    table = (RGMColorTable *)buffer;
-
-    table->validation = URMColorTableValid;
-    table->count = table_entry->b_max_index + 1;
-
-    /*
-    ** Loop thru the colors in the table setting up both the index
-    ** of offset for the colors and their resource descriptors.
-    */
-
-    item = table->item;
-
-    for (i = 0;  i < (int)table_entry->b_table_count;  i++)
-    {
-       int     index;
-
-       index = table_entry->value.z_color[i].b_index;
-       table->item[index].color_item.coffs = 
-           table_entry->value.z_color[i].w_desc_offset;
-       desc = (RGMResourceDesc *)
-                   (buffer + table_entry->value.z_color[i].w_desc_offset);
-
-       /*
-       **  Default colors have b_index set to 0=back and 1=fore.
-       **  These require ColorTableEntries but no resource descriptors.
-       */
-
-       if (index > 1)
-       {
-           table->item[index].type = MrmRtypeResource;
-
-           /*
-           **  Call ref_value for each of the colors in the color table.
-           **  This provide the necessary info to fill in the resource
-           **  descriptor
-           */
-
-           arg_form = ref_value( table_entry->value.z_color[i].az_color,
-                                 & arg_type, & arg_value, & arg_access,
-                                 & arg_index, & arg_id, & arg_group );
-
-           desc->access = arg_access;
-           desc->type = arg_form;
-           desc->res_group = arg_group;
-           desc->cvt_type = arg_type;
-
-           switch (arg_form)
-           {
-           case URMrRID:
-               desc->size = sizeof( RGMResourceDesc );
-               desc->key.id = arg_id;
-               break;
-           case URMrIndex:
-               desc->size = strlen( arg_index ) + 1;
-               _move( desc->key.index, arg_index, desc->size );
-               desc->size += sizeof( RGMResourceDesc ) - 
-                             sizeof( MrmResource_id );
-               break;
-           default:
-               _assert( FALSE, "immediate color values not supported" );
-           }
-       }
-    }
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function computes the size of an icon.
-**
-**  FORMAL PARAMETERS:
-**
-**      icon_entry         value entry for the icon
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      size of the icon
-**
-**  SIDE EFFECTS:
-**
-**      color table within the icon may be allocated
-**
-**--
-**/
-
-int    compute_icon_size(icon_entry)
-
-sym_value_entry_type   *icon_entry;
-
-{
-    int                            size;
-    int                            pixel_type;
-    MrmCode                arg_type;
-    long                   arg_value;
-    MrmCode                arg_access;
-    char                   *arg_index;
-    MrmResource_id         arg_id;
-    MrmCode                arg_group;
-
-    /*
-    ** The size of the icon consist of the size of the RGMIconImage
-    ** structure + the size of the color table resource descriptor
-    ** + the actual data.
-    */
-
-    size = sizeof( RGMIconImage );
-
-    /*
-    ** Compute space needed for the color table resource descriptor
-    **
-    ** Call ref_value.
-    ** This will cause the table to be created if necessary and also
-    ** classify the type of resource needed.
-    */
-
-    switch (ref_value( icon_entry->value.z_icon->az_color_table,
-                      & arg_type, & arg_value, & arg_access,
-                      & arg_index, & arg_id, & arg_group ) )
-    {
-    case URMrRID:
-       size += sizeof( RGMResourceDesc );
-       break;
-    case URMrIndex:
-       size += sizeof( RGMResourceDesc ) - sizeof( MrmResource_id ) +
-               strlen( arg_index ) + 1;
-       break;
-    default:
-       _assert( FALSE, "immediate color table values not supported" );
-    }
-
-    /*
-    ** Save the offset of the data for later.
-    */
-
-    icon_entry->b_data_offset = size;
-
-    /*
-    ** Bits per pixel is based on the number of colors used.
-    ** Pixel_type:
-    **         0       for 1 bit pixels
-    **         1       for 2 bit pixels
-    **         2       for 4 bit pixels
-    **         3       for 8 bit pixels
-    ** URM's pixels size encoding is pixel_type + 1
-    ** Pixel_size = 1 << pixel_type
-    */
-
-    pixel_type = icon_entry->value.z_icon->az_color_table->b_max_index;
-
-    if (pixel_type < 2)
-       pixel_type = 0;
-    else if (pixel_type < 4)
-       pixel_type = 1;
-    else if (pixel_type < 16)
-       pixel_type = 2;
-    else
-       pixel_type = 3;
-
-    icon_entry->b_pixel_type = pixel_type;
-
-    /*
-    ** Size is width * height - each row must be an even number of bytes
-    */
-
-    size += ((int)((icon_entry->value.z_icon->w_width << pixel_type) + 7) / 8)
-            * icon_entry->value.z_icon->w_height;
-
-    icon_entry->w_length = size;
-
-    return size;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates an icon in a context buffer
-**
-**  FORMAL PARAMETERS:
-**
-**      icon_entry         value entry for the icon
-**      buffer             pointer to context buffer
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      buffer is filled in
-**
-**--
-**/
-
-void   create_icon(icon_entry,buffer)
-
-sym_value_entry_type   *icon_entry;
-char                   *buffer;
-
-{
-    sym_value_entry_type    *row_entry;
-    RGMIconImage           *icon;
-    RGMResourceDesc        *desc;
-    MrmCode                arg_form;
-    MrmCode                arg_type;
-    long                   arg_value;
-    MrmCode                arg_access;
-    char                   *arg_index;
-    MrmResource_id         arg_id;
-    MrmCode                arg_group;
-
-    unsigned char          *sbyte;
-    unsigned char          *tbyte;
-    int                            w_len;
-    int                            p_len;
-    int                            i;
-    int                            j;
-    char                   pixel_type;
-    char                   pixel_size;
-    char                   pixel_per_byte;
-
-    /*
-    ** Fill in the fixed location fields of the IconImage.
-    */
-
-    icon = (RGMIconImage *)buffer;
-
-    icon->validation = URMIconImageValid;
-    pixel_type = icon_entry->b_pixel_type;
-    icon->pixel_size = pixel_type + 1;
-    icon->width = icon_entry->value.z_icon->w_width;
-    icon->height = icon_entry->value.z_icon->w_height;
-    icon->ct_type = MrmRtypeResource;
-    icon->color_table.ctoff = sizeof( RGMIconImage );
-    icon->pixel_data.pdoff = icon_entry->b_data_offset;
-
-    /*
-    ** Place color table resource descriptor in the context.
-    **
-    ** Call ref_value which will return all info need to complete
-    ** the description.
-    */
-
-    arg_form = ref_value( icon_entry->value.z_icon->az_color_table,
-                         & arg_type, & arg_value, & arg_access,
-                         & arg_index, & arg_id, & arg_group );
-
-    desc = (RGMResourceDesc *)(buffer + sizeof( RGMIconImage ));
-
-    desc->access = arg_access;
-    desc->type = arg_form;
-    desc->res_group = arg_group;
-    desc->cvt_type = MrmRtypeResource;
-
-    switch (arg_form)
-    {
-    case URMrRID:
-       desc->size = sizeof( RGMResourceDesc );
-       desc->key.id = arg_id;
-       break;
-    case URMrIndex:
-       desc->size = strlen( arg_index ) + 1;
-       _move( desc->key.index, arg_index, desc->size );
-       desc->size += sizeof( RGMResourceDesc ) - 
-                     sizeof( MrmResource_id );
-       break;
-    default:
-       _assert( FALSE, "immediate color values not supported" );
-    }
-
-    /*
-    ** Now move the pixels into the buffer
-    ** Variable usage:
-    **     sbyte:  base of source byte stream
-    **     tbyte:  current position in target byte stream
-    **     w_len:  # of pixels that will go into integral # of bytes
-    **     p_len:  # of pixels that will go into final byte
-    */
-
-    pixel_per_byte = 8 >> pixel_type;
-    pixel_size = 1 << pixel_type;
-
-    tbyte = (unsigned char *)(buffer + icon_entry->b_data_offset);
-
-    for (row_entry = icon_entry->value.z_icon->az_rows,
-        w_len = ((int)row_entry->w_length / (int)pixel_per_byte) * pixel_per_byte,
-        p_len = row_entry->w_length - w_len;
-
-        row_entry != NULL;  
-
-        row_entry = row_entry->az_next_table_value)
-    {
-       sbyte = (unsigned char *)row_entry->value.c_value;
-
-       for (i = 0;  i < w_len; tbyte++)
-       {
-           for (*tbyte = 0, j = 0;  
-                j < 8;  
-                j += pixel_size )
-           {
-               unsigned char   t;
-
-               t = sbyte[i++] << j;
-               *tbyte |= t;
-           }
-       }
-
-       if (p_len > 0)
-       {
-           for ( *tbyte = 0, j = 0;
-                 j < (p_len * pixel_size);
-                 j += pixel_size  )
-           {
-               unsigned char   t;
-
-               t = sbyte[i++] << j;
-               *tbyte |= t;
-           }
-           tbyte++;
-       }
-    }
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function counts the number of valid, usable entries in a
-**     list. It simply accumulates all the nodes in the list (recursively)
-**     which match the given node type.
-**
-**  FORMAL PARAMETERS:
-**
-**      list_entry             the list to be counted
-**     type                    the node type to match
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      the number of nodes which matched the type
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-int compute_list_size (list_entry, type)
-    sym_list_entry_type                *list_entry;
-    int                                type;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-int                            count = 0;
-
-/*
- * loop down the list
- */
-if ( list_entry == NULL ) return 0;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           count += compute_list_size (nested_list_entry->az_list, type);
-           break;
-       default:
-           if ( list_member->header.b_tag == (char)type )
-               count += 1;
-           break;
-       }
-
-return count;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine creates the internal compression code tables.  
-**
-**      Upon calling this routine, the internal compression code tables
-**      (uil_arg_compr, uil_reas_compr, and uil_widget_compr) have zero 
-**     entries for resources which have not been referenced in this UIL 
-**     module and have one entries for resrources which have been referenced.  
-**
-**      This routine assigns increasing integers to each non-zero entry in the
-**      internal compression code tables.
-**
-**      The internal compression code tables are indexed by subclass to yield
-**      the external compression code values which are written to the UID file. 
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**     uil_arg_compr
-**     uil_reas_compr
-**     uil_widget_compr
-**
-**  IMPLICIT OUTPUTS:
-**
-**     uil_arg_compr
-**     uil_reas_compr
-**     uil_widget_compr
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void create_int_compression_codes ()
-{
-
-/*
- * Local variables
- */
-int    i;
-int    compression_code = 2;
-
-    /*
-    ** Request compression codes for all subtree resources.
-    */
-
-    for ( i=0 ; i<uil_max_object ; i++ )
-       if ( uil_urm_subtree_resource[i] != 0 )
-           uil_arg_compr[uil_urm_subtree_resource[i]] = 1;
-
-    /*
-    ** Create compression code tables for object classes. This include
-    ** both widgets and gadgets, since both have class literals.
-    **
-    */
-
-    for (i = 0 ; i <= uil_max_object; i++)
-       {
-       if (uil_widget_compr[i] == 1)
-           uil_widget_compr[i] = compression_code++;
-       }
-
-    /*
-    ** Create compression code tables for arguments
-    **
-    */
-
-    compression_code = 2;
-    for (i = 0 ; i <= uil_max_arg ; i++)
-       {
-       if (uil_arg_compr[i] == 1)
-           uil_arg_compr[i] = compression_code++;
-       }
-
-    /*
-    ** Create compression code tables for reasons.
-    ** Note that the numbering continues from where we left off with args.
-    */
-
-    for (i = 0;
-       i <= uil_max_reason;
-       i++)
-       {
-       if (uil_reas_compr[i] == 1)
-           uil_reas_compr[i] = compression_code++;
-       }
-
-    /*
-    ** Create compression code tables for automatic children.
-    ** Note that numbering continues where we left off with reasons.
-    */
-    for (i = 0; i <= uil_max_child; i++)
-       {
-       if (uil_child_compr[i] == 1)
-           uil_child_compr[i] = compression_code++;
-       }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine creates the external compression code tables.  
-**
-**
-**      This routine writes the corresponding toolkit name to the external
-**      compression code table for each non-zero entry in the internal
-**      compression code table.
-**
-**      The internal compression code tables are indexed by subclass to yield
-**      the external compression code values which are written to the UID file. 
-**      The external compression codes are used as an index to the external
-**      compression code tables so that MRM can map the compression code into
-**      the corresponding toolkit name.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**     uil_arg_compr
-**     uil_reas_compr
-**     uil_widget_compr
-**
-**  IMPLICIT OUTPUTS:
-**
-**     extern_args_compr
-**     extern_widget_compr
-**     %ArgCmpr (index for argument compression table in UID file)
-**     %ReasCmpr (index for reason compression table in UID file)
-**     %ClassCmpr (index for class compression table in UID file)
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void create_ext_compression_codes ()
-{
-
-/*
- * Local variables
- */
-int    i;
-int    comp_code;
-int    next_code;
-int    text_offset;
-int    arg_value_count;
-int    arg_value_size;
-char   *arg_buffer;
-int    class_value_count;
-int    class_value_size;
-char   *class_buffer;
-status urm_status;
-
-    /*
-    ** Create compression code tables for arguments
-    **
-    ** Determine number of elements in external compression table 
-    ** ( extern_arg_compr[] ) and size of external compression table.
-    */
-
-    arg_value_size = sizeof (UidCompressionTable);
-    arg_value_count = UilMrmReservedCodeCount;
-    next_code = UilMrmMinValidCode;
-    for (i = 0;
-       i <= uil_max_arg;
-       i++)
-       {
-       if (uil_arg_compr[i] != 0)
-           {
-           arg_value_count++;
-           next_code++;
-           if (uil_argument_toolkit_names[i] == NULL)
-               {
-               _assert (FALSE, "unknown argument")
-               }
-           else
-               arg_value_size += strlen(uil_argument_toolkit_names[i]) + 1;
-           }
-       }
-
-    /*
-    ** Add compression codes for reasons
-    */
-
-    for (i = 0;
-       i <= uil_max_reason;
-       i++)
-       {
-       if (uil_reas_compr[i] != 0)
-           {
-           arg_value_count++;
-           next_code++;
-           if (uil_reason_toolkit_names[i] == NULL)
-               {
-               _assert (FALSE, "unknown argument")
-               }
-           else
-               arg_value_size += strlen(uil_reason_toolkit_names[i]) + 1;
-           }
-       }
-
-    /*
-    ** Add compression codes for automatic children
-    */
-
-    for (i = 0; i <= uil_max_child; i++)
-      {
-       if (uil_child_compr[i] != 0)
-         {
-           arg_value_count++;
-           next_code++;
-           arg_value_size += strlen(uil_child_names[i]) + 1;
-         }
-      }
-
-    /*
-    ** Add the space for the table's vector entries (the next code counts
-    ** one more space than we need, but as a zero-based code has the
-    ** correct number in it).
-    */
-    arg_value_size += sizeof(UidCTableEntry) * next_code;
-
-
-    /*
-    ** Check that the resource context is large enough to hold the value
-    */
-
-    if ( (int)(UrmRCSize( out_az_context )) < arg_value_size )
-       {
-       if( MrmSUCCESS != 
-          UrmResizeResourceContext( out_az_context, arg_value_size ))
-           issue_urm_error( "allocating context" );
-       }
-
-    /*
-    ** Set up the resource context and point extern_arg_compr to the resource
-    ** context buffer.
-    */
-
-    UrmRCSetGroup( out_az_context, URMgLiteral );
-    UrmRCSetType( out_az_context, sym_k_asciz_table_value );
-    UrmRCSetAccess( out_az_context, URMaPublic );
-    UrmRCSetLock( out_az_context, FALSE );
-    UrmRCSetSize( out_az_context, arg_value_size );
-
-    arg_buffer = (char *) UrmRCBuffer( out_az_context );
-
-    extern_arg_compr = (UidCompressionTable *)arg_buffer;
-    bzero (arg_buffer, arg_value_size);
-
-    /*
-    ** Now fill in the actual value of the external compresion code
-    ** table ( extern_arg_compr[] ).  
-    */
-
-    extern_arg_compr->validation = UidCompressionTableValid;
-    extern_arg_compr->num_entries = arg_value_count;
-#ifdef WORD64
-    text_offset = ((int)&extern_arg_compr->entry[arg_value_count]
-                  - (int)extern_arg_compr) * sizeof(int);
-#else
-    text_offset = (long)&extern_arg_compr->entry[arg_value_count]
-       - (long)extern_arg_compr;
-#endif
-    comp_code = UilMrmMinValidCode;
-    for ( i = 0 ; i<=uil_max_arg ; i++ )
-       {
-       if (uil_arg_compr[i] != 0)
-           {
-           _move( &(arg_buffer[text_offset]), 
-                 uil_argument_toolkit_names[i], 
-                 strlen(uil_argument_toolkit_names[i]) + 1);
-           extern_arg_compr->entry[comp_code].stoffset = text_offset;
-           text_offset += (strlen(uil_argument_toolkit_names[i]) + 1);
-           comp_code++;
-           }
-       }
-
-    for ( i = 0 ; i<=uil_max_reason ; i++ )
-       {
-       if (uil_reas_compr[i] != 0)
-           {
-           _move( &(arg_buffer[text_offset]), 
-                 uil_reason_toolkit_names[i], 
-                 strlen(uil_reason_toolkit_names[i]) + 1);
-           extern_arg_compr->entry[comp_code].stoffset = 
-               text_offset;
-           text_offset += (strlen(uil_reason_toolkit_names[i]) + 1);
-           comp_code++;
-           }
-       }
-
-    for ( i = 0 ; i<=uil_max_child ; i++ )
-      {
-       if (uil_child_compr[i] != 0)
-         {
-           char *name;
-           
-           if (strncmp(uil_child_names[i], AUTO_CHILD_PREFIX, 
-                       strlen(AUTO_CHILD_PREFIX)) == 0)
-             name = (uil_child_names[i] + strlen(AUTO_CHILD_PREFIX));
-           else name = uil_child_names[i];
-
-           _move( &(arg_buffer[text_offset]), name, strlen(name) + 1);
-           extern_arg_compr->entry[comp_code].stoffset = text_offset;
-           text_offset += (strlen(name) + 1);
-           comp_code++;
-         }
-      }
-
-    /*
-    ** Finally write the argument compression code table out to the UID file
-    */
-    urm_status = 
-      UrmPutIndexedLiteral (out_az_idbfile_id, 
-                           UilMrmResourceTableIndex, out_az_context);
-    if (urm_status != MrmSUCCESS)
-       {
-       if (urm_status == MrmEOF)
-           diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                   diag_k_no_column, Uil_current_file );
-       else
-           issue_urm_error("emitting literal");
-       }
-
-\f
-    /*
-    ** Create compression code tables for classes
-    **
-    ** Determine number of elements in external compression table 
-    ** ( extern_class_compr[] ) and size of external 
-    ** compression table.
-    ** PROBABL ERROR: WHAT ABOUT GADGETS???
-    */
-
-    class_value_size = sizeof (UidCompressionTable);
-    class_value_count = UilMrmReservedCodeCount;
-    next_code = UilMrmMinValidCode;
-    for (i = 0;
-       i <= uil_max_object;
-       i++)
-       if (uil_widget_compr[i] != 0)
-           {
-           class_value_count++;
-           next_code++;
-           if (uil_widget_funcs[i] == NULL)
-               {
-               _assert (FALSE, "unknown class")
-               }
-           else
-               class_value_size += strlen(uil_widget_funcs[i]) + 1;
-           }
-
-    /*
-    ** Again, compute the additional size for the vector.
-    */
-
-    class_value_size += sizeof(UidCTableEntry) * next_code;
-
-    /*
-    ** Check that the resource context is large enough to hold the value
-    */
-
-    if ( (int)(UrmRCSize(out_az_context)) < class_value_size )
-       {
-       if( MrmSUCCESS != 
-          UrmResizeResourceContext( out_az_context, class_value_size ))
-           issue_urm_error( "allocating context" );
-       }
-
-    /*
-    ** Set up the resource context and point extern_class_compr to the resource
-    ** context buffer.
-    */
-
-    UrmRCSetGroup( out_az_context, URMgLiteral );
-    UrmRCSetType( out_az_context, sym_k_asciz_table_value );
-    UrmRCSetAccess( out_az_context, URMaPublic );
-    UrmRCSetLock( out_az_context, FALSE );
-    UrmRCSetSize( out_az_context, class_value_size );
-
-    class_buffer = (char *) UrmRCBuffer( out_az_context );
-
-    extern_class_compr = (UidCompressionTable *)class_buffer;
-    bzero (class_buffer, class_value_size);
-
-    /*
-    ** Now fill in the actual value of the external compresion code
-    ** table ( extern_class_compr[] ).  
-    */
-
-    extern_class_compr->validation = UidCompressionTableValid;
-    extern_class_compr->num_entries = class_value_count;
-#ifdef WORD64
-    text_offset = ((int)&extern_class_compr->entry[class_value_count]
-                  - (int)extern_class_compr) * sizeof(int);
-#else
-    text_offset = (long)&extern_class_compr->entry[class_value_count]
-       - (long)extern_class_compr;
-#endif
-    comp_code = UilMrmMinValidCode;
-    for ( i = 0;
-       i <= uil_max_object;
-       i++)
-       {
-       if (uil_widget_compr[i] != 0)
-           {
-           _move( &(class_buffer[text_offset]), 
-               uil_widget_funcs[i], 
-               strlen(uil_widget_funcs[i]) + 1);
-           extern_class_compr->entry[comp_code].stoffset = 
-               text_offset;
-           text_offset += (strlen(uil_widget_funcs[i]) + 1);
-           comp_code++;
-           }
-       }
-
-    /*
-    ** Finally write the class compression code table out to the UID file
-    */
-    urm_status = 
-      UrmPutIndexedLiteral (out_az_idbfile_id, UilMrmClassTableIndex, 
-                           out_az_context);
-    if (urm_status != MrmSUCCESS)
-       {
-       if (urm_status == MrmEOF)
-           diag_issue_diagnostic ( d_uid_write, diag_k_no_source, 
-                                   diag_k_no_column, Uil_current_file );
-       else
-           issue_urm_error("emitting literal");
-       }
-}
diff --git a/cde/osf/uil/UilP2Reslv.c b/cde/osf/uil/UilP2Reslv.c
deleted file mode 100644 (file)
index f1d1585..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilP2Reslv.c /main/11 1995/07/14 09:36:35 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the second pass routines for resolving forward
-**     references.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes forward references from the first pass.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_forward_ref_chain
-**     sym_az_val_forward_ref_chain
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error messages may be issued for objects that are still undefined
-**     or of the wrong type
-**
-**--
-**/
-
-void   sem_resolve_forward_refs()
-
-{
-    sym_forward_ref_entry_type         * fwd_entry;
-    sym_forward_ref_entry_type         * next_fwd_entry;
-    sym_val_forward_ref_entry_type     * fwd_val_entry;
-    sym_val_forward_ref_entry_type     * next_fwd_val_entry;
-    sym_widget_entry_type              ** target_obj_entry;
-    sym_value_entry_type               ** target_val_entry;
-    sym_parent_list_type               * parent_node;
-    sym_parent_list_type               * parent_ptr;
-    int                                found;
-
-    /* 
-    ** Forward references are placed on a chain by the first pass of
-    ** the compiler.  This routine walks the chain checking that
-    **     1) name is now defined
-    **     2) name points to the correct type of object
-    */
-
-    for (fwd_entry = sym_az_forward_ref_chain;  
-        fwd_entry != NULL;  
-        fwd_entry = next_fwd_entry)
-    {
-       sym_name_entry_type     * name_entry;
-       sym_widget_entry_type   * object_entry;
-       unsigned short int      object_type;
-
-
-       /*
-       **  Save the pointer to the next forward entry so we can free the current 
-       **  entry after it is processed.
-       */
-       next_fwd_entry = fwd_entry->az_next_ref;
-
-
-       /*
-       **  Call the Status callback routine to report our progress.
-       */
-       /* %COMPLETE */
-       Uil_percent_complete = 60;
-       if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-           diag_report_status();    
-
-
-       object_type = fwd_entry->header.b_type;
-       name_entry = fwd_entry->az_name;
-       object_entry = (sym_widget_entry_type *) name_entry->az_object;
-
-       if (object_entry == NULL)
-       {
-           diag_issue_diagnostic
-               ( d_never_def,
-                 _sar_source_pos2 (fwd_entry),
-                 diag_object_text( object_type ),
-                 name_entry->c_text );
-           continue;
-       }
-
-       /*
-       ** Make sure object references are to correct type of object.
-       ** A forward reference naming a widget class may be correctly
-       ** resolved by the corresponding gadget class, and vice versa.
-       */
-       if ((object_entry->header.b_type!=object_type) &&
-           (uil_gadget_variants[object_entry->header.b_type]!=object_type) &&
-           (uil_gadget_variants[object_type]!=object_entry->header.b_type))
-           {
-           diag_issue_diagnostic
-               (d_ctx_req,
-                _sar_source_pos2(fwd_entry),
-                diag_object_text(object_type),
-                diag_object_text(object_entry->header.b_type));
-           continue;
-           }
-
-       target_obj_entry =
-               (sym_widget_entry_type * *) fwd_entry->a_update_location;
-       *target_obj_entry = object_entry;
-
-       /*
-       ** Update objects on forward refernce chain so that their parent_lists point
-       ** to the objects which reference them
-       */
-       if (fwd_entry -> parent != NULL)
-           {
-           found = FALSE;
-           for (parent_ptr = object_entry -> parent_list;
-               ((parent_ptr != NULL) && (found == FALSE));
-               parent_ptr = parent_ptr -> next)
-               {
-               if (parent_ptr -> parent == fwd_entry -> parent)
-                   found = TRUE;
-               }
-           if (found == FALSE)
-               {
-               parent_node = (sym_parent_list_type *) 
-                   sem_allocate_node (sym_k_parent_list_entry, 
-                   sym_k_parent_list_size);
-               parent_node -> next = object_entry -> parent_list;
-               object_entry -> parent_list = parent_node;
-               parent_node -> parent = fwd_entry -> parent;
-               }
-           }
-
-
-       /*
-       **  Free the Forward reference entry now that it is no longer needed
-       */    
-       sem_free_node(( sym_entry_type *)fwd_entry);
-
-    }
-
-\f
-    /*
-    **  Now resolve the forward references to values
-    **/
-
-    /* 
-    ** Forward references are placed on a chain by the first pass of
-    ** the compiler.  This routine walks the chain checking that
-    **     1) name is now defined
-    **     2) name points to the correct type of value
-    */
-
-    for (fwd_val_entry = sym_az_val_forward_ref_chain;  
-        fwd_val_entry != NULL;  
-        fwd_val_entry = next_fwd_val_entry)
-    {
-       sym_name_entry_type     * name_entry;
-       sym_value_entry_type    * value_entry;
-       sym_obj_entry_type      * obj_entry;
-
-
-       /*
-       **  Save the pointer to the next forward entry so we can free the current 
-       **  entry after it is processed.
-       */
-       next_fwd_val_entry = fwd_val_entry->az_next_ref;
-
-
-       /*
-       **  Call the Status callback routine to report our progress.
-       */
-       /* %COMPLETE */
-       Uil_percent_complete = 60;
-       if (Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL)
-           diag_report_status();    
-
-       name_entry = fwd_val_entry->az_name;
-       value_entry = (sym_value_entry_type *) name_entry->az_object;
-       obj_entry = (sym_obj_entry_type *) name_entry->az_object;
-
-       if (value_entry == NULL)
-       {
-           diag_issue_diagnostic
-               ( d_never_def,
-                 _sar_source_pos2 (fwd_val_entry),
-                 "value",
-                 name_entry->c_text );
-           continue;
-       }
-
-       switch (fwd_val_entry->fwd_ref_flags)
-           {
-           case (sym_k_patch_add):
-           case (sym_k_patch_list_add):
-               {
-               target_val_entry =
-                       (sym_value_entry_type * *) fwd_val_entry->a_update_location;
-               *target_val_entry = value_entry;
-               break;
-               }
-           default:
-               _assert(FALSE, "Illegal forward reference");
-            }
-
-
-       /*
-       **  Free the Forward reference entry now that it is no longer needed
-       */    
-       sem_free_node(( sym_entry_type *)fwd_val_entry);
-
-    }
-
-
-
-
-}
diff --git a/cde/osf/uil/UilSarComp.c b/cde/osf/uil/UilSarComp.c
deleted file mode 100644 (file)
index 4786d09..0000000
+++ /dev/null
@@ -1,984 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilSarComp.c /main/11 1995/07/14 09:36:46 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module supports compound strings in UIL.  It includes
-**     the basic operations for creating, copying, and concatenating
-**      strings.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-
-
-#include <Mrm/MrmAppl.h>
-
-
-
-#ifdef DXM_V11
-#include <DXm/DXmHelpB.h>
-#endif
-
-#include "UilDefI.h"
-
-/*
-**
-**  TABLE OF CONTENTS
-**
-**/
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-#define clear_class_mask (~(sym_m_private | sym_m_imported | sym_m_exported))
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-extern yystype         yylval;
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a null compound string.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      a copy of the primitive string may be made
-**
-**--
-**/
-
-sym_value_entry_type   *sem_create_cstr()
-
-{
-    sym_value_entry_type    *az_cstr_entry;
-
-    az_cstr_entry = (sym_value_entry_type *)
-               sem_allocate_node
-                       ( sym_k_value_entry,
-                          sym_k_value_entry_size + sizeof( char * ) );
-
-    az_cstr_entry->obj_header.b_flags = sym_m_builtin | sym_m_private;
-    az_cstr_entry->b_type = sym_k_compound_string_value;
-    az_cstr_entry->w_length = sizeof (char *);
-    az_cstr_entry->b_direction = NOSTRING_DIRECTION;
-
-    /* Fix for  CN 16149 (DTS 10023) part 1 -- initialize charset info */
-    az_cstr_entry->b_charset = sym_k_error_charset;
-    az_cstr_entry->az_charset_value = NULL;
-
-    _sar_save_source_pos (&az_cstr_entry->header, &yylval);
-
-    return az_cstr_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a null wide_character string.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      a copy of the primitive string may be made
-**
-**--
-**/
-
-sym_value_entry_type   *sem_create_wchar_str()
-
-{
-    sym_value_entry_type    *az_wchar_str_entry;
-
-    az_wchar_str_entry = (sym_value_entry_type *)
-               sem_allocate_node
-                       ( sym_k_value_entry,
-                          sym_k_value_entry_size + sizeof( char * ) );
-
-    az_wchar_str_entry->obj_header.b_flags = sym_m_builtin | sym_m_private;
-    az_wchar_str_entry->b_type = sym_k_wchar_string_value;
-    az_wchar_str_entry->w_length = sizeof (char *);
-    az_wchar_str_entry->b_direction = NOSTRING_DIRECTION;
-
-    _sar_save_source_pos (&az_wchar_str_entry->header, &yylval);
-
-    return az_wchar_str_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function appends a primitive or a localized string to a
-**     compound string.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_cstr_entry      compound string
-**      az_str_entry       primitive string or localized string
-**     op2_temporary       true if op2 is not needed after operation
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      a copy of the primitive string may be made
-**
-**--
-**/
-
-void   sem_append_str_to_cstr(az_cstr_entry, az_str_entry, op2_temporary)
-
-sym_value_entry_type   *az_cstr_entry;
-sym_value_entry_type   *az_str_entry;
-boolean                        op2_temporary;
-
-{
-    sym_value_entry_type       *last_str_entry;
-    sym_value_entry_type       **ptr;
-    sym_value_entry_type       *new_str_entry;
-    boolean                    merge;
-
-    /*
-    ** A couple of points:
-    ** 1) if op2_temporary = FALSE - we must make a copy
-    **    of it 
-    ** 2) if the last string of the compound string has the same attributes
-    **     as the string being appended, the strings are merged into 1
-    */
-
-    /* find the last string of the compound string */
-
-    ptr = &(az_cstr_entry->az_first_table_value);
-    last_str_entry = *ptr;
-    merge = FALSE;
-
-    if (last_str_entry != NULL)
-    {
-       for (  ;
-            last_str_entry->az_next_table_value != NULL;  
-
-            ptr = (sym_value_entry_type * *) 
-                &(last_str_entry->az_next_table_value),
-            last_str_entry = *ptr);
-
-       if ((last_str_entry->b_charset == az_str_entry->b_charset)
-           &&
-           ((last_str_entry->b_direction)== (az_str_entry->b_direction))
-           &&
-           ((last_str_entry->b_aux_flags & sym_m_separate) == 0 ))
-           merge = TRUE;
-       else
-           ptr = (sym_value_entry_type * *)
-               &(last_str_entry->az_next_table_value);
-    }
-
-    if (merge)
-    {
-       new_str_entry = 
-           sem_cat_str_to_str( last_str_entry, TRUE, 
-                               az_str_entry, op2_temporary );
-    }
-    else
-    {
-       /*
-       **  Append a new segment to the compound string
-       */
-
-       if( op2_temporary == FALSE )
-       {
-           unsigned short      old_size;
-
-           /* must make a copy since user has access to string via name */
-           
-           new_str_entry = (sym_value_entry_type *) 
-               sem_allocate_node( sym_k_value_entry,
-                                  az_str_entry->header.w_node_size<<2 );
-
-           old_size = new_str_entry->header.w_node_size;
-
-           _sym_copy_entry( new_str_entry, 
-                  az_str_entry,
-                  az_str_entry->header.w_node_size );
-
-           new_str_entry->header.w_node_size = old_size;
-
-       }
-       else
-           new_str_entry = az_str_entry;
-
-    }
-
-    /* link to the end of the compound string */
-
-    new_str_entry->b_aux_flags |= sym_m_table_entry;
-    new_str_entry->obj_header.b_flags = sym_m_private | sym_m_builtin;
-    new_str_entry->obj_header.az_name = NULL;
-    new_str_entry->az_next_table_value = NULL;
-    *ptr = new_str_entry;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function appends a compound string to a compound string.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_cstr1_entry     compound string
-**      az_cstr2_entry     compound string
-**     op2_temporary       true if op2 is not needed after operation
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sem_append_cstr_to_cstr(az_cstr1_entry, az_cstr2_entry, op2_temporary)
-
-sym_value_entry_type   *az_cstr1_entry;
-sym_value_entry_type   *az_cstr2_entry;
-boolean                        op2_temporary;
-
-{
-    sym_value_entry_type       *last_str_entry;
-    sym_value_entry_type       **ptr;
-    sym_value_entry_type       *next_str_entry;
-
-    /*
-    ** A couple of points:
-    ** 1) if op2_temporary = FALSE - we must make a copy of 2nd compound
-    **    string
-    ** 2) if the last string of 1st compound string has the same attributes
-    **     as the 1st string of the 2nd compound string being appended, 
-    **    the strings are merged into 1
-    */
-
-    /* find the last string of the 1st compound string */
-
-    ptr = &(az_cstr1_entry->az_first_table_value);
-    last_str_entry = *ptr;
-
-    next_str_entry = az_cstr2_entry->az_first_table_value;
-
-    if (op2_temporary)
-       sem_free_node(( sym_entry_type *) az_cstr2_entry );
-
-    if (next_str_entry == NULL)
-       return;
-
-    if (last_str_entry != NULL)
-    {
-       for (  ;
-            last_str_entry->az_next_table_value != NULL;  
-
-            ptr = (sym_value_entry_type * *)
-                &(last_str_entry->az_next_table_value),
-            last_str_entry = *ptr);
-
-       if ((last_str_entry->b_charset == next_str_entry->b_charset)
-           &&
-           ((last_str_entry->b_direction)== (next_str_entry->b_direction))
-           &&
-           ((last_str_entry->b_aux_flags & sym_m_separate) == 0 ))
-       {
-           last_str_entry = 
-               sem_cat_str_to_str( last_str_entry, TRUE,
-                                   next_str_entry, op2_temporary );
-           last_str_entry->b_aux_flags |= sym_m_table_entry;
-           *ptr = last_str_entry;
-           next_str_entry =
-               (sym_value_entry_type *) next_str_entry->az_next_table_value;
-       }
-
-       ptr = (sym_value_entry_type * *)
-           &(last_str_entry->az_next_table_value);
-    }
-
-    if (op2_temporary)
-    {
-       *ptr = next_str_entry;
-       return;
-    }
-
-    for ( ; 
-        next_str_entry != NULL;
-        next_str_entry = (sym_value_entry_type *)
-            next_str_entry->az_next_table_value )
-    {
-       sym_value_entry_type    *new_str_entry;
-       unsigned short          old_size;
-
-       new_str_entry = (sym_value_entry_type *) 
-           sem_allocate_node( sym_k_value_entry,
-                              next_str_entry->header.w_node_size<<2 );
-
-       old_size = new_str_entry->header.w_node_size;
-
-       _sym_copy_entry( new_str_entry, 
-              next_str_entry,
-              next_str_entry->header.w_node_size );
-       
-       new_str_entry->header.w_node_size = old_size;
-       new_str_entry->obj_header.b_flags = sym_m_private | sym_m_builtin;
-       new_str_entry->obj_header.az_name = NULL;
-       new_str_entry->b_aux_flags |= sym_m_table_entry;
-
-       /* link to the end of the compound string */
-
-       *ptr = new_str_entry;
-       ptr = (sym_value_entry_type * *)
-           &(new_str_entry->az_next_table_value);
-    }
-
-    *ptr = NULL;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function concatenates 2 primitive strings.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_str1_entry      primitive string
-**     op1_temporary       op1 is a temporary string
-**      az_str2_entry      primitive string
-**     op2_temporary       op2 is a temporary string
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      ptr to the result string
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-sym_value_entry_type
-       *sem_cat_str_to_str
-           (az_str1_entry, op1_temporary, az_str2_entry, op2_temporary)
-
-sym_value_entry_type   *az_str1_entry;
-boolean                        op1_temporary;
-sym_value_entry_type   *az_str2_entry;
-boolean                        op2_temporary;
-
-{
-    sym_value_entry_type    *new_str_entry;
-    int                            l1, l2;
-
-    /*
-    ** Can only append two simple strings if they have the same direction and
-    ** the first does not have the separate attribute.
-    */
-    _assert(((az_str1_entry->b_charset == az_str2_entry->b_charset)
-            &&
-            ((az_str1_entry->b_direction) == (az_str2_entry->b_direction))
-           ),
-           "strings with different attrs concatenated" );
-
-    l1 = az_str1_entry->w_length;
-    l2 = az_str2_entry->w_length;
-
-    /* extra 1 is for terminating null */
-
-    new_str_entry = (sym_value_entry_type *) 
-       sem_allocate_node( sym_k_value_entry,
-                          sym_k_value_entry_size );
-    new_str_entry->value.c_value = XtCalloc(1, l1 + l2 + 1);
-
-
-    new_str_entry->obj_header.b_flags = sym_m_builtin | sym_m_private;
-
-    _sar_move_source_info_2 (&new_str_entry->header, &az_str1_entry->header);
-    new_str_entry->b_charset = az_str1_entry->b_charset;
-    new_str_entry->b_direction = az_str1_entry->b_direction;
-    new_str_entry->b_aux_flags =
-       (az_str1_entry->b_aux_flags & sym_m_separate);
-    new_str_entry->b_type = sym_k_char_8_value;
-    new_str_entry->w_length = l1 + l2;
-
-    _move( new_str_entry->value.c_value, 
-          az_str1_entry->value.c_value, l1 );
-
-    _move( &new_str_entry->value.c_value[ l1 ],
-          az_str2_entry->value.c_value,
-          l2+1 );
-
-    /* 
-    ** if either of the operands is unnamed - free the node 
-    */
-
-    if (op1_temporary)
-       {
-       _free_memory( az_str1_entry->value.c_value );
-       sem_free_node(( sym_entry_type *) az_str1_entry );
-       }
-
-    if (op2_temporary)
-       {
-       _free_memory( az_str2_entry->value.c_value );
-       sem_free_node(( sym_entry_type *) az_str2_entry );
-       }
-
-    return new_str_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function takes the charset sets understood by the parser
-**     and maps them to charsets understood by the symbol table and
-**     toolkit.
-**
-**  FORMAL PARAMETERS:
-**
-**      charset_as_subclass    sym_k_..._charset literal naming charset
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      sym_k...charset name for charset
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-int    sem_map_subclass_to_charset(charset_as_subclass)
-
-int    charset_as_subclass;
-
-{
-    switch (charset_as_subclass)
-    {
-
-    case lex_k_fontlist_default_tag:
-    case sym_k_fontlist_default_tag:
-      return sym_k_fontlist_default_tag;
-    case lex_k_default_charset:
-       return uil_sym_default_charset;
-    case lex_k_userdefined_charset:
-       return sym_k_userdefined_charset;
-    default:
-       _assert (charset_as_subclass!=0, "charset code==0");
-       _assert (charset_as_subclass<=uil_max_charset, "unknown charset");
-       return charset_as_subclass;
-    }
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function verifies the character set indicated by the user.
-**
-**  FORMAL PARAMETERS:
-**
-**      current_frame       current stack frame
-**      charset_frame       stack frame of CHARSET token
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void    sar_charset_verify ( charset_frame )
-
-yystype           *charset_frame;
-
-{
-    key_keytable_entry_type    *az_keyword_entry;
-
-    _assert(((charset_frame->b_tag == sar_k_token_frame) ||
-            (charset_frame->b_tag == sar_k_value_frame)),
-           "token or value frame missing" );
-
-    az_keyword_entry = charset_frame->value.az_keyword_entry;
-
-
-
-    /*
-    ** Store the current charset so it can be used by LEX to processes a
-    ** string literal (if the CHARSET_NAME is used to prefix a string literal)
-    */
-    Uil_lex_l_literal_charset = az_keyword_entry->b_subclass;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a random NAME into a CHARSET_NAME 
-**     with the default charset.
-**
-**  FORMAL PARAMETERS:
-**
-**      name_frame       current stack frame containing NAME
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      modified name_frame
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      name_frame converted from NAME to CHARSET_NAME
-**
-**--
-**/
-
-void sar_make_fallback_charset(name_frame)
-     yystype           *name_frame;
-{
-  sym_name_entry_type                  *symbol_entry;
-  static key_keytable_entry_type       *az_keyword_entry = NULL;
-
-  _assert(((name_frame->b_tag == sar_k_token_frame) ||
-          (name_frame->b_tag == sar_k_value_frame)),
-         "token or value frame missing" );
-
-  /* Get symbol and check if already used as charset. */
-  symbol_entry = (sym_name_entry_type *)name_frame->value.az_symbol_entry;
-  
-  if ((symbol_entry->b_flags & sym_m_charset) == 0)
-    {
-      symbol_entry->b_flags |= sym_m_charset;
-      diag_issue_diagnostic(d_default_charset,
-                           _sar_source_pos2(symbol_entry),
-                           symbol_entry->c_text,
-                           DEFAULT_TAG);
-    }
-  
-  /* Get the default charset keyword entry. */
-  if (az_keyword_entry == NULL)
-    az_keyword_entry = key_find_keyword(strlen(DEFAULT_TAG), DEFAULT_TAG);
-  
-  _assert((az_keyword_entry !=NULL), "default charset keyword missing");
-
-  /* Change NAME to CHARSET_NAME */
-  name_frame->value.az_keyword_entry = az_keyword_entry;
-  name_frame ->b_type = az_keyword_entry->b_token;
-
-  /*
-   **  Store the current charset so it can be used by LEX to processes a
-   **  string literal (if the NAME is used to prefix a string literal)
-   */
-    Uil_lex_l_literal_charset = az_keyword_entry->b_subclass;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function checks the attributes of CHARACTER_SET function.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame           pointer to resultant token stack frame
-**      value_frame            pointer to frame holding keyword and value
-**      prior_value_frame      pointer to previous properties
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      attribute information is stuffed in target frame
-**
-**--
-**/
-
-void   sar_chk_charset_attr( target_frame, value_frame, prior_value_frame )
-
-yystype            *target_frame;
-yystype            *value_frame;
-yystype            *prior_value_frame;
-{
-
-    /*
-    ** Set up not specified values in the target frame.
-    **     b_type will hold the sixteen_bit property
-    */
-
-    switch (prior_value_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       /*
-       ** no prior values
-       */
-
-       target_frame->b_tag = sar_k_token_frame;
-       target_frame->b_direction = NOSTRING_DIRECTION;
-       target_frame->b_charset = uil_sym_default_charset;
-       target_frame->b_type = 0;
-       break;
-
-    case sar_k_token_frame:
-    case sar_k_value_frame:
-       /*
-       **  prior values - transfer them
-       */
-
-       target_frame->b_tag = sar_k_token_frame;
-       target_frame->b_direction = prior_value_frame->b_direction;
-       target_frame->b_charset = prior_value_frame->b_charset;
-       target_frame->b_type = prior_value_frame->b_type;
-       break;
-    default:
-       _assert( FALSE, "prior value frame missing from stack" );
-    }
-
-    /*
-    ** Case on the keyword for the attribute given
-    */
-
-    switch (value_frame->b_type)
-    {
-    case RIGHT_TO_LEFT:
-    {
-       sym_value_entry_type    *value_entry;
-
-       value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-
-       /*
-       **  If the value is a boolean, then just set the corresponding mask 
-       **  accordingly.
-       */
-       if (value_entry->b_type == sym_k_bool_value)
-           if (value_entry->value.l_integer == TRUE)
-               target_frame->b_direction = XmSTRING_DIRECTION_R_TO_L;
-           else
-               target_frame->b_direction = XmSTRING_DIRECTION_L_TO_R;
-
-       break;
-    }
-
-    case SIXTEEN_BIT:
-    {
-       sym_value_entry_type    *value_entry;
-
-       value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-
-       /*
-       **  If the value is a boolean, then just set the corresponding mask 
-       **  accordingly.
-       */
-       if (value_entry->b_type == sym_k_bool_value)
-           if (value_entry->value.l_integer == TRUE)
-               target_frame->b_type |= sym_m_sixteen_bit; 
-           else
-               target_frame->b_type &= ~sym_m_sixteen_bit; 
-
-       break;
-    }
-
-    default:
-       _assert( FALSE, "keyword missing from stack" );
-    }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function makes a CHARACTER_SET and sets the properties
-**     of the string.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant token stack frame
-**     value_frame     pointer to string value
-**      attr_frame     pointer to strings attributes
-**     keyword_frame   frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_charset (target_frame, value_frame, attr_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *value_frame;
-yystype            *attr_frame;
-yystype            *keyword_frame;
-{
-    sym_value_entry_type    *value_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame,
-            "value frame missing from stack" );
-
-
-    /*
-    **  Set the character set information into the symbol table
-    **  entry for the char_8 string that indentifies the name of this
-    **  userdefined character set.
-    */
-    value_entry =
-       (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-    value_entry->b_charset = sym_k_userdefined_charset;
-/* BEGIN HaL fix CR 5547 */
-    sem_evaluate_value (value_entry); 
-    if (value_entry->b_type != sym_k_char_8_value)
-        diag_issue_diagnostic
-            (d_wrong_type,
-             _sar_source_pos2( value_entry ),
-             diag_value_text( value_entry->b_type ),
-             "null-terminated string");
-/* END HaL fix CR 5547 */
-  
-    /*
-    **  If the attr_frame is not null, it must be a value frame with contains
-    **  a pointer to the attributes frame for this userdefined charset.
-    */
-    if (attr_frame->b_tag == sar_k_token_frame)
-       {
-       /*
-       **  Set the attributes of the string, as specified by the options
-       **  to the CHARACTER_SET function, without disturbing any
-       **  existing bits.
-       */
-       value_entry->b_direction = attr_frame->b_direction;
-       value_entry->b_aux_flags = (attr_frame->b_type & sym_m_sixteen_bit);
-       }
-
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_char_8_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry = value_frame->value.az_symbol_entry;
-
-
-    /*
-    **  Store the current charset so it can be used by LEX to processes a
-    **  string literal (if the CHARACTER_SET function is used to prefix a
-    **  string literal)
-    */
-    Uil_lex_l_literal_charset = lex_k_userdefined_charset;
-    Uil_lex_az_literal_charset = value_entry;
-}
-
-
diff --git a/cde/osf/uil/UilSarDef.h b/cde/osf/uil/UilSarDef.h
deleted file mode 100644 (file)
index 7ae415e..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilSarDef.h /main/10 1995/07/14 09:36:55 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL parser.
-**     UIL uses YACC as its parsing tool.
-**
-**--
-**/
-
-#ifndef UilSarDef_h
-#define UilSarDef_h
-
-
-
-/*
-**  Format of a value on YACC value stack.  This is also the form of a
-**  token created by the lexical analyzer.
-*/
-
-#define            sar_k_null_frame    0       /* tag for an epsilon production */
-#define            sar_k_token_frame   1       /* tag for a token frame */
-#define            sar_k_value_frame   2       /* tag for a value frame */
-#define            sar_k_module_frame  3       /* tag for module frame */
-#define     sar_k_object_frame 4       /* tag for object frame */
-#define     sar_k_root_frame    5      /* tag for root frame */
-
-typedef struct
-{
-    src_source_record_type  *az_source_record; /* actual record where token exists */
-    unsigned char          b_source_pos;       /* the character in az_source_record
-                                                  where this token begins */
-    unsigned char          b_source_end;       /* the character in az_source_record
-                                                  where this token ends */
-    unsigned char          b_tag;              /* tag of stack frame */
-    unsigned char          b_type;             /* for tokens - token number
-                                                  for value - the data type */
-    unsigned short         b_flags;            /* used by value */
-    unsigned char          b_direction;        /* used by value */
-    unsigned char          b_charset;          /* used by value */
-    union
-    {
-    /* must be capable of holding a pointer */
-       long                l_integer;          /* integer value*/
-       sym_entry_type      *az_symbol_entry;   /* symbol entry */
-       key_keytable_entry_type
-                           *az_keyword_entry;  /* keyword entry */
-    }  value;
-} yystype;
-
-
-/*
-**  Macros for moving source information to and from parse stack frames
-*/
-
-#define    _sar_move_source_info( _target, _source )                   \
-          {                                                            \
-               yystype     *__target;                                  \
-               yystype     *__source;                                  \
-                                                                       \
-               __target = (_target);  __source = (_source);            \
-               __target->az_source_record = __source->az_source_record;\
-               __target->b_source_pos = __source->b_source_pos;        \
-               __target->b_source_end = __source->b_source_end;        \
-          }
-
-#define    _sar_move_source_info_2( _target, _source )         \
-   {                                                           \
-       sym_entry_header_type   *__target;                      \
-       sym_entry_header_type   *__source;                      \
-                                                               \
-       __target = (_target);  __source = (_source);            \
-                                                               \
-       __target->az_src_rec = __source->az_src_rec;            \
-       __target->b_src_pos = __source->b_src_pos;              \
-       __target->b_end_pos = __source->b_end_pos;              \
-   }
-
-
-#define _sar_save_source_info( _target, _src_beg, _src_end )   \
-   {                                                           \
-       sym_entry_header_type   *__target;                      \
-       XmConst yystype                 *__src_end;             \
-                                                               \
-       __target = (_target);                                   \
-       __src_end = (_src_end);                                 \
-                                                               \
-       __target->az_src_rec    = __src_end->az_source_record;  \
-       __target->b_src_pos     = __src_end->b_source_pos;      \
-       __target->b_end_pos     = __src_end->b_source_end;      \
-   }
-
-#define _sar_save_source_pos( _target, _src )                  \
-   {                                                           \
-       sym_entry_header_type   *__target;                      \
-       XmConst yystype         *__src;                         \
-                                                               \
-       __target = (_target);   __src = (_src);                 \
-                                                               \
-       __target->az_src_rec    = __src->az_source_record;      \
-       __target->b_src_pos     = __src->b_source_pos;          \
-       __target->b_end_pos     = __src->b_source_end;          \
-   }
-
-#define    _sar_source_position( _source )                     \
-               _source->az_source_record,                      \
-               _source->b_source_pos
-
-#define    _sar_source_pos2( _source )                         \
-               _source->header.az_src_rec,                     \
-               _source->header.b_src_pos
-
-
-
-#endif /* UilSarDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilSarExp.c b/cde/osf/uil/UilSarExp.c
deleted file mode 100644 (file)
index dc0feba..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilSarExp.c /main/11 1995/07/14 09:37:03 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module supports value expressions in UIL.  
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes a binary arithmetic operator in an expression
-**
-**  FORMAL PARAMETERS:
-**
-**      operator_frame: [in-out]    frame holding the operator and the
-**                                 target frame
-**     op1_frame: [in]             frame holding operand 1
-**     op2_frame: [in]             frame holding operand 2
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      op1 or op2 symbol entry may be freed
-**
-**--
-**/
-void   sar_binary_op(operator_frame, op1_frame, op2_frame)
-
-yystype            *operator_frame;
-yystype            *op1_frame;
-yystype            *op2_frame;
-
-{
-    sym_value_entry_type    *res_entry;
-    int                            operator;
-
-    _assert( operator_frame->b_tag == sar_k_token_frame,
-            "operator missing" );
-
-       res_entry = (sym_value_entry_type *)
-                       sem_allocate_node( sym_k_value_entry,
-                                      sym_k_value_entry_size );
-
-       res_entry->obj_header.b_flags = sym_m_builtin | sym_m_private;
-       res_entry->b_type = sym_k_any_value;
-
-/*     res_entry->az_source_rec = op1_frame->az_source_record; */
-
-       _sar_save_source_pos (&res_entry->header, op1_frame);
-
-    /*
-    ** Determine the operator from the operator frame
-    */
-
-    switch (operator_frame->b_type)
-    {
-    case AND:
-           operator = sym_k_and_op;
-       break;
-
-    case PLUS:
-       operator = sym_k_add_op;
-       break;
-
-    case MINUS:
-       operator = sym_k_subtract_op;
-       break;
-
-    case MULTIPLY:
-       operator = sym_k_multiply_op;
-       break;
-
-    case DIVIDE:
-       operator = sym_k_divide_op;
-       break;
-
-    case LEFT_SHIFT:
-       operator = sym_k_left_shift_op;
-       break;
-
-    case RIGHT_SHIFT:
-       operator = sym_k_right_shift_op;
-       break;
-
-    case OR:
-       operator = sym_k_or_op;
-       break;
-
-    case XOR:
-       operator = sym_k_or_op;
-       break;
-
-    default:
-       _assert( FALSE, "unknown binary operator" );
-    }
-
-    res_entry->b_expr_opr = operator;
-
-    /*
-    ** If the value is a forward reference, we'll patch in the
-    ** address of the the referenced value between passes.  Otherwise,
-    ** just point to the referenced value node.
-    */
-    if ((op1_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (op1_frame, 
-       (char*)&(res_entry->az_exp_op1), sym_k_patch_add);
-    else    
-       res_entry->az_exp_op1 =
-           (sym_value_entry_type *) op1_frame->value.az_symbol_entry;
-
-    if ((op2_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (op2_frame, 
-       (char*)&(res_entry->az_exp_op2), sym_k_patch_add);
-    else    
-       res_entry->az_exp_op2 =
-           (sym_value_entry_type *) op2_frame->value.az_symbol_entry;
-
-    operator_frame->b_tag = sar_k_value_frame;
-    operator_frame->b_type = res_entry->b_type;
-    operator_frame->b_flags = res_entry->obj_header.b_flags;
-    operator_frame->value.az_symbol_entry =
-               (sym_entry_type *) res_entry;
-
-    return;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes a unary arithmetic operator in an expression
-**
-**  FORMAL PARAMETERS:
-**
-**      operator_frame: [in-out]    frame holding the operator and the
-**                                 target frame
-**     op1_frame: [in]             frame holding operand 1
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      op1 symbol entry may be freed
-**
-**--
-**/
-void   sar_unary_op(operator_frame, op1_frame)
-
-yystype            *operator_frame;
-yystype            *op1_frame;
-
-{
-    sym_value_entry_type    *res_entry;
-    int                            operator;
-    int                            res_type;
-
-
-    _assert( operator_frame->b_tag == sar_k_token_frame,
-            "operator missing" );
-
-    /*
-    ** Determine the operator from the operator frame
-    */
-
-    switch (operator_frame->b_type)
-    {
-    case PLUS:
-       operator = sym_k_unary_plus_op;
-       break;
-
-    case MINUS:
-       operator = sym_k_unary_minus_op;
-       break;
-
-    case NOT:
-       operator = sym_k_not_op;
-       break;
-
-    case INTEGER:
-       res_type = sym_k_integer_value;
-       operator = sym_k_coerce_op;
-        break;
-    case FLOAT:
-       res_type = sym_k_float_value;
-       operator = sym_k_coerce_op;
-        break;
-    case SINGLE_FLOAT:
-       res_type = sym_k_single_float_value;
-       operator = sym_k_coerce_op;
-        break;
-    case KEYSYM:
-       res_type = sym_k_keysym_value;
-       operator = sym_k_coerce_op;
-        break;
-
-
-    default:
-       _assert( FALSE, "unknown unary operator" );
-    }
-
-    /*
-    ** Create the result
-    */
-
-    res_entry = (sym_value_entry_type *)
-       sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-    
-    res_entry->b_expr_opr = operator;
-    /* Begin fixing OSF CR 5691 */
-    res_entry->b_type = operator; 
-    /* End fixing OSF CR 5691 */    
-    res_entry->az_exp_op1 =
-       (sym_value_entry_type *) op1_frame->value.az_symbol_entry;
-    res_entry->obj_header.b_flags = sym_m_builtin | sym_m_private;
-    if (operator == sym_k_coerce_op)
-       res_entry->b_type = res_type;
-    
-    _sar_save_source_pos (&res_entry->header, op1_frame );
-
-    operator_frame->b_tag = sar_k_value_frame;
-    operator_frame->b_type = res_entry->b_type;
-    operator_frame->b_flags = res_entry->obj_header.b_flags;
-    operator_frame->value.az_symbol_entry = (sym_entry_type *) res_entry;
-    
-    return;
-
-}
-
diff --git a/cde/osf/uil/UilSarInc.c b/cde/osf/uil/UilSarInc.c
deleted file mode 100644 (file)
index 99412fc..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSarInc.c /main/12 1997/03/12 15:21:31 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the routines for processing the INCLUDE construct.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Xm/Xm.h>
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine handles the include directive.
-**
-**  FORMAL PARAMETERS:
-**
-**      file_frame     parser stack frame that contains the name of the
-**                     file to be included.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_include_file ( file_frame, include_frame, semi_frame )
-
-yystype            * file_frame;
-yystype            * include_frame;
-yystype            * semi_frame;
-
-{
-    sym_value_entry_type       * value_entry;
-    sym_include_file_entry_type        * include_entry;
-    sym_section_entry_type     * section_entry;
-    sym_section_entry_type     * section_tail_entry;
-    char                       * buffer;
-    unsigned char                tmp1;
-    int                                  i,j;
-
-    value_entry =
-       (sym_value_entry_type *) file_frame -> value . az_symbol_entry;
-
-/*
- * Fix for CR 5465 - If the value_entry is not of type char_8, print an 
- *                   error message and abort the compilation
- */
-    if ((value_entry->b_type != sym_k_char_8_value) &&
-       (value_entry->b_type != sym_k_localized_string_value))
-      diag_issue_diagnostic (
-             d_include_file,
-             _sar_source_pos2(value_entry));
-/*
- * End Fix for CR 5465
- */
-/*
- * If the direction is RtoL then reverse the include file.
- */
-    if (value_entry->b_direction == XmSTRING_DIRECTION_R_TO_L) 
-       {
-       /*
-       **  Just reverse the bytes from the first to last
-       */
-       for (i=0, j=value_entry->w_length-1;  
-            i < (int)((int)value_entry->w_length>>1);  
-            i++,j--)
-           {
-           tmp1 = value_entry->value.c_value[ i ];
-           value_entry->value.c_value[ i ] = 
-               value_entry->value.c_value[ j ];
-           value_entry->value.c_value[ j ] = tmp1;
-           }
-       }
-
-    _assert (value_entry -> header . b_tag == sym_k_value_entry,
-            "missing value entry for include");
-
-    /*
-    ** Allocate an INCLUDE entry
-    */
-
-    include_entry = (sym_include_file_entry_type *) sem_allocate_node
-                       ( sym_k_include_file_entry, sym_k_include_file_entry_size );
-
-    /*
-    ** Open the include file.  Set up a null-terminated name string.
-    */
-
-    buffer = (char *) _get_memory (value_entry -> w_length + 1);
-    _move (buffer, value_entry -> value . c_value,
-                  value_entry -> w_length);
-    buffer [value_entry -> w_length] = 0 ;
-
-    src_open_file (buffer, include_entry->full_file_name);
-
-    /*
-    **  Allocate a section entry for this include "section".
-    **  Store the source info in it
-    */
-
-    section_entry = (sym_section_entry_type *) sem_allocate_node
-                       ( sym_k_section_entry, sym_k_section_entry_size );
-
-    section_entry->header.b_type = sym_k_include_section;
-
-    _sar_save_source_info ( &section_entry->header , include_frame , semi_frame );
-
-    /*
-    ** Link this section into the current section list.
-    */
-
-    section_entry->next = (sym_entry_type *) sym_az_current_section_entry;
-    section_entry->prev_section = sym_az_current_section_entry->prev_section;
-    sym_az_current_section_entry = section_entry;
-
-    /*
-    ** Link the include intry we created earlier onto the section list
-    */
-
-    section_entry->entries = (sym_entry_type *)include_entry;
-
-    /*
-    **  Save the file name
-    */
-
-    _move (include_entry->file_name, buffer, value_entry->w_length);
-    include_entry->file_name [value_entry->w_length] =  0;
-
-    /*
-    ** Since this is an INCLUDE we want included sections to hang off
-    ** of it so we create a new place holder entry (tail) and change the
-    ** "current" section list to it.
-    */
-
-    section_tail_entry = (sym_section_entry_type *) sem_allocate_node
-                           ( sym_k_section_entry, sym_k_section_entry_size );
-
-    section_tail_entry->header.b_type = sym_k_section_tail;
-
-    include_entry->sections = section_tail_entry;
-
-    section_tail_entry->prev_section = sym_az_current_section_entry;
-    sym_az_current_section_entry = section_tail_entry;
-
-    _free_memory (buffer);
-
-}
diff --git a/cde/osf/uil/UilSarMod.c b/cde/osf/uil/UilSarMod.c
deleted file mode 100644 (file)
index 0f26f71..0000000
+++ /dev/null
@@ -1,887 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSarMod.c /main/13 1997/03/12 15:21:36 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the routines for processing the module construct.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-/*
-**
-**  TABLE OF CONTENTS
-**
-*/
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-extern   yystype                       yylval;
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-externaldef(uil_comp_glbl) src_source_record_type
-       *src_az_module_source_record;
-externaldef(uil_comp_glbl) unsigned short int  
-       *uil_urm_variant = NULL;
-externaldef(uil_comp_glbl) unsigned short int
-       *uil_arg_compr = NULL;
-externaldef(uil_comp_glbl) unsigned short int
-       *uil_reas_compr = NULL;
-externaldef(uil_comp_glbl) unsigned short int
-       *uil_widget_compr = NULL;
-externaldef(uil_comp_glbl) unsigned short int
-       *uil_child_compr = NULL;
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-unsigned int   module_clauses;
-
-#define m_version_clause       (1<<0)
-#define m_names_clause         (1<<1)
-#define m_charset_clause       (1<<2)
-#define m_objects_clause       (1<<3)
-
-#define m_after_names          (m_charset_clause)
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This function initializes all static data structure for the semantic
-**     action routines.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      uil_urm_variant
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      global variables are initialized 
-**
-**--
-**/
-
-void   sar_initialize ()
-
-{
-int            i;      /* loop index */
-
-/* BEGIN OSF Fix CR 5443 */
-/* Initialize uil_sym_default_charset based on XmFALLBACK_CHARSET */
-if (strcmp(XmFALLBACK_CHARSET, "ISO8859-1") != 0) /* Most common case. */
-  for (i = 0; i < (int)charset_lang_table_max; i++)
-    if (strcmp(XmFALLBACK_CHARSET, charset_lang_names_table[i]) == 0)
-      {
-       uil_sym_default_charset = charset_lang_codes_table[i];
-       break;
-      }
-/* END OSF Fix CR 5443 */
-
-/*
- * Allocate vectors for the variant and usage vectors if they are NULL,
- */
-if ( uil_urm_variant == NULL )
-    uil_urm_variant = (unsigned short int *)
-       XtMalloc(sizeof(unsigned short int)*(uil_max_object+1));
-if ( uil_arg_compr == NULL )
-    uil_arg_compr = (unsigned short int *)
-       XtMalloc(sizeof(unsigned short int)*(uil_max_arg+1));
-if ( uil_reas_compr == NULL )
-    uil_reas_compr = (unsigned short int *)
-       XtMalloc(sizeof(unsigned short int)*(uil_max_reason+1));
-if ( uil_widget_compr == NULL )
-    uil_widget_compr = (unsigned short int *)
-       XtMalloc(sizeof(unsigned short int)*(uil_max_object+1));
-if ( uil_child_compr == NULL )
-    uil_child_compr = (unsigned short int *)
-       XtMalloc(sizeof(unsigned short int)*(uil_max_child+1));
-/*
- **    Loop throught the array of object variants and set them all to NULL.
- */
-for (i = 0; i<uil_max_object+1; i++)
-    uil_urm_variant[i] = 0;   
-
-/*
- ** Initialize all compression vectors
- */
-for ( i=0 ; i<uil_max_arg+1 ; i++ )
-    uil_arg_compr[i] = 0;
-for ( i=0 ; i<uil_max_reason+1 ; i++ )
-    uil_reas_compr[i] = 0;
-for ( i=0 ; i<uil_max_object+1 ; i++ )
-    uil_widget_compr[i] = 0;
-for ( i=0 ; i<uil_max_child+1 ; i++ )
-    uil_child_compr[i] = 0;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates the root entry node for the compilation.
-**     The "root" entry is the root node of the symbol tree and is
-**     what's passed back to the caller of the compiler.
-**
-**  FORMAL PARAMETERS:
-**
-**      root_frame     ptr to root frame that will remain on the stack
-**                     throughout the compilation
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     sym_az_root_entry               global pointer used thoughout the compilation
-**     sym_az_curent_section_entry     global pointer used thoughout the compilation
-**     src_az_first_source_record      global pointer to the source record list
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     none
-**
-**--
-**/
-
-void   sar_create_root (root_frame)
-
-yystype            *root_frame;
-
-{
-    /*
-    ** Allocate the symbol nodes
-    */
-
-    sym_az_root_entry = (sym_root_entry_type *)
-               sem_allocate_node (sym_k_root_entry, sym_k_root_entry_size);
-
-    /*
-    ** Create a place holder entry (tail) and change the "current" section list to it.
-    */
-
-    sym_az_current_section_entry = (sym_section_entry_type *) sem_allocate_node
-                           ( sym_k_section_entry, sym_k_section_entry_size );
-
-    sym_az_current_section_entry->header.b_type = sym_k_section_tail;
-
-    sym_az_root_entry->sections = sym_az_current_section_entry;
-    sym_az_root_entry->src_record_list = src_az_first_source_record;
-
-    /*
-    ** Save the file name and the expanded version of it.
-    */
-
-    strcpy (sym_az_root_entry->file_name, Uil_cmd_z_command.ac_source_file);
-    strcpy (sym_az_root_entry->full_file_name, src_az_source_file_table[0]->expanded_name);
-
-    /*
-    ** Save the symbol node in the root frame.
-    */
-
-    root_frame->b_tag = sar_k_root_frame;
-    root_frame->b_type = sym_k_root_entry;
-    root_frame->value.az_symbol_entry = (sym_entry_type *)sym_az_root_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function create the module entry symbol node for the compilation.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   ptr to module frame that will remain on the stack
-**                     throughout the compilation
-**     id_frame        ptr to token frame for the module name
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_root_entry       global that points to the root entry
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_module_entry    global that points to module entry
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      set second line of the listing title
-**
-**--
-**/
-
-void   sar_create_module(target_frame, id_frame, module_frame)
-
-yystype            *target_frame;
-yystype            *id_frame;
-yystype            *module_frame;
-
-{
-    sym_name_entry_type            *name_entry;
-
-    /*
-    **  Call standard routine to check name entry for id_frame.
-    ** This routine handles font name, color names, etc used as ids
-    */
-
-    name_entry = (sym_name_entry_type *) sem_dcl_name( id_frame );
-
-    /*
-    ** Allocate the module entry and fill it in
-    */
-
-    sym_az_module_entry = (sym_module_entry_type *)
-       sem_allocate_node (sym_k_module_entry, sym_k_module_entry_size);
-    sym_az_module_entry->obj_header.az_name = name_entry;
-    _sar_save_source_pos (&sym_az_module_entry->header, module_frame);
-
-    /* preserve module header comments */
-    sar_assoc_comment ((sym_obj_entry_type *)sym_az_module_entry);  
-
-    /*
-    ** Hang the module entry off the root entry
-    */
-
-    sym_az_root_entry->module_hdr = sym_az_module_entry;
-
-    /*
-    ** Have name entry point to the module entry too.  This stops the
-    ** name from being reused to name another construct.
-    */
-
-    name_entry->az_object = (sym_entry_type *) sym_az_module_entry;
-
-    /*
-    ** Save the source information about module name identifier
-    */
-
-    _sar_save_source_info ( &name_entry->header , module_frame , id_frame );
-
-    /*
-    ** Set up target frame
-    */
-
-    target_frame->b_tag = sar_k_module_frame;
-
-    /*
-    ** Set up listing title
-    */
-
-    if (Uil_cmd_z_command.v_listing_file)
-       sprintf(Uil_lst_c_title2, 
-               "Module: %s", 
-               name_entry->c_text );
-
-    /*
-    ** Set mask to no clauses seen
-    */
-
-    module_clauses = 0;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function sets a version string for the module.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    ptr to value frame for version string
-**
-**  IMPLICIT INPUTS:
-**
-**     none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_module_entry    global that point to module entry
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      set up second line of the listing title
-**
-**--
-**/
-
-void   sar_process_module_version (value_frame, start_frame)
-
-yystype            *value_frame;
-yystype            *start_frame;
-
-{
-    sym_value_entry_type    *value_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame, "value frame missing" );
-
-    if ((module_clauses & m_version_clause) != 0)
-       diag_issue_diagnostic
-           ( d_single_occur,
-             _sar_source_position( value_frame ),
-             "UIL", "module", "version", "clause"
-           );
-
-    /*
-    ** FORWARD REFERENCING OF VERSION NO LONGER ALLOWED
-    ** If it's not a forward reference, verify its length and stick a pointer
-    ** to the value node of the version in the module entry.
-    */
-
-    if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-      diag_issue_diagnostic(d_illegal_forward_ref,
-                           _sar_source_position(value_frame),
-                           "Module Version"
-           );
-
-    else
-       {
-       value_entry = (sym_value_entry_type *) 
-           value_frame->value.az_symbol_entry;
-
-       if (value_entry->w_length > 31)
-       {
-           diag_issue_diagnostic
-               ( d_out_range,
-                 _sar_source_position( value_frame ),
-                 "version string",
-                 "0..31 characters"
-               );
-
-           value_entry->w_length = 31;
-       }
-
-    sym_az_module_entry->az_version = value_entry;
-       }
-
-    /*
-    ** Save source info
-    */
-
-    _sar_save_source_info ( &sym_az_module_entry->az_version->header , start_frame , value_frame);
-
-    /*
-    ** Set up listing title
-    */
-
-    if (Uil_cmd_z_command.v_listing_file)
-       sprintf(Uil_lst_c_title2, 
-               "Module: %s \t Version: %s", 
-               sym_az_module_entry->obj_header.az_name->c_text,
-               value_entry->value.c_value );
-
-    module_clauses |= m_version_clause;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function sets the case sensitivity of names for the module.
-**
-**  FORMAL PARAMETERS:
-**
-**      token_frame    ptr to token frame for keyword sensitive or insensitive
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_module_entry     global which points to module entry
-**
-**  IMPLICIT OUTPUTS:
-**
-**      uil_v_case_sensitive   global which control case sensitivity of names
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_process_module_sensitivity (token_frame, start_frame)
-
-yystype            *token_frame;
-yystype            *start_frame;
-
-{
-    _assert( token_frame->b_tag == sar_k_token_frame, "token frame missing" );
-
-    if ((module_clauses & m_names_clause) != 0)
-       diag_issue_diagnostic
-           ( d_single_occur,
-             _sar_source_position( token_frame ),
-             "UIL", "module", "names", "clause"
-           );
-
-    if ((module_clauses & m_after_names) != 0)
-       diag_issue_diagnostic
-           ( d_names,
-             _sar_source_position( token_frame )
-           );
-
-    uil_v_case_sensitive = (token_frame->b_type == CASE_SENSITIVE);
-
-    sym_az_module_entry->az_case_sense = (sym_value_entry_type *)
-                                        sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-
-    sym_az_module_entry->az_case_sense->header.b_type = uil_v_case_sensitive;
-
-    /*
-    ** Save source info
-    */
-
-    _sar_save_source_info ( &sym_az_module_entry->az_case_sense->header , start_frame , token_frame);
-
-    /* let the keyword table know of the sensitivity change */
-
-    key_initialize();
-
-
-    /*
-    ** The default for name sensitivity is SENSITIVE.
-    ** At the point that this semantic routine is called, the only valid
-    **  name seen so far is the module name.
-    */
-
-    module_clauses |= m_names_clause;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function sets the default charset for the module.
-**
-**  FORMAL PARAMETERS:
-**
-**      token_frame    ptr to token frame for charset
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_module_entry     global pointer to the module entry
-**
-**  IMPLICIT OUTPUTS:
-**
-**      Uil_lex_l_user_default_charset
-**     Uil_lex_az_charset_entry
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_process_module_charset(token_frame , start_frame)
-
-yystype            *token_frame;
-yystype            *start_frame;
-
-{
-    sym_value_entry_type       *value_entry;
-
-    _assert( (token_frame->b_tag == sar_k_token_frame) ||
-            (token_frame->b_tag == sar_k_value_frame), "token or value frame missing" );
-
-    if ((module_clauses & m_charset_clause) != 0)
-       diag_issue_diagnostic
-           ( d_single_occur,
-             _sar_source_position( token_frame ),
-             "UIL", "module", "character_set", "clause"
-           );
-
-    /*
-    **  There are two different ways that the charset info may be specified.
-    **  If the charset_frame is a token frame, then we can just grab the
-    **  token class and map it into a charset value.  If it is a value frame
-    **  the it is the result of the CHARACTER_SET function and is a string
-    **  value representing the character set.
-    */
-    switch (token_frame->b_tag)
-    {
-       case sar_k_token_frame:
-           {
-           key_keytable_entry_type     *az_keyword_entry;
-           az_keyword_entry = token_frame->value.az_keyword_entry;
-
-           Uil_lex_l_user_default_charset = az_keyword_entry->b_subclass;
-
-           value_entry = sem_create_value_entry (
-                                token_frame->value.az_keyword_entry->at_name,
-                                token_frame->value.az_keyword_entry->b_length, sym_k_char_8_value );
-           break;
-           }
-     
-       case sar_k_value_frame:
-           {
-           Uil_lex_l_user_default_charset = lex_k_userdefined_charset;
-           Uil_lex_az_charset_entry = (sym_value_entry_type *)token_frame->value.az_symbol_entry;
-           value_entry = (sym_value_entry_type *)token_frame->value.az_symbol_entry;
-           break;
-           }
-    }
-
-    /* If charset specified for module, then localized strings not allowed */
-    Uil_lex_l_localized = FALSE;
-    
-    module_clauses |= m_charset_clause;
-    sym_az_module_entry->az_character_set = value_entry;
-
-    /*
-    ** Save source info
-    */
-
-    _sar_save_source_info ( &value_entry->header , start_frame , token_frame);
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function saves the source record for the module header
-**     for possible later use in the machine code listing.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      yylval         Current token information from the lexical analyzer
-**
-**  IMPLICIT OUTPUTS:
-**
-**     src_az_module_source_record     source record for the module header
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_save_module_source ()
-
-{
-
-    src_az_module_source_record = yylval.az_source_record;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine creates and saves a default object specification
-**     for the module entry itself.
-**
-**  FORMAL PARAMETERS:
-**
-**      object_frame   ptr to token frame for "OBJECT" 
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     sym_az_module_entry     global pointer to the module entry
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_def_obj (object_frame)
-
-yystype            *object_frame;
-
-{
-sym_def_obj_entry_type *def_obj_entry;
-
-/*
- * Make def_obj entry and link into the chain headed in the module
- */
-def_obj_entry = (sym_def_obj_entry_type *) sem_allocate_node
-    (sym_k_def_obj_entry, sym_k_def_obj_entry_size);
-_sar_save_source_pos (&def_obj_entry->header, object_frame);
-def_obj_entry->next = sym_az_module_entry->az_def_obj;
-sym_az_module_entry->az_def_obj = def_obj_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function sets the default variants for objects which
-**     are defined in the module.
-**
-**  FORMAL PARAMETERS:
-**
-**      type_frame     ptr to token frame for object type
-**      variant_frame  ptr to token frame for variant
-**
-**  IMPLICIT INPUTS:
-**
-**      uil_gadget_variants    table to see if the gadget variant is supported
-**      uil_urm_variant                table to see if the object type has been
-**                             specified previously
-**     sym_az_module_entry     global pointing to the module entry
-**
-**  IMPLICIT OUTPUTS:
-**
-**      uil_urm_variant                table to contain the default variant for this
-**                             object type.
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_process_module_variant  (obj_type_frame, variant_frame)
-
-yystype            *obj_type_frame;
-yystype            *variant_frame;
-
-{
-
-    unsigned int               obj_type, obj_variant;
-    yystype                    *source_frame;
-    sym_def_obj_entry_type     *def_obj_entry;
-
-    source_frame = & yylval;
-
-    obj_type = obj_type_frame->value.az_keyword_entry->b_subclass;
-    obj_variant = variant_frame->b_type;
-
-/*  See if this object type has been specified before.  */
-
-    if ( uil_urm_variant[obj_type] != 0 )
-       {
-       diag_issue_diagnostic
-           (d_supersede,
-            _sar_source_position ( source_frame ),
-            diag_object_text (obj_type),
-            diag_tag_text (obj_variant),
-            diag_tag_text (sym_k_module_entry),
-            "" );
-       }
-
-/*  See if this object type supports gadgets.  */
-
-    if ( obj_variant == sym_k_gadget_entry )
-       {
-       if ( uil_gadget_variants[obj_type] == 0 )
-           {
-           diag_issue_diagnostic
-               (d_gadget_not_sup,
-                _sar_source_position ( source_frame ),
-                diag_object_text (obj_type),
-                diag_object_text (obj_type) );
-           obj_variant = sym_k_widget_entry;
-           }
-       }
-
-/*  Save the default variant information  */
-    uil_urm_variant[obj_type] = obj_variant;
-
-/*
-** get the latest def_obj entry and fill in
-*/
-    def_obj_entry = sym_az_module_entry->az_def_obj->next;
-    def_obj_entry->b_object_info = obj_type;
-    def_obj_entry->b_variant_info = obj_variant;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure saves source info for the various sections declaration
-**     lists in the Uil file (i.e. value, identifier, procedure, object, and
-**     list).
-**
-**  FORMAL PARAMETERS:
-**
-**      header_frame   ptr to token frame for the section declaration
-**     section_type    integer describing what section this is
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     sym_az_root_entry       global pointer to the root entry
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     none
-**
-**--
-*/
-
-void   sar_save_section_source (header_frame, section_type)
-
-yystype            *header_frame;
-int        section_type;
-
-{
-    sym_section_entry_type     *section_entry;
-
-    section_entry = (sym_section_entry_type *) sem_allocate_node
-                       ( sym_k_section_entry, sym_k_section_entry_size );
-
-    section_entry->header.b_type = section_type;
-
-    /*
-    ** Save source info
-    */
-
-    _sar_save_source_info ( &section_entry->header , header_frame, header_frame);
-
-    /*
-    ** Link this section into the current section list.
-    */
-
-    section_entry->next = (sym_entry_type *) sym_az_current_section_entry;
-    section_entry->prev_section = sym_az_current_section_entry->prev_section;
-    sym_az_current_section_entry = section_entry;
-
-}
diff --git a/cde/osf/uil/UilSarObj.c b/cde/osf/uil/UilSarObj.c
deleted file mode 100644 (file)
index 92a28c7..0000000
+++ /dev/null
@@ -1,2423 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilSarObj.c /main/14 1995/07/14 09:37:30 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the semantic action routines for
-**     object definitions in the UIL.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-/*
-**  This is a fast algorithm for mapping an integer (_size) to
-**         0   _size <= 8
-**         1   8 < _size <= 16
-**         2   16 < _size <= 32
-**         3   32 < _size <= 64
-**         4   64 < _size 
-**  The algorithm is based on the notion that the floating pt representation
-**  of an integer has an exponent that is the log_base2( int ).
-**
-**  This algorithm is specific to the VAX.  An alternate layout of the
-**  internal represention of a floating pt number could be supplied for
-**  other architectures.
-*/
-
-#define _compute_node_index( _size, _index ) \
-    {   unsigned short j, k; \
-        j = (_size); \
-        if (j <= 8) k = 0; \
-        else if (j <= 16) k = 1; \
-        else if (j <= 32) k = 2; \
-        else if (j <= 64) k = 3; \
-        else k = 4; \
-        (_index) = k; \
-    }
-         
-       
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-extern yystype                 gz_yynullval;
-extern yystype                 yylval;
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine associates the latest comment block
-**     with the current object frame.    RAP
-**
-**  FORMAL PARAMETERS:
-**
-**      object_frame           address of the parse stack frame for this
-**                             object.
-**
-**     
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the object frame contains the comment for this object.
-**
-**--
-**/
-
-void           sar_assoc_comment( object )
-
-sym_obj_entry_type    *object;
-{
-
-  object->obj_header.az_comment = (char *)_get_memory(strlen(comment_text)+1);
-  strcpy(object->obj_header.az_comment, comment_text);
-  comment_text[0] = '\0';
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine creates the symbol node for the object, and
-**     saves it in the object frame on the parse stack.
-**
-**  FORMAL PARAMETERS:
-**
-**      object_frame           address of the parse stack frame for this
-**                             object.
-**
-**     object_type             type literal for this object.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the object frame contains the symbol node for this object.
-**
-**--
-**/
-
-void           sar_create_object
-       ( yystype *object_frame, unsigned char object_type )
-
-{
-
-    sym_name_entry_type                * name_entry;
-    sym_obj_entry_type         * obj_entry;
-    int                                node_size;
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-    if (object_frame->b_tag != sar_k_null_frame)
-       {
-
-       /* 
-        ** First we check on the name to see if it has been previously used.
-        ** This function returns NULL if name cannot be used.
-        */
-       name_entry = (sym_name_entry_type *) sem_dcl_name (object_frame);
-       }
-    else
-       {
-       name_entry = NULL;
-       }
-
-/*    Determine the size of the symbol node to allocate.    */
-
-    switch (object_type)
-       {
-       case sym_k_gadget_entry:
-       case sym_k_widget_entry:
-           node_size = sym_k_widget_entry_size;
-           break;
-
-       case sym_k_list_entry:
-           node_size = sym_k_list_entry_size;
-           break;
-
-       default:
-           _assert (FALSE, "unexpected object type");
-           break;
-       }
-
-/*
- * Allocate the symbol node, connect it to its name, and save source info
- */
-    obj_entry = (sym_obj_entry_type *)
-       sem_allocate_node (object_type, node_size);
-    if (name_entry != NULL)
-       {
-       name_entry->az_object = (sym_entry_type *)obj_entry;
-       obj_entry->obj_header.az_name = (sym_name_entry_type *)name_entry;
-       }
-    _sar_save_source_pos (&obj_entry->header, source_frame );
-    sar_assoc_comment(obj_entry);  /* preserve comments */
-/*
- * Set the definition in progress bit.
- */
-    obj_entry->obj_header.b_flags |= sym_m_def_in_progress;
-
-/*
- * Save the symbol node in the object frame.
- */
-    object_frame->b_tag = sar_k_object_frame;
-    object_frame->b_type = object_type;
-    object_frame->value.az_symbol_entry = (sym_entry_type *)obj_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine creates the symbol node for the child, and
-**     saves it in the object frame on the parse stack.
-**
-**  FORMAL PARAMETERS:
-**
-**      object_frame           address of the parse stack frame for this
-**                             object.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      the object frame contains the symbol node for this child.
-**
-**--
-**/
-
-void           sar_create_child
-       ( yystype *object_frame )
-
-{
-    sym_obj_entry_type         * obj_entry;
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*
- * Allocate the symbol node, set its type, and save source info
- */
-    obj_entry = (sym_obj_entry_type *)
-       sem_allocate_node (sym_k_child_entry, sym_k_widget_entry_size);
-    obj_entry->header.b_type = 
-      object_frame->value.az_keyword_entry->b_subclass;
-
-    _sar_save_source_pos (&obj_entry->header, source_frame );
-    sar_assoc_comment(obj_entry);  /* preserve comments */
-/*
- * Indicate in compress table that this child type is used.
- */
-    uil_child_compr[obj_entry->header.b_type] = 1;
-    
-/*
- * Set the definition in progress bit.
- */
-    obj_entry->obj_header.b_flags |= sym_m_def_in_progress;
-
-/*
- * Save the symbol node in the object frame.
- */
-    object_frame->b_tag = sar_k_object_frame;
-    object_frame->b_type = sym_k_child_entry;
-    object_frame->value.az_symbol_entry = (sym_entry_type *)obj_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine creates and links a section node into the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**     id_frame        the token frame with the id for this entry.
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_current_section_entry    global pointer to the "current" section
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void   sar_link_section ( id_frame )
-
-yystype                        * id_frame;
-
-{
-sym_section_entry_type * section_entry;
-
-/*
- * Allocate a section entry. Link this entry of of the current section list
- */
-section_entry = (sym_section_entry_type *) sem_allocate_node
-    (sym_k_section_entry, sym_k_section_entry_size);
-section_entry->next = (sym_entry_type *)
-    sym_az_current_section_entry->entries;
-sym_az_current_section_entry->entries = (sym_entry_type *) section_entry;
-section_entry->entries = id_frame->value.az_symbol_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine saves the source information about where this
-**     semi-colon entry ends.
-**
-**  FORMAL PARAMETERS:
-**
-**     semi_frame      the token frame for the terminating semi-colon
-**                     for this entry.
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_current_section_entry    global pointer to the
-**             "current" section list
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     none
-**
-**--
-**/
-
-void   sar_save_src_semicolon_pos (semi_frame)
-
-yystype                        * semi_frame;
-
-{
-sym_section_entry_type * section_entry;
-
-section_entry = (sym_section_entry_type *)
-    sym_az_current_section_entry->entries;
-_sar_save_source_pos (&section_entry->entries->header, semi_frame);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This function saves the title end source for lists (i.e. "ARGUMENTS",
-**     "CALLBACKS", "PROCEDURES", and "CONTROLS").  The source saved here
-**     should be "}" or posibly an id_ref.
-**
-**  PARAMETERS:
-**
-**     close_frame     ptr to token frame for the closing source
-**
-**  IMPLICIT INPUTS:
-**
-**     the "current" list on the frame stack as returned by sem_find_object
-**
-**  IMPLICIT OUTPUTS:
-**
-**     none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     none
-**--
-**/
-
-void   sar_save_list_end (close_frame)
-
-yystype            *close_frame;
-
-{
-    sym_list_entry_type                * list_entry;
-    yystype                    * list_frame;
-
-    /*
-    ** Search the syntax stack for the object frame.
-    */
-
-    list_frame = sem_find_object (close_frame - 1);
-    list_entry = (sym_list_entry_type *) list_frame->value.az_symbol_entry;
-
-    _sar_save_source_pos ( &list_entry->header , close_frame );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This function saves the end source for just about any type
-**     of entry.
-**
-**  PARAMETERS:
-**
-**     close_frame     ptr to token frame for the closing source (probably
-**                     a semi-colon).
-**
-**  IMPLICIT INPUTS:
-**
-**     the "current" list on the frame stack as returned by sem_find_object
-**
-**  IMPLICIT OUTPUTS:
-**
-**     none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     none
-**--
-**/
-
-void   sar_save_src_entry_end (close_frame, entry_frame)
-
-yystype    *close_frame;
-yystype    *entry_frame;
-
-{
-    sym_entry_type             * entry;
-
-    /*
-    ** Extract the entry from the frame.
-    */
-
-    entry = (sym_entry_type *) entry_frame->value.az_symbol_entry;
-
-    /*
-    ** Case on the type of entry (source gets put in a different spot for
-    ** control entries).
-    */
-
-    if (entry->header.b_tag == sym_k_control_entry)
-       {
-       sym_control_entry_type *control_entry = (sym_control_entry_type *)entry;
-
-       _sar_save_source_pos (&control_entry->az_con_obj->header, close_frame);
-       }
-
-    /*
-    ** Save the source info in the default place
-    */
-
-    _sar_save_source_pos ( &entry->header , close_frame );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine sets flags in the stack entry for the object.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**      mask                   mask of flags to be set.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_set_object_flags 
-
-       (yystype *current_frame, unsigned char mask )
-
-{
-
-    sym_obj_entry_type         * obj_entry;
-    yystype                    * object_frame;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (current_frame - 1);
-    obj_entry = (sym_obj_entry_type *) object_frame->value.az_symbol_entry;
-
-/*    Set the flags for the object entry.      */
-
-    obj_entry->obj_header.b_flags |= mask;
-
-/*    If this is an exported or private object and it has a name, 
-**    make an external entry for it.   
-*/
-
-    if ((mask & (sym_m_exported | sym_m_private)) &&
-       (obj_entry->obj_header.az_name != NULL))
-       {
-       sym_make_external_def (obj_entry->obj_header.az_name);
-       }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine unsets flags in the stack entry for the object.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**      mask                   mask of flags to be unset.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_unset_object_flags 
-
-       (yystype *current_frame, unsigned char mask )
-
-{
-    yystype                    * object_frame;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (current_frame - 1);
-
-/*    Unset the flags for the object entry.    */
-
-    object_frame->b_flags &= ~mask;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine sets the type in the stack entry for the (list) object.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_set_list_type
-                       ( current_frame )
-
-yystype                * current_frame;
-
-{
-
-    sym_obj_entry_type         * obj_entry;
-    yystype                    * list_frame;
-
-/*    Search the syntax stack for the list frame.    */
-    list_frame = sem_find_object (current_frame-1);
-    obj_entry = (sym_obj_entry_type *) list_frame->value.az_symbol_entry;
-
-/*    Set the type for the list entry. */
-    obj_entry->header.b_type = current_frame->b_type;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine sets the type in the stack entry for the (widget) object.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_set_object_class
-                       ( current_frame )
-
-yystype                * current_frame;
-
-{
-
-    sym_obj_entry_type         * obj_entry;
-    yystype                    * object_frame;
-
-/*    Search the syntax stack for the object frame.    */
-    object_frame = sem_find_object (current_frame-1);
-    obj_entry = (sym_obj_entry_type *) object_frame->value.az_symbol_entry;
-
-/*    Set the type for the object entry.       */
-    obj_entry->header.b_type =
-       current_frame->value.az_keyword_entry->b_subclass;
-
-/*    
-**  Indicate in compression table that this object type is used.
-**  Note that user defined widgets don't get compression code entires.
-**  We always identify user defined widgets as MrmwcUnknown.
-*/
-    if ( obj_entry->header.b_type != uil_sym_user_defined_object )
-        uil_widget_compr[obj_entry->header.b_type] = 1;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine sets the variant in the stack entry for the object.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_set_object_variant
-                       ( current_frame )
-
-yystype                * current_frame;
-
-{
-
-    sym_obj_entry_type         * obj_entry;
-    yystype                    * object_frame;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (current_frame - 1);
-    obj_entry = (sym_obj_entry_type *) object_frame->value.az_symbol_entry;
-
-/*    Set the variant for the object entry.    */
-
-    switch (current_frame->b_type)
-       {
-
-/*    Use the module default for this object type.   */
-       case 0:
-           {
-           unsigned int        obj_type;
-
-           /*
-            * Pick up gadget variant (or widget variant) as specified
-            * by the module tables and the gadget variants
-            */
-           obj_type = obj_entry->header.b_type;
-           if (uil_urm_variant[obj_type] == sym_k_gadget_entry)
-               {
-               obj_entry->obj_header.b_flags |= sym_m_obj_is_gadget;
-               obj_entry->header.b_type = uil_gadget_variants [obj_type];
-               }
-
-           break;
-           }
-
-       case sym_k_widget_entry:
-           break;
-
-       case sym_k_gadget_entry:
-           {
-           unsigned int        obj_type;
-
-           /*
-            * Check if gadgets are supported for this object type.
-            * If so, change the object type to the matching code for
-            * the widget class which is the gadget.
-            */
-           obj_type = obj_entry->header.b_type;
-           if (uil_gadget_variants[obj_type] == 0)
-               {
-               yystype         * source_frame;
-
-               source_frame = & yylval;
-               diag_issue_diagnostic
-                   (d_gadget_not_sup,
-                    _sar_source_position (source_frame ),
-                    diag_object_text(obj_type),
-                    diag_object_text(obj_type) );
-               }
-           else
-               {
-               obj_entry->obj_header.b_flags |= sym_m_obj_is_gadget;
-               obj_entry->header.b_type = uil_gadget_variants [obj_type];
-               }
-
-           break;
-           }
-
-       default:
-           _assert (FALSE, "unexpected variant type");
-           break;
-       }
-
-    /*
-    ** If this object is a gadget, mark that gadgets of this type have been
-    ** used so we can later assign it a compression code. This is a safety
-    ** set against the actual widget class.
-    */
-
-    if ((obj_entry->obj_header.b_flags & sym_m_obj_is_gadget) != 0)
-       uil_widget_compr[obj_entry->header.b_type] = 1;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine finds the object frame on the parse stack.
-**
-**  FORMAL PARAMETERS:
-**
-**      current_frame          address of the current parse stack frame.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      address of the parse stack frame for this object.
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-yystype                * sem_find_object ( current_frame )
-
-yystype        * current_frame;
-
-{
-
-    yystype    * object_frame;
-
-    object_frame = current_frame;
-
-/*    Search the syntax stack for the object frame.    */
-
-    while ( (object_frame->b_tag != sar_k_object_frame) &&
-           (object_frame->b_tag != sar_k_module_frame) )
-       object_frame--;
-
-    if (object_frame->b_tag != sar_k_object_frame)
-        _assert (FALSE, "missing object frame on the parser stack");
-
-   return (object_frame);
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine processes a reference to an object in the
-**     UIL.  The reference may be a forward reference.
-**
-**  FORMAL PARAMETERS:
-**
-**      ref_frame              address of the parse stack frame for
-**                             the object reference.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_object_reference ( ref_frame )
-yystype        * ref_frame;
-
-{
-    yystype                    * obj_frame;
-    sym_obj_entry_type         * obj_entry;
-    sym_name_entry_type                * ref_name;
-    sym_obj_entry_type         * ref_entry;
-    sym_value_entry_type       * ref_value;
-    boolean                    invalid_ref;
-
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the object frame.    */
-
-    obj_frame = sem_find_object (ref_frame - 1);
-    obj_entry = (sym_obj_entry_type *) obj_frame->value.az_symbol_entry;
-    ref_name = (sym_name_entry_type *) ref_frame->value.az_symbol_entry;
-    ref_value = (sym_value_entry_type *) ref_name->az_object;
-    ref_entry = (sym_obj_entry_type *) ref_name->az_object;
-
-/*    Check if this name was previously defined for a different usage. */
-
-    if (ref_entry != NULL)
-       {
-       if ( ref_entry->header.b_tag==sym_k_widget_entry ||
-            ref_entry->header.b_tag==sym_k_gadget_entry ||
-            ref_entry->header.b_tag==sym_k_child_entry )
-           invalid_ref =
-               (ref_entry->header.b_tag!=obj_entry->header.b_tag) ||
-               ((ref_entry->header.b_type!=obj_entry->header.b_type) &&
-                (uil_gadget_variants[ref_entry->header.b_type]!=
-                 obj_entry->header.b_type) &&
-                (uil_gadget_variants[obj_entry->header.b_type]!=
-                 ref_entry->header.b_type));
-       else
-           invalid_ref =
-               (ref_entry->header.b_tag!=obj_entry->header.b_tag) ||
-               (ref_entry->header.b_type!=obj_entry->header.b_type);
-       
-       if ( invalid_ref )
-           {
-
-           char        * expected_type, * found_type;
-
-           if (ref_entry->header.b_tag == sym_k_list_entry)
-               found_type = diag_tag_text (ref_entry->header.b_type);
-           else if (ref_entry->header.b_tag == sym_k_widget_entry)
-               found_type = diag_object_text (ref_entry->header.b_type);
-           else if (ref_entry->header.b_tag == sym_k_gadget_entry)
-               found_type = diag_object_text (ref_entry->header.b_type);
-           else if (ref_entry->header.b_tag == sym_k_value_entry)
-               found_type = diag_value_text
-                   (((sym_value_entry_type *) ref_entry)->b_type);
-           else
-               found_type = "";
-
-           if (obj_entry->header.b_tag == sym_k_list_entry)
-               expected_type =
-                   diag_tag_text (obj_entry->header.b_type);
-           else
-               expected_type =
-                   diag_object_text (obj_entry->header.b_type);
-
-           diag_issue_diagnostic
-               ( d_obj_type,
-                 _sar_source_position ( source_frame ),
-                 found_type,
-                 diag_tag_text (ref_entry->header.b_tag),
-                 expected_type,
-                 diag_tag_text (obj_entry->header.b_tag) );
-
-           obj_entry->header.b_tag = sym_k_error_entry;
-
-            return;
-           }
-       }
-
-    switch (obj_entry->header.b_tag)
-       {
-
-       case sym_k_list_entry:
-           {
-
-    /*   Add this entry to the list.  A copy of the list will be made.    */
-
-           if ((ref_value != 0) && 
-               ((ref_value->obj_header.b_flags & sym_m_forward_ref) == 0))
-               {
-               ref_frame->value.az_symbol_entry = (sym_entry_type *)ref_entry;
-               sar_add_list_entry (ref_frame);
-               }
-           else
-               sar_add_forward_list_entry (ref_frame);
-           
-           break;
-           }
-
-       case sym_k_gadget_entry:
-       case sym_k_widget_entry:
-           {
-           int         make_fwd_ref;
-
-    /*    Mark the widget as referenced.       */
-
-           ref_name->b_flags |= sym_m_referenced;
-
-    /*    Mark the referencing object       */
-
-        obj_entry->obj_header.b_flags |= sym_m_obj_is_reference;
-
-    /*    Forward references are allowed for widgets or gadgets.  */
-
-           if (ref_entry == NULL)
-               make_fwd_ref = TRUE;
-           else
-               {
-
-    /*   A widget can reference itself; treat it as a forward reference. */
-
-               if (ref_entry->obj_header.b_flags & sym_m_def_in_progress)
-                   make_fwd_ref = TRUE;
-               else
-                   make_fwd_ref = FALSE;
-               }
-
-           if (make_fwd_ref)
-               {
-               /*    Add forward reference entry for this widget.      */
-
-               sym_make_forward_ref
-                   (ref_frame,
-                    obj_entry->header.b_type,
-                    (char*)& obj_entry->obj_header.az_reference );
-               }
-           else
-               {
-               /*   Save this reference in the widget. */
-               
-               obj_entry->obj_header.az_reference = (sym_entry_type *)ref_entry;
-               }
-           
-           break;
-           }
-
-       default:
-           {
-           _assert (FALSE, "unexpected object reference type");
-           break;
-           }
-       }
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine updates the parent list of every object in the controls
-**      list(s) for this object.  Parent lists are required in order to check
-**      constraint arguments.
-**
-**  FORMAL PARAMETERS:
-**
-**      control_list_frame             address of the parse stack frame for
-**                                             the control list.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_update_parent_list
-                       ( control_list_frame )
-
-yystype        * control_list_frame;
-
-{
-    yystype                    * widget_frame;
-    sym_widget_entry_type      * widget_entry;
-    sym_list_entry_type        * control_list_entry;
-
-/* Search the syntax stack for the widget frame. */
-
-    widget_frame = sem_find_object (control_list_frame - 1);
-    widget_entry = (sym_widget_entry_type *)
-                       widget_frame->value.az_symbol_entry;
-
-    _assert (widget_entry->header.b_tag == sym_k_widget_entry ||
-            widget_entry->header.b_tag == sym_k_gadget_entry ||
-            widget_entry->header.b_tag == sym_k_child_entry,
-            "widget missing from the stack");
-
-/* Get the control_list entry from the widget */
-
-    control_list_entry = (sym_list_entry_type *) 
-                       control_list_frame->value.az_symbol_entry;
-
-    _assert ((control_list_entry->header.b_tag == sym_k_list_entry ||
-             control_list_entry->header.b_tag == sym_k_error_entry),
-            "list entry missing");
-
-/* The control list contains control list entries as well as nested lists,
-** which in turn contain list entries and nested lists.
-** We need to call a recursive routine to traverse all the entries.
-*/
-
-    parent_list_traverse(widget_entry, control_list_entry);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine recursively traverses a control_list.  Control lists
-**     may contain control list entries as well as nested control lists.
-**     
-**      This routine also updates the parent list of every object in the 
-**     controls list(s) for this object.  Parent lists are required in order 
-**     to check constraint arguments.
-**
-**  FORMAL PARAMETERS:
-**
-**     widget_entry                    the widget to be entered in lists
-**      control_list_entry             A control_list or nested control list
-**                                     
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void parent_list_traverse (widget_entry, control_list_entry)
-    sym_widget_entry_type      *widget_entry;
-    sym_list_entry_type        *control_list_entry;
-
-{
-sym_obj_entry_type             *control_list_member;
-sym_control_entry_type         *control_entry;
-sym_nested_list_entry_type     *nested_control_list_entry;
-sym_widget_entry_type          *control_widget;
-int                            found;
-sym_forward_ref_entry_type     *fwd_ref_entry;
-sym_parent_list_type           *parent_node;
-sym_parent_list_type           *parent_ptr;
-
-
-    for (control_list_member = (sym_obj_entry_type *)control_list_entry ->
-                                       obj_header.az_next;
-       control_list_member != NULL;
-       control_list_member = (sym_obj_entry_type *)control_list_member ->
-                                       obj_header.az_next)
-       {
-       switch (control_list_member->header.b_tag)
-           {
-           case sym_k_nested_list_entry:
-               nested_control_list_entry = (sym_nested_list_entry_type *)
-                       control_list_member;
-                /* Begin fixing DTS 9497 */
-                if(nested_control_list_entry->az_list)
-                      parent_list_traverse (widget_entry,
-                                     nested_control_list_entry->az_list);
-                /* End fixing DTS 9497 */
-               break;
-           case sym_k_control_entry:
-               control_entry = (sym_control_entry_type *) control_list_member;
-
-/*  Get a pointer to one of the actual widgets in the control list */
-
-               control_widget =  control_entry->az_con_obj;
-
-/*
-**  If it's a widget reference, go find it.  If you can't find it, it must
-**  be a forward reference.  If so, find the forward reference entry for it
-**  and update it with a pointer to its parent.
-*/
-    
-               if ( control_widget->
-                       obj_header.b_flags & sym_m_obj_is_reference)
-                   if ( control_widget->obj_header.az_reference == NULL )
-                       {
-
-/*  Forward reference. Update forward reference entry. */
-
-                       found = FALSE;
-                       for (fwd_ref_entry = sym_az_forward_ref_chain;
-                           ((fwd_ref_entry != NULL) && (found == FALSE));
-                           fwd_ref_entry = fwd_ref_entry->az_next_ref)
-                           {
-                           if (fwd_ref_entry->a_update_location ==
-                               (char *) & control_widget->
-                               obj_header.az_reference)
-                               {
-                               found = TRUE;
-                               fwd_ref_entry->parent = widget_entry;
-                               }
-                           }            
-                       }
-                   else
-                       {
-/*  A widget reference, but already defined.  Go update its entry. */
-
-                       control_widget = (sym_widget_entry_type *)
-                           control_widget->obj_header.az_reference;
-                       found = FALSE;
-                       for (parent_ptr = control_widget->parent_list;
-                           ((parent_ptr != NULL) && (found == FALSE));
-                           parent_ptr = parent_ptr->next)
-                           {
-                           if (parent_ptr->parent == widget_entry)
-                               found = TRUE;
-                           }
-                       if (found == FALSE)
-                           {
-                           parent_node = (sym_parent_list_type *) 
-                               sem_allocate_node (sym_k_parent_list_entry, 
-                                                  sym_k_parent_list_size);
-                           parent_node->next = control_widget->parent_list;
-                           control_widget->parent_list = parent_node;
-                           parent_node->parent = widget_entry;
-                           }
-                       }
-               else
-                   {
-/*  An inline widget definition.  Go update its entry. */
-
-                   found = FALSE;
-                   for (parent_ptr = control_widget->parent_list;
-                       ((parent_ptr != NULL) && (found == FALSE));
-                       parent_ptr = parent_ptr->next)
-                       {
-                       if (parent_ptr->parent == widget_entry)
-                           found = TRUE;
-                       }
-                   if (found == FALSE)
-                       {
-                       parent_node = (sym_parent_list_type *) 
-                           sem_allocate_node (sym_k_parent_list_entry,
-                                              sym_k_parent_list_size);
-                       parent_node->next = control_widget->parent_list;
-                       control_widget->parent_list = parent_node;
-                       parent_node->parent = widget_entry;
-                       }
-                   }
-               }
-           }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine saves a widget feature in the widget symbol node.
-**
-**  FORMAL PARAMETERS:
-**
-**      feature_frame          address of the parse stack frame for
-**                             the widget feature.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_save_feature
-                       ( feature_frame )
-
-yystype        * feature_frame;
-
-{
-    yystype                    * widget_frame;
-    sym_widget_entry_type      * widget_entry;
-    sym_entry_type             * feature_entry;
-    sym_entry_type             * * ptr;
-
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the widget frame.    */
-
-    widget_frame = sem_find_object (feature_frame - 1);
-    widget_entry = (sym_widget_entry_type *)
-                       widget_frame->value.az_symbol_entry;
-
-    _assert (widget_entry->header.b_tag == sym_k_widget_entry ||
-            widget_entry->header.b_tag == sym_k_gadget_entry ||
-            widget_entry->header.b_tag == sym_k_child_entry,
-            "widget missing from the stack");
-
-    feature_entry = feature_frame->value.az_symbol_entry;
-
-    _assert ((feature_entry->header.b_tag == sym_k_list_entry ||
-             feature_entry->header.b_tag == sym_k_error_entry),
-            "list entry missing");
-
-    switch (feature_entry->header.b_type)
-       {
-
-       case sym_k_argument_entry:
-           ptr = (sym_entry_type * *) & widget_entry->az_arguments;
-           break;
-
-       case sym_k_control_entry:
-           ptr = (sym_entry_type * *) & widget_entry->az_controls;
-           break;
-
-       case sym_k_callback_entry:
-           ptr = (sym_entry_type * *) & widget_entry->az_callbacks;
-           break;
-
-       case sym_k_error_entry:
-           return;
-
-       default:
-           _assert (FALSE, "unexpected widget feature");
-           break;
-       }
-
-/*     Check for duplicate features.   */
-
-    if (* ptr != NULL)
-       {
-       diag_issue_diagnostic
-               ( d_dup_list,
-                 _sar_source_position ( source_frame ),
-                 diag_tag_text (feature_entry->header.b_type),
-                 diag_tag_text (feature_entry->header.b_tag),
-                 diag_object_text (widget_entry->header.b_type),
-                 diag_tag_text (widget_entry->header.b_tag) );
-
-       return;
-       }
-
-/*     Save the feature in the widget. */
-
-    (* ptr) = feature_entry;
-
-/*     Clear the feature frame from the stack. */
-
-    feature_frame->b_tag = sar_k_null_frame;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine processes an argument pair for an object.
-**
-**  FORMAL PARAMETERS:
-**
-**      argument_frame         address of the parse stack frame for
-**                             the argument reference.
-**
-**      value_frame            address of the parse stack frame for
-**                             the argument value.
-**
-**     equals_frame            address of the parse stack frame for the
-**                             equals sign.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-void           sar_save_argument_pair
-                 ( argument_frame, value_frame, equals_frame)
-
-yystype        * argument_frame;
-yystype        * value_frame;
-yystype                * equals_frame;
-
-{
-
-    yystype                    * object_frame;
-    sym_argument_entry_type    * arg_entry;
-    sym_list_entry_type                * list_entry;
-    sym_value_entry_type       * val_value_entry;
-    sym_value_entry_type       * arg_value_entry;
-    unsigned char              actual_tag;
-
-    yystype                    * source_frame;
-
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (argument_frame - 1);
-
-    list_entry = (sym_list_entry_type *)
-                       object_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-    arg_value_entry =
-       (sym_value_entry_type *) argument_frame->value.az_symbol_entry;
-
-    _assert (arg_value_entry->header.b_tag == sym_k_value_entry,
-            "argument value entry missing");
-
-    /*
-    **  Save the source information (?)
-    */
-
-    _sar_save_source_info ( &arg_value_entry->header , argument_frame , 
-       argument_frame );
-
-    val_value_entry = (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-    actual_tag = val_value_entry->header.b_tag;
-
-/*    Create and fill in the argument node.    */
-
-    arg_entry = (sym_argument_entry_type *) sem_allocate_node (
-                       sym_k_argument_entry, sym_k_argument_entry_size);
-
-    /*
-    ** If the argument is a forward reference, we'll patch in the
-    ** address of the the referenced arg between passes.  Otherwise,
-    ** just point to the referenced arg node.
-    */
-
-    if ((argument_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (argument_frame, 
-       (char*)&(arg_entry->az_arg_name), sym_k_patch_add);
-    else
-        arg_entry->az_arg_name =
-           (sym_value_entry_type *) argument_frame->value.az_symbol_entry;
-
-    /*
-    ** If the argument value is a forward reference, we'll patch in the
-    ** address of the the referenced arg value between passes.  Otherwise,
-    ** just point to the referenced arg value node.
-    */
-
-    if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (value_frame, 
-       (char*)&(arg_entry->az_arg_value), sym_k_patch_add);
-    else
-        arg_entry->az_arg_value = val_value_entry;
-
-    argument_frame->b_tag = sar_k_null_frame;
-    argument_frame->value.az_symbol_entry = (sym_entry_type *) arg_entry;
-
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**  This routine processes a reason to procedure or procedure list binding 
-**  for a callback object in UIL.
-**
-**  FORMAL PARAMETERS:
-**
-**      reason_frame               address of the parse stack frame for
-**                                             the reason reference.
-**
-**      proc_ref_frame             address of the parse stack frame for
-**                                             the procedure reference.
-**
-**     equals_frame                address if the parse stack frame for
-**                                             the equals sign.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_save_reason_binding
-                       ( reason_frame, proc_ref_frame, equals_frame )
-
-yystype                * reason_frame;
-yystype        * proc_ref_frame;
-yystype        * equals_frame;
-
-{
-
-    yystype                    * object_frame;
-    sym_callback_entry_type    * callback_entry;
-    sym_list_entry_type                * list_entry;
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (reason_frame - 1);
-
-    list_entry = (sym_list_entry_type *) object_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-    /*
-    ** Create and fill in the callback node.
-    */
-
-    callback_entry = (sym_callback_entry_type *) sem_allocate_node (
-                       sym_k_callback_entry, sym_k_callback_entry_size);
-
-    /*
-    ** If the reason is a forward reference, we'll patch in the
-    ** address of the the referenced reason between passes.  Otherwise,
-    ** just point to the referenced reason node.
-    */
-
-    if ((reason_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (reason_frame,
-       (char*)&(callback_entry->az_call_reason_name), sym_k_patch_add);
-    else
-        callback_entry->az_call_reason_name =
-           (sym_value_entry_type *) reason_frame->value.az_symbol_entry;
-
-
-    /*
-    ** Save source information
-    */
-/*    _sar_save_source_info ( &reason_value_entry->header , reason_frame , 
-**     reason_frame );
-*/
-
-    /*
-    **    Note that proc_ref_frame may point to either a procedure reference
-    **    or to a list of procedure reference nodes
-    */
-
-    if (  proc_ref_frame->b_type == sym_k_list_entry)
-        callback_entry->az_call_proc_ref_list =
-               (sym_list_entry_type *) proc_ref_frame->value.az_symbol_entry;
-    else
-        callback_entry->az_call_proc_ref =
-           (sym_proc_ref_entry_type *) proc_ref_frame->value.az_symbol_entry;
-
-    reason_frame->b_tag = sar_k_null_frame;
-    reason_frame->value.az_symbol_entry = (sym_entry_type *) callback_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**    This routine processes a control clause.
-**
-**  FORMAL PARAMETERS:
-**
-**   managed_frame             address of the parse stack frame for
-**                             the managed flag for this control.
-**
-**   item_frame                        address of the parse stack frame for
-**                             the control item object.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_save_control_item
-                       ( managed_frame, item_frame )
-
-yystype                * managed_frame;
-yystype                * item_frame;
-
-{
-
-    yystype                    * object_frame;
-    sym_control_entry_type     * control_entry;
-    sym_list_entry_type                * list_entry;
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (managed_frame - 1);
-
-    list_entry =
-       (sym_list_entry_type *) object_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-/*     Verify that this type of item is allowed on this list.  */
-
-    if (list_entry->header.b_type != sym_k_control_entry)
-       {
-       diag_issue_diagnostic
-           ( d_list_item,
-            _sar_source_position ( source_frame ),
-            diag_tag_text (sym_k_control_entry),
-            diag_tag_text (list_entry->header.b_type),
-            diag_tag_text (list_entry->header.b_tag) );
-       
-       return;
-       }
-
-/*    Create and fill in the control node.    */
-
-    control_entry = (sym_control_entry_type *) sem_allocate_node (
-                       sym_k_control_entry, sym_k_control_entry_size);
-
-    control_entry->az_con_obj =
-       (sym_widget_entry_type *) item_frame->value.az_symbol_entry;
-
-    control_entry->obj_header.b_flags = ( item_frame->b_flags |
-                                             managed_frame->b_flags );
-
-    managed_frame->b_tag =
-    item_frame->b_tag = sar_k_null_frame;
-
-    managed_frame->value.az_symbol_entry = (sym_entry_type *) control_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**    This routine processes a control clause when an id is created in that
-**    clause.
-**
-**  FORMAL PARAMETERS:
-**
-**   control_frame             address of the parse stack frame for
-**                             the control list.
-**
-**   item_frame                        address of the parse stack frame for
-**                             the control item id.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_save_control_widget
-                       ( control_frame, item_frame )
-
-yystype                * control_frame;
-yystype                * item_frame;
-
-{
-
-    yystype                    * object_frame;
-    sym_control_entry_type     * control_entry;
-    sym_list_entry_type                * list_entry;
-    yystype                    * source_frame;
-    yystype                    temp_frame;
-
-    /*
-    ** move the item_frame to the control_frame and
-    **  the control_frame to the null_frame. This is done
-    **  because the item_frame needs to be second in the list
-    */
-
-    temp_frame = *item_frame;
-    *item_frame = *control_frame;
-    *control_frame = temp_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the object frame.    */
-
-    object_frame = sem_find_object (control_frame - 1);
-
-    list_entry =
-       (sym_list_entry_type *) object_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-/*     Verify that this type of item is allowed on this list.  */
-
-    if (list_entry->header.b_type != sym_k_control_entry)
-       {
-       diag_issue_diagnostic
-           ( d_list_item,
-            _sar_source_position ( source_frame ),
-            diag_tag_text (sym_k_control_entry),
-            diag_tag_text (list_entry->header.b_type),
-            diag_tag_text (list_entry->header.b_tag) );
-       
-       return;
-       }
-
-/*    Create and fill in the control node.    */
-
-    control_entry = (sym_control_entry_type *) sem_allocate_node
-       (sym_k_control_entry, sym_k_control_entry_size);
-
-    control_entry->az_con_obj =
-       (sym_widget_entry_type *) item_frame->value.az_symbol_entry;
-
-    control_entry->obj_header.b_flags = item_frame->b_flags;
-
-    control_frame->b_tag =
-    item_frame->b_tag = sar_k_null_frame;
-
-    control_frame->value.az_symbol_entry = (sym_entry_type *) control_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine saves the source for a user defined create procedure
-**
-**  FORMAL PARAMETERS:
-**
-**     procedure_frame         address of the parse stack frame for
-**                             the text "PROCEDURE".
-**
-**      proc_id_frame          address of the parse stack frame for
-**                             the procedure reference.
-**
-**      proc_arg_frame         address of the parse stack frame for
-**                             the procedure argument value.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_save_user_proc_ref_src
-                       ( procedure_frame, proc_id_frame, proc_arg_frame)
-
-yystype                * procedure_frame;
-yystype        * proc_id_frame;
-yystype        * proc_arg_frame;
-
-{
-    sym_proc_ref_entry_type    * proc_ref_entry;
-
-    proc_ref_entry = (sym_proc_ref_entry_type *)proc_id_frame->value.az_symbol_entry;
-
-    /*
-    ** If the parameter arg clause was ommitted the source info should be null.
-    ** We want to save the source for the "args" if it is there.
-    */
-    _sar_save_source_info (& proc_ref_entry->header, procedure_frame, proc_arg_frame );
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine processes a procedure reference.
-**
-**  FORMAL PARAMETERS:
-**
-**      proc_id_frame          address of the parse stack frame for
-**                             the procedure reference.
-**
-**      proc_arg_frame         address of the parse stack frame for
-**                             the procedure argument value.
-**
-**     context                 indicates whether this is a callback
-**                             or a user-defined procedure reference.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_process_proc_ref
-                       ( proc_id_frame, proc_arg_frame, context )
-
-yystype        * proc_id_frame;
-yystype        * proc_arg_frame;
-int            context;
-
-{
-
-/*    Call the common routine to get the procedure reference node, and
-      return it in the stack frame.    */
-
-    proc_id_frame->value.az_symbol_entry = (sym_entry_type *)
-               sem_reference_procedure (
-                       proc_id_frame, proc_arg_frame,
-                       context );
-
-/*    If this is the create proc for a user_defined widget, save it
-      in the object node.      */
-
-    if (context == sym_k_object_proc)
-       {
-       yystype                 * widget_frame;
-       sym_widget_entry_type   * widget_entry;
-       
-/*    Search the syntax stack for the widget frame.  NOTE: gadgets can
-             not have creation procedures; the grammar enforces this.     */
-
-       widget_frame = sem_find_object (proc_id_frame - 1);
-       widget_entry =
-           (sym_widget_entry_type *) widget_frame->value.az_symbol_entry;
-       
-       _assert (widget_entry->header.b_tag == sym_k_widget_entry,
-                "widget missing from the stack");
-       
-       if (widget_entry->header.b_type != uil_sym_user_defined_object)
-           {
-           yystype             * source_frame;
-           
-           source_frame = & yylval;
-           diag_issue_diagnostic
-               (d_create_proc,
-                _sar_source_position ( source_frame ),
-                diag_object_text (widget_entry->header.b_type) );
-           
-           return;
-           }
-       else
-           {
-           widget_entry->az_create_proc =
-               (sym_proc_ref_entry_type *) proc_id_frame->value.az_symbol_entry;
-           }
-       
-       }
-
-    return;    
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine adds an entry to a list.
-**
-**  FORMAL PARAMETERS:
-**
-**      entry_frame            address of the parse stack frame for
-**                             the entry to be added to the list.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_add_list_entry
-                       ( entry_frame )
-
-yystype                * entry_frame;
-
-{
-    yystype                    * list_frame;
-    sym_list_entry_type                * list_entry;
-    sym_obj_entry_type         * entry_entry;
-
-    yystype                    * source_frame;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the list frame.    */
-
-    list_frame = sem_find_object (entry_frame - 1);
-    list_entry = (sym_list_entry_type *) list_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-    entry_entry = (sym_obj_entry_type *) entry_frame->value.az_symbol_entry;
-
-    /*
-    ** If we are including a list within a list, put a nested list entry
-    ** in the list, and point it to the actual list.
-    */
-
-    if         (entry_entry->header.b_tag == sym_k_list_entry)
-       {
-       sym_nested_list_entry_type      *nested_entry;
-
-       /*
-       ** If this list is a reference to a previously defined list,
-       ** then use the previously defined list.
-       */
-       if (entry_entry->obj_header.az_reference != NULL)
-           {
-           entry_entry = (sym_obj_entry_type *)
-               entry_entry->obj_header.az_reference;
-           _assert (entry_entry->header.b_tag == sym_k_list_entry,
-                    "entry list entry missing");
-           }
-
-       /*
-       ** Create a nested list entry to reference the nested list. This
-       ** becomes the entry which will be added to the current list.
-       */
-       nested_entry = (sym_nested_list_entry_type *)
-           sem_allocate_node (sym_k_nested_list_entry,
-                              sym_k_nested_list_entry_size);
-       nested_entry->header.b_type = entry_entry->header.b_type;
-       nested_entry->az_list = (sym_list_entry_type *) entry_entry;
-       entry_entry = (sym_obj_entry_type *) nested_entry;
-       }
-    else
-        if (entry_entry->header.b_tag == sym_k_name_entry)
-           {
-           sym_nested_list_entry_type  *nested_entry;
-           /*
-           ** This is a forward reference to a named, nested list.
-           */
-           nested_entry = (sym_nested_list_entry_type *)
-               sem_allocate_node (sym_k_nested_list_entry,
-                                  sym_k_nested_list_entry_size);
-
-           sym_make_value_forward_ref (entry_frame,
-               (char*)&(nested_entry->az_list),
-               sym_k_patch_list_add);
-
-           entry_entry = (sym_obj_entry_type *) nested_entry;
-           }
-
-    /*
-    ** Add the entry to front of the list
-    ** The nested entry created above is included in this processing.
-    */
-    entry_entry->obj_header.az_next =
-       (sym_entry_type *) list_entry->obj_header.az_next;
-    list_entry->obj_header.az_next =
-       (sym_entry_type *) entry_entry;
-    list_entry->w_count++;
-
-    entry_frame->b_tag = sar_k_null_frame;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine adds a forward referenced list entry to a list.
-**     
-**
-**  FORMAL PARAMETERS:
-**
-**      entry_frame            address of the parse stack frame for
-**                             the entry to be added to the list.
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void           sar_add_forward_list_entry
-                       ( entry_frame )
-
-yystype                * entry_frame;
-
-{
-    yystype                    * list_frame;
-    sym_list_entry_type                * list_entry;
-    sym_obj_entry_type         * entry_entry;
-    sym_name_entry_type                * name_entry;
-    yystype                    * source_frame;
-    sym_nested_list_entry_type *nested_entry;
-
-    source_frame = & yylval;
-
-/*    Search the syntax stack for the list frame.    */
-
-    list_frame = sem_find_object (entry_frame - 1);
-    list_entry = (sym_list_entry_type *) list_frame->value.az_symbol_entry;
-
-    _assert (list_entry->header.b_tag == sym_k_list_entry,
-            "list entry missing");
-
-    name_entry = (sym_name_entry_type *) entry_frame->value.az_symbol_entry;
-
-    nested_entry = (sym_nested_list_entry_type *)
-       sem_allocate_node (sym_k_nested_list_entry,
-                          sym_k_nested_list_entry_size);
-
-    sym_make_value_forward_ref (entry_frame,
-       (char*)&(nested_entry->az_list),
-       sym_k_patch_list_add);
-
-    entry_entry = (sym_obj_entry_type *) nested_entry;
-
-    /*
-    ** Add the entry to front of the list
-    ** The nested entry created above is included in this processing.
-    */
-    entry_entry->obj_header.az_next =
-       (sym_entry_type *) list_entry->obj_header.az_next;
-    list_entry->obj_header.az_next =
-       (sym_entry_type *) entry_entry;
-    list_entry->w_count++;
-
-    entry_frame->b_tag = sar_k_null_frame;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine verifies that the list or widget has been defined
-**     correctly. Virtually all such validation is actually done in pass 2.
-**
-**  FORMAL PARAMETERS:
-**
-**     current_frame           address of the current syntax stack frame
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_verify_object ( current_frame )
-
-yystype                        * current_frame;
-
-{
-yystype                                * obj_frame;
-sym_widget_entry_type          * widget_entry;
-unsigned int                   widget_type;
-sym_obj_entry_type             * obj_entry;
-yystype                                * source_frame;
-
-
-
-/*
- * Search the syntax stack for the object frame.
- */
-source_frame = & yylval;
-obj_frame = sem_find_object (current_frame - 1);
-obj_entry = (sym_obj_entry_type *) obj_frame->value.az_symbol_entry;
-
-switch (obj_entry->header.b_tag)
-    {
-    case sym_k_gadget_entry:
-    case sym_k_widget_entry:
-    
-        /*
-        * Clear the definition in progress bit.
-        */
-        _assert (obj_entry->obj_header.b_flags & sym_m_def_in_progress,
-                "widget definition not in progress");
-       obj_entry->obj_header.b_flags &= (~ sym_m_def_in_progress);
-       break;
-    case sym_k_list_entry:
-       /*
-        * Clear the definition in progress bit and return.
-        */
-       _assert (obj_entry->obj_header.b_flags & sym_m_def_in_progress,
-                "list definition not in progress");
-       obj_entry->obj_header.b_flags &= (~ sym_m_def_in_progress);
-       return;
-
-    case sym_k_error_entry:
-       return;
-
-    default:
-       _assert (FALSE, "list or widget missing from the stack");
-       break;
-    }
-
-
-/*
- * If this is a user_defined widget, be sure the create proc was
- * specified if this is a declaration, and not specified if it
- * is a reference.
- */
-widget_entry = (sym_widget_entry_type *) obj_entry;
-widget_type = widget_entry->header.b_type;
-if (widget_type == uil_sym_user_defined_object)
-    {
-    if ((widget_entry->obj_header.b_flags & sym_m_obj_is_reference) != 0)
-       {
-       if (widget_entry->az_create_proc != NULL)
-           {
-           diag_issue_diagnostic
-               (d_create_proc_inv,
-                _sar_source_pos2(widget_entry),
-                diag_object_text (widget_type) );
-           widget_entry->header.b_type = sym_k_error_object;
-           }
-       }
-    else
-       {
-       if (widget_entry->az_create_proc == NULL)
-           {
-           diag_issue_diagnostic
-               (d_create_proc_req,
-                _sar_source_pos2(widget_entry),
-                diag_object_text (widget_type) );
-           widget_entry->header.b_type = sym_k_error_object;
-           }
-       }
-    }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine allocates a symbol node of the specified size
-**     and type.
-**
-**  FORMAL PARAMETERS:
-**
-**     node_tag        tag of node to allocate
-**     node_size       size of node to allocate
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  FUNCTION VALUE:
-**
-**      the address of the allocated node
-**
-**  SIDE EFFECTS:
-**
-**      The node is saved in the allocated node list
-**
-**--
-**/
-
-sym_entry_type * sem_allocate_node
-       (unsigned char node_tag, unsigned short node_size )
-
-{
-
-    sym_entry_type             * node_ptr;
-
-    node_ptr = (sym_entry_type *) XtCalloc (1, node_size);
-    node_ptr->header.w_node_size = node_size;
-    node_ptr->header.b_tag = node_tag;
-    UrmPlistAppendPointer (sym_az_allocated_nodes, (XtPointer)node_ptr);
-
-    return node_ptr;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine puts a symbol node on the free node list.
-**
-**  FORMAL PARAMETERS:
-**
-**     node_ptr        address of node to put on the free list
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void   sem_free_node ( node_ptr )
-
-sym_entry_type         * node_ptr;
-
-{
-
-    UrmPlistAppendPointer (sym_az_freed_nodes, (XtPointer)node_ptr);
-    
-}
-   
diff --git a/cde/osf/uil/UilSarProc.c b/cde/osf/uil/UilSarProc.c
deleted file mode 100644 (file)
index 7007850..0000000
+++ /dev/null
@@ -1,464 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: UilSarProc.c /main/12 1995/07/14 09:37:43 drk $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contain the routines for processing procedures.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function create the procedure definition entry symbol 
-**     node a procedure declaration.
-**
-**  FORMAL PARAMETERS:
-**
-**     id_frame        ptr to token frame for the procedure name
-**     param_frame     ptr to token frame or null frame holding the
-**                     type of the argument
-**     class_frame     ptr to frame whose b_flags holds private, etc. info
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_current_section_entry    the "current" section list
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      errors may be issued for previously defined name
-**
-**--
-**/
-
-void
-sar_create_procedure(XmConst yystype *id_frame, 
-                     XmConst yystype *param_frame, 
-                     XmConst yystype *class_frame, 
-                     XmConst yystype *semi_frame)
-{
-    sym_name_entry_type            *name_entry;
-    sym_proc_def_entry_type *proc_def_entry;
-    sym_section_entry_type  *section_entry;
-    sym_obj_entry_type     *obj_entry;
-
-    /*
-    **  Call standard routine to check name entry for id_frame.
-    ** This routine handles font name, color names, etc used as ids
-    */
-
-    name_entry = (sym_name_entry_type *) sem_dcl_name( id_frame );
-
-    if (name_entry == NULL)
-       return;
-
-    /*
-    ** Allocate the procedure definition entry and fill it in
-    */
-
-    proc_def_entry = (sym_proc_def_entry_type *)
-       sem_allocate_node (sym_k_proc_def_entry, sym_k_proc_def_entry_size);
-
-    proc_def_entry->b_widget_type = uil_max_object + 1;
-    proc_def_entry->obj_header.az_name = (sym_name_entry_type *) name_entry;
-    name_entry->az_object = (sym_entry_type *) proc_def_entry;
-
-    /* 
-    ** Parameter frame has 4 cases:
-    **     1) no argument checking desired
-    **        syntax: PROCEDURE id
-    **     2) argument checking desired - no argument
-    **        syntax: PROCEDURE id( )
-    **     3) argument checking desired - single argument
-    **        syntax: PROCEDURE id( type )
-    **     4) argument checking desired - single typed widget argument
-    **        syntax: PROCEDURE id( CLASS_NAME )
-    **  These cases are distinguished as follows:
-    **     1) tag = null  type = 0
-    **     2) tag = null  type = sar_k_no_value
-    **     3) tag = token type = argument type
-    **     4) tag = object type = widget type
-    */
-
-    proc_def_entry->v_arg_checking = TRUE;
-
-    switch (param_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       if (param_frame->b_type == sym_k_no_value )
-       {
-           proc_def_entry->b_arg_count = 0;
-           proc_def_entry->b_arg_type = sym_k_no_value;
-       }
-       else
-           proc_def_entry->v_arg_checking = FALSE;
-           
-       break;
-
-    case sar_k_token_frame:
-       proc_def_entry->b_arg_type = param_frame->b_type;
-       proc_def_entry->b_arg_count = 1;
-       break;
-
-    case sar_k_object_frame:
-       _assert((param_frame->b_type == sym_k_widget_entry),
-               "object frame not widget entry");
-       
-       obj_entry = 
-         (sym_obj_entry_type *)param_frame->value.az_symbol_entry;
-
-       proc_def_entry->b_arg_type = sym_k_widget_ref_value;
-       proc_def_entry->b_arg_count = 1;
-       proc_def_entry->b_widget_type = obj_entry->header.b_type;
-       break;
-       
-    default:
-       _assert( FALSE, "param frame in error" );
-
-    }
-
-    /*
-    ** Process the class clause
-    */
-
-    switch (class_frame->b_flags)
-    {
-    case sym_m_exported:
-       sym_make_external_def( name_entry );
-
-    case sym_m_private:
-    case sym_m_imported:
-       break;
-
-    default:
-       _assert( FALSE, "class frame in error" );
-
-    }
-
-    proc_def_entry->obj_header.b_flags = class_frame->b_flags;
-
-    /*
-    ** save the source file info for this procedure entry
-    */
-    _sar_save_source_info (&proc_def_entry->header, id_frame, semi_frame );
-    sar_assoc_comment((sym_obj_entry_type *)proc_def_entry);       /* preserve comments */
-
-    /*
-    ** allocate a section entry to link the proc_def entry into the structure
-    */
-    section_entry = (sym_section_entry_type *) sem_allocate_node
-                       (sym_k_section_entry, sym_k_section_entry_size);
-
-    /*
-    ** Link this entry off of the current section list
-    */
-    section_entry->next = (sym_entry_type *) sym_az_current_section_entry->entries;
-    sym_az_current_section_entry->entries = (sym_entry_type *) section_entry;
-
-    section_entry->entries = (sym_entry_type *) proc_def_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes a reference to a procedure.
-**
-**  FORMAL PARAMETERS:
-**
-**     id_frame        ptr to token frame for the procedure name
-**     value_frame     ptr to token frame or null frame holding the
-**                     value of the argument to the procedure
-**     context         value indicating how the procedure is being used
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      a procedure reference entry / NULL in case of an illegal reference
-**
-**  SIDE EFFECTS:
-**
-**      errors may be issued 
-**
-**--
-**/
-
-sym_proc_ref_entry_type
-*sem_reference_procedure( yystype         *id_frame, 
-                          XmConst yystype *value_frame, 
-                          XmConst int     context )
-{
-    sym_value_entry_type    *value_entry;
-    sym_proc_def_entry_type *proc_def_entry;
-    sym_proc_ref_entry_type *proc_ref_entry;
-
-    /*
-    **  Call standard routine to check name entry for id_frame.
-    ** This routine handles font name, color names, etc used as ids
-    */
-
-    proc_def_entry =
-       (sym_proc_def_entry_type *)
-           sem_ref_name( id_frame, sym_k_proc_def_entry );
-
-    switch (value_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       value_entry = NULL;
-       break;
-
-    case sar_k_value_frame:
-       if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-           value_entry = NULL;
-       else
-           value_entry = (sym_value_entry_type *) 
-                         value_frame->value.az_symbol_entry;
-       break;
-
-    case sar_k_object_frame:
-       value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-       break;
-
-    default:
-       _assert( FALSE, "actual arg in error" );
-    }
-
-    /*
-    ** Allocate the procedure reference entry and fill it in
-    */
-
-    proc_ref_entry = (sym_proc_ref_entry_type *)
-       sem_allocate_node (sym_k_proc_ref_entry, sym_k_proc_ref_entry_size);
-
-    if ((id_frame->b_flags & sym_m_forward_ref) != 0)
-        sym_make_value_forward_ref (id_frame, 
-       (char*)&(proc_ref_entry->az_proc_def), sym_k_patch_list_add);
-    else 
-       proc_ref_entry->az_proc_def = proc_def_entry;
-
-    if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-        sym_make_value_forward_ref (value_frame, 
-       (char*)&(proc_ref_entry->az_arg_value), sym_k_patch_add);
-    else
-       proc_ref_entry->az_arg_value = value_entry;
-
-    /*
-    ** Apply context constraints
-    **
-    ** If this is a procedure being used as a user object,
-    ** it should not have any arguments.  The arguments to such
-    ** a procedure are always a parent widget id and an argument list.
-    ** This constraint is currently inforced by the grammar.
-    **
-    ** At this time the compiler permits all types of values for callback
-    **  arguments.  This may be limited shortly when we see if it is
-    **  reasonable to pass fonts, colors, reasons, etc.
-    */
-
-    return proc_ref_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function checks to see if a object is defined with the name
-**     corresponding to the id given in the first parameter.
-**
-**  FORMAL PARAMETERS:
-**
-**      id_frame       ptr to a token frame on the parse stack holding the name
-**     tag             the type of construct needed
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      ptr to a symbol entry for construct or NULL
-**
-**  SIDE EFFECTS:
-**
-**     error message if the name is undefined or for a different construct
-**     forward_ref bit may be turned on in id_frame
-**--
-**/
-
-sym_entry_type
-*sem_ref_name(yystype     *id_frame, 
-              XmConst int tag)
-{
-    sym_name_entry_type            *name_entry;
-    sym_entry_type         *symbol_entry;
-
-    _assert( id_frame->b_tag == sar_k_token_frame, "arg1 not id frame" );
-
-    /* 
-    ** The id frame may hold a name or the keyword for a font name, color
-    ** name, reason name etc.  If it is one of these special name, then
-    ** we must see if the symbol table holds a name for the special type.
-    */
-
-    if (id_frame->b_type != NAME)
-    {
-       name_entry = 
-           sym_find_name
-               ( id_frame->value.az_keyword_entry->b_length,
-                 id_frame->value.az_keyword_entry->at_name );
-
-       if (name_entry == NULL)
-       {
-           diag_issue_diagnostic
-               ( d_undefined,
-                 _sar_source_position( id_frame ),
-                 diag_tag_text( sym_k_proc_def_entry ),
-                 id_frame->value.az_keyword_entry->at_name );
-
-           return NULL;
-       }
-
-    }
-    else
-       name_entry =
-               (sym_name_entry_type *) id_frame->value.az_symbol_entry;
-
-    /*
-    ** If the name entry already has no object linked from it, we are
-    ** referencing an undefined object.
-    */
-
-    symbol_entry = name_entry->az_object;
-
-    if (symbol_entry == NULL )
-       {
-       id_frame->b_flags |= sym_m_forward_ref;
-       return NULL;
-       }
-    /*
-    ** If the name entry has the wrong type of object, this is also
-    ** an error.
-    */
-
-    if (symbol_entry->header.b_tag != tag )
-    {
-       diag_issue_diagnostic
-           ( d_ctx_req,
-             _sar_source_position( id_frame ),
-             diag_tag_text( tag ),
-             diag_tag_text( symbol_entry->header.b_tag ) );
-
-       return NULL;
-    }
-
-    return symbol_entry;
-
-}
diff --git a/cde/osf/uil/UilSarVal.c b/cde/osf/uil/UilSarVal.c
deleted file mode 100644 (file)
index bc389e4..0000000
+++ /dev/null
@@ -1,3870 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSarVal.c /main/13 1997/12/06 16:14:16 cshi $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module supports values in UIL.  UIL values are
-**     quite primitive in terms of operators, however, there is a
-**      concept of a private value that is local to this module
-**      and a imported or exported value which needs to be
-**     resolved via a lookup at runtime.  The runtime resolved values
-**     cannot be modified with operators.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Xm/Xm.h>
-
-#include "UilDefI.h"
-#include "UilSymGen.h" /* For sym_k_[TRUE|FALSE]_enumval */
-/*
-**
-**  TABLE OF CONTENTS
-**
-**/
-
-
-/*
-** FORWARD DECLARATIONS
-*/
-
-static sym_value_entry_type *standard_color_table  _ARGUMENTS(( void ));
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-#define clear_class_mask \
-       (~(sym_m_private | sym_m_imported | sym_m_exported | sym_m_builtin))
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-extern yystype         yylval;
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function takes a non-reserved keyword and makes a name
-**     entry for it.  In the context in which the keyword is used,
-**     it is not being used as a keyword.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant token stack frame
-**      keyword_frame  pointer to token stack frame holding the keyword
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      a name entry is generated
-**
-**--
-**/
-
-void   sar_map_keyword_to_name( target_frame, keyword_frame )
-
-yystype            *target_frame;
-yystype            *keyword_frame;
-{
-    sym_name_entry_type            *name_entry;
-
-    _assert( keyword_frame->b_tag == sar_k_token_frame,
-            "keyword frame missing from stack" );
-
-    /*
-    ** make the target frame a token frame for a name token
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_token_frame;
-    target_frame->b_type = NAME;
-
-    /* 
-    ** insert the keyword name into the symbol table
-    */
-
-    name_entry = 
-       sym_insert_name
-           ( keyword_frame->value.az_keyword_entry->b_length,
-             keyword_frame->value.az_keyword_entry->at_name );
-
-    target_frame->value.az_symbol_entry = (sym_entry_type *) name_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes an id that is being used as an operand
-**     in a value.  It can be either a value or an identifier.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant value stack frame
-**      id_frame       pointer to token stack frame holding the id
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error may be issued for undefined name
-**
-**--
-**/
-
-void   sar_process_id( target_frame, id_frame )
-
-yystype            *target_frame;
-yystype            *id_frame;
-{
-
-    sym_name_entry_type            *name_entry;
-    sym_value_entry_type    *value_entry;
-    int                            enum_code;
-
-    _assert( id_frame->b_tag == sar_k_token_frame,
-            "id frame missing from stack" );
-
-    /*
-    ** make the target frame an expression frame
-    */
-
-    _sar_move_source_info( target_frame, id_frame );
-    target_frame->b_tag = sar_k_value_frame;
-
-    /* id frame may be a:
-    **     font_name, color_name, reason_name, argument_name...
-    **     name
-    ** if the font_name, color_name, etc... has a name been defined by
-    ** the user, we use that name, otherwise these special names are
-    ** treated as private values.
-    */
-
-    if (id_frame->b_type != NAME)
-    {
-       name_entry = 
-           sym_find_name
-               ( id_frame->value.az_keyword_entry->b_length,
-                 id_frame->value.az_keyword_entry->at_name );
-
-       if (name_entry == NULL)
-       {
-           int     source_type;
-           unsigned short int  arg_code;
-           unsigned short int  rel_code;
-
-           switch (id_frame->b_type)
-           {
-           case FONT_NAME:
-               source_type = sym_k_font_value;
-               break;
-
-           case CHILD_NAME:
-               source_type = sym_k_child_value;
-               break;
-
-           case ARGUMENT_NAME:
-               source_type = sym_k_argument_value;
-
-               /*
-               ** Indicate that this argument is used so we can later 
-               ** generate appropriate compression code for it.
-               ** If this argument has a related argument, also mark it as
-               ** being used so we can later generate its comprssion code.
-               */
-
-               arg_code = id_frame->value.az_keyword_entry->b_subclass;
-               uil_arg_compr[arg_code] = 1;
-               rel_code = related_argument_table[arg_code];
-               if (rel_code != 0)
-                   uil_arg_compr[rel_code] = 1;
-               break;
-
-           case COLOR_NAME:
-               source_type = sym_k_color_value;
-               break;
-
-           case REASON_NAME:
-               source_type = sym_k_reason_value;
-               uil_reas_compr[id_frame->value.az_keyword_entry->b_subclass] 
-                   = 1;
-               break;
-
-           case ENUMVAL_NAME:
-               source_type = sym_k_integer_value;
-               enum_code = id_frame->value.az_keyword_entry->b_subclass;
-               break;
-
-           default:
-               _assert( FALSE, "unexpected token" );
-           }
-
-           value_entry = 
-               sem_create_value_entry
-                   ( (char*)&(id_frame->value.az_keyword_entry), sizeof(long),
-                    source_type );
-           if ( id_frame->b_type == ENUMVAL_NAME )
-           {
-               value_entry->b_enumeration_value_code = enum_code;
-               _assert (( (enum_code > 0) && (enum_code <= uil_max_enumval) ),
-                       "Enumeration code out of range");
-               value_entry->value.l_integer = 
-                   enumval_values_table[enum_code];
-           }
-
-           target_frame->b_flags = value_entry->obj_header.b_flags;
-           target_frame->b_type = value_entry->b_type;
-           target_frame->value.az_symbol_entry =
-                               (sym_entry_type *) value_entry;
-
-           return;
-       }
-
-       id_frame->value.az_symbol_entry = (sym_entry_type *) name_entry;
-    }
-
-    /* 
-    ** first check if the name entry points to a value.
-    ** If the value_entry is NULL, this is a forward reference.
-    */
-
-    name_entry = (sym_name_entry_type *) id_frame->value.az_symbol_entry;
-    value_entry = (sym_value_entry_type *) name_entry->az_object;
-
-    if (value_entry == NULL)
-    {
-       value_entry = sem_create_value_entry ("0", 0, sym_k_any_value);
-       value_entry->obj_header.b_flags = sym_m_forward_ref;
-       value_entry->obj_header.az_name = name_entry;
-       target_frame->b_flags = value_entry->obj_header.b_flags;
-       target_frame->b_type = value_entry->b_type;
-       target_frame->value.az_symbol_entry = (sym_entry_type *) value_entry;
-       return;
-    }
-
-    if (value_entry->header.b_tag != sym_k_value_entry && 
-       value_entry->header.b_tag != sym_k_widget_entry)
-    {
-       diag_issue_diagnostic
-           ( d_ctx_req,
-             _sar_source_position( id_frame ),
-             diag_tag_text( sym_k_value_entry ),
-             diag_tag_text( value_entry->header.b_tag ) );
-       goto error_path;
-    }
-
-    /* 
-    ** set up the target frame
-    */
-
-    target_frame->b_flags = value_entry->obj_header.b_flags;
-    target_frame->b_type = value_entry->b_type;
-    target_frame->value.az_symbol_entry = (sym_entry_type *) value_entry;
-
-    return;
-
-error_path:
-
-    target_frame->b_flags = sym_m_private;
-    target_frame->b_type = sym_k_error_value;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) sym_az_error_value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function checks an identifier and makes a name
-**     entry for it if it is not already a name.
-**
-**  FORMAL PARAMETERS:
-**
-**      id_frame       pointer to token stack frame holding the identifier
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      a name entry may be generated
-**
-**--
-**/
-
-void   sar_process_id_ref ( id_frame )
-
-yystype            * id_frame;
-
-{
-
-    _assert( id_frame->b_tag == sar_k_token_frame,
-            "id frame missing from stack" );
-
-    switch (id_frame->b_type) {
-
-    /*
-    ** if already a name, then do nothing.
-    */
-
-       case NAME:
-           return;
-
-    /* 
-    ** make the keyword into a name and insert it into the symbol table
-    */
-
-       case FONT_NAME:
-       case ARGUMENT_NAME:
-       case COLOR_NAME:
-       case REASON_NAME:
-       case CHILD_NAME:
-           
-           id_frame->b_type = NAME;
-
-           id_frame->value.az_symbol_entry =
-               (sym_entry_type *) sym_insert_name (
-                   id_frame->value.az_keyword_entry->b_length,
-                   id_frame->value.az_keyword_entry->at_name );
-
-           break;
-
-       default:
-           _assert( FALSE, "unexpected token" );
-           break;
-    }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function takes a parse frame, extracts the string for the token
-**     out of it and converts the string into a units type.
-**
-**  FORMAL PARAMETERS:
-**
-**      parse_frame    pointer to parse stack frame holding the value
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      
-**
-**--
-**/
-
-int    sar_get_units_type ( parse_frame )
-
-yystype            *parse_frame;
-
-{
-    char *units_name;
-    int units_type;
-    XmParseResult result;
-
-    units_name = parse_frame->value.az_keyword_entry->at_name;
-    result = XmeParseUnits(units_name, &units_type);
-    switch(result)
-    {
-      case XmPARSE_ERROR:
-       /* I don't expect a parse error since the UIL compiler knows what
-          the valid unit strings are. */
-       units_type = XmPIXELS;
-       break;
-      case XmPARSE_NO_UNITS:
-       /* For now, just set the units to XmPIXELS when none specified.
-          What we really need is to be able to specify that there were
-          no units and therefore no conversion should be done. We can
-          sort of do that by specifying XmPIXELS here. */
-       units_type = XmPIXELS;
-       break;
-      case XmPARSE_UNITS_OK:
-       /* Everything is groovy */
-       break;
-    }
-    return(units_type);
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function takes a token frame for a value and converts it 
-**     into a value frame.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    pointer to resultant value stack frame
-**      token_frame    pointer to token stack frame holding the value
-**     value_type      type of value being created
-**     keyword_frame   frame to use as locator for the value
-**     arg_type        type of argument value being created - for args only
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      
-**
-**--
-**/
-
-void   sar_make_private_value
-           ( value_frame, token_frame, value_type, keyword_frame, arg_type )
-
-yystype            *value_frame;
-yystype            *token_frame;
-int        value_type;
-yystype            *keyword_frame;
-int        arg_type;
-
-{
-    sym_value_entry_type    *value_entry;
-    /*
-    ** This should be a long because the call to sem_create_value_entry passes the sizeof(long).   This also
-    ** maps on top of value.l_integer which is a long and is used in sar_chk_comp_str_attr.
-    */
-    long                   boolean_value;
-
-/*  Empty string tables and translation tables can have a null token frame.  */
-
-    _assert( (token_frame->b_tag == sar_k_token_frame) ||
-            (token_frame->b_tag == sar_k_value_frame) ||
-            (token_frame->b_tag == sar_k_null_frame),
-            "token or value frame missing from stack" );
-
-    /*
-    ** The goal of the routine is to create a value entry in the
-    ** symbol table for each constant and then place a pointer to
-    ** that value entry in a value frame on the parse stack.
-    ** Based on the type of constant, it may or may not already be
-    ** in the symbol table.
-    */
-
-    switch (value_type)
-    {
-    case sym_k_char_8_value:
-    case sym_k_compound_string_value:
-    case sym_k_integer_value:
-    case sym_k_float_value:
-    case sym_k_single_float_value:
-    case sym_k_localized_string_value:
-       value_entry =
-               (sym_value_entry_type *) token_frame->value.az_symbol_entry;
-       /* Save the arg_type. This value should be zero for all cases above,
-          except when the integer or float has units specified. In that case,
-          the arg_type is used to store the type of units specified. */
-       value_entry->b_arg_type = arg_type;
-       value_entry->b_type = value_type;
-       break;
-
-    case sym_k_font_value:
-    case sym_k_fontset_value:
-    case sym_k_reason_value:
-    case sym_k_argument_value:
-    case sym_k_xbitmapfile_value:
-    case sym_k_keysym_value:
-    case sym_k_class_rec_name_value:
-       /* 
-       ** transform the char 8 value entry into one for this
-       ** special type.  Before doing this, we need to insure
-       ** that the char 8 value is not in error or non private.
-       */
-       value_entry =
-               (sym_value_entry_type *) token_frame->value.az_symbol_entry;
-       if (token_frame->b_type == sym_k_error_value)
-           {
-           value_type = sym_k_error_value;
-           }
-       else
-           {
-           sym_value_entry_type        *value_save;
-
-           value_save = value_entry;
-           if ((value_entry->obj_header.az_name != NULL) ||
-               (token_frame->b_type == sym_k_any_value))
-               {
-               value_entry =
-                   sem_create_value_entry ("",0,sym_k_any_value);
-               value_entry->b_expr_opr = sym_k_coerce_op;
-               if ((token_frame -> b_flags & sym_m_forward_ref) != 0)
-                   sym_make_value_forward_ref (token_frame,
-                   (char*)&(value_entry->az_exp_op1), sym_k_patch_add);
-               else
-                   value_entry->az_exp_op1 = value_save;
-               }
-
-           value_entry->b_type = value_type;
-           value_entry->obj_header.b_flags = sym_m_private;
-
-           /* save the arg type for arguments */
-           if (value_type == sym_k_argument_value) 
-               value_entry->b_arg_type = arg_type;
-           }
-       
-       break;
-
-    case sym_k_bool_value:
-       boolean_value = 0;
-       if ((token_frame->b_type == UILTRUE) ||
-           (token_frame->b_type == ON ))
-           boolean_value = 1;
-       value_entry =
-           sem_create_value_entry
-               ( (char*)&boolean_value, sizeof(long), sym_k_bool_value );
-
-       break;
-
-    case sym_k_integer_table_value:
-    case sym_k_asciz_table_value:
-    case sym_k_trans_table_value:
-    case sym_k_string_table_value: 
-    case sym_k_rgb_value:
-
-    {
-       int                     count;
-       sym_value_entry_type    * table_entry;
-
-       /*  Save the pointer to the table elements   */
-
-       table_entry =
-               (sym_value_entry_type *) token_frame->value.az_symbol_entry;
-       value_entry =
-           sem_create_value_entry
-               (0, 0, value_type );
-       value_entry->az_first_table_value = table_entry;
-       
-
-       /*  Get the count of elements in the table. Resets table_entry */
-
-       for (table_entry=value_entry->az_first_table_value,
-            count = 0;
-            table_entry != NULL;
-            table_entry = table_entry->az_next_table_value,
-            count++) {
-       }
-
-       value_entry->b_table_count = count;
-
-       break;
-
-    }
-    default:
-       _assert( FALSE, "unexpected value type" );
-       break;
-    }
-
-    /*
-    ** make the target frame a value frame
-    */
-
-    _sar_move_source_info( value_frame, keyword_frame );
-    value_frame->b_tag = sar_k_value_frame;
-    value_frame->b_type = value_type;
-    value_frame->b_flags = value_entry->obj_header.b_flags;
-    value_frame->value.az_symbol_entry = (sym_entry_type *) value_entry;
-
-}
- void    sar_make_rgb_private_value
-            ( value_frame, token_frame, value_type, keyword_frame, arg_type )
-
-yystype     *value_frame;
-yystype     *token_frame;
-int         value_type;
-yystype     *keyword_frame;
-int         arg_type;
-
-{
-/* placeholder RAP for RGB data type */
-
-}
-
-
-
-
-
-
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function takes a value frame which is the contents
-**     of a table of strings and appends it to a value entry which is
-**     the next entry in that table.  It is used by string_table, icon,
-**     and translation_table value types.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    pointer to current table entry stack frame
-**      table_frame    pointer to stack frame holding the table
-**     table_type      dictates the type of table being generated
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      
-**
-**--
-**/
-
-void   sar_append_table_value( value_frame, table_frame, table_type, comma_frame )
-
-yystype            *value_frame;
-yystype            *table_frame;
-int        table_type;
-yystype            *comma_frame;
-
-{
-    sym_value_entry_type    *value_entry, *table_entry;
-    int                            value_type;
-
-    _assert( (value_frame->b_tag == sar_k_value_frame),
-            "value frame missing from stack" );
-
-    value_entry = (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-    value_type = value_entry->b_type;
-
-    if (value_type == sym_k_error_value) return;
-
-    table_entry = (sym_value_entry_type *) table_frame->value.az_symbol_entry;
-
-    /*
-    ** Some entries require checking for a forward reference. If the
-    ** table entry is named, than a valref entry linked to it is placed
-    ** in the table. If the new entry is a forward reference, than a
-    ** valref is always required, but we can use the value node which
-    ** is supplied as it is a parser artifact, and has no other use.
-    */
-
-    switch (table_type)
-       {
-       case sym_k_icon_value:
-           if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-               {
-               diag_issue_diagnostic
-                   (d_undefined,
-                    _sar_source_position(value_frame),
-                    "icon row",
-                    value_entry->obj_header.az_name->c_text);
-               }
-
-           if (value_entry->obj_header.az_name != NULL)
-               {
-               sym_value_entry_type    *value_save;
-
-               value_save = value_entry;
-               value_entry = sem_create_value_entry (0, 0, value_type);
-               value_entry->b_type = value_type;
-               value_entry->obj_header.b_flags = sym_m_private;
-               value_entry->b_expr_opr = sym_k_valref_op;
-               value_entry->az_exp_op1 = value_save;
-               }
-           break;
-
-       case sym_k_trans_table_value:
-       case sym_k_asciz_table_value:
-       case sym_k_integer_table_value:
-       case sym_k_rgb_value:
-           if (value_entry->obj_header.az_name != NULL)
-               {
-               sym_value_entry_type    *value_save;
-               
-               if ( (value_frame->b_flags & sym_m_forward_ref) != 0)
-                   {
-                   value_entry->obj_header.b_flags = sym_m_private;
-                   value_entry->b_expr_opr = sym_k_valref_op;  
-                   sym_make_value_forward_ref
-                       (value_frame,
-                        (char*)&(value_entry->az_exp_op1),
-                        sym_k_patch_add);
-                   }
-               else
-                   {
-                   value_save = value_entry;
-                   value_entry = sem_create_value_entry (0, 0, value_type);
-                   value_entry->b_type = value_type;
-                   value_entry->obj_header.b_flags = sym_m_private;
-                   value_entry->b_expr_opr = sym_k_valref_op;
-                   value_entry->az_exp_op1 = value_save;
-                   }
-               }
-           break;
-
-       case sym_k_string_table_value:
-           /*
-           ** value needs to be a compound string, so a coerce operator is
-           ** inserted as required. We don't need both a coerce and a
-           ** valref entry; if coerce is applied to a name, it also
-           ** functions as the valref.
-           */
-           if (value_entry->obj_header.az_name != NULL)
-               {
-               sym_value_entry_type    *value_save;
-               
-               if ( (value_frame->b_flags & sym_m_forward_ref) != 0)
-                   {
-                   value_entry->obj_header.b_flags = sym_m_private;
-                   value_entry->b_type = sym_k_compound_string_value;
-                   value_entry->b_expr_opr = sym_k_coerce_op;  
-                   sym_make_value_forward_ref
-                       (value_frame,
-                        (char*)&(value_entry->az_exp_op1),
-                        sym_k_patch_add);
-                   }
-               else
-                   {
-                   value_save = value_entry;
-                   value_entry = sem_create_value_entry (0, 0, value_type);
-                   value_entry->obj_header.b_flags = sym_m_private;
-                   value_entry->b_type = sym_k_compound_string_value;
-                   value_entry->az_exp_op1 = value_save;
-                   if ( value_type == sym_k_compound_string_value )
-                       value_entry->b_expr_opr = sym_k_valref_op;
-                   else
-                       value_entry->b_expr_opr = sym_k_coerce_op;
-                   }
-               }
-           break;
-           
-       default:
-           _assert ( FALSE, "unknown table type found");
-       }
-
-    /* 
-    ** Prepend the value to the table.  The table elements will be
-    ** in reverse order.  
-    */
-    value_entry->b_aux_flags |= sym_m_table_entry;
-    value_entry->az_next_table_value = table_entry;
-
-    /*
-    ** Save source information
-    */
-    _sar_save_source_info ( &value_entry->header, comma_frame, value_frame);
-
-    value_entry->header.b_type = value_frame->b_source_pos;
-       
-    /*
-    ** make the target frame a value frame
-    */
-    value_frame->b_tag = sar_k_value_frame;
-    value_frame->b_type = value_type;
-    value_frame->b_flags = value_entry->obj_header.b_flags;
-    value_frame->value.az_symbol_entry = (sym_entry_type *) value_entry;
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function issues an error message saying that a feature is
-**     not implemented yet.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    pointer to resultant value stack frame
-**      token_frame    pointer to source token frame (error position info)
-**      error_text     pointer to text to be substituted in message
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error message is issued
-**
-**--
-**/
-
-void   sar_value_not_implemented( value_frame, token_frame, error_text )
-
-yystype            *value_frame;
-yystype            *token_frame;
-char       *error_text;
-
-{
-    /*
-    ** make the target frame an error value frame
-    */
-
-    _sar_move_source_info( value_frame, token_frame );
-    value_frame->b_tag = sar_k_value_frame;
-    value_frame->b_type = sym_k_error_value;
-    value_frame->b_flags = sym_m_private;
-    value_frame->value.az_symbol_entry =
-       (sym_entry_type *) sym_az_error_value_entry;
-
-    diag_issue_diagnostic
-       ( d_not_impl,
-         _sar_source_position( value_frame ),
-         error_text );
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes the concatenation of 2 strings.
-**
-**  FORMAL PARAMETERS:
-**
-**      operator_frame [in/out] pointer to resultant value stack frame
-**      op1_frame      [in] pointer to operand 1 value frame 
-**      op2_frame      [in] pointer to operand 2 value frame 
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error message is issued if value is out of range
-**
-**--
-**/
-
-void   sar_cat_value( operator_frame, op1_frame, op2_frame )
-
-yystype            *operator_frame;
-yystype            *op1_frame;
-yystype            *op2_frame;
-
-{
-
-/*
-**  For pcc conversion, use defines instead of this enum.
-**
-**    enum op_state
-**    {
-**     error=0, simple, compound, localized
-**    };
-*/
-
-#define                k_op_state_error        0
-#define                k_op_state_simple       1
-#define                k_op_state_compound     2
-#define                k_op_state_localized    4
-
-    int                            target_type;
-    sym_value_entry_type    *value1_entry;
-    sym_value_entry_type    *value2_entry;
-    sym_value_entry_type    *target_entry;
-    unsigned int           op1_state;
-    unsigned int           op2_state;
-
-    _assert( (op1_frame->b_tag == sar_k_value_frame) &&
-            (op2_frame->b_tag == sar_k_value_frame), "value frame missing" );
-
-    /*
-    **  The target type is dependent on the type of the sources.  If both
-    ** operands are primitive and have the same writing direction and
-    ** charset, the result is still of that type.  If not, the result
-    ** is a compound string.
-    */
-
-    switch (op1_frame->b_type)
-    {
-    case sym_k_char_8_value:
-       op1_state = k_op_state_simple;
-       break;
-    case sym_k_compound_string_value:
-       op1_state = k_op_state_compound;
-       break;
-    case sym_k_localized_string_value:
-       op1_state = k_op_state_localized;
-       break;
-    case sym_k_error_value:
-       op1_state = k_op_state_error;
-       break;
-    default:
-       diag_issue_diagnostic
-           (d_wrong_type,
-            _sar_source_position( op1_frame ),
-            diag_value_text( op1_frame->b_type),
-            "string or compound string");
-       op1_state = k_op_state_error;
-    }
-
-    switch (op2_frame->b_type)
-    {
-    case sym_k_char_8_value:
-       op2_state = k_op_state_simple;
-       break;
-    case sym_k_compound_string_value:
-       op2_state = k_op_state_compound;
-       break;
-    case sym_k_localized_string_value:
-       op2_state = k_op_state_localized;
-       break;
-    case sym_k_error_value:
-       op2_state = k_op_state_error;
-       break;
-    default:
-       diag_issue_diagnostic
-           (d_wrong_type,
-            _sar_source_position( op2_frame ),
-            diag_value_text( op2_frame->b_type),
-            "string or compound string");
-       op2_state = k_op_state_error;
-    }
-
-    value1_entry = (sym_value_entry_type *) op1_frame->value.az_symbol_entry;
-    value2_entry = (sym_value_entry_type *) op2_frame->value.az_symbol_entry;
-
-    /*
-    ** Verify that both operands are private values
-    */
-
-    if ((op1_frame->b_flags & sym_m_private) == 0) 
-       {
-       op1_state = k_op_state_error;
-       diag_issue_diagnostic
-               (d_nonpvt,
-               _sar_source_position (op1_frame),
-               value1_entry->obj_header.az_name->c_text );
-       }
-    if ((op2_frame->b_flags & sym_m_private) == 0) 
-       {
-       op2_state = k_op_state_error;
-       diag_issue_diagnostic
-               (d_nonpvt,
-               _sar_source_position (op2_frame),
-               value2_entry->obj_header.az_name->c_text );
-       }       
-
-    switch (op1_state + (op2_state<<2))
-    {
-    /*
-    ** This is the case of appending to simple strings.  Just append them
-    ** unless they have different directions or the first one has the separate
-    ** attribute.
-    */
-    case k_op_state_simple + (k_op_state_simple<<2):
-       if ((value1_entry->b_charset == value2_entry->b_charset) 
-           &&
-           ((value1_entry->b_direction) == (value2_entry->b_direction))
-           && 
-           ((value1_entry->b_aux_flags & sym_m_separate) == 0))
-           {
-           target_entry = (sym_value_entry_type *)
-               sem_cat_str_to_str
-                   (value1_entry, (value1_entry->obj_header.az_name==NULL),
-                    value2_entry, (value2_entry->obj_header.az_name==NULL));
-           target_type  = sym_k_char_8_value;
-           }
-       else
-           {
-           target_entry = (sym_value_entry_type *) sem_create_cstr( );
-           sem_append_str_to_cstr
-               (target_entry, 
-                value1_entry, (value1_entry->obj_header.az_name==NULL));
-           sem_append_str_to_cstr
-               (target_entry, 
-                value2_entry, (value2_entry->obj_header.az_name==NULL));
-           target_type  = sym_k_compound_string_value;
-           }
-       break;
-
-    /*
-    ** This is the case of one simple and one compound string.  Change the
-    ** simple to a compound and append them together.  Depend on the append
-    ** routine to do the right thing.
-    */
-    case k_op_state_simple + (k_op_state_compound<<2):
-       target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       sem_append_str_to_cstr
-           (target_entry, 
-            value1_entry, (value1_entry->obj_header.az_name==NULL));
-       sem_append_cstr_to_cstr
-           (target_entry, 
-            value2_entry, (value2_entry->obj_header.az_name==NULL));
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    /*
-    ** This is the case of one simple and one compound string.  Append the
-    ** simple to the compound.  Depend on the append routine to do the right
-    ** thing.
-    */
-    case k_op_state_compound + (k_op_state_simple<<2):
-       target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       sem_append_cstr_to_cstr
-           (target_entry, 
-            value1_entry, (value1_entry->obj_header.az_name==NULL));
-       sem_append_str_to_cstr
-           (target_entry, 
-            value2_entry, (value2_entry->obj_header.az_name==NULL));
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    /*
-    **  This is the case of two compound strings.  Just let the append routine
-    **  do the right thing.
-    */
-    case k_op_state_compound + (k_op_state_compound<<2):
-       target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       sem_append_cstr_to_cstr
-           (target_entry, 
-            value1_entry, (value1_entry->obj_header.az_name==NULL));
-       sem_append_cstr_to_cstr
-           (target_entry, 
-            value2_entry, (value2_entry->obj_header.az_name==NULL));
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    default:   /* some form of error */
-       target_type = sym_k_error_value;
-       target_entry = (sym_value_entry_type *) sym_az_error_value_entry;
-       break;
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_save_source_pos ( &target_entry->header, op2_frame);
-
-/*    target_entry->az_source_rec = op2_frame->az_source_record; */
-
-    operator_frame->b_tag = sar_k_value_frame;
-    operator_frame->b_type = target_type;
-    operator_frame->b_flags = sym_m_private;
-    operator_frame->value.az_symbol_entry = (sym_entry_type *) target_entry;
-
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function checks the attributes of COMPOUND_STRING function.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame           pointer to resultant token stack frame
-**      value_frame            pointer to frame holding keyword and value
-**      prior_value_frame      pointer to previous properties
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      attribute information is stuffed in target frame
-**
-**--
-**/
-
-void   sar_chk_comp_str_attr( target_frame, value_frame, prior_value_frame )
-
-yystype            *target_frame;
-yystype            *value_frame;
-yystype            *prior_value_frame;
-{
-sym_value_entry_type   *value_entry;
-
-    /*
-    ** Set up not specified values in the target frame.
-    **     b_type will hold the writing direction and separate propertied
-    **     az_symbol_entry will hold the pointer to the character set.
-    */
-
-    switch (prior_value_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       /*
-       **      no prior values
-       */
-
-       target_frame->b_tag = sar_k_token_frame;
-       target_frame->b_direction = NOSTRING_DIRECTION;
-
-     /* Fix for CN 16149 (DTS 10023) part 3 -- flag b_charset as non-existent */
-       target_frame->b_charset = sym_k_error_charset;
-       target_frame->b_type = 0;
-       target_frame->value.az_symbol_entry = NULL;
-       break;
-
-    case sar_k_token_frame:
-    case sar_k_value_frame:
-       /*
-       **  prior values - transfer them
-       */
-
-       target_frame->b_tag = sar_k_token_frame;
-       target_frame->b_direction = prior_value_frame->b_direction;
-       target_frame->b_charset = prior_value_frame->b_charset;
-       target_frame->b_type = prior_value_frame->b_type;
-       target_frame->value.az_symbol_entry =
-           target_frame->value.az_symbol_entry;
-       break;
-    default:
-       _assert( FALSE, "prior value frame missing from stack" );
-    }
-
-    /*
-    ** Case on the keyword for the attribute given
-    */
-
-       value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-
-        if ((value_entry != NULL) && (value_frame->b_type != CHARACTER_SET) &&
-           (value_entry->obj_header.b_flags & sym_m_forward_ref) != 0)
-           {
-           diag_issue_diagnostic
-               (d_undefined,
-               _sar_source_position(value_frame),
-               "compound string attribute",
-               value_entry->obj_header.az_name->c_text);
-           }
-
-    switch (value_frame->b_type)
-    {
-    case RIGHT_TO_LEFT:
-    {
-       /*
-       **  If the value is a boolean, then set the b_direction field.
-       */
-       if (value_entry->b_type == sym_k_bool_value)
-           if (value_entry->value.l_integer == TRUE)
-               target_frame->b_direction = XmSTRING_DIRECTION_R_TO_L;
-           else
-               target_frame->b_direction = XmSTRING_DIRECTION_L_TO_R;
-
-       break;
-    }
-
-    case SEPARATE:
-    {
-       /*
-       **  If the value is a boolean, then just set the corresponding mask 
-       **  accordingly.
-       */
-       if (value_entry->b_type == sym_k_bool_value)
-           if (value_entry->value.l_integer == TRUE)
-               target_frame->b_type |= sym_m_separate; 
-           else
-               target_frame->b_type &= ~sym_m_separate; 
-
-       break;
-    }
-
-    case CHARACTER_SET:
-    {
-       /*
-       **  There are two different kinds of character sets.  One is a
-       **  token frame, the other is a value frame which points to a
-       **  char8 string value in the symbol table that represents the charset.
-       */
-       switch (value_frame->b_tag) 
-       {
-           /*
-           **  For token frames, acquire the charset from the keytable entry
-           **  and set frame type so sar_make_comp_str knows how to interpret
-           **  the frame.
-           */
-           case sar_k_token_frame:
-               {
-               key_keytable_entry_type *keyword_entry;
-               
-               keyword_entry = (key_keytable_entry_type *)
-                   value_frame->value.az_keyword_entry;
-               target_frame->b_tag = sar_k_token_frame;
-               target_frame->b_charset =
-                   sem_map_subclass_to_charset( keyword_entry->b_subclass );
-               break;
-               }
-           /*
-           **  For value frames, save the value pointer and mark the
-           **  frame again for correct use by sar_make_comp_str.
-           */
-           case sar_k_value_frame:
-               target_frame->b_tag = sar_k_value_frame;
-               target_frame->value.az_symbol_entry =
-                   value_frame->value.az_symbol_entry;
-               break;
-       }
-       break;
-
-    }
-
-    default:
-       _assert( FALSE, "keyword missing from stack" );
-    }
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function makes a COMPOUND_STRING and sets the properties
-**     of the string.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant token stack frame
-**     value_frame     pointer to string value
-**      attr_frame     pointer to strings attributes
-**     keyword_frame   frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_comp_str
-    ( target_frame, value_frame, attr_frame, keyword_frame )
-
-yystype            *target_frame;
-yystype            *value_frame;
-yystype            *attr_frame;
-yystype            *keyword_frame;
-{
-
-    sym_value_entry_type    *value_entry;
-    sym_value_entry_type    *cstr_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame,
-            "value frame missing from stack" );
-
-    /*
-    ** Make a compound string operation.  The compound string will be created
-    ** during expression evaluation in UilSemVal.c.
-    */
-
-    cstr_entry = (sym_value_entry_type *) sem_create_cstr();
-    cstr_entry->b_expr_opr = sym_k_comp_str_op;
-    if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (value_frame,
-           (char*)&(cstr_entry->az_exp_op1), sym_k_patch_add);
-    else
-       {
-       value_entry =
-           (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-       cstr_entry->az_exp_op1 = value_entry;
-       }
-
-    /*
-    **  If the attr_frame is not null, it must be a value frame with contains
-    **  a pointer to the value entry for the userdefined charset, or a token frame
-    **  which contains the charset token subclass.
-    */
-    switch (attr_frame->b_tag)
-    {
-    case sar_k_value_frame:
-       /*
-       **  Set the attributes of the string, as specified by the options
-       **  to the COMPOUND_STRING function, without disturbing any
-       **  existing bits.
-       */
-       cstr_entry->b_direction = attr_frame->b_direction;
-       cstr_entry->b_aux_flags |= (attr_frame->b_type & sym_m_separate);
-           
-       /*
-       **  If the symbol_entry pointer is not null then a charset was
-       **  specified for this CS,  just copy the b_charset and
-       **  az_charset_value pointers into the value entry for this CS.
-       */
-       if ((attr_frame->value.az_symbol_entry) != 0)
-           {
-           sym_value_entry_type        * az_value_entry;
-           
-           az_value_entry = (sym_value_entry_type *)
-               attr_frame->value.az_symbol_entry;
-           cstr_entry->b_charset = az_value_entry->b_charset;
-           cstr_entry->b_direction = az_value_entry->b_direction;
-           cstr_entry->az_charset_value =
-               az_value_entry;
-           }
-
-       break;
-
-    case sar_k_token_frame:
-       if ((attr_frame->b_charset) != 0)
-           cstr_entry->b_charset = 
-               sem_map_subclass_to_charset (attr_frame->b_charset);
-       cstr_entry->b_direction = attr_frame->b_direction;
-       cstr_entry->b_aux_flags |= (attr_frame->b_type & sym_m_separate);
-       break;
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-
-    _sar_save_source_pos ( &cstr_entry->header, value_frame );
-
-/*    cstr_entry->az_source_rec = value_frame->az_source_record; */
-
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_compound_string_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-                       (sym_entry_type *)  cstr_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function makes a COMPOUND_STRING_COMPONENT and sets the properties
-**     of the string.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant token stack frame
-**     type_frame      pointer to type value
-**      value_frame    pointer to component value
-**     keyword_frame   frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_comp_str_comp
-    ( target_frame, type_frame, value_frame, keyword_frame )
-
-yystype            *target_frame;
-yystype            *type_frame;
-yystype            *value_frame;
-yystype            *keyword_frame;
-{
-  key_keytable_entry_type      *type_entry;
-  key_keytable_entry_type      *value_entry;
-  sym_value_entry_type         *cstr_entry;
-  unsigned short int           enumval_code;
-  unsigned short int           enumset_code;
-  unsigned short int           type;
-  char                         *cset_name;
-  int                          i;
-  Boolean                      found;
-  String                       str;
-  XmStringDirection            dir;
-  XmDirection                  lay_dir;
-  XmString                     cstr_r = NULL;
-  
-  _assert(type_frame->b_tag == sar_k_token_frame,
-         "value frame missing from stack" );
-
-  /*
-   ** Make a compound string component. 
-   */
-
-  cstr_entry = (sym_value_entry_type *) sem_create_cstr();
-
-  /* Evaluate type. */
-  type_entry = (key_keytable_entry_type *)type_frame->value.az_keyword_entry;
-
-  enumval_code = type_entry->b_subclass;
-  enumset_code = argument_enumset_table[sym_k_XmStringComponent_arg];
-  found = FALSE; 
-  for (i = 0; i < enum_set_table[enumset_code].values_cnt; i++)
-    if (enum_set_table[enumset_code].values[i] == enumval_code)
-      {
-       found = TRUE;
-       break;
-      }
-  
-  if (found) type = enumval_values_table[enumval_code];
-  else 
-    {
-      diag_issue_diagnostic(d_arg_type,
-                           _sar_source_position(type_frame),
-                           uil_enumval_names[enumval_code],
-                           "compound_string_component",
-                           "XmStringComponentType");
-      
-      type = XmSTRING_COMPONENT_UNKNOWN;
-    }
-  
-  switch (type)
-    {
-    case XmSTRING_COMPONENT_UNKNOWN:
-    case XmSTRING_COMPONENT_SEPARATOR:
-    case XmSTRING_COMPONENT_LAYOUT_POP:
-    case XmSTRING_COMPONENT_TAB:
-      /* If value_frame is not null, issue diagnostic. */
-      if (value_frame->b_tag != sar_k_null_frame)
-       diag_issue_diagnostic(d_arg_type,
-                             _sar_source_position(value_frame),
-                             "non-NULL",
-                             "compound_string_component",
-                             "NULL");
-
-      cstr_r = XmStringComponentCreate(type, 0, NULL);
-      break;
-
-    case XmSTRING_COMPONENT_LOCALE:
-      if ((value_frame->b_tag != sar_k_null_frame) &&
-         (value_frame->b_type != CHARSET_NAME))
-       diag_issue_diagnostic(d_arg_type,
-                             _sar_source_position(value_frame),
-                             "non-NULL",
-                             "compound_string_component",
-                             "NULL or _MOTIF_DEFAULT_LOCALE");
-      else if (value_frame->b_type == CHARSET_NAME) 
-       {
-         cset_name =
-           sem_charset_name((value_frame->value.az_keyword_entry)->b_subclass,
-                            (sym_value_entry_type *)
-                            (value_frame->value.az_keyword_entry));
-         if (strcmp(cset_name, "_MOTIF_DEFAULT_LOCALE") != 0)
-           diag_issue_diagnostic(d_arg_type,
-                                 _sar_source_position(value_frame),
-                                 cset_name,
-                                 "compound_string_component",
-                                 "_MOTIF_DEFAULT_LOCALE");
-       }
-
-      cstr_r = XmStringComponentCreate(type, strlen(_MOTIF_DEFAULT_LOCALE),
-                                      _MOTIF_DEFAULT_LOCALE);
-      break;
-
-    case XmSTRING_COMPONENT_CHARSET:
-    case XmSTRING_COMPONENT_TEXT:
-    case XmSTRING_COMPONENT_LOCALE_TEXT:
-    case XmSTRING_COMPONENT_WIDECHAR_TEXT:
-    case XmSTRING_COMPONENT_RENDITION_BEGIN:
-    case XmSTRING_COMPONENT_RENDITION_END:
-      str = "";
-      
-      if (value_frame->b_tag == sar_k_null_frame)
-       diag_issue_diagnostic(d_arg_type,
-                             type_frame->az_source_record,
-                             type_frame->b_source_end,
-                             "NULL",
-                             "compound_string_component",
-                             diag_value_text(sym_k_char_8_value));
-      else if ((value_frame->b_type != CHAR_8_LITERAL) &&
-              (value_frame->b_type != LOC_STRING) &&
-              ((value_frame->b_type != CHARSET_NAME) ||
-               (type != XmSTRING_COMPONENT_CHARSET)))
-       diag_issue_diagnostic(d_arg_type,
-                             _sar_source_position(value_frame),
-                             tok_token_name_table[value_frame->b_type],
-                             "compound_string_component",
-                             diag_value_text(sym_k_char_8_value));
-      else 
-       {
-         if (value_frame->b_type == CHARSET_NAME)
-           {
-             cset_name =
-               sem_charset_name((value_frame->value.az_keyword_entry)->b_subclass,
-                                (sym_value_entry_type *)
-                                (value_frame->value.az_keyword_entry));
-             if (strcmp(cset_name, "XmFONTLIST_DEFAULT_TAG") == 0)
-               str = XmFONTLIST_DEFAULT_TAG;
-             else str = cset_name;
-           }
-         else
-           /* Extract string */
-           str = ((sym_value_entry_type *)
-                  (value_frame->value.az_symbol_entry))->value.c_value;
-       }
-      
-      cstr_r = XmStringComponentCreate(type, strlen(str), (XtPointer)str);
-      break;
-
-    case XmSTRING_COMPONENT_DIRECTION:
-      if (value_frame->b_tag == sar_k_null_frame)
-       diag_issue_diagnostic(d_arg_type,
-                             type_frame->az_source_record,
-                             type_frame->b_source_end,
-                             "NULL",
-                             "compound_string_component",
-                             "XmStringDirection");
-      else if (value_frame->b_type != ENUMVAL_NAME)
-       diag_issue_diagnostic(d_arg_type,
-                             _sar_source_position(value_frame),
-                             diag_value_text(value_frame->b_type),
-                             "compound_string_component",
-                             "XmStringDirection");
-      else
-       {
-         /* Extract and validate enumval */
-         value_entry = (key_keytable_entry_type *)value_frame->value.az_keyword_entry;
-
-         enumval_code = value_entry->b_subclass;
-         enumset_code = argument_enumset_table[sym_k_XmNstringDirection_arg];
-         found = FALSE; 
-         for (i = 0; i < enum_set_table[enumset_code].values_cnt; i++)
-           if (enum_set_table[enumset_code].values[i] == enumval_code)
-             {
-               found = TRUE;
-               break;
-             }
-  
-         if (found) dir = enumval_values_table[enumval_code];
-         else
-           {
-             diag_issue_diagnostic(d_arg_type,
-                                   _sar_source_position(value_frame),
-                                   uil_enumval_names[enumval_code],
-                                   "compound_string_component",
-                                   "XmStringDirection");
-      
-             dir = XmSTRING_DIRECTION_L_TO_R;
-           }
-       }
-
-      cstr_r = XmStringComponentCreate(type, sizeof(XmStringDirection), &dir);
-      break;
-
-    case XmSTRING_COMPONENT_LAYOUT_PUSH:
-      if (value_frame->b_tag == sar_k_null_frame)
-       diag_issue_diagnostic(d_arg_type,
-                             type_frame->az_source_record,
-                             type_frame->b_source_end,
-                             "NULL",
-                             "compound_string_component",
-                             "XmDirection");
-      else if (value_frame->b_type != ENUMVAL_NAME)
-       diag_issue_diagnostic(d_arg_type,
-                             _sar_source_position(value_frame),
-                             diag_value_text(value_frame->b_type),
-                             "compound_string_component",
-                             "XmDirection");
-      else
-       {
-         /* Extract and validate enumval */
-         value_entry = (key_keytable_entry_type *)value_frame->value.az_keyword_entry;
-
-         enumval_code = value_entry->b_subclass;
-         enumset_code = argument_enumset_table[sym_k_XmNlayoutDirection_arg];
-         found = FALSE; 
-         for (i = 0; i < enum_set_table[enumset_code].values_cnt; i++)
-           if (enum_set_table[enumset_code].values[i] == enumval_code)
-             {
-               found = TRUE;
-               break;
-             }
-  
-         if (found) lay_dir = enumval_values_table[enumval_code];
-         else
-           {
-             diag_issue_diagnostic(d_arg_type,
-                                   _sar_source_position(value_frame),
-                                   uil_enumval_names[enumval_code],
-                                   "compound_string_component",
-                                   "XmDirection");
-      
-             lay_dir = XmLEFT_TO_RIGHT;
-           }
-       }
-
-      cstr_r = XmStringComponentCreate(type, sizeof(XmDirection), &lay_dir);
-      break;
-    }
-
-  cstr_entry->value.xms_value = cstr_r;
-  cstr_entry->w_length = XmStringLength(cstr_r);
-
-  cstr_entry->az_first_table_value = NULL;
-
-  _assert(cstr_entry->w_length <= MrmMaxResourceSize, "compound string too long" );
-
-  /*
-   ** initialize the target frame
-   */
-  _sar_move_source_info( target_frame, keyword_frame );
-
-  _sar_save_source_pos ( &cstr_entry->header, type_frame );
-
-  target_frame->b_tag = sar_k_value_frame;
-  target_frame->b_type = sym_k_compound_string_value;
-  target_frame->b_flags = sym_m_private;
-  target_frame->value.az_symbol_entry = (sym_entry_type *)cstr_entry;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function makes a WIDE_CHARACTER and sets the properties
-**     of the string.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   pointer to resultant token stack frame
-**     value_frame     pointer to string value
-**      attr_frame     pointer to strings attributes
-**     keyword_frame   frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_wchar_str
-    ( target_frame, value_frame, attr_frame, keyword_frame )
-
-yystype            *target_frame;
-yystype            *value_frame;
-yystype            *attr_frame;
-yystype            *keyword_frame;
-{
-
-    sym_value_entry_type    *value_entry;
-    sym_value_entry_type    *wchar_str_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame,
-            "value frame missing from stack" );
-
-    /*
-    ** Make a wide_character string operation.  The wide_character string will
-    ** be created during retrieval from the UID file.
-    */
-
-    wchar_str_entry = (sym_value_entry_type *) sem_create_wchar_str();
-    wchar_str_entry->b_expr_opr = sym_k_wchar_str_op;
-    if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-       sym_make_value_forward_ref (value_frame,
-           (char*)&(wchar_str_entry->az_exp_op1), sym_k_patch_add);
-    else
-       {
-       value_entry =
-           (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-       value_entry->b_type = value_frame->b_type;
-       wchar_str_entry->az_exp_op1 = value_entry;
-       }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-
-    _sar_save_source_pos ( &wchar_str_entry->header, value_frame );
-
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_wchar_string_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-                       (sym_entry_type *)wchar_str_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function issues an error message saying that the value is
-**     the wrong type for this context.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    pointer to resultant value stack frame
-**      expected_type  type of constant required by this context
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error message is issued
-**
-**--
-**/
-
-void   sar_value_type_error( value_frame, expected_type )
-
-yystype            *value_frame;
-int        expected_type;
-
-
-{
-
-    _assert( value_frame->b_tag == sar_k_value_frame, "value frame missing" );
-
-    /*
-    ** make the target frame an error value frame
-    */
-
-    if (value_frame->b_type != sym_k_error_value)
-       diag_issue_diagnostic
-           ( d_wrong_type,
-             _sar_source_position( value_frame ),
-             diag_value_text( value_frame->b_type ),
-             diag_value_text( expected_type ) );
-
-    value_frame->b_type = sym_k_error_value;
-    value_frame->b_flags = sym_m_private;
-    value_frame->value.az_symbol_entry =
-               (sym_entry_type *) sym_az_error_value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function issues an error message saying that the value
-**     must be private.  Expect for arguments and argument values,
-**     values used by UIL need to be private rather than public.
-**     To make them public would mean that URM would need to perform
-**     the function at runtime.
-**
-**  FORMAL PARAMETERS:
-**
-**      value_frame    pointer to resultant value stack frame
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error message is issued
-**
-**--
-**/
-
-void   sar_private_error( value_frame )
-
-yystype            *value_frame;
-
-
-{
-
-    _assert( value_frame->b_tag == sar_k_value_frame, "value frame missing" );
-
-    /*
-    ** make the target frame an error value frame
-    */
-
-    if (value_frame->b_type != sym_k_error_value)
-    {
-       sym_value_entry_type    *value_entry;
-
-       value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-
-       diag_issue_diagnostic
-           ( d_nonpvt,
-             _sar_source_position( value_frame ),
-             value_entry->obj_header.az_name->c_text );
-
-    }
-
-    value_frame->b_type = sym_k_error_value;
-    value_frame->b_flags = sym_m_private;
-    value_frame->value.az_symbol_entry =
-               (sym_entry_type *) sym_az_error_value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a value entry for an imported value.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       ptr to target value frame on parse stack
-**     token_frame         ptr to token frame giving the data type
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_import_value_entry(target_frame, token_frame)
-
-yystype            *target_frame;
-yystype            *token_frame;
-{
-    sym_value_entry_type    *value_entry;
-
-    _assert( token_frame->b_tag == sar_k_token_frame, "token frame missing" );
-
-    /* 
-    ** Need to create a value entry and mark it as imported.
-    ** The b_type field of the token has been set to the type of value
-    ** by a prior grammar reduction
-    */
-
-    value_entry = (sym_value_entry_type *)
-       sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-    _sar_save_source_pos ( &value_entry->header, &yylval );
-
-/*    value_entry->az_source_rec = yylval.az_source_record; */
-
-    value_entry->b_type = token_frame->b_type;
-    value_entry->obj_header.b_flags = sym_m_imported;
-
-    /* 
-    ** set up the target frame
-    */
-
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_flags = sym_m_imported;
-    target_frame->b_type = value_entry->b_type;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function binds the name of a value with its value.
-**
-**  FORMAL PARAMETERS:
-**
-**      id_frame       ptr to token frame holding the name for the value
-**     value_frame     ptr to value frame
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_current_section_entry    global pointer to the "current" section list
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      errors if name has previously been used to declare another object
-**     may be a new value entry
-**
-**--
-**/
-
-void   sar_bind_value_name(id_frame, value_frame, semi_frame)
-
-yystype            *id_frame;
-yystype            *value_frame;
-yystype            *semi_frame;
-
-{
-    sym_name_entry_type            *name_entry;
-    sym_value_entry_type    *value_entry;
-    sym_section_entry_type  *section_entry;
-    int                            flags;
-    boolean                error;
-
-    _assert( id_frame->b_tag == sar_k_token_frame, "id frame missing" );
-    _assert( value_frame->b_tag == sar_k_value_frame, "value frame missing" );
-
-    /* 
-    ** First we check on the name to see if it has been previously used.
-    ** This function returns NULL if name cannot be used, in which case
-    ** processing is over.
-    */
-
-    name_entry = sem_dcl_name( id_frame );
-
-    if (name_entry == NULL)
-       return;
-
-    /*
-    ** Processing is now based on where the value is private, imported, or
-    ** exported.
-    */
-
-    value_entry = (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-    flags = value_frame->b_flags;
-    error = (value_frame->b_type == sym_k_error_value);
-
-    if ((flags & sym_m_imported) == 0)
-    {
-       if ((value_entry->obj_header.az_name != NULL) || error)
-       {
-           /*
-           ** Create a new value node for the unary value reference operator.
-           ** az_exp_op1 will point to the node being referenced.
-           */
-
-           sym_value_entry_type        *saved_value_entry_ptr;
-
-           saved_value_entry_ptr = value_entry;
-
-           value_entry = 
-                   sem_create_value_entry ("",0,sym_k_any_value);
-
-           value_entry->b_expr_opr = sym_k_valref_op;
-
-           /*
-           ** If the value is a forward reference, we'll patch in the
-           ** address of the the referenced value between passes.  Otherwise,
-           ** just point to the referenced value node.
-           */
-
-           if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-               sym_make_value_forward_ref (value_frame, 
-               (char*)&(value_entry->az_exp_op1), sym_k_patch_add);
-           else
-               value_entry->az_exp_op1 = 
-                   saved_value_entry_ptr;
-       }
-
-       if ((flags & sym_m_exported) != 0)
-           sym_make_external_def( name_entry );
-
-    }
-
-    /*
-    **  Place the name and flags in the value entry.
-    */
-
-    value_entry->obj_header.az_name = name_entry;
-    value_entry->obj_header.b_flags = 
-      (value_entry->obj_header.b_flags & clear_class_mask) | flags;
-
-    name_entry->az_object = (sym_entry_type *) value_entry;
-
-    /*
-    ** save the source file info for this value entry
-    */
-    _sar_save_source_info (&value_entry->header, id_frame, semi_frame );
-
-    /*
-    ** allocate a section entry to link the value entry into the structure
-    */
-    section_entry = (sym_section_entry_type *) sem_allocate_node
-       (sym_k_section_entry, sym_k_section_entry_size);
-
-    /*
-    ** Link this entry off of the current section list
-    */
-    section_entry->next = (sym_entry_type *)
-       sym_az_current_section_entry->entries;
-    sym_az_current_section_entry->entries = (sym_entry_type *) section_entry;
-    section_entry->entries = (sym_entry_type *)value_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function checks to see if a name is available for naming a
-**     construct.
-**
-**  FORMAL PARAMETERS:
-**
-**      id_frame       ptr to a token frame on the parse stack holding the name
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      ptr to name entry or NULL
-**
-**  SIDE EFFECTS:
-**
-**      name entry may be created
-**     error message for duplicate declaration may be issued
-**
-**--
-**/
-
-sym_name_entry_type
-       *sem_dcl_name(id_frame)
-
-XmConst yystype            *id_frame;
-
-{
-    sym_name_entry_type            *name_entry;
-    char                   * ptr;
-
-    _assert( id_frame->b_tag == sar_k_token_frame, "arg1 not id frame" );
-
-    /* 
-    ** The id frame may hold a name or the keyword for a font name, color
-    ** name, reason name etc.  If it is one of these special name, then
-    ** we insert the special name in the symbol table as a name.  This has
-    ** the effect of creating a name entry if one doesn't existing or finding
-    ** the name entry if one does.
-    */
-
-    if (id_frame->b_type != NAME)
-    {
-      diag_issue_diagnostic
-       ( d_override_builtin,
-        _sar_source_position( id_frame ),
-        id_frame->value.az_keyword_entry->at_name);
-      
-      name_entry = 
-       sym_insert_name
-         ( id_frame->value.az_keyword_entry->b_length,
-          id_frame->value.az_keyword_entry->at_name );
-    }
-    else
-       name_entry = (sym_name_entry_type *) id_frame->value.az_symbol_entry;
-
-    /*
-    ** If the name entry already has an object linked from it, we have an
-    ** duplicate definition of the same name.  Otherwise, everything is fine.
-    */
-
-    if (name_entry->az_object == NULL )
-       return name_entry;
-
-    if (name_entry->az_object->header.b_tag == sym_k_value_entry) {
-       ptr = diag_value_text (
-               ((sym_value_entry_type *) (name_entry->az_object))->b_type);
-    } else if (name_entry->az_object->header.b_tag == sym_k_widget_entry) {
-       ptr = diag_object_text (
-               ((sym_widget_entry_type *) (name_entry->az_object))
-                       -> header.b_type);
-    } else {
-       ptr = diag_tag_text( name_entry->az_object->header.b_tag );
-    }
-
-    diag_issue_diagnostic
-       ( d_previous_def,
-         _sar_source_position( id_frame ),
-         name_entry->c_text,
-         ptr );
-
-    return NULL;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates a value entry for a token that represents
-**     a value.
-**
-**  FORMAL PARAMETERS:
-**
-**      value          pointer to value
-**      length         length of the value in bytes
-**      value_type     type of value to create 
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      a value_entry
-**
-**  SIDE EFFECTS:
-**
-**      value entry is created in the symbol table
-**
-**--
-**/
-
-sym_value_entry_type
-       *sem_create_value_entry( value, length, value_type )
-
-char       *value;
-int        length;
-int        value_type;
-{
-    sym_value_entry_type    *value_entry;
-
-    /*
-    ** the value  can be a string, integer, float, boolean, or
-    **  a font_name, argument_name, color_name, or reason_name
-    */
-
-    /*
-    ** the strategy of the function is to determine the contents
-    **  of the value entry, then centrally allocate and initialize it.
-    **
-    **  Allocate the entry and save the source position. Initialize
-    **  all fields to either default values or call parameters.
-    */
-    value_entry = (sym_value_entry_type *)
-       sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-    _sar_save_source_pos ( &value_entry->header, &yylval );
-    sar_assoc_comment ((sym_obj_entry_type *)value_entry);  /* preserve comments */
-
-    value_entry->b_type = value_type;
-    value_entry->obj_header.b_flags = (sym_m_private | sym_m_builtin);
-    value_entry->w_length = length;
-    value_entry->output_state = 0;
-    value_entry->b_table_count = 0;
-    value_entry->b_aux_flags = 0;
-    value_entry->b_arg_type = 0;
-    value_entry->b_data_offset = 0;
-    value_entry->b_pixel_type = sym_k_unspecified_color;
-    value_entry->b_charset = 0;
-    value_entry->b_direction = NOSTRING_DIRECTION;
-    value_entry->b_max_index = 0;
-    value_entry->b_expr_opr = sym_k_unspecified_op;
-    value_entry->b_enumeration_value_code = 0;
-    value_entry->resource_id = 0;
-    value_entry->obj_header.az_name = NULL;
-    value_entry->az_charset_value = NULL;
-    value_entry->az_next_table_value = NULL;
-    value_entry->value.l_integer = 0;
-    if ((value_type == sym_k_char_8_value || 
-       value_type == sym_k_font_value ||
-       value_type == sym_k_fontset_value ||
-       value_type == sym_k_keysym_value ||
-       value_type == sym_k_xbitmapfile_value ||
-       value_type == sym_k_class_rec_name_value ||
-       value_type == sym_k_identifier_value) &&
-       (length > 0))
-       {
-       value_entry->value.c_value = (char *) XtCalloc(1,length);
-       _move( value_entry->value.c_value, value, length );
-       }
-    else if (value_type == sym_k_compound_string_value  && (length > 0))
-      {
-       value_entry->value.xms_value = (XmString) XtCalloc(1,length);
-       _move( value_entry->value.xms_value, value, length );
-      }
-    else
-       if ( length > 0 )
-           _move( &(value_entry->value.c_value), value, length );
-
-    /* For enumerations which accept boolean values */
-    if (value_type == sym_k_bool_value)
-      value_entry->b_enumeration_value_code =
-       (*value) ? sym_k_TRUE_enumval : sym_k_FALSE_enumval;
-       
-    return value_entry;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function creates the value symbol node for an
-**     identifier declaration.
-**
-**  FORMAL PARAMETERS:
-**
-**     id_frame        ptr to token frame for the identifier name
-**
-**  IMPLICIT INPUTS:
-**
-**     sym_az_current_section_entry    global that points to the "current" section list
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      errors may be issued for previously defined name
-**
-**--
-**/
-
-void   sar_create_identifier (id_frame, semi_frame)
-
-XmConst yystype            *id_frame;
-XmConst yystype            *semi_frame;
-
-{
-    sym_name_entry_type            *name_entry;
-    sym_value_entry_type    *value_entry;
-    sym_section_entry_type  *section_entry;
-    int                            len;
-    char                   * ptr;
-
-    /*
-    **  Call standard routine to check name entry for id_frame.
-    ** This routine handles font name, color names, etc used as ids
-    */
-
-    name_entry = sem_dcl_name( id_frame );
-
-    if (name_entry == NULL)
-       return;
-
-    /*
-    ** Allocate the value entry and fill it in.  The b_type field
-    **  in name entries holds the length of the name.  Add one for null.
-    */
-
-    len = name_entry->header.b_type + 1;
-    ptr = name_entry->c_text;
-
-    value_entry = sem_create_value_entry ( ptr, len, sym_k_identifier_value );
-
-    _move (value_entry->value.c_value, ptr, len);
-
-    value_entry->obj_header.b_flags |= sym_m_private;
-
-    value_entry->obj_header.az_name = name_entry;
-    name_entry->az_object = (sym_entry_type *) value_entry;
-
-    /*
-    ** save the source file info for this identifier entry
-    */
-    _sar_save_source_info (&name_entry->header, id_frame, semi_frame );
-
-    /*
-    ** allocate a section entry to link the identifier entry into the structure
-    */
-    section_entry = (sym_section_entry_type *) sem_allocate_node
-                       (sym_k_section_entry, sym_k_section_entry_size);
-
-    /*
-    ** Link this entry off of the current section list
-    */
-    section_entry->next =
-       (sym_entry_type *) sym_az_current_section_entry->entries;
-    sym_az_current_section_entry->entries =
-       (sym_entry_type *) section_entry;
-    section_entry->entries = (sym_entry_type *)name_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a font table.  This font table
-**     is a list of symbol table entries of font items.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the font table generated
-**     font_frame          value frame specifying the font value
-**     prior_target_frame  frame holding the font table generated so far
-**     keyword_frame       frame holding the font_table keyword
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      font table symbol entry is generated if prior target is null
-**
-**--
-**/
-
-void   sar_make_font_table
-           (target_frame, font_frame, prior_target_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *font_frame;
-yystype            *prior_target_frame;
-yystype            *keyword_frame;
-
-{
-    sym_value_entry_type    *font_table_entry;
-    sym_value_entry_type    *font_item;
-
-    _assert( font_frame->b_tag == sar_k_value_frame, "font item missing" );
-
-    font_item = (sym_value_entry_type *) font_frame->value.az_symbol_entry;
-
-    /*
-    ** If the prior frame is null, this is the first item in the
-    ** table.  We need to generate the font table symbol entry.
-    */
-
-    switch (prior_target_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       font_table_entry = 
-           sem_create_value_entry ((char*)&font_item, sizeof(long),
-                                   sym_k_font_table_value);
-       font_table_entry->b_table_count = 1;
-
-       /*
-        * If we are dealing with an indirect reference in the table,
-        * make it a valref node so we reference it correctly.
-        */
-       if (font_item->obj_header.az_name != NULL)
-         {
-           sym_value_entry_type        *font_save;
-
-           font_save = font_item;
-           font_item = sem_create_value_entry (0, 0, font_save->b_type);
-           font_item->b_type = font_save->b_type;
-           font_item->obj_header.b_flags = sym_m_private;
-           font_item->b_expr_opr = sym_k_valref_op;
-           font_item->az_exp_op1 = font_save;
-         }
-       
-       font_table_entry->az_first_table_value = font_item;
-
-       break;
-
-    case sar_k_value_frame:
-    {
-       int                     count;
-       sym_value_entry_type    *last_font_item;
-
-       font_table_entry = (sym_value_entry_type *)
-           prior_target_frame->value.az_symbol_entry;
-       for (count = 0,
-            last_font_item = font_table_entry->az_first_table_value;  
-
-            last_font_item->az_next_table_value != NULL;  
-
-            last_font_item =
-                last_font_item->az_next_table_value)
-           count++;
-
-       if (count >= sym_k_max_list_count)
-          diag_issue_diagnostic
-               (d_too_many,
-                _sar_source_position( font_frame ),
-                diag_value_text( sym_k_font_value ),
-                diag_value_text( sym_k_font_table_value ),
-                sym_k_max_list_count );
-       else
-         {
-           /*
-           * If we are dealing with an indirect reference in the table,
-           * make it a valref node so we reference it correctly.
-           */
-           if (font_item->obj_header.az_name != NULL)
-             {
-               sym_value_entry_type    *font_save;
-
-               font_save = font_item;
-               font_item = sem_create_value_entry (0, 0, font_save->b_type);
-               font_item->b_type = font_save->b_type;
-               font_item->obj_header.b_flags = sym_m_private;
-               font_item->b_expr_opr = sym_k_valref_op;
-               font_item->az_exp_op1 = font_save;
-             }
-
-           last_font_item->az_next_table_value = font_item;
-           font_table_entry->b_table_count = count + 1;
-       }
-       break;
-    }
-
-    default:
-       _assert( FALSE, "prior frame in error" );
-    }
-
-    /*
-    ** font item needs to be marked as a table entry
-    */
-    font_item->b_aux_flags |= sym_m_table_entry;
-    font_item->az_next_table_value = NULL;
-
-    /*
-    ** initialize the target frame
-    */
-    _sar_move_source_info (target_frame, keyword_frame);
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_font_table_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-       (sym_entry_type *) font_table_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a item for a font table.  This font table
-**     is a list of symbol table entries of font items.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the font item generated
-**     charset_frame       token or null frame holding charset token
-**     font_frame          value frame specifying the font value
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      copy the font value unless it is unnamed
-**
-**--
-**/
-
-void   sar_make_font_item(target_frame, charset_frame, font_frame)
-
-yystype            *target_frame;
-yystype            *charset_frame;
-yystype            *font_frame;
-
-{
-    sym_value_entry_type    *font_value_entry;
-    int                            item_type;
-
-    _assert( font_frame->b_tag == sar_k_value_frame, "font exp is missing" );
-
-    font_value_entry =
-               (sym_value_entry_type *) font_frame->value.az_symbol_entry;
-
-    if ((font_frame->b_flags & sym_m_forward_ref) != 0)
-           {
-           diag_issue_diagnostic
-               (d_undefined,
-               _sar_source_position(font_frame),
-               "font entry",
-               font_value_entry->obj_header.az_name->c_text);
-           }
-
-    item_type = font_value_entry->b_type;
-
-    switch (item_type)
-    {
-    case sym_k_font_value:
-    case sym_k_fontset_value:
-    {
-       int     charset;
-       
-       charset = font_value_entry->b_charset;
-
-       /*
-       **  If the attr_frame is not null, it must be a value frame with contains
-       **  a pointer to the value entry for the userdefined charset, or a token frame
-       **  which contains the charset token subclass.
-       */
-       switch (charset_frame->b_tag)
-       {
-       case sar_k_value_frame:
-           {
-           sym_value_entry_type        * az_value_entry;
-
-           az_value_entry = (sym_value_entry_type *)charset_frame->value.az_symbol_entry;
-           font_value_entry->b_charset = az_value_entry->b_charset;
-           font_value_entry->az_charset_value =
-               az_value_entry->az_charset_value;
-           break;
-           }
-
-       case sar_k_token_frame:
-           {
-           key_keytable_entry_type     *keyword_entry;
-
-           keyword_entry = (key_keytable_entry_type *)
-                               charset_frame->value.az_keyword_entry;
-           font_value_entry->b_charset = 
-               sem_map_subclass_to_charset( keyword_entry->b_subclass );
-           break;
-           }
-       }
-
-       break;
-    }
-
-    case sym_k_error_value:
-       break;
-
-    default:
-       diag_issue_diagnostic
-           ( d_wrong_type,
-             _sar_source_position( font_frame ),
-             diag_value_text( item_type ),
-             diag_value_text( sym_k_font_value ) );
-
-       item_type = sym_k_error_value;
-       font_value_entry = (sym_value_entry_type *) sym_az_error_value_entry;
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, font_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = item_type;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) font_value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a font value.  
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the font item generated
-**     charset_frame       token or null frame holding charset token
-**     value_frame         value frame specifying the font value
-**     keyword_frame       frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      create a font symbol table entry
-**
-**--
-**/
-
-void   sar_make_font(target_frame, charset_frame, value_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *charset_frame;
-yystype            *value_frame;
-yystype            *keyword_frame;
-
-{
-    sym_value_entry_type    *font_value_entry;
-    sym_value_entry_type    *value_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame, "font name is missing" );
-
-       font_value_entry = sem_create_value_entry ("", 0, sym_k_font_value );
-       font_value_entry->b_type = sym_k_font_value;
-       font_value_entry->obj_header.b_flags = sym_m_private;
-       font_value_entry->b_expr_opr = sym_k_coerce_op;
-
-        if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-           sym_make_value_forward_ref (value_frame,
-               (char*)&(font_value_entry->az_exp_op1), 
-               sym_k_patch_add);
-        else
-           {
-           value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-           font_value_entry->az_exp_op1 = value_entry;
-           }
-       
-
-       /*
-       **  If the attr_frame is not null, it must be a value frame with contains
-       **  a pointer to the value entry for the userdefined charset, or a token frame
-       **  which contains the charset token subclass.
-       */
-       switch (charset_frame->b_tag)
-       {
-       case sar_k_value_frame:
-           {
-           sym_value_entry_type        * az_value_entry;
-
-           az_value_entry = (sym_value_entry_type *)
-               charset_frame->value.az_symbol_entry;
-
-           font_value_entry->b_charset = az_value_entry->b_charset;
-/* BEGIN HAL Fix CR 5266 */
-           font_value_entry->az_charset_value = az_value_entry;
-/* END HAL Fix CR 5266 */
-           break;
-           }
-
-       case sar_k_token_frame:
-           {
-           key_keytable_entry_type     *keyword_entry;
-
-           keyword_entry = (key_keytable_entry_type *)
-               charset_frame->value.az_keyword_entry;
-           font_value_entry->b_charset = 
-               sem_map_subclass_to_charset( keyword_entry->b_subclass );
-           break;
-           }
-
-       default:
-/* BEGIN OSF Fix CR 5443 */
-           font_value_entry->b_charset = Uil_lex_l_user_default_charset;
-/* END OSF Fix CR 5443 */
-           break;
-       }
-
-    /*
-    ** initialize the target frame
-    */
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_font_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-       (sym_entry_type *) font_value_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a fontset value.  
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the font item generated
-**     charset_frame       token or null frame holding charset token
-**     value_frame         value frame specifying the font value
-**     keyword_frame       frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      create a font symbol table entry
-**
-**--
-**/
-
-void   sar_make_fontset(target_frame, charset_frame, value_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *charset_frame;
-yystype            *value_frame;
-yystype            *keyword_frame;
-
-{
-    sym_value_entry_type    *font_value_entry;
-    sym_value_entry_type    *value_entry;
-
-    _assert( value_frame->b_tag == sar_k_value_frame, "font name is missing" );
-
-       font_value_entry = sem_create_value_entry ("", 0, sym_k_fontset_value );
-       font_value_entry->b_type = sym_k_fontset_value;
-       font_value_entry->obj_header.b_flags = sym_m_private;
-       font_value_entry->b_expr_opr = sym_k_coerce_op;
-
-        if ((value_frame->b_flags & sym_m_forward_ref) != 0)
-           sym_make_value_forward_ref (value_frame,
-               (char*)&(font_value_entry->az_exp_op1), 
-               sym_k_patch_add);
-        else
-           {
-           value_entry =
-               (sym_value_entry_type *) value_frame->value.az_symbol_entry;
-           font_value_entry->az_exp_op1 = value_entry;
-           }
-       
-
-       /*
-       **  If the attr_frame is not null, it must be a value frame with contains
-       **  a pointer to the value entry for the userdefined charset, or a token frame
-       **  which contains the charset token subclass.
-       */
-       switch (charset_frame->b_tag)
-       {
-       case sar_k_value_frame:
-           {
-           sym_value_entry_type        * az_value_entry;
-
-           az_value_entry = (sym_value_entry_type *)
-               charset_frame->value.az_symbol_entry;
-
-           font_value_entry->b_charset = az_value_entry->b_charset;
-/* BEGIN HAL Fix CR 5266 */
-           font_value_entry->az_charset_value = az_value_entry;
-/* END HAL Fix CR 5266 */
-           break;
-           }
-
-       case sar_k_token_frame:
-           {
-           key_keytable_entry_type     *keyword_entry;
-
-           keyword_entry = (key_keytable_entry_type *)
-               charset_frame->value.az_keyword_entry;
-           font_value_entry->b_charset = 
-               sem_map_subclass_to_charset( keyword_entry->b_subclass );
-           break;
-           }
-
-       default:
-/* BEGIN OSF Fix CR 5443 */
-           font_value_entry->b_charset = Uil_lex_l_user_default_charset;
-/* END OSF Fix CR 5443 */
-           break;
-       }
-
-    /*
-    ** initialize the target frame
-    */
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_fontset_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-       (sym_entry_type *) font_value_entry;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a color item which is a temporary respository
-**     to hold data for a single color to be placed in a color table.  The
-**     color item is deleted when the color table is built by 
-**     sar_make_color_table.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the color item generated
-**     color_frame         token or value frame giving the color
-**     letter_frame        value frame specifying the letter to use for color
-**     keyword_frame       frame to use as locator for result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      create a color item symbol table entry
-**
-**--
-**/
-
-void   sar_make_color_item
-           (target_frame, color_frame, letter_frame )
-
-yystype            *target_frame;
-yystype            *color_frame;
-yystype            *letter_frame;
-
-{
-    sym_color_item_entry_type   *item_entry;
-    sym_value_entry_type       *letter_entry;
-
-    _assert( letter_frame->b_tag == sar_k_value_frame, "letter frame missing" );
-
-    /*
-    ** initialize the target frame
-    */
-    _sar_move_source_info( target_frame, color_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = 0;
-    target_frame->b_flags = 0;
-    target_frame->value.az_symbol_entry = 0;
-
-    /*
-    ** The color can be either a color value or the keyword background or
-    ** foreground.  Want to step up:
-    **     target_frame->b_tag:    with either sar_k_value_frame for no error
-    **                             or sar_k_null_frame for an error
-    **     color_entry:            color value if there is one
-    **                             0 for background
-    **                             1 for foreground
-    */
-
-    /*
-    ** Allocate the color item and fill it in
-    */
-
-    item_entry = (sym_color_item_entry_type *)
-       sem_allocate_node(sym_k_color_item_entry,
-                         sym_k_color_item_entry_size );
-    _sar_save_source_pos (&item_entry->header, color_frame);
-
-    item_entry->b_index = 0;
-    item_entry->az_next = NULL;
-
-    switch (color_frame->b_tag)
-    {
-    case sar_k_token_frame:
-    {
-       key_keytable_entry_type *keyword_entry;
-
-       /*
-       **  This is the foreground or background case
-       */
-
-       keyword_entry = color_frame->value.az_keyword_entry;
-
-       switch (keyword_entry->b_token)
-       {
-       case BACKGROUND:
-           item_entry->az_color = (sym_value_entry_type *) URMColorTableBG;
-           break;
-
-       case FOREGROUND:
-           item_entry->az_color = (sym_value_entry_type *) URMColorTableFG;
-           break;
-
-       default:
-           _assert( FALSE, "missing keyword frame" );
-       }
-
-       break;
-    }
-
-    case sar_k_value_frame:
-
-        if ((color_frame->b_flags & sym_m_forward_ref) != 0)
-           {
-           sym_value_entry_type        *diag_value;
-
-           diag_value = (sym_value_entry_type *)
-               color_frame->value.az_symbol_entry;
-           diag_issue_diagnostic
-               (d_undefined,
-               _sar_source_position(color_frame),
-               "color entry",
-               diag_value->obj_header.az_name->c_text);
-           }
-        else
-           {
-           item_entry->az_color =
-               (sym_value_entry_type *) color_frame->value.az_symbol_entry;
-           }
-       break;
-
-    default:
-       _assert( FALSE, "color frame missing" );
-    }
-
-    /*
-    ** Letter frame has already been checked in the grammar to be a character
-    ** string.  Need to further check that it has a length of 1.
-    */
-
-    letter_entry =
-       (sym_value_entry_type *) letter_frame->value.az_symbol_entry;
-
-    if (letter_entry->w_length != 1)
-    {
-       diag_issue_diagnostic
-           ( d_single_letter,
-             _sar_source_position( letter_frame ) );
-
-        target_frame->b_tag = sar_k_null_frame;
-       return;
-    }
-
-    item_entry->b_letter = letter_entry->value.c_value[0];
-
-    /*
-    ** If the tag is in error - return
-    */
-
-    if (target_frame->b_tag == sar_k_null_frame)
-       return;
-
-    /*
-    ** Save source information
-    */
-
-    _sar_save_source_info ( &item_entry->header, color_frame, letter_frame);
-
-    target_frame->value.az_symbol_entry = (sym_entry_type *) item_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a list of the color items that are used to
-**     produce the color table.  Each color is checked to see that
-**     its letter is unique.  The new color item is placed on the
-**     front of the list.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame holding the color item list
-**     item_frame          color item to be added to list
-**     prior_target_frame  existing color list
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_append_color_item(target_frame, item_frame, prior_target_frame)
-
-yystype            *target_frame;
-yystype            *item_frame;
-yystype            *prior_target_frame;
-
-{
-    sym_color_item_entry_type   *item_entry;
-    sym_color_item_entry_type   *prior_item_entry;
-
-    /*
-    ** Tag for the prior_target frame indicates if this is the first
-    ** or a subsequent color item on the list.
-    */
-
-    switch (prior_target_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       prior_item_entry = NULL;
-       break;
-
-    case sar_k_value_frame:
-       prior_item_entry =
-           (sym_color_item_entry_type *)
-               prior_target_frame->value.az_symbol_entry;
-       break;
-
-    default:
-       _assert( FALSE, "prior frame missing" );
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, item_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = 0;
-    target_frame->b_flags = 0;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) prior_item_entry;
-
-    /*
-    ** Need to verify that the letter associated with the current color
-    ** item is unique. 
-    */
-
-    switch (item_frame->b_tag)
-    {
-    case sar_k_value_frame:
-    {
-       sym_color_item_entry_type   *next_item_entry;
-
-       item_entry =
-           (sym_color_item_entry_type *) item_frame->value.az_symbol_entry;
-
-       for (next_item_entry = prior_item_entry;  
-            next_item_entry != NULL;  
-            next_item_entry = next_item_entry->az_next)
-           if (next_item_entry->b_letter == item_entry->b_letter)
-           {
-               diag_issue_diagnostic
-                   ( d_dup_letter,
-                     _sar_source_position( item_frame ) );
-           
-               return;
-           }
-
-       item_entry->az_next = prior_item_entry;
-
-       target_frame->value.az_symbol_entry =
-               (sym_entry_type *) item_entry;
-
-       return;
-    }
-
-    case sar_k_null_frame:
-       return;
-
-    default:
-       _assert( FALSE, "list frame missing" );
-    }
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a color table.  It takes a series of
-**     color items and repackages them within the color table.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame       frame for holding the color table
-**     list_frame          frame holding first of color item lists
-**     keyword_frame       frame for COLOR_TABLE keyword
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void   sar_make_color_table(target_frame, list_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *list_frame;
-yystype            *keyword_frame;
-
-{
-    sym_color_item_entry_type   *next_item_entry;
-    sym_value_entry_type       *color_table_entry;
-    int                                target_type;
-
-    /*
-    ** Tag for the list frame indicates if there are any color items.
-    */
-
-    switch (list_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       target_type = sym_k_error_value;
-       color_table_entry = sym_az_error_value_entry;
-       break;
-
-    case sar_k_value_frame:
-    {
-       int     count;
-       int     index;
-
-       count = 0;
-       index = 1;
-
-       for (next_item_entry =
-            (sym_color_item_entry_type *) list_frame->value.az_symbol_entry;  
-            next_item_entry != NULL;  
-            next_item_entry = next_item_entry->az_next)
-       {
-           count++;
-           switch ((long)next_item_entry->az_color)
-           {
-           case 0:
-               next_item_entry->b_index = URMColorTableBG;
-               break;
-           case 1:
-               next_item_entry->b_index = URMColorTableFG;
-               break;
-           default:
-               next_item_entry->b_index = (unsigned char) ++index;
-               break;
-           }
-       }
-       
-       if (index >= sym_k_max_color_count)
-       {
-          diag_issue_diagnostic
-               (d_too_many,
-                _sar_source_position( keyword_frame ),
-                diag_value_text( sym_k_color_value ),
-                diag_value_text( sym_k_color_table_value ),
-                sym_k_max_color_count );
-           target_type = sym_k_error_value;
-           color_table_entry = sym_az_error_value_entry;
-           break;
-       }
-
-       color_table_entry = (sym_value_entry_type *)
-           sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-       color_table_entry->value.z_color = (sym_color_element *)
-           XtCalloc(1,sizeof(sym_color_element)*count);
-       color_table_entry->b_type = sym_k_color_table_value;
-       color_table_entry->b_table_count = (unsigned char) count;
-       color_table_entry->b_max_index = (unsigned char) index;
-       color_table_entry->obj_header.b_flags = sym_m_private;
-
-       _sar_save_source_pos ( &color_table_entry->header, list_frame);
-
-       for (index = 0,
-            next_item_entry = (sym_color_item_entry_type *)
-                list_frame->value.az_symbol_entry;  
-            next_item_entry != NULL;  
-            index++ )
-           {
-           sym_color_item_entry_type   *temp;
-           
-           color_table_entry->value.z_color[index].b_index =
-               next_item_entry->b_index;           
-           color_table_entry->value.z_color[index].b_letter =
-               next_item_entry->b_letter;          
-           color_table_entry->value.z_color[index].az_color =
-               next_item_entry->az_color;          
-           
-           temp = next_item_entry;
-           next_item_entry = next_item_entry->az_next;
-           sem_free_node(( sym_entry_type *) temp );
-           }
-
-       target_type = sym_k_color_table_value;
-
-       break;
-
-    }
-
-    default:
-       _assert( FALSE, "list frame missing" );
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = target_type;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) color_table_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a color value.  Input to the function is a
-**     character string give the color name and an option keyword specifying
-**     display of the color on a monochrome device.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   frame to hold the created color value
-**     color_frame     frame giving the character string specifying the color
-**     mono_frame      frame describing monochrome attribute
-**     keyword_frame   frame pointing to COLOR keyword
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      icon value is created
-**
-**--
-**/
-
-void   sar_make_color(target_frame, color_frame, mono_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *color_frame;
-yystype            *mono_frame;
-yystype            *keyword_frame;
-
-{
-    sym_value_entry_type    *color_entry;
-    sym_value_entry_type    *value_entry;
-    int                            state;
-
-    /*
-    ** Mono frame can point to the keyword FOREGROUND or BACKGROUND
-    ** or be null meaning unspecified.
-    */
-
-    switch (mono_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       state = sym_k_unspecified_color;
-       break;
-
-    case sar_k_token_frame:
-
-       switch (mono_frame->value.az_keyword_entry->b_token)
-       {
-       case BACKGROUND:
-           state = sym_k_background_color;
-           break;
-
-       case FOREGROUND:
-           state = sym_k_foreground_color;
-           break;
-
-       default:
-           _assert( FALSE, "monochrome info missing" );
-       }
-       break;
-
-    default:
-       _assert( FALSE, "monochrome info missing" );
-    }
-
-    /* 
-    ** Transform the char 8 value entry into a color value.
-    ** Before doing this, we need to insure that the string
-    ** is not in error or named.
-    */
-
-    _assert( color_frame->b_tag == sar_k_value_frame, "value missing" );
-
-       color_entry = 
-           sem_create_value_entry 
-               ( "",
-                 0,
-                 sym_k_color_value );
-       color_entry->b_type = sym_k_color_value;
-       color_entry->obj_header.b_flags = sym_m_private;
-       color_entry->b_arg_type = state;
-       color_entry->b_expr_opr = sym_k_coerce_op;
-
-        if ((color_frame->b_flags & sym_m_forward_ref) != 0)
-           sym_make_value_forward_ref (color_frame,
-               (char*)&(color_entry->az_exp_op1), 
-               sym_k_patch_add);
-        else
-           {
-           value_entry =
-               (sym_value_entry_type *) color_frame->value.az_symbol_entry;
-           color_entry->az_exp_op1 = value_entry;
-           }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = sym_k_color_value;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) color_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function builds a icon value.  Input to the function is a
-**     color table and a list of string that represent the rows of the
-**     icon.
-**
-**  FORMAL PARAMETERS:
-**
-**      target_frame   frame to hold the created icon value
-**     table_frame     frame describing the color table
-**     list_frame      frame pointing to the list of row strings
-**     keyword_frame   frame pointing to the icon keyword
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      target_frame
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      icon value is created
-**
-**--
-**/
-
-void   sar_make_icon(target_frame, list_frame, table_frame, keyword_frame)
-
-yystype            *target_frame;
-yystype            *table_frame;
-yystype            *list_frame;
-yystype            *keyword_frame;
-
-{
-    sym_value_entry_type    *table_entry;
-    sym_value_entry_type    *icon_entry;
-    sym_value_entry_type    *head_row_entry;
-    int                            target_type;
-    int                            width;
-    int                            height;
-
-    /*
-    ** Table_frame specifies the color table for the icon.  If this
-    ** argument is null, use the standard color table.
-    */
-
-    target_type = sym_k_icon_value;
-    height = 0;
-    width = 0;
-
-    switch (table_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       table_entry = standard_color_table();
-       break;
-
-    case sar_k_value_frame:
-       table_entry =
-               (sym_value_entry_type *) table_frame->value.az_symbol_entry;
-
-        /*
-        **  Check that the table is indeed a color table
-        **  Forward references are set up once the icon entry is created
-        */
-
-       if ((table_frame->b_flags & sym_m_forward_ref) != 0)
-           table_entry = NULL;
-       else
-           switch (table_entry->b_type)
-               {
-               case sym_k_color_table_value:
-                   break;
-
-               case sym_k_error_value:
-               default:
-/* BEGIN OSF Fix CR 5421 */
-                   /*
-                    * If the value_frame is not a color_table_value, print
-                    * a diagnostic to flag it as an error further down the
-                    * road.  Otherwise, if it is exported, will cause problems.
-                    */
-                    diag_issue_diagnostic
-                        ( d_wrong_type,
-                          _sar_source_position(table_frame),  
-                          diag_value_text(table_entry->b_type), 
-                          diag_value_text(sym_k_color_table_value) );
-/* END OSF Fix CR 5421 */
-
-                   target_type = sym_k_error_value;
-                   table_entry = standard_color_table();
-                   break;
-               }
-       break;
-
-    default:
-       _assert( FALSE, "color table missing" );
-    }
-
-    /*
-    ** Now start checking the rows of the table.  If the tag on list
-    ** frame is null, there are no rows (this is due to prior errors).
-    ** Rows are linked in reverse order.  We reorder them at this
-    ** point since it simplifies .uid generation.
-    */
-
-    switch (list_frame->b_tag)
-    {
-    case sar_k_null_frame:
-       target_type = sym_k_error_value;
-       break;
-
-    case sar_k_value_frame:
-    {
-       sym_value_entry_type    *row_entry;
-       sym_value_entry_type    *temp_row_entry;
-
-
-       /*
-       **  Reorder the rows
-       */
-
-       for (row_entry =
-               (sym_value_entry_type *) list_frame->value.az_symbol_entry,
-            head_row_entry = NULL;
-
-            row_entry != NULL;  
-           
-            temp_row_entry = row_entry,
-            row_entry = row_entry->az_next_table_value,
-            temp_row_entry->az_next_table_value =
-                head_row_entry,
-            head_row_entry = temp_row_entry)
-               ;
-
-       for (row_entry = head_row_entry,
-            width = row_entry->w_length;
-
-            row_entry != NULL;  
-           
-            row_entry = row_entry->az_next_table_value)
-       {
-/* BEGIN OSF Fix CR 5420 */
-         /*
-          * Check to make sure each row_entry is a character string.
-          * If it isn't, print a diagnostic message indicating an error.
-          */
-            if ((row_entry->b_type != sym_k_char_8_value) &&
-               (row_entry->b_type != sym_k_localized_string_value))
-            {
-                diag_issue_diagnostic
-                    ( d_wrong_type,
-                      _sar_source_pos2(row_entry),
-                      diag_value_text(row_entry->b_type),
-                      diag_value_text(sym_k_char_8_value) );
-                target_type = sym_k_error_value;
-            }
-/* END OSF Fix CR 5420 */
-
-           height++;
-
-           if (width != row_entry->w_length)
-           {
-               diag_issue_diagnostic
-                   ( d_icon_width,
-                     row_entry->header.az_src_rec,     /* line info */
-                     row_entry->header.b_type,         /* column infor */
-                     height );
-               target_type = sym_k_error_value;
-           }
-
-       }
-       break;
-    }
-       
-    default:
-       _assert( FALSE, "row list missing" );
-    }
-
-    if (width > sym_k_max_list_count)
-    {
-       diag_issue_diagnostic
-           ( d_too_many,
-             _sar_source_position( keyword_frame ),
-             "column", diag_value_text( sym_k_icon_value ),
-              sym_k_max_list_count );
-
-       target_type = sym_k_error_value;
-    }
-   
-    if (height > sym_k_max_list_count)
-    {
-       diag_issue_diagnostic
-           ( d_too_many,
-             _sar_source_position( keyword_frame ),
-             "row", diag_value_text( sym_k_icon_value ),
-              sym_k_max_list_count );
-
-       target_type = sym_k_error_value;
-    }
-   
-
-    /*
-    ** If we have no errors, allocate the icon
-    */
-
-    if (target_type == sym_k_error_value)
-       icon_entry = sym_az_error_value_entry;
-    else
-    {
-       icon_entry = (sym_value_entry_type *)
-           sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-       icon_entry->value.z_icon = (sym_icon_element *)
-           XtCalloc(1,sizeof(sym_icon_element));
-       icon_entry->b_type = sym_k_icon_value;
-       icon_entry->value.z_icon->w_height = height;
-       icon_entry->value.z_icon->w_width = width;
-       icon_entry->value.z_icon->az_color_table = table_entry;
-       icon_entry->value.z_icon->az_rows = head_row_entry;
-       icon_entry->obj_header.b_flags = sym_m_private;
-
-       _sar_save_source_pos (&icon_entry->header, list_frame );
-
-       if ((table_frame->b_flags & sym_m_forward_ref) != 0)
-           sym_make_value_forward_ref
-               (table_frame,
-                (char*)&icon_entry->value.z_icon->az_color_table,
-                sym_k_patch_add);
-    }
-
-    /*
-    ** initialize the target frame
-    */
-
-    _sar_move_source_info( target_frame, keyword_frame );
-    target_frame->b_tag = sar_k_value_frame;
-    target_frame->b_type = target_type;
-    target_frame->b_flags = sym_m_private;
-    target_frame->value.az_symbol_entry =
-               (sym_entry_type *) icon_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function defines the standard color table.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      color_table    local static storage
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      address of standard color table entry
-**
-**  SIDE EFFECTS:
-**
-**      may allocate the standard color table
-**
-**--
-**/
-
-static sym_value_entry_type    *standard_color_table()
-{
-    static  sym_value_entry_type    *color_table = NULL;
-
-    if (color_table == NULL)
-    {
-       color_table = (sym_value_entry_type *)
-           sem_allocate_node (sym_k_value_entry,
-                              sym_k_value_entry_size);
-       color_table->value.z_color = (sym_color_element *)
-           XtCalloc(1,sizeof(sym_color_element)*2);
-
-       color_table->b_type = sym_k_color_table_value;
-       color_table->b_table_count = 2;
-       color_table->b_max_index = 1;
-       color_table->obj_header.b_flags = sym_m_private;
-
-       color_table->header.az_src_rec = src_az_module_source_record;
-
-       color_table->value.z_color[0].b_index = URMColorTableBG;
-       color_table->value.z_color[0].b_letter = ' ';
-       color_table->value.z_color[0].az_color =
-           (sym_value_entry_type *) URMColorTableBG;
-           
-       color_table->value.z_color[1].b_index = URMColorTableFG;
-       color_table->value.z_color[1].b_letter = '*';
-       color_table->value.z_color[1].az_color =
-           (sym_value_entry_type *) URMColorTableFG;
-
-    }
-
-    return color_table;
-}
diff --git a/cde/osf/uil/UilSemCSet.c b/cde/osf/uil/UilSemCSet.c
deleted file mode 100644 (file)
index 1f9fa74..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSemCSet.c /main/10 1997/03/12 15:21:53 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This file contains and routines related to the semantics of
-**     character sets.
-**     semantic validation.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Xm/Xm.h>
-
-#include "UilDefI.h"
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function returns a pointer to a character set name given
-**     its sym_k_..._charset code and possibly a userdefined charset
-**     value entry.
-**
-**  FORMAL PARAMETERS:
-**
-**     l_charset       charset of the string (token value)
-**     az_charset_entry   charset of the string (symbol table value entry)
-**
-**  IMPLICIT INPUTS:
-**
-**      charset data tables
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      pointer to name (must NOT be freed)
-**
-**  SIDE EFFECTS:
-**
-**      error messages may be issued for objects that are still undefined
-**     or of the wrong type
-**
-**--
-**/
-
-char *sem_charset_name (l_charset, az_charset_entry)
-    int                                l_charset;
-    sym_value_entry_type       *az_charset_entry;
-
-{
-
-int            charset;                /* mapped character set */
-
-charset = sem_map_subclass_to_charset (l_charset);
-switch ( charset )
-    {
-    case sym_k_fontlist_default_tag:
-      return XmFONTLIST_DEFAULT_TAG;      
-    case sym_k_userdefined_charset:
-        /*
-        ** If the charset is user-defined, then fetch info from the symbol 
-        ** table entry for it.                                            
-        */
-       _assert (az_charset_entry!=NULL, "null userdefined charset entry");
-       return az_charset_entry->value.c_value;
-    default:
-       return charset_xmstring_names_table[charset];
-    }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function returns information about the character set specified
-**     (writing direction and sixteen_bit properties).
-**
-**  FORMAL PARAMETERS:
-**
-**     l_charset       charset of the string (token value)
-**     az_charset_entry   charset of the string (symbol table value entry)
-**     direction       string writing direction
-**     sixteen_bit     Boolean return value
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void sem_charset_info
-    (l_charset, az_charset_entry, write_direction, parse_direction,  sixteen_bit)
-
-int                    l_charset;
-sym_value_entry_type   *az_charset_entry;
-int                    *write_direction;
-int                    *parse_direction;
-int                    *sixteen_bit;
-
-{
-
-int            charset;        /* mapped character set */
-    
-charset = sem_map_subclass_to_charset (l_charset);
-switch (charset) 
-    {
-    /*
-     ** If the charset is user-defined, then fetch info from the symbol 
-     ** table entry for it.                                               
-     */
-    case sym_k_userdefined_charset:
-        {
-       *write_direction = az_charset_entry->b_direction;
-       *parse_direction = az_charset_entry->b_direction;
-       *sixteen_bit = (az_charset_entry->b_aux_flags &
-                       sym_m_sixteen_bit) != 0;
-       break;
-       }
-    default:
-       {
-       *write_direction = charset_writing_direction_table[charset];
-       *parse_direction = charset_parsing_direction_table[charset];
-       if ( charset_character_size_table[charset] != sym_k_onebyte_charsize )
-           *sixteen_bit = TRUE;
-       else
-           *sixteen_bit = FALSE;
-       break;
-       }
-       }
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function returns the charset id corresponding to the
-**     charset specified in a $LANG variable. User-defined character
-**     sets are not recognized - it must be one available in the
-**     the compiler tables.
-**
-**     The name match is case-insensitive.
-**
-**  FORMAL PARAMETERS:
-**
-**     lang_charset    string naming a character set
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      0      no match - character set not found
-**     >0      character set code from sym_k_..._charset.
-**             sym_k_userdefined_charset is never returned.
-**             
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-int sem_charset_lang_name (lang_charset)
-    char               *lang_charset;
-
-{
-
-char           uname[200];     /* upper-case character set name */
-int            ndx;            /* loop index */
-
-
-/*
- * Convert name to upper case, then search table (which is already in
- * upper case).
- */
-strcpy (uname, lang_charset);
-for ( ndx=0 ; ndx<(int)strlen(uname) ; ndx++ )
-    uname[ndx] = _upper (uname[ndx]);
-
-for ( ndx=0 ; ndx<(int)charset_lang_table_max ; ndx++ )
-    if ( strcmp(uname,charset_lang_names_table[ndx]) == 0 )
-       return (int)charset_lang_codes_table[ndx];
-return 0;
-
-}
-
-
diff --git a/cde/osf/uil/UilSemVal.c b/cde/osf/uil/UilSemVal.c
deleted file mode 100644 (file)
index 79451aa..0000000
+++ /dev/null
@@ -1,4750 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSemVal.c /main/18 1997/09/15 14:15:21 cshi $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the second pass routines for performing
-**     semantic validation.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <stdlib.h>
-#include <setjmp.h>
-#include <Mrm/MrmAppl.h>
-#include <Xm/XmStrDefs.h>
-
-
-#include "UilDefI.h"
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**  The order of these constants is significant. The constants lower in
-**  value than error_arg_type are basically numeric types and various
-**  conversions may be done on those types. Those constants are compared
-**  numerically with error_arg_type to determine whether they may be
-**  converted. Furthermore, the numeric_convert_table is indexed by
-**  those constants. If you are adding new arg types, add before error_arg_type
-**  if it is a numeric type, but also remember to update the numeric_
-**  convert_table below to have an entry for that type. Add the new type
-**  after error_arg_type if it is not numeric. lstr_arg_type must be after
-**  char_arg_type and before cstr_arg_type.  When done, update all the constants
-**  to be sequential.
-**
-**/
-
-#define        boolean_arg_type                0
-#define        integer_arg_type                1
-#define single_float_arg_type          2
-#define float_arg_type                 3
-#define horizontal_integer_arg_type    4
-#define vertical_integer_arg_type      5
-#define horizontal_float_arg_type      6
-#define vertical_float_arg_type        7
-#define error_arg_type                 8
-
-#define        char_arg_type                   9
-#define lstr_arg_type                  10
-#define        cstr_arg_type                   11
-#define keysym_arg_type                12
-#define font_arg_type                  13
-#define color_arg_type                 14
-#define xbitmap_arg_type               15
-#define reason_arg_type                        16
-#define argument_arg_type              17
-#define font_table_arg_type            18
-#define wcstr_arg_type                 19
-#define fontset_arg_type               20
-/*  BEGIN HaL fix CR 5429 */ 
-#define classrec_arg_type              21
-/* END HaL Fix CR 5429 */
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-static unsigned int            ref_chk_value = 0;
-static short                   in_expr = 0;
-static int                     cycle_id = 1;
-
-/*
-**  This table is indexed by arg_types defined above that are less than
-**  error_arg_type.
-**/
-
-static int ( * numeric_convert_table[])() = {
-           0,
-           sem_convert_to_integer,
-           sem_convert_to_single_float,
-           sem_convert_to_float,
-           sem_convert_to_integer,
-           sem_convert_to_integer,
-           sem_convert_to_float,
-           sem_convert_to_float,
-           sem_convert_to_error };
-
-/*
- * The next two definitions must match value sets defining 
- * expression operators in UilSymDef.h
- */
-
-static unsigned int legal_operand_type[ ] = {
-    /* unused */       0,
-    /* not */          1 << sym_k_bool_value | 1 << sym_k_integer_value, 
-    /* unary plus */   1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value,
-    /* unary minus */  1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value, 
-    /* comp_str */     1 << sym_k_char_8_value | 
-                       1 << sym_k_localized_string_value |
-                       1 << sym_k_compound_string_value,
-    /* wchar_str */    1 << sym_k_localized_string_value,
-    /* multiply */     1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value, 
-    /* divide */       1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value,
-    /* add */          1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value, 
-    /* subtract */     1 << sym_k_integer_value |
-                       1 << sym_k_horizontal_integer_value |
-                       1 << sym_k_vertical_integer_value |
-                       1 << sym_k_float_value |
-                       1 << sym_k_horizontal_float_value |
-                       1 << sym_k_vertical_float_value | 
-                        1 << sym_k_single_float_value, 
-    /* left shift */   1 << sym_k_integer_value,
-    /* right shift */  1 << sym_k_integer_value,
-    /* and */          1 << sym_k_bool_value |
-                        1 << sym_k_integer_value |
-                       1 << sym_k_char_8_value | 
-                       1 << sym_k_localized_string_value | 
-                       1 << sym_k_compound_string_value |
-                       1 << sym_k_localized_string_value, 
-    /* xor */          1 << sym_k_bool_value | 1 << sym_k_integer_value, 
-    /* or */           1 << sym_k_bool_value | 1 << sym_k_integer_value, 
-    /* cat */          1 << sym_k_char_8_value | 
-                       1 << sym_k_compound_string_value |
-                       1 << sym_k_localized_string_value,
-    /* valref */       0xFFFFFFFF,
-    /* coerce */       0xFFFFFFFF
-                                 };
-static char    *operator_symbol[ ] = {
-    /* unused */       "** OPERATOR ERROR**",
-    /* not */          "not operator",
-    /* unary plus */   "unary plus operator",
-    /* unary minus */  "unary minus operator",
-    /* comp str */     "compound string function",
-    /* wchar str */    "wide_character string function",
-    /* multiply */     "multiply operator",
-    /* divide */       "divide operator",
-    /* add */          "add operator",
-    /* subtract */     "subtract operator",
-    /* left shift */   "left shift operator",
-    /* right shift */  "right shift operator",
-    /* and */          "and operator",
-    /* xor */          "exclusive or operator",
-    /* or */           "or operator",
-    /* cat */          "concatenate operator",
-    /* coerce */       "coerce operator",
-                                 };
-
-static char    *value_text[ ] = {
-    /* boolean */      "boolean expression",
-    /* integer */      "integer expression",
-    /* float */                "floating point expression",
-                       };
-
-static sym_argument_entry_type         **arg_seen;
-static sym_callback_entry_type         **reason_seen;
-
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function walks the entire parse tree for the input, and
-**     performs semantic validation. It guarantees type matching,
-**     that arguments and controls and legal, etc.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_root_entry
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error messages may be issued for objects that are still undefined
-**     or of the wrong type
-**
-**--
-**/
-
-void   sem_validation ()
-{
-
-/*
- * Allocate storage if required
- */
-if ( arg_seen == NULL )
-    arg_seen = (sym_argument_entry_type **)
-       XtMalloc (sizeof(sym_argument_entry_type *)*(uil_max_arg+1));
-if ( reason_seen == NULL )
-    reason_seen = (sym_callback_entry_type **)
-       XtMalloc (sizeof(sym_argument_entry_type *)*(uil_max_reason+1));
-
-/*
- * Walk the parse tree, performing validation on each node which
- * requires it.
- */
-sem_validate_node (( sym_entry_type *)sym_az_root_entry->sections);
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine recursively walks through the parse tree. It
-**     ignores any nodes which require no pass 2 validation, and
-**     calls a specialized routine for any others. It checks for
-**     any requests to terminate.
-**
-**  FORMAL PARAMETERS:
-**
-**      node           current parse tree node
-**
-**  IMPLICIT INPUTS:
-**
-**      >
-**
-**  IMPLICIT OUTPUTS:
-**
-**      >
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      may terminate processing
-**
-**--
-**/
-
-void sem_validate_node (node)
-    sym_entry_type             *node;
-
-{
-
-/*
- * Local variables
- */
-sym_value_entry_type           *value_node;
-sym_widget_entry_type          *widget_node;
-sym_widget_entry_type          *child_node;
-sym_list_entry_type            *list_node;
-sym_include_file_entry_type    *ifile_node;
-sym_section_entry_type         *section_node;
-sym_obj_entry_type             *entry_node;
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-
-/*
- * Call the status callback routine to report progress and check status
- */
-/* %COMPLETE */
-Uil_percent_complete = 80;
-if ( Uil_cmd_z_command.status_cb != (Uil_continue_type(*)())NULL )
-    diag_report_status ();
-
-/*
- * Switch on the node type for validation and recursion.
- */
-if ( node == NULL ) return;
-switch ( node->header.b_tag )
-    {
-    case sym_k_value_entry:
-        value_node = (sym_value_entry_type *) node;
-       sem_validate_value_node (value_node);
-       break;
-    case sym_k_widget_entry:
-    case sym_k_gadget_entry:
-    case sym_k_child_entry:
-       widget_node = (sym_widget_entry_type *) node;
-       sem_validate_widget_node (widget_node);
-
-       /*
-        * Recurse for children and validate all children. Duplicate
-        * validation will not occur since sem_validate_widget_node checks
-        * bflags for validated flag.
-        */
-       sem_validate_node (( sym_entry_type *)widget_node->az_controls);
-       break;
-    case sym_k_list_entry:
-       /*
-        * recursive entry point for processing controls lists.
-        */
-       list_node = (sym_list_entry_type *) node;
-       if ( list_node->header.b_type != sym_k_control_list )
-           break;
-       for (list_member=(sym_obj_entry_type *)list_node->obj_header.az_next;
-            list_member!=NULL;
-            list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-           switch ( list_member->header.b_tag )
-               {
-               case sym_k_nested_list_entry:
-                   nested_list_entry =
-                       (sym_nested_list_entry_type *) list_member;
-                   sem_validate_node (( sym_entry_type *)nested_list_entry->az_list);
-                   break;
-               case sym_k_control_entry:
-                   control_entry = (sym_control_entry_type *) list_member;
-                   child_node = (sym_widget_entry_type *)
-                       control_entry->az_con_obj;
-                   sem_validate_node (( sym_entry_type *)child_node);
-               break;
-               }
-       break;
-    case sym_k_include_file_entry:
-       ifile_node = (sym_include_file_entry_type *) node;
-       sem_validate_node (( sym_entry_type *)ifile_node->sections);
-       break;
-    case sym_k_section_entry:
-       section_node = (sym_section_entry_type *) node;
-       sem_validate_node (( sym_entry_type *)section_node->next);
-       switch ( section_node->header.b_type )
-           {
-           case sym_k_section_tail:
-               break;
-           default:
-               entry_node = (sym_obj_entry_type *) section_node->entries;
-               sem_validate_node (( sym_entry_type *)entry_node);
-               break;
-           }
-       break;
-    }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates a value node
-**
-**  FORMAL PARAMETERS:
-**
-**      value_node             the symbol table node to be validated.
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      pointer to the value node resulting from the operation (may be
-**      different from input)
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-sym_value_entry_type *sem_validate_value_node (value_node)
-    sym_value_entry_type       *value_node;
-
-{
-
-/*
- * Local variables
- */
-
-
-/*
- * Both evaluation and validation are done by the value evaluation routine
- */
-if ( value_node == NULL )
-    return NULL;
-if ( value_node->obj_header.b_flags & sym_m_validated )
-    return value_node;
-
-sem_evaluate_value (value_node);
-value_node->obj_header.b_flags |= sym_m_validated;
-return value_node;
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates a widget node
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node            the symbol table node to be validated.
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_widget_node (widget_node)
-    sym_widget_entry_type      *widget_node;
-
-{
-
-/*
- * Local variables
- */
-unsigned int                   widget_type;
-sym_list_entry_type            *list_entry;    /* for various lists */
-
-/*
- * if this widget has already been validated just return
- */
-if (widget_node->obj_header.b_flags & sym_m_validated)
-    return;
-
-/*
- * Pick up widget parameters
- */
-if (widget_node->header.b_tag == sym_k_child_entry)
-  widget_type = child_class_table[widget_node->header.b_type];
-else widget_type = widget_node->header.b_type;
-
-/*
- * Validate the arguments. Each argument in the list is validated
- * by an argument validation routine.
- */
-if ( widget_node->az_arguments != NULL )
-    {
-    int                        ndx;
-    for ( ndx=0 ; ndx<uil_max_arg+1 ; ndx++ )
-       arg_seen[ndx] = 0;
-    sem_validate_argument_list (widget_node, widget_type,
-                               widget_node->az_arguments, arg_seen);
-    }
-       
-/*
- * Validate the callbacks. Each callback is validated by a validation
- * routine
- */
-if ( widget_node->az_callbacks != NULL )
-    {
-    int                        ndx;
-    for ( ndx=0 ; ndx<uil_max_reason+1 ; ndx++ )
-       reason_seen[ndx] = 0;
-    sem_validate_callback_list (widget_node, widget_type,
-                               widget_node->az_callbacks, reason_seen);
-    }
-
-/*
- * Validate the controls. Each is validated by a validation routine.
- * Also check the node for cycles.
- */
-if ( widget_node->az_controls != NULL )
-    {
-    int                                        gadget_count = 0;
-
-    list_entry = (sym_list_entry_type *) widget_node->az_controls;
-    sem_validate_control_list (widget_node, widget_type,
-                              list_entry, &gadget_count);
-    list_entry->w_gadget_count = gadget_count;
-    sem_validate_widget_cycle (list_entry, widget_node->obj_header.az_name);
-    }
-
-/*
- * Mark the widget as validated
- */
-widget_node->obj_header.b_flags |= sym_m_validated;
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates all the arguments in an argument list.
-**     It recurse down nested lists.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list to be validated
-**     seen            flag table to detect duplicate arguments
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void sem_validate_argument_list        (widget_node, widget_type, list_entry, seen)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    sym_argument_entry_type            **seen;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_argument_entry_type                *argument_entry;
-/* For fixing DTS 9540 */
-static    int nest_count=0; 
-static    sym_list_entry_type *nest_head = NULL;
-
-
-/*
- * loop down the list
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-            /* Begin fixing DTS 9540 */
-            if(!nest_count)
-               nest_head = nested_list_entry->az_list;
-            nest_count++;
-            if(nest_count == 1 || nest_head != nested_list_entry->az_list){
-               sem_validate_argument_list (widget_node, widget_type,
-                                       nested_list_entry->az_list, seen);
-                nest_count--;
-            }else
-               diag_issue_diagnostic
-                       (d_circular_ref,
-                       _sar_source_pos2(list_entry),
-                       "argument name");
-            /* End fixing DTS 9540 */
-           break;
-       case sym_k_argument_entry:
-           argument_entry = (sym_argument_entry_type *) list_member;
-           sem_validate_argument_entry (widget_node, widget_type,
-                                        list_entry, argument_entry, seen);
-           break;
-       default:
-           diag_issue_diagnostic
-               ( d_list_item,
-                 _sar_source_pos2 ( list_entry ),
-                 diag_tag_text (sym_k_argument_entry),
-                 diag_tag_text (list_entry->header.b_type),
-                 diag_tag_text (list_entry->header.b_tag) );
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine performs validation for a single argument entry
-**     for the current widget node.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list entry for current argument entry
-**     argument_entry  the current argument entry
-**     seen           flag table to detect duplicate arguments
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_argument_entry
-       (widget_node, widget_type, list_entry, argument_entry, seen)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    sym_argument_entry_type            *argument_entry;
-    sym_argument_entry_type            **seen;
-
-{
-
-/*
- * Local variables
- */
-sym_value_entry_type           *argname_value_entry;
-sym_value_entry_type           *argvalue_value_entry;
-key_keytable_entry_type                *keytable_entry;
-sym_argument_entry_type                **seen_entry;
-boolean                                supported_flag;
-unsigned char                  expected_type, actual_type, actual_tag;
-boolean                                valid_value;
-
-
-/*
- * ignore error entries, consistency check
- */
-if ( argument_entry->header.b_tag == sym_k_error_entry ) return;
-_assert (argument_entry->header.b_tag==sym_k_argument_entry,
-        "unexpected non argument entry");
-
-/*
- * Validate and evaluate the argument name and argument value entries.
- */
-
-sem_validate_node (( sym_entry_type *)argument_entry->az_arg_name);
-
-/*
- * There is no need to validate the value if it is a widget since widgets are
- * validated elsewhere and you can't define widgets in an argument list anyway.
- */
-
-if ( argument_entry->az_arg_value == NULL )
-    return;
-
-if ((argument_entry->az_arg_value->header.b_tag != sym_k_widget_entry) &&
-    (argument_entry->az_arg_value->header.b_tag != sym_k_gadget_entry))
-    sem_validate_node (( sym_entry_type *)argument_entry->az_arg_value);
-
-argname_value_entry = (sym_value_entry_type *) argument_entry->az_arg_name;
-if ( argname_value_entry == NULL )
-    {
-    diag_issue_diagnostic
-       (d_bad_argument,
-        _sar_source_pos2(argument_entry),
-        "argument name");
-    return;
-    }
-
-sem_evaluate_value_expr(argname_value_entry);
-_assert (argname_value_entry->header.b_tag==sym_k_value_entry,
-        "invalid argument name value_entry");
-if (argname_value_entry->b_type != sym_k_argument_value)
-    {
-    diag_issue_diagnostic
-       (d_list_item,
-        _sar_source_pos2(argname_value_entry),
-        diag_value_text(argname_value_entry->b_type),
-        diag_tag_text(list_entry->header.b_type),
-        diag_tag_text(list_entry->header.b_tag));
-    return;
-    }
-
-argvalue_value_entry = (sym_value_entry_type *) argument_entry->az_arg_value;
-
-/* BEGIN HAL Fix CR 3857 */
-if ((argument_entry->az_arg_value->header.b_tag != sym_k_widget_entry) &&
-    (argument_entry->az_arg_value->header.b_tag != sym_k_gadget_entry))
-/* END HAL Fix CR 3857 */
-  sem_evaluate_value_expr(argvalue_value_entry);
-
-/*
- * Check for unsupported arguments. Validate constraints.
- * This check is required for known toolkit arguments in
- * toolkit widgets.
- */
-if ( (argname_value_entry->obj_header.b_flags&sym_m_builtin) &&
-     (widget_type!=uil_sym_user_defined_object) &&
-     (argname_value_entry->obj_header.az_name == NULL) )
-    {
-    /*
-     * Pick up the token keytable entry for the argument.
-     * Fork on whether it is a constraint argument
-     */
-    keytable_entry = (key_keytable_entry_type *)
-       argname_value_entry->value.az_data;
-    _assert (keytable_entry->b_class==tkn_k_class_argument,
-            "unexpected non-argument keytable entry");
-    if ( _constraint_check(keytable_entry->b_subclass) )
-       sem_validate_constraint_entry (widget_node, argument_entry, widget_type);
-    else
-       {
-       supported_flag = sem_argument_allowed
-           (keytable_entry->b_subclass, widget_type);
-       if ( ! supported_flag )
-           diag_issue_diagnostic
-               (d_unsupported,
-                _sar_source_pos2(argument_entry),
-                keytable_entry->at_name,
-                diag_tag_text(argument_entry->header.b_tag),
-                diag_object_text(widget_type));
-       }
-
-    /*
-     * Check for duplicate arguments. A warning is issued, but the
-     * argument is not removed from the list, since it may occur in
-     * an argument list - and the argument list may be referenced in
-     * another context where this argument is not duplicated.
-     */
-    seen_entry = (sym_argument_entry_type **)
-       &seen[keytable_entry->b_subclass];
-    if ( *seen_entry != NULL )
-       {
-       diag_issue_diagnostic
-           (d_supersede,
-            _sar_source_pos2(argument_entry),
-            keytable_entry->at_name,
-            diag_tag_text(argument_entry->header.b_tag),
-            diag_tag_text(list_entry->header.b_type),
-            diag_tag_text(list_entry->header.b_tag));
-       }
-    else
-       {
-       *seen_entry = argument_entry;
-       }
-
-    /*
-     * Make sure that any enumeration value reference is valid.
-     */
-    sem_validate_argument_enumset (argument_entry,
-                                  keytable_entry->b_subclass,
-                                  argvalue_value_entry);
-    }
-
-/*
-**  Verify the value type for this argument, if it is a
-**  built-in argument or a user_defined argument. Check for
-**  proper enumeration set match
-*/
-if ( (argname_value_entry->obj_header.b_flags & sym_m_builtin) &&
-     (argname_value_entry->obj_header.az_name == NULL) ) 
-    {
-    key_keytable_entry_type            * keytable_entry;
-
-    keytable_entry =
-       (key_keytable_entry_type *) argname_value_entry->value.az_data;
-    _assert (keytable_entry->b_class==tkn_k_class_argument,
-            "name is not an argument");
-    expected_type = argument_type_table[keytable_entry->b_subclass];
-    }
-else 
-    expected_type = argname_value_entry->b_arg_type;
-
-/*
-** Argument value validation
-**
-** Acquire and evaluate argument value.
-** Allow a widget reference as the value of an argument.  NOTE: gadgets
-** are not allowed as argument values, only controls.
-**
-** This entry may be absent due to extensive compilation errors.
-*/
-if ( argvalue_value_entry == NULL ) return;
-
-actual_tag = argvalue_value_entry->header.b_tag;
-switch ( actual_tag )
-    {
-    case sym_k_value_entry:
-        actual_type = argvalue_value_entry->b_type;
-       break;
-    case sym_k_widget_entry:
-       actual_type = sym_k_widget_ref_value;
-       break;
-    default:
-       _assert (FALSE, "value entry missing");    
-       break;
-    }
-valid_value = (actual_type == expected_type);
-
-/*
-** Coerce actual_type to expected_type for certain special cases.
-** We'll do this by creating a new value node for the coerced value with
-** the coerce unary operator set.  We'll actually perform the coersion
-** operation here and set the flag indicating that expression evaluation
-** has already taken place.
-*/
-if ( expected_type == sym_k_any_value )
-    valid_value = TRUE;
-if ( actual_type == sym_k_any_value )
-    valid_value = TRUE;
-if ( actual_type == sym_k_identifier_value )
-    valid_value = TRUE;
-if (( expected_type == sym_k_pixmap_value ) &&
-    ( actual_type == sym_k_icon_value ))
-    valid_value = TRUE;
-if (( expected_type == sym_k_pixmap_value ) &&
-    ( actual_type == sym_k_xbitmapfile_value ))
-    valid_value = TRUE;
-if (( expected_type == sym_k_color_value) &&      /* RAP rgb data type */
-    ( actual_type == sym_k_rgb_value))
-    valid_value = TRUE;
-/*  BEGIN HaL fix CR 5429 */ 
-if (( expected_type == sym_k_class_rec_name_value) &&      
-    ( actual_type == sym_k_class_rec_name_value))
-    valid_value = TRUE;
-/*  END HaL fix CR 5429 */ 
-/* For boolean values converted to enums */
-if ((expected_type == sym_k_integer_value) &&      
-    (actual_type == sym_k_bool_value))
-    valid_value = TRUE;
-if (( expected_type == sym_k_char_8_value ) &&
-    ( actual_type == sym_k_localized_string_value ))
-    valid_value = TRUE;
-if (( expected_type == sym_k_compound_string_value ) &&
-    ( actual_type == sym_k_char_8_value ))
-    {
-    valid_value = TRUE;
-    if ( (argvalue_value_entry->obj_header.b_flags & sym_m_private) != 0)
-       {
-       sym_value_entry_type   *cstr_value;
-       
-       cstr_value = (sym_value_entry_type *) sem_create_cstr();
-       cstr_value->b_expr_opr = sym_k_coerce_op;
-       cstr_value->az_exp_op1 = argvalue_value_entry;
-       sem_evaluate_value_expr (cstr_value);
-       argument_entry->az_arg_value = cstr_value;
-       }
-    }
-if (( expected_type == sym_k_compound_string_value ) &&
-    ( actual_type == sym_k_localized_string_value ))
-    {
-    valid_value = TRUE;
-    if ( (argvalue_value_entry->obj_header.b_flags & sym_m_private) != 0)
-       {
-       sym_value_entry_type   *cstr_value;
-       
-       cstr_value = (sym_value_entry_type *) sem_create_cstr();
-       cstr_value->b_expr_opr = sym_k_coerce_op;
-       cstr_value->az_exp_op1 = argvalue_value_entry;
-       sem_evaluate_value_expr (cstr_value);
-       argument_entry->az_arg_value = cstr_value;
-       }
-    }
-if (( expected_type == sym_k_wchar_string_value ) &&
-    ( actual_type == sym_k_localized_string_value ))
-    {
-    valid_value = TRUE;
-    if ( (argvalue_value_entry->obj_header.b_flags & sym_m_private) != 0)
-       {
-       sym_value_entry_type   *wcstr_value;
-       
-       wcstr_value = (sym_value_entry_type *) sem_create_wchar_str();
-       wcstr_value->b_expr_opr = sym_k_coerce_op;
-       wcstr_value->az_exp_op1 = argvalue_value_entry;
-       sem_evaluate_value_expr (wcstr_value);
-       argument_entry->az_arg_value = wcstr_value;
-       }
-    }
-if (( expected_type == sym_k_font_table_value ) &&
-    (( actual_type == sym_k_font_value ) ||
-     ( actual_type == sym_k_fontset_value )))
-    {
-    valid_value = TRUE;
-    if ( (argvalue_value_entry->obj_header.b_flags & sym_m_private) != 0)
-       {
-        sym_value_entry_type   *font_table;
-
-        font_table = 
-           sem_create_value_entry
-               ((char*)&argvalue_value_entry, sizeof(long),
-                sym_k_font_table_value);
-        font_table->b_table_count = 1;
-        font_table->az_first_table_value = argvalue_value_entry;
-        font_table->b_expr_opr = sym_k_coerce_op;
-        font_table->az_exp_op1 = argvalue_value_entry;
-        font_table->b_aux_flags |= sym_m_exp_eval;
-        argument_entry->az_arg_value = sem_evaluate_value (font_table);
-       }
-    }
-if (( expected_type == sym_k_keysym_value ) &&
-    ( actual_type == sym_k_integer_value ))
-    {
-/*
- * If an integer is incountered when expecting a keysym then just make the 
- * integer into a keysym if the integer is private. If it isn't give an error 
- * message because Mrm won't be able to handle that problem.
- * When allocating the space for c_value the size of the string is one since an
- * integer can only be one character.
- */
-    if ( (argvalue_value_entry->obj_header.b_flags & sym_m_private) != 0)
-       {
-       char       tmp;
-
-       valid_value = TRUE;
-       tmp = argument_entry->az_arg_value->value.l_integer;
-       argument_entry->az_arg_value->value.c_value = (char *) XtCalloc(1,2);
-       /* 
-        * This is a very strange move. While we Calloc 2 bytes we only need to move
-        * one of those bytes. We calloc 2 bytes for a null termination so HP type 
-        * machines will work. It looks wierd but it works.
-        */
-       _move (argument_entry->az_arg_value->value.c_value, &tmp, 1);
-       argument_entry->az_arg_value->b_type = sym_k_keysym_value;
-       argument_entry->az_arg_value->w_length = 1;
-       }
-    }
-
-if ((( expected_type == sym_k_horizontal_integer_value ) ||
-     ( expected_type == sym_k_vertical_integer_value ))
-    &&
-    (( actual_type == sym_k_integer_value) ||
-     ( actual_type == sym_k_float_value)))
-    {
-       /* If the expected type was either a horizontal or
-          vertical integer and we got an integer, then simply make
-          the actual type become the expected type. */
-       valid_value = TRUE;
-       argument_entry->az_arg_value->b_type = expected_type;
-       /* If the actual_type is a float then coerce it into
-          being an integer */
-       if (actual_type == sym_k_float_value)
-         argument_entry->az_arg_value->value.l_integer =
-           (long) argument_entry->az_arg_value->value.d_real;
-       /* XmPIXELS currently has a value of 0 so the following
-          isn't really necessary but I suppose it is more robust. */
-       if (argument_entry->az_arg_value->b_arg_type == 0)
-         argument_entry->az_arg_value->b_arg_type = XmPIXELS;
-    }
-
-if ((( expected_type == sym_k_horizontal_float_value ) ||
-     ( expected_type == sym_k_vertical_float_value ))
-    &&
-    (( actual_type == sym_k_horizontal_integer_value ) ||
-     ( actual_type == sym_k_vertical_integer_value )))
-    {
-       /* If the expected type was either a horizontal or
-          vertical float and we got a horizontal or
-          vertical integer, then make the actual type become
-          a horizontal or vertical integer, respectively. */
-       valid_value = TRUE;
-       if (expected_type == sym_k_horizontal_float_value)
-         argument_entry->az_arg_value->b_type =
-           sym_k_horizontal_integer_value;
-       else if (expected_type == sym_k_vertical_float_value)
-         argument_entry->az_arg_value->b_type = sym_k_vertical_integer_value;
-       /* Coerce the value into being a float */
-       argument_entry->az_arg_value->value.d_real =
-         (double) argument_entry->az_arg_value->value.l_integer;
-       /* XmPIXELS currently has a value of 0 so the following
-          isn't really necessary but I suppose it is more robust. */
-       if (argument_entry->az_arg_value->b_arg_type == 0)
-         argument_entry->az_arg_value->b_arg_type = XmPIXELS;
-    }
-
-if ((( expected_type == sym_k_horizontal_integer_value ) ||
-     ( expected_type == sym_k_vertical_integer_value ))
-    &&
-    (( actual_type == sym_k_horizontal_float_value ) ||
-     ( actual_type == sym_k_vertical_float_value )))
-    {
-       /* If the expected type was either a horizontal or
-          vertical integer and we got a horizontal or vertical
-          float, then make the actual type become a horizontal
-          or vertical float, respectively. */
-       valid_value = TRUE;
-       if (expected_type == sym_k_horizontal_integer_value)
-         argument_entry->az_arg_value->b_type = sym_k_horizontal_float_value;
-       else if (expected_type == sym_k_vertical_integer_value)
-         argument_entry->az_arg_value->b_type = sym_k_vertical_float_value;
-       /* Coerce the value into being an integer */
-       argument_entry->az_arg_value->value.l_integer =
-         (long) argument_entry->az_arg_value->value.d_real;
-       /* XmPIXELS currently has a value of 0 so the following
-          isn't really necessary but I suppose it is more robust. */
-       if (argument_entry->az_arg_value->b_arg_type == 0)
-         argument_entry->az_arg_value->b_arg_type = XmPIXELS;
-    }
-
-if ((( expected_type == sym_k_horizontal_float_value ) ||
-     ( expected_type == sym_k_vertical_float_value ))
-    &&
-    (( actual_type == sym_k_integer_value) ||
-     ( actual_type == sym_k_float_value)))
-    {
-       /* If the expected type was either a horizontal or
-          vertical float and we got a float, then simply make
-          the actual type become the expected type. */
-       valid_value = TRUE;
-       argument_entry->az_arg_value->b_type = expected_type;
-       /* If actual_type is an integer, then coerce into being
-          a float */
-       if (actual_type == sym_k_integer_value)
-         argument_entry->az_arg_value->value.d_real =
-           (double) argument_entry->az_arg_value->value.l_integer;
-       /* XmPIXELS currently has a value of 0 so the following
-          isn't really necessary but I suppose it is more robust. */
-       if (argument_entry->az_arg_value->b_arg_type == 0)
-         argument_entry->az_arg_value->b_arg_type = XmPIXELS;
-    }
-
-/* It is also possible for us to encounter a horizontal float or
-   int when we are expecting a vertical float or int. When using
-   'value' defined constants, we coerce the type of the constant
-   the first time it is used. We have to be able to accept the
-   coerced value in a different context later. */
-if ((( expected_type == sym_k_horizontal_float_value ) &&
-     ( actual_type == sym_k_vertical_float_value ))
-    ||
-    (( expected_type == sym_k_horizontal_integer_value ) &&
-     ( actual_type == sym_k_vertical_integer_value )))
-{
-    /* Leave the actual type and value alone, but flag it as
-       an acceptable value. This will mean that the first orientation
-       the value is coerced to will be the orientation for all
-       occurences of the value. */
-    valid_value = TRUE;
-}
-
-if (!valid_value)
-    diag_issue_diagnostic
-       (d_obj_type,
-        _sar_source_pos2(argname_value_entry),
-        diag_value_text(actual_type),
-        diag_tag_text(actual_tag),
-        diag_value_text(expected_type),
-        diag_tag_text(sym_k_value_entry) );
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine performs enumeration set validation for a single
-**     argument entry. If it's value is an enumeration set reference,
-**     then we verify that the value comes from the argument's supported
-**     enumeration set.
-**
-**  FORMAL PARAMETERS:
-**
-**     argument_entry  the current argument entry
-**     arg_code        the sym_k_..._arg code for the argument
-**     arg_value_entry the value node for the argument value
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_argument_enumset
-       (argument_entry, arg_code, arg_value_entry)
-    sym_argument_entry_type            *argument_entry;
-    int                                        arg_code;
-    sym_value_entry_type               *arg_value_entry;
-
-{
-
-/*
- * Local variables
- */
-unsigned short int     enumval_code;
-unsigned short int     enumset_code;
-int                    ndx;
-
-
-/*
- * No action if value is not an integer enumeration value. Else:
- *     - argument must support enumeration set
- *     - value must be from set
- */
-if ( arg_value_entry == NULL ) return;
-if ((arg_value_entry->b_type != sym_k_integer_value) &&
-    (arg_value_entry->b_type != sym_k_bool_value)) return;
-enumval_code = arg_value_entry->b_enumeration_value_code;
-if ( enumval_code == 0 ) return;
-enumset_code = argument_enumset_table[arg_code];
-if ( enumset_code == 0 )
-  {
-    if (arg_value_entry->b_type != sym_k_bool_value)
-      diag_issue_diagnostic(d_no_enumset,
-                           _sar_source_pos2(argument_entry),
-                           uil_argument_names[arg_code]);
-    return;
-  }
-for ( ndx=0 ; ndx<enum_set_table[enumset_code].values_cnt ; ndx++ )
-    if ( enum_set_table[enumset_code].values[ndx] == enumval_code ) return;
-diag_issue_diagnostic (d_invalid_enumval,
-                      _sar_source_pos2(argument_entry),
-                      uil_argument_names[arg_code],
-                      uil_enumval_names[enumval_code]);
-return;
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates a constraint entry. It checks to make
-**     sure that the constraint reference is valid in each of the
-**     parents of the widget using the constraint
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the widget using the constraint
-**     argument_entry  the constraint argument
-**
-**  IMPLICIT INPUTS:
-**
-**      >
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_constraint_entry (widget_node, argument_entry, widget_type)
-    sym_widget_entry_type              *widget_node;
-    sym_argument_entry_type            *argument_entry;
-    unsigned int                       widget_type;
-{
-
-/*
- * Local variables
- */
-sym_parent_list_type           *parent_entry;
-sym_widget_entry_type          *parent_object;
-unsigned int                   parent_type;
-unsigned int                   parent_tag;
-key_keytable_entry_type                *keytable_entry;
-sym_value_entry_type           *arg_name_entry;
-boolean                                supported_flag;
-
-
-/*
- * Validate the constraint with each of the referencing widget's parents
- */
-for (parent_entry=widget_node->parent_list;
-     parent_entry!=NULL;
-     parent_entry=parent_entry->next)
-    {
-
-    /*
-     * Acquire the parent object and its type
-     */
-    parent_object = parent_entry->parent;
-    parent_type = parent_object->header.b_type;
-    if ( parent_object->obj_header.b_flags & sym_m_obj_is_gadget )
-       {
-       parent_tag = sym_k_gadget_entry;
-       }
-    else
-       {
-       parent_tag = sym_k_widget_entry;
-       }
-
-    /*
-     * Acquire the appropriate pointers, and validate the reference
-     */
-    arg_name_entry = (sym_value_entry_type *)argument_entry->az_arg_name;
-    keytable_entry = (key_keytable_entry_type *)arg_name_entry->value.az_data;
-    supported_flag = sem_argument_allowed(keytable_entry->b_subclass,
-                                         parent_type);
-    if (!supported_flag)
-      {
-       /* Check for both argument and constraint, e.g. decimalPoints. */
-       supported_flag = sem_argument_allowed(keytable_entry->b_subclass,
-                                             widget_type);
-       if (!supported_flag)
-         diag_issue_diagnostic(d_unsupp_const,
-                               _sar_source_pos2(argument_entry),
-                               keytable_entry->at_name,
-                               diag_object_text(parent_type),
-                               diag_tag_text(parent_tag));
-      }
-  }
-
-/*
- * Checks on nodes pointed to by this node
- *
- * There is no need to validate the value if it is a widget since widgets are
- * validated elsewhere and you can't define widgets in an argument list anyway.
- */
-
-if ((argument_entry->az_arg_value->header.b_tag != sym_k_widget_entry) &&
-    (argument_entry->az_arg_value->header.b_tag != sym_k_gadget_entry))
-    sem_validate_node (( sym_entry_type *)argument_entry->az_arg_value);
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates all the callbacks in an callback list.
-**     It recurse down nested lists.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list to be validated
-**     seen            flag table to detect duplicate callbacks
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void sem_validate_callback_list        (widget_node, widget_type, list_entry, seen)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    sym_callback_entry_type            **seen;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_callback_entry_type                *callback_entry;
-
-
-/*
- * loop down the list
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           sem_validate_callback_list (widget_node, widget_type,
-                                       nested_list_entry->az_list, seen);
-           break;
-       case sym_k_callback_entry:
-           callback_entry = (sym_callback_entry_type *) list_member;
-           sem_validate_callback_entry (widget_node, widget_type,
-                                        list_entry, callback_entry, seen);
-           break;
-       default:
-           diag_issue_diagnostic
-               ( d_list_item,
-                 _sar_source_pos2 ( list_entry ),
-                 diag_tag_text (sym_k_callback_entry),
-                 diag_tag_text (list_entry->header.b_type),
-                 diag_tag_text (list_entry->header.b_tag) );
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine performs validation for a single callback entry
-**     for the current widget node.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list entry for current callback entry
-**     callback_entry  the current callback entry
-**     seen            flag table to detect duplicate callbacks
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_callback_entry
-       (widget_node, widget_type, list_entry, callback_entry, seen)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    sym_callback_entry_type            *callback_entry;
-    sym_callback_entry_type            **seen;
-
-{
-
-/*
- * Local variables
- */
-sym_value_entry_type           *reason_value_entry;
-key_keytable_entry_type                *keytable_entry;
-sym_callback_entry_type                **seen_entry;
-boolean                                supported_flag;
-static sym_value_entry_type     *widget_az_arg_value = NULL; 
-
-
-/*
- * ignore error entries, consistency check
- */
-if ( callback_entry->header.b_tag == sym_k_error_entry ) return;
-_assert (callback_entry->header.b_tag==sym_k_callback_entry,
-        "unexpected non callback entry");
-
-reason_value_entry = (sym_value_entry_type *)
-    callback_entry->az_call_reason_name;
-
-/*
- * Force expression evaluation
- */
-sem_evaluate_value_expr (reason_value_entry);
-
-if (reason_value_entry == NULL)
-    return;
-
-_assert (reason_value_entry->header.b_tag == sym_k_value_entry,
-        "reason value entry missing");
-
-if (reason_value_entry->b_type != sym_k_reason_value) {
-    diag_issue_diagnostic
-       ( d_list_item,
-         _sar_source_pos2 ( reason_value_entry ),
-         diag_value_text (reason_value_entry->b_type),
-         diag_tag_text (list_entry->header.b_type),
-         diag_tag_text (list_entry->header.b_tag) );
-    return;
-    }
-
-/*
- * Check for unsupported callbacks.
- * This check is required for known toolkit callbacks in
- * toolkit widgets.
- */
-if ( (reason_value_entry->obj_header.b_flags&sym_m_builtin) &&
-     (widget_type!=uil_sym_user_defined_object) )
-    {
-    /*
-     * Pick up the token keytable entry for the callback.
-     * Validate that the reason is supported
-     */
-    keytable_entry = (key_keytable_entry_type *)
-       reason_value_entry->value.az_data;
-    _assert (keytable_entry->b_class==tkn_k_class_reason,
-            "unexpected non-reason keytable entry");
-    supported_flag = sem_reason_allowed
-       (keytable_entry->b_subclass, widget_type);
-    if ( ! supported_flag )
-       diag_issue_diagnostic
-           (d_unsupported,
-            _sar_source_pos2(callback_entry),
-            keytable_entry->at_name,
-            diag_tag_text(callback_entry->header.b_tag),
-            diag_object_text(widget_type));
-
-    /*
-     * Check for duplicate callbacks. A warning is issued, but the
-     * callback is not removed from the list, since it may occur in
-     * an callback list - and the callback list may be referenced in
-     * another context where this callback is not duplicated.
-     */
-    seen_entry = (sym_callback_entry_type **)
-       &seen[keytable_entry->b_subclass];
-    if ( *seen_entry != NULL )
-       {
-       diag_issue_diagnostic
-           (d_supersede,
-            _sar_source_pos2(callback_entry),
-            keytable_entry->at_name,
-            diag_tag_text(callback_entry->header.b_tag),
-            diag_tag_text(list_entry->header.b_type),
-            diag_tag_text(list_entry->header.b_tag));
-       }
-    else
-       {
-       *seen_entry = callback_entry;
-       }
-    }
-
-/*
- * Checks on nodes pointed to by this node
- */
-    /* Begin fixing DTS 10391 and OSF CR 8715*/
-    if(callback_entry->az_call_proc_ref &&
-      callback_entry->az_call_proc_ref->az_arg_value &&
-      (callback_entry->az_call_proc_ref->az_arg_value->header.b_tag
-        == sym_k_widget_entry || 
-        callback_entry->az_call_proc_ref->az_arg_value->header.b_tag
-        == sym_k_gadget_entry) && 
-        widget_az_arg_value == callback_entry->az_call_proc_ref->az_arg_value){
-           diag_issue_diagnostic
-                        (d_circular_def,
-                        _sar_source_pos2(callback_entry),
-                        "callback client_data");
-    }else{
-        if(callback_entry->az_call_proc_ref &&
-        callback_entry->az_call_proc_ref->az_arg_value &&
-        (callback_entry->az_call_proc_ref->az_arg_value->header.b_tag
-           == sym_k_widget_entry || 
-           callback_entry->az_call_proc_ref->az_arg_value->header.b_tag
-           == sym_k_gadget_entry) && !widget_az_arg_value)
-             widget_az_arg_value = callback_entry->az_call_proc_ref->az_arg_value;
-       sem_validate_procref_entry (callback_entry->az_call_proc_ref);
-       sem_validate_procref_list (callback_entry->az_call_proc_ref_list);
-     }
-    widget_az_arg_value = NULL;
-    /* End fixing DTS 10391 and OSF CR 8715*/
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates all the controls in an control list.
-**     It recurse down nested lists.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list to be validated
-**     count           to return gadget count
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void sem_validate_control_list (widget_node, widget_type, list_entry, count)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    int                                        *count;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-
-
-/*
- * loop down the list
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           sem_validate_control_list
-               (widget_node, widget_type, nested_list_entry->az_list, count);
-           break;
-       case sym_k_control_entry:
-           control_entry = (sym_control_entry_type *) list_member;
-           sem_validate_control_entry
-               (widget_node, widget_type, list_entry, control_entry, count);
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine performs validation for a single control entry
-**     for the current widget node.
-**
-**  FORMAL PARAMETERS:
-**
-**      widget_node    the current widget
-**     widget_type     the current widget's type
-**     list_entry      list entry for current control entry
-**     control_entry   the current control entry
-**     gadget_count    to accumulate count of controlled gadgets
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_control_entry
-       (widget_node, widget_type, list_entry, control_entry, gadget_count)
-    sym_widget_entry_type              *widget_node;
-    unsigned int                       widget_type;
-    sym_list_entry_type                        *list_entry;
-    sym_control_entry_type             *control_entry;
-    int                                        *gadget_count;
-
-{
-
-/*
- * Local variables
- */
-sym_widget_entry_type          *control_obj_entry;
-boolean                                supported_flag;
-
-
-/*
- * ignore error entries, consistency check
- */
-if ( control_entry->header.b_tag == sym_k_error_entry ) return;
-_assert (control_entry->header.b_tag==sym_k_control_entry,
-        "unexpected non control entry");
-
-/*
- * Similar checks for the object being controlled
- */
-control_obj_entry = (sym_widget_entry_type *) control_entry->az_con_obj;
-if ( control_obj_entry->header.b_tag == sym_k_error_entry )
-    {
-    control_entry->header.b_tag = sym_k_error_entry;
-    return;
-    }
-_assert (control_obj_entry->header.b_tag==sym_k_widget_entry ||
-        control_obj_entry->header.b_tag==sym_k_gadget_entry ||
-        control_obj_entry->header.b_tag==sym_k_child_entry,
-        "unexpected non-control object entry");
-
-if ( control_obj_entry->header.b_tag == sym_k_gadget_entry )
-    *gadget_count += 1;
-
-/*
- * Check for unsupported controls or automatic children.
- */
-if (control_obj_entry->header.b_tag == sym_k_child_entry)
-  {
-    supported_flag = 
-      sem_child_allowed(control_obj_entry->header.b_type, widget_type);
-    if ( ! supported_flag )
-      diag_issue_diagnostic
-       (d_unsupported,
-        _sar_source_pos2(control_entry),
-        uil_child_names[control_obj_entry->header.b_type],
-        "automatic child",
-        diag_object_text(widget_type));
-  }
-else 
-  {
-    supported_flag = 
-      sem_control_allowed(control_obj_entry->header.b_type, widget_type);
-    if ( ! supported_flag )
-      diag_issue_diagnostic
-       (d_unsupported,
-        _sar_source_pos2(control_entry),
-        diag_object_text(control_obj_entry->header.b_type),
-        diag_tag_text(control_entry->header.b_tag),
-        diag_object_text(widget_type));
-  }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine recursively checks for cycles in a widget hierarchy.
-**     A cycle is defined as the appearance of a widget's name in its
-**     subtree hierarchy. A cycle is detected by setting a unique id
-**     for this cycle check in each name entry encountered. If this id
-**     is ever encountered again, there is a cycle.
-**
-**     This is the root routine of the recursion, which is responsible
-**     for setting flags in the name entry.
-**
-**  FORMAL PARAMETERS:
-**
-**     list_entry      list to be validated
-**     cycle_name      if non-NULL, a widget name for cycle check
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void sem_validate_widget_cycle (list_entry, cycle_name)
-    sym_list_entry_type                        *list_entry;
-    sym_name_entry_type                        *cycle_name;
-
-{
-
-/*
- * Local variables
- */
-boolean                                cycle_res;
-
-
-/*
- * Acquire a new cycle id value.Call the auxiliary recursion routine,
- * and set results in the name entry.
- */
-if ( cycle_name == NULL ) return;
-cycle_id += 1;
-cycle_name->az_cycle_id = cycle_id;
-cycle_res = sem_validate_widget_cycle_aux (list_entry, cycle_name);
-cycle_name->b_flags |= sym_m_cycle_checked;
-if ( cycle_res )
-    cycle_name->b_flags |= sym_m_has_cycle;
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine recursively checks for cycles in a widget hierarchy.
-**     A cycle is defined as the appearance of a widget's name in its
-**     subtree hierarchy. This is the fully recursive auxiliary for
-**     sem_validate_widget_cycle
-**
-**     Checking is based on the fact that for any named widget, its
-**     subtree definition is fixed and can be checked exactly once. Once
-**     checked, it is marked as checked, and also flagged if it contains
-**     a cycle. Since any tree containing a subtree which has a cycle also
-**     has a cycle, checking stops immediately if such a subtree is detected,
-**     and subtrees must always be (recursively) checked in advance of
-**     the current check.
-**
-**  FORMAL PARAMETERS:
-**
-**     list_entry      list to be validated
-**     cycle_name      if non-NULL, a widget name for cycle check
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**                     TRUE    cycle detected
-**                     FALSE   no cycle detected
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_validate_widget_cycle_aux (list_entry, cycle_name)
-    sym_list_entry_type                        *list_entry;
-    sym_name_entry_type                        *cycle_name;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-sym_widget_entry_type          *control_obj_entry;
-sym_name_entry_type            *control_obj_name;
-
-
-/*
- * loop down the list. Check for cycles in each leaf (widget) node. Note
- * we must step through the az_reference for named widgets. If a cycle is
- * ever detected, we exit (or we'll recurse forever). Note that an error
- * node returns TRUE, as if it had a cycle (which inhibits further checking).
- *
- * If we encounter a previously visited node, we may have either a cycle
- * or a legitimate multiple reference. Verify that it is a cycle, and
- * issue an error message if so. If it is not verified, it need not be
- * checked again.
- */
-if ( list_entry == NULL ) return FALSE;
-if ( cycle_name == NULL ) return FALSE;
-if ( cycle_name->b_flags & sym_m_cycle_checked )
-    return (cycle_name->b_flags&sym_m_has_cycle) == 1;
-
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           if ( sem_validate_widget_cycle_aux
-                    (nested_list_entry->az_list, cycle_name) )
-               return TRUE;
-           break;
-       case sym_k_control_entry:
-           control_entry = (sym_control_entry_type *) list_member;
-           control_obj_entry =
-               (sym_widget_entry_type *) control_entry->az_con_obj;
-           if ( control_obj_entry->header.b_tag == sym_k_error_entry )
-               return TRUE;
-           _assert (control_obj_entry->header.b_tag==sym_k_widget_entry ||
-                    control_obj_entry->header.b_tag==sym_k_gadget_entry ||
-                    control_obj_entry->header.b_tag==sym_k_child_entry,
-                    "unexpected non-control object entry");
-           if ( control_obj_entry->obj_header.az_reference != NULL )
-               control_obj_entry = (sym_widget_entry_type *)
-                   control_obj_entry->obj_header.az_reference;
-           if ( control_obj_entry->az_controls == NULL )
-               break;
-           control_obj_name = control_obj_entry->obj_header.az_name;
-           if ( control_obj_name != NULL )
-               {
-               if ( control_obj_name->az_cycle_id == cycle_id )
-                   {
-                   if ( sem_validate_verify_cycle
-                            (control_obj_entry,
-                             control_obj_entry->az_controls) )
-                       {
-                       diag_issue_diagnostic
-                           (d_widget_cycle,
-                            _sar_source_pos2(control_entry),
-                            control_obj_name->c_text);
-                       control_obj_name->b_flags |= sym_m_cycle_checked;
-                       control_obj_name->b_flags |= sym_m_has_cycle;
-                       return TRUE;
-                       }
-                   else
-                       {
-                       control_obj_name->b_flags |= sym_m_cycle_checked;
-                       break;
-                       }
-                   }
-               control_obj_name->az_cycle_id = cycle_id;
-               }
-           if ( sem_validate_widget_cycle_aux
-               (control_obj_entry->az_controls, cycle_name) )
-               return TRUE;
-           break;
-       }
-return FALSE;
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine verifies that a cycle found by widget_cycle_aux is
-**     really a cycle. widget_cycle_aux may have detected a legitimate
-**     multiple appearance of a widget in a hierarchy which is not a cycle.
-**     This routine uses a pointer-marching technique to see if the given
-**     node is in a real cycle. If the cycle_obj is ever encountered in
-**     the pointer march, then there is a cycle. Otherwise, the march
-**     terminates.
-**     
-**
-**  FORMAL PARAMETERS:
-**
-**     cycle_obj       object to be found in cycle
-**     list_entry      current controls list
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**                     TRUE    cycle detected
-**                     FALSE   no cycle detected
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_validate_verify_cycle (cycle_obj, list_entry)
-    sym_widget_entry_type              *cycle_obj;
-    sym_list_entry_type                        *list_entry;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_control_entry_type         *control_entry;
-sym_widget_entry_type          *control_obj_entry;
-
-
-/*
- * Search all objects in the controls list, and recurse.
- * objects controlled by the current object.
- */
-if ( list_entry == NULL )
-    return FALSE;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           if ( sem_validate_verify_cycle
-                    (cycle_obj, nested_list_entry->az_list) )
-               return TRUE;
-           break;
-       case sym_k_control_entry:
-           control_entry = (sym_control_entry_type *) list_member;
-           control_obj_entry =
-               (sym_widget_entry_type *) control_entry->az_con_obj;
-           if ( control_obj_entry->obj_header.az_reference != NULL )
-               control_obj_entry = (sym_widget_entry_type *)
-                   control_obj_entry->obj_header.az_reference;
-           if ( control_obj_entry == cycle_obj )
-               return TRUE;
-           if ( control_obj_entry->az_controls == NULL )
-               break;
-           if ( sem_validate_verify_cycle 
-                    (cycle_obj, control_obj_entry->az_controls) )
-               return TRUE;
-           break;
-       }
-return FALSE;
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine validates all the procrefs in an procref list.
-**     It recurses down nested lists.
-**
-**  FORMAL PARAMETERS:
-**
-**     list_entry      list to be validated
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-void sem_validate_procref_list (list_entry)
-    sym_list_entry_type                        *list_entry;
-
-{
-
-/*
- * Local variables
- */
-sym_obj_entry_type             *list_member;
-sym_nested_list_entry_type     *nested_list_entry;
-sym_proc_ref_entry_type                *procref_entry;
-
-
-/*
- * loop down the list
- */
-if ( list_entry == NULL ) return;
-for (list_member=(sym_obj_entry_type *)list_entry->obj_header.az_next;
-     list_member!=NULL;
-     list_member=(sym_obj_entry_type *)list_member->obj_header.az_next)
-    switch ( list_member->header.b_tag )
-       {
-       case sym_k_nested_list_entry:
-           nested_list_entry = (sym_nested_list_entry_type *) list_member;
-           sem_validate_procref_list (nested_list_entry->az_list);
-           break;
-       case sym_k_proc_ref_entry:
-           procref_entry = (sym_proc_ref_entry_type *) list_member;
-           sem_validate_procref_entry (procref_entry);
-           break;
-       }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine performs validation for a single procref entry.
-**
-**  FORMAL PARAMETERS:
-**
-**     procref_entry   the current procref entry
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error reporting
-**
-**--
-**/
-
-void sem_validate_procref_entry (procref_entry)
-    sym_proc_ref_entry_type            *procref_entry;
-
-{
-
-/*
- * Local variables
- */
-sym_value_entry_type           *value_entry;
-sym_proc_def_entry_type        *proc_def_entry;
-int                            actual_arg_count;
-int                            expected_arg_type;
-int                            actual_arg_type;
-int                            arg_checking;
-
-
-/*
- * ignore error entries, consistency check
- */
-if ( procref_entry == NULL ) return;
-if ( procref_entry->header.b_tag == sym_k_error_entry ) return;
-_assert (procref_entry->header.b_tag==sym_k_proc_ref_entry,
-        "unexpected non procref entry");
-
-
-    /*
-    ** Validate procedure reference argument:
-    ** Correct number of args
-    ** Correct datatype of arg - coerce if necessary
-    */
-
-    proc_def_entry = procref_entry->az_proc_def;
-    /* Could be NULL due to previous compilation errors. */
-    if (proc_def_entry == NULL) return;
-
-    /*
-    ** if checking is required, check that the values
-    ** agree with the parameters
-    */
-
-    arg_checking = proc_def_entry->v_arg_checking;
-
-    value_entry = procref_entry->az_arg_value;
-
-    if (arg_checking)
-    {
-       boolean     valid_arg;
-
-        if (value_entry == NULL)
-           {
-           actual_arg_count = 0;
-           actual_arg_type = sym_k_no_value;
-           }
-        else
-           {
-            sem_evaluate_value_expr(value_entry);
-           actual_arg_count = 1;
-           actual_arg_type = value_entry->b_type;
-           }
-
-       if (actual_arg_count != proc_def_entry->b_arg_count)
-       {
-           diag_issue_diagnostic
-               ( d_arg_count,
-                 _sar_source_pos2 (procref_entry),
-                 proc_def_entry->obj_header.az_name->c_text,
-                 proc_def_entry->b_arg_count );
-
-           return;
-       }
-
-       expected_arg_type = proc_def_entry->b_arg_type;
-       valid_arg = (actual_arg_type == expected_arg_type);
-
-       if ( expected_arg_type == sym_k_any_value )
-           valid_arg = TRUE;
-
-       if ( actual_arg_type == sym_k_identifier_value )
-           valid_arg = TRUE;
-
-       if (( expected_arg_type == sym_k_pixmap_value ) &&
-           ( actual_arg_type == sym_k_icon_value ))
-           valid_arg = TRUE;
-
-       if (( expected_arg_type == sym_k_color_value) &&/* RAP rgb data type */
-           ( actual_arg_type == sym_k_rgb_value))
-         valid_arg = TRUE;
-
-       if ((expected_arg_type == sym_k_char_8_value) &&
-           (actual_arg_type == sym_k_localized_string_value))
-         valid_arg = TRUE;
-       
-       if (( expected_arg_type == sym_k_compound_string_value ) &&
-           ( actual_arg_type == sym_k_char_8_value ))
-       {
-           valid_arg = TRUE;
-           if ( (value_entry->obj_header.b_flags & sym_m_private) != 0)
-           {
-               sym_value_entry_type   *cstr_value;
-
-               cstr_value = (sym_value_entry_type *) sem_create_cstr();
-               cstr_value->b_expr_opr = sym_k_coerce_op;
-               cstr_value->az_exp_op1 = value_entry;
-               sem_evaluate_value_expr (cstr_value);
-           }
-       }
-
-       if (( expected_arg_type == sym_k_compound_string_value ) &&
-           ( actual_arg_type == sym_k_localized_string_value ))
-       {
-           valid_arg = TRUE;
-           if ( (value_entry->obj_header.b_flags & sym_m_private) != 0)
-           {
-               sym_value_entry_type   *cstr_value;
-
-               cstr_value = (sym_value_entry_type *) sem_create_cstr();
-               cstr_value->b_expr_opr = sym_k_coerce_op;
-               cstr_value->az_exp_op1 = value_entry;
-               sem_evaluate_value_expr (cstr_value);
-           }
-       }
-
-       if (( expected_arg_type == sym_k_wchar_string_value ) &&
-           ( actual_arg_type == sym_k_localized_string_value ))
-       {
-           valid_arg = TRUE;
-           if ( (value_entry->obj_header.b_flags & sym_m_private) != 0)
-           {
-               sym_value_entry_type   *wcstr_value;
-
-               wcstr_value = (sym_value_entry_type *) sem_create_wchar_str();
-               wcstr_value->b_expr_opr = sym_k_coerce_op;
-               wcstr_value->az_exp_op1 = value_entry;
-               sem_evaluate_value_expr (wcstr_value);
-           }
-       }
-
-       if (( expected_arg_type == sym_k_font_table_value ) &&
-           (( actual_arg_type == sym_k_font_value ) ||
-            ( actual_arg_type == sym_k_fontset_value )))
-       {
-           valid_arg = TRUE;
-           if ( (value_entry->obj_header.b_flags & sym_m_private) != 0)
-           {
-               sym_value_entry_type   *font_table;
-
-               font_table = 
-                   sem_create_value_entry
-                       ( (char*)&value_entry, sizeof(long),
-                        sym_k_font_table_value );
-               font_table->b_expr_opr = sym_k_coerce_op;
-               font_table->az_exp_op1 = value_entry;
-               value_entry = sem_evaluate_value (font_table);
-           }
-       }
-
-       if ((expected_arg_type == sym_k_widget_ref_value) &&
-           (value_entry->header.b_tag == sym_k_widget_entry))
-         {
-           expected_arg_type = proc_def_entry->b_widget_type;
-           actual_arg_type = value_entry->header.b_type;
-           
-           if ((expected_arg_type > uil_max_object) ||
-               (actual_arg_type == expected_arg_type))
-             {
-               valid_arg = TRUE;
-             }
-           else 
-             {
-               diag_issue_diagnostic
-                 (d_arg_type,
-                  _sar_source_pos2(procref_entry),
-                  diag_object_text(actual_arg_type),
-                  proc_def_entry->obj_header.az_name->c_text,
-                  diag_object_text(expected_arg_type));
-
-               return;
-             }
-         }
-       
-       if (!valid_arg)
-       {
-           diag_issue_diagnostic
-               ( d_arg_type,
-                 _sar_source_pos2 (procref_entry),
-                 diag_value_text( actual_arg_type ),
-                 proc_def_entry->obj_header.az_name->c_text,
-                 diag_value_text( expected_arg_type ) );
-
-           return;
-       }
-    }
-
-/*
- * Perform validation of tags
- */
-sem_validate_node (( sym_entry_type *)procref_entry->az_arg_value);
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This predicate specifies if an argument is allowed in a class.
-**
-**  FORMAL PARAMETERS:
-**
-**      arg_code       The sym_k_..._arg code for the argument
-**     class_code      The sym_k_..._object code for the class
-**
-**  IMPLICIT INPUTS:
-**
-**      allowed_argument_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      TRUE           argument is allowed
-**     FALSE           argument is not allowed
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_argument_allowed (arg_code, class_code)
-    unsigned int               arg_code;
-    unsigned int               class_code;
-
-{
-
-unsigned char          *entry_vec;
-unsigned char          vec_byte;
-
-entry_vec = allowed_argument_table[arg_code];
-vec_byte = entry_vec[_BIT_INDEX(class_code)];
-return (boolean) vec_byte & _BIT_MASK(class_code);
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This predicate specifies if a reason is allowed in a class.
-**
-**  FORMAL PARAMETERS:
-**
-**      rsn_code       The sym_k_..._reason code for the reason
-**     class_code      The sym_k_..._object code for the class
-**
-**  IMPLICIT INPUTS:
-**
-**      allowed_reason_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      TRUE           reason is allowed
-**     FALSE           reason is not allowed
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_reason_allowed (rsn_code, class_code)
-    unsigned int               rsn_code;
-    unsigned int               class_code;
-
-{
-
-unsigned char          *entry_vec;
-unsigned char          vec_byte;
-
-entry_vec = allowed_reason_table[rsn_code];
-vec_byte = entry_vec[_BIT_INDEX(class_code)];
-return (boolean) vec_byte & _BIT_MASK(class_code);
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This predicate specifies if a control is allowed in a class.
-**
-**  FORMAL PARAMETERS:
-**
-**      ctl_code       The sym_k_..._object code for the control, that is,
-**                     the class of object which is to be a child of
-**                     the class below.
-**     class_code      The sym_k_..._object code for the class
-**
-**  IMPLICIT INPUTS:
-**
-**      allowed_control_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      TRUE           control is allowed
-**     FALSE           control is not allowed
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_control_allowed (ctl_code, class_code)
-    unsigned int               ctl_code;
-    unsigned int               class_code;
-
-{
-
-unsigned char          *entry_vec;
-unsigned char          vec_byte;
-
-entry_vec = allowed_control_table[ctl_code];
-vec_byte = entry_vec[_BIT_INDEX(class_code)];
-return (boolean) vec_byte & _BIT_MASK(class_code);
-
-}
-
-\f
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This predicate specifies if an automatically create child is
-**      allowed in a class.
-**
-**  FORMAL PARAMETERS:
-**
-**      ctl_code       The sym_k_..._child code for the child, that is,
-**                     the class of child which is to be automatically
-**                     created in the class below.
-**     class_code      The sym_k_..._object code for the class
-**
-**  IMPLICIT INPUTS:
-**
-**      allowed_child_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**      TRUE           child is allowed
-**     FALSE           child is not allowed
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-boolean sem_child_allowed (ctl_code, class_code)
-    unsigned int               ctl_code;
-    unsigned int               class_code;
-
-{
-
-unsigned char          *entry_vec;
-unsigned char          vec_byte;
-
-entry_vec = allowed_child_table[ctl_code];
-vec_byte = entry_vec[_BIT_INDEX(class_code)];
-return (boolean) vec_byte & _BIT_MASK(class_code);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**     
-**     This function does evaluation and validation of value nodes. It
-**     guarantees that a value usable by the output routine or other consumers
-**     of values is available in the value union of the node, with
-**     any other corollary fields also set. The result of the operation may
-**     be a new node, if coercion is required.
-**
-**  FORMAL PARAMETERS:
-**
-**     val_entry       pointer to the value node to be evaluated
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      The value node which results from the evaluation/validation operation
-**
-**  SIDE EFFECTS:
-**
-**      The value union and other fields may be modified.
-**
-**--
-**/
-
-sym_value_entry_type *sem_evaluate_value (val_entry)
-    sym_value_entry_type       *val_entry;
-
-{
-/*
- * Force expression evaluation
- */
-sem_evaluate_value_expr (val_entry);
-
-/* BEGIN HAL Fix CR 4774 */
-/*     Do not execute case statement if val_entry was previously 
- *      a sym_k_valref_op node type.  This can be determined by
- *      examining the state of the sym_m_exp_eval flag in the 
- *      b_aux_flags field.
- */
-
-
-if ((val_entry->b_aux_flags & sym_m_exp_eval) == 0)
-  /*
-   * Perform evaluations which depend on the type of the value
-   */
-  switch ( val_entry->b_type )
-/* END HAL Fix CR 4774 */
-    {
-    case sym_k_integer_value:
-    case sym_k_horizontal_integer_value:
-    case sym_k_vertical_integer_value:
-       break;
-    case sym_k_compound_string_value:
-        sem_evaluate_value_cs (val_entry);
-       break;
-/* BEGIN OSF Fix CR 4859 */
-/* END OSF Fix CR 4859 */
-    case sym_k_string_table_value:
-       {
-       sym_value_entry_type *value_segment;
-       for (value_segment=val_entry->az_first_table_value;
-            value_segment!=NULL;
-            value_segment=value_segment->az_next_table_value)
-           {
-           sem_evaluate_value_expr (value_segment);
-           if ((value_segment->b_type == sym_k_char_8_value) ||
-               (value_segment->b_type == sym_k_localized_string_value))
-               {
-               sym_value_entry_type    *cstr;
-               sym_value_entry_type    *save_next;
-
-               save_next = (sym_value_entry_type *)
-                   (value_segment -> az_next_table_value);
-               cstr = (sym_value_entry_type *) sem_create_cstr();
-               sem_append_str_to_cstr( cstr, 
-                   value_segment, FALSE);
-               _sym_copy_entry (value_segment,
-                   cstr,
-                   sym_k_value_entry_size );
-               value_segment -> az_next_table_value =
-                   save_next;
-               cstr->value.xms_value = NULL;
-               cstr->az_first_table_value = NULL;
-               sem_free_node (( sym_entry_type *)cstr);
-               }
-           if (value_segment->b_type != sym_k_compound_string_value) 
-               diag_issue_diagnostic
-                   ( d_wrong_type,
-                     _sar_source_pos2( value_segment ),
-                     diag_value_text( value_segment->b_type),
-                     diag_value_text( sym_k_compound_string_value ) );
-           sem_evaluate_value_cs (value_segment);
-           }
-        }
-       break;
-    case sym_k_integer_table_value:
-       {
-       sym_value_entry_type *value_segment;
-
-       for (value_segment=val_entry->az_first_table_value;
-            value_segment!=NULL;
-            value_segment=value_segment->az_next_table_value)
-           {
-           sem_evaluate_value_expr (value_segment);
-           if (value_segment->b_type != sym_k_integer_value &&
-               value_segment->b_type != sym_k_horizontal_integer_value &&
-               value_segment->b_type != sym_k_vertical_integer_value)
-               diag_issue_diagnostic
-                   ( d_wrong_type,
-                     _sar_source_pos2( value_segment ),
-                     diag_value_text( value_segment->b_type),
-                     diag_value_text( sym_k_integer_value ) );
-           }
-       }
-       break;
-    case sym_k_asciz_table_value:
-    case sym_k_trans_table_value:
-       {
-       sym_value_entry_type *value_segment;
-
-       for (value_segment=val_entry->az_first_table_value;
-            value_segment!=NULL;
-            value_segment=value_segment->az_next_table_value)
-           {
-           sem_evaluate_value_expr (value_segment);
-           if ((value_segment->b_type != sym_k_char_8_value) &&
-               (value_segment->b_type != sym_k_localized_string_value))
-               diag_issue_diagnostic
-                   ( d_wrong_type,
-                     _sar_source_pos2( value_segment ),
-                     diag_value_text( value_segment->b_type),
-                     diag_value_text( sym_k_char_8_value ) );
-           }
-       }
-       break;
-    case sym_k_font_table_value:
-       {
-       sym_value_entry_type *value_segment;
-
-       for (value_segment=val_entry->az_first_table_value;
-            value_segment!=NULL;
-            value_segment=value_segment->az_next_table_value)
-           {
-           sem_evaluate_value_expr (value_segment);
-           if ((value_segment->b_type != sym_k_char_8_value) &&
-               (value_segment->b_type != sym_k_localized_string_value) &&
-               (value_segment->b_type != sym_k_font_value) &&
-               (value_segment->b_type != sym_k_fontset_value))
-               diag_issue_diagnostic
-                   ( d_wrong_type,
-                     _sar_source_pos2( value_segment ),
-                     diag_value_text( value_segment->b_type),
-                     diag_value_text( sym_k_char_8_value ) );
-           }
-       break;
-       }
-/*
- * Fix for CR 5403 - check to make sure each item in the rgb table is an
- *                   integer value.  If not, print an error message.  Treat
- *                   this exactly like the integer_table_value section above.
- */
-    case sym_k_rgb_value:
-        {
-        sym_value_entry_type *value_segment;
-
-        for (value_segment=val_entry->az_first_table_value;
-             value_segment!=NULL;
-             value_segment=value_segment->az_next_table_value)
-            {
-            sem_evaluate_value_expr (value_segment);
-            if (value_segment->b_type != sym_k_integer_value &&
-                value_segment->b_type != sym_k_identifier_value &&
-               value_segment->b_type != sym_k_horizontal_integer_value &&
-               value_segment->b_type != sym_k_vertical_integer_value)
-                diag_issue_diagnostic
-                    ( d_wrong_type,
-                      _sar_source_pos2( value_segment ),
-                      diag_value_text( value_segment->b_type),
-                      diag_value_text( sym_k_integer_value ) );
-            }
-        }
-        break;
-/*
- * End Fix for CR 5403
- */
-    case sym_k_color_table_value:
-       {
-       sym_color_element       *colorVec;
-       int                     ndx;
-
-       colorVec = val_entry->value.z_color;
-       for ( ndx=0 ; ndx<(int)val_entry->b_table_count ; ndx++ )
-           if ( (int)colorVec[ndx].b_index > 1 )       /* omit FG, BG */
-/*
- * Fix for CR 5428 - check to make sure that the expression result is a 
- *                   color value.  If not, print diagnostics.
- */
-            {
-               sem_evaluate_value_expr (colorVec[ndx].az_color);
-                if ((colorVec[ndx].az_color->b_type != sym_k_color_value) && 
-                   ( colorVec[ndx].az_color->b_type != sym_k_rgb_value)) 
-                  diag_issue_diagnostic
-                    ( d_wrong_type,
-                      _sar_source_pos2( colorVec[ndx].az_color ),
-                      diag_value_text( colorVec[ndx].az_color->b_type),
-                      diag_value_text( sym_k_color_value ) );
-             }
-/*
- * End Fix for CR 5428
- */
-       break;
-       }
-    case sym_k_pixmap_value:
-    case sym_k_icon_value:
-       {
-       sym_icon_element        *iconDesc;
-       sym_value_entry_type    *cTable;
-
-       iconDesc = val_entry->value.z_icon;
-
-/* BEGIN OSF Fix pir 2869*/
-       if ( iconDesc == NULL )
-           break;
-       else cTable = iconDesc->az_color_table;
-/* END OSF Fix pir 2869 */
-       if ( cTable == NULL )
-           break;
-       switch ( cTable->b_type )
-           {
-           case sym_k_color_table_value:
-               {
-               sym_color_element       *colorVec;
-               int                     vecLen = cTable->b_table_count;
-               int                     ndx;
-               int                     i, j;
-               boolean                 found;
-               char                    *row;
-               sym_value_entry_type    *rowEntry;
-               
-               /*
-                * Find each icon character in the table, and replace its
-                * character by its index.
-                */
-               colorVec = cTable->value.z_color;
-               rowEntry = iconDesc->az_rows;
-               for ( ndx=0 ;
-                    ndx<(int)iconDesc->w_height ;
-                    ndx++, rowEntry=rowEntry->az_next_table_value )
-                   for ( row = rowEntry->value.c_value, i = 0 ;
-                        i<(int)rowEntry->w_length ;
-                        i++)
-                       {
-                       found = FALSE;
-                       for ( j=0 ; j<vecLen ; j++ )
-                           {
-                           if (colorVec[j].b_letter == row[i])
-                               {
-                               found = TRUE;
-                               row[i] = colorVec[j].b_index;
-                               break;
-                               }
-                           }
-
-                       if ( ! found )
-                           {
-                           diag_issue_diagnostic
-                               (d_icon_letter,
-                                _sar_source_pos2(rowEntry),
-                                ndx+1,
-                                i+1,
-                                row[i]);
-                           }
-                       }
-
-               }
-           case sym_k_error_value:
-               break;
-           default:
-               diag_issue_diagnostic
-                   (d_wrong_type,
-                    _sar_source_pos2(cTable),
-                    diag_value_text(cTable->b_type),
-                    diag_value_text(sym_k_color_table_value));
-               break;
-           }
-       break;
-       }
-    }
-/*
- * Perform evaluations which depend on evaluating expressions
- */
-return(sem_evaluate_value_expr (val_entry));
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This function evaluates a compound string value node, and
-**     returns the resulting compound string.
-**
-**  FORMAL PARAMETERS:
-**
-**     csval_entry     pointer to the value node to be evaluated
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      none
-**
-**  SIDE EFFECTS:
-**
-**      The value and length fields for the value entry are set.
-**
-**--
-**/
-
-sym_value_entry_type *sem_evaluate_value_cs (csval_entry)
-    sym_value_entry_type       *csval_entry;
-
-{
-
-sym_value_entry_type   *next_segment;
-
-XmString               cstr_1;
-XmString               cstr_r;
-int                    charset;                /* sym_k_..._charset */
-char                   *csetptr;               /* charset name string */
-
-_assert( (csval_entry->header.b_tag == sym_k_value_entry) &&
-       (csval_entry->b_type == sym_k_compound_string_value),
-       "value not compound string" );
-
-/*
- **    You can't do anyting about imported compound strings so return.
- */
-if ((csval_entry->obj_header.b_flags & sym_m_imported) != 0) 
-    return(csval_entry);
-
-/*
- **    If the pointer to the first segment of the compound string has been
- **    cleared (az_first_table_value) and there's a pointer to the evaluated
- **    compound string (value.xms_value), then we must have already evaluated
- **    this compound string.  Leave!
- */
-if ((csval_entry->az_first_table_value == NULL) &&
-    (csval_entry->value.xms_value != NULL))
-    return(csval_entry);
-
-/*
- **    Get the first segment of the compound string and create
- **    a compound string for it.
- */
-next_segment = csval_entry->az_first_table_value;
-_assert( next_segment != NULL, "compound string with no segments" );
-
-/*
- **    If the csval_entry direction is set reset the first segments
- **    direction (actually it will be the only segments direction).
- */
-if (csval_entry->b_direction != NOSTRING_DIRECTION)
-    {
-    next_segment->b_direction = csval_entry->b_direction;
-    };
-
-/*
- **  Initial segment: acquire character set, then
- **  create initial segment.
- */
-charset = sem_map_subclass_to_charset (next_segment->b_charset );
-    csetptr = sem_charset_name
-       (charset, next_segment->az_charset_value);
-
-if (next_segment->b_type == sym_k_localized_string_value)
-  cstr_r = XmStringCreateLocalized(next_segment->value.c_value);
-else
-  cstr_r =
-    XmStringConcatAndFree(XmStringDirectionCreate(next_segment->b_direction),
-                         XmStringCreate(next_segment->value.c_value,
-                                        csetptr));
-
-if (next_segment->b_aux_flags & sym_m_separate)
-  cstr_r = XmStringConcatAndFree(cstr_r,
-                                XmStringSeparatorCreate());
-
-/*
- **  Loop through the rest of the segments of the string and append
- **  them to the first segment of the string.
- */
-for (next_segment = next_segment->az_next_table_value;  
-     next_segment != NULL;  
-     next_segment = next_segment->az_next_table_value)
-    {
-    /*
-     **  Acquire each segment, and set the character set, as for the
-     **  initial segment.
-     */
-    charset = sem_map_subclass_to_charset (next_segment->b_charset );
-    csetptr = sem_charset_name
-       (charset, next_segment->az_charset_value);
-    
-    /*
-     **  Create this segment, then concatenate to the result string.
-     **  Free the two inputs now that a concatenated result string
-     **  exists.
-     */
-    cstr_1 =
-      XmStringConcatAndFree(XmStringDirectionCreate(next_segment->b_direction),
-                           XmStringCreate(next_segment->value.c_value,
-                                          csetptr));
-
-    if (next_segment->b_aux_flags & sym_m_separate)
-      cstr_1 = XmStringConcatAndFree(cstr_1,
-                                    XmStringSeparatorCreate());
-    
-    cstr_r = XmStringConcatAndFree(cstr_r, cstr_1);
-    }
-
-csval_entry->value.xms_value = cstr_r;
-csval_entry->w_length = XmStringLength (cstr_r);
-
-/*
-** Now deallocate the nodes for the compound string segments and put a null
-** in az_first_table_value
-*/
-for (next_segment = csval_entry->az_first_table_value;  
-     next_segment != NULL;  
-     next_segment = next_segment->az_next_table_value)
-       sem_free_node (( sym_entry_type *)next_segment);
-
-csval_entry->az_first_table_value = NULL;
-
-_assert( csval_entry->w_length <= MrmMaxResourceSize, "compound string too long" );
-
-return (csval_entry);
-}
-/* BEGIN OSF Fix CR 4859 */
-
-/* END OSF Fix CR 4859 */
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This function evaluates an expression, placing the resulting value
-**     in the top-level value node of the expression tree.  A flag is set
-**     in the top-level node to indicate whether the evaluation has taken
-**     place.  The expression tree is left intact so that programs using
-**     the callable UIL compiler will have access to the expression as well
-**     as its evalutated value.
-**
-**  FORMAL PARAMETERS:
-**
-**     value_entry             the top-level value node of the expression
-**
-**  IMPLICIT INPUTS:
-**
-**  IMPLICIT OUTPUTS:
-**
-**  FUNCTION VALUE:
-**
-**     The value node resulting from this operation
-**
-**  SIDE EFFECTS:
-**
-**--
-**/
-
-sym_value_entry_type *sem_evaluate_value_expr (value_entry)
-    sym_value_entry_type       *value_entry;
-
-{
-
-    /*
-     * Local variables
-     */
-    char                               op1_type;
-    char                               op2_type;
-    char                               res_type;
-    data_value_type                    op1_data;
-    data_value_type                    op2_data;
-    sym_value_entry_type       *op1_entry;
-    sym_value_entry_type       *op2_entry;
-    data_value_type                    *op1_ptr;
-    data_value_type                    *op2_ptr;
-    data_value_type                    res_data;
-    sym_value_entry_type               *cat_str_entry;
-    
-    
-    /*
-     ** If this isn't an operation or if we've already evaluated it, just
-     ** leave. Also, guard against attempting to deal with NULLs.
-     */
-    if ( value_entry == NULL )
-      return value_entry;
-    if ( (value_entry->b_aux_flags & sym_m_exp_eval) != 0 )
-      return value_entry;
-    if ( value_entry->b_expr_opr == sym_k_unspecified_op )
-      return value_entry;
-    
-    /*
-     ** If we're just beginning to evaluate a new expression, increment the
-     ** value for checking circular references.
-     */
-    
-    if (!in_expr)
-      ref_chk_value++;
-    in_expr = TRUE;
-    
-    /*
-     ** Check for circular references.
-     ** Place a value in each node of this expression.  If we see the same
-     ** value again as we evaluate the expression, we've been here before
-     ** (kind of like dropping bread crumbs).
-     */
-    
-    if (value_entry->l_circular_ref_chk == ref_chk_value)
-    {
-       if ( value_entry->obj_header.az_name != NULL )
-         diag_issue_diagnostic
-           (d_circular_ref,
-            _sar_source_pos2(value_entry),
-            value_entry->obj_header.az_name->c_text);
-       else
-         diag_issue_diagnostic
-           (d_circular_ref,
-            _sar_source_pos2(value_entry),
-            "unnamed value");
-       return NULL;
-    }
-    value_entry->l_circular_ref_chk = ref_chk_value;
-    
-    /*
-     ** Validate the first argument for the expression. If it is NULL,
-     ** then return with no further processing, since this is usually
-     ** due to previous compilation errors.
-     */
-    if ( value_entry->az_exp_op1 == NULL )
-      return NULL;
-    sem_evaluate_value_expr(value_entry->az_exp_op1);
-    in_expr = TRUE;
-    op1_type = validate_arg (value_entry->az_exp_op1,
-                            value_entry->b_expr_opr);
-    op1_entry = value_entry->az_exp_op1;
-    res_type = op1_type;
-    /*
-     ** If it's a binary expression, evaluate the second argument and
-     ** perform any necessary conversions
-     */
-    if (value_entry->az_exp_op2 != NULL)
-    {
-       sem_evaluate_value_expr(value_entry->az_exp_op2);
-       in_expr = TRUE;
-       op2_type = validate_arg (value_entry->az_exp_op2,
-                                value_entry->b_expr_opr);
-       
-       /*
-        ** Perform conversions 
-        */
-       
-       op2_entry = value_entry->az_exp_op2;
-       
-        res_type = op1_type;
-       if (res_type < op2_type)
-         res_type = op2_type;
-       
-       if (op1_type != res_type)
-       {
-           op1_ptr  = &op1_data;
-           if (res_type <= error_arg_type)
-             op1_type = (* numeric_convert_table[ res_type ])
-               ( op1_entry, op1_ptr );
-           else if ((res_type != cstr_arg_type) &&
-                    (res_type != lstr_arg_type))
-           {
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( res_type ) );
-               res_type = error_arg_type;
-               goto continue_after_error;
-           }
-       }
-       else
-       {
-           op1_ptr = (data_value_type *) &(op1_entry->value);
-       }
-       
-       
-       if (op2_type != res_type)
-       {
-           op2_ptr  = &op2_data;
-           if (res_type <= error_arg_type)
-             op2_type = (* numeric_convert_table[ res_type ])
-               ( op2_entry, op2_ptr );
-           else if ((res_type != cstr_arg_type) &&
-                    (res_type != lstr_arg_type))
-           {
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( res_type ) );
-               res_type = error_arg_type;
-               goto continue_after_error;
-           }
-       }
-       else
-       {
-           op2_ptr = (data_value_type *) &(op2_entry->value);
-       }
-    }
-    
-    /*
-     ** Perform the operation
-     */
-    
-    switch (value_entry->b_expr_opr)
-    {
-      case sym_k_unary_plus_op:
-       switch (op1_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = op1_entry->value.l_integer;
-           value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-           value_entry->value.d_real = op1_entry->value.d_real;
-           value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case single_float_arg_type: /* single float data type RAP */
-           value_entry->value.single_float = op1_entry->value.single_float;
-           break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_unary_minus_op:
-       switch (op1_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = - op1_entry->value.l_integer;
-           value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-           value_entry->value.d_real = - op1_entry->value.d_real;
-           value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case single_float_arg_type: /* single float data type RAP */
-           value_entry->value.single_float = - op1_entry->value.single_float;
-           break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_not_op:
-       switch (op1_type)
-       {
-         case boolean_arg_type:
-           value_entry->value.l_integer = ! op1_entry->value.l_integer;
-           break;
-           
-         case integer_arg_type:
-           value_entry->value.l_integer = ~ op1_entry->value.l_integer;
-           break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_comp_str_op:
-       switch (op1_type)
-       {
-       case char_arg_type:     /* char_8_type */
-       case lstr_arg_type:
-         sem_append_str_to_cstr(value_entry, value_entry->az_exp_op1, FALSE);
-         value_entry->az_first_table_value->b_aux_flags =
-           value_entry->b_aux_flags;
-             /*
-              * Fix for CN 16149 (DTS 10023) part 2 -- If it exists, put the
-              * charset info collected by sar_chk_comp_str_attr() onto the
-              * char_8 string data structure.
-              */
-             if (value_entry->b_charset != sym_k_error_charset) {
-                  value_entry->az_first_table_value->b_charset =
-                        value_entry->b_charset;
-                  if (value_entry->az_charset_value)
-                        value_entry->az_first_table_value->az_charset_value =
-                                value_entry->az_charset_value;
-             }
-             /* End fix for CN 16149 */
-           sem_evaluate_value_cs(value_entry);
-           res_type = cstr_arg_type;
-           break;
-         case cstr_arg_type:   /*  comp_str */;
-         {
-             XmString  cstr;
-             
-             /*
-              * If we're dealing with a combination 1-byte, 2-byte
-              * string, then we have to evaluate it first. (if not 
-              * already done)
-              */
-             if (value_entry->az_exp_op1->az_first_table_value != NULL)
-             {
-                 sem_evaluate_value_cs(value_entry->az_exp_op1);
-             }
-             /*
-              * If there is a separater invoved, makes sure it gets
-              * concatendated onto the end of the string.  Also free
-              * up used memory.
-              */
-             if ((value_entry->b_aux_flags 
-                  & sym_m_separate) != 0 )
-             {
-                 cstr = XmStringSeparatorCreate();
-                 value_entry->value.l_integer = 
-                   (long)XmStringConcatAndFree((XmString)value_entry->az_exp_op1->
-                                               value.l_integer, cstr);
-             }
-             else
-             {
-                 value_entry->value.l_integer = 
-                   value_entry->az_exp_op1->value.l_integer;
-             }
-             
-             sem_evaluate_value_cs(value_entry);
-             
-             res_type = cstr_arg_type;
-         };
-           break;
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-        break;
-       
-      case sym_k_wchar_str_op:
-       switch (op1_type)
-       {
-         case lstr_arg_type:   /* localized string type */
-           sem_append_str_to_cstr(value_entry, value_entry->az_exp_op1, FALSE);
-           value_entry->az_first_table_value->b_aux_flags =
-             value_entry->b_aux_flags;
-           /* BEGIN OSF Fix CR 4859 */
-           /* END OSF Fix CR 4859 */
-           res_type = wcstr_arg_type;
-           break;
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-        break;
-       
-      case sym_k_coerce_op:
-       switch (value_entry->b_type)
-       {
-         case sym_k_compound_string_value:
-           switch (op1_entry->b_type)
-           {
-             case sym_k_char_8_value:
-             case sym_k_localized_string_value:
-               sem_append_str_to_cstr
-                 (value_entry,
-                  op1_entry,
-                  FALSE);
-               sem_evaluate_value_cs(value_entry);
-               res_type = cstr_arg_type;
-               break;
-             case sym_k_compound_string_value:
-               _sym_copy_entry (value_entry,
-                                op1_entry,
-                                sym_k_value_entry_size);
-               res_type = cstr_arg_type;
-               break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-           
-         case sym_k_wchar_string_value:
-           switch (op1_entry->b_type)
-           {
-             case sym_k_localized_string_value:
-               sem_append_str_to_cstr
-                 (value_entry,
-                  op1_entry,
-                  FALSE);
-               /* BEGIN OSF Fix CR 4859 */
-               /* END OSF Fix CR 4859 */
-               res_type = wcstr_arg_type;
-               break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-           
-         case sym_k_font_table_value:
-           if ((op1_entry->b_type == sym_k_font_value) ||
-               (op1_entry->b_type == sym_k_fontset_value))
-           {
-               value_entry->b_table_count = 1;
-               value_entry->az_first_table_value = op1_entry;
-               res_type = font_table_arg_type;
-           }
-           else
-           {
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-           }
-           break;
-           
-         case sym_k_font_value:
-           if ((op1_entry->b_type == sym_k_char_8_value) ||
-               (op1_entry->b_type == sym_k_localized_string_value) ||
-               (op1_entry->b_type == sym_k_font_value))
-           {
-               value_entry->value.c_value = op1_entry->value.c_value;
-               value_entry->w_length = op1_entry->w_length;
-               res_type = font_arg_type;
-           }
-           else
-           {
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-           }
-           break;
-           
-         case sym_k_fontset_value:
-           if ((op1_entry->b_type == sym_k_char_8_value) ||
-               (op1_entry->b_type == sym_k_localized_string_value) ||
-               (op1_entry->b_type == sym_k_fontset_value))
-           {
-               value_entry->value.c_value = op1_entry->value.c_value;
-               value_entry->w_length = op1_entry->w_length;
-               res_type = fontset_arg_type;
-           }
-           else
-           {
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-           }
-           
-         case sym_k_color_value:
-         case sym_k_xbitmapfile_value:
-         case sym_k_reason_value:
-         case sym_k_argument_value:
-         case sym_k_keysym_value:
-         case sym_k_class_rec_name_value:
-           switch (value_entry->b_type)
-           {
-             case sym_k_color_value:
-               res_type = color_arg_type;
-               break;
-             case sym_k_xbitmapfile_value:
-               res_type = xbitmap_arg_type;
-               break;
-             case sym_k_reason_value:
-               res_type = reason_arg_type;
-               break;
-             case sym_k_argument_value:
-               res_type = argument_arg_type;
-               break;
-             case sym_k_keysym_value:
-               res_type = keysym_arg_type;
-               break;
-               /*  Begin fixing CR 5429 */ 
-             case sym_k_class_rec_name_value:
-               res_type = classrec_arg_type;
-               break;
-               /*  End fixing CR 5429 */ 
-           }
-           switch (op1_entry->b_type)
-           {
-           case sym_k_char_8_value:
-           case sym_k_localized_string_value:
-               value_entry->value.c_value = op1_entry->value.c_value;
-               value_entry->w_length = op1_entry->w_length;
-               break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-           
-         case sym_k_integer_value:
-         case sym_k_horizontal_integer_value:
-         case sym_k_vertical_integer_value:
-           res_type = integer_arg_type;
-           switch (op1_entry->b_type)
-           {
-             case sym_k_bool_value:
-             case sym_k_integer_value:
-             case sym_k_horizontal_integer_value:
-             case sym_k_vertical_integer_value:
-               value_entry->value.l_integer = op1_entry->value.l_integer;
-               value_entry->b_arg_type = op1_entry->b_arg_type;
-               break;
-             case sym_k_float_value:
-             case sym_k_horizontal_float_value:
-             case sym_k_vertical_float_value:
-               res_type = sem_convert_to_integer( op1_entry, &res_data );
-               value_entry->value.l_integer = res_data.integer_value;
-               value_entry->b_arg_type = op1_entry->b_arg_type;
-               break;
-             case sym_k_single_float_value: /* single float data type RAP */
-               res_type = sem_convert_to_integer( op1_entry, &res_data );
-               value_entry->value.l_integer = res_data.integer_value;
-                break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-         case sym_k_float_value:
-         case sym_k_horizontal_float_value:
-         case sym_k_vertical_float_value:
-           res_type = float_arg_type;
-           switch (op1_entry->b_type)
-           {
-             case sym_k_bool_value:
-             case sym_k_integer_value:
-             case sym_k_single_float_value: /* single float data type RAP */
-             case sym_k_horizontal_integer_value:
-             case sym_k_vertical_integer_value:
-               res_type = sem_convert_to_float( op1_entry, &res_data );
-               value_entry->value.d_real = res_data.real_value;
-               value_entry->b_arg_type = op1_entry->b_arg_type;
-               break;
-             case sym_k_float_value:
-             case sym_k_horizontal_float_value:
-             case sym_k_vertical_float_value:
-               value_entry->value.d_real = op1_entry->value.d_real;
-               value_entry->b_arg_type = op1_entry->b_arg_type;
-               break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-         case sym_k_single_float_value:
-           res_type = single_float_arg_type;
-           switch (op1_entry->b_type)
-           {
-             case sym_k_bool_value:
-             case sym_k_integer_value:
-             case sym_k_horizontal_integer_value:
-             case sym_k_vertical_integer_value:
-             case sym_k_float_value:
-             case sym_k_horizontal_float_value:
-             case sym_k_vertical_float_value:
-               res_type = sem_convert_to_single_float( op1_entry, &res_data );
-               value_entry->value.single_float = res_data.single_float_value;
-               value_entry->b_arg_type = op1_entry->b_arg_type;
-               break;
-             case sym_k_single_float_value:
-               value_entry->value.single_float = op1_entry->value.single_float;
-               break;
-             default:
-               diag_issue_diagnostic
-                 ( d_cannot_convert,
-                  _sar_source_pos2( value_entry),
-                  diag_value_text( op1_entry->b_type ),
-                  diag_value_text( value_entry->b_type ) );
-               res_type = error_arg_type;
-               break;
-           }
-           break;
-           
-         case sym_k_error_value:
-           break;
-           
-         default:
-           /*  Begin fixing CR 5429 */ 
-           if ((op1_entry->b_type != sym_k_char_8_value) &&
-               (op1_entry->b_type != sym_k_localized_string_value))
-             diag_issue_diagnostic
-               ( d_wrong_type,
-                _sar_source_pos2( value_entry ),
-                diag_value_text( op1_entry->b_type ),
-                diag_value_text( sym_k_char_8_value ) );
-           else
-             diag_issue_diagnostic
-                ( d_wrong_type,
-                _sar_source_pos2( value_entry ),
-                "wrong",
-                diag_value_text( sym_k_char_8_value  ) );
-           value_entry = sym_az_error_value_entry;
-           res_type = error_arg_type;
-       }
-       break;
-       /*  End fixing CR 5429 */ 
-       
-      case sym_k_valref_op:
-      {
-         /*
-          ** Copy all the value-related fields from the referenced
-          ** node to the referencing node. All non value-related fields
-          ** are left intact, except that the forward reference flag
-          ** is turned off
-          */
-         value_entry->obj_header.b_flags &= ~sym_m_forward_ref;
-         value_entry->b_type = op1_entry->b_type;
-         value_entry->w_length = op1_entry->w_length;
-         value_entry->b_table_count = op1_entry->b_table_count;
-         value_entry->b_aux_flags = op1_entry->b_aux_flags;
-         value_entry->b_arg_type = op1_entry->b_arg_type;
-         value_entry->b_data_offset = op1_entry->b_data_offset;
-         value_entry->b_pixel_type = op1_entry->b_pixel_type;
-         value_entry->b_charset = op1_entry->b_charset;
-         value_entry->b_direction = op1_entry->b_direction;
-         value_entry->b_enumeration_value_code =
-           op1_entry->b_enumeration_value_code;
-         value_entry->az_first_table_value = op1_entry->az_first_table_value;
-         value_entry->az_charset_value = op1_entry->az_charset_value;
-         /*
-          ** Because of alignment requirements, we can't just move the largest
-          ** field of the union, but actually have to move the correct value
-          ** field based upon the datatype.
-          */
-         switch (op1_entry->b_type)
-         {
-           case sym_k_integer_value:
-           case sym_k_horizontal_integer_value:
-           case sym_k_vertical_integer_value:
-             value_entry->value.l_integer = op1_entry->value.l_integer;
-             value_entry->b_arg_type = op1_entry->b_arg_type;
-             break;
-           case sym_k_float_value:
-           case sym_k_horizontal_float_value:
-           case sym_k_vertical_float_value:
-             value_entry->value.d_real = op1_entry->value.d_real;
-             value_entry->b_arg_type = op1_entry->b_arg_type;
-             break;
-           case sym_k_char_8_value:
-           case sym_k_localized_string_value:
-             value_entry->value.c_value = op1_entry->value.c_value;
-             break;
-           case sym_k_single_float_value:
-             value_entry->value.single_float = op1_entry->value.single_float;
-             break;
-           case sym_k_color_value:
-             value_entry->value.z_color = op1_entry->value.z_color;
-             break;
-           case sym_k_icon_value:
-             value_entry->value.z_icon = op1_entry->value.z_icon;
-             break;
-           default:
-             value_entry->value.az_data = op1_entry->value.az_data;
-             break;
-         }
-         break;
-      }
-       
-      case sym_k_add_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value + op2_ptr->integer_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-            break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-            value_entry->value.d_real = 
-             op1_ptr->real_value + op2_ptr->real_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-            break;
-           
-         case single_float_arg_type:
-            value_entry->value.single_float = 
-             op1_ptr->single_float_value + op2_ptr->single_float_value;
-            break;
-           
-         case error_arg_type:
-            break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-        }
-       break;
-       
-      case sym_k_subtract_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value - op2_ptr->integer_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-           value_entry->value.d_real = 
-             op1_ptr->real_value - op2_ptr->real_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case single_float_arg_type:
-            value_entry->value.single_float = 
-             op1_ptr->single_float_value - op2_ptr->single_float_value;
-            break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_multiply_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value * op2_ptr->integer_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-           value_entry->value.d_real = 
-             op1_ptr->real_value * op2_ptr->real_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case single_float_arg_type:
-            value_entry->value.single_float = 
-             op1_ptr->single_float_value * op2_ptr->single_float_value;
-            break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_divide_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case horizontal_integer_arg_type:
-         case vertical_integer_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value / op2_ptr->integer_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case float_arg_type:
-         case horizontal_float_arg_type:
-         case vertical_float_arg_type:
-           value_entry->value.d_real = 
-             op1_ptr->real_value / op2_ptr->real_value;
-           if (op1_entry->b_arg_type != op2_entry->b_arg_type)
-             {
-               diag_issue_diagnostic(d_different_units,
-                                     _sar_source_pos2(value_entry));
-               res_type = error_arg_type;
-             }
-           else value_entry->b_arg_type = op1_entry->b_arg_type;
-           break;
-           
-         case single_float_arg_type:
-            value_entry->value.single_float = 
-             op1_ptr->single_float_value / op2_ptr->single_float_value;
-            break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_left_shift_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         {
-             int           shift_count;
-             
-             shift_count = op2_ptr->integer_value;
-             
-             if ((shift_count < 0) || (shift_count > 32))
-               goto error_occurred;
-             
-             value_entry->value.l_integer = 
-               op1_ptr->integer_value << op2_ptr->integer_value;
-             
-             break;
-         }
-         
-       case error_arg_type:
-         break;
-         
-       default:
-         diag_issue_diagnostic
-           ( d_cannot_convert,
-            _sar_source_pos2( value_entry),
-            diag_value_text( op1_entry->b_type ),
-            diag_value_text( value_entry->b_type ) );
-         res_type = error_arg_type;
-      }
-       break;
-       
-      case sym_k_right_shift_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         {
-             int           shift_count;
-             
-             shift_count = op2_ptr->integer_value;
-             
-             if ((shift_count < 0) || (shift_count > 32))
-               goto error_occurred;
-             
-             value_entry->value.l_integer = 
-               op1_ptr->integer_value >> op2_ptr->integer_value;
-             
-             break;
-         }
-         
-       case error_arg_type:
-         break;
-         
-       default:
-         diag_issue_diagnostic
-           ( d_cannot_convert,
-            _sar_source_pos2( value_entry),
-            diag_value_text( op1_entry->b_type ),
-            diag_value_text( value_entry->b_type ) );
-         res_type = error_arg_type;
-      }
-       break;
-       
-      case sym_k_and_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case boolean_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value & op2_ptr->integer_value;
-           break;
-         case char_arg_type:
-         case lstr_arg_type:
-           sar_cat_value_entry( &cat_str_entry, op1_entry, op2_entry );
-           value_entry->b_type = cat_str_entry->b_type;
-           if (cat_str_entry->b_type == sym_k_compound_string_value)
-           {
-               res_type = cstr_arg_type;
-               value_entry->az_first_table_value = cat_str_entry->az_first_table_value;
-           }
-           value_entry->b_charset = cat_str_entry->b_charset;
-           value_entry->b_direction = cat_str_entry->b_direction;
-           value_entry->value.c_value = cat_str_entry->value.c_value;
-           value_entry->w_length = cat_str_entry->w_length;
-           cat_str_entry->value.c_value = NULL;
-           sem_free_node (( sym_entry_type *)cat_str_entry);
-           break;
-         case cstr_arg_type:
-           sar_cat_value_entry( &cat_str_entry, op1_entry, op2_entry );
-           value_entry->b_type = cat_str_entry->b_type;
-           value_entry->b_charset = cat_str_entry->b_charset;
-           value_entry->b_direction = cat_str_entry->b_direction;
-           value_entry->value.xms_value = cat_str_entry->value.xms_value;
-           value_entry->az_first_table_value = 
-             cat_str_entry->az_first_table_value;
-           value_entry->w_length = cat_str_entry->w_length;
-           sem_evaluate_value_cs (value_entry);
-           cat_str_entry->value.xms_value = NULL;
-           sem_free_node (( sym_entry_type *)cat_str_entry);
-           break;
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_or_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case boolean_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value | op2_ptr->integer_value;
-           break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-       
-      case sym_k_xor_op:
-       switch (res_type)
-       {
-         case integer_arg_type:
-         case boolean_arg_type:
-           value_entry->value.l_integer = 
-             op1_ptr->integer_value ^ op2_ptr->integer_value;
-           break;
-           
-         case error_arg_type:
-           break;
-           
-         default:
-           diag_issue_diagnostic
-             ( d_cannot_convert,
-              _sar_source_pos2( value_entry),
-              diag_value_text( op1_entry->b_type ),
-              diag_value_text( value_entry->b_type ) );
-           res_type = error_arg_type;
-       }
-       break;
-      default:
-       _assert( FALSE, "unexpected operator" );
-    }  /* End of switch statement */
-    
-    
-  continue_after_error:
-    
-    /*
-     ** Set data type for expression value.  If binary operation, use res_type
-     ** because conversions may have taken place.  Otherwise use b_type from
-     ** the operand of the unary operator.
-     */
-    
-    if (value_entry->b_expr_opr == sym_k_valref_op) 
-      value_entry->b_type = op1_entry->b_type;
-    else
-      switch (res_type)
-      {
-        case boolean_arg_type:
-         value_entry->b_type = sym_k_bool_value;
-         break;
-         
-        case integer_arg_type:
-         value_entry->b_type = sym_k_integer_value;
-         break;
-         
-        case single_float_arg_type:
-         value_entry->b_type = sym_k_single_float_value;
-         break;
-         
-        case float_arg_type:
-         value_entry->b_type = sym_k_float_value;
-         break;
-         
-       case horizontal_integer_arg_type:
-         value_entry->b_type = sym_k_horizontal_integer_value;
-         break;
-         
-       case vertical_integer_arg_type:
-         value_entry->b_type = sym_k_vertical_integer_value;
-         break;
-         
-       case horizontal_float_arg_type:
-         value_entry->b_type = sym_k_horizontal_float_value;
-         break;
-         
-       case vertical_float_arg_type:
-         value_entry->b_type = sym_k_vertical_float_value;
-         break;
-         
-       case keysym_arg_type:
-         value_entry->b_type = sym_k_keysym_value;
-         break;
-         
-        case char_arg_type:
-       case lstr_arg_type:
-         value_entry->b_type = sym_k_char_8_value;
-         break;
-         
-        case cstr_arg_type:
-         value_entry->b_type = sym_k_compound_string_value;
-         break;
-         
-        case wcstr_arg_type:
-         value_entry->b_type = sym_k_wchar_string_value;
-         break;
-         
-       case font_arg_type:
-         value_entry->b_type = sym_k_font_value;
-         break;
-         
-       case fontset_arg_type:
-         value_entry->b_type = sym_k_fontset_value;
-         break;
-         
-       case color_arg_type:
-         value_entry->b_type = sym_k_color_value;
-         break;
-         
-         /*  Begin fixing CR 5429 */ 
-       case classrec_arg_type:
-         value_entry->b_type = sym_k_class_rec_name_value;
-         break;
-         /*  End fixing CR 5429 */ 
-         
-       case xbitmap_arg_type:
-         value_entry->b_type = sym_k_xbitmapfile_value;
-         break;
-         
-       case reason_arg_type:
-         value_entry->b_type = sym_k_reason_value;
-         break;
-         
-       case argument_arg_type:
-         value_entry->b_type = sym_k_argument_value;
-         break;
-         
-       case font_table_arg_type:
-         value_entry->b_type = sym_k_font_table_value;
-         break;
-         
-       case error_arg_type:
-         value_entry->b_type = sym_k_error_value;
-         break;
-         
-        default:    
-         _assert( FALSE, "unexpected type" );
-      }
-    
-    /*
-     ** indicate that this expression has been evaluated
-     */
-    
-    value_entry->b_aux_flags |= sym_m_exp_eval;
-    in_expr = FALSE;
-    return value_entry;
-    
-    /*
-     **        Point where errors are transferred
-     */
-    
-  error_occurred:
-    
-    diag_issue_diagnostic
-      ( d_out_range,
-       _sar_source_pos2( value_entry ),
-       value_text[ res_type ],
-       ""
-       );
-    res_type = error_arg_type;
-    diag_reset_overflow_handler();
-    
-    goto continue_after_error;
-}
-
-\f
-int validate_arg( operand_entry, operator)
-
-sym_value_entry_type    *operand_entry;
-int                    operator;
-
-{
-
-    char    operand_type;
-
-    operand_type = operand_entry->b_type;
-
-    if (operand_type == sym_k_error_value )
-        return error_arg_type;
-
-    if ((( 1 << operand_type ) & legal_operand_type[ operator ]) == 0)
-    {
-       diag_issue_diagnostic
-           ( d_operand_type,
-             _sar_source_pos2( operand_entry ),
-             diag_value_text( operand_type ),
-             operator_symbol[ operator ]
-           );
-       return error_arg_type;
-    }
-
-    if ((operand_entry->obj_header.b_flags & sym_m_imported) != 0)
-    {
-       sym_value_entry_type    *value_entry;
-
-       value_entry = operand_entry;
-
-       diag_issue_diagnostic
-           ( d_nonpvt,
-             _sar_source_pos2( operand_entry ),
-             value_entry->obj_header.az_name->c_text
-           );
-       return error_arg_type;
-    }
-
-    switch (operand_type)
-    {
-    case sym_k_bool_value:
-       return boolean_arg_type;
-
-    case sym_k_integer_value:
-       return integer_arg_type;
-
-    case sym_k_float_value:
-       return float_arg_type;
-
-    case sym_k_single_float_value:
-       return single_float_arg_type;
-       
-    case sym_k_horizontal_integer_value:
-       return horizontal_integer_arg_type;
-
-    case sym_k_vertical_integer_value:
-       return vertical_integer_arg_type;
-
-    case sym_k_horizontal_float_value:
-       return horizontal_float_arg_type;
-
-    case sym_k_vertical_float_value:
-       return vertical_float_arg_type;
-
-    case sym_k_char_8_value:
-       return char_arg_type;
-
-    case sym_k_compound_string_value:
-       return cstr_arg_type;
-
-    case sym_k_localized_string_value:
-       return lstr_arg_type;
-
-    case sym_k_wchar_string_value:
-       return wcstr_arg_type;
-
-    case sym_k_font_value:
-       return font_arg_type;
-
-    case sym_k_fontset_value:
-       return fontset_arg_type;
-
-    case sym_k_color_value:
-       return color_arg_type;
-
-    default:
-       return error_arg_type;
-    }
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a value to floating point.
-**
-**  FORMAL PARAMETERS:
-**
-**      operand_entry      frame of the value to convert
-**     data_value          data structure to hold float result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      float_arg_type     if operation succeeds
-**     error_arg_type      if operation fails
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-int    sem_convert_to_float(operand_entry, data_value)
-
-sym_value_entry_type   *operand_entry;
-data_value_type                *data_value;
-
-{
-    switch (operand_entry->b_type)
-    {
-    case sym_k_error_value:
-       return error_arg_type;
-
-    case sym_k_integer_value:
-    case sym_k_horizontal_integer_value:
-    case sym_k_vertical_integer_value:
-    case sym_k_bool_value:
-       data_value->real_value = operand_entry->value.l_integer;
-       return float_arg_type;
-
-      case sym_k_single_float_value: /* single float data type RAP */
-       data_value->real_value = operand_entry->value.single_float;
-       return float_arg_type;
-
-    case sym_k_float_value:
-    case sym_k_horizontal_float_value:
-    case sym_k_vertical_float_value:
-       data_value->real_value = operand_entry->value.d_real;
-       return float_arg_type;
-
-    default:
-       _assert( FALSE, "unexpected operand type" );
-    }
-    return error_arg_type;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a value to type integer
-**
-**  FORMAL PARAMETERS:
-**
-**      operand_entry      frame of the value to convert
-**     data_value          data structure to hold integer result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      integer_arg_type    if operation succeeds
-**     error_arg_type      if operation fails
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-int    sem_convert_to_integer(operand_entry, data_value)
-
-sym_value_entry_type   *operand_entry;
-data_value_type                *data_value;
-
-{
-    int                            res_type;
-
-    uil_az_error_env_valid = TRUE; 
-    if (setjmp(uil_az_error_env_block) == 0 ) 
-      {
-       switch (operand_entry->b_type)
-         {
-         case sym_k_error_value:
-           res_type = error_arg_type;
-           break;
-
-         case sym_k_integer_value:
-         case sym_k_horizontal_integer_value:
-         case sym_k_vertical_integer_value:
-         case sym_k_bool_value:
-           data_value->integer_value = operand_entry->value.l_integer;
-           res_type = integer_arg_type;
-           break;
-
-         case sym_k_float_value:
-         case sym_k_horizontal_float_value:
-         case sym_k_vertical_float_value:
-           data_value->integer_value = operand_entry->value.d_real;
-           res_type = integer_arg_type;
-           break;
-
-         case sym_k_single_float_value: /* single float data type RAP */
-           data_value->integer_value = 
-             (int) operand_entry->value.single_float;
-           res_type = integer_arg_type;
-           break;
-
-         default:
-           _assert( FALSE, "unexpected operand type" );
-         }
-
-       uil_az_error_env_valid = FALSE;
-       return res_type;
-      }
-    else
-      {
-       diag_issue_diagnostic
-         ( d_out_range,
-          _sar_source_pos2( operand_entry ),
-          value_text[ integer_arg_type ],
-          ""
-          );
-       diag_reset_overflow_handler();
-       uil_az_error_env_valid = FALSE;
-       return error_arg_type;
-      }
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a value to single floating point.
-**  (RAP single float data type)
-**
-**  FORMAL PARAMETERS:
-**
-**      operand_entry      symbol table entry of the value to convert
-**     data_value          data structure to hold float result
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      single_float_arg_type      if operation succeeds
-**     error_arg_type              if operation fails
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-int    sem_convert_to_single_float(operand_entry, data_value)
-
-sym_value_entry_type       *operand_entry;
-data_value_type            *data_value;
-
-{
-    switch (operand_entry->b_type)
-    {
-    case sym_k_error_value:
-       return error_arg_type;
-
-    case sym_k_integer_value:
-    case sym_k_horizontal_integer_value:
-    case sym_k_vertical_integer_value:
-    case sym_k_bool_value:
-       data_value->single_float_value = (float)operand_entry->value.l_integer;
-       return single_float_arg_type;
-
-    case sym_k_float_value:
-    case sym_k_horizontal_float_value:
-    case sym_k_vertical_float_value:
-       data_value->single_float_value = (float)operand_entry->value.d_real;
-       return single_float_arg_type;
-
-    default:
-       _assert( FALSE, "unexpected operand type" );
-    }
-    return error_arg_type;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function converts a value to an error - just needed to
-**     fill a slot in the conversion table.
-**
-**  FORMAL PARAMETERS:
-**
-**      operand_entry      frame of the value to convert
-**     data_value          not used
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**     error_arg_type
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-int    sem_convert_to_error(operand_entry, data_value)
-
-sym_value_entry_type   *operand_entry;
-data_value_type                *data_value;
-
-{
-    return error_arg_type;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function processes the concatenation of 2 strings.
-**
-**  FORMAL PARAMETERS:
-**
-**      operator_entry [in/out] pointer to resultant value stack frame
-**      op1_entry      [in] pointer to operand 1 value frame 
-**      op2_entry      [in] pointer to operand 2 value frame 
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      error message is issued if value is out of range
-**
-**--
-**/
-
-void   sar_cat_value_entry( target_entry, op1_entry, op2_entry )
-
-sym_value_entry_type       **target_entry;
-sym_value_entry_type       *op1_entry;
-sym_value_entry_type       *op2_entry;
-
-{
-
-/*
-**  For pcc conversion, use defines instead of this enum.
-**
-**    enum op_state
-**    {
-**     error=0, simple, compound, 
-**    };
-*/
-
-#define                k_op_state_error        0
-#define                k_op_state_simple       1
-#define                k_op_state_compound     2
-#define                k_op_state_localized    4
-
-    int                            target_type;
-    sym_value_entry_type    *value1_entry;
-    sym_value_entry_type    *value2_entry;
-    unsigned int           op1_state;
-    unsigned int           op2_state;
-
-    /*
-    **  The target type is dependent on the type of the sources.  If both
-    ** operands are primitive and have the same writing direction and
-    ** charset, the result is still of that type.  If both operands are 
-    ** localized strings, the result is a localized string. If not, the result
-    ** is a compound string.
-    */
-
-    switch (op1_entry->b_type)
-    {
-    case sym_k_char_8_value:
-       op1_state = k_op_state_simple;
-       break;
-    case sym_k_compound_string_value:
-       op1_state = k_op_state_compound;
-       break;
-    case sym_k_localized_string_value:
-       op1_state = k_op_state_localized;
-       break;
-    case sym_k_error_value:
-       op1_state = k_op_state_error;
-       break;
-    default:
-       diag_issue_diagnostic
-           ( d_wrong_type,
-             _sar_source_pos2( op1_entry ),
-             diag_value_text( op1_entry->b_type),
-             "string or compound string" );
-       op1_state = k_op_state_error;
-    }
-
-    switch (op2_entry->b_type)
-    {
-    case sym_k_char_8_value:
-       op2_state = k_op_state_simple;
-       break;
-    case sym_k_compound_string_value:
-       op2_state = k_op_state_compound;
-       break;
-    case sym_k_localized_string_value:
-       op2_state = k_op_state_localized;
-       break;
-    case sym_k_error_value:
-       op2_state = k_op_state_error;
-       break;
-    default:
-       diag_issue_diagnostic
-           ( d_wrong_type,
-             _sar_source_pos2( op2_entry ),
-             diag_value_text( op2_entry->b_type),
-             "string or compound string" );
-       op2_state = k_op_state_error;
-    }
-
-    value1_entry = op1_entry;
-    value2_entry = op2_entry;
-
-    /*
-    ** Verify that both operands are private values
-    */
-    /* Begin fixing OSF CR 5509 */
-    if ((op1_entry->obj_header.b_flags & (sym_m_private|sym_m_exported)) == 0) 
-       {
-       op1_state = k_op_state_error;
-       diag_issue_diagnostic
-               (d_nonpvt,
-               _sar_source_pos2 (op1_entry),
-               value1_entry->obj_header.az_name->c_text );
-       }
-    if ((op2_entry->obj_header.b_flags & (sym_m_private|sym_m_exported)) == 0) 
-       {
-       op2_state = k_op_state_error;
-       diag_issue_diagnostic
-               (d_nonpvt,
-               _sar_source_pos2 (op2_entry),
-               value2_entry->obj_header.az_name->c_text );
-       }       
-    /* End fixing OSF CR 5509 */
-    switch (op1_state + (op2_state<<3))
-    {
-    /*
-    ** This is the case of appending two simple strings or a simple string 
-    ** and a localized string.  Just append them
-    ** unless they have different directions or the first one has the separate
-    ** attribute.
-    */
-    case k_op_state_simple + (k_op_state_simple<<3):
-    case k_op_state_simple + (k_op_state_localized<<3):
-    case k_op_state_localized + (k_op_state_simple<<3):
-       if ((value1_entry->b_charset == value2_entry->b_charset) 
-           &&
-           ((value1_entry->b_direction) == (value2_entry->b_direction))
-           && 
-           ((value1_entry->b_aux_flags & sym_m_separate) == 0))
-       {
-           *target_entry = (sym_value_entry_type *)
-               sem_cat_str_to_str
-                   (value1_entry, FALSE,
-                    value2_entry, FALSE);
-           target_type  = sym_k_char_8_value;
-       }
-       else
-       {
-           *target_entry = (sym_value_entry_type *) sem_create_cstr( );
-           sem_append_str_to_cstr
-               (*target_entry, 
-                value1_entry, FALSE);
-           sem_append_str_to_cstr
-               (*target_entry, 
-                value2_entry, FALSE);
-           sem_evaluate_value_cs(*target_entry);
-           target_type  = sym_k_compound_string_value;
-       }
-       break;
-
-    /*
-    ** This is the case of one simple/localized and one compound string. 
-    ** Change the
-    ** simple/localized to a compound and append them together.  Depend on
-    ** the append
-    ** routine to do the right thing.
-    */
-    case k_op_state_simple + (k_op_state_compound<<3):
-    case k_op_state_localized + (k_op_state_compound<<3):
-       *target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       sem_append_str_to_cstr
-           (*target_entry, 
-            value1_entry, FALSE);
-       sem_evaluate_value_cs(*target_entry);
-       /*
-        * We must evaluate both  entries to the XmStringConcat routine so
-        * that it will work properly.   However this MAY be a pointer to
-        * a compound string, use that value instead or we will concat a 
-        * NULL value and lose part of the string.
-        */
-       if ((value2_entry->az_first_table_value == NULL) &&
-           (value2_entry->value.xms_value == NULL))
-           value2_entry->value.xms_value = 
-               value2_entry->az_exp_op1->value.xms_value;
-       else
-           sem_evaluate_value_cs(value2_entry);
-
-       (*target_entry)->value.xms_value = 
-           XmStringConcat((*target_entry)->value.xms_value,
-                          value2_entry->value.xms_value);
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    /*
-    ** This is the case of one simple/localized and one compound string.  
-    **  Append the simple/localized to the compound.  
-    */
-    case k_op_state_compound + (k_op_state_simple<<3):
-    case k_op_state_compound + (k_op_state_localized<<3):
-
-       *target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       sem_append_str_to_cstr
-           (*target_entry,
-            value2_entry, FALSE);
-       sem_evaluate_value_cs (*target_entry);
-       /*
-        * We must evaluate both  entries to the XmStringConcat routine so
-        * that it will work properly.   However this MAY be a pointer to
-        * a compound string, use that value instead or we will concat a 
-        * NULL value and lose part of the string.
-        */
-       if ((value1_entry->az_first_table_value == NULL) &&
-           (value1_entry->value.xms_value == NULL))
-           value1_entry->value.xms_value = 
-               value1_entry->az_exp_op1->value.xms_value;
-       else
-           sem_evaluate_value_cs(value1_entry);
-
-       (*target_entry)->value.xms_value = 
-           XmStringConcat (value1_entry->value.xms_value, 
-                           (*target_entry)->value.xms_value);
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    /*
-    **  This is the case of two compound strings.  Just let the append routine
-    **  do the right thing.
-    */
-    case k_op_state_compound + (k_op_state_compound<<3):
-       *target_entry = (sym_value_entry_type *) sem_create_cstr( );
-       /*
-        * We must evaluate both  entries to the XmStringConcat routine so
-        * that it will work properly.   However this MAY be a pointer to
-        * a compound string, use that value instead or we will concat a 
-        * NULL value and lose part of the string.
-        */
-       if ((value1_entry->az_first_table_value == NULL) &&
-           (value1_entry->value.xms_value == NULL))
-           value1_entry->value.xms_value = 
-               value1_entry->az_exp_op1->value.xms_value;
-       else
-           sem_evaluate_value_cs(value1_entry);
-
-       if ((value2_entry->az_first_table_value == NULL) &&
-           (value2_entry->value.xms_value == NULL)) 
-           value2_entry->value.xms_value = 
-               value2_entry->az_exp_op1->value.xms_value;
-       else
-           sem_evaluate_value_cs(value2_entry);
-
-       (*target_entry)->value.xms_value = 
-           XmStringConcat(value1_entry->value.xms_value,
-                          value2_entry->value.xms_value);
-       target_type  = sym_k_compound_string_value;
-       break;
-
-    /*
-    ** This is the case of two localized strings.  Just concatenate them.
-    */
-    case k_op_state_localized + (k_op_state_localized<<3):
-      *target_entry = (sym_value_entry_type *)
-       sem_cat_str_to_str
-         (value1_entry, FALSE,
-          value2_entry, FALSE);
-       target_type  = sym_k_localized_string_value;
-       
-    default:   /* some form of error */
-       target_type = sym_k_error_value;
-       *target_entry = (sym_value_entry_type *) sym_az_error_value_entry;
-       break;
-    }
-
-}
-
diff --git a/cde/osf/uil/UilSrcDef.h b/cde/osf/uil/UilSrcDef.h
deleted file mode 100644 (file)
index c2eae79..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilSrcDef.h /main/10 1995/07/14 09:38:34 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL source
-**     management procedures in the UIL compiler.
-**
-**--
-**/
-
-#ifndef UilSrcDef_h
-#define UilSrcDef_h
-
-
-/*
-**  Interface to src_open_source
-*/
-
-#define src_k_open_normal   1      /* open succeeded */
-#define src_k_open_error    0      /* open was unsuccessful */
-
-/*
-** Close return statuses
-*/
-
-#define src_k_close_normal     1       /* close succeeded */
-#define src_k_close_error      0       /* close was unsuccessful */
-
-/*
-**  Interface to src_get_source_line
-*/
-
-#define src_k_read_truncated   3   /* record truncated */
-#define src_k_read_error       2   /* error during read */
-#define src_k_read_normal      1   /* record read normally */
-#define src_k_end_source       0   /* end of source */
-
-/*
-**  Source records describe the lines of the source program.  The are
-**  used to retrieve the source file for the listing and diagnostics.
-**  Diagnostics randomly access these data structures by maintaining
-**  the address of the corresponding source record in tokens, the parse
-**  stack and symbol table entries.  The listing file walks the source
-**  records via the linked list provide by ar_next_source_record.
-*/
-
-
-
-
-
-
-#define _src_null_access_key( _key ) (_key.l_key == EOF)
-#define src_k_key_length 4
-
-typedef struct
-{
-    unsigned long      l_key;
-} z_key;
-
-typedef struct  _src_message_item_type
-{
-    struct _src_message_item_type   *az_next_message;
-    status                         l_message_number;
-    unsigned char                  b_source_pos;
-    char                           c_text[ 1 ];
-} src_message_item_type;
-
-#define src_message_item_type_size \
-    (sizeof(src_message_item_type) -\
-     sizeof( struct _src_message_item_type.c_text))
-
-typedef struct  _src_machine_code_type
-{
-    struct _src_machine_code_type   *az_next_machine_code;
-    unsigned short int             w_offset;
-    unsigned short int             w_code_len;
-    union {
-      long                         q_longdata[1];  /* longword alias for data*/
-      char                         c_data[ 1 ];    /* byte alias for data */
-    } data;
-} src_machine_code_type;
-
-#define src_machine_code_type_size \
-    (sizeof(src_machine_code_type) -\
-     sizeof( struct _src_machine_code_type.c_text))
-
-/*
-**  Mask for bits in b_flags of the source record
-*/
-
-#define src_m_form_feed                        (1<<0)
-#define src_m_unprintable_chars                (1<<1)
-
-typedef struct  _src_source_record_type
-{
-    struct _src_source_record_type  *az_next_source_record;
-    src_message_item_type          *az_message_list;    
-    unsigned short                 w_line_number;
-    unsigned char                  b_file_number;
-    unsigned char                  b_flags;
-    z_key                          z_access_key;
-    src_machine_code_type          *az_machine_code_list;    
-    unsigned short                 w_machine_code_cnt;
-} src_source_record_type;
-
-/*
-**  Source buffers describe the lines of the source program that are
-**  currently being SCAN.  Include files and macros a can cause a program
-**  to have more than 1 source buffer.  These buffers are managed as a
-**  stack, implemented via a linked list.
-*/
-
-typedef struct _src_source_buffer_type
-{
-    struct _src_source_buffer_type  *az_prior_source_buffer;
-    unsigned short                 w_current_line_number;
-    unsigned short                 w_current_position;
-    char                           b_file_number;
-    char                           c_text[ src_k_max_source_line_length+1];
-} src_source_buffer_type;
-
-#endif /* UilSrcDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilSrcSrc.c b/cde/osf/uil/UilSrcSrc.c
deleted file mode 100644 (file)
index b9e01b6..0000000
+++ /dev/null
@@ -1,1268 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSrcSrc.c /main/13 1997/03/12 15:21:40 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the procedure for managing the UIL source
-**     files.  
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-/* %COMPLETE */
-#include <sys/stat.h>
-
-
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-/*
-**  define the source buffer data structures
-*/
-
-externaldef(uil_comp_glbl) src_source_buffer_type      *src_az_current_source_buffer;
-externaldef(uil_comp_glbl) src_source_buffer_type      *src_az_avail_source_buffer;
-externaldef(uil_comp_glbl) src_message_item_type       *src_az_orphan_messages;
-/* %COMPLETE */
-externaldef(uil_comp_glbl) long Uil_file_size;
-struct stat stbuf;
-
-
-
-/*
-**  define the source record data structures
-*/
-
-externaldef(uil_comp_glbl) src_source_record_type
-       *src_az_current_source_record;
-externaldef(uil_comp_glbl) src_source_record_type
-       *src_az_first_source_record;
-
-externaldef(uil_comp_glbl) uil_fcb_type
-       *src_az_source_file_table[src_k_max_source_files];
-externaldef(uil_comp_glbl) int
-       src_l_last_source_file_number;
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-    static uil_fcb_type            *main_fcb;
-    static char                    *include_dir;
-    static unsigned short   main_dir_len;
-
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure initializes the reading of the UIL source program.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      Uil_cmd_z_command
-**
-**  IMPLICIT OUTPUTS:
-**
-**      src_az_first_source_buffer
-**      src_az_current_source_buffer
-**     src_l_last_source_file_number
-**     src_az_source_file_table
-**      src_az_current_source_record
-**     main_fcb
-**     include_dir 
-**     main_dir_len
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      source file is opened
-**     source buffer structure is setup
-**     source record structure is setup
-**
-**--
-**/
-
-void
-src_initialize_source(void)
-{
-    /* initialize source data structures */
-
-    src_az_current_source_buffer = NULL;
-    src_az_avail_source_buffer = NULL;
-    src_l_last_source_file_number = -1;
-    src_az_first_source_record = NULL;
-    src_az_current_source_record =
-       (src_source_record_type *) &src_az_first_source_record;
-
-    /*  Initialize Own storage    */
-
-    main_fcb = NULL;
-    include_dir = NULL;
-    main_dir_len = 0;
-
-
-    /* open the source file */
-    if ( Uil_cmd_z_command.ac_source_file == NULL )
-       diag_issue_diagnostic (d_src_open,
-                              diag_k_no_source, diag_k_no_column,
-                              "<null file name>");
-
-    src_open_file ( Uil_cmd_z_command.ac_source_file, NULL );
-
-    /* fixes initial filename is NULL bug in callable UIL */
-    Uil_current_file = Uil_cmd_z_command.ac_source_file;
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This procedure does the cleanup processing of the source files
-**     structures.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**     Uil_cmd_z_command
-**      src_az_first_source_buffer
-**      src_az_current_source_buffer
-**     src_l_last_source_file_number
-**     src_az_source_file_table
-**      src_az_current_source_record
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     structures are freed
-**
-**--
-**/
-
-void
-Uil_src_cleanup_source(void)
-{
-
-    int                                i;                  /* index over fcbs */
-    src_source_buffer_type     *buffer_to_free;   
-    src_source_record_type     *record_to_free;
-    src_machine_code_type      *first_code_item; 
-    src_machine_code_type      *code_item_to_free; 
-    status                     l_close_status;
-
-    /*
-    **  Loop through all open files freeing their fcbs
-    */
-    for (i = 0; i <= src_l_last_source_file_number; i++)
-       {
-       /* it is possible to get an error before the files are open,
-          so check and see if table is NULL before opening */
-       if (src_az_source_file_table[i] == NULL)
-               continue;
-       l_close_status = close_source_file (src_az_source_file_table[i]);
-       if ( l_close_status == src_k_close_error )
-           {
-           diag_issue_diagnostic (d_src_close,
-                                  diag_k_no_source, diag_k_no_column,
-                                  src_az_source_file_table[i]->expanded_name);
-           }
-       _free_memory ((char*)src_az_source_file_table [i]);
-       src_az_source_file_table[i] = NULL;
-       }
-
-    /*
-    **  Loop through list of current source buffers, freeing them
-    */
-    while (src_az_current_source_buffer != NULL)
-       {
-       buffer_to_free = src_az_current_source_buffer;
-       src_az_current_source_buffer = 
-           src_az_current_source_buffer->az_prior_source_buffer;
-       _free_memory ((char*)buffer_to_free);
-       }
-
-    /*
-    **  Loop through list of source records, freeing them
-    */
-    while (src_az_first_source_record != NULL)
-       {
-       record_to_free = src_az_first_source_record;
-       first_code_item = record_to_free->az_machine_code_list;
-       
-       while (first_code_item != NULL)
-         {
-           code_item_to_free = first_code_item;
-           first_code_item = first_code_item->az_next_machine_code;
-           _free_memory((char *)code_item_to_free);
-         }
-       
-       src_az_first_source_record =
-           src_az_first_source_record->az_next_source_record;
-       _free_memory ((char*)record_to_free);
-       }
-
-    /*
-    **  Free Own storage
-    */
-/* BEGIN OSF FIX pir 2240 */
-    /* Memory pointed to by main_fcb already freed. */
-/* END OSF FIX pir 2240 */
-    _free_memory (include_dir);
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure opens a file and sets up the static pointers to
-**     read from this file.
-**
-**  FORMAL PARAMETERS:
-**
-**      c_file_name        file to open
-**
-**  IMPLICIT INPUTS:
-**
-**      src_az_first_source_buffer
-**      src_az_current_source_buffer
-**     src_l_last_source_file_number
-**     src_az_source_file_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      src_az_first_source_buffer
-**      src_az_current_source_buffer
-**     src_l_last_source_file_number
-**     src_az_source_file_table
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      input file is opened
-**     input buffer structure is setup
-**     input record structure is setup
-**
-**--
-**/
-
-void
-src_open_file (XmConst char *c_file_name,
-               char         *full_file_name)
-{
-    uil_fcb_type               *az_fcb;            /* file control block ptr */
-    status                     l_open_status;      /* status variable */
-    src_source_buffer_type     *az_source_buffer;  /* source buffer ptr */
-
-    /* allocate fcb and source buffer */
-
-    az_fcb = (uil_fcb_type *) _get_memory (sizeof (uil_fcb_type));
-
-    if (src_az_avail_source_buffer != NULL) {
-       az_source_buffer = src_az_avail_source_buffer;
-       src_az_avail_source_buffer = 
-               src_az_avail_source_buffer->az_prior_source_buffer;
-    } else {
-       az_source_buffer =
-           (src_source_buffer_type *)
-                       _get_memory (sizeof (src_source_buffer_type));
-    }
-
-    /* Call the OS-specific open file procedure */
-
-    l_open_status = open_source_file (
-                       c_file_name,
-                       az_fcb,
-                       az_source_buffer );
-
-    /* If the file is not found, a fatal error is generated.   */
-
-    if ( l_open_status == src_k_open_error ) {
-       diag_issue_diagnostic( d_src_open,
-                              diag_k_no_source, diag_k_no_column,
-                              c_file_name );
-    }
-
-    /* put fcb in the file table */
-
-    src_l_last_source_file_number++;
-
-    if (src_l_last_source_file_number >= src_k_max_source_files) {
-       diag_issue_diagnostic (
-               d_src_limit,
-               src_az_current_source_record,
-               src_az_current_source_buffer -> w_current_position - 1,
-               az_fcb->expanded_name );
-    }
-
-    src_az_source_file_table[ src_l_last_source_file_number ] = az_fcb;
-
-    /* Complete the OS-independent initialization. Get the size of the file
-    ** for %complete info then initialize a source
-    ** buffer placing a null in the buffer will cause the lexical analyzer
-    ** to start by reading the first line of the file
-    */
-
-    /* %COMPLETE */
-    if (stat(az_fcb->expanded_name, &stbuf) == -1) {
-       diag_issue_diagnostic( d_src_open,
-                              diag_k_no_source, diag_k_no_column,
-                              az_fcb->expanded_name );
-    }
-
-    Uil_file_size = stbuf.st_size;
-
-    if (full_file_name != NULL)
-       strcpy (full_file_name, az_fcb->expanded_name);
-
-    az_fcb->v_position_before_get = FALSE;
-
-    az_source_buffer->w_current_line_number = 0;
-    az_source_buffer->b_file_number = src_l_last_source_file_number;
-    az_source_buffer->w_current_position = 0;
-    az_source_buffer->c_text[ 0 ] = 0;
-
-    /* make the source buffer current */
-
-    az_source_buffer->az_prior_source_buffer =
-                               src_az_current_source_buffer;
-    src_az_current_source_buffer = az_source_buffer;
-
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure reads the next source line;
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      src_az_source_file_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      src_az_current_source_buffer
-**      src_az_current_source_record
-**
-**  FUNCTION VALUE:
-**
-**      src_k_end_source       no more source lines
-**      src_k_read_normal      new line in the source buffer
-**
-**  SIDE EFFECTS:
-**
-**      may issue diagnostics if error occurs reading record
-**     may restore previous source upon reaching end of current source
-**
-**--
-**/
-
-status
-src_get_source_line(void)
-{
-    uil_fcb_type           *az_fcb;
-    src_source_record_type  *az_source_record;
-    status                 l_read_status;
-
-    /* Return if already at the end of file */
-
-    if (src_az_current_source_buffer == NULL)
-       return src_k_end_source;
-
-    /* Find the current fcb */
-
-    az_fcb = src_az_source_file_table
-               [ src_az_current_source_buffer->b_file_number ];
-
-    /* Read the next record */
-
-    l_read_status = get_line( az_fcb );
-
-    /* Increment lines processed count, and update current file */
-    Uil_lines_processed++;
-    Uil_current_file = az_fcb->expanded_name;
-
-    if ( (l_read_status == src_k_read_normal) ||
-        (l_read_status == src_k_read_truncated) )
-    {
-       /* Read was successful
-        * Set position to the start of the record */
-
-       src_az_current_source_buffer->w_current_position = 0;
-
-       /* Allocate and initialize a source record */
-       
-       az_source_record = 
-           (src_source_record_type *)
-               _get_memory( sizeof( src_source_record_type ) );
-
-       az_source_record->az_next_source_record = NULL;
-       az_source_record->w_line_number = 
-           ++src_az_current_source_buffer->w_current_line_number;
-       az_source_record->b_file_number = 
-           src_az_current_source_buffer->b_file_number;
-       az_source_record->az_message_list = NULL;
-       az_source_record->az_machine_code_list = NULL;
-       az_source_record->w_machine_code_cnt = 0;
-       az_source_record->z_access_key = az_fcb->last_key;
-
-       /* was uninitialized; fixes listing problem on HP  (RAP) */
-        az_source_record->b_flags = 0;
-
-       /* Link the source record to the end of source record list */
-
-       src_az_current_source_record->az_next_source_record =
-           az_source_record;
-       src_az_current_source_record = az_source_record;
-
-       if (l_read_status == src_k_read_truncated)
-           diag_issue_diagnostic( d_src_truncate,
-                                  src_az_current_source_record,
-                                  diag_k_no_column,
-                                  src_k_max_source_line_length );
-    
-       return src_k_read_normal;
-    }
-
-    /* Check for end of file */
-
-    if (l_read_status == src_k_end_source)
-    {
-       src_source_buffer_type  *az_prior_source_buffer;
-       
-       /* get prior source buffer */
-
-       az_prior_source_buffer = 
-           src_az_current_source_buffer->az_prior_source_buffer;
-
-       /* place current source buffer on the available list */
-
-       src_az_current_source_buffer->az_prior_source_buffer =
-           src_az_avail_source_buffer;
-       src_az_avail_source_buffer = src_az_current_source_buffer;
-
-       /* if there is no prior source buffer - return end of source */
-
-       if (az_prior_source_buffer == NULL)
-           return src_k_end_source;
-
-       /* restore the prior buffer as current */
-
-       src_az_current_source_buffer = az_prior_source_buffer;
-
-       return src_k_read_normal;
-    }
-
-    /* must have been an error */
-
-    diag_issue_diagnostic( d_src_read,
-                          src_az_current_source_record,
-                          diag_k_no_column,
-                          az_fcb->expanded_name );
-
-    _assert( FALSE, "read past source error" );
-       return(src_k_read_error);
-}
-
-\f
-
-
-\f
-
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      open the source file.
-**
-**  FORMAL PARAMETERS:
-**
-**      c_file_name        source file to open
-**     az_fcb              file control block for the file
-**     az_source_buffer    source buffer for the file
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      src_k_open_normal
-**      src_k_open_error
-**
-**  SIDE EFFECTS:
-**
-**      file is opened and has a source buffer associated with it
-**
-**--
-**/
-
-status
-open_source_file( XmConst char           *c_file_name, 
-                  uil_fcb_type           *az_fcb, 
-                  src_source_buffer_type *az_source_buffer )
-{
-
-    static unsigned short      main_dir_len = 0;
-    boolean                    main_file;
-    int                                i;  /* loop index through include files */
-    char                       buffer[256];
-
-
-    /* place the file name in the expanded_name buffer */
-
-    strcpy(buffer, c_file_name);
-
-/*    Determine if this is the main file or an include file.  */
-
-    main_file = (main_fcb == NULL);
-
-    if (main_file) {
-
-       char XmConst            * ptr;
-       unsigned short          len;
-
-/*    Save the directory info for the main file.    */
-
-       for (len = strlen (c_file_name),
-            ptr = & c_file_name [len - 1];
-            len > 0; len--, ptr--) {
-           if ((* ptr) == '/') {
-               break;
-           }
-       }
-
-       main_dir_len = len;
-       main_fcb = az_fcb;
-
-/*    Open the main file.    */
-
-       az_fcb->az_file_ptr = fopen(c_file_name, "r");
-
-    } else {
-       static char XmConst     c_include_dir[]= "/usr/include/";
-       Boolean                 search_user_include=True;
-       Boolean                 specific_directory=False;
-
-/*    See if the file name has a leading slash and set the flag. 
-      Look in the specified directory for the include file.  If the dir
-      is not specified (leading slash), look in the main file's directory  */
-
-       if (c_file_name[0] == '/') {
-           specific_directory = True;
-           }
-
-       if (!specific_directory) {
-           _move (buffer, main_fcb -> expanded_name, main_dir_len);
-           _move (& buffer [main_dir_len],
-                  c_file_name, strlen (c_file_name) + 1);  /* + NULL */
-       } else {
-           strcpy (buffer, c_file_name);
-       }
-
-/*    Open the include file.    */
-
-       az_fcb->az_file_ptr = fopen (buffer, "r");
-
-/*    If a specific directory was specified, or if the file was found,
-      then we are done.        */
-
-       if ( (specific_directory) || (az_fcb -> az_file_ptr != NULL) ) {
-         goto open_label;
-       }
-
-/*    Look in the command line specified include directories, if any.    */
-
-       for (i = 0; i < Uil_cmd_z_command.include_dir_count; i++) {          
-           int         inc_dir_len;
-
-           inc_dir_len = strlen (Uil_cmd_z_command.ac_include_dir[i]);
-           if (inc_dir_len == 0) {
-               search_user_include = False;
-               }
-           _move (buffer, Uil_cmd_z_command.ac_include_dir[i], inc_dir_len);
-
-       /*  Add '/' if not specified at end of directory  */
-
-           if (Uil_cmd_z_command.ac_include_dir[i][inc_dir_len - 1] != '/') {
-               buffer [inc_dir_len] = '/';
-               inc_dir_len++;
-           };
-
-           _move (& buffer [inc_dir_len],
-                  c_file_name, strlen (c_file_name) + 1);  /* + NULL */
-
-       /*    Open the include file.  If found, we are done.    */
-
-           az_fcb->az_file_ptr = fopen (buffer, "r");
-
-           if (az_fcb -> az_file_ptr != NULL) {
-               goto open_label;
-           }
-       }
-
-/*    Look in the default include directory.    */
-       if (search_user_include) {
-         _move(buffer, c_include_dir, sizeof c_include_dir - 1); /* no NULL */
-         _move(&buffer[sizeof c_include_dir - 1], 
-               c_file_name, strlen (c_file_name) + 1);  /* + NULL */
-
-/*    Open the include file.    */
-         az_fcb->az_file_ptr = fopen (buffer, "r");
-       }
-    }
-
-open_label:
-
-    /* check the open status. */
-
-    if (az_fcb->az_file_ptr == NULL)
-       return src_k_open_error;
-
-    /* open succeeded - place buffer address in fcb */
-
-    az_fcb->c_buffer = az_source_buffer->c_text;
-    az_fcb->c_buffer[ src_k_max_source_line_length ] = 0;
-    strcpy(az_fcb->expanded_name, buffer);
-
-    return src_k_open_normal;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      close the source file.
-**
-**  FORMAL PARAMETERS:
-**
-**     az_fcb              file control block for the file
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      src_k_close_normal
-**      src_k_close_error
-**
-**  SIDE EFFECTS:
-**
-**     none
-**
-**--
-**/
-
-status
-close_source_file( uil_fcb_type *az_fcb )
-{
-    status     l_close_status;
-
-    /*
-    ** Close  the file
-    */
-
-    l_close_status = fclose (az_fcb->az_file_ptr);
-
-    if ( l_close_status != EOF )
-       return src_k_close_normal;
-    else
-       return src_k_close_error;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      read line of the source file.
-**
-**  FORMAL PARAMETERS:
-**
-**     az_fcb              file control block for the file
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      src_k_read_normal
-**      src_k_read_error
-**     src_k_read_truncated
-**     src_k_end_source
-**
-**  SIDE EFFECTS:
-**
-**      next record in file is read
-**
-**--
-**/
-
-status
-get_line( uil_fcb_type *az_fcb )
-{
-    status     l_read_status;
-    char       *c_new_line;
-
-    /* 
-    ** if v_position_before_get is true, we need to reposition
-    ** before the get because another retrieve has altered the
-    ** current record.
-    */
-
-    if (az_fcb->v_position_before_get)
-    {
-       fseek( az_fcb->az_file_ptr,
-              az_fcb->last_key.l_key,
-              0 );
-       l_read_status = (status) (fgets(az_fcb->c_buffer, 
-                                       src_k_max_source_line_length, 
-                                       az_fcb->az_file_ptr) != NULL);
-       az_fcb->v_position_before_get = FALSE;
-    }
-
-    /* get the current offset */
-
-    az_fcb->last_key.l_key = ftell(az_fcb->az_file_ptr);
-    
-    /* read the next line */
-
-    l_read_status = (status) (fgets(az_fcb->c_buffer, 
-                                   src_k_max_source_line_length, 
-                                   az_fcb->az_file_ptr) != NULL );
-
-    if ( l_read_status != 0 )
-    {
-       /* Read was successful
-        * Find \n character an replace with a null */
-
-       c_new_line = (char *) strchr( az_fcb->c_buffer, '\n' );
-
-       if (c_new_line == NULL) {
-
-/* Fix for CR 3044 -- only return truncated if not at eof */
-
-           if (!feof(az_fcb->az_file_ptr))
-               return src_k_read_truncated;
-       } else {
-           *c_new_line = 0;
-       } 
-
-       return src_k_read_normal;
-    }
-
-    /* Check for end of file */
-
-    if (feof(az_fcb->az_file_ptr))
-    {
-       if (sym_az_current_section_entry->prev_section != NULL)
-           {
-           sym_include_file_entry_type *include_entry;
-
-           /*
-           ** This is the end of an include file.  Set the pointers so that the sections
-           ** in the include file hang off the previous list correctly.
-           */
-           include_entry = (sym_include_file_entry_type *)
-                               sym_az_current_section_entry->prev_section->entries;
-           include_entry->sections = sym_az_current_section_entry;
-           sym_az_current_section_entry = sym_az_current_section_entry->prev_section;
-           }
-       return src_k_end_source;
-    }
-
-    /* must have been an error */
-
-    return src_k_read_error;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      re-read line of the source file.
-**
-**  FORMAL PARAMETERS:
-**
-**     az_fcb              file control block for the file
-**     c_buffer            pointer to buffer to hold the source line
-**     z_access_key        key to retrieve the source line
-**  
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      v_position_before_read = TRUE
-**
-**  FUNCTION VALUE:
-**
-**      true           if the record can be retrieved
-**      false          if the record cannot be retrieved
-**
-**  SIDE EFFECTS:
-**
-**      change next record for the file
-**
-**--
-**/
-
-boolean
-reget_line( uil_fcb_type  *az_fcb, 
-            char          *c_buffer, 
-            XmConst z_key *z_access_key )
-{
-    status     l_read_status;
-    char       *c_new_line;
-
-    fseek( az_fcb->az_file_ptr,
-          z_access_key->l_key,
-          0 );
-
-    l_read_status = (status) (fgets(c_buffer, 
-                                   src_k_max_source_line_length, 
-                                   az_fcb->az_file_ptr) != NULL );
-
-    az_fcb->v_position_before_get = TRUE;
-
-    if ( l_read_status != 0 )
-    {
-       /* Read was successful
-        * Find \n character an replace with a null */
-
-       c_new_line = (char *) strchr( c_buffer, '\n' );
-
-        if (c_new_line == NULL) {
-
-/* Fix for CR 3044 -- only return truncated if not at eof */
-
-            if (!feof(az_fcb->az_file_ptr))
-                return src_k_read_truncated;
-        } else {
-            *c_new_line = 0;
-        }        
-
-       return TRUE;
-    }
-
-    /* must have been an error */
-
-    return FALSE;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Given a source record, this function returns the file name of
-**     the file containing that source record.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec     pointer to a source record structure
-**
-**  IMPLICIT INPUTS:
-**
-**      src_az_source_file_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      pointer to the file name string
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-char
-*src_get_file_name(XmConst src_source_record_type *az_src_rec)
-{
-    uil_fcb_type    *fcb;
-
-    /* Find the correct fcb */
-
-    fcb = src_az_source_file_table[ az_src_rec->b_file_number ];
-    
-    /* Return a pointer to file name */
-
-    return fcb->expanded_name;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      Given a source record, this function retrieves the text of the
-**     line corresponding to that source line.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec     pointer to a source record structure
-**     c_buffer        pointer to buffer to hold the text
-**
-**  IMPLICIT INPUTS:
-**
-**      src_az_source_file_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      true           if there is a source line
-**      false          if there is no source line
-**
-**  SIDE EFFECTS:
-**
-**      buffer is set to the contents of source line
-**
-**--
-**/
-
-static char XmConst no_source[] = "[ source not available ]";
-
-
-
-boolean        src_retrieve_source
-
-       (XmConst src_source_record_type *az_src_rec,
-       char *c_buffer)
-
-{
-    uil_fcb_type    *fcb;
-
-    /* check if there is any source */
-
-    if (az_src_rec == diag_k_no_source)
-    {
-       _move( c_buffer, no_source, sizeof no_source );
-       return FALSE;
-    }
-
-    /* 
-    ** check if we are dealing with the current source record
-    ** in which case we don't need to reread the source 
-    */
-
-    if ((az_src_rec->b_file_number == 
-        src_az_current_source_buffer->b_file_number)
-        &&
-       (az_src_rec->w_line_number ==
-        src_az_current_source_buffer->w_current_line_number)
-       )
-    {
-       strcpy( c_buffer, 
-              src_az_current_source_buffer->c_text);
-       return TRUE;
-    }
-
-    /*
-    ** Will have to reread the data from the file.
-    */
-
-    /* Find the correct fcb */
-
-    fcb = src_az_source_file_table[ az_src_rec->b_file_number ];
-    
-    /* get the line */
-
-    if (reget_line( fcb, c_buffer, (z_key *) &(az_src_rec->z_access_key) ))
-       return TRUE;
-
-    _move( c_buffer, no_source, sizeof no_source );
-    return FALSE;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function adds diagnostic information to the source representation.
-**     This permit diagnostics to be placed in the listing.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec         source line diagnostic issued against
-**     l_src_pos           offset of diagnostic in the source line
-**     c_msg_text          text of diagnostic
-**     l_msg_number        message number for diagnostic
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      diagnostic stuff away in the source structure
-**
-**--
-**/
-
-void
-src_append_diag_info( XmConst src_source_record_type *az_src_rec, 
-                      XmConst int                     l_src_pos, 
-                      XmConst char                   *c_msg_text, 
-                      XmConst int                     l_msg_number )
-{
-    src_message_item_type          *az_msg_item;
-    int                                    l_msg_length;
-    src_message_item_type          *current;
-    src_message_item_type          **prior;
-
-    /*
-    ** create the message item and fill it in.
-    */
-
-    l_msg_length = strlen( c_msg_text ) + 1;   /* includes null */
-
-    az_msg_item = (src_message_item_type *)
-       _get_memory( sizeof( src_message_item_type ) + l_msg_length );
-
-    az_msg_item->l_message_number = l_msg_number;
-    az_msg_item->b_source_pos = l_src_pos;
-
-    _move( (az_msg_item->c_text), c_msg_text, l_msg_length );
-
-    /*
-    **  Link the message from its source line
-    **     Messages are in ascending column order for a line with
-    **       messages without column info at the end
-    **     Messages without source are appended to a list of orphans
-    */
-
-    if (az_src_rec == diag_k_no_source)
-       prior = &src_az_orphan_messages;
-    else
-       prior = (src_message_item_type **)&(az_src_rec->az_message_list);
-
-    current = *prior;
-
-    for (;  
-        current != NULL;
-        prior = &(current->az_next_message),  
-        current = *prior )
-    {
-       if (l_src_pos < (int)current->b_source_pos)
-           break;
-    }
-
-    az_msg_item->az_next_message = current;
-    *prior = az_msg_item;
-    
-    return;
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function adds machine code information to the source
-**     representation.  This permits machine code to be placed in the listing.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_src_rec         source line machine code is associated with.
-**     l_offset            offset in the record for this code element
-**     l_code_len          length of the binary machine code buffer
-**     c_code              buffer containing the machine code in binary form
-**     c_text_arg          text of machine code; optional
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      Machine code stuffed away in the source structure
-**
-**--
-**/
-
-void
-src_append_machine_code ( src_source_record_type *az_src_rec, 
-                          XmConst int             l_offset, 
-                          XmConst int             l_code_len, 
-                          XmConst char           *c_code, 
-                          XmConst char           *c_text_arg )
-{
-    src_machine_code_type   *az_code_item;
-    int                            l_text_len;
-    XmConst char           *c_text;
-
-    if (c_text_arg == NULL) {
-       c_text = "";
-    } else {
-       c_text = c_text_arg;
-    }
-
-    /*
-    ** create the machine code item and fill it in.
-    */
-
-    l_text_len = strlen( c_text ) + 1; /* includes null */
-
-    az_code_item = (src_machine_code_type *) _get_memory(
-               sizeof( src_machine_code_type ) + l_text_len + l_code_len );
-
-    az_code_item -> w_offset = l_offset;
-    az_code_item -> w_code_len = l_code_len;
-    _move( (az_code_item->data.c_data), c_code, l_code_len );
-    _move( &(az_code_item->data.c_data [l_code_len]), c_text, l_text_len );
-
-    /*
-    **  Link the machine code to its source line, at the head of
-    **  the machine code list.
-    */
-
-    az_code_item->az_next_machine_code = az_src_rec->az_machine_code_list;
-    az_src_rec->az_machine_code_list = az_code_item;
-    az_src_rec->w_machine_code_cnt++;
-    
-    return;
-}
diff --git a/cde/osf/uil/UilSymDef.h b/cde/osf/uil/UilSymDef.h
deleted file mode 100644 (file)
index 2da178f..0000000
+++ /dev/null
@@ -1,938 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilSymDef.h /main/12 1995/07/14 09:38:52 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interface to the UIL symbol table.
-**
-**--
-**/
-
-#ifndef UilSymDef_h
-#define UilSymDef_h
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Mrm/MrmPublic.h>
-#include <Xm/Xm.h>
-
-/*
-**  constraint check access macro
-*/
-#define _constraint_check(arg) \
- (constraint_tab[((arg)-1)/8] & (1 << ((arg)-1)%8))
-
-/*
-**  Hash table size
-*/
-
-/* MOVED TO DBDef.h */
-
-/* 
-**  Symbol tags.  These values are used in the tag field of every object header
-**  to identify the type of the entry.
-*/
-
-/* MOVED TO DBDef.h */
-
-
-/*
-**    Common attribute masks -- These values are used in the b_flags field of
-**    the object_header.
-*/
-
-/* MOVED TO DBDef.h */
-
-
-/*
-**     Output states - order is important
-*/
-
-/* MOVED TO DBDef.h */
-
-
-\f
-/*
-**     Constants to define compiler-recognized data types. It is
-**     important that the names used in .wml language descriptions
-**     match these names. These values were once automatically generated
-**     by WML. They are now maintained by hand to reduce compiler
-**     dependence on WML artifacts.
-*/
-/* MOVED TO DBDef.h */
-
-\f
-/* 
-**  Header for each symbol entry
-*/
-
-typedef struct
-{
-    char                b_tag;
-       /* type of entry The values of this field ia a sym_k_XXX_entry as   */
-       /* defined above.                                                   */
-    char               b_type;
-       /*  generic subtype field usage depends on value of b_tag field     */
-       /*  above (sym_k_value_entry -> b_type is a sym_k_XXX_value as      */
-       /*  defined in UilSymGen.h, sym_k_list_entry -> b_type is a         */
-       /*  sym_k_XXX_list as defined below, sym_k_widget_entry -> b_type   */
-       /*  is a sym_k_XXX_object as defined in UilSymGen.h,                */
-       /*  sym_k_child_entry -> b_type is a sym_k_XXX_child as defined in  */
-        /*  UilSymGen.h, sym_k_section_entry -> b_type is a                */
-       /*  sym_k_XXX_section as defined below).                            */
-       /*                                                                  */
-    unsigned short     w_node_size;
-       /*  size of the node in longwords                                   */
-    int                        user_data;
-       /* not used directly by the compiler.  It is for use by             */
-       /* applications making use of callable UIL only.                    */
-
-    /*
-    ** Fields to save source information about the symbol:  We currently save
-    ** five things.  The source record where the symbol "begins" (begins is in
-    ** quotes because this may point to just white space before the actual
-    ** symbol), the position (character) within that record where the symbol
-    ** begins, the source record where the symbol ends, the position within
-    ** that record that symbol really begins (i.e. no white space or anything),
-    ** and the position where the symbol definition ends.
-    */
-
-    struct _src_source_record_type  *az_src_rec;
-       /* Source record where symbol defined                       */
-    unsigned char      b_src_pos;
-       /* Starting position within the source record               */
-    unsigned char      b_end_pos;
-       /* Ending position within the source record                 */
-
-} sym_entry_header_type;
-
-
-\f
-/*
-**  Common view of a symbol entry
-*/
-
-typedef struct  
-{
-    sym_entry_header_type   header;
-       /* common part of all symbol entries.                               */
-    char                    b_value[ 1 ];
-       /* information specific to each different entry type.               */
-} sym_entry_type;
-
-
-\f
-/*
-**  Name entry 
-*/
-
-/*     Flags for name entries                                              */
-
-#define                sym_m_referenced        (1 << 0)
-       /* Used in the b_flags field of a name entry.  Set if this name is   */
-       /* reference elsewhere in this UIL source module.                   */
-#define                sym_m_cycle_checked     (1 << 1)
-       /* set if the widget entry for this name has been checked for   */
-       /* cyclic references.                                           */
-#define                sym_m_has_cycle         (2 << 1)
-       /* set if a cycle was detected for a widget entry               */
-#define                sym_m_charset           (1 << 3)
-       /* set if symbol being used as charset name. */
-
-typedef struct _sym_name_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                */
-    sym_entry_type             *az_object;
-       /* pointer to the object entry with this name                   */
-    struct _sym_name_entry_type        *az_next_name_entry;
-       /* next name on hash chain                                      */
-    struct _sym_name_entry_type *az_prev_name_entry;
-       /* prev name on hash chain                                      */
-    int                                az_cycle_id;
-       /* unique id for each cycle check                               */
-    unsigned char              b_flags;
-       /* flags (possible value is sym_m_referenced as declared above) */
-    char                       c_text[ 1 ];
-       /* text of the name                                             */
-} sym_name_entry_type;
-
-/*
-**  Size of the fixed part of a name entry
-*/
-
-#define sym_k_name_entry_size (sizeof( sym_name_entry_type)- \
-                              sizeof( char[ 1 ]) )
-
-\f
-/*
-**  Value entry 
-*/
-
-/*
-**  Types of values are included in UilSymDef.h
-*/
-
-/*
-**  Charsets supported by UIL are defined via WML in UilSymGen.h
-*/
-
-
-\f
-/* 
-**  Common header for each "object" entry.  This header is shared by all
-**  widget, gadget, list, argument, callback, and control node types.  It
-**  always appears immediately following the standard entry header field.  Also
-**  defined here is a prototype node for these types of "object" entries.
-*/
-
-typedef struct
-{
-    sym_name_entry_type                * az_name;
-       /* pointer to the name entry that holds the object name.          */
-    sym_entry_type             * az_reference;
-       /* pointer to the entry that references this object.              */
-    sym_entry_type             * az_next;
-       /* pointer to next entry in a list, if this entry is linked under */
-        /* a list entry.                                                 */
-    char                       * az_comment;
-       /* pointer to comment entry associated with this object.          */
-    unsigned int               b_flags;
-       /* object flags.                                                  */
-} sym_obj_header_type;
-
-typedef struct
-{
-    sym_entry_header_type      header;
-       /* common entry header                                            */
-    sym_obj_header_type                obj_header;
-       /* common object header                                           */
-} sym_obj_entry_type;
-
-
-\f
-/*
-**  This structure defines an element in a color table.  A color table contains
-**  an array of such elements.
-*/
-
-typedef struct 
-{
-    unsigned char      b_letter;
-       /* letter for this color                                          */
-    unsigned char      b_index;
-       /* index for this color                                           */
-    unsigned short     w_desc_offset;
-       /* descriptor offset at in context                                */
-    struct _sym_value_entry_type    *az_color;
-       /* pointer to the value entry for this color                      */
-
-} sym_color_element;
-
-
-/*
-**  This structure defines the data for an icon.
-*/
-
-typedef struct 
-{
-    unsigned short     w_height;
-       /* height in pixels of the icon                                   */
-    unsigned short     w_width;
-       /* width in pixels of the icon                                    */
-    struct _sym_value_entry_type    *az_color_table;
-       /* pointer to the value entry for the color table                 */
-    struct _sym_value_entry_type    *az_rows;
-       /* pointer to the list of icon rows                               */
-
-} sym_icon_element;
-
-/*
-**  This structure define an enumeration set entry
-*/
-
-/* MOVED TO DBDef.h */
-
-
-/*
-**     Auxiliary sym_k_flags for values stored in b_aux_flags field
-*/
-
-#define                sym_m_table_entry       (1 << 0)
-    /* This item is a component of table                                 */
-#define                sym_m_separate          (1 << 2)
-    /* add CDA separator to end of string                                */
-#define                sym_m_sixteen_bit       sym_m_separate
-    /* character set is 16-bit                                           */
-#define                sym_m_exp_eval          (1 << 3)
-    /* if set, indicates that expression has already been evaluated      */
-
-/*
-**     Types of colors - stored in b_arg_type
-*/
-
-#define        sym_k_unspecified_color 0
-#define        sym_k_background_color  1
-       /* This color should displayed in the background on a monochrome          */
-       /* display.                                                       */
-#define        sym_k_foreground_color  2
-       /* This color should displayed in the foreground on a monochrome          */
-       /* display.                                                       */
-
-/*
-**     value sets defining expression operators
-*/
-
-/* MOVED TO DBDef.h */
-
-typedef struct _sym_value_entry_type
-{
-    sym_entry_header_type   header;
-       /* common header                                                  */
-    sym_obj_header_type     obj_header;
-       /* common header for objects                                      */
-    unsigned char          b_type;
-       /* b_type distinguishes usage.  Possible values are sym_k_XXX_value */
-       /* as defined in UilSymGen.h                                      */
-    unsigned short          w_length;
-       /* length for variable length types                               */
-    char                   output_state;
-       /* output_state (only byte is needed)                             */
-    unsigned char          b_table_count;
-       /* number of strings in table, colors in a color table, or fonts in */
-       /* a font table.                                                  */
-    unsigned char          b_aux_flags;
-       /* auxiliary flags                                                */
-    unsigned char          b_arg_type;
-       /* type of argument value or monochrome treatment of a color      */
-    unsigned char          b_data_offset;
-       /* offset of bits in context for an icon                          */
-    unsigned char          b_pixel_type;
-       /* pixel size encoding of an icon                                 */
-    unsigned char          b_charset;
-       /* character set of a string                                      */
-    unsigned char          b_direction;
-       /* writing direction of a string, from XmSTRING_DIRECTION_...     */
-    unsigned char          b_max_index;
-       /* max index in a color table                                     */
-    unsigned char          b_expr_opr;
-       /* operator for an expression value node                          */
-    unsigned int           l_circular_ref_chk;
-       /* field to mark when checking for circular references            */
-    unsigned short int     b_enumeration_value_code;
-        /* if non-0, the node takes its value from the value of the       */
-        /* sym_k_..._enumval code in this field (currently integer)       */
-    MrmResource_id     resource_id; 
-       /* 
-resource id for private values.                                  */
-
-/* Structure for different kinds of nodes pointing to other value nodes          */
-    struct _sym_value_entry_type    * az_charset_value;
-        /* pointer to value entry describing a userdefined charset. */
-        /* Valid only when b_charset == sym_k_userdefined_charset   */
-    struct _sym_value_entry_type    * az_next_table_value;
-       /* next element for tables.                                 */
-    struct _sym_value_entry_type    *az_first_table_value;
-        /* pointer to first table entry (font, string, etc.) if     */
-        /* value is a table.                                       */
-    struct _sym_value_entry_type       * az_exp_op1;
-    struct _sym_value_entry_type       * az_exp_op2;
-        /* pointer to the one or two value operands of an          */
-        /* expression value node. Special operands have an          */
-        /* explicitly state semantic.                               */
-
-/* Union for the actual value of a value node                          */
-    union _sym_value_entry_value_union
-    {
-       /*  must be capable of holding a pointer, chs */
-       long            l_integer;
-           /* value if an integer.                                     */
-        double         d_real;
-           /* value if a double float.                                 */
-       char            *c_value;
-           /* value of ASCIZ string                                    */
-       XmString        xms_value;
-          /* value of XmString                                         */
-       float           single_float;
-           /* value if a single float                                  */
-       sym_color_element       *z_color;       
-           /* value if color table.                                    */
-       sym_icon_element        *z_icon;
-           /* value if icon                                            */
-       char            *az_data;
-           /* pointer to any other kind of allocated data              */
-    } value;
-} sym_value_entry_type;
-
-
-/*
-**  Define the fixed size of the value entry structure
-*/   
-
-#define sym_k_value_entry_size (sizeof(sym_value_entry_type))
-
-\f
-/*
-**  List entry
-*/
-
-/*
-**  The types of lists, values for the header.b_type field of a list entry.
-*/
-
-#define        sym_k_error_list                sym_k_error_entry
-#define        sym_k_callback_list             sym_k_callback_entry
-#define        sym_k_argument_list             sym_k_argument_entry
-#define        sym_k_control_list              sym_k_control_entry
-#define                sym_k_proc_ref_list             sym_k_proc_ref_entry
-
-typedef struct _sym_list_entry_type
-{
-    sym_entry_header_type   header;
-       /* common header                                                    */
-    sym_obj_header_type     obj_header;
-       /* common header for objects                                        */
-    unsigned short         w_count;
-       /* number of elements in the list.                                  */
-    unsigned short         w_gadget_count;
-       /* number of gadgets in the list.                                   */
-} sym_list_entry_type;
-
-/*
-**  Define the size of the list structure
-*/   
-
-#define sym_k_list_entry_size (sizeof(sym_list_entry_type))
-
-
-\f
-/*
-**  Nested List entry
-*/
-
-/*
-**  A nested list entry appears in a list as the entry specifying a reference
-**  to another list (a nested list reference). It has its b_type field set
-**  to the list type (necessarily the same type as the list it is contained
-**  in, and the list it points to). The az_next field locates the next list
-**  element, as usual. The az_list field points to the list entry for the
-**  list which is referenced.
-*/
-
-typedef struct _sym_nested_list_entry_type
-{
-    sym_entry_header_type   header;
-       /* common header                                                    */
-    sym_obj_header_type     obj_header;
-       /* common header for objects                                        */
-    sym_list_entry_type            *az_list;
-       /* pointer to the referenced list                                   */
-} sym_nested_list_entry_type;
-
-/*
-**  Define the size of the nested_list structure
-*/   
-
-#define sym_k_nested_list_entry_size (sizeof(sym_nested_list_entry_type))
-
-
-\f
-/*
-**  Argument entry
-*/
-
-typedef struct _sym_argument_entry_type
-{
-    sym_entry_header_type      header;
-       /* common entry header                                              */
-    sym_obj_header_type                obj_header;
-       /* common object header                                             */
-    sym_value_entry_type       * az_arg_name;
-       /* pointer to the value entry containing the argument name.         */
-    sym_value_entry_type       * az_arg_value;
-       /* pointer to the value entry containing the argument value.        */
-} sym_argument_entry_type;
-
-#define sym_k_argument_entry_size (sizeof(sym_argument_entry_type))
-
-\f
-/*
-**  Procedure Definition Entry
-*/
-
-typedef struct
-{
-    sym_entry_header_type      header;
-       /* common header.                                                   */
-    sym_obj_header_type                obj_header;
-       /* common header for objects                                        */
-    unsigned char              v_arg_checking;
-       /* should argument type be checked.                                 */
-    unsigned char              b_arg_count;
-       /* number of arguments.                                             */
-    unsigned char              b_arg_type;
-       /* The type of single argument (tag) for this procedure.  It should */
-       /* be a sym_k_XXX_value as defined in UilDBDef.h.                   */
-    unsigned char              b_widget_type;
-       /* If b_arg_type is sym_k_widget_ref_value, then this field should   */
-       /* be a sym_k_XXX_object as defined in UilSymGen.h or               */
-       /* (uil_max_object + 1) if the type is unspecified.                 */
-} sym_proc_def_entry_type;
-
-#define sym_k_proc_def_entry_size (sizeof( sym_proc_def_entry_type))
-
-\f
-/*
-**  Procedure Reference Entry
-*/
-
-typedef struct
-{
-    sym_entry_header_type      header;
-       /* common header.                                                   */
-    sym_obj_header_type                obj_header;
-       /* common object header.                                            */
-    sym_proc_def_entry_type    *az_proc_def;
-       /* pointer to the procedure definition entry for the procedure to   */
-       /* be called.                                                       */
-    sym_value_entry_type       *az_arg_value;
-       /* pointer to the value entry for the argument to be passed as the  */
-       /* callback tag to the procedure.                                   */
-} sym_proc_ref_entry_type;
-
-#define sym_k_proc_ref_entry_size (sizeof( sym_proc_ref_entry_type))
-
-
-/*
-**  These values are passed from the grammar to the semantic action routines
-**  (SAR) to identify how the procedure is used.
-*/
-#define sym_k_callback_proc    1
-    /* The procedure was used as a callback routine.                       */
-#define sym_k_object_proc      2
-    /* The procedure was used as a creation routine for a user defined     */
-    /* widget                                                              */
-\f
-
-/*
-**  Callback entry
-*/
-
-typedef struct _sym_callback_entry_type
-{
-    sym_entry_header_type      header;
-       /* common entry header.                                             */
-    sym_obj_header_type                obj_header;
-       /* common object header.                                            */
-    sym_value_entry_type       * az_call_reason_name;
-       /* pointer to the value entry containing the reason (callback) name */
-    sym_proc_ref_entry_type    * az_call_proc_ref;
-       /* pointer to the procedure reference to be invoked for this        */
-       /* callback reason.                                                 */
-    sym_list_entry_type                * az_call_proc_ref_list;
-       /* list entry of procedure references when multiple callbacks are   */
-       /* used for the callback.                                           */
-} sym_callback_entry_type;
-
-#define sym_k_callback_entry_size (sizeof(sym_callback_entry_type))
-
-\f
-/*
-**  Parent list for widgets and gadgets
-**
-**  This list contains pointers to each of the widgets and gadgets that
-**  reference the current widget in their control list.  This information is
-**  required in order to check constraint arguments.
-*/
-
-typedef struct _sym_parent_list_type
-{
-    sym_entry_header_type           header;
-       /* common entry header                                              */
-    struct _sym_widget_entry_type   * parent;
-       /* pointer to a widget entry that references the originating widget */
-       /* in its controls list.                                            */
-    struct _sym_parent_list_type    * next;
-       /* pointer to next parent list entry.                               */
-} sym_parent_list_type;
-
-#define sym_k_parent_list_size (sizeof(sym_parent_list_type))
-
-\f
-
-/*
-**  Widget entry and Gadget entry
-**
-**     Gadgets have the same form as a widget.  They are distinguished
-**     simply by the setting of sym_m_obj_is_gadget in obj_header.b_flags .
-*/
-
-
-
-/*    widget and gadget node structure.                                            */
-
-typedef struct _sym_widget_entry_type
-{
-    sym_entry_header_type      header;
-       /* common entry header                                              */
-    sym_obj_header_type                obj_header;
-       /* common object header                                             */
-    sym_list_entry_type                * az_callbacks;
-       /* pointer to a list entry of type sym_k_callback_list which        */
-       /* contains the callbacks for this widget.                          */
-    sym_list_entry_type                * az_arguments;
-       /* pointer to a list entry of type sym_k_argument_list which        */
-       /* contains the arguments for this widget.                          */
-    sym_list_entry_type                * az_controls;
-       /* pointer to a list entry of type sym_k_controls_list which        */
-       /* contains the widgets that are children (are controlled by) this  */
-       /* widget.                                                          */
-    sym_proc_ref_entry_type    * az_create_proc;
-       /* for user_defined widgets this points to the procedure reference  */
-       /* entry that specifies the creation routine for the widget.        */
-    sym_parent_list_type       * parent_list;
-       /* pointer to a parent list entry that links all objects which      */
-       /* reference this object in there controls lists.  It is used to    */
-       /* traverse through the parents to verify that all contraint        */
-       /* arguments specified on this widget are really inherited from one */
-       /* of its parents.                                                  */
-    int                                output_state;
-       /* Used when generating the UID file.  Possible values:             */
-       /* sym_k_queued, sym_k_emitted, sym_k_not_processed. (only a byte   */
-       /* is needed).                                                      */
-    MrmResource_id                     resource_id;
-       /* The resource id if the object is private.  This is used when     */
-       /* generating the UID file.                                         */
-} sym_widget_entry_type;
-
-#define sym_k_widget_entry_size (sizeof(sym_widget_entry_type))
-
-\f
-
-/*
-**  Control entry
-*/
-
-/*
-**  Control flags -- These are additional values that may occur in the b_flags
-**  field for control entries. NOTE: Must not overlap common flags defined
-**  above.
-*/     
-
-#define        sym_m_def_in_progress   (1 << 6)
-    /* used in all lists.                                                  */
-#define        sym_m_managed           (1 << 7)
-    /* This bit is set when the controlled object is to be managed.        */
-#define sym_m_obj_is_reference  (1 << 8)
-#define sym_m_forward_ref      (1 << 9)
-    /*  This bit is set if the item is a forward reference not yet resolved*/
-#define sym_m_validated                (1 << 10)
-    /* Used for widgets to indicate if it has been validated */
-
-
-/*    Control node structure.                                              */
-
-typedef struct _sym_control_entry_type
-{
-    sym_entry_header_type      header;
-       /* common entry header                                              */
-    sym_obj_header_type                obj_header;
-       /* common object header                                             */
-    sym_widget_entry_type      * az_con_obj;
-       /* pointer to the widget entry that is controlled by this widget.   */
-} sym_control_entry_type;
-
-#define sym_k_control_entry_size (sizeof(sym_control_entry_type))
-
-
-\f
-/*
-**  External Definition Entry
-*/
-
-typedef struct _sym_external_def_entry_type
-{
-    sym_entry_header_type      header; 
-       /* common header                                                    */
-    struct _sym_external_def_entry_type        *az_next_object;
-       /* pointer next external definition entry.                          */
-    sym_name_entry_type                *az_name;
-       /* pointer to the name entry for the external object.               */
-} sym_external_def_entry_type;
-
-#define sym_k_external_def_entry_size (sizeof( sym_external_def_entry_type))
-
-\f
-/*
-**  Forward Reference Entry
-*/
-
-typedef struct _sym_forward_ref_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header.  The b_type field holds the object type.          */
-    struct _sym_forward_ref_entry_type *az_next_ref;
-       /* pointer to the next forward reference entry.                     */
-    char                       *a_update_location;
-       /* address of the longword field in the referencing entry that      */
-       /* needs to be updated with the address of the widget entry that    */
-       /* this forward reference entry was created for.  When this forward */
-       /* reference entry is processed in UilP2Reslv.c, then the widget    */
-       /* named in the az_name field will be defined and it can be         */
-       /* assigned directly into the a_update_location.                    */
-    sym_name_entry_type                *az_name;
-       /* pointer to the name entry for the widget being referenced before */
-       /* it has been defined.                                             */
-    sym_widget_entry_type      *parent;
-       /* pointer to the widget entry of the parent of the forward         */
-       /* referenced object.                                               */
-} sym_forward_ref_entry_type;
-
-#define sym_k_forward_ref_entry_size (sizeof( sym_forward_ref_entry_type))
-
-\f
-/*
-**  Forward Reference Entry
-*/
-
-#define sym_k_patch_add                1
-#define sym_k_bind_value_name  2
-#define sym_k_patch_list_add   3
-
-typedef struct _sym_val_forward_ref_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header.  The b_type field holds the expected value type.  */
-    struct _sym_val_forward_ref_entry_type     *az_next_ref;
-       /* pointer to the next forward reference entry.                     */
-    char                       *a_update_location;
-       /* address of the longword field in the referencing entry that      */
-       /* needs to be updated with the address of the value entry that     */
-       /* this forward reference entry was created for.  When this forward */
-       /* reference entry is processed in UilP2Reslv.c, then the value     */
-       /* named in the az_name field will be defined and it can be         */
-       /* assigned directly into the a_update_location.                    */
-    sym_name_entry_type                *az_name;
-       /* pointer to the name entry for the value being referenced before  */
-       /* it has been defined.                                             */
-    unsigned char              fwd_ref_flags;
-       /* flags used to indicate how to process entry on forward reference */
-       /* chain.                                                           */
-} sym_val_forward_ref_entry_type;
-
-#define sym_k_val_forward_ref_entry_size (sizeof( sym_val_forward_ref_entry_type))
-
-\f
-/*
-**  Default object entry.  Pointed to from the module entry.  The first one in
-**  the list contains source information for the "OBJECTS = " text.  The 'next'
-**  field is a pointer to a list which contains the data on the actual clauses.
-*/
-
-typedef struct _sym_def_obj_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    struct _sym_def_obj_entry_type  *next;
-       /* pointer to next default object entry in the list.                */
-    char                       b_object_info;
-    char                       b_variant_info;
-} sym_def_obj_entry_type;
-
-#define sym_k_def_obj_entry_size (sizeof( sym_def_obj_entry_type))
-
-
-\f
-/*
-**  Module entry (only 1 per compilation)
-*/
-
-typedef struct _sym_module_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    sym_obj_header_type                obj_header;
-       /* common header for objects                                        */
-    sym_value_entry_type       *az_version;
-       /* pointer to the value entry containing version string for the     */
-       /* module (version clause).                                         */
-    sym_value_entry_type       *az_character_set;
-       /* pointer to the value entry containing the default character set  */
-       /* information for the module (character set clause).               */
-    sym_value_entry_type       *az_case_sense;
-       /* pointer to the value entry containing the value of the module    */
-       /* case sensitivity clause.                                         */
-    sym_def_obj_entry_type     *az_def_obj;
-       /* pointer to the default object type specified in the module       */
-       /* default object variant clause.                                   */
-} sym_module_entry_type;
-
-#define sym_k_module_entry_size (sizeof( sym_module_entry_type))
-
-\f
-/*
-**     Section entry
-*/
-
-/*
-** Posiblilities for header.b_type when header.b_tag is sym_k_section_entry.
-*/
-
-#define sym_k_list_section     1
-       /* list section                                                     */
-#define sym_k_procedure_section        2
-       /* procedure section                                                */
-#define sym_k_value_section    3
-       /* value section                                                    */
-#define sym_k_identifier_section 4
-       /* identifier section                                               */
-#define sym_k_object_section   5
-       /* widget/gadget section                                            */
-#define sym_k_include_section  6
-       /* include directive                                                */
-#define sym_k_section_tail     7
-       /* This section has no corresponding UIL construct and exists only  */
-       /* to aid in saving source information                              */
-
-
-
-typedef struct _sym_section_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    struct _sym_section_entry_type *prev_section;
-       /* previous section "LIST".                                         */
-    sym_entry_type             *next;
-       /* pointer to the entry for the next section _OR_ next child.       */
-    sym_entry_type             *entries;
-       /* points to entries in the section _OR_ the entry in the symbol    */
-       /* table for this child.                                            */
-} sym_section_entry_type;
-
-#define sym_k_section_entry_size (sizeof (sym_section_entry_type))
-
-\f
-/*
-**  Include file entry
-*/
-
-typedef struct _sym_include_file_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    sym_section_entry_type     *sections;
-       /* pointer to a section list; this list is all of the sections that */
-       /* exist in this include file.                                      */
-    char                       file_name[255];
-       /* the file name as specified in the include statement in the UIL   */
-       /* source.                                                          */
-    char                       full_file_name[255];
-       /* the expanded name for the include file actually opened.          */
-} sym_include_file_entry_type;
-
-#define sym_k_include_file_entry_size (sizeof( sym_include_file_entry_type))
-
-\f
-/*
-**  Symbol table root entry (root of symbol table tree)
-*/
-
-typedef struct _sym_root_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    struct _src_source_record_type     *src_record_list;
-       /* pointer to a list of source records.                             */
-    char                       file_name[255];
-       /* the main UIL file name as specified on the command line.         */
-    char                       full_file_name[255];
-       /* the expanded name for the main UIL file that was actually        */
-       /* opened.                                                          */
-    sym_section_entry_type     *sections;
-       /* pointer to section list entry.                                   */
-    sym_module_entry_type      *module_hdr;
-       /* pointer to module header entry.                                  */
-    
-} sym_root_entry_type;
-
-#define sym_k_root_entry_size (sizeof( sym_root_entry_type))
-
-\f
-/*
-**  Color Item Entry
-*/
-
-typedef struct _sym_color_item_entry_type
-{
-    sym_entry_header_type      header;
-       /* common header                                                    */
-    struct _sym_color_item_entry_type  *az_next;
-       /* next item                                                        */
-    unsigned char              b_letter;
-       /* letter used for color                                            */
-    unsigned char              b_index;
-       /* color table index                                                */
-    unsigned char              b_spare1;
-    sym_value_entry_type       *az_color;
-       /* name or value entry for the color.                               */
-       
-} sym_color_item_entry_type;
-
-#define sym_k_color_item_entry_size (sizeof( sym_color_item_entry_type))
-
-
-\f
-/*
-**  This macro copies the contents of one entry to another without disturbing
-**  the the linked list of entries used to connect all symbol table entries.
-*/
-#define _sym_copy_entry(__dest, __src, __size) _move (__dest, __src, __size)
-
-
-#endif /* UilSymDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilSymGl.h b/cde/osf/uil/UilSymGl.h
deleted file mode 100644 (file)
index b3b2615..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilSymGl.h /main/9 1995/07/14 09:39:03 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file contains external declarations of all
-**     global data defining the language accepted by the Uil compiler.
-**     This is exactly the global data generated by WML, plus any
-**     invariant matching definitions.
-**
-**--
-**/
-
-#ifndef UilSymGl_h
-#define UilSymGl_h
-
-/*
- * Defined in files included in UilData.c
- */
-externalref unsigned char              *constraint_tab;
-externalref key_keytable_entry_type    *key_table;
-externalref int                                key_k_keyword_max_length;
-externalref int                                key_k_keyword_count;
-externalref key_keytable_entry_type    *key_table_case_ins;
-externalref unsigned char              **allowed_argument_table;
-externalref unsigned char              *argument_type_table;
-externalref unsigned char              **allowed_child_table;
-externalref unsigned char              *child_class_table;
-externalref char                       **charset_xmstring_names_table;
-externalref unsigned char              *charset_writing_direction_table;
-externalref unsigned char              *charset_parsing_direction_table;
-externalref unsigned char              *charset_character_size_table;
-externalref char                       **charset_lang_names_table;
-externalref unsigned short int         *charset_lang_codes_table;
-externalref unsigned short int         charset_lang_table_max;
-externalref unsigned char              **allowed_control_table;
-externalref UilEnumSetDescDef          *enum_set_table;
-externalref unsigned short int         *argument_enumset_table;
-externalref int                                *enumval_values_table;
-externalref int                                uil_max_object;
-externalref char                       **uil_widget_names;
-externalref int                                uil_max_arg;
-externalref char                       **uil_argument_names;
-externalref int                                uil_max_child;
-externalref char                       **uil_child_names;
-externalref int                                uil_max_reason;
-externalref char                       **uil_reason_names;
-externalref int                                uil_max_enumset;
-externalref int                                uil_max_enumval;
-externalref char                       **uil_enumval_names;
-externalref int                                uil_max_charset;
-externalref char                       **uil_charset_names;
-externalref unsigned short int         *related_argument_table;
-externalref unsigned char              **allowed_reason_table;
-externalref char                       **tok_token_name_table;
-externalref int                                tok_num_tokens;
-externalref char                       **uil_widget_funcs;
-externalref unsigned short int         *uil_gadget_variants;
-externalref unsigned short int         *uil_urm_nondialog_class;
-externalref unsigned short int         *uil_urm_subtree_resource;
-externalref char                       **uil_argument_toolkit_names;
-externalref char                       **uil_reason_toolkit_names;
-
-externalref unsigned short int         uil_sym_user_defined_object;
-externalref unsigned short int         uil_sym_default_charset;
-externalref unsigned short int         uil_sym_isolatin1_charset;
-
-externalref int                                uil_max_value;
-externalref char                       *uil_datatype_names[];
-
-
-#endif /* UilSymGl_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/uil/UilSymNam.c b/cde/osf/uil/UilSymNam.c
deleted file mode 100644 (file)
index 0d5be70..0000000
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSymNam.c /main/13 1997/09/08 11:12:50 cshi $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module inserts names into the name table.
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include "UilDefI.h"
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**  This routine searches for a name entry of the same name as its parameters.
-**  If the entry is found, a pointer to that name node is 
-**  returned as the value of the function.  If no entry is found, a NULL
-**  pointer is returned.
-**
-**  See sym_insert_name for a description of the name lookup alorithm.
-**
-**  FORMAL PARAMETERS:
-**
-**      l_length           length of the name not including the null
-**     c_text              pointer to a null terminated string for name
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_hash_table   the hash table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_hash_table   may be updated with an additional name
-**
-**  FUNCTION VALUE:
-**
-**      a pointer to a name entry
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-sym_name_entry_type 
-    *sym_find_name(l_length, c_text)
-
-int    l_length;       /* length of name to find */
-char   *c_text;        /* text of the name */
-
-{
-    sym_name_entry_type        *az_current_name;
-    int                        l_hash_code;
-    int                        l_compare_result;
-
-    /* obtain the hash code of for the name */
-
-    l_hash_code = hash_function( l_length, c_text );
-
-    /*
-    **  chain along hash chain looking for symbol - exit loop under 3 condition
-    **        1) come to the end of the chain: name not found
-    **        2) find symbol: return this symbol
-    **        3) find node > symbol: name not found
-    */
-
-    for (az_current_name = sym_az_hash_table[ l_hash_code ];
-        az_current_name != NULL;
-        az_current_name = az_current_name->az_next_name_entry)
-    {
-       l_compare_result = _compare(c_text, az_current_name->c_text);
-
-       if (l_compare_result == 0)      /* c_text = current name */
-       {
-           /* found the name we are looking for */
-
-           return az_current_name;
-       }
-
-       if (l_compare_result > 0)       /* c_text > current name */
-       {
-           /* return NULL - name should be before this spot in list */
-
-           return NULL;
-       }
-
-    }
-
-    /* came to end of the list without finding the name */
-
-    return NULL;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**  This routine searches for a name entry of the same name as its parameters.
-**  If the entry is found, a pointer to that name node is 
-**  returned as the value of the function.  If no entry is found, one is 
-**  inserted.  In this case the value of the function is a pointer to
-**  the name entry created.
-**
-**  Name entries are linked off of a hash table.  Those
-**  entries that have the same hash code, are sorted according to the
-**  collating sequence.  Thus the algorithm involves hashing the symbol and
-**  then following the chain for that hash code until one of the following
-**  conditions is met.  1) the identifier is found, then return a pointer
-**  to that name entry.  2) come to the end of the chain or a name
-**  entry that comes later in the collating sequence than the symbol being
-**  searched for.  In this case the name is inserted just prior to this
-**  point in the chain.
-**
-**  FORMAL PARAMETERS:
-**
-**      l_length           length of the name not including the null
-**     c_text              pointer to a null terminated string for name
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_hash_table   the hash table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_hash_table   may be updated with an additional name
-**
-**  FUNCTION VALUE:
-**
-**      a pointer to a name entry
-**
-**  SIDE EFFECTS:
-**
-**      may create a name entry and update the hash table
-**
-**--
-**/
-
-sym_name_entry_type *sym_insert_name(l_length, c_text)
-
-int    l_length;       /* length of name to insert */
-char   *c_text;        /* text of the name */
-
-{
-    sym_name_entry_type        *az_previous_name;
-    sym_name_entry_type        *az_current_name;
-    sym_name_entry_type        *az_new_name;
-    int                        l_hash_code;
-    int                        l_compare_result;
-
-    /*
-    **  algorithm keeps 2 pointers, one for the previous name and one
-    **  for the current name.  This permits easy insertion of a new name 
-    */
-
-
-    /* obtain the hash code of for the name */
-
-    l_hash_code = hash_function( l_length, c_text );
-
-    /*
-    **  chain along hash chain looking for symbol - exit loop under 3 condition
-    **        1) come to the end of the chain: insert new node on end
-    **        2) find symbol: return this symbol
-    **        3) find node > symbol: insert new node prior to current node
-    */
-
-    for (az_current_name = sym_az_hash_table[ l_hash_code ],
-        az_previous_name = NULL;
-
-        az_current_name != NULL;
-
-        az_previous_name = az_current_name,
-        az_current_name = az_current_name->az_next_name_entry)
-    {
-       l_compare_result = _compare(c_text, az_current_name->c_text);
-
-       if (l_compare_result == 0)      /* c_text = current name */
-       {
-           /* found the name we are looking for */
-
-           return az_current_name;
-       }
-
-       if (l_compare_result > 0)       /* c_text > current name */
-       {
-           /* exit the loop to insert just prior to current name */
-
-           goto insert_name;
-       }
-
-    }
-
-insert_name:
-
-    /*
-    ** name is not in the table so it must be inserted between the
-    **  az_previous_name and az_current_name entries.
-    */
-
-    /* allocate and initialize the name entry */
-
-    az_new_name = (sym_name_entry_type *)
-       sem_allocate_node (sym_k_name_entry, 
-                          sym_k_name_entry_size + l_length + 1);
-
-    az_new_name->header.b_type = l_length;     /* b_type holds length */
-    az_new_name->az_object = NULL;
-    az_new_name->az_cycle_id = 0;
-
-    _move( az_new_name->c_text, c_text, l_length+1 );
-
-    /*
-    **  link the name entry into the hash table
-    */
-
-    az_new_name->az_next_name_entry = az_current_name;
-
-    if (az_previous_name == NULL)
-       sym_az_hash_table[ l_hash_code ] = az_new_name;
-    else
-       az_previous_name->az_next_name_entry =
-                       (sym_name_entry_type *) az_new_name;
-
-    return az_new_name;
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure is a hashing function.  It takes a length and a
-**     pointer to a value.  Using this value as a string, the function
-**     returns an integer in the range of 0 to sym_k_hash_table_limit-1.
-**
-**  FORMAL PARAMETERS:
-**
-**      l_length           length of the value in bytes not including null
-**     c_value             a null terminated string 
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_k_hash_table_limit
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      integer (the hash code) in range 0 to sym_k_hash_table_limit-1
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-int    hash_function(l_length, c_value)
-
-int    l_length;
-char   *c_value;
-{
-#ifdef WORD64
-#define _shift 3
-    static unsigned int XmConst    mask[ 8 ] =
-                { 0x00000000000000FF, 0x000000000000FFFF,
-                  0x0000000000FFFFFF, 0x00000000FFFFFFFF,
-                  0x00000000FFFFFFFF, 0x0000FFFFFFFFFFFF,
-                  0x00FFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, };
-#elif defined (LONG64)
-    #define _shift 3
-    static long XmConst    mask[ 8 ] =
-                { 0x00000000000000FF, 0x000000000000FFFF,
-                  0x0000000000FFFFFF, 0x00000000FFFFFFFF,
-                  0x00000000FFFFFFFF, 0x0000FFFFFFFFFFFF,
-                  0x00FFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, };
-#else
-#define _shift 2
-    static unsigned int XmConst        mask[ 4 ] = 
-               { 0x000000FF, 0x0000FFFF, 0x00FFFFFF, 0xFFFFFFFF };
-#endif
-
-#ifdef LONG64
-    long                l_hash_code;
-    long                al_value[20];
-#else
-    int                 l_hash_code;
-    int                 al_value[20];
-#endif
-    int                        l_limit;
-    int                        l_extra;
-    int                        i;
-
-    l_limit = (l_length-1) >> _shift;  /* divide by wordsize */
-    l_extra = (l_length-1) & _slm;     /* remainder from divide by wordsize */
-
-#ifdef LONG64
-    bzero((char *)al_value, sizeof(long) * 20);
-#else
-    bzero((char *)al_value, sizeof(int) * 20);
-#endif
-    strncpy((char *)al_value, c_value, l_length);
-    l_hash_code = 0;
-
-    for (i = 0; i < l_limit; i++)
-    {
-       l_hash_code = l_hash_code ^ al_value[ i ];
-    }
-
-    l_hash_code = l_hash_code ^ (al_value[ i ] & mask[ l_extra ]);
-
-    return (int)(l_hash_code % sym_k_hash_table_limit);
-}
-
-\f
-#if debug_version
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This debugging routine will dump out the name entries linked
-**     from the hash table.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_hash_table
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      prints out the hash table
-**
-**--
-**/
-
-void   sym_dump_hash_table()
-{
-    int                i;
-    int                total_count;
-    int                max_length;
-    int                empty_count;
-
-    total_count = 0;
-    empty_count = 0;
-    max_length = 0;
-       
-    for (i=0;  i<sym_k_hash_table_limit;  i++)
-    {
-       int                 bucket_count;
-       sym_name_entry_type  *az_name;
-
-       bucket_count = 0;
-
-       for (az_name = sym_az_hash_table[ i ];  
-            az_name != NULL;  
-            az_name = az_name->az_next_name_entry)
-       {
-           bucket_count++;
-
-           _debug_output("\t %s \n", az_name->c_text);
-       }
-
-       total_count += bucket_count;
-       if (bucket_count == 0)
-           empty_count++;
-       max_length = ( max_length > bucket_count )? max_length : bucket_count;
-
-       _debug_output("bucket: %d length: %d\n", i, bucket_count);
-    }
-
-    _debug_output("name count: %d \n empty count: %d \n max length: %d",
-                  total_count, empty_count, max_length );
-}
-#endif
diff --git a/cde/osf/uil/UilSymStor.c b/cde/osf/uil/UilSymStor.c
deleted file mode 100644 (file)
index a5cb294..0000000
+++ /dev/null
@@ -1,1912 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: UilSymStor.c /main/15 1997/03/12 15:21:44 dbl $"
-#endif
-#endif
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This module contains the procedures for managing memory for
-**     the compiler. 
-**
-**--
-**/
-
-
-/*
-**
-**  INCLUDE FILES
-**
-**/
-
-#include <Xm/Xm.h>
-
-#include <ctype.h>
-#include "UilDefI.h"
-
-/*
-**
-**  DEFINE and MACRO DEFINITIONS
-**
-**/
-
-
-/*
-**
-**  EXTERNAL VARIABLE DECLARATIONS
-**
-**/
-
-
-/*
-**
-**  GLOBAL VARIABLE DECLARATIONS
-**
-**/
-
-externaldef(uil_comp_glbl) sym_name_entry_type
-       *sym_az_hash_table[ sym_k_hash_table_limit];
-externaldef(uil_comp_glbl) sym_value_entry_type
-       *sym_az_error_value_entry = NULL;
-externaldef(uil_comp_glbl) sym_external_def_entry_type
-       *sym_az_external_def_chain;
-externaldef(uil_comp_glbl) sym_forward_ref_entry_type
-       *sym_az_forward_ref_chain;
-externaldef(uil_comp_glbl) sym_val_forward_ref_entry_type
-       *sym_az_val_forward_ref_chain;
-externaldef(uil_comp_glbl) sym_module_entry_type
-       *sym_az_module_entry;
-externaldef(uil_comp_glbl) sym_root_entry_type
-       *sym_az_root_entry;
-externaldef(uil_comp_glbl) sym_section_entry_type
-       *sym_az_current_section_entry;
-externaldef(uil_comp_glbl) sym_entry_type
-       *sym_az_entry_list_header;
-
-/*
- * These lists save the allocated and freed symbol table nodes.
- */
-externaldef(uil_comp_glbl) URMPointerListPtr   sym_az_allocated_nodes;
-externaldef(uil_comp_glbl) URMPointerListPtr   sym_az_freed_nodes;
-
-
-/*
-**
-**  OWN VARIABLE DECLARATIONS
-**
-**/
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine intializes the compiler's memory allocation system.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**     sym_az_last_location            ptr to last byte avail for allocation
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      first symbol table buffer is allocated
-**
-**--
-**/
-
-void
-sym_initialize_storage(void)
-{
-int            i;
-
-
-/*
- * Initialize the name hash table
- */
-for (i=0; i<sym_k_hash_table_limit; i++)
-    sym_az_hash_table[ i ] = NULL;
-
-/* 
- * Set forward reference, external definition, and symbol table header
- * chains to null.
- */
-sym_az_forward_ref_chain = NULL;
-sym_az_val_forward_ref_chain = NULL;
-sym_az_external_def_chain = NULL;
-sym_az_entry_list_header = NULL;
-sym_az_module_entry = NULL;
-
-/*
- * Acquire pointer lists to access allocated and freed nodes
- */
-UrmPlistInit (1000, &sym_az_allocated_nodes);
-UrmPlistInit (100, &sym_az_freed_nodes);
-
-/*
- * Allocate a value entry for an error value and give it a name.  Giving it
- * name assures that it is not freed.  The name used is one that will not
- * conflict with a user name.
- */
-
-if ( sym_az_error_value_entry == NULL )
-    sym_az_error_value_entry = (sym_value_entry_type *)
-       sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
-
-sym_az_error_value_entry->b_type = sym_k_error_value;
-sym_az_error_value_entry->obj_header.b_flags = 
-    (sym_m_private | sym_m_builtin);
-
-sym_az_error_value_entry->obj_header.az_name =
-    sym_insert_name( 9, "#error...");
-
-}
-
-
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This routine cleans up the compiler's memory allocation system, and
-**     frees all memory used by the symbol table.
-**
-**  FORMAL PARAMETERS:
-**
-**      freealloc              TRUE if allocated nodes are to be freed.
-**                             Otherwise, free only freed nodes.
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_entry_list_header       ptr to list of symbol entries
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_entry_list_header       ptr to list of symbol entries
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**     all symbol table memory is freed.
-**
-**--
-**/
-
-void
-Uil_sym_cleanup_storage (boolean freealloc)
-{
-if ( freealloc )
-    if ( sym_az_allocated_nodes != NULL )
-       UrmPlistFreeContents (sym_az_allocated_nodes);
-else
-    if ( sym_az_freed_nodes != NULL )
-       UrmPlistFreeContents (sym_az_freed_nodes);
-if ( sym_az_allocated_nodes != NULL )
-    UrmPlistFree (sym_az_allocated_nodes);
-if ( sym_az_freed_nodes != NULL )
-    UrmPlistFree (sym_az_freed_nodes);
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine adds an object to the external definition chain.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_name                name of object to be placed on the chain
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_external_def_chain      head of the external definition chain
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_external_def_chain      head of the external definition chain
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void
-sym_make_external_def( XmConst sym_name_entry_type *az_name )
-
-
-{
-
-    sym_external_def_entry_type   *external_entry;
-
-    /* allocate an external definition entry */
-
-    external_entry = (sym_external_def_entry_type *)
-       sem_allocate_node (sym_k_external_def_entry,
-                          sym_k_external_def_entry_size);
-
-    /* fill in the entry */
-
-    external_entry->az_name = (sym_name_entry_type *)az_name;
-
-    /* place on the front of the chain */
-
-    external_entry->az_next_object = sym_az_external_def_chain;
-    sym_az_external_def_chain = external_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine adds a reference to the forward reference chain.
-**     This routine is used for widget and gadget forward references only.
-**     
-**
-**  FORMAL PARAMETERS:
-**
-**      az_id_frame    parse stack frame for id being referenced
-**     l_widget_type   type of object being referenced
-**      az_object      ptr to the location that needs to be updated
-**                     when the object is resolved
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_forward_ref_chain    head of the forward reference chain
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_forward_ref_chain    head of the forward reference chain
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void
-sym_make_forward_ref(XmConst yystype *az_id_frame,
-                    XmConst int     l_widget_type,
-                    XmConst char    *a_location)
-{
-
-    sym_forward_ref_entry_type   *fwd_ref_entry;
-
-    _assert( (az_id_frame->b_tag == sar_k_token_frame) &&
-            (az_id_frame->value.az_symbol_entry->header.b_tag == 
-               sym_k_name_entry), "arg1 not an id frame" );
-
-    /* allocate an external definition entry */
-
-    fwd_ref_entry = (sym_forward_ref_entry_type *)
-       sem_allocate_node (sym_k_forward_ref_entry,
-                          sym_k_forward_ref_entry_size);
-
-    /* fill in the entry */
-
-    _sar_save_source_pos (&fwd_ref_entry->header, az_id_frame);
-
-    fwd_ref_entry->header.b_type = l_widget_type;
-    fwd_ref_entry->az_name =
-       (sym_name_entry_type *) az_id_frame->value.az_symbol_entry;
-    fwd_ref_entry->a_update_location = (char *)a_location;
-
-    /* place on the front of the chain */
-
-    fwd_ref_entry->az_next_ref = sym_az_forward_ref_chain;
-    sym_az_forward_ref_chain = fwd_ref_entry;
-
-}
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This routine adds a reference to the values forward reference chain.
-**     This routine is used for value forward references only.
-**     
-**
-**  FORMAL PARAMETERS:
-**
-**      az_id_frame    parse stack frame for id being referenced
-**      az_object      ptr to the location that needs to be updated
-**                     when the object is resolved
-**
-**  IMPLICIT INPUTS:
-**
-**      sym_az_val_forward_ref_chain    head of the forward reference chain
-**
-**  IMPLICIT OUTPUTS:
-**
-**      sym_az_val_forward_ref_chain    head of the forward reference chain
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void
-sym_make_value_forward_ref (XmConst yystype  *az_value_frame,
-                           XmConst char *a_location,
-                           XmConst unsigned char fwd_ref_flags )
-
-{
-
-    sym_val_forward_ref_entry_type   *fwd_ref_entry;
-
-    /* allocate an external definition entry */
-
-    fwd_ref_entry = (sym_val_forward_ref_entry_type *)
-       sem_allocate_node (sym_k_val_forward_ref_entry,
-                          sym_k_val_forward_ref_entry_size);
-
-    /* fill in the entry */
-
-    _sar_save_source_pos (&fwd_ref_entry->header, az_value_frame);
-
-    switch (fwd_ref_flags)
-       {
-       case sym_k_patch_add:
-           fwd_ref_entry->az_name =
-               ((sym_value_entry_type *)
-                az_value_frame->value.az_symbol_entry)->obj_header.az_name;
-           break;
-       case sym_k_patch_list_add:
-           fwd_ref_entry->az_name = 
-               (sym_name_entry_type *)az_value_frame->value.az_symbol_entry;
-           break;
-       default:
-           _assert(FALSE, "Illegal forward reference");
-       };
-       
-    fwd_ref_entry->a_update_location = (char *)a_location;
-    fwd_ref_entry->fwd_ref_flags = fwd_ref_flags;
-
-    /* place on the front of the chain */
-
-    fwd_ref_entry->az_next_ref = sym_az_val_forward_ref_chain;
-    sym_az_val_forward_ref_chain = fwd_ref_entry;
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure recursively goes through the symbol table, dumping
-**     each node accessible from the root node.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbol table is dump with the debug output
-**
-**--
-**/
-
-void
-UilDumpSymbolTable ( sym_entry_type *node_entry )
-{
-
-sym_value_entry_type           *val_node;
-sym_widget_entry_type          *widget_node;
-sym_module_entry_type          *module_node;
-sym_list_entry_type            *list_node;
-sym_obj_entry_type             *list_entry;
-sym_root_entry_type            *root_node;
-sym_include_file_entry_type    *ifile_node;
-sym_section_entry_type         *section_node;
-
-
-/*
- * No action on null node. Else dump and processing is based on the kind
- * of the current node.
- */
-if ( node_entry == NULL ) return;
-sym_dump_symbol (node_entry);
-switch ( node_entry->header.b_tag )
-    {
-    case sym_k_value_entry:
-        val_node = (sym_value_entry_type *) node_entry;
-       UilDumpSymbolTable ((sym_entry_type *)val_node->az_charset_value);
-       UilDumpSymbolTable ((sym_entry_type *)val_node->az_first_table_value);
-       UilDumpSymbolTable ((sym_entry_type *)val_node->az_next_table_value);
-       UilDumpSymbolTable ((sym_entry_type *)val_node->az_exp_op1);
-       UilDumpSymbolTable ((sym_entry_type *)val_node->az_exp_op2);
-       break;
-    case sym_k_widget_entry:
-    case sym_k_gadget_entry:
-    case sym_k_child_entry:
-       widget_node = (sym_widget_entry_type *) node_entry;
-       UilDumpSymbolTable ((sym_entry_type *)widget_node->az_callbacks);
-       UilDumpSymbolTable ((sym_entry_type *)widget_node->az_arguments);
-       UilDumpSymbolTable ((sym_entry_type *)widget_node->az_controls);
-       UilDumpSymbolTable ((sym_entry_type *)widget_node->az_create_proc);
-       break;
-    case sym_k_module_entry:
-       module_node = (sym_module_entry_type *) node_entry;
-       UilDumpSymbolTable ((sym_entry_type *)module_node->az_version);
-       UilDumpSymbolTable ((sym_entry_type *)module_node->az_character_set);
-       UilDumpSymbolTable ((sym_entry_type *)module_node->az_case_sense);
-       UilDumpSymbolTable ((sym_entry_type *)module_node->az_def_obj);
-       break;
-    case sym_k_list_entry:
-       /*
-        * Sublists (nested lists) are not processed recursively to
-        * pick up definitions, since all named lists are picked up
-        * in their list sections. We assume no list of interest to
-        * us can possibly be encountered only in a nested list reference.
-        */
-       list_node = (sym_list_entry_type *) node_entry;
-       for (list_entry=(sym_obj_entry_type *)
-                list_node->obj_header.az_next;
-            list_entry!=NULL;
-            list_entry=(sym_obj_entry_type *)
-                list_entry->obj_header.az_next)
-           UilDumpSymbolTable ((sym_entry_type *)list_entry);
-       break;
-    case sym_k_root_entry:
-       root_node = (sym_root_entry_type *) node_entry;
-       UilDumpSymbolTable ((sym_entry_type *)root_node->module_hdr);
-       UilDumpSymbolTable ((sym_entry_type *)root_node->sections);
-       break;
-    case sym_k_include_file_entry:
-       ifile_node = (sym_include_file_entry_type *) node_entry;
-       UilDumpSymbolTable ((sym_entry_type *)ifile_node->sections);
-       break;
-    case sym_k_section_entry:
-       section_node = (sym_section_entry_type *) node_entry;
-       switch ( section_node->header.b_type )
-           {
-           case sym_k_section_tail:
-               break;
-           default:
-               UilDumpSymbolTable ((sym_entry_type *)section_node->next);
-               UilDumpSymbolTable ((sym_entry_type *)section_node->entries);
-               break;
-           }
-       break;
-    }
-
-}
-
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure dumps the symbol table.
-**
-**  FORMAL PARAMETERS:
-**
-**      none
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbol table is dump with the debug output
-**
-**--
-**/
-
-void
-sym_dump_symbols( void )
-{
-
-int                            ndx;
-sym_entry_type                 *cur_entry;
-
-
-/*
- * Loop over all entries which have been allocated. They are in
- * allocation order (this will include deleted entries).
- */
-_debug_output( "\nSymbol Table Dump: \n\n" );
-for ( ndx=0 ; ndx<UrmPlistNum(sym_az_allocated_nodes) ; ndx++ )
-    {
-    cur_entry = (sym_entry_type *) UrmPlistPtrN (sym_az_allocated_nodes, ndx);
-    sym_dump_symbol (cur_entry);
-    }
-_debug_output ("\n\n");
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure dumps a symbol node.
-**
-**  FORMAL PARAMETERS:
-**
-**      az_symbol_entry                        symbol node to be dumped
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbol is dumped to the debug output
-**
-**--
-**/
-
-void
-sym_dump_symbol (sym_entry_type *az_symbol_entry)
-{
-
-    switch (az_symbol_entry->header.b_tag) {
-
-       case sym_k_name_entry:
-               sym_dump_name((sym_name_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_module_entry:
-               sym_dump_module((sym_module_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_value_entry:
-               sym_dump_value((sym_value_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_widget_entry:
-       case sym_k_gadget_entry:
-       case sym_k_child_entry:
-               sym_dump_widget((sym_widget_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_forward_ref_entry:
-               sym_dump_forward_ref((sym_forward_ref_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_external_def_entry:
-               sym_dump_external_def((sym_external_def_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_proc_def_entry:
-               sym_dump_proc_def((sym_proc_def_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_proc_ref_entry:
-               sym_dump_proc_ref((sym_proc_ref_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_control_entry:
-               sym_dump_control((sym_control_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_argument_entry:
-               sym_dump_argument((sym_argument_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_callback_entry:
-               sym_dump_callback((sym_callback_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_list_entry:
-               sym_dump_list((sym_list_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_color_item_entry:
-               sym_dump_color_item((sym_color_item_entry_type *) az_symbol_entry );
-               break;
-
-       case sym_k_parent_list_entry:
-               sym_dump_parent_list_item((sym_parent_list_type *) az_symbol_entry );
-               break;
-
-       case sym_k_include_file_entry:
-               sym_dump_include_file ((sym_include_file_entry_type *)az_symbol_entry);
-               break;
-
-       case sym_k_section_entry:
-               sym_dump_section ((sym_section_entry_type *)az_symbol_entry);
-               break;
-
-       case sym_k_def_obj_entry:
-               sym_dump_object_variant ((sym_def_obj_entry_type *)az_symbol_entry);
-               break;
-
-       case sym_k_root_entry:
-               sym_dump_root_entry ((sym_root_entry_type *)az_symbol_entry);
-               break;
-
-       default:
-           {
-               int         *l_array;
-               int         i;
-
-               _debug_output("%x  unknown type: %d  size: %d  byte: %x\n", 
-                             az_symbol_entry,
-                             az_symbol_entry->header.b_tag,
-                             az_symbol_entry->header.w_node_size,
-                             az_symbol_entry->header.b_type );
-
-               l_array = (int *) az_symbol_entry->b_value;
-
-               for (i=0;  i<(int)(az_symbol_entry->header.w_node_size-1);  i++)
-                   _debug_output( "\t%x", l_array[ i ] );
-
-               _debug_output("\n");
-               break;
-           }
-       }
-
-    sym_dump_source_info(( sym_entry_header_type *)az_symbol_entry);
-    _debug_output("\n");
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps an object entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_widget_entry            pointer to the object
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the object appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_widget( XmConst sym_widget_entry_type *az_widget_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_widget_entry);
-
-    _debug_output (
-       "  %s %s  controls: %x  callbacks: %x  arguments: %x  parent_list: %x\n", 
-           diag_object_text( az_widget_entry->header.b_type),
-           diag_tag_text( az_widget_entry->header.b_tag ),
-           az_widget_entry->az_controls,
-           az_widget_entry->az_callbacks,
-           az_widget_entry->az_arguments,
-        az_widget_entry->parent_list);
-
-    if (az_widget_entry->az_create_proc != NULL) {
-       _debug_output ("  create proc: %x\n",
-                       az_widget_entry->az_create_proc);
-    }
-    /* preserve comments */
-    _debug_output ("\n Comment: %s\n", az_widget_entry->obj_header.az_comment);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps an argument entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_argument_entry      pointer to the argument
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_argument( XmConst sym_argument_entry_type *az_argument_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_argument_entry);
-
-    _debug_output ( "  arg name: %x  arg value: %x\n", 
-       az_argument_entry->az_arg_name,
-       az_argument_entry->az_arg_value );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a control entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_control_entry       pointer to the control
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_control( XmConst sym_control_entry_type *az_control_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_control_entry);
-
-/*    These are for control objects only.     */
-
-    if (az_control_entry->obj_header.b_flags & sym_m_def_in_progress) {
-       _debug_output ("  def in progress");
-    }
-
-    if (az_control_entry->obj_header.b_flags & sym_m_managed) {
-       _debug_output ("  managed");
-    } else {
-       _debug_output ("  unmanaged");
-    }
-
-    _debug_output ( "  obj: %x\n", 
-       az_control_entry->az_con_obj );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a callback entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_callback_entry      pointer to the callback
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_callback( XmConst sym_callback_entry_type *az_callback_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_callback_entry);
-
-    _debug_output ( "  reason name: %x  proc ref: %x  proc ref list: %x\n", 
-       az_callback_entry->az_call_reason_name,
-       az_callback_entry->az_call_proc_ref,
-    az_callback_entry->az_call_proc_ref_list );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a  list entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_list_entry  pointer to the list
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_list( XmConst sym_list_entry_type *az_list_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_list_entry);
-
-    _debug_output ( "  type: %s  count: %d  gadget count: %d\n", 
-       diag_tag_text( az_list_entry->header.b_type),
-       az_list_entry->w_count,
-       az_list_entry->w_gadget_count );
-
-    /* preserve comments */
-    _debug_output ("\n Comment: %s\n", az_list_entry->obj_header.az_comment);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a name entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_name_entry      pointer to the name
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_name( XmConst sym_name_entry_type *az_name_entry )
-{
-
-    _debug_output
-       ( "%x name size: %d  next name: %x  object: %x",
-         az_name_entry,
-         az_name_entry->header.w_node_size,
-         az_name_entry->az_next_name_entry,
-         az_name_entry->az_object );
-
-    if (az_name_entry->b_flags & sym_m_referenced) {
-       _debug_output (" referenced");
-    }
-
-    _debug_output
-       ( "  name: %s \n", az_name_entry->c_text );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a module entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_module_entry            pointer to the module
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the module appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_module( XmConst sym_module_entry_type *az_module_entry )
-{
-
-    _debug_output
-       ( "%x module size: %d  name: %x  version: %x \n",
-         az_module_entry,
-         az_module_entry->header.w_node_size,
-         az_module_entry->obj_header.az_name,
-         az_module_entry->az_version );
-
-    /* preserve comments */
-    _debug_output ("\n Comment: %s\n", az_module_entry->obj_header.az_comment);
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a color item entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_color_item_entry        pointer to the color_item
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the color item appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_color_item( XmConst sym_color_item_entry_type *az_color_item_entry )
-{
-
-    _debug_output
-       ( "%x color_item  size: %d  letter: %c  index: %d  color: %x  next: %x\n",
-         az_color_item_entry,
-         az_color_item_entry->header.w_node_size,
-         az_color_item_entry->b_letter,
-         az_color_item_entry->b_index,
-         az_color_item_entry->az_color,
-         az_color_item_entry->az_next );
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a parent_list entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_parent_list_item        pointer to the parent list entry
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      none
-**
-**--
-**/
-
-void
-sym_dump_parent_list_item ( XmConst sym_parent_list_type *az_parent_list_item )
-{
-    _debug_output
-       ( "%x parent_list  size: %d  parent: %x  next: %x \n",
-         az_parent_list_item,
-      az_parent_list_item->header.w_node_size,
-      az_parent_list_item->parent,
-      az_parent_list_item->next);
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps an external definition entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_external_def_entry  pointer to the external definition
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_external_def(
-                   XmConst sym_external_def_entry_type *az_external_def_entry)
-{
-
-    _debug_output
-       ( "%x external def  size: %d  next external: %x  object: %x \n",
-         az_external_def_entry,
-         az_external_def_entry->header.w_node_size,
-         az_external_def_entry->az_next_object,
-         az_external_def_entry->az_name );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a procedure definition entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_proc_def_entry      pointer to the procedure definition
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the procedure definition appears as 
-**     part of the debug output
-**
-**--
-**/
-
-void
-sym_dump_proc_def( XmConst sym_proc_def_entry_type *az_proc_def_entry )
-{
-
-    char    *private_flag;
-    char    *imported_flag;
-    char    *exported_flag;
-    char    *checking_flag;
-
-    private_flag = "";
-    imported_flag = "";
-    exported_flag = "";
-    checking_flag = " no-check";
-
-    if (az_proc_def_entry->v_arg_checking)
-       checking_flag = " check";       
-    if (az_proc_def_entry->obj_header.b_flags & sym_m_private)
-       private_flag = " private";      
-    if (az_proc_def_entry->obj_header.b_flags & sym_m_exported)
-       exported_flag = " exported";    
-    if (az_proc_def_entry->obj_header.b_flags & sym_m_imported)
-       imported_flag = " imported";    
-
-    _debug_output
-       ( "%x proc def  size: %d  name: %x %s%s%s%s  count: %d  %s\n",
-         az_proc_def_entry,
-         az_proc_def_entry->header.w_node_size,
-         az_proc_def_entry->obj_header.az_name,
-         checking_flag,
-         private_flag,
-         exported_flag,
-         imported_flag,
-         az_proc_def_entry->b_arg_count,
-         diag_value_text( az_proc_def_entry->b_arg_type ) );
-
-    /* preserve comments */
-    _debug_output ("\nComment: %s\n",az_proc_def_entry->obj_header.az_comment);
-
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a procedure reference entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_proc_ref_entry      pointer to the procedure reference entry
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the procedure reference appears as 
-**     part of the debug output
-**
-**--
-**/
-
-void
-sym_dump_proc_ref( XmConst sym_proc_ref_entry_type *az_proc_ref_entry )
-{
-
-    sym_dump_obj_header ((sym_obj_entry_type *)az_proc_ref_entry);
-
-    _debug_output
-       ( "%x proc ref  size: %d  proc def: %x  value: %x\n",
-         az_proc_ref_entry,
-         az_proc_ref_entry->header.w_node_size,
-         az_proc_ref_entry->az_proc_def,
-         az_proc_ref_entry->az_arg_value );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps an forward reference entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_forward_ref_entry   pointer to the forward reference
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the name appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_forward_ref(XmConst sym_forward_ref_entry_type *az_forward_ref_entry)
-{
-
-    _debug_output
-       ( "%x forward ref  size: %d  next ref: %x  location: %x  %s  parent: %x\n",
-         az_forward_ref_entry,
-         az_forward_ref_entry->header.w_node_size,
-         az_forward_ref_entry->az_next_ref,
-         az_forward_ref_entry->a_update_location,
-         diag_object_text( az_forward_ref_entry->header.b_type ),
-      az_forward_ref_entry->parent );
-
-    _debug_output
-       ( "  name: %x %s\n",
-         az_forward_ref_entry->az_name,
-         az_forward_ref_entry->az_name->c_text );
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function dumps a value entry in the symbol table
-**
-**  FORMAL PARAMETERS:
-**
-**      az_value_entry     pointer to the value
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      symbolic representation of the value appears as part of the
-**     debug output
-**
-**--
-**/
-
-void
-sym_dump_value( XmConst sym_value_entry_type *az_value_entry )
-{
-
-    char    *private_flag;
-    char    *imported_flag;
-    char    *exported_flag;
-    char    *builtin_flag;
-    char    *special_type, *table_type;
-
-    private_flag = "";
-    imported_flag = "";
-    exported_flag = "";
-    builtin_flag = "";
-
-    if (az_value_entry->obj_header.b_flags & sym_m_builtin)
-       builtin_flag = " builtin";      
-    if (az_value_entry->obj_header.b_flags & sym_m_private)
-       private_flag = " private";      
-    if (az_value_entry->obj_header.b_flags & sym_m_exported)
-       exported_flag = " exported";    
-    if (az_value_entry->obj_header.b_flags & sym_m_imported)
-       imported_flag = " imported";    
-
-    _debug_output
-       ( "%x value  size: %d  name: %x  %s%s%s%s",
-         az_value_entry,
-         az_value_entry->header.w_node_size,
-         az_value_entry->obj_header.az_name,
-         builtin_flag, private_flag, exported_flag, imported_flag );
-
-    if (az_value_entry->obj_header.b_flags & sym_m_imported)
-    {
-       _debug_output( "  %s \n", diag_value_text( az_value_entry->b_type ));
-       return;
-    }
-
-    switch (az_value_entry->b_type)
-    {
-    case sym_k_integer_value:
-    case sym_k_horizontal_integer_value:
-    case sym_k_vertical_integer_value:
-       _debug_output("  integer: %d \n", 
-                     az_value_entry->value.l_integer );
-       break;
-
-    case sym_k_bool_value:
-       _debug_output("  boolean: %d \n", 
-                     az_value_entry->value.l_integer );
-       break;
-
-    case sym_k_float_value:
-    case sym_k_horizontal_float_value:
-    case sym_k_vertical_float_value:
-       _debug_output("  double: %g \n", 
-                     az_value_entry->value.d_real);
-       break;
-
-    case sym_k_color_value:
-    {
-       char    *ptr;
-
-       switch (az_value_entry->b_arg_type)
-       {
-       case sym_k_background_color:
-               ptr = "background";
-               break;
-       case sym_k_foreground_color:
-               ptr = "foreground";
-               break;
-       case sym_k_unspecified_color:
-               ptr = "unspecified";
-               break;
-       default:
-               ptr = "illegal";
-       }
-
-       _debug_output("  color  type: %s", ptr );
-
-       output_text( az_value_entry->w_length, 
-                    az_value_entry->value.c_value);
-
-       break;
-    }
-
-    case sym_k_reason_value:
-       special_type = "reason";
-       goto common_special_type;
-
-    case sym_k_argument_value:
-       special_type = "argument";
-
-common_special_type:
-
-       _debug_output("  %s", special_type );
-
-       if (az_value_entry->obj_header.b_flags & sym_m_builtin)
-           _debug_output("  code: %d \n", az_value_entry->value.l_integer );
-       else
-           output_text( az_value_entry->w_length, 
-                        az_value_entry->value.c_value);
-
-       break;
-
-    case sym_k_compound_string_value:
-       _debug_output("  compound string\n  first component: %x\n", 
-                     az_value_entry->az_first_table_value );
-
-       if ( (az_value_entry->b_aux_flags & sym_m_table_entry) != 0 ) {
-           _debug_output("  next table entry: %x",
-                         az_value_entry->az_next_table_value);
-       }
-
-       break;
-
-
-    case sym_k_font_value:
-    case sym_k_fontset_value:
-       if (az_value_entry->b_charset != sym_k_userdefined_charset) 
-           _debug_output("  font  charset: %s", 
-                         diag_charset_text( az_value_entry->b_charset ) );
-       else
-           _debug_output("  font  charset: userdefined(%x)", 
-                         diag_charset_text( (long)az_value_entry->az_charset_value ) );
-
-       goto check_for_table_value;
-
-
-      case sym_k_char_8_value:
-      case sym_k_localized_string_value:
-       if (az_value_entry->b_charset != sym_k_userdefined_charset) 
-           switch ( az_value_entry->b_direction )
-               {
-               case XmSTRING_DIRECTION_L_TO_R:
-                   _debug_output
-                       ("  string length: %d\n  charset: %s  L_TO_R", 
-                         az_value_entry->w_length,
-                         diag_charset_text(
-                             az_value_entry->b_charset ));
-                   break;
-               case XmSTRING_DIRECTION_R_TO_L:
-                   _debug_output
-                       ("  string length: %d\n  charset: %s  R_TO_L", 
-                         az_value_entry->w_length,
-                         diag_charset_text(
-                             az_value_entry->b_charset ));
-                   break;
-               }
-       else
-           switch ( az_value_entry->b_direction )
-               {
-               case XmSTRING_DIRECTION_L_TO_R:
-                   _debug_output
-                       ("  string length: %d\n  charset: userdefined(%x)  L_TO_R", 
-                         az_value_entry->w_length,
-                         az_value_entry->az_charset_value);
-                   break;
-               case XmSTRING_DIRECTION_R_TO_L:
-                   _debug_output
-                       ("  string length: %d\n  charset: userdefined(%x)  R_TO_L", 
-                         az_value_entry->w_length,
-                         az_value_entry->az_charset_value);
-                   break;
-               }
-
-/*     See if this is an entry in a table.     */
-check_for_table_value:
-
-       if ( (az_value_entry->b_aux_flags & sym_m_table_entry) != 0 ) {
-           _debug_output("  next table entry: %x",
-                         az_value_entry->az_next_table_value);
-       }
-
-       output_text
-           ( az_value_entry->w_length, az_value_entry->value.c_value );
-
-       break;
-
-    case sym_k_identifier_value:
-       _debug_output("  identifier: %s", az_value_entry->value.c_value );
-
-       break;
-
-    case sym_k_icon_value:
-       _debug_output("  icon  width: %d  height: %d  colors: %x  rows: %x \n", 
-                     az_value_entry->value.z_icon->w_width,
-                     az_value_entry->value.z_icon->w_height,
-                     az_value_entry->value.z_icon->az_color_table,
-                     az_value_entry->value.z_icon->az_rows );
-
-       break;
-
-    case sym_k_string_table_value:
-       table_type = "string table";
-       goto common_table;
-
-    case sym_k_font_table_value:
-       table_type = "font table";
-       goto common_table;
-
-    case sym_k_trans_table_value:
-       table_type = "translation table";
-
-common_table:
-
-       _debug_output("  %s  first table entry: %x\n",
-               table_type, az_value_entry->az_first_table_value);
-
-       break;
-
-    case sym_k_color_table_value:
-    {
-       int     index;
-
-       _debug_output("  color_table  count: %d  max_index: %d \n",
-                     az_value_entry->b_table_count,
-                     az_value_entry->b_max_index );
-
-        for (index = 0;  index < (int)az_value_entry->b_table_count;  index++)
-       {
-
-           _debug_output( "    letter: %c  index: %d  color: %x\n",
-                          az_value_entry->value.z_color[index].b_letter,
-                          az_value_entry->value.z_color[index].b_index,
-                          az_value_entry->value.z_color[index].az_color );
-       }
-
-       break;
-    }
-
-    case sym_k_error_value:
-       _debug_output("  error \n");
-
-       break;
-
-    default:
-       _debug_output(" unknown type: %d \n", az_value_entry->b_type );
-    }
-
-    /* preserve comments */
-    _debug_output ("\nComment: %s\n",az_value_entry->obj_header.az_comment);
-
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This function will output an arbitrarily long amount of text
-**     with the debug output.
-**
-**  FORMAL PARAMETERS:
-**
-**      length     length of the text
-**     text        pointer to the text
-**
-**  IMPLICIT INPUTS:
-**
-**      none
-**
-**  IMPLICIT OUTPUTS:
-**
-**      none
-**
-**  FUNCTION VALUE:
-**
-**      void
-**
-**  SIDE EFFECTS:
-**
-**      text is placed in the debug output
-**
-**--
-**/
-
-void
-output_text(XmConst int length, XmConst char *text)
-{
-
-    char               c_buffer[ 71 ];
-    XmConst char       *c_ptr;
-    int                        l_length;
-
-    l_length = length;
-
-    _debug_output( "\n" );
-
-    for (c_ptr = text;  
-
-        l_length > 0;  
-
-        l_length -= 70,
-        c_ptr += 70)
-    {
-       int     last;
-       int     i;
-
-       last = ( l_length > 70)? 70: l_length;
-
-       _move( c_buffer, c_ptr, last );
-
-       for (i=0;  i<last;  i++)
-       {
-           if (iscntrl( c_buffer[ i ] ))
-               c_buffer[ i ] = '.';
-       }
-
-       c_buffer[ last ] = 0;                   
-       _debug_output( "    \"%s\"\n", c_buffer );
-    }
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**     This procedure dumps the source information in the header of symbol
-**     entries.
-**
-**  FORMAL PARAMETERS:
-**
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  SIDE EFFECTS:
-**
-**
-**--
-**/
-void
-sym_dump_source_info (sym_entry_header_type *hdr)
-{
-    src_source_record_type *src_rec;
-
-    src_rec = hdr->az_src_rec;
-
-    if (src_rec != NULL)
-       _debug_output ("  Source position:      file %d, line %d, columns %d through %d\n",
-               src_rec->b_file_number,
-               src_rec->w_line_number,
-               hdr->b_src_pos,
-               hdr->b_end_pos);
-    else
-       _debug_output ("  Src source record not present.\n");
-
-}
-
-\f
-/*
-**++
-**  FUNCTIONAL DESCRIPTION:
-**
-**      This procedure dumps the common header of "object" entries.
-**
-**  FORMAL PARAMETERS:
-**
-**
-**  IMPLICIT INPUTS:
-**
-**
-**  IMPLICIT OUTPUTS:
-**
-**
-**  SIDE EFFECTS:
-**
-**
-**--
-**/
-
-void
-sym_dump_obj_header (XmConst sym_obj_entry_type *az_obj_entry)
-{
-
-    _debug_output
-       ( "%x %s  size: %d  \n",
-         az_obj_entry,
-         diag_tag_text (az_obj_entry->header.b_tag),
-         az_obj_entry->header.w_node_size);
-
-    if (az_obj_entry->obj_header.az_name != NULL) {
-       _debug_output ("  name: %x", az_obj_entry->obj_header.az_name);
-    }
-
-    if (az_obj_entry->obj_header.az_reference != NULL) {
-       _debug_output ("  reference: %x",
-                       az_obj_entry->obj_header.az_reference);
-    }
-
-    if (az_obj_entry->obj_header.az_next != NULL) {
-       _debug_output ("  next: %x", az_obj_entry->obj_header.az_next);
-    }
-
-    if (az_obj_entry->obj_header.b_flags & sym_m_private) {
-       _debug_output (" private");
-    }
-
-    if (az_obj_entry->obj_header.b_flags & sym_m_exported) {
-       _debug_output (" exported");
-    }
-
-    if (az_obj_entry->obj_header.b_flags & sym_m_imported) {
-       _debug_output (" imported");
-    }
-
-    _debug_output ("\n");
-}
-
-
-\f
-void
-sym_dump_include_file ( sym_include_file_entry_type *az_symbol_entry )
-{
-
-    _debug_output ("%x  include file  file name: %s  full file name: %s\n",
-       az_symbol_entry,
-       az_symbol_entry->file_name, az_symbol_entry->full_file_name);
-
-}
-
-
-\f
-void
-sym_dump_section ( sym_section_entry_type *az_symbol_entry )
-{
-    _debug_output ("%x  %s section  prev section : %x  next section: %x  entries: %x\n",
-       az_symbol_entry,
-       sym_section_text(az_symbol_entry->header.b_type),
-       az_symbol_entry->prev_section, az_symbol_entry->next, 
-       az_symbol_entry->entries);
-
-}
-
-
-\f
-void
-sym_dump_object_variant ( sym_def_obj_entry_type * az_symbol_entry )
-{
-    _debug_output ("%x  default obj var  next: %x  object info: %d, variant_info: %d\n",
-       az_symbol_entry,
-       az_symbol_entry->next, az_symbol_entry->b_object_info, 
-       az_symbol_entry->b_variant_info);
-}
-
-
-\f
-void
-sym_dump_root_entry ( sym_root_entry_type *az_symbol_entry )
-{
-    _debug_output (  "%x  root  tag: %d  module: %x  sections: %x\n  module tail: ",
-       az_symbol_entry,
-       az_symbol_entry->header.b_tag,
-       az_symbol_entry->module_hdr,
-       az_symbol_entry->sections);
-}
-
-
-\f
-char *
-sym_section_text (int b_type)
-{
-    switch (b_type)
-    {
-       case 0:
-           return "";
-       case sym_k_list_section:
-           return "list";
-       case sym_k_procedure_section:
-           return "procedure";
-       case sym_k_value_section:
-           return "value";
-       case sym_k_identifier_section:
-           return "identifier";
-       case sym_k_object_section:
-           return "object";
-       case sym_k_include_section:
-           return "include";
-       case sym_k_section_tail:
-           return "tail";
-       default:
-           return "*unknown*";
-    }
-}
-
-
-
diff --git a/cde/osf/uil/XmAppl.uil b/cde/osf/uil/XmAppl.uil
deleted file mode 100644 (file)
index 1237d7b..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-! 
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! 
-! HISTORY
-! 
-!   $XConsortium: XmAppl.uil /main/11 1995/07/14 09:39:39 drk $
-!  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
-!******************************************************************************
-!++
-! FACILITY:
-! 
-!      UIL -- Include file for Xm constant definitions.
-! 
-! ABSTRACT:
-! 
-!      This include file contains UIL value definintions corresponding 
-!      to those defined in Xm.h
-! 
-!--
-
-/* Version information */
-value  XmVERSION :                     2;
-value  XmREVISION :                    0;
-value  XmVersion :                     (XmVERSION * 1000 + XmREVISION);
-
-
-/* XmString definitions */
-
-value  XmSTRING_DIRECTION_REVERT :     2;
-value  XmSTRING_COMPONENT_UNKNOWN :    0;
-value  XmSTRING_COMPONENT_CHARSET :    1;
-value  XmSTRING_COMPONENT_TEXT :       2;
-value  XmSTRING_COMPONENT_DIRECTION :  3;
-value  XmSTRING_COMPONENT_SEPARATOR :  4;      /* 5-125 reserved */
-
-value  XmSTRING_COMPONENT_END :        126;    /* no more comp in string */
-
-value  XmSTRING_COMPOUND_STRING  :     127;    /* tag for whole TCS */
-
-value  XmSTRING_COMPONENT_USER_BEGIN : 128;    /* 128-255 are user tags */
-value  XmSTRING_COMPONENT_USER_END :   255;
-
-
-/*  Callback reasons */
-
-value  XmCR_NONE :                     0;
-value  XmCR_HELP :                     1;
-value  XmCR_VALUE_CHANGED :            2;
-value  XmCR_INCREMENT :                3;
-value  XmCR_DECREMENT :                4;
-value  XmCR_PAGE_INCREMENT :           5;
-value  XmCR_PAGE_DECREMENT :           6;
-value  XmCR_TO_TOP :                   7;
-value  XmCR_TO_BOTTOM :                8;
-value  XmCR_DRAG :                     9;
-value  XmCR_ACTIVATE :                 10;
-value  XmCR_ARM :                      11;
-value  XmCR_DISARM :                   12;
-value  XmCR_MAP        :               16;
-value  XmCR_UNMAP   :                  17;
-value  XmCR_FOCUS :                    18;
-value  XmCR_LOSING_FOCUS :             19;
-value  XmCR_MODIFYING_TEXT_VALUE :     20;
-value  XmCR_MOVING_INSERT_CURSOR :     21;
-value  XmCR_EXECUTE :                  22;
-value  XmCR_SINGLE_SELECT :            23;
-value  XmCR_MULTIPLE_SELECT :          24;
-value  XmCR_EXTENDED_SELECT :          25;
-value  XmCR_BROWSE_SELECT :            26;
-value  XmCR_DEFAULT_ACTION :           27;
-value  XmCR_CLIPBOARD_DATA_REQUEST :   28;
-value  XmCR_CLIPBOARD_DATA_DELETE :    29;
-value  XmCR_CASCADING :                30;
-value  XmCR_OK :                       31;
-value  XmCR_ENTER :                    31;
-value  XmCR_CANCEL :                   32;
-value  XmCR_APPLY :                    34;
-value  XmCR_NO_MATCH :                 35;
-value  XmCR_COMMAND_ENTERED :          36;
-value  XmCR_COMMAND_CHANGED :          37;
-value  XmCR_EXPOSE :                   38;
-value  XmCR_RESIZE :                   39;
-value  XmCR_INPUT :                    40;
diff --git a/cde/osf/uil/libUil.elist b/cde/osf/uil/libUil.elist
deleted file mode 100644 (file)
index 0d373a9..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-/* $TOG: libUil.elist /main/4 1999/10/15 12:00:56 mgreess $ */
-
-/*************************************************************************
- * Export list for libUil
- * This list *must* be updated whenever a change is made to the libUil API.
- * 
- * The syntax for the symbol declarations in this list is as follows:
- *     public       sym => Public   C   symbol, i.e., publicized API
- *     private      sym => Private  C   symbol, i.e., unpublicized API
- *     internal     sym => Internal C   symbol, i.e., not part of API
- *  
- **************************************************************************/
-
-
-/**************************************************************************
- * libUil public symbols -- available to developers 
- **************************************************************************/
-
-public Uil
-public UilDumpSymbolTable
-
-public allowed_argument_table
-public allowed_child_table
-public allowed_control_table
-public allowed_reason_table
-public argument_enumset_table
-public argument_type_table
-public charset_character_size_table
-public charset_lang_codes_table
-public charset_lang_names_table
-public charset_lang_table_max
-public charset_parsing_direction_table
-public charset_writing_direction_table
-public charset_xmstring_names_table
-public child_class_table
-public constraint_tab
-public enum_set_table
-public enumval_values_table
-public key_k_keyword_count
-public key_k_keyword_max_length
-public key_table
-public key_table_case_ins
-public related_argument_table
-public tok_num_tokens
-public tok_token_name_table
-public uil_argument_names
-public uil_argument_toolkit_names
-public uil_charset_names
-public uil_child_names
-public uil_datatype_names
-public uil_enumval_names
-public uil_gadget_variants
-public uil_max_arg
-public uil_max_charset
-public uil_max_child
-public uil_max_enumset
-public uil_max_enumval
-public uil_max_object
-public uil_max_reason
-public uil_max_value
-public uil_reason_names
-public uil_reason_toolkit_names
-public uil_sym_default_charset
-public uil_sym_isolatin1_charset
-public uil_sym_user_defined_object
-public uil_urm_nondialog_class
-public uil_urm_subtree_resource
-public uil_widget_funcs
-public uil_widget_names
-
-
-/********************************************************************
- * libUil private symbols -- Undocumented APIs that are exported 
- *     for backward compatibilty.
- ********************************************************************/
-
-
-/********************************************************************
- * libUil internal symbols -- not to be used outside the library.
- ********************************************************************/
-
-internal Uil_characters_read
-internal Uil_cmd_z_command
-internal Uil_compile_desc_ptr
-internal Uil_current_file
-#if !defined(__hpux)
-internal Uil_file_size
-#endif
-internal Uil_lex_az_charset_entry
-internal Uil_lex_az_literal_charset
-internal Uil_lex_cleanup_analyzer
-internal Uil_lex_l_charset_specified
-internal Uil_lex_l_literal_charset
-internal Uil_lex_l_localized
-internal Uil_lex_l_user_default_charset
-internal Uil_lines_processed
-internal Uil_lst_c_title2
-internal Uil_lst_cleanup_listing
-internal Uil_message_count
-internal Uil_percent_complete
-internal Uil_src_cleanup_source
-internal Uil_sym_cleanup_storage
-internal Urm_code_from_uil_type
-internal access_from_code
-internal class_name_from_code
-internal close_source_file
-internal cmd_decode_command_line
-internal comment_size
-internal comment_text
-internal compute_color_table_size
-internal compute_icon_size
-internal compute_list_size
-internal count_proc
-internal create_color_table
-internal create_ext_compression_codes
-internal create_icon
-internal create_int_compression_codes
-internal create_listing_file
-internal create_str_entry
-internal current_time
-internal cvt_ascii_to_long
-internal db_incorporate
-internal db_open_file
-internal db_read_char_table
-internal db_read_int_and_shorts
-internal db_read_ints_and_string
-internal db_read_length_and_string
-internal diag_charset_text
-internal diag_get_message_abbrev
-internal diag_handler
-internal diag_initialize_diagnostics
-internal diag_issue_diagnostic
-internal diag_issue_internal_error
-internal diag_issue_summary
-internal diag_object_text
-internal diag_report_status
-internal diag_reset_overflow_handler
-internal diag_restore_diagnostics
-internal diag_rz_msg_table
-internal diag_store_handlers
-internal diag_tag_text
-internal diag_value_text
-internal emit_argument
-internal emit_callback
-internal emit_callback_procedures
-internal emit_control
-internal extract_create_callback
-internal extract_subtree_control
-internal format_arg_value
-internal get_line
-internal get_root_dir_name
-internal group_from_code
-internal gz_yynullval
-internal hash_function
-internal init_wmd_path
-internal issue_control_char_diagnostic
-internal issue_urm_error
-internal key_find_keyword
-internal key_initialize
-internal lex_filter_unprintable_chars
-internal lex_initialize_analyzer
-internal lex_issue_error
-internal lst_debug_output
-internal lst_open_listing
-internal lst_output_line
-internal lst_output_listing
-internal lst_output_machine_code
-internal lst_output_message_ptr_line
-internal lst_output_messages
-internal module_clauses
-internal msg0
-internal msg1
-internal msg10
-internal msg11
-internal msg12
-internal msg13
-internal msg14
-internal msg15
-internal msg16
-internal msg17
-internal msg18
-internal msg19
-internal msg2
-internal msg20
-internal msg21
-internal msg22
-internal msg23
-internal msg24
-internal msg25
-internal msg26
-internal msg27
-internal msg28
-internal msg29
-internal msg3
-internal msg30
-internal msg31
-internal msg32
-internal msg33
-internal msg34
-internal msg35
-internal msg36
-internal msg37
-internal msg38
-internal msg39
-internal msg4
-internal msg40
-internal msg41
-internal msg42
-internal msg43
-internal msg44
-internal msg45
-internal msg46
-internal msg47
-internal msg48
-internal msg49
-internal msg5
-internal msg50
-internal msg51
-internal msg52
-internal msg53
-internal msg54
-internal msg55
-internal msg56
-internal msg57
-internal msg58
-internal msg59
-internal msg6
-internal msg60
-internal msg61
-internal msg62
-internal msg63
-internal msg64
-internal msg65
-internal msg66
-internal msg67
-internal msg68
-internal msg69
-internal msg7
-internal msg70
-internal msg71
-internal msg72
-internal msg73
-internal msg74
-internal msg75
-internal msg76
-internal msg77
-internal msg78
-internal msg79
-internal msg8
-internal msg80
-internal msg9
-internal msg_cat_table
-internal off_get
-internal off_put
-internal open_source_file
-internal out_az_idbfile_id
-internal out_emit_value
-internal out_emit_widget
-internal output_text
-internal parent_list_traverse
-internal pop
-#if !defined(__hpux)
-internal prev_yylval
-#endif
-internal process_all_arguments
-internal process_all_callbacks
-internal process_all_controls
-internal push
-internal ref_control
-internal ref_value
-internal reget_line
-internal resource_name_from_code
-internal sar_add_forward_list_entry
-internal sar_add_list_entry
-internal sar_append_color_item
-internal sar_append_table_value
-internal sar_assoc_comment
-internal sar_binary_op
-internal sar_bind_value_name
-internal sar_cat_value
-internal sar_cat_value_entry
-internal sar_charset_verify
-internal sar_chk_charset_attr
-internal sar_chk_comp_str_attr
-internal sar_create_child
-internal sar_create_identifier
-internal sar_create_module
-internal sar_create_object
-internal sar_create_procedure
-internal sar_create_root
-internal sar_get_units_type
-internal sar_import_value_entry
-internal sar_include_file
-internal sar_initialize
-internal sar_link_section
-internal sar_make_charset
-internal sar_make_color
-internal sar_make_color_item
-internal sar_make_color_table
-internal sar_make_comp_str
-internal sar_make_comp_str_comp
-internal sar_make_def_obj
-internal sar_make_fallback_charset
-internal sar_make_font
-internal sar_make_font_item
-internal sar_make_font_table
-internal sar_make_fontset
-internal sar_make_icon
-internal sar_make_private_value
-internal sar_make_rgb_private_value
-internal sar_make_wchar_str
-internal sar_map_keyword_to_name
-internal sar_object_reference
-internal sar_private_error
-internal sar_process_id
-internal sar_process_id_ref
-internal sar_process_module_charset
-internal sar_process_module_sensitivity
-internal sar_process_module_variant
-internal sar_process_module_version
-internal sar_process_proc_ref
-internal sar_save_argument_pair
-internal sar_save_control_item
-internal sar_save_control_widget
-internal sar_save_feature
-internal sar_save_list_end
-internal sar_save_module_source
-internal sar_save_reason_binding
-internal sar_save_section_source
-internal sar_save_src_entry_end
-internal sar_save_src_semicolon_pos
-internal sar_save_user_proc_ref_src
-internal sar_set_list_type
-internal sar_set_object_class
-internal sar_set_object_flags
-internal sar_set_object_variant
-internal sar_unary_op
-internal sar_unset_object_flags
-internal sar_update_parent_list
-internal sar_value_not_implemented
-internal sar_value_type_error
-internal sar_verify_object
-internal save_module_machine_code
-internal save_value_machine_code
-internal save_widget_machine_code
-internal sem_allocate_node
-internal sem_append_cstr_to_cstr
-internal sem_append_str_to_cstr
-internal sem_argument_allowed
-internal sem_cat_str_to_str
-internal sem_charset_info
-internal sem_charset_lang_name
-internal sem_charset_name
-internal sem_child_allowed
-internal sem_control_allowed
-internal sem_convert_to_error
-internal sem_convert_to_float
-internal sem_convert_to_integer
-internal sem_convert_to_single_float
-internal sem_create_cstr
-internal sem_create_value_entry
-internal sem_create_wchar_str
-internal sem_dcl_name
-internal sem_evaluate_value
-internal sem_evaluate_value_cs
-internal sem_evaluate_value_expr
-internal sem_find_object
-internal sem_free_node
-internal sem_map_subclass_to_charset
-internal sem_output_uid_file
-internal sem_reason_allowed
-internal sem_ref_name
-internal sem_reference_procedure
-internal sem_resolve_forward_refs
-internal sem_validate_argument_entry
-internal sem_validate_argument_enumset
-internal sem_validate_argument_list
-internal sem_validate_callback_entry
-internal sem_validate_callback_list
-internal sem_validate_constraint_entry
-internal sem_validate_control_entry
-internal sem_validate_control_list
-internal sem_validate_node
-internal sem_validate_procref_entry
-internal sem_validate_procref_list
-internal sem_validate_value_node
-internal sem_validate_verify_cycle
-internal sem_validate_widget_cycle
-internal sem_validate_widget_cycle_aux
-internal sem_validate_widget_node
-internal sem_validation
-internal src_append_diag_info
-internal src_append_machine_code
-#if !defined(__hpux)
-internal src_az_avail_source_buffer
-internal src_az_current_source_buffer
-internal src_az_current_source_record
-internal src_az_first_source_record
-internal src_az_module_source_record
-internal src_az_orphan_messages
-internal src_az_source_file_table
-#endif
-internal src_get_file_name
-internal src_get_source_line
-internal src_initialize_source
-#if !defined(__hpux)
-internal src_l_last_source_file_number
-#endif
-internal src_open_file
-internal src_retrieve_source
-internal stbuf
-#if !defined(__hpux)
-internal sym_az_allocated_nodes
-internal sym_az_current_section_entry
-#endif
-internal sym_az_entry_list_header
-internal sym_az_error_value_entry
-#if !defined(__hpux)
-internal sym_az_external_def_chain
-internal sym_az_forward_ref_chain
-internal sym_az_freed_nodes
-internal sym_az_hash_table
-internal sym_az_module_entry
-internal sym_az_root_entry
-internal sym_az_val_forward_ref_chain
-#endif
-internal sym_dump_argument
-internal sym_dump_callback
-internal sym_dump_color_item
-internal sym_dump_control
-internal sym_dump_external_def
-internal sym_dump_forward_ref
-internal sym_dump_include_file
-internal sym_dump_list
-internal sym_dump_module
-internal sym_dump_name
-internal sym_dump_obj_header
-internal sym_dump_object_variant
-internal sym_dump_parent_list_item
-internal sym_dump_proc_def
-internal sym_dump_proc_ref
-internal sym_dump_root_entry
-internal sym_dump_section
-internal sym_dump_source_info
-internal sym_dump_symbol
-internal sym_dump_symbols
-internal sym_dump_value
-internal sym_dump_widget
-internal sym_find_name
-internal sym_initialize_storage
-internal sym_insert_name
-internal sym_make_external_def
-internal sym_make_forward_ref
-internal sym_make_value_forward_ref
-internal sym_section_text
-internal type_from_code
-internal uil_arg_compr
-#if !defined(__hpux)
-internal uil_az_error_env_block
-#endif
-internal uil_az_error_env_valid
-internal uil_catd
-internal uil_child_compr
-internal uil_exit
-internal uil_l_compile_status
-internal uil_reas_compr
-internal uil_urm_variant
-internal uil_v_case_sensitive
-internal uil_widget_compr
-internal unload_stack
-internal validate_arg
-internal write_msg_to_standard_error
-
-internal yydebug
-internal yyerror
-internal yylex
-internal yynerrs
-internal yyparse
-
-#if defined(hpux)
-internal yymaxdepth
-#endif
-
-#if defined(sun)
-internal yy_yys
-internal yy_yyv
-internal yyact
-internal yychar
-internal yychk
-internal yydef
-internal yyerrflag
-internal yyexca
-internal yylval
-internal yypact
-internal yypgo
-internal yyps
-internal yypv
-internal yyr1
-internal yyr2
-internal yyreds
-internal yys
-internal yystate
-internal yytmp
-internal yytoks
-internal yyv
-internal yyval
-#endif
diff --git a/cde/osf/wml/Imakefile b/cde/osf/wml/Imakefile
deleted file mode 100644 (file)
index b5258ae..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-XCOMM $TOG: Imakefile /main/16 1998/03/11 20:19:03 mgreess $
-XCOMM 
-XCOMM @OSF_COPYRIGHT@
-XCOMM COPYRIGHT NOTICE
-XCOMM Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-XCOMM ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-XCOMM the full copyright text.
-
-INCLUDES = -I. -I$(INCLUDESRC) -I$(MINCLUDESRC) -I$(MLIBSRC) -I$(MTOP)/include
-DEPLIBS = $(DEPXMLIB)  $(DEPXTOOLLIB) $(DEPXLIB)
-LOCAL_LIBRARIES = $(XMLIB) $(XTOOLLIB) $(XLIB)
-
-SRCS1 =        wml.c           wmlouth.c       wmloutmm.c \
-       wmloutp1.c      wmlresolve.c    wmlsynbld.c     wmlutils.c \
-       wmldbcreate.c
-OBJS1 =        wml.o           wmloutkey.o     wmlouth.o       wmloutmm.o \
-       wmloutp1.o      wmlresolve.o    wmlsynbld.o     wmlutils.o
-SRCS2 = wmluiltok.l
-OBJS2 = wmlparse.o
-SRCS = $(SRCS1) $(SRCS2)
-YACCTARGETS = UilLexPars.c     UilLexPars.h
-
-WMLTARGETS = UilConst.h        UilKeyTab.h      \
-       UilSymArTa.h    UilSymArTy.h    UilSymCSet.h    UilSymCtl.h \
-       UilSymEnum.h    UilSymGen.h     UilSymNam.h     UilSymRArg.h \
-       UilSymReas.h    UilTokName.h    UilUrmClas.h    UilSymChCl.h \
-       UilSymChTa.h
-
-TARGETS = $(YACCTARGETS) $(WMLTARGETS)
-TABLE = motif.wml
-WMDTABLE = motif.wmd
-WMLTOOLS = wml wmluiltok
-REPORT = wml.report
-
-NormalLibraryObjectRule()
-all::  DONE
-
-DONE:  $(WMDTABLE) $(TARGETS)
-       (cd $(UILSRC); $(RM) $(TARGETS) UilDBDef.h)
-       cp $(TARGETS) UilDBDef.h $(UILSRC)
-       touch DONE
-
-NormalLibraryTarget(wml,$(OBJS2) $(OBJS1))
-
-install:: all
-wml::  libwml.a
-       $(CC) $(CFLAGS) libwml.a -o wml
-
-NormalProgramTarget(wmldbcreate,wmldbcreate.o,$(DEPLIBS),$(LOCAL_LIBRARIES),$(SYSLIBS))
-
-wmlparse.c:    wmlparse.y wmllex.l
-       $(LEX) wmllex.l
-       $(MV) lex.yy.c wmllex.c
-       $(YACC) -d $(YACCFLAGS) wmlparse.y
-       $(RM) wmlparse.c wmlparse.h
-       $(MV) y.tab.c wmlparse.c
-       $(MV) y.tab.h wmlparse.h
-wmlparse.h::   wmlparse.y wmllex.l
-       $(LEX) wmllex.l
-       $(MV) lex.yy.c wmllex.c
-       $(YACC) -d $(YACCFLAGS) wmlparse.y
-       $(MV) y.tab.c wmlparse.c
-       $(MV) y.tab.h wmlparse.h
-wmluiltok::    wmluiltok.l
-       $(LEX) wmluiltok.l
-       $(CC) $(CFLAGS) lex.yy.c $(LEXLIB) -o wmluiltok
-
-$(TARGETS):    $(WMLTOOLS) $(TABLE)
-       $(RM) $(TARGETS) $(REPORT) wml-uil.mm
-       $(YACC) -d $(YACCFLAGS) Uil.y
-       $(MV) y.tab.c UilLexPars.c
-       $(MV) y.tab.h UilLexPars.h
-       $(CLIENTENVSETUP) ./wmluiltok < Uil.y > tokens.dat
-       $(RM) wml-uil.mm
-       $(CLIENTENVSETUP) ./wml $(TABLE)
-       $(RM) tokens.dat
-
-$(WMDTABLE):   wmldbcreate
-       $(CLIENTENVSETUP) ./wmldbcreate -o $@
-
-clean::
-       $(RM) $(TARGETS) $(WMDTABLE) $(REPORT) lex.yy.c libwml.a wml \
-       *.mm *.sdml *.txt wmlparse.c wmlparse.h wmluiltok wmllex.c \
-       tokens.dat DONE
-depend:: wmlparse.h 
-
-DependTarget()
-
-includes::     $(TARGETS)
-       (cd $(UILSRC); $(RM) $(TARGETS) UilDBDef.h)
-       cp $(TARGETS) UilDBDef.h $(UILSRC)
diff --git a/cde/osf/wml/README b/cde/osf/wml/README
deleted file mode 100644 (file)
index 1dd981f..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-/* $XConsortium: README /main/4 1996/07/15 14:38:42 drk $ */
-This memo documents the Widget MetaLanguage (WML) facility which generates
-the Uil compiler language description.
-
-1. Introduction
-
-The Uil compiler's language definition has the following components:
-       - Invariant parts of the language grammar. This consists of the
-         basic syntax and keywords, for example, the 'arguments' directive.
-       - Dynamic parts of the language. This consists of the widget/gadget
-         classes supported by the language, including all resources
-         (arguments and reasons), and the definitions of legal relationships
-         among these parts (which classes are legal controls (children)
-         of any given class, default values, and so on).
-       - The data types supported by the compiler. The code which supports
-         the data types is invariant, but the data types must also be
-         declared and made known in WML in order to provide a clean
-         specification.
-
-The dynamic parts of the language definition in the compiler are represented
-as follows. The representation falls into two classes:
-       - Definitions of the language used for validity checking and
-         reporting:
-               o A set of #define literals name all data types, classes,
-                 arguments, and reasons in the language.
-               o A set of statically compiled tables defines the names and
-                 legal relationships among these entities.
-       - All data types, classes, arguments, and reasons are treated as
-         keywords in the Uil grammar. This is supported by:
-               o A set of #define literals which names all the tokens in
-                 the language. Some of these tokens receive identical
-                 values to the literals mentioned above (this identity is
-                 crucial to the compiler's correct functioning).
-               o A set of statically compiled tables used by lexical
-                 analysis to detect and classify the language keywords.
-               o A yacc grammar including these token definitions which
-                 generates a compilable Uil language parser.
-
-These representations are all contained in .h files except for the parser,
-which is contained in a .y file and its resulting .c file.
-
-The WML system's task is to generate all these literals and tables based on
-a specification of the dynamic parts of the Uil language - the data types,
-widget/gadget classes, arguments, and reasons. The components of the system
-are:
-       - A specification of the of set of widgets to be supported. This
-         specification is an ASCII file containing a WML language
-         specification as described below. The WML language is a simple
-         declarative language whose syntax is similar to Uil itself.
-       - A process named wml, which parses the WML specification and
-         produces the following output:
-               o The .h files which define the first class of language
-                 representations - the validity checking and reporting
-                 information.
-               o A set of .dat files which are used by succeeding processes
-                 to produce the Uil grammar.
-               o A report file which describes the toolkit being supported.
-               o A .mm file to be incorporated in the Uil language
-                 documentation, which tabulates the built-in language
-                 tables for Uil user reference.
-       - A process named wmluily which generates the Uil grammar.
-       - A process named wmltokens which generates token data
-       - A process named wmlkeyword which generates the token and lexical
-         analysis tables.
-
-A shell script is provided which runs the system. The individual processes
-and inputs can usually be ignored.
-
-
-2. Environment
-
-The generation and use of the WML system requires the following:
-       - The C language compiler and runtime system (cc).
-       - The lexical generator facility (lex)
-       - the compiler compiler facility (yacc)
-
-The WML facility is found in directory /wmlsrc. It assumes the following
-directories also exist:
-       /uilsrc - the directory to which the output files are to be moved
-       /mrmsrc/Mrm - contains MrmCmpr.h and other .h files required to
-               compile the uil compiler.
-
-The tables produced by WML must be consistent with the Mrm compression
-code tables emboded in /mrmsrc/Mrm/MrmCmpr.h and /mrmsrc/Mrm/MrmCmprTbl.h.
-If in doubt, refer to /mrmsrc/Mrm/urmc.README for details.
-
-
-3. WML input
-
-Input to WML consists of:
-       - A description of the widget set (toolkit) to be suppported in
-         the WML specification language.
-       - Data files supplied with WML facility, and which you will
-         usually not need to modify. These are:
-               o grammar.y     - specifies the invariant part of the
-                                 Uil grammar
-               o charset.dat   - specifies the character sets supported by
-                                 the compiler when handling compound strings
-         Any other .dat files found in /wmlsrc are the result of running
-         the facility, and may be ignored.
-
-3.A. WML specification language
-
-The WML specification is a simple declarative language whose syntax is
-similar to that of Uil itself. It models the widget set to be suppored in
-a way that is very similar to the Uil language. It differs in having class
-inheritance similar to Xt widget classes, which minimizes the amount of
-specification and reduces errors. The properties of the model are:
-       - Class properties
-               o Classes are differentiated into two types - metaclasses
-                 and classes. Metaclasses cannot instantiate widgets.
-                 Typically, a WML metaclass is generated for each metaclass
-                 in the widget set to be supported.
-               o A regular class is defined for every low-level create
-                 routine in the widget set. There are typically more WML
-                 classes that widget set classes. For instance, there
-                 is one XmRowColumn class, with six WML classes (XmRowColumn
-                 XmMenuBar, XmOptionMenu, XmPopupMenu, XmPulldownMenu,
-                 XmRadioBox).
-               o Gadgets are modelled as variants of a corresponding
-                 widget class.
-               o A class may have zero or one superclasses. A class
-                 inherits all the resources and controls of its superclass
-                 (recursively). An inherited resource may have some of
-                 its properties overridden.
-               o A class is given a name which becomes its Uil language
-                 keyword (for regular classes). Metaclass names do
-                 not appear in Uil.
-               o A class is identified to Mrm by its creation
-                 convenience function (low-level create function). Examples
-                 are XmCreateLabel, XmCreatePushButtonGadget.
-       - Resource properties
-               o Resources are divided into two classes - arguments and
-                 and reasons. This models the Uil language distinction
-                 between callbacks and all other resources.
-               o A resource is considered to have universal scope. Once
-                 defined, it may be used in any class. Its name and datatype
-                 are invariant, but its default value may be overridden.
-               o A resource is included in a class by referencing it.
-                 Resources are inherited. Inherited resources may be
-                 excluded, which meancs they are not available in the
-                 class which provides this override (and its subclasses).
-                 This corresponds to the Motif toolkit N/A access value.
-               o A resource is given a name which becomes its Uil language
-                 keyword.
-               o A resource is identified to Mrm by the toolkit literal
-                 used to name it in arglists. Examples are
-                 XmNheight, XmNancestorSensitive, XmNhelpCallback. The
-                 resource literal defaults to the resource name, and need
-                 not be explicitly specified where they are identical.
-       - Control properties
-               o A control is a class which is permitted as the child
-                 of some other class.
-               o Naming the controls of a class is a WML feature which
-                 supports validity checking. There is no coresponding
-                 explicit feature in any Xt widget set.
-
-3.A.1 WML syntax and semantics
-
-The WML syntax can be quickly inferred from the standard input file
-provided with WML - motif-tables.wml. A quick BNF is provided in section 7.
-
-
-WML semantics are:
-       - '!' introduces a comment. Comments run from '!' to EOL.
-       - A string value may be quoted by enclosing in double quotes '"'.
-         Names as well as values may be quoted. Keywords may not.
-       - All names are case-sensitive. Forward and backward references
-         are allowed. All references to be resolved are to items defined
-         in WML. These are:
-               o Type = <an item defined in a DataType statement>
-               o SuperClass =
-                 WidgetClass = <an item defined in a Class statement>
-               o Resources { <items defined in Resource statement> };
-               o Controls { <items defined in Class or ControlList>
-                               statements> };
-       - A convenience function name is required for all classes except
-         Metaclasses.
-       - Datatypes are required for all Arguments, Constraints, and
-         SubResources.
-       - Arguments and SubResources are functionally identical, and
-         are distinguished only because they are different kinds of
-         resources in Xt widget sets. Constraints apply only to the
-         referencing class's children. The same name may not be
-         used for both an Argument and a Constraint (once a Constraint,
-         always a Constraint).
-       - If a resource occurs in the widget set with more than one
-         datatype, the Uil datatype 'any' must be used.
-       - The ResourceLiteral attribute for resources is optional, and
-         need only be specified when the name is not identical to the literal.
-       - The DocName and Default attributes are only used for documentation.
-         They are arbitrary strings.
-       - The WidgetClass attribute identifies the Widget class
-         associated with a Gadget class, and is required.
-       - The DialogClass attribute is optional.
-       - The ControlList statement is a simply macro for lists of
-         controls. It avoids tedious repetition of identical lists.
-         A Controls block in a Class statement allows Class and
-         ControlList names to be freely mixed.
-
-
-4. WML output
-       - The .h files and parser required by the compiler. These
-         are automatically moved to /uilsrc by the runwml script.
-       - A report describing the supported widget set, always named
-         wml.report. This report is intended to aid in validating
-         the WML source. The report is organized in a way which makes
-         if fairly easy to compare the Uil langauge against widget
-         set documentation as exemplified by the Motif Programmer's
-         Reference Manual. The reported is sorted as follows:
-               - alphabetically by class name
-               - Resources ordered by ancestor (top of tree first).
-                 Resources are listed alphabetically, with datatype
-                 and default always shown.
-               - Reasons ordered by ancestor (top of tree first),
-                 then alphabetically.
-               - Controls listed alphabetically.
-       - A file which provides documentation for the language, intended
-         to be an appendix to a Uil manual as exemplified by the
-         Guide to the Motif User Interface Language Compiler. This file
-         is named wml-uil.mm
-
-
-5. Generating and running WML
-
-The script file /wmlsrc/genwml will build WML. The script file /wmlsrc/runwml
-will run WML with motif-tables.src as input.
-
-
-6. Gotchas and problems in current WML implementation
-
-The script files genwml and runwml should be replaced by Makefiles.
-
-The documentation file ?.mm is relatively untested. The tables should
-probably be modified, as they are currently too big to print cleanly.
-The handling of the DocName attribute is incorrect.
-
-The specification of the Motif toolkit in motif-tables.wml has not been
-fully validated against the latest toolkit documentation. We believe there
-are no or very few errors in the actual resources and the classes which
-use them. There may be errors in the default values, which will appear
-in the documentation.
-
-
-7. WML BNF
-
-WML-specification : statement_block_list
-
-statement_block_list:
-       <empty>
-       statement_block_list statement_block
-
-statement_block:
-       class_statement_block
-       | resource_statement_block
-       | datatype_statement_block
-       | control_list_statement_block
-
-class_statement_block:
-       'Class' class_statement_list
-
-resource_statement_block:
-       'Resource' resource_statement_list
-
-datatype_statement_block:
-       'Datatype' datatype_statement_list
-
-control_list_statement_block:
-       'ControlList' control_list_statement_list
-
-class_statement_list:
-       class_statement ';'
-       | class_statement_list class_statement ';'
-
-resource_statement_list:
-       resource_statement ';'
-       | resource_statement_list resource_statement ';'
-
-datatype_statement_list:
-       datatype_statement ';'
-       | datatype_statement_list datatype_statement ';'
-
-control_list_statement_list:
-       control_list_statement ';'
-       | control_list_statement_list control_list_statement ';'
-
-class_statement:
-       <name> ':' class_type class_definition
-
-class_type:
-       'MetaClass' | 'Widget' | 'Gadget'
-
-class_definition:
-       <empty>
-       | '{' '}'
-       | '{' class_attribute_list '}'
-
-class_attribute_list:
-       class_attribute_name '=' <string> ';'
-       | class_boolean_attribute_name '=' boolean_attribute_value ';'
-       | class_resources ';'
-       | class_controls ';'
-
-class_attribute_name:
-       'SuperClass' | 'Alias' | 'ConvenienceFunction' | 'WidgetClass' |
-       'DocName'
-
-class_boolean_attribute_name:
-       'DialogClass'
-
-boolean_attribute_value:
-       'True' | 'False'
-
-class_resources:
-       'Resources' class_resources_block
-
-class_resources_block:
-       <empty>
-       '{' '}'
-       '{' class_resource_list '}'
-
-class_resource_list:
-       class_resource_element
-       | class_resource_list class_resource_element
-
-class_resource_element:
-       <name> class_resource_attributes ';'
-
-class_resource_attributes:
-       <empty>
-       '{' '}' ';'
-       '{' class_resource_attribute_list '}'
-
-class_resource_attribute_list:
-       class_resource_attribute_element
-       | class_resource_attribute_list class_resource_attribute_element
-
-class_attribute_element
-       class_resource_attribute_name '=' <string> ';'
-       | boolean_class_resource_attribute_name '=' boolean_attribute_value ';'
-
-class_resource_attribute_name:
-       'Default'
-
-boolean_class_resource_attribute_name:
-       'Exclude'
-
-class_controls:
-       'Controls' class_controls_block
-
-class_controls_block:
-       <empty>
-       | '{' '}' ';'
-       | '{' class_controls_list '}'
-
-class_controls_list:
-       class_controls_element
-       class_controls_list class_controls_element
-
-class_controls_element:
-       <name> ;
-
-resource_statement:
-       <name> ':' resource_type resource_definition
-
-resource_type:
-       'Argument' | 'Reason' | 'Constraint' | 'SubResource'
-
-resource_definition:
-       <empty>
-       '{' '}'
-       '{' resource_attribute_list '}'
-
-resource_attribute_list:
-       resource_attribute
-       resource_attribute_list resource_attribute
-
-resource_attribute:
-       resource_attribute_name '=' <string> ';'
-
-resource_attribute_name:
-       'Type' | 'ResourceLiteral' | 'Alias' | 'Related' | 'Default' |
-       'DocName'
-
-datatype_statement:
-       <name> datatype_definition
-
-datatype_definition:
-       <empty>
-       | '{' '}'
-       | '{' datatype_attribute_list '}'
-
-datatype_attribute_list:
-       datatype_attribuute
-       datatype_attribute_list datatype_attribute
-
-datatype_attribute:
-       datatype-attribute_name '=' <string> ';'
-
-datatype_attribute_name:
-       'Alias' | 'DocName'
-
-control_list_statement:
-       <name> control_list_definition
-
-control_list_definition:
-       <empty>
-       '{' '}'
-       '{' control_list_controls_list '}'
-
-control_list_controls_list:
-       control_list_control
-       control_list_controls_list control_list_control
-
-control_list_control:
-       <name> ';'
diff --git a/cde/osf/wml/Uil.y b/cde/osf/wml/Uil.y
deleted file mode 100644 (file)
index 14d8c8e..0000000
+++ /dev/null
@@ -1,1404 +0,0 @@
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/* "$TOG: Uil.y /main/11 1998/01/23 15:05:38 mgreess $" */
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      DECwindows Toolkit User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      YACC Grammar for UIL
-**--
-**/
-
-%{
-
-
-       /* Begin user declarations section */
-
-#include "UilDefI.h"
-#include "UilCompGl.h"
-
-#define                YYSTYPE         yystype
-
-#define                YYDEBUG         1
-
-/*   Declare and initialize stack entry for epsilon productions.    */
-
-YYSTYPE                gz_yynullval = {NULL,0,0,0,0};
-
-/*   Declare token to aid in saving source context     */
-
-YYSTYPE                prev_yylval;
-
-       /* End user declarations section */
-
-%}    
-
-/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- *     token name                      token value       token class         *
- *     ----------                       -----------       -----------         *
- *----------------------------------------------------------------------------*
- */
-
-/* 
-**     terminals of the language
-**
-**     NOTE: the tags which appear in comments at the end of each token
-**     definition name the token class for the token. These name the
-**     the .dat file processed by WML while constructing token tables.
-**     Thus the output of WML and these tags must match, e.g. for
-**     the token tag 'special' the file 'special.dat' must exist.
-*/
-
-/*    end of file indicator    */
-
-%token UILEOF                                  0       /* unused */
-
-/*    names    */
-
-%token NAME                                    1       /* identifier */
-%token FONT_NAME                               2       /* font */
-%token COLOR_NAME                              3       /* color */
-%token ARGUMENT_NAME                           4       /* argument */
-%token REASON_NAME                             5       /* reason */
-%token CHARSET_NAME                            6       /* charset */
-%token ENUMVAL_NAME                            7       /* enumval */
-%token CLASS_NAME                              8       /* class */
-%token  CHILD_NAME                             96      /* child */
-
-/*    Literals    */
-
-%token UNS_FLOAT_LITERAL                       9       /* literal */
-%token COMP_STRING                             10      /* literal */
-%token CHAR_8_LITERAL                          11      /* literal */
-%token UNS_INT_LITERAL                         12      /* literal */
-
-/*    Special characters.  Treat these as tokens rather than literals, so
- *    that we can assign token numbers to them rather than have YACC use
- *    the ASCII value as the token number.
- */
-
-%token LEFT_PAREN                              13      /* special */
-%token RIGHT_PAREN                             14      /* special */
-%token COLON                                   15      /* special */
-%token SEMICOLON                               16      /* special */
-%token LEFT_BRACE                              17      /* special */
-%token RIGHT_BRACE                             18      /* special */
-%token COMMA                                   19      /* special */
-%token EQUAL_SIGN                              20      /* special */
-%token NOT                                     21      /* special */
-%token PLUS                                    22      /* special */
-%token MINUS                                   23      /* special */
-%token AND                                     24      /* special */
-%token OR                                      25      /* special */
-%token XOR                                     26      /* special */
-%token MULTIPLY                                27      /* special */
-%token DIVIDE                                  28      /* special */
-%token LEFT_SHIFT                              29      /* special */
-%token RIGHT_SHIFT                             30      /* special */
-
-/*    Reserved words   */
-
-%token LIST                                    31      /* reserved */
-%token IDENTIFIER                              32      /* reserved */
-%token END                                     33      /* reserved */
-%token MODULE                                  34      /* reserved */
-%token UILTRUE                                 35      /* reserved */
-%token UILFALSE                                36      /* reserved */
-%token INCLUDE                                 37      /* reserved */
-%token MACRO                                   38      /* reserved */
-%token ON                                      39      /* reserved */
-%token OFF                                     40      /* reserved */
-%token VALUE                                   41      /* reserved */
-%token ARGUMENTS                               42      /* reserved */
-%token CALLBACKS                               43      /* reserved */
-%token PROCEDURES                              44      /* reserved */
-%token CONTROLS                                45      /* reserved */
-%token PROCEDURE                               46      /* reserved */
-%token OBJECT                                  47      /* reserved */
-
-/*    Declaratives    */
-
-%token OBJECTS                                 48      /* keyword */
-%token WIDGET                                  49      /* reserved */
-%token GADGET                                  50      /* reserved */
-
-%token FONT                                    51      /* keyword */
-%token ARGUMENT                                52      /* keyword */
-%token REASON                                  53      /* keyword */
-%token PIXMAP                                  54      /* keyword */
-%token COLOR                                   55      /* keyword */
-
-%token NAMES                                   56      /* keyword */
-%token CHARACTER_SET                           57      /* keyword */
-%token CASE_SENSITIVE                          58      /* keyword */
-%token CASE_INSENSITIVE                        59      /* keyword */
-
-%token VERSION                                 60      /* keyword */
-
-%token MANAGED                                 61      /* keyword */
-%token UNMANAGED                               62      /* keyword */
-
-%token PRIVATE                                 63      /* reserved */
-%token IMPORTED                                64      /* keyword */
-%token EXPORTED                                65      /* reserved */
-
-%token UILFILE                                 66      /* keyword */
-
-%token STRING_TABLE                            67      /* keyword */
-%token TRANSLATION_TABLE                       68      /* keyword */
-%token COMPOUND_STRING                         69      /* keyword */
-%token FONT_TABLE                              70      /* keyword */
-
-%token ANY                                     71      /* keyword */
-%token STRING                                  72      /* keyword */
-%token BOOLEAN                                 73      /* keyword */
-%token ICON                                    74      /* keyword */
-%token RIGHT_TO_LEFT                           75      /* keyword */
-%token BACKGROUND                              76      /* keyword */
-%token FOREGROUND                              77      /* keyword */
-%token COLOR_TABLE                             78      /* keyword */
-%token FLOAT                                   79      /* keyword */
-%token INTEGER                                 80      /* keyword */
-%token  CLASS_REC_NAME                         81      /* keyword */
-%token ASCIZ_TABLE                             82      /* keyword */
-%token INTEGER_TABLE                           83      /* keyword */
-%token ASCIZ_STRING_TABLE                      84      /* keyword */
-%token COMPOUND_STRING_TABLE                   85      /* keyword */
-%token XBITMAPFILE                             86      /* keyword */
-%token SEPARATE                                87      /* keyword */
-%token  SIXTEEN_BIT                            88      /* keyword */
-%token POUND                                   89      /* special */
-%token KEYSYM                                  90      /* keyword */
-%token SINGLE_FLOAT                            91      /* keyword */
-%token RGB                                     92      /* keyword */
-%token  WIDE_CHARACTER                         93      /* keyword */
-%token  LOC_STRING                             94      /* literal */ /* New for 1.2 */
-%token FONTSET                                 95      /* keyword */
-%token  COMPOUND_STRING_COMPONENT              97      /* keyword */
-
-%token  PIX                                    115
-%token  PIXEL                                  103
-%token  PIXELS                                 104
-%token  IN                                     98
-%token  INCH                                   105
-%token  INCHES                                 106
-%token  CM                                     99
-%token  CENTIMETER                             107
-%token  CENTIMETERS                            108
-%token  MM                                     100
-%token  MILLIMETER                             109
-%token  MILLIMETERS                            110
-%token  PT                                     101
-%token  POINT                                  111
-%token  POINTS                                 112
-%token  FU                                     102
-%token  FONT_UNIT                              113
-%token  FONT_UNITS                             114
-
-%start module_block
-
-%%
-
-\f
-
-/* 
-**     productions of the grammar
-*/
-
-
-/*     module structure        */
-
-module_block
-    : module_header
-       { sar_save_module_source (); }
-      module_declaration_list END MODULE SEMICOLON
-    ;
-
-module_header
-    : /* empty */                              { sar_create_root ( &$$ ); }
-      MODULE id                                { sar_create_module( &$$, &$3, &$2 ); }
-       opt_module_clauses
-    ;
-
-opt_module_clauses
-    : /* empty */
-    | module_clauses
-    ;
-
-module_clauses
-    : module_clause
-    | module_clauses module_clause
-    ;
-    
-module_clause
-    : VERSION EQUAL_SIGN character_8_value             { sar_process_module_version(  &$3 , &$1 ); }
-    | NAMES EQUAL_SIGN sensitivity_value               { sar_process_module_sensitivity( &$3 , &$1 ); }
-    | CHARACTER_SET EQUAL_SIGN valid_charset           { sar_process_module_charset( &$3 , &$1 ); }
-    | OBJECTS { sar_make_def_obj (&$1); } EQUAL_SIGN variant_spec
-    ;
-
-sensitivity_value
-    : CASE_SENSITIVE
-    | CASE_INSENSITIVE
-    ;
-
-variant_spec
-    : LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE variant_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-variant_list
-    : variant_clause SEMICOLON
-    | variant_list variant_clause SEMICOLON
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-variant_clause
-    : CLASS_NAME { sar_make_def_obj (&$1); }
-      EQUAL_SIGN variant                               { sar_process_module_variant (&$1, &$4); $$ = gz_yynullval; }
-    ;
-
-variant
-    : WIDGET                                           { $$ = gz_yynullval; $$.b_type = sym_k_widget_entry; }
-    | GADGET                                           { $$ = gz_yynullval; $$.b_type = sym_k_gadget_entry; }
-    ;
-
-module_declaration_list
-    : /* empty */
-    | module_declaration_list module_declaration
-    ;
-
-module_declaration
-    : value_declaration
-    | identifier_declaration
-    | procedure_declaration
-    | object_declaration
-    | list_declaration
-    | include_directive
-    ;
-
-\f
-
-/*     VALUE declaration           */
-
-value_declaration
-    : VALUE { $$ = $1; sar_save_section_source (&$1, sym_k_value_section); } value_declaration_list
-    ;
-
-value_declaration_list
-    : value_decl
-    | value_declaration_list value_decl
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-value_decl
-    : id COLON value_definition SEMICOLON              { sar_bind_value_name( &$1, &$3, &$4 ); }
-    ;
-
-value_definition
-  : EXPORTED private_value                             { $$ = $2; $$.b_flags |= sym_m_exported; $$.b_flags &= ~sym_m_private; }
-    | PRIVATE private_value_plus                       { $$ = $2; $$.b_flags |= sym_m_private; $$.b_flags &= ~sym_m_exported; }
-    | private_value_plus                               { $$ = $1; $$.b_flags |= sym_m_private; $$.b_flags &= ~sym_m_exported; }
-    | IMPORTED value_type                              { sar_import_value_entry( &$$, &$2 ); }
-    ;
-
-value_type
-    : INTEGER                  { $$ = $1; $$.b_type = sym_k_integer_value; }
-    | STRING                   { $$ = $1; $$.b_type = sym_k_char_8_value; }
-    | PIXMAP                   { $$ = $1; $$.b_type = sym_k_pixmap_value; }
-    | FLOAT                    { $$ = $1; $$.b_type = sym_k_float_value; }
-    | BOOLEAN                  { $$ = $1; $$.b_type = sym_k_bool_value; }
-    | FONT                     { $$ = $1; $$.b_type = sym_k_font_value; }
-    | REASON                   { $$ = $1; $$.b_type = sym_k_reason_value; }
-    | ARGUMENT                 { $$ = $1; $$.b_type = sym_k_argument_value; }
-    | COLOR                    { $$ = $1; $$.b_type = sym_k_color_value; }
-    | string_table_type                { $$ = $1; $$.b_type = sym_k_string_table_value; }
-    | asciz_table_type         { $$ = $1; $$.b_type = sym_k_asciz_table_value; }
-    | INTEGER_TABLE            { $$ = $1; $$.b_type = sym_k_integer_table_value; }
-    | TRANSLATION_TABLE                { $$ = $1; $$.b_type = sym_k_trans_table_value; }
-    | FONT_TABLE               { $$ = $1; $$.b_type = sym_k_font_table_value; }
-    | ICON                     { $$ = $1; $$.b_type = sym_k_icon_value; }
-    | COMPOUND_STRING          { $$ = $1; $$.b_type = sym_k_compound_string_value; }
-    | COMPOUND_STRING_COMPONENT        { $$ = $1; $$.b_type = sym_k_compound_string_value; }
-    | CLASS_REC_NAME           { $$ = $1; $$.b_type = sym_k_class_rec_name_value; }
-    | XBITMAPFILE              { $$ = $1; $$.b_type = sym_k_xbitmapfile_value; }
-    | KEYSYM                   { $$ = $1; $$.b_type = sym_k_keysym_value; }
-    | SINGLE_FLOAT             { $$ = $1; $$.b_type = sym_k_single_float_value; }
-    | RGB                      { $$ = $1; $$.b_type = sym_k_rgb_value; }
-    | WIDE_CHARACTER           { $$ = $1; $$.b_type = sym_k_wchar_string_value; }
-    | FONTSET                  { $$ = $1; $$.b_type = sym_k_fontset_value; }
-    | WIDGET                   { $$ = $1; $$.b_type = sym_k_widget_ref_value; }
-    ;
-
-/* Seperately defined for fixing CR 5888 */
-arg_value_type
-    : INTEGER                  { $$ = $1; $$.b_type = sym_k_integer_value; }
-    | STRING                   { $$ = $1; $$.b_type = sym_k_char_8_value; }
-    | PIXMAP                   { $$ = $1; $$.b_type = sym_k_pixmap_value; }
-    | FLOAT                    { $$ = $1; $$.b_type = sym_k_float_value; }
-    | BOOLEAN                  { $$ = $1; $$.b_type = sym_k_bool_value; }
-    | FONT                     { $$ = $1; $$.b_type = sym_k_font_value; }
-    | REASON                   { $$ = $1; $$.b_type = sym_k_reason_value; }
-    | COLOR                    { $$ = $1; $$.b_type = sym_k_color_value; }
-    | string_table_type                { $$ = $1; $$.b_type = sym_k_string_table_value; }
-    | asciz_table_type         { $$ = $1; $$.b_type = sym_k_asciz_table_value; }
-    | INTEGER_TABLE            { $$ = $1; $$.b_type = sym_k_integer_table_value; }
-    | TRANSLATION_TABLE                { $$ = $1; $$.b_type = sym_k_trans_table_value; }
-    | FONT_TABLE               { $$ = $1; $$.b_type = sym_k_font_table_value; }
-    | ICON                     { $$ = $1; $$.b_type = sym_k_icon_value; }
-    | COMPOUND_STRING          { $$ = $1; $$.b_type = sym_k_compound_string_value; }
-    | KEYSYM                   { $$ = $1; $$.b_type = sym_k_keysym_value; }
-    | SINGLE_FLOAT             { $$ = $1; $$.b_type = sym_k_single_float_value; }
-    | WIDE_CHARACTER           { $$ = $1; $$.b_type = sym_k_wchar_string_value; }
-    | FONTSET                  { $$ = $1; $$.b_type = sym_k_fontset_value; }
-    | WIDGET                   { $$ = $1; $$.b_type = sym_k_widget_ref_value; }
-/* End for fixing CR 5888 */
-
-string_table_type
-    : STRING_TABLE
-    | COMPOUND_STRING_TABLE
-    ;
-
-asciz_table_type
-    : ASCIZ_TABLE
-    | ASCIZ_STRING_TABLE
-    ;
-\f
-
-/*     PROCEDURE declaration       */
-
-procedure_declaration
-    : PROCEDURE { $$ = $1; sar_save_section_source (&$1, sym_k_procedure_section); } procedure_declaration_list
-    ;
-
-procedure_declaration_list
-    : procedure_decl
-    | procedure_declaration_list procedure_decl
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-procedure_decl
-    : id opt_formal_parameters opt_class SEMICOLON     { sar_create_procedure( &$1, &$2, &$3, &$4 );}
-    ;
-
-opt_formal_parameters
-    : /* empty */                                      { $$ = gz_yynullval; }
-    | LEFT_PAREN formal_parameter_type RIGHT_PAREN     { $$ = $2; }
-    ;
-
-formal_parameter_type
-    : /* empty */                                      { $$ = gz_yynullval; $$.b_type = sym_k_no_value; }
-    | value_type
-    | ANY                                              { $$ = $1; $$.b_type = 
-sym_k_any_value; }
-    | CLASS_NAME
-       { YYSTYPE temp[2];
-         temp[0] = gz_yynullval;
-         sar_create_object(&temp[0], sym_k_widget_entry);
-         temp[1] = $1; sar_set_object_class(&temp[1]);
-         sar_verify_object(&temp[1]);
-         $$ = temp[0];
-       }
-    ;
-
-opt_class
-    : /* empty */                                      { $$.b_flags = sym_m_private; }
-/*
-    | EXPORTED                                         { $$.b_flags = sym_m_exported; }
-    | PRIVATE                                          { $$.b_flags = sym_m_private; }
-    | IMPORTED                                         { $$.b_flags = sym_m_imported; }
-*/
-    ;
-
-\f
-
-/*     IDENTIFIER declaration      */
-
-identifier_declaration
-    : IDENTIFIER { $$ = $1; sar_save_section_source (&$1, sym_k_identifier_section); } identifier_declaration_list
-    ;
-
-identifier_declaration_list
-    : identifier_decl
-    | identifier_declaration_list identifier_decl
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-identifier_decl
-    : id SEMICOLON                                     { sar_create_identifier ( &$1, &$2 ); }
-    ;
-
-\f
-
-/*    Directives.    */
-
-/*    Include Directive    */
-
-include_directive
-    : INCLUDE UILFILE character_8_value SEMICOLON      { sar_include_file (&$3, &$1, &$4); }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-\f
-
-/*     OBJECT declaration      */
-
-object_declaration
-    : OBJECT { $$ = $1; sar_save_section_source (&$1, sym_k_object_section); } object_decl_list
-    ;
-
-object_decl_list
-    : object_decl SEMICOLON                            { $$ = $1; sar_save_src_semicolon_pos (&$2 ); }
-    | object_decl_list object_decl SEMICOLON           { $$ = $1; sar_save_src_semicolon_pos (&$3 ); }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-object_decl
-    : id
-       { sar_create_object (&$1, sym_k_widget_entry); 
-         sar_link_section (&$1); $$ = gz_yynullval;}
-      COLON object_definition
-       { $$ = gz_yynullval; }
-    ;
-
-object_definition
-    : EXPORTED
-        { sar_set_object_flags (&$1, sym_m_exported); }
-      object_specification
-    | PRIVATE
-        { sar_set_object_flags (&$1, sym_m_private); }
-      object_specification
-    | epsilon_production
-        { sar_set_object_flags (&$1, sym_m_exported); }
-      object_specification
-    | IMPORTED
-        { sar_set_object_flags (&$1, sym_m_imported); }
-      CLASS_NAME
-        { sar_set_object_class (&$3); }
-/*
- * Fix for CR 5440 - Call opt_create_proc_ref to check for creation procedures
- *                   for imported user_defined widgets.
- */
-      opt_create_proc_ref
-/*
- * End fix for CR 5440
- */
-      epsilon_production
-        { sar_verify_object (&$1); }
-    ;
-
-control_object_definition
-    : EXPORTED
-       { sar_set_object_flags (&$1, sym_m_exported); }
-      object_specification
-    | PRIVATE
-       { sar_set_object_flags (&$1, sym_m_private); }
-      object_specification
-    | MANAGED
-       { sar_set_object_flags (& $1, (sym_m_managed | sym_m_exported)); }
-      object_specification
-    | UNMANAGED
-       { sar_unset_object_flags (& $1, sym_m_managed), sar_set_object_flags (& $1, sym_m_exported); }
-      object_specification
-    | epsilon_production
-       { sar_set_object_flags (&$1, sym_m_exported); }
-      object_specification
-    | IMPORTED
-       { sar_set_object_flags (&$1, sym_m_imported); }
-      CLASS_NAME
-       { sar_set_object_class (&$3); }
-      epsilon_production
-       { sar_verify_object (&$1); }
-    ;
-
-object_specification
-    : CLASS_NAME
-       { sar_set_object_class (&$1); }
-      opt_create_proc_ref
-      opt_variant
-      object_spec
-       { sar_verify_object (&$1); }
-    ;
-
-opt_variant
-    : epsilon_production
-       { sar_set_object_variant (&$1); }
-    | variant
-       { sar_set_object_variant (&$1); }
-    ;
-
-control_object_specification
-    : CLASS_NAME
-       { sar_set_object_class (&$1); $$ = gz_yynullval;}
-      opt_create_proc_ref
-      opt_variant
-      control_object_spec
-       { sar_verify_object (&$1); }
-    ;
-
-opt_create_proc_ref
-    : epsilon_production
-    | PROCEDURE id_ref opt_parens
-       { sar_process_proc_ref (&$2, &gz_yynullval, sym_k_object_proc);
-         sar_save_user_proc_ref_src ( &$1, &$2, &$3 ); }
-    ;
-
-opt_parens
-    : epsilon_production
-    | LEFT_PAREN RIGHT_PAREN { $$ = $2; }
-    ;
-
-
-\f
-
-/*     object specification.    */
-
-object_spec
-    : id_ref
-       { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE object_feature_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-control_object_spec
-    : id_ref
-       { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-      epsilon_production
-       { sar_set_object_flags (&$1, sym_m_exported); }
-    | LEFT_BRACE object_feature_list RIGHT_BRACE
-      epsilon_production
-       { sar_set_object_flags (&$1, sym_m_exported); }
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-child_object_spec
-    : LEFT_BRACE RIGHT_BRACE
-      epsilon_production
-       { sar_set_object_flags (&$1, sym_m_private); }
-    | LEFT_BRACE object_feature_list RIGHT_BRACE
-      epsilon_production
-       { sar_set_object_flags (&$1, sym_m_private); }
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-object_feature_list
-    : object_feature
-    | object_feature_list object_feature
-    ;
-
-object_feature
-    : argument_list_def SEMICOLON
-       { sar_save_list_end ( &$2); sar_save_feature (&$1); $$ = gz_yynullval; }
-    | callback_list_def SEMICOLON
-       { sar_save_list_end ( &$2); sar_save_feature (&$1); $$ = gz_yynullval; }
-    | control_list_def SEMICOLON
-       { sar_save_list_end ( &$2); sar_save_feature (&$1); 
-sar_update_parent_list (&$1); $$ = gz_yynullval; }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-epsilon_production
-    : /* empty */
-       { $$ = gz_yynullval; }
-    ;
-
-\f
-
-/*     LIST declaration        */
-
-list_declaration
-    : LIST { $$ = $1; sar_save_section_source (&$1, sym_k_list_section); }
-       list_decl_list
-    ;
-
-list_decl_list
-    : list_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$2 ); }
-    | list_decl_list list_decl SEMICOLON { $$ = $1; sar_save_src_semicolon_pos (&$3 ); }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-list_decl
-    : id
-       { sar_create_object (&$1, sym_k_list_entry); 
-sar_link_section (&$1); $$ = gz_yynullval;}
-      COLON list_specification
-       { $$ = gz_yynullval; }
-    ;
-
-list_specification
-    : control_list_specification
-    | argument_list_specification
-    | callback_list_specification
-    | procedure_list_specification
-    ;
-
-control_list_specification
-    : control_list_type
-       { $$ = gz_yynullval; sar_set_list_type (&$1); }
-      control_list_spec
-       { sar_verify_object (&$1); }
-    ;
-
-argument_list_specification
-    : argument_list_type
-       { $$ = gz_yynullval; sar_set_list_type (&$1); }
-      argument_list_spec
-       { sar_verify_object (&$1); }
-    ;
-
-callback_list_specification
-    : callback_list_type
-       { $$ = gz_yynullval; sar_set_list_type (&$1); }
-      callback_list_spec
-       { sar_verify_object (&$1); }
-    ;
-
-procedure_list_specification
-    : procedure_list_type
-       { $$ = gz_yynullval; sar_set_list_type (&$1); }
-      procedure_list_spec
-       { sar_verify_object (&$1); }
-    ;
-
-argument_list_type
-    : ARGUMENTS
-       { $$ = gz_yynullval; $$.b_type = sym_k_argument_list; }
-    ;
-
-callback_list_type
-    : CALLBACKS
-       { $$ = gz_yynullval; $$.b_type = sym_k_callback_list; }
-    ;
-
-procedure_list_type
-    : PROCEDURES
-       { $$ = gz_yynullval; $$.b_type = sym_k_proc_ref_list; }
-    ;
-control_list_type
-    : CONTROLS
-       { $$ = gz_yynullval; $$.b_type = sym_k_control_list; }
-    ;
-
-argument_list_spec
-    : id_ref { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE argument_list_clause_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-callback_list_spec
-    : id_ref { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE callback_list_clause_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-procedure_list_spec
-    : id_ref
-       { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE procedure_list_clause_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-control_list_spec
-    : id_ref { sar_object_reference (&$1); }
-    | LEFT_BRACE RIGHT_BRACE
-    | LEFT_BRACE control_list_clause_list RIGHT_BRACE
-    | error { lex_issue_error (RIGHT_BRACE); } RIGHT_BRACE
-    ;
-
-argument_list_clause_list
-    : argument_list_clause
-    | argument_list_clause_list argument_list_clause
-    ;
-
-callback_list_clause_list
-    : callback_list_clause
-    | callback_list_clause_list callback_list_clause
-    ;
-
-procedure_list_clause_list
-    : procedure_list_clause
-    | procedure_list_clause_list procedure_list_clause
-    ;
-
-control_list_clause_list
-    : control_list_clause
-    | control_list_clause_list control_list_clause
-    ;
-
-argument_list_clause
-    : argument_list_def SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | argument_list_item SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-callback_list_clause
-    : callback_list_def SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | callback_list_item SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-procedure_list_clause
-    : procedure_list_def SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | procedure_list_def_ref SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-control_list_clause
-    : control_list_def SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | control_list_item SEMICOLON
-       { sar_save_src_entry_end (&$2, &$1); sar_add_list_entry (&$1); $$ = gz_yynullval; }
-    | error { lex_issue_error (SEMICOLON); } SEMICOLON
-    ;
-
-control_list_def
-    : epsilon_production
-       { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
-      control_list_specification
-       { $$ = $1; }
-    ;
-
-argument_list_def
-    : epsilon_production
-       { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
-      argument_list_specification
-       { $$ = $1; }
-    ;
-
-callback_list_def
-    : epsilon_production
-       { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
-      callback_list_specification
-       { $$ = $1; }
-    ;
-
-procedure_list_def
-    : epsilon_production
-       { $$ = gz_yynullval; sar_create_object (&$1, sym_k_list_entry); }
-      procedure_list_specification
-       { $$ = $1; }
-    ;
-
-control_list_item
-
-/*     Control item    */
-
-    : opt_managed control_item
-       { sar_save_control_item (&$1, &$2); $$ = $1; }
-
-    | id 
-       { sar_create_object (& $1, sym_k_widget_entry); $1.b_flags = sym_m_managed; $$ = gz_yynullval;}
-      COLON 
-      control_object_definition
-       { sar_save_control_widget (& $1, & $2); $$ = $1; }
-/* Child */
-    | CHILD_NAME opt_child_managed
-        { sar_create_child (& $1); $1.b_flags = sym_m_managed; 
-         $$ = gz_yynullval; } 
-      child_object_spec
-        { sar_save_control_widget (& $1, & $2); $$ = $1; } 
-    | CHILD_NAME UNMANAGED
-        { sar_create_child (& $1); $$ = gz_yynullval; } 
-      child_object_spec
-        { sar_save_control_widget (& $1, & $3); $$ = $1; } 
-    ;
-
-opt_child_managed
-    : epsilon_production
-    | MANAGED
-    ;
-
-
-argument_list_item
-
-/*     Argument value pair     */
-
-    : value EQUAL_SIGN value
-       { sar_save_argument_pair (&$1, &$3, &$2); $$ = $1; }
-
-/*     Argument widget pair    */
-
-    | value EQUAL_SIGN CLASS_NAME id_ref
-       { YYSTYPE temp [2];
-         temp [0] = gz_yynullval;
-         sar_create_object (&temp [0], sym_k_widget_entry);
-         temp [1] = $3; sar_set_object_class (&temp [1]);
-         temp [1] = $4; sar_object_reference (&temp [1]);
-         sar_verify_object (&temp [1]);
-         sar_save_argument_pair (&$1, &temp [0], &$2); $$ = $1; }
-    ;
-
-callback_list_item
-
-/*     Callback reason binding         */
-
-    : value EQUAL_SIGN procedure_reference
-       { sar_save_reason_binding (&$1, &$3, &$2); $$ = $1; }
-    | value EQUAL_SIGN procedure_list_def
-       { sar_save_reason_binding (&$1, &$3, &$2); $$ = $1; }
-    ;
-
-control_item
-    : epsilon_production
-       { sar_create_object (&$1, sym_k_widget_entry); $$ = gz_yynullval; }
-      control_object_specification
-       { $$ = $1; }
-    ;
-
-opt_managed
-    : epsilon_production
-       { $$.b_flags = sym_m_managed; }
-    | MANAGED
-       { $$ = gz_yynullval; $$.b_flags = sym_m_managed; }
-    | UNMANAGED
-       { $$ = gz_yynullval; }
-    ;
-
-procedure_reference
-    : PROCEDURE id_ref opt_procedure_argument
-       { sar_process_proc_ref (&$2, &$3, sym_k_callback_proc); $$ = $2; }
-    ;
-
-procedure_list_def_ref
-    : id_ref opt_procedure_argument
-       { sar_process_proc_ref (&$1, &$2, sym_k_callback_proc); $$ = $1; }
-    ;
-
-opt_procedure_argument
-    : epsilon_production
-    | LEFT_PAREN value RIGHT_PAREN
-       { $$ = $2; }
-    | LEFT_PAREN CLASS_NAME id_ref RIGHT_PAREN
-       { YYSTYPE temp [2];
-         temp [0] = gz_yynullval;
-         sar_create_object (&temp [0], sym_k_widget_entry);
-         temp [1] = $2; sar_set_object_class (&temp [1]);
-         temp [1] = $3; sar_object_reference (&temp [1]);
-         sar_verify_object (&temp [1]);
-         $$ = temp [0]; }
-    | LEFT_PAREN RIGHT_PAREN
-       { $$ = gz_yynullval; }
-    ;
-
-\f
-
-/*     definition of an id     */
-
-id
-    : NAME
-    | FONT_NAME
-    | COLOR_NAME
-    | ARGUMENT_NAME
-    | REASON_NAME
-    | ENUMVAL_NAME
-    | CHILD_NAME
-    | keyword                                          { sar_map_keyword_to_name( &$$, &$1); }
-    ;
-
-/*     reference of an id      */
-
-id_ref
-    : id
-       { sar_process_id_ref (&$1); $$ = $1; }
-    ;
-
-keyword
-    : STRING
-    | BOOLEAN
-    | FLOAT
-    | INTEGER
-    | FONT
-    | ARGUMENT
-    | REASON
-    | PIXMAP
-    | COLOR
-
-    | NAMES
-    | CASE_SENSITIVE
-    | CASE_INSENSITIVE
-
-    | VERSION
-
-    | MANAGED
-    | UNMANAGED
-
-    | UILFILE
-
-    | string_table_type
-    | asciz_table_type
-    | INTEGER_TABLE
-    | TRANSLATION_TABLE
-    | COMPOUND_STRING
-    | COMPOUND_STRING_COMPONENT
-    | CLASS_REC_NAME
-    | FONT_TABLE
-    | RIGHT_TO_LEFT
-    | CHARACTER_SET
-    | COLOR_TABLE
-    | ICON
-    | BACKGROUND
-    | FOREGROUND
-    | XBITMAPFILE
-    | SEPARATE
-
-    | ANY
-
-    | IMPORTED
-    | OBJECTS
-    | KEYSYM
-    | SINGLE_FLOAT
-    | RGB
-    | WIDE_CHARACTER
-    | FONTSET
-    ;
-
-\f
-
-/*    values    */
-
-character_8_value    : value   
-               { 
-                 $$ = $1; 
-                if (($$.b_type != sym_k_error_value) &&
-                    ($$.b_type != sym_k_any_value) &&
-                   (($$.b_flags &sym_m_forward_ref) == 0))
-                      {
-                       if (($$.b_type != sym_k_char_8_value) &&
-                           ($$.b_type != sym_k_localized_string_value))
-                           sar_value_type_error( &$$, sym_k_char_8_value );
-                       if (($$.b_flags &sym_m_private) == 0) 
-                           sar_private_error( &$$ );
-                      }
-               }
-    ;
-
-private_value
-    : value                                                    { $$ = $1; 
-                                                                 if ($$.b_type != sym_k_error_value)
-                                                                 {
-                                                                   if ((($$.b_flags &sym_m_private) == 0) &&
-                                                                       (($$.b_flags &sym_m_forward_ref) == 0))
-                                                                       sar_private_error( &$$ );
-                                                                 }
-                                                               } 
-     ;
-  
- /* BEGIN HaL fix CR 5427 */
- private_value_plus
-     : non_export_value                                                { $$ = $1; 
-                                                                 if ($$.b_type != sym_k_error_value)
-                                                                 {
-                                                                   if ((($$.b_flags &sym_m_private) == 0) &&
-                                                                       (($$.b_flags &sym_m_forward_ref) == 0))
-                                                                       sar_private_error( &$$ );
-                                                                 }
-                                                       }
-    ;
-     | value                                                   { $$ = $1; 
-                                                                 if ($$.b_type != sym_k_error_value)
-                                                                 {
-                                                                   if ((($$.b_flags &sym_m_private) == 0) &&
-                                                                       (($$.b_flags &sym_m_forward_ref) == 0))
-                                                                       sar_private_error( &$$ );
-                                                                 }
-                                                               }  
-  
- non_export_value
-     : COLOR_TABLE LEFT_PAREN color_list RIGHT_PAREN           { sar_make_color_table( &$$, &$3, &$1); }
- /* END HaL fix CR 5427 */
-
-value
-    : value_1
-    | value OR value_1                                         { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    | value XOR value_1                                                { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    ;
-
-value_1
-    : value_2
-    | value_1 AND value_2                                      { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    ;
-
-value_2
-    : value_3
-    | value_2 LEFT_SHIFT value_3                               { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    | value_2 RIGHT_SHIFT value_3                              { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    ;
-
-value_3
-    : value_4
-    | value_3 PLUS value_4                                     { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    | value_3 MINUS value_4                                    { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    ;
-
-value_4
-    : value_5
-    | value_4 MULTIPLY value_5                                 { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    | value_4 DIVIDE value_5                                   { $$ = $2; sar_binary_op( &$$, &$1, &$3 ); }
-    ;
-
-value_5
-    : value_6
-    | MINUS value_5                                            { $$ = $1; sar_unary_op( &$$, &$2 ); }
-    | NOT value_5                                              { $$ = $1; sar_unary_op( &$$, &$2 ); }
-    | PLUS value_5                                             { $$ = $1; sar_unary_op( &$$, &$2 ); }
-    ;
-
-value_6
-    : operand
-    | LEFT_PAREN value RIGHT_PAREN                             { $$ = $2; }
-    ;
-
-operand
-    : UNS_INT_LITERAL                                          { sar_make_private_value( &$$, &$1, sym_k_integer_value, 
-                                                                 &$1, XmPIXELS); }
-    | UNS_INT_LITERAL units_specification                      { sar_make_private_value( &$$, &$1, sym_k_integer_value, 
-                                                                 &$1, sar_get_units_type(&$2)); }
-    | optional_charset CHAR_8_LITERAL                          { /* Don't use FALSE because it is a token not a Boolean! */
-                                                                 Uil_lex_l_charset_specified = 0; 
-                                                                 sar_make_private_value( &$$, &$2, sym_k_char_8_value, 
-                                                                 &$2, 0); }
-    | id                                                       { sar_process_id( &$$, &$1 );}
-    | UNS_FLOAT_LITERAL                                                { sar_make_private_value( &$$, &$1, sym_k_float_value, 
-                                                                 &$1, XmPIXELS); }
-    | UNS_FLOAT_LITERAL units_specification                    { sar_make_private_value( &$$, &$1, sym_k_float_value, 
-                                                                 &$1, sar_get_units_type(&$2)); }
-    | PIXMAP LEFT_PAREN character_8_value RIGHT_PAREN          { sar_value_not_implemented( &$$, &$1, "pixmap literal" ); }
-    | FONT LEFT_PAREN font_spec RIGHT_PAREN                    { $$ = $3; }
-    | FONTSET LEFT_PAREN fontset_spec RIGHT_PAREN              { $$ = $3; }
-    | COLOR LEFT_PAREN color_spec RIGHT_PAREN                  { $$ = $3; }
-    | REASON LEFT_PAREN character_8_value RIGHT_PAREN          { sar_make_private_value(&$$, &$3, sym_k_reason_value, 
-                                                                 &$1, 0); }
-    | CLASS_REC_NAME LEFT_PAREN character_8_value RIGHT_PAREN  { sar_make_private_value(&$$, &$3, sym_k_class_rec_name_value,
-                                                                                        &$1, 0); }
-    | ARGUMENT LEFT_PAREN character_8_value opt_arg_type RIGHT_PAREN
-                                                               { sar_make_private_value
-                                                                     ( &$$, &$3, sym_k_argument_value, &$1, $4.b_type ); }
-    | UILTRUE                                                  { sar_make_private_value( &$$, &$1, sym_k_bool_value, 
-                                                                 &$1, 0); }
-    | UILFALSE                                                 { sar_make_private_value( &$$, &$1, sym_k_bool_value, 
-                                                                 &$1, 0); }
-    | ON                                                       { sar_make_private_value( &$$, &$1, sym_k_bool_value, 
-                                                                 &$1, 0); }
-    | OFF                                                      { sar_make_private_value( &$$, &$1, sym_k_bool_value, 
-                                                                 &$1, 0); }
-    | optional_charset COMP_STRING                             { /* Don't use FALSE because it is a token not a Boolean! */
-                                                                 Uil_lex_l_charset_specified = 0;
-                                                                 sar_make_private_value
-                                                                     ( &$$, &$2, sym_k_compound_string_value, &$2, 0); }
-    | string_table_type LEFT_PAREN comp_str_list RIGHT_PAREN   { sar_make_private_value( &$$, &$3, sym_k_string_table_value, 
-                                                                 &$1, 0); }
-    | asciz_table_type LEFT_PAREN asciz_list RIGHT_PAREN       { sar_make_private_value( &$$, &$3, sym_k_asciz_table_value, 
-                                                                 &$1, 0); }
-    | INTEGER_TABLE LEFT_PAREN integer_list RIGHT_PAREN                { sar_make_private_value( &$$, &$3, sym_k_integer_table_value, 
-                                                                 &$1, 0); }
-    | TRANSLATION_TABLE LEFT_PAREN string_list RIGHT_PAREN     { sar_make_private_value( &$$, &$3, sym_k_trans_table_value, 
-                                                                 &$1, 0); }
-    | COMPOUND_STRING LEFT_PAREN comp_str_result RIGHT_PAREN   { $$ = $3; }
-    | COMPOUND_STRING_COMPONENT LEFT_PAREN comp_str_comp_result RIGHT_PAREN    { $$ = $3; } 
-    | FONT_TABLE LEFT_PAREN font_list RIGHT_PAREN              { $$ = $3; }
-    | ICON LEFT_PAREN icon_spec RIGHT_PAREN                    { $$ = $3; }
-    | FLOAT LEFT_PAREN value RIGHT_PAREN                       { $$ = $1; sar_unary_op( &$$, &$3 ); }
-    | INTEGER LEFT_PAREN value RIGHT_PAREN                     { $$ = $1; sar_unary_op( &$$, &$3 ); }
-
-    | XBITMAPFILE LEFT_PAREN character_8_value RIGHT_PAREN     { sar_make_private_value(&$$, &$3, sym_k_xbitmapfile_value,
-                                                                                        &$1, 0); }
-
-    | KEYSYM LEFT_PAREN character_8_value RIGHT_PAREN          { sar_make_private_value(&$$, &$3, sym_k_keysym_value,
-                                                                                        &$1, 0); }
-
-    | SINGLE_FLOAT     LEFT_PAREN value RIGHT_PAREN            { $$ = $1; sar_unary_op( &$$, &$3 ); }
-
-    | RGB LEFT_PAREN rgb_list RIGHT_PAREN                      { sar_make_private_value( & $$, & $3, sym_k_rgb_value, 
-                                                                 &$1, 0); }
-    | WIDE_CHARACTER LEFT_PAREN wchar_str_result RIGHT_PAREN   { $$ = $3; }
-    | LOC_STRING                                               { sar_make_private_value(&$$, &$1, sym_k_localized_string_value,
-                                                                 &$1, 0); }
-    ;
-
-string_list
-    : /* empty */
-       { $$ = gz_yynullval; }
-    | string_list_2
-       { $$ = $1; }
-    ;
-
-string_list_2
-    : private_value
-       { sar_append_table_value (&$1, &gz_yynullval, sym_k_trans_table_value, &$1); $$ = $1; }
-    | string_list_2 COMMA private_value
-       { sar_append_table_value (&$3, &$1, sym_k_trans_table_value, &$2); $$ = $3; }
-    ;
-
-asciz_list
-    : /* empty */
-       { $$ = gz_yynullval; }
-    | asciz_list_2
-       { $$ = $1; }
-    ;
-
-asciz_list_2
-    : private_value
-       { sar_append_table_value (&$1, &gz_yynullval, sym_k_asciz_table_value, &$1); $$ = $1; }
-    | asciz_list_2 COMMA private_value
-       { sar_append_table_value (&$3, &$1, sym_k_asciz_table_value, &$2); $$ = $3; }
-    ;
-
-integer_list
-    : /* empty */
-       { $$ = gz_yynullval; }
-    | integer_list_2
-       { $$ = $1; }
-    ;
-
-integer_list_2
-    : private_value
-       { sar_append_table_value (&$1, &gz_yynullval, sym_k_integer_table_value, &$1); $$ = $1; }
-    | integer_list_2 COMMA private_value
-       { sar_append_table_value (&$3, &$1, sym_k_integer_table_value, &$2); $$ = $3; }
-    ;
-
-/* RAP rgb data type */
-rgb_list
-  : private_value COMMA private_value COMMA private_value
-{sar_append_table_value(&$1, & gz_yynullval, sym_k_integer_table_value, & $1);
-     sar_append_table_value(& $3, & $1, sym_k_integer_table_value, & $2);
-     sar_append_table_value(& $5, & $3, sym_k_integer_table_value, & $4);
-     $$ = $5;}
-  ;
-
-
-comp_str_list
-    : /* empty */
-       { $$ = gz_yynullval; }
-    | comp_str_list_2
-       { $$ = $1; }
-    ;
-
-comp_str_list_2
-    : private_value
-       { sar_append_table_value (&$1, &gz_yynullval, sym_k_string_table_value, &$1); $$ = $1; }
-    | comp_str_list_2 COMMA private_value
-       { sar_append_table_value (&$3, &$1, sym_k_string_table_value, &$2); $$ = $3; }
-    ;
-
-opt_arg_type
-    : /* empty */                                      { $$ = gz_yynullval; $$.b_type = sym_k_any_value; }
-    | COMMA arg_value_type                                     { $$ = gz_yynullval; $$.b_type = $2.b_type; }
-    | COMMA ANY                                        { $$ = gz_yynullval; $$.b_type = sym_k_any_value; }
-    ;
-
-comp_str_result
-    : private_value                                    { sar_make_comp_str( &$$, &$1, &gz_yynullval, &$-1 ); }
-    | private_value comp_str_attrs                     { sar_make_comp_str( &$$, &$1, &$2, &$-1 ); }
-    ;
-
-comp_str_comp_result
-    : ENUMVAL_NAME     { sar_make_comp_str_comp(&$$, &$1, &gz_yynullval, &$-1 ); }
-    | ENUMVAL_NAME COMMA ENUMVAL_NAME  { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); } 
-    | ENUMVAL_NAME COMMA CHAR_8_LITERAL        { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); } 
-    | ENUMVAL_NAME COMMA LOC_STRING    { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); } 
-    | ENUMVAL_NAME COMMA CHARSET_NAME  { sar_make_comp_str_comp( &$$, &$1, &$3, &$-1 ); } 
-    ;
-
-comp_str_attrs
-    : COMMA comp_str_attr                              { sar_chk_comp_str_attr( &$$, &$2, &gz_yynullval ); }
-    | comp_str_attrs COMMA comp_str_attr               { sar_chk_comp_str_attr( &$$, &$3, &$1 ); }
-    ;
-
-comp_str_attr
-    : CHARACTER_SET EQUAL_SIGN valid_charset           { $$.b_type = $1.b_type; 
-                                                         $$.b_tag = $3.b_tag;
-                                                         $$.value.az_keyword_entry = $3.value.az_keyword_entry;
-                                                         $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
-    | RIGHT_TO_LEFT EQUAL_SIGN private_value           { $$.b_type = $1.b_type; 
-                                                         $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
-    | SEPARATE EQUAL_SIGN private_value                        { $$.b_type = $1.b_type; 
-                                                         $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
-    ;
-
-wchar_str_result
-    : private_value                                    { sar_make_wchar_str( &$$, &$1, &gz_yynullval, &$-1 ); }
-    ;
-
-font_spec
-    : character_8_value COMMA CHARACTER_SET EQUAL_SIGN valid_charset 
-                                                       { sar_make_font( &$$, &$5, &$1, &$-1 ); }
-    | character_8_value                                        { sar_make_font( &$$, &gz_yynullval, &$1, &$-1 ); }
-    ; 
-
-fontset_spec
-    : character_8_value COMMA CHARACTER_SET EQUAL_SIGN valid_charset 
-                                                       { sar_make_fontset( &$$, &$5, &$1, &$-1 ); }
-    | character_8_value                                        { sar_make_fontset( &$$, &gz_yynullval, &$1, &$-1 ); }
-    ; 
-
-font_list                                              
-    : font_item                                                { sar_make_font_table( &$$, &$1, &gz_yynullval, &$-1 ); }
-    | font_list COMMA font_item                                { sar_make_font_table( &$$, &$3, &$1, &$-1 ); }
-    ;
-
-/*
-** THIS PRODUCTION DOESN'T LOOK RIGHT!!!!!!!!!!!!!!!!!!!!!!
-*/
-font_item
-    : valid_charset EQUAL_SIGN private_value           { sar_make_font_item( &$$, &$1, &$3 ); }
-    | private_value                                    { sar_make_font_item( &$$, &gz_yynullval, &$1 ); }
-    ;
-
-optional_charset
-    : POUND valid_charset                              { /* Don't use TRUE because it is a token not a Boolean! */
-                                                         $$ = $2; 
-                                                         Uil_lex_l_charset_specified = 1;}
-    | epsilon_production
-    ;
-    
-
-valid_charset
-    : CHARSET_NAME                                     { sar_charset_verify (&$1); $$ = $1; }
-    | CHARACTER_SET LEFT_PAREN charset_info RIGHT_PAREN        { $$ = $3; }
-    | NAME                     { sar_make_fallback_charset(&$1);
-                                 $$ = $1; } 
-                          
-    ;
-
-charset_info
-    : character_8_value                                        { sar_make_private_value(&$$, &$1, sym_k_char_8_value, 
-                                                         &$1, 0);
-                                                         sar_make_charset (&$$, &$$, &gz_yynullval, &$1); }
-    | character_8_value charset_attrs                  { sar_make_private_value(&$$, &$1, sym_k_char_8_value, 
-                                                         &$1, 0);
-                                                         sar_make_charset (&$$, &$$, &$2, &$1); }
-    ;
-
-charset_attrs
-    : COMMA charset_attr                               { sar_chk_charset_attr( &$$, &$2, &gz_yynullval ); }
-    | charset_attrs COMMA charset_attr                 { sar_chk_charset_attr( &$$, &$3, &$1 ); }
-    ;
-
-charset_attr
-    : RIGHT_TO_LEFT EQUAL_SIGN private_value           { $$.b_type = $1.b_type; 
-                                                         if ($3.b_type != sym_k_bool_value) 
-                                                             sar_value_type_error( &$3, sym_k_bool_value );
-                                                         $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
-    | SIXTEEN_BIT EQUAL_SIGN private_value             { $$.b_type = $1.b_type; 
-                                                         if ($3.b_type != sym_k_bool_value) 
-                                                             sar_value_type_error( &$3, sym_k_bool_value );
-                                                         $$.value.az_symbol_entry = $3.value.az_symbol_entry; }
-    ;
-
-color_list
-    : color_item                                       { sar_append_color_item( &$$, &$1, &gz_yynullval ); }
-    | color_list COMMA color_item                      { sar_append_color_item( &$$, &$3, &$1 ); }
-    ;
-
-color_item
-    : BACKGROUND COLOR EQUAL_SIGN character_8_value    { sar_make_color_item( &$$, &$1, &$4 ); }
-    | FOREGROUND COLOR EQUAL_SIGN character_8_value    { sar_make_color_item( &$$, &$1, &$4 ); }
-    | value EQUAL_SIGN character_8_value               { sar_make_color_item( &$$, &$1, &$3 ); }
-    ;
-
-color_spec
-    : character_8_value                                { sar_make_color( &$$, &$1, &gz_yynullval, &$-1 ); }
-    | character_8_value COMMA mono_color_spec          { sar_make_color( &$$, &$1, &$3, &$-1 ); }
-    ;
-
-mono_color_spec
-    : BACKGROUND
-    | FOREGROUND
-    ;
-
-icon_spec
-    : icon_rows                                                { sar_make_icon( &$$, &$1, &gz_yynullval, &$-1); }
-    | COLOR_TABLE EQUAL_SIGN private_value COMMA icon_rows
-                                                       { sar_make_icon( &$$, &$5, &$3, &$-1 ); }
-    ;
-
-icon_rows
-    : private_value
-                               { sar_append_table_value (&$1, &gz_yynullval, sym_k_icon_value, &$1); $$ = $1; }
-    | icon_rows COMMA private_value
-                               { sar_append_table_value (&$3, &$1, sym_k_icon_value, &$2); $$ = $3; }
-    ;
-
-units_specification
-    : PIX
-       { $$ = $1; }
-    | PIXEL
-       { $$ = $1; }
-    | PIXELS
-       { $$ = $1; }
-    | IN
-       { $$ = $1; }
-    | INCH
-       { $$ = $1; }
-    | INCHES
-       { $$ = $1; }
-    | CM
-       { $$ = $1; }
-    | CENTIMETER
-       { $$ = $1; }
-    | CENTIMETERS
-       { $$ = $1; }
-    | MM
-       { $$ = $1; }
-    | MILLIMETER
-       { $$ = $1; }
-    | MILLIMETERS
-       { $$ = $1; }
-    | PT
-       { $$ = $1; }
-    | POINT
-       { $$ = $1; }
-    | POINTS
-       { $$ = $1; }
-    | FU
-       { $$ = $1; }
-    | FONT_UNIT
-       { $$ = $1; }
-    | FONT_UNITS
-       { $$ = $1; }
-    ;
-
-%%
-
-/*    Dummy error routine for the parser.  We will output our own
-      error messages.    */
-
-int yyerror (s)
-char   * s;
-{
-       return 0;
-}
-
-
-
diff --git a/cde/osf/wml/UilDBDef.h b/cde/osf/wml/UilDBDef.h
deleted file mode 100644 (file)
index 40258db..0000000
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: UilDBDef.h /main/8 1995/07/13 21:03:16 drk $ */
-
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
-**++
-**  FACILITY:
-**
-**      User Interface Language Compiler (UIL)
-**
-**  ABSTRACT:
-**
-**      This include file defines the interfaces necessry to the binary 
-**     data base in the WML & UIL compilers.
-**
-**--
-**/
-
-#ifndef UilDBDef_h
-#define UilDBDef_h
-
-/***********************************************************************
-****************** From UilDef.h ***************************************/
-#define _BIT_INDEX(_type)      \
-            (((unsigned int) (_type)) >> 3)
-
-#define _BIT_MASK(_type)       \
-  (1 << (((unsigned int) (_type)) & 0x7))
-
-#define _BIT_SET(table_entry_addr, _type) \
-  ( _BIT_MASK (_type) &  \
-    ( ((unsigned char *) (table_entry_addr)) \
-      [ _BIT_INDEX (_type) ] ) )
-
-/*******************************************************************
-**************** From UilSymDef.h *********************************/
-/*
-**  Hash table size
-*/
-
-#define sym_k_hash_table_limit 127
-
-/* 
-**  Symbol tags.  These values are used in the tag field of every object header
-**  to identify the type of the entry.
-*/
-
-#define sym_k_error_entry              (127)
-    /* An error entry is used when compilation errors are detected in the  */
-    /* source program.  Its use reduces cascading errors caused by missing */
-    /* information and allows the compilation to continue and thus         */
-    /* additional errors may be detected                                   */
-#define sym_k_value_entry              1
-    /* A value entry contains information about a UIL literal value        */
-    /* (integer, string, compound string, xbitmapfile, argument, color,    */
-    /* icon, etc.).  The b_type field is used to determine the datatype of */
-    /* this value.                                                         */
-#define sym_k_name_entry               2
-    /* A name entry corresponds to a name (identifier) used in the UIL     */
-    /* source.                                                             */
-#define sym_k_widget_entry             3
-    /* A widget entry represents a widget declaration.  It points off to   */
-    /* the arguments, callbacks, and controls lists for the widget.        */
-#define sym_k_control_entry            4
-    /* A control entry hangs off a list entry and identifes an object      */
-    /* (widget or gadget) that is controlled.  It also contains the        */
-    /* managed/unmanaged information.                                      */
-#define sym_k_forward_ref_entry                5
-    /* forward reference entries are a linked listed of objects            */
-    /* (widgets/gadgets) that were not defined at the time of the          */
-    /* reference.  After all objects have been seen, then this list is     */
-    /* traversed and all objects in it should now be defined and the       */
-    /* specified pointers can be filled-in.                                */
-#define sym_k_external_def_entry       6
-    /* An external definition entry identifies a name that has been        */
-    /* imported and thus in not declared within this source module.        */
-#define sym_k_argument_entry           7
-    /* An argument entry hangs off a list entry and identifies an object   */
-    /* argument.  It contains informtation about the argument name and     */
-    /* argument value.                                                     */
-#define sym_k_callback_entry           8
-    /* An calllback entry hangs off a list entry and identifies an object  */
-    /* callback.  It contains informtation about the callback name,        */
-    /* callback procedure, and callback tag.                               */
-#define sym_k_module_entry             9
-    /* A module entry contains information specified on the module         */
-    /* statement.                                                          */
-#define sym_k_proc_def_entry           10
-    /* A procedure definition entry is created for each procedure listed   */
-    /* in a procedure section.  I contains informaion on the number and    */
-    /* types of the arguments.                                             */
-
-#define sym_k_proc_ref_entry           11
-    /* A procedure reference entry contains information about a the use of */
-    /* a procedure (e.g. as a callback).  It also stores the tag to be     */
-    /* passed to the procedure.                                            */
-#define sym_k_list_entry               12
-    /* A list entry is a typed list of other symbol table entries. It      */
-    /* contains a count and a pointer to the next entry on the list via    */
-    /* the obj_header.az_next field.                                       */
-#define sym_k_child_entry              13
-    /* A child entry represents a declaration for an                       */
-    /* automatically created child.  It points off to                      */
-    /* the arguments, callbacks, and controls lists for the child. Since   */
-    /* the structures for widget and child are the same, the               */
-    /* datastructure for children is really a sym_k_widget_entry_type.     */
-#define sym_k_identifier_entry         14
-    /* identifier entry tag is used for diagnostic messages only           */
-#define sym_k_color_item_entry         15
-    /* entry describing a color.                                           */
-#define sym_k_gadget_entry             16
-    /* A gadget entry represents a gadget declaration.  It points off to   */
-    /* the arguments, callbacks, and controls lists for the gadget. Since  */
-    /* the structures for widget and gadgets are the same, the             */
-    /* datastructure for gadgets is really a sym_k_widget_entry_type.      */
-#define sym_k_root_entry               17
-    /* An entry used to group all the other entries together.  It is       */
-    /* returned in the parse_tree_root field of the compilation descriptor */
-    /* when using the callable interface.                                  */
-#define sym_k_parent_list_entry                18
-    /* This is a list of parents of a widget.  It is used to check for     */
-    /* constraints provided by the parent that may be used on this widget. */
-#define sym_k_nested_list_entry                19
-    /*  This entry occurs as a list entry for a nested list. It occupies    */
-    /*  the correct position in the list for the reference to a list, and   */
-    /*  points to the actual list entry.                                    */
-#define sym_k_include_file_entry       20
-    /* An include file entry is used to describe the contents of an        */
-    /* include file.  It is needed only maintain information about the     */
-    /* source file from which this parse tree was generated.  It is not    */
-    /* used by UIL directly.                                               */
-#define sym_k_section_entry            21
-    /* A section entry is used to describe the contents of an source file. */
-    /* It is needed only maintain information about the structure of       */
-    /* source file from which this parse tree was generated.  It is not    */
-    /* used by UIL directly.                                               */
-    /*                                                                     */
-#define sym_k_def_obj_entry            22
-    /* This entry corresponds to the default object clause on the module   */
-    /* declaration it is used to store source information about the file   */
-    /* from which this parse tree was generated.   It is not used by UIL   */
-    /* directly.                                                           */
-#define sym_k_UNUSED23_entry           23
-#define sym_k_val_forward_ref_entry    24
-    /* val forward reference entries are a linked listed of values         */
-    /* that were not defined at the time of the                            */
-    /* reference.  After all values have been seen, then this list is      */
-    /* traversed and all values in it should now be defined and the        */
-    /* specified pointers can be filled-in.                                */
-#define sym_k_max_entry                        24
-    /* this is the largest possible value for an entry constant.           */
-
-
-/*
-**    Common attribute masks -- These values are used in the b_flags field of
-**    the object_header.
-*/
-
-#define                sym_m_private           (1 << 0)
-    /* This item is private to this source module and thus need not be     */
-    /* output into the UID file.                                           */
-#define                sym_m_exported          (1 << 1)
-    /* This is an exported definition and must be put in the UID file.     */
-#define                sym_m_imported          (1 << 2)
-    /* This item is a reference external to this source module and thus    */
-    /* will be resolved at runtime by searching the resourec hierarchy.    */
-#define                sym_m_reference         (1 << 3)
-#define                sym_m_builtin           (1 << 4)
-    /* This item is builtin as oppose to a userdefined item.               */
-#define                sym_m_obj_is_gadget     (1 << 5)
-    /* This object is a gadget as oppose to a widget.                      */
-
-
-/*
-**     Output states - order is important
-*/
-
-#define                sym_k_not_processed     0
-#define                sym_k_queued            1
-#define                sym_k_emitted           2
-
-
-\f
-/*
-**     Constants to define compiler-recognized data types. It is
-**     important that the names used in .wml language descriptions
-**     match these names. These values were once automatically generated
-**     by WML. They are now maintained by hand to reduce compiler
-**     dependence on WML artifacts.
-**
-**      We have also separated the values loosely into two classes:
-**      values which can be used to verify operator legality and values
-**      which cannot (see UilSemVal.c -- the legal_operand_type table).
-**      There is a comment below denoting where the separation is. Any
-**      values above the comment may be used for validation of an operator
-**      while any values below may not.
-**
-**      The order of the values below is unimportant except that the
-**      entries in the uil_datatype_names table in UilData.c must be
-**      ordered the same way.
-*/
-#define sym_k_any_value                        1
-#define sym_k_bool_value               2
-#define sym_k_char_8_value             3
-#define sym_k_compound_string_value    4 
-#define sym_k_float_value              5
-#define sym_k_integer_value            6 
-#define sym_k_single_float_value       7
-#define sym_k_localized_string_value   8
-#define sym_k_wchar_string_value       9
-#define sym_k_horizontal_integer_value  10
-#define sym_k_vertical_integer_value    11
-#define sym_k_horizontal_float_value    12
-#define sym_k_vertical_float_value      13
-/* Values after here may not be used for operator argument validation */
-#define sym_k_argument_value           14
-#define sym_k_asciz_table_value                15
-#define sym_k_class_rec_name_value     16
-#define sym_k_color_value              17
-#define sym_k_color_table_value                18
-#define sym_k_font_value               19
-#define sym_k_font_table_value         20
-#define sym_k_icon_value               21
-#define sym_k_identifier_value         22
-#define sym_k_integer_table_value      23
-#define sym_k_keysym_value             24
-#define sym_k_pixmap_value             25
-#define sym_k_reason_value             26
-#define sym_k_rgb_value                        27
-#define sym_k_string_table_value       28
-#define sym_k_trans_table_value                29
-#define sym_k_widget_ref_value         30
-#define sym_k_xbitmapfile_value                31
-#define sym_k_fontset_value            32
-#define        sym_k_child_value               33
-#define sym_k_max_value                        33
-#define sym_k_no_value                 (sym_k_max_value+1)
-
-/*
- * Error values for all kind of sym_k_... literal set
- */
-#define sym_k_error_value              0
-#define sym_k_error_object             0
-#define sym_k_error_charset            0
-
-
-/*
- * Literals associated with character sets
- *
- * Character set character sizes
- */
-#define sym_k_onebyte_charsize 1
-#define sym_k_twobyte_charsize 2
-#define sym_k_mixed1_2byte_charsize    3
-
-/*
- * User-defined character set
- */
-#define sym_k_userdefined_charset      1
-
-/*
- * XmFONTLIST_DEFAULT_TAG 
- */
-#define sym_k_fontlist_default_tag     0
-
-/*
-**     value sets defining expression operators
-*/
-#define sym_k_unspecified_op   0
-#define sym_k_not_op           1 
-#define sym_k_unary_plus_op    2
-#define sym_k_unary_minus_op   3
-#define sym_k_comp_str_op      4
-#define sym_k_wchar_str_op     5
-#define sym_k_last_unary_op    5
-
-#define sym_k_multiply_op      6
-#define sym_k_divide_op                7
-#define sym_k_add_op           8
-#define sym_k_subtract_op      9
-#define sym_k_left_shift_op    10 
-#define sym_k_right_shift_op   11
-#define sym_k_and_op           12
-#define sym_k_xor_op           13
-#define sym_k_or_op            14
-#define sym_k_cat_op           15
-#define sym_k_last_binary_op   15
-#define sym_k_valref_op                16      /* az_exp_op1 points to the value node
-                                          whose value is referenced by this
-                                          value node. */
-#define sym_k_coerce_op                17      /* az_exp_op1 points to the value node
-                                          whose value is to be coerced to the
-                                          data type of this node. */
-#define sym_k_last_special_op  17
-
-/*
- * Structure of an enumeration set entry
- */
-typedef struct
-    {
-    short int          values_cnt;
-       /* number of values in the enuemration set descriptor           */
-    unsigned short int *values;
-       /* vector of values                                             */
-    } UilEnumSetDescDef, *UilEnumSetDescDefPtr;
-
-
-
-/**********************************************************************
-**************** From UilKeyDef.h ************************************/
-/*
- *    Token class literals
- */
-#define tkn_k_class_argument    1
-#define tkn_k_class_charset     2
-#define tkn_k_class_color       3
-#define tkn_k_class_enumval     4
-#define tkn_k_class_font        5
-#define tkn_k_class_identifier  6
-#define tkn_k_class_keyword     7
-#define tkn_k_class_literal     8
-#define tkn_k_class_reason      9
-#define tkn_k_class_reserved    10
-#define tkn_k_class_special     11
-#define tkn_k_class_unused      12
-#define tkn_k_class_class       13
-#define tkn_k_class_child      14
-
-/*
- * Keyword table entry structure
- */
-typedef struct 
-    {
-    unsigned char         b_class;
-    unsigned short int    b_subclass;
-    unsigned char         b_length;
-    unsigned char         b_token;
-    char                  *at_name;
-    }  key_keytable_entry_type;
-
-
-
-/*************************************************************************
-************************ New Stuff **************************************/
-
-/* For COMPOUND_STRING_COMPONENT */
-#define XmStringComponent "XmStringComponent"
-
-/*
- * Names of the tables put in the binary database
-*/
-
-#define Constraint_Tab 1
-#define Key_Table 2
-#define Key_Table_Case_Ins 3
-#define Allowed_Argument_Table 4
-#define Argument_Type_Table_Value 5
-#define Charset_Xmstring_Names_Table 6
-#define Charset_Wrdirection_Table 7
-#define Charset_Parsdirection_Table 8
-#define Charset_Charsize_Table 9
-#define Charset_Lang_Names_Table 10
-#define Charset_Lang_Codes_Table 11
-#define Allowed_Control_Table 12
-#define Enum_Set_Table 13
-#define Argument_Enum_Set_Table 14
-#define Enumval_Values_Table 15
-#define Uil_Widget_Names 16
-#define Uil_Argument_Names 17
-#define Uil_Reason_Names 18
-#define Uil_Enumval_names 19
-#define Uil_Charset_Names 20
-#define Related_Argument_Table 21
-#define Allowed_Reason_Table 22
-#define Uil_Widget_Funcs 23
-#define Uil_Gadget_Funcs 24
-#define Uil_Urm_Nondialog_Class 25
-#define Uil_Urm_Subtree_Resource 26
-#define Uil_Argument_Toolkit_Names 27
-#define Uil_Reason_Toolkit_Names 28
-#define Child_Class_Table      29
-#define Allowed_Child_Table    30
-#define Uil_Children_Names     31
-
-/*
- * Binary Data Base Work
- */
-#define DB_Compiled_Version 2
-
-typedef struct _db_globals_struct
-{
-    int            version;
-    int            uil_max_arg;
-    int            uil_max_charset;
-    int            charset_lang_table_max;
-    int            uil_max_object;
-    int            uil_max_reason;
-    int            uil_max_enumval;
-    int            uil_max_enumset;
-    int            key_k_keyword_count;
-    int            key_k_keyword_max_length;
-    int            uil_max_child;
-} _db_globals;
-   
-typedef struct _db_header_struct
-{
-    int            table_id;
-    int            num_items;
-    int            table_size;
-} _db_header, *_db_header_ptr;
-   
-
-#endif /* UilDBDef_h */
-/* DON'T ADD STUFF AFTER THIS #endif */
diff --git a/cde/osf/wml/motif.wml b/cde/osf/wml/motif.wml
deleted file mode 100644 (file)
index bf66ea0..0000000
+++ /dev/null
@@ -1,5233 +0,0 @@
-! @OSF_COPYRIGHT@
-! COPYRIGHT NOTICE
-! Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-! ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-! the full copyright text.
-! 
-! HISTORY
-
-!
-! This file defines the Motif UIL language
-!
-
-!
-! UIL data types
-!
-DataType
-       integer;
-       string          { InternalLiteral = char_8; };
-       boolean         { InternalLiteral = bool; };
-       pixmap;
-       float;
-       font;
-       translation_table
-                       { InternalLiteral = trans_table;
-                         DocName = "translation table";};
-       widget_ref      { DocName = "widget reference"; };
-       any;
-       color;
-       compound_string { DocName = "compound string"; };
-       string_table    { DocName = "string table"; };
-       font_table      { DocName = "font table"; };
-       icon;
-       color_table     { DocName = "color table"; };
-       class_rec_name  { DocName = "class record name"; };
-       argument;
-       reason;
-       identifier;
-       asciz_table     { DocName = "asciz table"; };
-       integer_table   { DocName = "integer table"; };
-       xbitmapfile     { DocName = "X bitmap file"; };
-       single_float    { DocName = "Single float"; };
-       keysym;
-       rgb;    
-       localized_string 
-                       { DocName = "localized string"; };
-       wide_character  { InternalLiteral = wchar_string;
-                         DocName = "wide character string"; };
-       fontset;
-       horizontal_integer;
-       vertical_integer;
-       horizontal_float;
-       vertical_float;
-\f
-!
-! UIL character sets
-!
-CharacterSet
-       iso_latin1
-               { XmStringCharsetName = "ISO8859-1";
-                 Alias = "ISOLatin1";
-                 Alias = "88591";
-                 Alias = "ASCII"; };
-       iso_latin2
-               { XmStringCharsetName = "ISO8859-2";
-                 Alias = "ISOLatin2";
-                 Alias = "88592"; };
-       iso_latin3
-               { XmStringCharsetName = "ISO8859-3";
-                 Alias = "ISOLatin3"; 
-                 Alias = "88593"; };
-       iso_latin4
-               { XmStringCharsetName = "ISO8859-4";
-                 Alias = "ISOLatin4";
-                 Alias = "88594"; };
-       iso_latin5
-               { XmStringCharsetName = "ISO8859-5";
-                 Alias = "ISOLatin5";
-                 Alias = "88595"; };
-       iso_cyrillic
-               { XmStringCharsetName = "ISO8859-5"; };
-       iso_arabic
-               { XmStringCharsetName = "ISO8859-6";
-                 Alias = "iso_latin6";
-                 Alias = "ISOLatin6";
-                 Alias = "88596"; 
-                 Direction = RightToLeft; };
-       iso_arabic_lr
-               { XmStringCharsetName = "ISO8859-6";
-                 Alias = "iso_latin6_lr";
-                 Direction = RightToLeft;
-                 ParseDirection = LeftToRight; };
-       iso_greek
-               { XmStringCharsetName = "ISO8859-7";
-                 Alias = "iso_latin7";
-                 Alias = "ISOLatin7";
-                 Alias = "88597";  };
-       iso_hebrew
-               { XmStringCharsetName = "ISO8859-8";
-                 Alias = "iso_latin8";
-                 Alias = "ISOLatin8";
-                 Alias = "88598";
-                 Direction = RightToLeft; };
-       iso_hebrew_lr
-               { XmStringCharsetName = "ISO8859-8";
-                 Alias = "iso_latin8_lr";
-                 Direction = RightToLeft;
-                 ParseDirection = LeftToRight; };
-       jis_katakana
-               { XmStringCharsetName = "JISX0201.1976-0"; };
-       euc
-               { XmStringCharsetName = ""; };
-       big5
-               { XmStringCharsetName = ""; };
-       gb_hanzi
-                { XmStringCharsetName = "GB2312.1980-0";
-                  Alias = "gb_chinese";
-                  Alias = "gb_hanzi_gl";
-                  CharacterSize = TwoByte; };
-       jis_kanji
-                { XmStringCharsetName = "JISX0208.1983-0";
-                  Alias = "jis_japanese";
-                  Alias = "jis_kanji_gl";
-                  CharacterSize = TwoByte; };
-        ksc_hangul
-                { XmStringCharsetName = "KSC5601.1987-0";
-                  Alias = "ksc_korean";
-                  Alias = "ksc_hangul_gl";
-                  CharacterSize = TwoByte; };
-       gb_hanzi_gr
-                { XmStringCharsetName = "GB2312.1980-1";
-                  CharacterSize = TwoByte; };
-        jis_kanji_gr
-                { XmStringCharsetName = "JISX0208.1983-1";
-                  CharacterSize = TwoByte; };
-       ksc_hangul_gr
-                { XmStringCharsetName = "KSC5601.1987-1";
-                  CharacterSize = TwoByte; };
-       XmFONTLIST_DEFAULT_TAG  
-               { FontListElementTag = XmFONTLIST_DEFAULT_TAG; };
-
-       _MOTIF_DEFAULT_LOCALE
-               { FontListElementTag = _MOTIF_DEFAULT_LOCALE; };
-\f
-!
-! UIL Enumeration Sets
-!
-EnumerationSet
-       ! This is here to insure that uil compiles correctly because
-       ! of dependencies introduced with boolean -> enum resources
-       BoolValues : integer
-               { FALSE; TRUE; };
-       ArrowDirection : integer
-               { XmARROW_UP; XmARROW_DOWN; XmARROW_LEFT; XmARROW_RIGHT; };
-       ResizePolicy : integer
-               { XmRESIZE_NONE; XmRESIZE_ANY; XmRESIZE_GROW; };
-       DialogStyle : integer
-               { XmDIALOG_SYSTEM_MODAL; XmDIALOG_PRIMARY_APPLICATION_MODAL;
-                 XmDIALOG_MODELESS; XmDIALOG_WORK_AREA;
-                 XmDIALOG_FULL_APPLICATION_MODAL; XmDIALOG_APPLICATION_MODAL; };
-       DialogType : integer
-               { XmDIALOG_PROMPT;  XmDIALOG_SELECTION;
-                 XmDIALOG_WORK_AREA;  XmDIALOG_FILE_SELECTION;
-                 XmDIALOG_ERROR; XmDIALOG_INFORMATION; XmDIALOG_MESSAGE;
-                 XmDIALOG_QUESTION; XmDIALOG_WARNING; XmDIALOG_WORKING; 
-                 XmDIALOG_TEMPLATE; XmDIALOG_COMMAND; };
-       ShadowType : integer
-               { XmSHADOW_IN; XmSHADOW_OUT;
-                 XmSHADOW_ETCHED_IN; XmSHADOW_ETCHED_OUT; };
-       LabelType : integer
-               { XmSTRING; XmPIXMAP; };
-       StringDirection : integer
-               { XmSTRING_DIRECTION_L_TO_R;  XmSTRING_DIRECTION_R_TO_L; };
-       Alignment : integer
-               { XmALIGNMENT_CENTER;  XmALIGNMENT_END;  XmALIGNMENT_BEGINNING; };
-       Attachment : integer
-               { XmATTACH_NONE;  XmATTACH_FORM;  XmATTACH_OPPOSITE_FORM;
-                 XmATTACH_WIDGET;  XmATTACH_OPPOSITE_WIDGET;
-                 XmATTACH_POSITION; XmATTACH_SELF; };
-       SelectionPolicy : integer
-               { XmSINGLE_SELECT; XmMULTIPLE_SELECT;
-                 XmEXTENDED_SELECT; XmBROWSE_SELECT; };
-       ScrollingPolicy : integer
-               { XmAUTOMATIC; XmAPPLICATION_DEFINED; };
-       ScrollBarPlacement : integer
-               { XmTOP_LEFT; XmBOTTOM_LEFT; XmTOP_RIGHT; XmBOTTOM_RIGHT; };
-       ScrollBarDisplayPolicy : integer
-               { XmAS_NEEDED; XmSTATIC; };
-       ListSizePolicy : integer
-               { XmCONSTANT; XmVARIABLE; XmRESIZE_IF_POSSIBLE; };
-       VisualPolicy : integer
-               { XmVARIABLE; XmCONSTANT; };
-       DefaultButtonType : integer
-               { XmDIALOG_CANCEL_BUTTON; XmDIALOG_DEFAULT_BUTTON;
-                 XmDIALOG_HELP_BUTTON; XmDIALOG_MESSAGE_LABEL;
-                 XmDIALOG_OK_BUTTON; XmDIALOG_SEPARATOR;
-                 XmDIALOG_SYMBOL_LABEL; };
-       RowColumnType : integer
-               { XmWORK_AREA; XmMENU_BAR; XmMENU_PULLDOWN;
-                 XmMENU_POPUP; XmMENU_OPTION; };
-       Packing : integer
-               { XmNO_PACKING; XmPACK_TIGHT; XmPACK_COLUMN; XmPACK_NONE; };
-       Orientation : integer
-               { XmNO_ORIENTATION; XmVERTICAL; XmHORIZONTAL; };
-       ProcessingDirection : integer
-               { XmMAX_ON_TOP; XmMAX_ON_BOTTOM; XmMAX_ON_LEFT; XmMAX_ON_RIGHT; };
-       SeparatorType : integer
-               { XmSINGLE_LINE; XmDOUBLE_LINE;
-                 XmSINGLE_DASHED_LINE; XmDOUBLE_DASHED_LINE;
-                 XmNO_LINE; XmSHADOW_ETCHED_IN; XmSHADOW_ETCHED_OUT; 
-                 XmSHADOW_ETCHED_IN_DASH; XmSHADOW_ETCHED_OUT_DASH;};
-       EditMode : integer
-               { XmSINGLE_LINE_EDIT; XmMULTI_LINE_EDIT; };
-       IndicatorType : integer
-               { XmN_OF_MANY; XmONE_OF_MANY; 
-                 XmONE_OF_MANY_ROUND; XmONE_OF_MANY_DIAMOND; };
-       ToggleIndicatorOn : integer
-               { XmINDICATOR_NONE; XmINDICATOR_FILL; XmINDICATOR_BOX;
-                 XmINDICATOR_CHECK; XmINDICATOR_CHECK_BOX; 
-                 XmINDICATOR_CROSS; XmINDICATOR_CROSS_BOX; 
-                 FALSE; TRUE;};
-       UnitType : integer
-               { XmPIXELS; Xm100TH_MILLIMETERS; Xm1000TH_INCHES;
-                 Xm100TH_POINTS; Xm100TH_FONT_UNITS; XmINCHES;
-                 XmCENTIMETERS; XmMILLIMETERS; XmPOINTS; XmFONT_UNITS; };
-       NavigationType : integer
-               { XmNONE; XmTAB_GROUP; XmSTICKY_TAB_GROUP;
-                 XmEXCLUSIVE_TAB_GROUP; };
-       MultiClick : integer
-               { XmMULTICLICK_DISCARD; XmMULTICLICK_KEEP; };
-       CommandWindowLocation : integer
-               { XmCOMMAND_ABOVE_WORKSPACE; XmCOMMAND_BELOW_WORKSPACE; };
-       FileTypeMask : integer
-               { XmFILE_REGULAR; XmFILE_DIRECTORY; XmFILE_ANY_TYPE; };
-       InitialState : integer
-               { NormalState; IconicState; };
-       DeleteResponse : integer
-               { XmDESTROY; XmUNMAP; XmDO_NOTHING; };
-       KeyboardFocusPolicy : integer
-               { XmEXPLICIT; XmPOINTER; };
-       AudibleWarning : integer
-               { XmNONE; XmBELL; };
-       VerticalAlignment : integer
-               {XmALIGNMENT_BASELINE_TOP; XmALIGNMENT_CENTER;
-                XmALIGNMENT_BASELINE_BOTTOM; 
-                XmALIGNMENT_CONTENTS_TOP; XmALIGNMENT_CONTENTS_BOTTOM; };
-       UnpostBehavior : integer
-               { XmUNPOST_AND_REPLAY; XmUNPOST; };
-       TearOffModel : integer
-               { XmTEAR_OFF_ENABLED; XmTEAR_OFF_DISABLED; };
-       PositionIndex : integer
-               { XmLAST_POSITION; XmFIRST_POSITION; };
-       FrameChildType : integer
-               { XmFRAME_GENERIC_CHILD; XmFRAME_WORKAREA_CHILD;
-                 XmFRAME_TITLE_CHILD; };
-       ChildVerticalAlignment : integer
-               { XmALIGNMENT_BASELINE_TOP; XmALIGNMENT_CENTER;
-                 XmALIGNMENT_BASELINE_BOTTOM; XmALIGNMENT_WIDGET_BOTTOM; 
-                 XmALIGNMENT_WIDGET_TOP;};
-       ChildPlacement : integer
-               { XmPLACE_TOP; XmPLACE_ABOVE_SELECTION; XmPLACE_BELOW_SELECTION; };
-        TextScanType : integer
-                { XmSELECT_POSITION; XmSELECT_WHITESPACE; XmSELECT_WORD;
-                  XmSELECT_LINE; XmSELECT_ALL; XmSELECT_PARAGRAPH;};
-       MwmDecorations : integer
-               { MWM_DECOR_ALL; MWM_DECOR_BORDER; MWM_DECOR_RESIZEH; MWM_DECOR_TITLE;
-                 MWM_DECOR_MENU; MWM_DECOR_MINIMIZE; MWM_DECOR_MAXIMIZE; };
-       MwmFunctions : integer
-               { MWM_FUNC_ALL; MWM_FUNC_RESIZE; MWM_FUNC_MOVE; MWM_DECOR_MINIMIZE;
-                 MWM_DECOR_MAXIMIZE; MWM_FUNC_CLOSE; };
-       MwmInputMode : integer
-               { MWM_INPUT_MODELESS; MWM_INPUT_PRIMARY_APPLICATION_MODAL; 
-                 MWM_INPUT_SYSTEM_MODAL; MWM_INPUT_FULL_APPLICATION_MODAL; };
-       ToggleMode : integer
-               { XmTOGGLE_BOOLEAN; XmTOGGLE_INDETERMINATE; };
-       SliderVisual : integer
-               { XmBACKGROUND_COLOR; XmFOREGROUND_COLOR;
-                 XmTROUGH_COLOR; XmSHADOWED_BACKGROUND; }; 
-       SliderMark : integer
-               { XmNONE; XmETCHED_LINE; XmTHUMB_MARK; XmROUND_MARK; };
-       SlidingMode : integer
-               { XmSLIDER; XmTHERMOMETER; };
-       PrimaryOwnership : integer
-               { XmOWN_NEVER; XmOWN_ALWAYS; XmOWN_MULTIPLE;
-                 XmOWN_POSSIBLE_MULTIPLE; };
-       SelectionMode : integer
-               { XmNORMAL_MODE; XmADD_MODE; };
-       MatchBehavior : integer
-               { XmQUICK_NAVIGATE; XmINVALID_MATCH_BEHAVIOR; };
-       PositionMode : integer
-               { XmZERO_BASED; XmONE_BASED; };
-       AutoDragModel : integer
-               { XmAUTO_DRAG_ENABLED; XmAUTO_DRAG_DISABLED; };
-       ShowArrows : integer
-               { XmEACH_SIDE; XmMAX_SIDE; XmMIN_SIDE; FALSE; TRUE; };
-       TextPath : integer
-                { XmSTRING_DIRECTION_L_TO_R; XmSTRING_DIRECTION_R_TO_L;
-                  XmSTRING_DIRECTION_UNSET; XmSTRING_DIRECTION_DEFAULT;
-                  XmDEFAULT_DIRECTION; };
-       ComboBoxType : integer
-               { XmCOMBO_BOX; XmDROP_DOWN_COMBO_BOX; XmDROP_DOWN_LIST; };
-       ContainerLineStyle : integer
-               { XmSINGLE; };
-       EntryViewType : integer
-               { XmLARGE_ICON; XmSMALL_ICON; XmANY_ICON; };
-       LayoutDirection : integer
-               { XmRIGHT_TO_LEFT_TOP_TO_BOTTOM;
-                 XmLEFT_TO_RIGHT_TOP_TO_BOTTOM;
-                 XmRIGHT_TO_LEFT_BOTTOM_TO_TOP;
-                 XmLEFT_TO_RIGHT_BOTTOM_TO_TOP;
-                 XmTOP_TO_BOTTOM_RIGHT_TO_LEFT;
-                 XmTOP_TO_BOTTOM_LEFT_TO_RIGHT;
-                 XmBOTTOM_TO_TOP_RIGHT_TO_LEFT;
-                 XmBOTTOM_TO_TOP_LEFT_TO_RIGHT;
-                 XmTOP_TO_BOTTOM;
-                 XmBOTTOM_TO_TOP;
-                 XmRIGHT_TO_LEFT;
-                 XmLEFT_TO_RIGHT;
-                 XmDEFAULT_DIRECTION; };
-       LayoutType : integer
-               { XmOUTLINE; XmSPATIAL; XmDETAIL; };
-       OutlineButtonPolicy : integer
-               { XmOUTLINE_BUTTON_PRESENT; XmOUTLINE_BUTTON_ABSENT; };
-       SelectionTechnique : integer
-               { XmMARQUEE; XmMARQUEE_EXTEND_START; XmMARQUEE_EXTEND_BOTH;
-                 XmTOUCH_ONLY; XmTOUCH_OVER; };
-       SpatialIncludeModel : integer
-               { XmAPPEND; XmCLOSEST; XmFIRST_FIT; };
-       SpatialResizeModel : integer
-               { XmGROW_MINOR; XmGROW_MAJOR; XmGROW_BALANCED; };
-       SpatialSnapModel : integer
-               { XmNONE; XmSNAP_TO_GRID; XmCENTER; };
-       SpatialStyle : integer
-               { XmNONE; XmGRID; XmCELLS; };
-       OutlineState : integer
-               { XmCOLLAPSED; XmEXPANDED; };
-       IconGadgetViewType : integer
-               { XmLARGE_ICON; XmSMALL_ICON; };
-       VisualEmphasis : integer
-               { XmSELECTED; XmNOT_SELECTED; };
-       BindingType : integer
-               { XmSOLID; XmSPIRAL; XmPIXMAP_OVERLAP_ONLY; };
-       ArrowSensitivity : integer
-               { XmARROWS_INSENSITIVE; XmARROWS_INCREMENT_SENSITIVE;
-                 XmARROWS_DECREMENT_SENSITIVE; XmARROWS_SENSITIVE;
-                 XmARROWS_DEFAULT_SENSITIVITY; };
-       ArrowLayout : integer
-               { XmARROWS_END; XmARROWS_BEGINNING; XmARROWS_SPLIT;
-                 XmARROWS_FLAT_END; XmARROWS_FLAT_BEGINNING; };
-       ArrowOrientation : integer
-               { XmARROWS_VERTICAL; XmARROWS_HORIZONTAL; };
-       NotebookChildType : integer
-               { XmPAGE; XmMAJOR_TAB; XmMINOR_TAB; XmSTATUS_AREA;
-                 XmPAGE_SCROLLER; };
-       ScrolledWindowChildType : integer
-               { XmHOR_SCROLLBAR; XmVERT_SCROLLBAR; XmCOMMAND_WINDOW;
-                 XmMESSAGE_WINDOW; XmSCROLL_HOR; XmSCROLL_VERT; XmNO_SCROLL;
-                 XmCLIP_WINDOW; XmGENERIC_CHILD; };
-       PositionType : integer
-               { XmPOSITION_INDEX; XmPOSITION_VALUE; };
-       SpinBoxChildType : integer
-               { XmSTRING; XmNUMERIC; };
-       InputPolicy : integer
-               { XmPER_SHELL; XmPER_WIDGET; XmINHERIT_POLICY; };
-       ToggleSetValue : integer
-               { XmUNSET; XmSET; XmINDETERMINATE; FALSE; TRUE; };
-       ScaleShowValue : integer
-               { XmNONE; XmNEAR_SLIDER; XmNEAR_BORDER; FALSE; TRUE; };
-       FontType : integer
-               { XmAS_IS; XmFONT_IS_FONT; XmFONT_IS_FONTSET; };
-       LoadModel : integer
-               { XmAS_IS; XmLOAD_IMMEDIATE; XmLOAD_DEFERRED; };
-       LineType : integer
-               { XmAS_IS; XmSINGLE_LINE; XmDOUBLE_LINE;
-                 XmSINGLE_DASHED_LINE; XmDOUBLE_DASHED_LINE;
-                 XmNO_LINE; };
-       OffsetModel : integer
-               { XmABSOLUTE; XmRELATIVE; };
-       CompoundStringComponent : integer
-               { XmSTRING_COMPONENT_UNKNOWN;     XmSTRING_COMPONENT_CHARSET;
-                 XmSTRING_COMPONENT_TEXT;        XmSTRING_COMPONENT_DIRECTION;
-                 XmSTRING_COMPONENT_SEPARATOR;   XmSTRING_COMPONENT_LOCALE_TEXT;
-                 XmSTRING_COMPONENT_LOCALE;      XmSTRING_COMPONENT_WIDECHAR_TEXT;
-                 XmSTRING_COMPONENT_LAYOUT_PUSH; XmSTRING_COMPONENT_LAYOUT_POP;
-                 XmSTRING_COMPONENT_RENDITION_BEGIN; XmSTRING_COMPONENT_RENDITION_END;
-                 XmSTRING_COMPONENT_TAB; };
-       AutomaticSelection : integer
-               { XmNO_AUTO_SELECT; XmAUTO_SELECT; FALSE; TRUE; };
-
-\f
-! Define controls list of common aggregates of widgets
-
-ControlList
-       AllWidgetsAndGadgets
-               {
-               DtEditor;
-               DtHelpDialog;
-               DtHelpQuickDialog;
-               DtMenuButton;
-               DtPrintSetupBox;
-               DtPrintSetupDialog;
-               DtTerm;
-
-               XmArrowButton;
-               XmArrowButtonGadget;
-               XmBulletinBoard;
-               XmBulletinBoardDialog;
-               XmCascadeButton;
-               XmCascadeButtonGadget;
-               XmCheckBox;
-               XmComboBox;
-               XmCommand;
-               XmCommandDialog;
-               XmContainer;
-               XmDialogShell;
-               XmDrawingArea;
-               XmDrawnButton;
-               XmErrorDialog;
-               XmFileSelectionBox;
-               XmFileSelectionDialog;
-               XmForm;
-               XmFormDialog;
-               XmFrame;
-               XmIconGadget;
-               XmInformationDialog;
-               XmLabel;
-               XmLabelGadget;
-               XmList;
-               XmMainWindow;
-               XmMenuBar;
-               XmMenuShell;
-               XmMessageBox;
-               XmMessageDialog;
-               XmNotebook;
-               XmOptionMenu;
-               XmPanedWindow;
-               XmPopupMenu;
-               XmPromptDialog;
-               XmPulldownMenu;
-               XmPushButton;
-               XmPushButtonGadget;
-               XmQuestionDialog;
-               XmRadioBox;
-               XmRenderTable;
-               XmRowColumn;
-               XmScale;
-               XmScrollBar;
-               XmScrolledList;
-               XmScrolledText;
-               XmScrolledWindow;
-               XmSelectionBox;
-               XmSelectionDialog;
-               XmSeparator;
-               XmSeparatorGadget;
-               XmSimpleSpinBox;
-               XmSpinBox;
-               XmTemplateDialog;
-               XmText;
-               XmTextField;
-               XmToggleButton;
-               XmToggleButtonGadget;
-               XmWarningDialog;
-               XmWorkArea;
-               XmWorkingDialog;
-               user_defined;
-               };
-
-       AllWidgets
-               {
-               DtEditor;
-               DtHelpDialog;
-               DtHelpQuickDialog;
-               DtMenuButton;
-               DtPrintSetupBox;
-               DtPrintSetupDialog;
-               DtTerm;
-
-               XmArrowButton;
-               XmBulletinBoard;
-               XmBulletinBoardDialog;
-               XmCascadeButton;
-               XmCheckBox;
-               XmComboBox;
-               XmCommand;
-               XmCommandDialog;
-               XmContainer;
-               XmDialogShell;
-               XmDrawingArea;
-               XmDrawnButton;
-               XmErrorDialog;
-               XmFileSelectionBox;
-               XmFileSelectionDialog;
-               XmForm;
-               XmFormDialog;
-               XmFrame;
-               XmIconGadget;
-               XmInformationDialog;
-               XmLabel;
-               XmList;
-               XmMainWindow;
-               XmMenuBar;
-               XmMenuShell;
-               XmMessageBox;
-               XmMessageDialog;
-               XmNotebook;
-               XmOptionMenu;
-               XmPanedWindow;
-               XmPopupMenu;
-               XmPromptDialog;
-               XmPulldownMenu;
-               XmPushButton;
-               XmQuestionDialog;
-               XmRadioBox;
-               XmRowColumn;
-               XmScale;
-               XmScrollBar;
-               XmScrolledList;
-               XmScrolledText;
-               XmScrolledWindow;
-               XmSelectionBox;
-               XmSelectionDialog;
-               XmSeparator;
-               XmSimpleSpinBox;
-               XmSpinBox;
-               XmTemplateDialog;
-               XmText;
-               XmTextField;
-               XmToggleButton;
-               XmWarningDialog;
-               XmWorkArea;
-               XmWorkingDialog;
-               user_defined;
-               };
-
-       MenuWidgetsAndGadgets
-               {
-               DtMenuButton;
-
-               XmCascadeButton;
-               XmCascadeButtonGadget;
-               XmDrawnButton;
-               XmLabel;
-               XmLabelGadget;
-               XmPushButton;
-               XmPushButtonGadget;
-               XmSeparator;
-               XmSeparatorGadget;
-               XmToggleButton;
-               XmToggleButtonGadget;
-               user_defined;
-               };
-               
-       ManagerWidgets
-               {
-               DtEditor;
-               DtHelpDialog;
-               DtHelpQuickDialog;
-               DtPrintSetupBox;
-               DtPrintSetupDialog;
-
-               XmBulletinBoard;
-               XmCheckBox;
-               XmComboBox;
-               XmContainer;
-               XmDrawingArea;
-               XmFrame;
-               XmNotebook;
-               XmPanedWindow;
-               XmScale;
-               XmScrolledWindow;
-               XmSimpleSpinBox;
-               XmSpinBox;
-               XmRowColumn;
-               XmWorkArea;
-               XmRadioBox;
-               XmForm;
-               XmMessageBox;
-               XmSelectionBox;
-               XmFileSelectionBox;
-               };
-               
-\f
-
-! The root metaclasses and their resources. RectObj/Windowobj constitutes
-! the Core class as documented in the toolkit manual.
-
-
-Class
-       Object : MetaClass
-               {
-               Resources
-                       {
-                       ! new resources
-                       MrmNcreateCallback;
-                       XmNdestroyCallback;
-                       ! inherited resources
-                       };
-               };
-Resource
-       MrmNcreateCallback : Reason
-               { InternalLiteral = MrmNcreateCallback; };
-               ! This InternalLiteral is provided so the name can be changed if
-               ! desired. The InternalLiteral must NOT be changed.
-       XmNdestroyCallback : Reason
-               { ResourceLiteral = XmNdestroyCallback; };
-               ! This ResourceLiteral setting is included as an example
-               ! only. ResourceLiterals are not provided for the rest of
-               ! the Motif toolkit because the UIL names are identical
-               ! to the toolkit literals (the name supplies the default
-               ! literal for each UIL resource).
-
-Class
-       RectObj : MetaClass
-               {
-               SuperClass = Object;
-               Resources
-                       {
-                       ! new resources
-                       XmNancestorSensitive;
-                       XmNborderWidth;
-                       XmNheight;
-                       XmNsensitive;
-                       XmNwidth;
-                       XmNx;
-                       XmNy;
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNancestorSensitive : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNborderWidth : Argument
-               { Type = horizontal_float;
-                 Default = "1"; };
-       XmNheight : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNsensitive : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNwidth : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNx : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNy : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-
-
-Class
-       WindowObj : MetaClass
-       {
-               SuperClass = RectObj;
-               Resources
-                       {
-                       ! new resources
-                       XmNaccelerators;
-                       XmNbackground;
-                       XmNbackgroundPixmap;
-                       XmNborderColor;
-                       XmNborderPixmap;
-                       XmNcolormap;
-                       XmNdepth;
-                       XmNmappedWhenManaged;
-                       XmNscreen;
-                       XmNtranslations;
-                       XmNinitialResourcesPersistent;
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNaccelerators : Argument
-               { Type = translation_table;
-                 Default = "Null";};
-       XmNbackground : Argument
-               { Type = color;
-                 Default = "White"; };
-       XmNbackgroundPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNborderColor : Argument
-               { Type = color ;
-                 Default = "Black"; };
-       XmNborderPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNcolormap : Argument
-               { Type = identifier;
-                 Default = "XtCopyFromParent"; };
-       XmNdepth : Argument
-               { Type = identifier;
-                 Default = "XtCopyFromParent"; };
-       XmNmappedWhenManaged : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNscreen : Argument
-               { Type = identifier ;
-                 Default = "XtCopyScreen"; };
-       XmNtranslations : Argument
-               { Type = translation_table;
-                 Default = "Null"; };
-       XmNinitialResourcesPersistent : Argument
-               { Type = boolean;
-                 Default = "True"; };
-
-
-\f
-! Immediate subclasses of WindowObj
-
-Class
-       XmPrimitive : MetaClass
-               {
-               SuperClass = WindowObj;
-               Resources
-                       {
-                       ! new resources
-                       XmNbottomShadowColor;
-                       XmNbottomShadowPixmap;
-                       XmNconvertCallback;
-                       XmNforeground;
-                       XmNhelpCallback;
-                       XmNhighlightColor;
-                       XmNhighlightOnEnter;
-                       XmNhighlightPixmap;
-                       XmNhighlightThickness;
-                       XmNnavigationType;
-                       XmNpopupHandlerCallback;
-                       XmNshadowThickness;
-                       XmNtopShadowColor;
-                       XmNtopShadowPixmap;
-                       XmNtraversalOn;
-                       XmNunitType;
-                       XmNuserData;
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNbottomShadowColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNbottomShadowPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNforeground : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNhelpCallback : Reason
-               { };
-       XmNhighlightColor : Argument
-               { Type = color;
-                 Default = "Black"; };
-       XmNhighlightOnEnter : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNhighlightPixmap : Argument
-               { Type = pixmap;
-                 Default = "dynamic"; };
-       XmNhighlightThickness : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNnavigationType : Argument
-               { Type = integer;
-                 EnumerationSet = NavigationType;
-                 Default = "XmNONE"; };
-       XmNshadowThickness : Argument
-               { Type = horizontal_float;
-                 Default = "2"; };
-       XmNtopShadowColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNtopShadowPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNtraversalOn : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNunitType : Argument
-               { Type = integer;
-                 EnumerationSet = UnitType;
-                 Default = "XmPIXELS"; };
-       XmNuserData : Argument
-               { Type = any;
-                 Default = "Null"; };
-
-
-Class
-       Composite : MetaClass
-               {
-               SuperClass = WindowObj;
-               Resources
-                       {
-                       ! new resources
-                       XmNinsertPosition;
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNinsertPosition : Constraint
-               { Type = identifier ;
-                 Default = "Null"; };
-
-
-\f
-! Immediate subclasses of RectObj
-
-Class
-       XmGadget : MetaClass
-               {
-               SuperClass = RectObj;
-               Resources
-                       {
-                       ! new resources
-                       XmNbackground;
-                       XmNhelpCallback;
-                       XmNhighlightOnEnter;
-                       XmNhighlightThickness;
-                       XmNnavigationType;      
-                       XmNshadowThickness;
-                       XmNtraversalOn;
-                       XmNunitType;
-                       XmNuserData;
-                       ! inherited resources
-                       };
-               };
-
-
-\f
-! Immediate sublclasses of XmGadget
-
-Class
-       XmArrowButtonGadget : Gadget
-               {
-               SuperClass = XmGadget;
-               ConvenienceFunction = XmCreateArrowButtonGadget;
-               WidgetClass = XmArrowButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNarmCallback;
-                       XmNarrowDirection;
-                       XmNbackground;
-                       XmNdisarmCallback;
-                       XmNmultiClick;
-
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNactivateCallback : Reason
-               { };
-       XmNarmCallback : Reason
-               { };
-       XmNarrowDirection : Argument
-               { Type = integer;
-                 EnumerationSet = ArrowDirection;
-                 Default = "XmDYNAMIC"; };
-       XmNdisarmCallback : Reason
-               { };
-
-Class
-       XmSeparatorGadget : Gadget
-               {
-               SuperClass = XmGadget;
-               ConvenienceFunction = XmCreateSeparatorGadget;
-               WidgetClass = XmSeparator;
-               Resources
-                       {
-                       ! new resources
-                       XmNbackground;
-                       XmNmargin;
-                       XmNorientation;
-                       XmNseparatorType;
-                       ! inherited resources
-                       XmNtraversalOn { Default = "False"; };
-                       };
-               };
-Resource
-       XmNmargin : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNorientation : Argument
-               { Type = integer;
-                 EnumerationSet = Orientation;
-                 Default = "XmHORIZONTAL"; };
-       XmNseparatorType : Argument
-               { Type = integer;
-                 EnumerationSet = SeparatorType;
-                 Default = "XmSHADOW_ETCHED_IN"; };
-
-Class
-       XmIconGadget : Gadget
-               {
-               SuperClass = XmGadget;
-               ConvenienceFunction = XmCreateIconGadget;
-               WidgetClass = XmIconGadget;
-               Resources
-                       {
-                       ! new resources
-                       XmNalignment;
-                       XmNbackground;
-                       XmNdetail;
-                       XmNdetailCount;
-                       XmNfontList;
-                       XmNlabelString;
-                       XmNlargeIconMask;
-                       XmNlargeIconPixmap;
-                       XmNmarginHeight;
-                       XmNmarginWidth;
-                       XmNrecomputeSize;
-                       XmNrenderTable;
-                       XmNsmallIconMask;
-                       XmNsmallIconPixmap;
-                       XmNspacing;
-                       XmNviewType;
-                       XmNvisualEmphasis;
-
-                       ! undocumented resources
-                       ! XmNdotCache;
-                       };
-               Controls {
-                           XmRenderTable;
-                           };
-       };
-
-Resource
-       XmNdetail : Argument
-               { Type = string_table;
-                 Default = "NULL"; 
-                 Related = XmNdetailCount; };
-       XmNdetailCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNlargeIconMask : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNlargeIconPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNsmallIconMask : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNsmallIconPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNviewType : Argument
-               { Type = integer;
-                 EnumerationSet = IconGadgetViewType; };
-       XmNvisualEmphasis : Argument
-               { Type = integer;
-                 EnumerationSet = VisualEmphasis; };
-
-Class
-       XmLabelGadget : Gadget
-               {
-               SuperClass = XmGadget;
-               ConvenienceFunction = XmCreateLabelGadget;
-               WidgetClass = XmLabel;
-               Resources
-                       {
-                       ! new resources
-                       XmNaccelerator;
-                       XmNacceleratorText;
-                       XmNalignment;
-                       XmNbackground;
-                       XmNfontList;
-                       XmNrenderTable;
-                       XmNlabelInsensitivePixmap;
-                       XmNlabelPixmap;
-                       XmNlabelString;
-                       XmNlabelType;
-                       XmNmarginBottom;
-                       XmNmarginHeight;
-                       XmNmarginLeft;
-                       XmNmarginRight;
-                       XmNmarginTop;
-                       XmNmarginWidth;
-                       XmNmnemonic;
-                       XmNmnemonicCharSet;
-                       XmNrecomputeSize;
-                       XmNstringDirection;
-                       ! inherited resources
-                       XmNshadowThickness {Default = "0"; };
-                       XmNtraversalOn { Default = "False"; };
-                       };
-               Controls {
-                           XmRenderTable;
-                               };
-               };
-Resource
-       XmNaccelerator : Argument
-               { Type = string;
-                 Default = "Null"; };
-       XmNacceleratorText : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNalignment : Argument
-               { Type = integer;
-                 EnumerationSet = Alignment;
-                 Default = "XmALIGNMENT_CENTER"; };
-       XmNfontList : Argument
-               { Type = font_table;
-                 Default = "Fixed"; };
-       XmNrenderTable : Argument
-               { Type = widget_ref;
-                 Default = "Fixed"; };
-       XmNlabelInsensitivePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNlabelPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNlabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNlabelType : Argument
-               { Type = integer;
-                 EnumerationSet = LabelType;
-                 Default = "XmSTRING"; };
-       XmNmarginBottom : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNmarginHeight : Argument
-               { Type = vertical_float;
-                 Default = "2"; };
-       XmNmarginLeft : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNmarginRight : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNmarginTop : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNmarginWidth : Argument
-               { Type = horizontal_float;
-                 Default = "2"; };
-       XmNmnemonic : Argument
-               { Type = keysym;
-                 Default = "NULL"; };
-       XmNmnemonicCharSet : Argument
-               { Type = string;
-                 Default = "dynamic"; };
-       XmNrecomputeSize : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNstringDirection : Argument
-               { Type = integer;
-                 EnumerationSet = StringDirection;
-                 Default = "XmSTRING_DIRECTION_L_TO_R"; };
-
-Class
-       XmTextField : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateTextField;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNcursorPosition;
-                       XmNdestinationCallback;
-                       XmNeditable;
-                       XmNfocusCallback;
-                       XmNgainPrimaryCallback;
-                       XmNlosePrimaryCallback;
-                       XmNlosingFocusCallback;
-                       XmNmarginHeight { Default = "3"; };
-                       XmNmarginWidth { Default = "3"; };
-                       XmNmaxLength;
-                       XmNmodifyVerifyCallback;
-                       XmNmodifyVerifyCallbackWcs;
-                       XmNmotionVerifyCallback;
-                       XmNvalue;
-                       XmNvalueWcs;
-                       XmNvalueChangedCallback;
-                       XmNverifyBell;
-                       ! Input resource set
-                       XmNpendingDelete;
-                       XmNselectionArray;
-                       XmNselectionArrayCount;
-                       XmNselectThreshold;
-                       ! Output resource set
-                       XmNblinkRate;
-                       XmNcolumns;
-                       XmNfontList;
-                       XmNrenderTable;
-                       XmNcursorPositionVisible;
-                       XmNresizeHeight;
-                       XmNresizeWidth;
-                       XmNrows;
-                       XmNwordWrap;
-                       !inherited resources
-                       XmNnavigationType { Default = "XmTAB_GROUP"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-
-Resource
-       XmNdestinationCallback : Reason
-               { };
-
-\f
-! Immediate subclasses of XmLabelGadget
-
-Class
-       XmCascadeButtonGadget : Gadget
-               {
-               SuperClass = XmLabelGadget;
-               ConvenienceFunction = XmCreateCascadeButtonGadget;
-               WidgetClass = XmCascadeButton;
-               ControlsMapToResource = XmNsubMenuId;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNcascadePixmap;
-                       XmNcascadingCallback;
-                       XmNmappingDelay;
-                       XmNsubMenuId;
-                       ! inherited resources
-                       XmNaccelerator { Exclude = True;};
-                       XmNacceleratorText { Exclude = True;};
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               Controls
-                       {
-                       XmPulldownMenu;
-                       };
-               };
-Resource
-       XmNcascadingCallback : Reason
-               { };
-       XmNcascadePixmap : Argument
-               { Type = pixmap;
-                 Default = "menu-cascade"; };
-       XmNmappingDelay : Argument
-               { Type = integer;
-                 Default = "100"; };
-       XmNsubMenuId : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       
-Class
-       XmPushButtonGadget : Gadget
-               {
-               SuperClass = XmLabelGadget;
-               ConvenienceFunction = XmCreatePushButtonGadget;
-               WidgetClass = XmPushButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNarmCallback;
-                       XmNarmColor;
-                       XmNarmPixmap;
-                       XmNdefaultButtonShadowThickness;
-                       XmNdisarmCallback;
-                       XmNfillOnArm;
-                       XmNmultiClick;
-                       XmNshowAsDefault ;
-                       ! inherited resources
-                       };
-               };
-Resource
-       XmNarmColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNarmPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNdefaultButtonShadowThickness: Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNfillOnArm : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNmultiClick : Argument
-               { Type = integer;
-                 EnumerationSet = MultiClick;
-                 Default = "XmMULTICLICK_DISCARD"; };
-       XmNshowAsDefault : Argument
-               { Type = integer;
-                 Default = "0"; };
-
-Class
-       XmToggleButtonGadget : Gadget
-               {
-               SuperClass = XmLabelGadget;
-               ConvenienceFunction = XmCreateToggleButtonGadget;
-               WidgetClass = XmToggleButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNarmCallback;
-                       XmNdetailShadowThickness;
-                       XmNdisarmCallback;
-                       XmNfillOnSelect;
-                       XmNhighlightThickness { Default = "dynamic"; };
-                       XmNindeterminatePixmap;
-                       XmNindeterminateInsensitivePixmap;
-                       XmNindicatorOn;
-                       XmNindicatorSize;
-                       XmNindicatorType;
-                       XmNselectColor;
-                       XmNselectInsensitivePixmap;
-                       XmNselectPixmap;
-                       XmNset;
-                       XmNspacing;
-                       XmNtoggleMode;
-                       XmNunselectColor;
-                       XmNvalueChangedCallback;
-                       XmNvisibleWhenOff;
-                       ! inherited resources
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               };
-Resource
-       XmNdetailShadowThickness : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNfillOnSelect : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNindeterminatePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNindeterminateInsensitivePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNindicatorOn : Argument
-               { Type = integer;
-                 EnumerationSet = ToggleIndicatorOn;
-                 Default = "XmINDICATOR_FILL"; };
-       XmNindicatorType : Argument
-               { Type = integer;
-                 EnumerationSet = IndicatorType;
-                 Default = "XmN_OF_MANY"; };
-       XmNindicatorSize : Argument
-               { Type = horizontal_float;
-                 Default = "XmINVALID_DIMENSION"; };
-       XmNselectColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNselectInsensitivePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNselectPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNset : Argument
-               { Type = integer;
-                 EnumerationSet = ToggleSetValue;
-                 Default = "False"; };
-       XmNspacing : Argument
-               { Type = horizontal_float;
-                 Default = "4"; };
-       XmNtoggleMode : Argument
-               { Type = integer;
-                 EnumerationSet = ToggleMode;  };
-       XmNunselectColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNvalueChangedCallback : Reason
-               { };
-       XmNvisibleWhenOff : Argument
-               { Type = boolean;
-                 Default = "True"; };
-
-
-\f
-! Immediate subclasses of XmPrimitive
-
-Class
-       XmArrowButton : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateArrowButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNarmCallback;
-                       XmNarrowDirection;
-                       XmNdisarmCallback;
-                       XmNmultiClick;
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-
-Class
-       XmScrollBar : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateScrollBar;
-               Resources
-                       {
-                       ! new resources
-                       XmNdecrementCallback;
-                       XmNdragCallback;
-                       XmNeditable;
-                       XmNincrement;
-                       XmNincrementCallback;
-                       XmNinitialDelay;
-                       XmNmaximum;
-                       XmNminimum;
-                       XmNorientation { Default = "XmVERTICAL"; };
-                       XmNpageDecrementCallback;
-                       XmNpageIncrement;
-                       XmNpageIncrementCallback;
-                       XmNprocessingDirection;
-                       XmNrepeatDelay;
-                       XmNshowArrows;
-                       XmNsliderVisual;
-                       XmNsliderMark;
-                       XmNsliderSize;
-                       XmNslidingMode;
-                       XmNsnapBackMultiple;
-                       XmNtoBottomCallback;
-                       XmNtoTopCallback;
-                       XmNtroughColor;
-                       XmNvalue;
-                       XmNvalueChangedCallback;
-                       ! inherited resources
-                       XmNnavigationType { Default = "XmSTICKY_TAB_GROUP"; };
-                       XmNtraversalOn { Default = "dynamic"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-Resource
-       XmNdecrementCallback : Reason
-               { };
-       XmNdragCallback : Reason
-               { };
-       XmNincrement : Argument
-               { Type = integer;
-                 Default = "1"; };
-       XmNincrementCallback : Reason
-               { };
-       XmNinitialDelay : Argument
-               { Type = integer;
-                 Default = "250"; };
-       XmNmaximum : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNminimum : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNpageDecrementCallback : Reason
-               { };
-       XmNpageIncrement : Argument
-               { Type = integer;
-                 Default = "10"; };
-       XmNpageIncrementCallback : Reason
-               { };
-       XmNprocessingDirection : Argument
-               { Type = integer;
-                 EnumerationSet = ProcessingDirection;
-                 Default = "XmMAX_ON_BOTTOM"; };
-       XmNrepeatDelay : Argument
-               { Type = integer;
-                 Default = "50"; };
-       XmNshowArrows : Argument
-               { Type = integer;
-                 EnumerationSet = ShowArrows;
-                 Default = "XmEACH_SIDE"; };
-       XmNsliderSize : Argument
-               { Type = integer;
-                 Default = "10"; };
-       XmNsliderVisual : Argument
-               { Type = integer;
-                 EnumerationSet = SliderVisual;
-                 Default = "dynamic"; };
-       XmNsliderMark : Argument
-               { Type = integer;
-                 EnumerationSet = SliderMark;
-                 Default = "dynamic"; };
-       XmNslidingMode : Argument
-               { Type = integer;
-                 EnumerationSet = SlidingMode;
-                 Default = "XmSLIDER"; };
-       XmNsnapBackMultiple : Argument
-               { Type = integer; };
-       XmNtoBottomCallback : Reason
-               { };
-       XmNtoTopCallback : Reason
-               { };
-       XmNtroughColor : Argument
-               { Type = color;
-                 Default = "dynamic"; };
-       XmNvalue : Argument
-               { Type = any;
-                 Default = "Null"; };
-
-Class
-       XmSeparator : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateSeparator;
-               Resources
-                       {
-                       ! new resources
-                       XmNmargin;
-                       XmNorientation;
-                       XmNseparatorType;
-                       ! inherited resources
-                       XmNtraversalOn { Default = "False"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-
-Class
-       XmLabel : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateLabel;
-               Resources
-                       {
-                       ! new resources
-                       XmNaccelerator;
-                       XmNacceleratorText;
-                       XmNalignment;
-                       XmNfontList;
-                       XmNrenderTable;
-                       XmNlabelInsensitivePixmap;
-                       XmNlabelPixmap;
-                       XmNlabelString;
-                       XmNlabelType;
-                       XmNmarginBottom;
-                       XmNmarginHeight;
-                       XmNmarginLeft;
-                       XmNmarginRight;
-                       XmNmarginTop;
-                       XmNmarginWidth;
-                       XmNmnemonic;
-                       XmNmnemonicCharSet;
-                       XmNrecomputeSize;
-                       XmNstringDirection;
-                       ! inherited resources
-                       XmNshadowThickness { Default = "0"; };
-                       XmNtraversalOn { Default = "False"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-
-\f
-! Immediate subclass of XmPrimitive. The ScrolledList variant is treated
-! as a subclass
-
-Class
-       XmList : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateList;
-               Resources
-                       {
-                       ! new resources
-                       XmNautomaticSelection;
-                       XmNbrowseSelectionCallback;
-                       XmNdefaultActionCallback;
-                       XmNdestinationCallback;
-                       XmNdoubleClickInterval;
-                       XmNextendedSelectionCallback;
-                       XmNfontList;
-                       XmNrenderTable;
-                       XmNitemCount;
-                       XmNitems;
-                       XmNlistMarginHeight;
-                       XmNlistMarginWidth;
-                       XmNlistSizePolicy;
-                       XmNlistSpacing;
-                       XmNmatchBehavior;
-                       XmNmultipleSelectionCallback;
-                       XmNprimaryOwnership;
-                       XmNselectedItemCount;
-                       XmNselectedItems;
-                       XmNselectedPositions;
-                       XmNselectedPositionCount;
-                       XmNselectionMode;
-                       XmNselectionPolicy;
-                       XmNsingleSelectionCallback;
-                       XmNstringDirection;
-                       XmNtopItemPosition;
-                       XmNvisibleItemCount;
-                       ! inherited resources
-                       XmNnavigationType { Default = "XmTAB_GROUP"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-Resource
-       XmNautomaticSelection : Argument
-               { Type = integer;
-                 EnumerationSet = AutomaticSelection;
-                 Default = "FALSE"; };
-       XmNbrowseSelectionCallback : Reason
-               { };
-       XmNdefaultActionCallback : Reason
-               { };
-       XmNdoubleClickInterval : Argument
-               { Type = integer;
-                 Default = "250"; };
-       XmNextendedSelectionCallback : Reason
-               { };
-       XmNitemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNitems : Argument
-               { Type = string_table;
-                 Default = "Null"; 
-                 Related = XmNitemCount; };
-       XmNlistMarginHeight : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNlistMarginWidth : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNlistSpacing : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNmatchBehavior : Argument
-               { Type = integer;
-                 EnumerationSet = MatchBehavior;
-                 Default = "XmQUICK_NAVIGATE"; };
-       XmNmultipleSelectionCallback : Reason
-               { };
-       XmNprimaryOwnership : Argument
-               { Type = integer;
-                 EnumerationSet = PrimaryOwnership;
-                 Default = "XmOWN_NEVER"; };
-       XmNselectedItemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNselectedItems : Argument
-               { Type = string_table;
-                 Default = "Null"; 
-                 Related = XmNselectedItemCount; };
-       XmNselectionMode : Argument
-               { Type = integer;
-                 EnumerationSet = SelectionMode;
-                 Default = "XmNORMAL_MODE"; };
-       XmNselectionPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = SelectionPolicy;
-                 Default = "XmBROWSE_SELECT"; };
-       XmNselectedPositions : Argument
-               { Type = integer_table; 
-                 Default = "Null"; 
-                 Related = XmNselectedPositionCount; };
-       XmNselectedPositionCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNsingleSelectionCallback : Reason
-               { };
-       XmNtopItemPosition : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNvisibleItemCount : Argument
-               { Type = integer;
-                 Default = "1"; };
-
-Class
-       XmScrolledList : Widget
-               {
-               SuperClass = XmList;
-               ParentClass = XmScrolledWindow;
-               ConvenienceFunction = XmCreateScrolledList;
-               Resources
-                       {
-                       ! new resources
-                       XmNautoDragModel;
-                       XmNhorizontalScrollBar;
-                       XmNlistSizePolicy;
-                       XmNscrollBarDisplayPolicy;
-                       XmNscrollBarPlacement;
-                       XmNscrolledWindowMarginHeight;
-                       XmNscrolledWindowMarginWidth;
-                       XmNspacing;
-                       XmNtraverseObscuredCallback;
-                       XmNverticalScrollBar;
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-Resource
-       XmNautoDragModel : Argument
-               { Type = integer;
-                 EnumerationSet = AutoDragModel;
-                 Default = "XmAUTO_DRAG_ENABLED"; };
-       XmNhorizontalScrollBar : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNlistSizePolicy : Argument
-               { Type = integer ;
-                 EnumerationSet = ListSizePolicy;
-                 Default = "XmVARIABLE"; };
-       XmNscrollBarDisplayPolicy : Argument
-               { Type = integer ;
-                 EnumerationSet = ScrollBarDisplayPolicy;
-                 Default = "XmAS_NEEDED"; };
-       XmNscrollBarPlacement : Argument
-               { Type = integer ;
-                 EnumerationSet = ScrollBarPlacement;
-                 Default = "XmBOTTOM_RIGHT"; };
-       XmNscrolledWindowMarginHeight : Argument
-               { Type = integer ;
-                 Default = "0"; };
-       XmNscrolledWindowMarginWidth : Argument
-               { Type = integer ;
-                 Default = "0"; };
-       XmNverticalScrollBar : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-
-\f
-! Immediate subclass of XmPrimitive. The Scrolled variant is treated
-! as a subclass
-
-Class
-       XmText : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = XmCreateText;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNautoShowCursorPosition;
-                       XmNcursorPosition;
-                       XmNdestinationCallback;
-                       XmNeditable;
-                       XmNeditMode;
-                       XmNfocusCallback;
-                       XmNgainPrimaryCallback;
-                       XmNlosePrimaryCallback;
-                       XmNlosingFocusCallback;
-                       XmNmarginHeight { Default = "3"; };
-                       XmNmarginWidth { Default = "3"; };
-                       XmNmaxLength;
-                       XmNmodifyVerifyCallback;
-                       XmNmodifyVerifyCallbackWcs;
-                       XmNmotionVerifyCallback;
-                       XmNsource;
-                       XmNtopCharacter;
-                       XmNvalue;
-                       XmNvalueWcs;
-                       XmNvalueChangedCallback;
-                       XmNverifyBell;
-                       ! Input resource set
-                       XmNpendingDelete;
-                       XmNselectionArray;
-                       XmNselectionArrayCount;
-                       XmNselectThreshold;
-                       ! Output resource set
-                       XmNblinkRate;
-                       XmNcolumns;
-                       XmNcursorPositionVisible;
-                       XmNfontList;
-                       XmNrenderTable;
-                       XmNresizeHeight;
-                       XmNresizeWidth;
-                       XmNrows;
-                       XmNwordWrap;
-                       ! inherited resources
-                       XmNnavigationType { Default = "XmTAB_GROUP"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-Resource
-       XmNautoShowCursorPosition : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNcursorPosition : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNeditable : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNeditMode : Argument
-               { Type = integer;
-                 EnumerationSet = EditMode;
-                 Default = "XmSINGLE_LINE_EDIT"; };
-       XmNfocusCallback : Reason
-               { };
-       XmNgainPrimaryCallback : Reason
-               { };
-       XmNlosePrimaryCallback : Reason
-               { };
-       XmNlosingFocusCallback : Reason
-               { };
-       XmNmaxLength : Argument
-               { Type = integer;
-                 Default = "MAXINT"; };
-       XmNmodifyVerifyCallback : Reason
-               { };
-       XmNmodifyVerifyCallbackWcs : Reason
-               { };
-       XmNmotionVerifyCallback : Reason
-               { };
-       XmNpendingDelete : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNsource : Argument
-               { Type = any;
-                 Default = "Default source"; };
-       XmNselectionArray : Argument
-               { Type = integer_table;
-                 Default = "{XmSELECT_POSITION, XmSELECT_WORD, XmSELECT_LINE, XmSELECT_ALL};" ; 
-                 Related = XmNselectionArrayCount; };
-       XmNselectionArrayCount : Argument
-               { Type = integer;
-                 Default = "4"; };
-       XmNselectThreshold : Argument
-               { Type = integer;
-                 Default = "5"; };
-       XmNblinkRate : Argument
-               { Type = integer;
-                 Default = "500"; };
-       XmNtopCharacter : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNverifyBell : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNcolumns : Argument
-               { Type = integer;
-                 Default = "20"; };
-       XmNcursorPositionVisible : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNresizeHeight : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNresizeWidth : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNrows : Argument
-               { Type = integer;
-                 Default = "1"; };
-       XmNvalueWcs : Argument
-               { Type = wide_character;
-                 Default = "Null"; };
-       XmNwordWrap : Argument
-               { Type = boolean;
-                 Default = "False"; };
-
-Class
-       XmScrolledText : Widget
-               {
-               SuperClass = XmText;
-               ParentClass = XmScrolledWindow; 
-               ConvenienceFunction = XmCreateScrolledText;
-               Resources
-                       {
-                       ! new resources
-                       XmNautoDragModel;
-                       XmNhorizontalScrollBar;
-                       XmNscrollBarDisplayPolicy;
-                       XmNscrollBarPlacement;
-                       XmNscrollHorizontal;
-                       XmNscrollLeftSide;
-                       XmNscrollTopSide;
-                       XmNscrollVertical;
-                       XmNscrolledWindowMarginHeight;
-                       XmNscrolledWindowMarginWidth;
-                       XmNspacing;
-                       XmNtraverseObscuredCallback;
-                       XmNverticalScrollBar;
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-Resource
-       XmNscrollHorizontal : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNscrollLeftSide : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNscrollTopSide : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNscrollVertical : Argument
-               { Type = boolean;
-                 Default = "False"; };
-
-\f
-! Immediate subclasses of XmLabel
-
-Class
-       XmCascadeButton : Widget
-               {
-               SuperClass = XmLabel;
-               ConvenienceFunction = XmCreateCascadeButton;
-               ControlsMapToResource = XmNsubMenuId;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNcascadePixmap;
-                       XmNcascadingCallback;
-                       XmNmappingDelay;
-                       XmNsubMenuId;
-                       ! inherited resources
-                       XmNaccelerator { Exclude = True;};
-                       XmNacceleratorText { Exclude = True;};
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               Controls
-                       {
-                       XmPulldownMenu;
-                       XmPopupMenu;
-                       };
-               };
-
-Class
-       XmDrawnButton : Widget
-               {
-               SuperClass = XmLabel;
-               ConvenienceFunction = XmCreateDrawnButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNarmCallback;
-                       XmNactivateCallback;
-                       XmNdisarmCallback;
-                       XmNexposeCallback;
-                       XmNmultiClick;
-                       XmNresizeCallback;
-                       XmNpushButtonEnabled;
-                       XmNshadowType { Default = "XmSHADOW_ETCHED_IN"; };
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-Resource
-       XmNpushButtonEnabled : Argument
-               { Type = boolean;
-                 Default = "False"; };
-
-
-
-! This is a virtual class needed for accessing the automatically created
-! TearOffControl for TearOff Menus.  It cannot be instantiated directly.
-Class
-       XmTearOffButton : Widget
-               {
-               SuperClass = XmPushButton;
-               ConvenienceFunction = "";
-               Resources
-                       {
-                       ! new resources
-                       XmNseparatorType 
-                               { Default = "XmSHADOW_ETCHED_OUT_DASH"; };
-                       XmNmargin;
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-
-Class
-       XmPushButton : Widget
-               {
-               SuperClass = XmLabel;
-               ConvenienceFunction = XmCreatePushButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNactivateCallback;
-                       XmNarmCallback;
-                       XmNarmColor;
-                       XmNarmPixmap;
-                       XmNdefaultButtonShadowThickness;
-                       XmNdisarmCallback;
-                       XmNfillOnArm;
-                       XmNmultiClick;
-                       XmNshowAsDefault;
-                       ! inherited resources
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-
-Class
-       XmToggleButton : Widget
-               {
-               SuperClass = XmLabel;
-               ConvenienceFunction = XmCreateToggleButton;
-               Resources
-                       {
-                       ! new resources
-                       XmNarmCallback;
-                       XmNdetailShadowThickness;
-                       XmNdisarmCallback;
-                       XmNfillOnSelect;
-                       XmNhighlightThickness { Default = "dynamic"; };
-                       XmNindeterminateInsensitivePixmap;
-                       XmNindeterminatePixmap;
-                       XmNindicatorOn;
-                       XmNindicatorSize;
-                       XmNindicatorType;
-                       XmNselectColor;
-                       XmNselectInsensitivePixmap;
-                       XmNselectPixmap;
-                       XmNset;
-                       XmNspacing;
-                       XmNtoggleMode;
-                       XmNunselectColor;
-                       XmNvalueChangedCallback;
-                       XmNvisibleWhenOff;
-                       ! inherited resources
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       };
-               };
-
-\f
-! Immediate subclasses of Composite. 
-
-Class
-       "Constraint" : MetaClass        ! Also a keyword, so quote Constraint
-               {
-               SuperClass = Composite;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               };
-
-Class 
-       Shell : MetaClass
-       {
-       SuperClass = Composite;
-       Resources
-               {
-               ! new resources
-               XmNallowShellResize;
-               XmNcreatePopupChildProc;
-               XmNgeometry;
-               XmNoverrideRedirect;
-               XmNpopdownCallback;
-               XmNpopupCallback;
-               XmNsaveUnder;
-               XmNvisual;
-               ! inherited resources
-               };
-       };
-
-Resource
-       XmNallowShellResize : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNcreatePopupChildProc : Argument
-               { Type = any;
-                 Default = "NULL"; };
-       XmNgeometry : Argument
-               { Type = string;
-                 Default = "NULL"; };
-       XmNoverrideRedirect : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNpopdownCallback : Reason
-               { };
-       XmNpopupCallback : Reason
-               { };
-       XmNsaveUnder : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNvisual : Argument
-               { Type = any ;
-                 Default = "CopyFromParent"; };
-  
-\f
-! Immediate subclasses of Constraint
-
-Class
-       XmManager : MetaClass
-               {
-               SuperClass = "Constraint";
-               Resources
-                       {
-                       ! new resources
-                       XmNbottomShadowColor;
-                       XmNbottomShadowPixmap;
-                       XmNforeground;
-                       XmNhelpCallback;
-                       XmNhighlightColor;
-                       XmNhighlightPixmap;
-                       XmNinitialFocus;
-                       XmNlayoutDirection;
-                       XmNnavigationType { Default = "XmTAB_GROUP"; };
-                       XmNpopupHandlerCallback;
-                       XmNshadowThickness { Default = "0"; };
-                       XmNstringDirection;
-                       XmNtopShadowColor;
-                       XmNtopShadowPixmap;
-                       XmNtraversalOn;
-                       XmNunitType;
-                       XmNuserData;
-                       ! inherited resources
-                       };
-               };
-
-Resource
-       XmNinitialFocus : Argument
-               { Type = widget_ref;
-                 Default = "NULL"; };
-       XmNpopupHandlerCallback : Reason
-               { };
-       XmNtraversalCallback : Reason
-               { };
-       XmNtraverseObscuredCallback : Reason
-               { };
-
-\f
-! Immediate subclasses of Shell
-
-Class
-       OverrideShell : MetaClass
-       {
-       SuperClass = Shell;
-       Resources
-               {
-               ! new resources
-               ! inherited resources
-               XmNoverrideRedirect { Default = "True"; };
-               XmNsaveUnder { Default = "True"; };
-               };
-       };
-
-Class
-       WMShell : MetaClass
-       {
-       SuperClass = Shell;
-       Resources
-               {
-               ! new resources
-               XmNbaseHeight;
-               XmNbaseWidth;
-               XmNheightInc;
-               XmNiconMask;
-               XmNiconPixmap;
-               XmNiconWindow;
-               XmNiconX;
-               XmNiconY;
-               XmNinitialState;
-               XmNinput;
-               XmNmaxAspectX;
-               XmNmaxAspectY;
-               XmNmaxHeight;
-               XmNmaxWidth;
-               XmNminAspectX;
-               XmNminAspectY;
-               XmNminHeight;
-               XmNminWidth;
-               XmNtitle;
-               XmNtitleEncoding;
-               XmNtransient;
-               XmNwaitForWm;
-               XmNwidthInc;
-               XmNwindowGroup;
-               XmNwinGravity;
-               XmNwmTimeout;
-               };
-       };
-
-Resource
-       XmNbaseHeight : Argument
-               { Type = vertical_float;
-                 Default = "dynamic"; };
-       XmNbaseWidth : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNheightInc : Argument
-               { Type = vertical_float;
-                 Default = "dynamic"; };
-       XmNiconMask : Argument
-               { Type = pixmap;
-                 Default = "NULL"; };
-       XmNiconPixmap : Argument
-               { Type = pixmap;
-                 Default = "NULL"; };
-       XmNiconWindow : Argument
-               { Type = any;
-                 Default = "NULL"; };
-       XmNiconX : Argument
-               { Type = horizontal_float;
-                 Default = "-1"; };
-       XmNiconY : Argument
-               { Type = vertical_float;
-                 Default = "-1"; };
-       XmNinitialState : Argument
-               { Type = integer;
-                 EnumerationSet = InitialState;
-                 Default = "NormalState"; };
-       XmNinput : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNmaxAspectX : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNmaxAspectY : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNmaxHeight : Argument
-               { Type = vertical_float;
-                 Default = "dynamic"; };
-       XmNmaxWidth : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNminAspectX : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNminAspectY : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNminHeight : Argument
-               { Type = vertical_float;
-                 Default = "dynamic"; };
-       XmNminWidth : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNtitle : Argument
-               { Type = string;
-                 Default = "dynamic"; };
-       XmNtitleEncoding : Argument
-               { Type = any;
-                 Default = "dynamic"; };
-       XmNtransient : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNwaitForWm : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNwidthInc : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNwindowGroup : Argument
-               { Type = any;
-                 Default = "dynamic"; };
-       XmNwinGravity : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNwmTimeout : Argument
-               { Type = integer;
-                 Default = "5000"; };
-
-\f
-! Immediate subclasses of WMShell
-Class
-       VendorShell : MetaClass
-               {
-               SuperClass = WMShell;
-               Resources
-                       {
-                       ! new resources
-                       XmNaudibleWarning;
-                       XmNbuttonFontList;
-                       XmNlabelFontList;
-                       XmNtextFontList;
-                       XmNbuttonRenderTable;
-                       XmNlabelRenderTable;
-                       XmNtextRenderTable;
-                       XmNdarkThreshold;
-                       XmNdefaultFontList;
-                       XmNdeleteResponse;
-                       XmNfocusMovedCallback;
-                       XmNforegroundThreshold;
-                       XmNinputMethod;
-                       XmNinputPolicy;
-                       XmNkeyboardFocusPolicy;
-                       XmNlightThreshold;
-                       XmNmwmDecorations;
-                       XmNmwmFunctions;
-                       XmNmwmInputMode;
-                       XmNmwmMenu;
-                       XmNpreeditType;
-                       XmNrealizeCallback;
-                       XmNshellUnitType;
-                       ! This is really a Shell resource
-                       XmNuseAsyncGeometry;
-                       ! inherited resources
-                       };
-               Controls {
-                           XmRenderTable;
-                               };
-               };
-
-Resource 
-       XmNaudibleWarning : Argument
-               { Type = integer;
-                 EnumerationSet = AudibleWarning;
-                 Default = "XmBELL"; };
-       XmNdarkThreshold : Argument
-               { Type = integer; };
-       XmNdefaultFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       XmNdeleteResponse : Argument
-               { Type = integer;
-                 EnumerationSet = DeleteResponse;
-                 Default = "XmDESTROY"; };
-       XmNfocusMovedCallback : Reason
-               { };
-       XmNforegroundThreshold : Argument
-               { Type = integer; };
-       XmNinputMethod : Argument
-               { Type = string;
-                 Default = "Null"; };
-       XmNinputPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = InputPolicy; };
-       XmNkeyboardFocusPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = KeyboardFocusPolicy;
-                 Default = "XmEXPLICIT"; };
-       XmNlightThreshold : Argument
-               { Type = integer; };
-       XmNmwmDecorations : Argument
-               { Type = integer;
-                 EnumerationSet = MwmDecorations;
-                 Default = "-1"; };
-       XmNmwmFunctions : Argument
-               { Type = integer;
-                 EnumerationSet = MwmFunctions;
-                 Default = "-1"; };
-       XmNmwmInputMode : Argument
-               { Type = integer;
-                 EnumerationSet = MwmInputMode;
-                 Default = "-1"; };
-       XmNmwmMenu : Argument
-               { Type = string;
-                 Default = "NULL"; };
-       XmNrealizeCallback : Reason
-               { };
-       XmNpreeditType : Argument
-               { Type = string;
-                 Default = "OverTheSpot,OffTheSpot,Root"; };
-       XmNshellUnitType : Argument
-               { Type = integer;
-                 EnumerationSet = UnitType;
-                 Default = "XmPIXELS"; };
-       XmNuseAsyncGeometry : Argument
-               { Type = boolean;
-                 Default = "False"; };
-
-\f
-! Immediate subclasses of VendorShell
-
-Class
-       TopLevelShell : MetaClass
-               {       
-               SuperClass = VendorShell;
-               Resources
-                       {
-                       ! new resources
-                       XmNiconic;
-                       XmNiconName;
-                       XmNiconNameEncoding;
-                       ! inherited resources
-               };
-       };
-
-Resource
-       XmNiconic : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNiconName : Argument
-               { Type = string;
-                 Default = "NULL"; };
-       XmNiconNameEncoding : Argument
-               { Type = any;
-                 Default = "dynamic"; };
-
-Class
-       TransientShell : MetaClass
-               {
-               SuperClass = VendorShell;
-               Resources
-                       {
-                       ! new resources
-                       XmNtransientFor;
-                       ! inherited resources
-               };
-       };
-
-Resource
-       XmNtransientFor : Argument
-               { Type = widget_ref;
-                 Default = "NULL"; };
-
-\f
-! Immediate subclasses of TransientShell
-
-Class
-       XmDialogShell : Widget
-               { 
-               SuperClass = TransientShell;
-               ConvenienceFunction = XmCreateDialogShell;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       XmNdeleteResponse { Default = "XmUNMAP"; };
-                       };
-               Controls
-                       {
-                       ManagerWidgets;
-                       };
-       };
-
-\f
-! Immediate subclasses of OverrideShell
-
-Class
-       XmMenuShell : Widget
-               {
-               SuperClass = OverrideShell;
-               ConvenienceFunction = XmCreateMenuShell;
-               Resources
-                       {
-                       ! new resources
-                       XmNbuttonFontList;
-                       XmNdefaultFontList;
-                       XmNlabelFontList;
-                       XmNbuttonRenderTable;
-                       XmNlabelRenderTable;
-                       XmNtextRenderTable;
-                       ! inherited resources
-                       XmNallowShellResize { Default = "True"; };
-               };
-               Controls
-                       {
-                       XmRowColumn;
-                       XmRenderTable;
-                       };
-       };
-
-\f
-! Immediate subclasses of XmManager
-
-Class
-       XmDrawingArea : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateDrawingArea;
-               Resources
-                       {
-                       ! new resources
-                       XmNconvertCallback;
-                       XmNdestinationCallback;
-                       XmNexposeCallback;
-                       XmNinputCallback;
-                       XmNmarginHeight { Default = "10"; };
-                       XmNmarginWidth { Default = "10"; };
-                       XmNresizeCallback;
-                       XmNresizePolicy;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Resource
-       XmNconvertCallback : Reason
-               { };
-       XmNexposeCallback : Reason
-               { };
-       XmNinputCallback : Reason
-               { };
-       XmNresizeCallback : Reason
-               { };
-       XmNresizePolicy : Argument
-               { Type = integer;
-                 EnumerationSet = ResizePolicy;
-                 Default = "XmRESIZE_ANY"; };
-
-Class
-       XmFrame : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateFrame;
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Resources
-                       {
-                       ! new resources
-                       XmNmarginHeight { Default = "0"; };
-                       XmNmarginWidth  { Default = "0"; };
-                       XmNshadowType;
-                       ! constraint resources
-                       XmNchildHorizontalAlignment;
-                       XmNchildHorizontalSpacing;
-                       XmNchildType;
-                       XmNframeChildType;
-                       XmNchildVerticalAlignment;
-                       ! inherited resources
-                       XmNshadowThickness { Default = "dynamic"; };
-                       };
-               };
-Resource
-       XmNshadowType : Argument
-               { Type = integer;
-                 EnumerationSet = ShadowType;
-                 Default = "XmSHADOW_ETCHED_IN"; };
-! constraints
-       XmNchildHorizontalAlignment : Constraint
-               { Type = integer;
-                 EnumerationSet = Alignment;
-                 Default = "XmALIGNMENT_BEGINNING"; };
-       XmNchildHorizontalSpacing : Constraint
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNchildType : Constraint
-               { Type = integer;
-                 EnumerationSet = FrameChildType;
-                 Default = "XmFRAME_WORKAREA_CHILD"; };
-       XmNframeChildType : Constraint
-               { Type = integer;
-                 EnumerationSet = FrameChildType;
-                 Default = "XmFRAME_WORKAREA_CHILD"; };
-       XmNchildVerticalAlignment : Constraint
-               { Type = integer;
-                 EnumerationSet = ChildVerticalAlignment;
-                 Default = "XmALIGNMENT_CENTER"; };
-               
-Class
-       XmPanedWindow : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreatePanedWindow;
-               Resources
-                       {
-                       ! new resources
-                       XmNmarginHeight { Default = "3"; };
-                       XmNmarginWidth { Default = "3"; };
-                       XmNorientation;
-                       XmNrefigureMode;
-                       XmNsashHeight;
-                       XmNsashIndent;
-                       XmNsashShadowThickness;
-                       XmNsashWidth;
-                       XmNseparatorOn;
-                       XmNspacing { Default = "8"; };
-                       ! constraint resources
-                       XmNpaneMinimum;
-                       XmNpaneMaximum;
-                       XmNpositionIndex;
-                       XmNskipAdjust;
-                       XmNallowResize;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Resource
-       XmNpositionIndex : Argument
-               { Type = integer;
-                 EnumerationSet = PositionIndex;
-                 Default = "XmLAST_POSITION"; };
-       XmNrefigureMode : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNsashHeight : Argument
-               { Type = horizontal_float;
-                 Default = "10"; };
-       XmNsashIndent : Argument
-               { Type = horizontal_float;
-                 Default = "-10"; };
-       XmNsashShadowThickness : Argument
-               { Type = horizontal_float;
-                 Default = "2"; };
-       XmNsashWidth : Argument
-               { Type = horizontal_float;
-                 Default = "10"; };
-       XmNseparatorOn : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNpaneMinimum : Constraint
-               { Type = horizontal_float;
-                 Default = "1"; };
-       XmNpaneMaximum : Constraint
-               { Type = horizontal_float;
-                 Default = "1000"; };
-       XmNskipAdjust : Constraint
-               { Type = boolean;
-                 Default = "False"; };
-       XmNallowResize : Constraint
-               { Type = boolean;
-                 Default = "False"; };
-
-Class
-       XmScale : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateScale;
-               Resources
-                       {
-                       ! new resources
-                       XmNconvertCallback;
-                       XmNdecimalPoints;
-                       XmNdragCallback;
-                       XmNeditable;
-                       XmNfontList { Default = "Fixed"; };
-                       XmNrenderTable;
-                       XmNhighlightOnEnter { Default = "False"; };     
-                       XmNhighlightThickness { Default = "0"; };
-                       XmNmaximum { Default = "100"; };
-                       XmNminimum { Default = "0"; };
-                       XmNorientation { Default = "XmVERTICAL"; };
-                       XmNprocessingDirection {Default = "XmMAX_ON_TOP"; };
-                       XmNscaleHeight;
-                       XmNscaleMultiple;
-                       XmNscaleWidth;
-                       XmNshowArrows;
-                       XmNshowValue;
-                       XmNsliderVisual;
-                       XmNslidingMode;
-                       XmNtitleString;
-                       XmNvalue { Default = "0"; };
-                       XmNvalueChangedCallback;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_Title;
-                       };
-               };
-Child
-       Xm_Title : XmLabel;
-
-Resource
-       
-!      XmNdecimalPoints: Argument
-!              { Type = integer;
-!                Default = "0"; };
-       XmNdecimalPoints: Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNscaleHeight: Argument
-               { Type = vertical_float;
-                 Default = "0"; };     
-       XmNscaleMultiple: Argument
-               { Type = integer;
-                 Default = "1"; };     
-       XmNscaleWidth: Argument
-               { Type = horizontal_float;
-                 Default = "0"; };     
-       XmNshowValue: Argument
-               { Type = integer;
-                 EnumerationSet = ScaleShowValue;
-                 Default = "XmNONE"; };        
-       XmNtitleString: Argument
-               { Type = compound_string;
-                 Default = "Null"; };  
-                
-Class
-       XmScrolledWindow : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateScrolledWindow;
-               Resources
-                       {
-                       ! new resources
-                       XmNautoDragModel;
-                       XmNclipWindow { Exclude = True; };
-                       XmNhorizontalScrollBar { Default = "Null"; };
-                       XmNscrollBarDisplayPolicy { Default = "XmSTATIC"; };
-                       XmNscrollBarPlacement { Default = "XmBOTTOM_RIGHT"; };
-                       XmNscrolledWindowMarginHeight;
-                       XmNscrolledWindowMarginWidth;
-                       XmNscrollingPolicy;
-                       XmNspacing { Default = "4"; };
-                       XmNtraverseObscuredCallback;
-                       XmNverticalScrollBar { Default = "Null"; };
-                       XmNvisualPolicy;
-                       XmNworkWindow;
-                       ! inherited resources
-                       ! constraint resources
-                       XmNscrolledWindowChildType;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_VertScrollBar;
-                       Xm_HorScrollBar;
-                       };
-               };
-Child
-       Xm_VertScrollBar : XmScrollBar;
-       Xm_HorScrollBar : XmScrollBar;
-
-Resource
-       XmNclipWindow : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNscrollingPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = ScrollingPolicy;
-                 Default = "XmAPPLICATION_DEFINED"; };
-       XmNvisualPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = VisualPolicy;
-                 Default = "XmVARIABLE"; };
-       XmNworkWindow : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNscrolledWindowChildType : Constraint
-               { Type = integer;
-                 EnumerationSet = ScrolledWindowChildType; };
-
-Class
-       XmComboBox : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateComboBox;
-               Resources
-                       {
-                       ! new resources
-                       XmNarrowSize;
-                       XmNarrowSpacing;
-                       XmNcolumns { Default = "XmUNSPECIFIED_COUNT"; };
-                       XmNcomboBoxType;                        
-                       XmNfontList;
-                       XmNhighlightThickness;
-                       XmNitems { Default = "XmUNSPECIFIED"; };
-                       XmNitemCount { Default = "XmUNSPECIFIED_COUNT"; };
-                       XmNmarginHeight;
-                       XmNmarginWidth;
-                       XmNmatchBehavior;
-                       XmNlist;
-                       XmNpositionMode;
-                       XmNrenderTable;
-                       XmNselectionCallback;
-                       XmNselectedItem;
-                       XmNselectedPosition;
-                       XmNtextField;
-                       XmNvisibleItemCount { Default = "XmUNSPECIFIED_COUNT";};
-
-                       ! inherited resources
-                       XmNnavigationType { Default = "XmSTICKY_TAB_GROUP"; };
-                       XmNshadowThickness { Default = "dynamic"; };
-                       };
-!
-! Do the XmNtextField and XmNlist need to be defined in the Children/Controls
-!
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_List;
-                       Xm_Text;
-                       Xm_TextField;
-                       };
-               };
-
-Child
-       Xm_List : XmList;
-       Xm_TextField : XmTextField;
-
-Resource
-       XmNarrowSize : Argument
-               { Type = horizontal_float;
-                 Default = XmINVALID_DIMENSION; };
-       XmNarrowSpacing : Argument
-               { Type = horizontal_float;
-                 Default = XmINVALID_DIMENSION; };
-       XmNselectionCallback : Reason
-               { };
-       XmNselectedItem : Argument
-               { Type = compound_string;
-                 Default = "NULL"; };
-       XmNselectedPosition : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNcomboBoxType : Argument
-               { Type = integer;
-                 EnumerationSet = ComboBoxType;
-                 Default = "XmDROP_DOWN_LIST"; };
-       XmNlist : Argument
-               { Type = widget_ref;
-                 Default = "NULL"; };
-       XmNtextField : Argument
-               { Type = widget_ref;
-                 Default = "NULL"; };
-       XmNpositionMode : Argument
-               { Type = integer;
-                 EnumerationSet = PositionMode;
-                 Default = "XmZERO_BASED"; };
-
-Class
-       XmContainer : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateContainer;
-               Resources
-                       {
-                       ! new resources
-                       XmNautomaticSelection { Default = "XmAUTO_SELECT"; };
-                       XmNcollapsedStatePixmap;
-                       XmNconvertCallback;
-                       XmNdefaultActionCallback;
-                       XmNdestinationCallback;
-                       XmNdetailColumnHeading;
-                       XmNdetailColumnHeadingCount;
-                       XmNdetailOrder;
-                       XmNdetailOrderCount;
-                       XmNdetailTabList;
-                       XmNentryViewType;
-                       XmNexpandedStatePixmap;
-                       XmNlargeCellHeight;
-                       XmNlargeCellWidth;
-                       XmNlayoutType;
-                       XmNmarginHeight;
-                       XmNmarginWidth;
-                       XmNoutlineButtonPolicy;
-                       XmNoutlineChangedCallback;
-                       XmNoutlineColumnWidth;
-                       XmNoutlineIndentation;
-                       XmNoutlineLineStyle;
-                       XmNprimaryOwnership;
-                       XmNrenderTable;
-                       XmNresizeHeight;
-                       XmNresizeWidth;
-                       XmNselectColor;
-                       ! Cannot support the next two without
-                       ! a widget table data type
-                       ! XmNselectedObjects;
-                       ! XmNselectedObjectCount;
-                       XmNselectionCallback;
-                       XmNselectionPolicy;
-                       XmNselectionTechnique;
-                       XmNsmallCellHeight;
-                       XmNsmallCellWidth;
-                       XmNspatialIncludeModel;
-                       XmNspatialResizeModel;
-                       XmNspatialSnapModel;
-                       XmNspatialStyle;
-                       ! constraint resources
-                       XmNentryParent;
-                       XmNoutlineState;
-                       XmNlargeIconX;
-                       XmNlargeIconY;
-                       XmNpositionIndex;
-                       XmNsmallIconX;
-                       XmNsmallIconY;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Resource
-       XmNcollapsedStatePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNdetailColumnHeading : Argument
-               { Type = string_table;
-                 Default = "NULL"; 
-                 Related = XmNdetailColumnHeadingCount; };
-       XmNdetailColumnHeadingCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNdetailOrder : Argument
-               { Type = integer_table;
-                 Default = "NULL"; 
-                 Related = XmNdetailOrderCount; };
-       XmNdetailOrderCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNdetailTabList : Argument
-               { Type = widget_ref;
-                 Default = "NULL"; };
-       XmNentryViewType : Argument
-               { Type = integer;
-                 EnumerationSet = EntryViewType;
-                 Default = "XmLARGE_ICON"; };
-       XmNexpandedStatePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNlargeCellHeight : Argument
-               { Type = vertical_float; };
-       XmNlargeCellWidth : Argument
-               { Type = horizontal_float; };
-       XmNlayoutDirection : Argument
-               { Type = integer;
-                 EnumerationSet = LayoutDirection;
-                 Default = "XmLEFT_TO_RIGHT_TOP_TO_BOTTOM"; };
-       XmNlayoutType : Argument
-               { Type = integer;
-                 EnumerationSet = LayoutType;
-                 Default = "XmSPATIAL"; };
-       XmNoutlineButtonPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = OutlineButtonPolicy;
-                 Default = "XmOUTLINE_BUTTON_PRESENT"; };
-       XmNoutlineChangedCallback : Reason
-               { };
-       XmNoutlineColumnWidth : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNoutlineIndentation : Argument
-               { Type = horizontal_float;
-                 Default = "100"; };
-       XmNoutlineLineStyle : Argument
-               { Type = integer;
-                 EnumerationSet = ContainerLineStyle;
-                 Default = "XmSINGLE"; };
-       XmNselectionTechnique : Argument
-               { Type = integer;
-                 EnumerationSet = SelectionTechnique;
-                 Default = "XmTOUCH_OVER"; };
-       XmNsmallCellHeight : Argument
-               { Type = vertical_float; };
-       XmNsmallCellWidth : Argument
-               { Type = horizontal_float; };
-       XmNspatialIncludeModel : Argument
-               { Type = integer;
-                 EnumerationSet = SpatialIncludeModel;
-                 Default = "XmAPPEND"; };
-       XmNspatialResizeModel : Argument
-               { Type = integer;
-                 EnumerationSet = SpatialResizeModel;
-                 Default = "XmGROW_MINOR"; };
-       XmNspatialSnapModel : Argument
-               { Type = integer;
-                 EnumerationSet = SpatialSnapModel;
-                 Default = "XmNONE"; };
-       XmNspatialStyle : Argument
-               { Type = integer;
-                 EnumerationSet = SpatialStyle;
-                 Default = "XmSPECIFIC"; };
-       ! constraint resources
-       XmNentryParent : Constraint
-               { Type = widget_ref;
-                 Default = "NULL"; };
-       XmNoutlineState : Constraint
-               { Type = integer;
-                 EnumerationSet = OutlineState;
-                 Default = "XmCOLLAPSED"; };
-       XmNlargeIconX : Constraint
-               { Type = horizontal_float; };
-       XmNlargeIconY : Constraint
-               { Type = vertical_float; };
-       XmNsmallIconX : Constraint
-               { Type = horizontal_float; };
-       XmNsmallIconY : Constraint
-               { Type = vertical_float; };
-
-Class
-       XmNotebook : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateNotebook;
-               Resources
-                       {
-                       ! new resources
-                       XmNcurrentPageNumber;
-                       XmNfirstPageNumber;
-                       XmNlastPageNumber;
-                       XmNorientation;
-                       XmNbackPagePlacement;
-                       XmNbackPageNumber;
-                       XmNbackPageSize;
-                       XmNbackPageForeground;
-                       XmNbackPageBackground;
-                       XmNframeBackground;
-                       XmNbindingType;
-                       XmNbindingPixmap;
-                       XmNbindingWidth;
-                       XmNinnerMarginWidth;
-                       XmNinnerMarginHeight;
-                       XmNmajorTabSpacing;
-                       XmNminorTabSpacing;
-                       XmNframeShadowThickness;
-                       XmNpageChangedCallback;
-                       ! constraint resources
-                       XmNnotebookChildType;
-                       XmNpageNumber;
-                       XmNresizable;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Resource
-       XmNcurrentPageNumber : Argument
-               { Type = integer; };
-       XmNfirstPageNumber : Argument
-               { Type = integer;
-                 Default = "1"; };
-       XmNlastPageNumber : Argument
-               { Type = integer; };
-       XmNbackPagePlacement : Argument
-               { Type = integer; };
-       XmNbackPageNumber : Argument
-               { Type = integer; };
-       XmNbackPageSize : Argument
-               { Type = horizontal_float; };
-       XmNbackPageForeground : Argument
-               { Type = color; };
-       XmNbackPageBackground : Argument
-               { Type = color; };
-       XmNframeBackground : Argument
-               { Type = color; };
-       XmNbindingType : Argument
-               { Type = integer;
-                 EnumerationSet = BindingType; };
-       XmNbindingPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       XmNbindingWidth : Argument
-               { Type = horizontal_float;
-                 Default = "25"; };
-       XmNinnerMarginWidth : Argument
-               { Type = horizontal_float; };
-       XmNinnerMarginHeight : Argument
-               { Type = vertical_float; };
-       ! I am going out on a limb here, but I think tabs will usually
-       ! be situated vertically up and down the notebook. Therefore,
-       ! let us make the next two resources vertical floats even though
-       ! spacing resources which are used for both vertical and
-       ! horizontal dimensions are type as horizontal float by default.
-       XmNmajorTabSpacing : Argument
-               { Type = vertical_float; };
-       XmNminorTabSpacing : Argument
-               { Type = vertical_float; };
-       XmNnotebookChildType : Constraint
-               { Type = integer;
-                 EnumerationSet = NotebookChildType; };
-       XmNframeShadowThickness : Argument
-               { Type = horizontal_float; };
-       XmNpageChangedCallback : Reason
-               { };
-       XmNpageNumber : Constraint
-               { Type = integer; };
-
-Class
-       XmSpinBox : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateSpinBox;
-               Resources
-                       {
-                       ! new resources
-                       XmNarrowLayout;
-                       XmNarrowOrientation;
-                       XmNarrowSize;
-                       XmNdefaultArrowSensitivity;
-                       XmNinitialDelay;
-                       XmNmarginWidth;
-                       XmNmarginHeight;
-                       XmNmodifyVerifyCallback;
-                       XmNrepeatDelay;
-                       XmNspacing { Default = "0"; };
-                       XmNvalueChangedCallback;
-
-                       ! inherited resources
-                       !XmNactivateCallback;
-                       !XmNlosingFocusCallback;
-                       !XmNnavigationType;
-                       !XmNtraversalOn;
-
-                       ! constraint resources
-                       XmNarrowSensitivity;
-                       XmNdecimalPoints;
-                       XmNincrementValue;
-                       XmNmaximumValue;
-                       XmNminimumValue;
-                       XmNnumValues;
-                       XmNposition;
-                       XmNpositionType;
-                       XmNspinBoxChildType;
-                       XmNvalues;
-
-                       ! undocumented resources
-                       !XmNwrap;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Resource
-       XmNdefaultArrowSensitivity : Argument
-               { Type = integer;
-                 EnumerationSet = ArrowSensitivity;
-                 Default = "XmARROWS_SENSITIVE"; };
-       XmNarrowLayout : Argument
-               { Type = integer;
-                 EnumerationSet = ArrowLayout;
-                 Default = "XmARROWS_END"; };
-       XmNarrowOrientation : Argument
-               { Type = integer;
-                 EnumerationSet = ArrowOrientation;
-                 Default = "XmARROWS_VERTICAL"; };
-       XmNspinBoxChildType : Constraint
-               { Type = integer;
-                 EnumerationSet = SpinBoxChildType; };
-       XmNpositionType : Constraint
-               { Type = integer;
-                 EnumerationSet = PositionType;
-                 Default = "XmPOSITION_VALUE"; };
-       XmNposition : Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNnumValues : Constraint
-               { Type = integer;
-                Default = "0"; };
-       XmNvalues : Constraint
-               { Type = string_table;
-                 Default = "NULL"; 
-                 Related = XmNnumValues; };
-       XmNminimumValue : Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNmaximumValue : Constraint
-               { Type = integer;
-                 Default = "10"; };
-       XmNincrementValue : Constraint
-               { Type = integer;
-                 Default = "1"; };
-       XmNarrowSensitivity : Constraint
-               { Type = integer;
-                 EnumerationSet = ArrowSensitivity;
-                 Default = "XmARROWS_DEFAULT_SENSITIVITY"; };
-       XmNwrap : Constraint
-               { Type = boolean;
-                 Default = "True"; };
-
-                 
-
-Class
-       XmSimpleSpinBox : Widget
-               {
-               SuperClass = XmSpinBox;
-               ConvenienceFunction = XmCreateSimpleSpinBox;
-               Resources
-                       {
-                       ! inherited resources
-                       XmNshadowThickness { Default = "1"; };
-                       ! new resources
-                       XmNarrowSensitivity;
-                       XmNcolumns;
-                       XmNdecimalPoints;
-                       XmNeditable;
-                       XmNincrementValue;
-                       XmNmaximumValue;
-                       XmNminimumValue;
-                       XmNnumValues;
-                       XmNposition;
-                       XmNpositionType;
-                       XmNspinBoxChildType { Default = "XmSTRING"; };
-                       XmNtextField;
-                       XmNvalues;
-                       ! undocumented resources
-                       !XmNwrap;
-                       };
-!
-! Does the XmNtextField need to be defined in the Children/Controls
-!
-               Controls
-                       {
-                       XmTextField;
-                       };
-               };
-
-
-\f
-! Bulletin board inherits from XmManager. Its Dialog variant is treated
-! as a subclass
-
-Class
-       XmBulletinBoard : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateBulletinBoard;
-               Resources
-                       {
-                       ! new resources
-                       XmNallowOverlap;
-                       XmNautoUnmanage;
-                       XmNbuttonFontList;
-                       XmNcancelButton;
-                       XmNdefaultButton;
-                       XmNdefaultPosition;
-                       XmNdialogStyle;
-                       XmNdialogTitle;
-                       XmNfocusCallback;
-                       XmNlabelFontList;
-                       XmNlosingFocusCallback;
-                       XmNmapCallback;
-                       XmNmarginHeight { Default = "10";};
-                       XmNmarginWidth { Default = "10";};
-                       XmNnoResize;
-                       XmNresizePolicy{ Default = "XmRESIZE_ANY"; };
-                       XmNshadowType { Default = "XmSHADOW_OUT";};
-                       XmNtextFontList;
-                       XmNtextTranslations;
-                       XmNunmapCallback;
-                       XmNbuttonRenderTable;
-                       XmNlabelRenderTable;
-                       XmNtextRenderTable;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-Resource
-       XmNallowOverlap : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNautoUnmanage : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNbuttonFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       XmNcancelButton : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNdefaultButton : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNdefaultPosition: Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNdialogStyle : Argument
-               { Type = integer;
-                 EnumerationSet = DialogStyle;
-                 Default = "dynamic"; };
-       XmNdialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNlabelFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       XmNmapCallback : Reason
-               { };
-       XmNnoResize : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNtextFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       XmNtextTranslations : Argument
-               { Type = translation_table;
-                 Default = "Null"; };
-       XmNunmapCallback : Reason
-               { };
-       XmNbuttonRenderTable : Argument
-               { Type = widget_ref;
-                 Default = "dynamic"; };
-       XmNlabelRenderTable : Argument
-               { Type = widget_ref;
-                 Default = "dynamic"; };
-       XmNtextRenderTable : Argument
-               { Type = widget_ref;
-                 Default = "dynamic"; };
-
-Class
-       XmBulletinBoardDialog : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = XmCreateBulletinBoardDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-\f
-! RowColumn is instantiated as a number of different apparent widget
-! classes. There is a UIL widget for each creation routine, which
-! appears like a discrete class. All inherit from XmManager in fact,
-! but are made to appear as subclasses of RowColumn to make resource
-! specification easier
-
-Class
-       XmRowColumn : Widget
-               {
-               SuperClass = XmManager;
-               ConvenienceFunction = XmCreateRowColumn;
-               Resources
-                       {
-                       ! new resources
-                       XmNadjustLast;
-                       XmNadjustMargin;
-                       XmNentryAlignment;
-                       XmNentryBorder;
-                       XmNentryCallback;
-                       XmNentryClass;
-                       XmNentryVerticalAlignment;
-                       XmNisAligned;
-                       XmNisHomogeneous;
-                       XmNlabelString { Default = "Null"; };
-                       XmNmapCallback;
-                       XmNmarginHeight{ Default = "dynamic";};
-                       XmNmarginWidth { Default = "3";};
-                       XmNmenuAccelerator;
-                       XmNmenuHelpWidget;
-                       XmNmenuHistory;
-                       XmNmenuPost;
-                       XmNmnemonic { Default = "dynamic"; };
-                       XmNmnemonicCharSet;
-                       XmNnumColumns;
-                       XmNorientation { Default = "dynamic"; };
-                       XmNpacking;
-                       XmNpopupEnabled;
-                       XmNradioAlwaysOne;
-                       XmNradioBehavior;
-                       XmNresizeHeight { Default = "True"; };
-                       XmNresizeWidth { Default = "True"; };
-                       XmNrowColumnType;
-                       XmNspacing { Default = "dynamic"; };
-                       XmNsubMenuId { Default = "Null";};
-                       XmNtearOffMenuActivateCallback;
-                       XmNtearOffMenuDeactivateCallback;
-                       XmNtearOffModel;
-                       XmNtearOffTitle;
-                       XmNunmapCallback;
-                       XmNwhichButton;
-                       ! constraint resources
-                       XmNpositionIndex;
-                       ! inherited resources
-                       XmNborderWidth { Default = "0"; };
-                       XmNheight { Default = "dynamic"; };
-                       XmNnavigationType { Default = "dynamic"; };
-                       XmNwidth { Default = "dynamic"; };
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Resource
-       XmNadjustLast : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNadjustMargin : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNentryAlignment : Argument
-               { Type = integer;
-                 EnumerationSet = Alignment;
-                 Default = "dynamic"; };
-       XmNentryBorder  : Argument
-               { Type = horizontal_float;
-                 Default = "dynamic"; };
-       XmNentryCallback : Reason
-               { };
-       XmNentryClass   : Argument
-               { Type = class_rec_name;
-                 Default = "dynamic"; };
-       XmNentryVerticalAlignment : Argument
-               { Type = integer;
-                 EnumerationSet = VerticalAlignment;
-                 Default = "XmALIGNMENT_CENTER"; };
-       XmNisAligned    : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNisHomogeneous        : Argument
-               { Type = boolean;
-                 Default = "dynamic"; };
-       XmNmenuAccelerator : Argument
-               { Type = string;
-                 Default = "dynamic"; };
-!      XmNmenuTranslation : Argument
-!              { Type = translation_table;
-!                Default = "NULL"; };
-       XmNmenuHelpWidget : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNmenuHistory  : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNmenuPost     : Argument
-               { Type = string;
-                 Default = "Null"; };
-       XmNnumColumns   : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-       XmNpacking : Argument
-               { Type = integer;
-                 EnumerationSet = Packing;
-                 Default = "dynamic"; };
-       XmNpopupEnabled : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNradioAlwaysOne : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNradioBehavior : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNrowColumnType : Argument
-               { Type = integer;
-                 EnumerationSet = RowColumnType;
-                 Default = "XmWORK_AREA"; };
-       XmNtearOffMenuActivateCallback : Reason
-               { };
-       XmNtearOffMenuDeactivateCallback : Reason
-               { };
-       XmNtearOffModel : Argument
-               { Type = integer;
-                 EnumerationSet = TearOffModel;
-                 Default = "XmTEAR_OFF_DISABLED"; };
-       XmNtearOffTitle : Argument
-               { Type = string;
-                 Default = "NULL"; };
-       XmNunpostBehavior : Argument
-               { Type = integer;
-                 EnumerationSet = UnpostBehavior;
-                 Default = "XmUNPOST_AND_REPLAY"; };
-       XmNwhichButton : Argument
-               { Type = integer;
-                 Default = "dynamic"; };
-
-Class
-       XmWorkArea : Widget
-               {
-               SuperClass = XmRowColumn;
-               ConvenienceFunction = XmCreateWorkArea;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmMenuBar : Widget
-               {
-               SuperClass = XmRowColumn;
-               ConvenienceFunction = XmCreateMenuBar;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       MenuWidgetsAndGadgets;
-                       XmPopupMenu;
-                       XmPulldownMenu;
-                       };
-               };
-
-
-Class
-       XmOptionMenu : Widget
-               {
-               SuperClass = XmRowColumn;
-               ConvenienceFunction = XmCreateOptionMenu;
-               ControlsMapToResource = XmNsubMenuId;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       XmPulldownMenu;
-                       };
-               Children
-                       {
-                       Xm_OptionLabel;
-                       Xm_OptionButton;
-                       };
-               };
-
-Child
-       Xm_OptionLabel  : XmLabelGadget;
-       Xm_OptionButton : XmCascadeButtonGadget;
-
-Class
-       XmPopupMenu : Widget
-               {
-               SuperClass = XmRowColumn;
-               ParentClass = XmMenuShell;
-               ConvenienceFunction = XmCreatePopupMenu;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       MenuWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_TearOffControl;
-                       };
-               };
-
-Child
-       Xm_TearOffControl : XmTearOffButton;
-
-Class
-       XmPulldownMenu : Widget
-               {
-               SuperClass = XmRowColumn;
-               ParentClass = XmMenuShell;
-               ConvenienceFunction = XmCreatePulldownMenu;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       MenuWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_TearOffControl;
-                       };
-               };
-
-Class
-       XmRadioBox : Widget
-               {
-               SuperClass = XmRowColumn;
-               ConvenienceFunction = XmCreateRadioBox;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-!
-! Fix for CR 5651 - add information for the CheckBox
-!
-Class
-       XmCheckBox : Widget
-               {
-               SuperClass = XmRowColumn;
-               ConvenienceFunction = XmCreateSimpleCheckBox;
-               Resources
-                       {
-                       XmNbuttonCount;
-                       XmNbuttons;
-                       XmNsimpleCallback;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-Resource
-       XmNbuttons : Argument
-               { Type = string_table;
-                 Default = "NULL";
-                 Related = XmNbuttonCount; };
-       XmNbuttonCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNsimpleCallback : Reason
-               { };
-!
-! End Fix for CR 5651
-!
-
-\f
-! Immediate subclasses of XmScrolledWindow
-
-Class
-       XmMainWindow : Widget
-               {
-               SuperClass = XmScrolledWindow;
-               ConvenienceFunction = XmCreateMainWindow;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       XmNcommandWindow;
-                       XmNcommandWindowLocation;
-                       XmNmainWindowMarginHeight;
-                       XmNmainWindowMarginWidth;
-                       XmNmenuBar;
-                       XmNmessageWindow;
-                       XmNshowSeparator;
-                       ! inherited constraint resources
-                       XmNscrolledWindowChildType;
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_Separator1;                  
-                       Xm_Separator2;
-                       Xm_Separator3;
-                       };
-               };
-Child
-       Xm_Separator1 : XmSeparator;
-       Xm_Separator2 : XmSeparator;
-       Xm_Separator3 : XmSeparator;
-
-Resource
-       XmNcommandWindow : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNcommandWindowLocation : Argument
-               { Type = integer;
-                 EnumerationSet = CommandWindowLocation;
-                 Default = "XmCOMMAND_ABOVE_WORKSPACE"; };
-       XmNmainWindowMarginHeight : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNmainWindowMarginWidth : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNmenuBar : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNmessageWindow : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNshowSeparator : Argument
-               { Type = boolean;
-                 Default = "False"; };
-
-\f
-! Immediate subclasses of XmBulletinBoard
-! For each class, the Dialog variant is treated as a subclass
-
-Class
-       XmForm : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ConvenienceFunction = XmCreateForm;
-               Resources
-                       {
-                       ! new resources
-                       XmNfractionBase;
-                       XmNhorizontalSpacing;
-                       XmNrubberPositioning;
-                       XmNverticalSpacing;
-                       ! constraint resources
-                       XmNbottomAttachment;
-                       XmNbottomOffset;
-                       XmNbottomPosition;
-                       XmNbottomWidget;
-                       XmNleftAttachment;
-                       XmNleftOffset;
-                       XmNleftPosition;
-                       XmNleftWidget;
-                       XmNresizable;
-                       XmNrightAttachment;
-                       XmNrightOffset;
-                       XmNrightPosition;
-                       XmNrightWidget;
-                       XmNtopAttachment;
-                       XmNtopOffset;
-                       XmNtopPosition;
-                       XmNtopWidget;
-                       ! inherited resources
-                       };                      
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-Resource
-       XmNfractionBase : Argument
-               { Type = integer;
-                 Default = "100"; };
-       XmNhorizontalSpacing : Argument
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNverticalSpacing : Argument
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNrubberPositioning : Argument
-               { Type = boolean;
-                 Default = "False"; };
-! constraints
-       XmNbottomAttachment : Constraint
-               { Type = integer;
-                 EnumerationSet = Attachment;
-                 Default = "XmATTACH_NONE"; };
-       XmNbottomOffset : Constraint
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNbottomPosition : Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNbottomWidget : Constraint
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNleftAttachment : Constraint
-               { Type = integer;
-                 EnumerationSet = Attachment;
-                 Default = "XmATTACH_NONE"; };
-       XmNleftOffset : Constraint
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNleftPosition : Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNleftWidget : Constraint
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNresizable : Constraint
-               { Type = boolean;
-                 Default = "True"; };
-       XmNrightAttachment : Constraint
-               { Type = integer;
-                 EnumerationSet = Attachment;
-                 Default = "XmATTACH_NONE"; };
-       XmNrightOffset : Constraint
-               { Type = horizontal_float;
-                 Default = "0"; };
-       XmNrightPosition : Constraint
-               { Type = integer;
-                 Default = "0"; };
-       XmNrightWidget : Constraint
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNtopAttachment : Constraint
-               { Type = integer;
-                 EnumerationSet = Attachment;
-                 Default = "XmATTACH_NONE"; };
-       XmNtopOffset : Constraint
-               { Type = vertical_float;
-                 Default = "0"; };
-       XmNtopWidget : Constraint
-               { Type = widget_ref;
-                 Default = "Null"; };
-       XmNtopPosition : Constraint
-               { Type = integer;
-                 Default = "0"; };
-
-Class
-       XmFormDialog : Widget
-               {
-               SuperClass = XmForm;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = XmCreateFormDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-\f
-! Immediate subclass of XmBulletinBoard
-
-! Most Dialogs are variants of MessageBox, and are treated as subclasses.
-
-Class
-       XmMessageBox : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ConvenienceFunction = XmCreateMessageBox;
-               Resources
-                       {
-                       ! new resources
-                       XmNcancelCallback;
-                       XmNcancelLabelString;
-                       XmNdefaultButtonType;
-                       XmNdialogType;
-                       XmNhelpLabelString;
-                       XmNmessageAlignment;
-                       XmNmessageString;
-                       XmNminimizeButtons;
-                       XmNokCallback;
-                       XmNokLabelString;
-                       XmNsymbolPixmap;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_Symbol;
-                       Xm_Separator;
-                       Xm_Message;
-                       Xm_OK;
-                       Xm_Cancel;
-                       Xm_Help;
-                       };
-               };
-Child
-       Xm_Symbol : XmLabel;
-       Xm_Separator : XmSeparator;
-       Xm_Message : XmLabel;
-       Xm_OK : XmPushButton;
-       Xm_Cancel : XmPushButton;
-       Xm_Help : XmPushButton;
-
-Resource
-       XmNcancelCallback : Reason
-               { };
-       XmNcancelLabelString : Argument
-               { Type = compound_string;
-                 Default = "Cancel"; };
-       XmNdefaultButtonType : Argument
-               { Type = integer;
-                 EnumerationSet = DefaultButtonType;
-                 Default = "XmDIALOG_OK_BUTTON"; };
-       XmNdialogType : Argument
-               { Type = integer;
-                 EnumerationSet = DialogType;
-                 Default = "XmDIALOG_MESSAGE"; };
-       XmNhelpLabelString : Argument
-               { Type = compound_string;
-                 Default = "Help"; };
-       XmNmessageAlignment : Argument
-               { Type = integer;
-                 EnumerationSet = Alignment;
-                 Default = "XmALIGNMENT_BEGINNING"; };
-       XmNmessageString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNminimizeButtons : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNokCallback : Reason
-               { };
-       XmNokLabelString : Argument
-               { Type = compound_string;
-                 Default = "OK"; };
-       XmNsymbolPixmap : Argument
-               { Type = pixmap;
-                 Default = "XmDEFAULT_PIXMAP"; };
-
-
-Class
-       XmMessageDialog : Widget
-               {
-               SuperClass = XmMessageBox;
-               ParentClass = XmDialogShell; 
-               ConvenienceFunction = XmCreateMessageDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmErrorDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateErrorDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmInformationDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateInformationDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmQuestionDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateQuestionDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       XmTemplateDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateTemplateDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       XmWarningDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateWarningDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmWorkingDialog : Widget
-               {
-               SuperClass = XmMessageDialog;
-               ConvenienceFunction = XmCreateWorkingDialog;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-\f
-! Immediate subclass of XmBulletinBoard
-
-! Dialog variants are treated as subclasses
-
-Class
-       XmSelectionBox : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ConvenienceFunction = XmCreateSelectionBox;
-               Resources
-                       {
-                       ! new resources
-                       XmNapplyCallback;
-                       XmNapplyLabelString;
-                       XmNcancelCallback;
-                       XmNcancelLabelString { Default = "cancel"; };
-                       XmNdialogType { Default = "dynamic"; };
-                       XmNhelpLabelString { Default = "help"; };
-                       XmNlistItemCount;
-                       XmNlistItems;
-                       XmNlistLabelString;
-                       XmNlistVisibleItemCount;
-                       XmNminimizeButtons { Default = "False"; };
-                       XmNmustMatch;
-                       XmNnoMatchCallback;
-                       XmNokCallback;
-                       XmNokLabelString;
-                       XmNselectionLabelString;
-                       XmNtextAccelerators;
-                       XmNtextColumns;
-                       XmNtextString;
-                       XmNchildPlacement;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_Items;
-                       Xm_ItemsList;
-                       Xm_Selection;
-                       Xm_Text;
-                       Xm_Separator;
-                       Xm_OK;
-                       Xm_Cancel;
-                       Xm_Help;
-                       Xm_Apply;
-                       };
-               };
-Child
-       Xm_Items                        : XmLabel;
-       Xm_ItemsList                    : XmScrolledList;
-       Xm_Selection                    : XmLabel;
-       Xm_Text                         : XmText;       
-       Xm_Apply                        : XmPushButton;
-
-Resource
-       XmNapplyCallback : Reason
-               { };
-       XmNapplyLabelString : Argument
-               { Type = compound_string;
-                 Default = "Apply"; };
-       XmNlistItemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNlistItems : Argument
-               { Type = string_table;
-                 Default = "Null"; 
-                 Related = XmNlistItemCount; };
-       XmNlistLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNlistVisibleItemCount : Argument
-               { Type = integer;
-                 Default = "8"; };
-       XmNmustMatch : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       XmNnoMatchCallback: Reason
-               { };
-       XmNselectionLabelString : Argument
-               { Type = compound_string;
-                 Default = "Selection"; };
-       XmNtextAccelerators : Argument
-               { Type = translation_table;
-                 Default = ""; };
-       XmNtextColumns : Argument
-               { Type = integer;
-                 Default = "20"; };
-       XmNtextString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNchildPlacement : Constraint
-               { Type = integer;
-                 EnumerationSet = ChildPlacement;
-                 Default = "XmPLACE_ABOVE_SELECTION"; };
-
-Class
-       XmSelectionDialog : Widget
-               {
-               SuperClass = XmSelectionBox;
-               ParentClass = XmDialogShell; 
-               ConvenienceFunction = XmCreateSelectionDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-Class
-       XmPromptDialog : Widget
-               {
-               SuperClass = XmSelectionBox;
-               ParentClass = XmDialogShell; 
-               ConvenienceFunction = XmCreatePromptDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-\f
-! Immediate subclasses of XmSelectionBox
-
-Class
-       XmCommand : Widget
-               {
-               SuperClass = XmSelectionBox;
-               ConvenienceFunction = XmCreateCommand;
-               Resources
-                       {
-                       ! new resources
-                       XmNcommand;
-                       XmNcommandChangedCallback;
-                       XmNcommandEnteredCallback;
-                       XmNhistoryItems;
-                       XmNhistoryItemCount;
-                       XmNhistoryMaxItems;
-                       XmNhistoryVisibleItemCount;
-                       XmNpromptString;
-                       ! inherited resources
-                       XmNapplyCallback { Exclude = True; };
-                       XmNapplyLabelString { Exclude = True; };
-                       XmNautoUnmanage {Exclude = True;};
-                       XmNcancelCallback { Exclude = True; };
-                       XmNcancelLabelString { Exclude = True; };
-                       XmNhelpLabelString { Exclude = True; };
-                       XmNlistLabelString { Exclude = True; };
-                       XmNminimizeButtons { Exclude = True; };
-                       XmNmustMatch { Exclude = True; };
-                       XmNnoMatchCallback { Exclude = True; };
-                       XmNokCallback { Exclude = True; };
-                       XmNokLabelString { Exclude = True; };
-                       XmNallowOverlap { Exclude = True; };
-                       XmNbuttonFontList { Exclude = True; };
-                       XmNcancelButton { Exclude = True; };
-                       XmNdefaultButton { Exclude = True; };
-                       XmNdialogType { Default = "XmDIALOG_COMMAND"; };
-                       };
-               Controls
-                       {
-                       XmPopupMenu;
-                       };
-               };
-Resource
-       XmNcommand : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNcommandChangedCallback : Reason
-               { };
-       XmNcommandEnteredCallback : Reason    
-               { };
-       XmNhistoryItems : Argument
-               { Type = string_table;
-                 Default = "Null";
-                 Related = XmNhistoryItemCount; };
-       XmNhistoryItemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNhistoryMaxItems : Argument
-               { Type = integer;
-                 Default = "100"; };
-       XmNhistoryVisibleItemCount : Argument
-               { Type = integer;
-                 Default = "8"; };
-       XmNpromptString : Argument
-               { Type = compound_string;
-                 Default = ">"; };
-    
-Class
-       XmCommandDialog : Widget
-               {
-               SuperClass = XmCommand;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = XmCreateCommandDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-
-\f
-! Immediate subclass of SelectionBox
-! The Dialog variant is treated as a subclass
-
-Class
-       XmFileSelectionBox : Widget
-               {
-               SuperClass = XmSelectionBox;
-               ConvenienceFunction = XmCreateFileSelectionBox;
-               Resources
-                       {
-                       ! new resources
-                       XmNdirMask;
-                       XmNdirSpec;
-                       XmNfileSearchProc;
-                       XmNfileTypeMask;
-                       XmNfilterLabelString;
-                       XmNlistUpdated;
-                       XmNdirectory;
-                       XmNdirectoryValid;
-                       XmNpattern;
-                       XmNdirListLabelString;
-                       XmNdirListItems;
-                       XmNdirListItemCount;
-                       XmNfileListItemCount;
-                       XmNfileListItems;
-                       XmNnoMatchString;
-                       XmNqualifySearchDataProc;
-                       XmNdirSearchProc;
-                       XmNfileListLabelString;
-                       ! inherited resources
-                       XmNapplyLabelString { Default = "Filter"; };
-                       XmNlistLabelString { Default = "Files"; };
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               Children
-                       {
-                       Xm_FilterLabel;
-                       Xm_FilterText;
-                       Xm_DirList;
-                       Xm_Dir;
-                       Xm_Filter;
-                       };
-               };
-Child
-       Xm_FilterLabel                  : XmLabel;
-       Xm_FilterText                   : XmText;
-       Xm_DirList                      : XmScrolledList;
-       Xm_Dir                          : XmLabel;
-       Xm_Filter                       : XmPushButton;
-
-Resource
-       XmNdirMask : Argument
-               { Type = compound_string;
-                 Default = "*"; };
-       XmNdirSpec : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       XmNfileSearchProc : Argument
-               { Type = any;
-                 Default = "default"; };
-       XmNfilterLabelString : Argument
-               { Type = compound_string;
-                 Default = "File Filter"; };
-       XmNlistUpdated : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNfileTypeMask : Argument
-               { Type = integer;
-                 EnumerationSet = FileTypeMask;
-                 Default = "XmFILE_REGULAR"; };
-       XmNdirectory: Argument
-               { Type = compound_string;
-                 Default = "current working directory"; };
-       XmNdirectoryValid : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       XmNpattern: Argument
-               { Type = compound_string;
-                 Default = "*"; };
-       XmNdirListLabelString: Argument
-               { Type = compound_string;
-                 Default = "Directories"; };
-       XmNdirListItemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNdirListItems : Argument
-               { Type = string_table;
-                 Default = "dynamic"; 
-                 Related = XmNdirListItemCount; };
-       XmNfileListItemCount : Argument
-               { Type = integer;
-                 Default = "0"; };
-       XmNfileListItems : Argument
-               { Type = string_table;
-                 Default = "NULL"; 
-                 Related = XmNfileListItemCount; };
-       XmNnoMatchString: Argument
-               { Type = compound_string;
-                 Default = " [    ] "; };
-       XmNqualifySearchDataProc : Argument
-               { Type = any;
-                 Default = "default"; };
-       XmNdirSearchProc : Argument
-               { Type = any;
-                 Default = "default"; };
-       XmNfileListLabelString: Argument
-               { Type = compound_string;
-                 Default = "Files"; };
-
-Class
-       XmFileSelectionDialog : Widget
-               {
-               SuperClass = XmFileSelectionBox;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = XmCreateFileSelectionDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-\f
-! pseudo-classes for renditions
-Class
-       XmRenderTable : Widget
-               {
-               SuperClass = Object;
-               ConvenienceFunction = _XmCreateRenderTable;
-               Controls
-                       {
-                       XmRendition;
-                       };
-               };
-
-Class
-       XmRendition : Widget
-               {
-               SuperClass = Object;
-               ConvenienceFunction = _XmCreateRendition;
-               Resources
-                       {
-                       XmNfontName;
-                       XmNfontType;
-                       XmNloadModel;
-                       XmNfont;
-                       XmNrenditionBackground;
-                       XmNrenditionForeground;
-                       XmNunderlineType;
-                       XmNstrikethruType;
-                       };
-               Controls
-                       {
-                       XmTabList;
-                       };
-               };
-
-Resource
-       XmNfontName : Argument
-                { Type = string;
-                  Default = "XmAS_IS"; };
-       XmNfontType : Argument
-                { Type = integer;
-                  EnumerationSet = FontType;
-                  Default = "XmAS_IS"; };
-       XmNloadModel : Argument
-                { Type = integer;
-                  EnumerationSet = LoadModel;
-                  Default = "XmAS_IS"; };
-       XmNfont : Argument
-                { Type = font;
-                  Default = "XmAS_IS"; };
-       XmNrenditionBackground : Argument
-               { Type = color;
-                 Default = "XmUNSPECIFIED_PIXEL"; };
-       XmNrenditionForeground : Argument
-               { Type = color;
-                 Default = "XmUNSPECIFIED_PIXEL"; };
-       XmNunderlineType : Argument
-                { Type = integer;
-                  EnumerationSet = LineType;
-                  Default = "XmAS_IS"; };
-       XmNstrikethruType : Argument
-                { Type = integer;
-                  EnumerationSet = LineType;
-                  Default = "XmAS_IS"; };
-
-Class
-       XmTabList : Widget
-               {
-               SuperClass = Object;
-               ConvenienceFunction = _XmCreateTabList;
-               Controls
-                       {
-                       XmTab;
-                       };
-               };
-
-Class
-       XmTab : Widget
-               {
-               SuperClass = Object;
-               ConvenienceFunction = _XmCreateTab;
-               Resources
-                       {
-                       XmNtabValue;
-                       XmNunitType;
-                       XmNoffsetModel;
-                       XmNalignment { Default = "XmALIGNMENT_BEGINNING"; };
-                       XmNdecimal;
-                       };
-               };
-
-Resource
-       XmNtabValue : Argument
-               { Type = float;
-                 Default = "0.0"; };
-       XmNoffsetModel : Argument
-               { Type = integer;
-                 EnumerationSet = OffsetModel;
-                 Default = "XmABSOLUTE"; };
-       XmNdecimal : Argument
-               { Type = string;
-                 Default = "."; };
-
-\f
-! the user-defined class
-Class
-       user_defined : Widget
-               {
-               ConvenienceFunction = user_defined ;
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-! Fake resource for COMPOUND_STRING_COMPONENT
-Resource
-       XmStringComponent : Argument
-               { Type = integer;
-                 EnumerationSet = CompoundStringComponent; };
-
-
-!
-! Dt Enumeration Sets
-!
-EnumerationSet
-       DtCharCursorStyle : integer
-               { DtTERM_CHAR_CURSOR_BOX;
-                 DtTERM_CHAR_CURSOR_BAR;
-                 DtTERM_CHAR_CURSOR_INVISIBLE; };
-       DtExecutionPolicy : integer
-               { DtHELP_EXECUTE_NONE;
-                 DtHELP_EXECUTE_QUERY_ALL;
-                 DtHELP_EXECUTE_QUERY_UNALIASED;
-                 DtHELP_EXECUTE_ALL; };
-       DtHelpType : integer
-               { DtHELP_TYPE_TOPIC;
-                 DtHELP_TYPE_STRING;
-                 DtHELP_TYPE_MAN_PAGE;
-                 DtHELP_TYPE_FILE;
-                 DtHELP_TYPE_DYNAMIC_STRING; };
-       DtPaperSize : integer
-               { DtHELP_PAPERSIZE_LETTER;
-                 DtHELP_PAPERSIZE_LEGAL;
-                 DtHELP_PAPERSIZE_EXECUTIVE;
-                 DtHELP_PAPERSIZE_A4;
-                 DtHELP_PAPERSIZE_B5; };
-       DtPrintDestination : integer
-               { DtPRINT_NO_DESTINATION;
-                 DtPRINT_TO_PRINTER;
-                 DtPRINT_TO_FILE; };
-       DtPrinterNameMode : integer
-               { DtSHORT_NAME;
-                 DtMEDIUM_NAME;
-                 DtLONG_NAME; };
-       DtPrinterResetConnectionMode : integer
-               { DtPRINT_CLOSE_CONNECTION;
-                 DtPRINT_RELEASE_CONNECTION; };
-       DtScrollBarPolicy : integer
-               { DtHELP_NO_SCROLLBARS;
-                 DtHELP_STATIC_SCROLLBARS;
-                 DtHELP_AS_NEEDED_SCROLLBARS; };
-       DtShadowType : integer
-               { DtSHADOW_IN;
-                 DtSHADOW_OUT;
-                 DtSHADOW_ETCHED_IN;
-                 DtSHADOW_ETCHED_OUT; };
-       DtSetupMode : integer
-               { DtPRINT_SETUP_PLAIN;
-                 DtPRINT_SETUP_XP; };
-       DtWorkAreaLocation : integer
-               { DtWORK_AREA_NONE;
-                 DtWORK_AREA_TOP;
-                 DtWORK_AREA_TOP_AND_BOTTOM;
-                 DtWORK_AREA_BOTTOM; };
-
-!
-! Dt Widgets
-!
-Class
-       DtEditor : Widget
-               {
-               SuperClass = XmForm;
-               ConvenienceFunction = DtCreateEditor;
-               Resources
-                       {
-                       ! new resources
-                       DtNautoShowCursorPosition;
-                       DtNbuttonFontList;
-                       DtNblinkRate { Default = "500"; };
-                       DtNcenterToggleLabel;
-                       DtNchangeAllButtonLabel;
-                       DtNchangeButtonLabel;
-                       DtNchangeFieldLabel;
-                       DtNcolumns;
-                       DtNcurrentLineLabel;
-                       DtNcursorPosition;
-                       DtNcursorPositionVisible;
-                       DtNdialogTitle;
-                       DtNeditable;
-                       DtNfindButtonLabel;
-                       DtNfindChangeDialogTitle;
-                       DtNfindFieldLabel;
-                       DtNformatAllButtonLabel;
-                       DtNformatParagraphButtonLabel;
-                       DtNformatSettingsDialogTitle;
-                       DtNinformationDialogTitle;
-                       DtNinsertLabel;
-                       DtNjustifyToggleLabel;
-                       DtNlabelFontList;
-                       DtNleftAlignToggleLabel;
-                       DtNleftMarginFieldLabel;
-                       DtNmaxLength;
-                       DtNmisspelledListLabel;
-                       DtNoverstrike;
-                       DtNoverstrikeLabel;
-                       DtNrightAlignToggleLabel;
-                       DtNrightMarginFieldLabel;
-                       DtNrows;
-                       DtNscrollHorizontal;
-                       DtNscrollLeftSide;
-                       DtNscrollTopSide;
-                       DtNscrollVertical;
-                       DtNshowStatusLine;
-                       DtNspellDialogTitle;
-                       DtNspellFilter;
-                       DtNtextBackground;
-                       DtNtextDeselectCallback;
-                       DtNtextForeground;
-                       DtNtextFontList;
-                       DtNtextSelectCallback;
-                       DtNtextTranslations;
-                       DtNtopCharacter;
-                       DtNtotalLineCountLabel;
-                       DtNwordWrap;
-                       ! inherited resources
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       DtHelpDialog : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = DtCreateHelpDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       DtNcloseCallback;
-                       DtNcolumns { Default = "70"; };
-                       DtNexecutionPolicy;
-                       DtNhelpFile;
-                       DtNhelpOnHelpVolume;
-                       DtNhelpPrint;
-                       DtNhelpType;
-                       DtNhelpVolume;
-                       DtNhyperLinkCallback;
-                       DtNlocationId;
-                       DtNmanPage;
-                       DtNmarginWidth;
-                       DtNmarginHeight;
-                       DtNpaperSize;
-                       DtNprinter;
-                       DtNrows { Default = "25"; };
-                       DtNscrollBarPolicy;
-                       DtNshowNewWindowButton;
-                       DtNstringData;
-                       DtNtopicTitle;
-                       DtNvisiblePathCount;
-
-                       ! private resources
-                       ! DtNshowTopLevelButton;
-                       ! DtNsrchHitPrefixFont;
-
-                       ! inherited resources
-                       XmNnavigationType { Default = "dynamic"; };
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       DtHelpQuickDialog : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = DtCreateHelpQuickDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       DtNbackLabelString;
-                       DtNcloseCallback;
-                       DtNcloseLabelString;
-                       DtNcolumns { Default = "50"; };
-                       DtNexecutionPolicy;
-                       DtNhelpFile;
-                       DtNhelpLabelString;
-                       DtNhelpOnHelpVolume;
-                       DtNhelpPrint;
-                       DtNhelpVolume;
-                       DtNhelpType;
-                       DtNhyperLinkCallback;
-                       DtNlocationId;
-                       DtNmanPage;
-                       DtNminimizeButtons;
-                       DtNmoreLabelString;
-                       DtNpaperSize;
-                       DtNprinter;
-                       DtNprintLabelString;
-                       DtNrows { Default = "15"; };
-                       DtNscrollBarPolicy;
-                       DtNstringData;
-                       DtNtopicTitle;
-                       ! inherited resources
-                       XmNnavigationType { Default = "dynamic"; };
-                       };
-               Controls
-                       {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       DtMenuButton : Widget
-               {
-               SuperClass = XmLabel;
-               ConvenienceFunction = DtCreateMenuButton;
-               Resources
-                       {
-                       ! new resources
-                       DtNcascadingCallback; 
-                       DtNcascadePixmap; 
-                       DtNsubMenuId; 
-
-                       ! inherited resources
-                       XmNhighlightThickness { Default = "2"; };
-                       XmNmarginWidth { Default = "6"; };
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               Controls {
-                       XmPopupMenu;
-                       XmRenderTable;
-                       };
-               };
-
-Class
-       DtPrintSetupBox : Widget
-               {
-               SuperClass = XmBulletinBoard;
-               ConvenienceFunction = DtCreatePrintSetupBox;
-               Resources
-                       {
-                       ! new resources
-                       DtNcancelCallback;
-                       DtNclosePrintDisplayCallback;
-                       DtNcopies;
-                       DtNdescription;
-                       DtNfileName;
-                       DtNminimizeButtons;
-                       DtNprintCallback;
-                       DtNprintDestination;
-                       DtNprinterInfoProc;
-                       DtNprinterName;
-                       DtNprintSetupMode;
-                       DtNselectFileProc;
-                       DtNselectPrinterProc;
-                       DtNsetupCallback;
-                       DtNverifyPrinterProc;
-                       DtNworkAreaLocation;
-
-                       ! inherited resources
-                       XmNnoResize { Default = "True"; };
-                       };
-               Controls {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       DtPrintSetupDialog : Widget
-               {
-               SuperClass = DtPrintSetupBox;
-               ParentClass = XmDialogShell;
-               ConvenienceFunction = DtCreatePrintSetupDialog;
-               DialogClass = True;
-               Resources
-                       {
-                       ! new resources
-                       ! inherited resources
-                       };
-               Controls {
-                       AllWidgetsAndGadgets;
-                       };
-               };
-
-Class
-       DtTermPrimitive : Widget
-               {
-               SuperClass = XmPrimitive;
-               ConvenienceFunction = DtCreateTermPrimitive;
-               Resources
-                       {
-                       ! new resources
-                       DtNallowSendEvents;
-                       DtNbackgroundIsSelect;
-                       DtNblinkRate;
-                       DtNbaseWidth;
-                       DtNbaseHeight;
-                       DtNcharCursorStyle;
-                       DtNcolumns { Default = "80"; };
-                       DtNconsoleMode;
-                       DtNcsWidth;
-                       DtNemulationId;
-                       DtNheightInc;
-                       DtNinputVerifyCallback;
-                       DtNjumpScroll;
-                       DtNkshMode;
-                       DtNlogging;
-                       DtNlogFile;
-                       DtNlogInhibit;
-                       DtNmapOnOutput;
-                       DtNmapOnOutputDelay;
-                       DtNmarginBell;
-                       DtNmarginHeight { Default = "2"; };
-                       DtNmarginWidth { Default = "2"; };
-                       DtNnMarginBell;
-                       DtNoutputLogCallback;
-                       DtNpointerBlank;
-                       DtNpointerBlankDelay;
-                       DtNpointerShape;
-                       DtNpointerColor;
-                       DtNpointerColorBackground;
-                       DtNreverseVideo;
-                       DtNrows { Default = "24"; };
-                       DtNsaveLines;
-                       DtNshadowType;
-                       DtNstatusChangeCallback;
-                       DtNsubprocessArgv;
-                       DtNsubprocessCmd;
-                       DtNsubprocessExec;
-                       DtNsubprocessLoginShell;
-                       DtNsubprocessPid;
-                       DtNsubprocessTerminationCallback;
-                       DtNsubprocessTerminationCatch;
-                       DtNtermDevice;
-                       DtNtermDeviceAllocate;
-                       DtNtermId;
-                       DtNtermName;
-                       DtNtermSlaveName;
-                       DtNttyModes;
-                       DtNuserBoldFont;
-                       DtNuserFont;
-                       DtNverticalScrollBar;
-                       DtNvisualBell;
-                       DtNwidthInc;
-
-                       ! inherited resources
-                       XmNhighlightThickness { Default = "2"; };
-                       XmNtraversalOn { Default = "True"; };
-                       };
-               };
-
-Class
-       DtTerm : Widget
-               {
-               SuperClass = DtTermPrimitive;
-               ConvenienceFunction = DtCreateTerm;
-               Resources
-                       {
-                       ! new resources
-                       DtNappCursorDefault;
-                       DtNappKeypadDefault;
-                       DtNautoWrap;
-                       DtNc132;
-                       DtNemulationId { Default = "DtTermWidget"; };
-                       DtNreverseWrap;
-                       DtNsunFunctionKeys;
-                       DtNtermId { Default = "vt220"; };
-                       DtNtermName { Default = "dtterm"; };
-
-                       ! commented out 
-                       ! DtNstickyPrevCursor;
-                       ! DtNstickyNextCursor;
-                       ! DtNstatusChangeCallback;
-                       ! DtNverticalScrollBar;
-
-                       ! inherited resources
-                       };
-               };
-
-Resource
-       DtNallowSendEvents : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNappCursorDefault : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNappKeypadDefault : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNautoShowCursorPosition : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNautoWrap : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNbackLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNbackgroundIsSelect : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNbaseHeight : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNbaseWidth : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNblinkRate : Argument
-               { Type = integer;
-                 Default = "250"; };
-       DtNbuttonFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       DtNc132 : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNcancelCallback : Reason
-               { };
-       DtNcascadePixmap : Argument
-               { Type = pixmap;
-                 Default = "XmUNSPECIFIED_PIXMAP"; };
-       DtNcascadingCallback : Reason
-               { };
-       DtNcenterToggleLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNchangeAllButtonLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNchangeButtonLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNchangeFieldLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNcharCursorStyle : Argument
-               { Type = integer;
-                 EnumerationSet = DtCharCursorStyle;
-                 Default = "DtTERM_CHAR_CURSOR_BOX"; };
-       DtNcloseCallback : Reason
-               { };
-       DtNcloseLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNclosePrintDisplayCallback : Reason
-               { };
-       DtNcolumns : Argument
-               { Type = integer;
-                 Default = "DtUNSPECIFIED"; };
-       DtNconsoleMode : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNcopies : Argument
-               { Type = integer;
-                 Default = "1"; };
-       DtNcsWidth : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNcurrentLineLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNcursorPosition : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNcursorPositionVisible : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNdescription : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNdialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNeditable : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNemulationId : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNexecutionPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = DtExecutionPolicy;
-                 Default = "DtHELP_EXECUTE_QUERY_UNALIASED"; };
-       DtNfileName : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNfindButtonLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNfindChangeDialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNfindFieldLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNformatAllButtonLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNformatParagraphButtonLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNformatSettingsDialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNheightInc : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNhelpFile : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNhelpLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNhelpOnHelpVolume : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNhelpPrint : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNhelpType : Argument
-               { Type = integer;
-                 EnumerationSet = DtHelpType;
-                 Default = "DtHELP_TYPE_TOPIC"; };
-       DtNhelpVolume : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNhyperLinkCallback : Reason
-               { };
-       DtNinformationDialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNinputVerifyCallback : Reason
-               { };
-       DtNinsertLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNjumpScroll : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNjustifyToggleLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNkshMode : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNlabelFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       DtNleftAlignToggleLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNleftMarginFieldLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNlocationId : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNlogFile : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNlogInhibit : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNlogging : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNmanPage : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNmapOnOutput : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNmapOnOutputDelay : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNmarginBell : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNmarginHeight : Argument
-               { Type = vertical_float;
-                 Default = "4"; };
-       DtNmarginWidth : Argument
-               { Type = horizontal_float;
-                 Default = "1"; };
-       DtNmaxLength : Argument
-               { Type = integer;
-                 Default = "DtUNSPECIFIED"; };
-       DtNminimizeButtons : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNmisspelledListLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNmoreLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNnMarginBell : Argument
-               { Type = integer;
-                 Default = "8"; };
-       DtNoutputLogCallback : Reason
-               { };
-       DtNoverstrike : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNoverstrikeLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNpaperSize : Argument
-               { Type = integer;
-                 EnumerationSet = DtPaperSize;
-                 Default = "DtHELP_PAPERSIZE_LETTER"; };
-       DtNpointerBlank : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNpointerBlankDelay : Argument
-               { Type = integer;
-                 Default = "2"; };
-       DtNpointerColor : Argument
-               { Type = color;
-                 Default = "XtDefaultForeground"; };
-       DtNpointerColorBackground : Argument
-               { Type = color;
-                 Default = "XtDefaultBackground"; };
-       DtNpointerShape : Argument
-               { Type = any;
-                 Default = "xterm"; };
-       DtNprintCallback : Reason
-               { };
-       DtNprintDestination : Argument
-               { Type = integer;
-                 EnumerationSet = DtPrintDestination;
-                 Default = "DtPRINT_TO_PRINTER"; };
-       DtNprintLabelString : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNprintSetupMode : Argument
-               { Type = integer;
-                 EnumerationSet = DtSetupMode;
-                 Default = "DtPRINT_SETUP_XP"; };
-       DtNprinter : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNprinterInfoProc : Argument
-               { Type = any;
-                 Default = "DtUNSPECIFIED"; };
-       DtNprinterName : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNreverseVideo : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNreverseWrap : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNrightAlignToggleLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNrightMarginFieldLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNrows : Argument
-               { Type = integer;
-                 Default = "DtUNSPECIFIED"; };
-       DtNsaveLines : Argument
-               { Type = string;
-                 Default = "null"; };
-       DtNscrollBarPolicy : Argument
-               { Type = integer;
-                 EnumerationSet = DtScrollBarPolicy;
-                 Default = "DtHELP_AS_NEEDED_SCROLLBARS"; };
-       DtNscrollHorizontal : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNscrollLeftSide : Argument
-               { Type = boolean;
-                 Default = "UNSPECIFIED"; };
-       DtNscrollTopSide : Argument
-               { Type = boolean;
-                 Default = "UNSPECIFIED"; };
-       DtNscrollVertical : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNselectFileProc : Argument
-               { Type = any;
-                 Default = "default"; };
-       DtNselectPrinterProc : Argument
-               { Type = any;
-                 Default = "DtUNSPECIFIED"; };
-       DtNsetupCallback : Reason
-               { };
-       DtNshadowType : Argument
-               { Type = integer;
-                 EnumerationSet = DtShadowType;
-                 Default = "DtSHADOW_IN"; };
-       DtNshowNewWindowButton : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNshowStatusLine : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       ! DtNshowTopLevelButton : Argument
-       !       { Type = boolean;
-       !         Default = "False"; };
-       DtNspellDialogTitle : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNspellFilter : Argument
-               { Type = string;
-                 Default = "Null"; };
-       ! DtNsrchHitPrefixFont : Argument
-       !       { Type = string;
-       !         Default = "dynamic"; };
-       DtNstatusChangeCallback : Reason
-               { };
-       DtNstickyNextCursor : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNstickyPrevCursor : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNstringData : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNsubMenuId : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       DtNsubprocessArgv : Argument
-               { Type = any;
-                 Default = "NULL"; };
-       DtNsubprocessCmd : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNsubprocessExec : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNsubprocessLoginShell : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNsubprocessPid : Argument
-               { Type = integer;
-                 Default = "-1"; };
-       DtNsubprocessTerminationCallback : Reason
-               { };
-       DtNsubprocessTerminationCatch : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNsunFunctionKeys : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNtermDevice : Argument
-               { Type = integer;
-                 Default = "-1"; };
-       DtNtermDeviceAllocate : Argument
-               { Type = boolean;
-                 Default = "True"; };
-       DtNtermId : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNtermName : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNtermSlaveName : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNtextBackground : Argument
-               { Type = color;
-                 Default = "DtUNSPECIFIED"; };
-       DtNtextDeselectCallback : Reason
-               { };
-       DtNtextFontList : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       DtNtextForeground : Argument
-               { Type = color;
-                 Default = "DtUNSPECIFIED"; };
-       DtNtextSelectCallback : Reason
-               { };
-       DtNtextTranslations : Argument
-               { Type = translation_table;
-                 Default = "Null"; };
-       DtNtopCharacter : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNtopicTitle : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNtotalLineCountLabel : Argument
-               { Type = compound_string;
-                 Default = "Null"; };
-       DtNttyModes : Argument
-               { Type = string;
-                 Default = "Null"; };
-       DtNuserBoldFont : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       DtNuserFont : Argument
-               { Type = font_table;
-                 Default = "dynamic"; };
-       DtNverifyPrinterProc : Argument
-               { Type = any;
-                 Default = "DtUNSPECIFIED"; };
-       DtNverticalScrollBar : Argument
-               { Type = widget_ref;
-                 Default = "Null"; };
-       DtNvisiblePathCount : Argument
-               { Type = integer;
-                 Default = "7"; };
-       DtNvisualBell : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNwidthInc : Argument
-               { Type = integer;
-                 Default = "0"; };
-       DtNwordWrap : Argument
-               { Type = boolean;
-                 Default = "False"; };
-       DtNworkAreaLocation : Argument
-               { Type = integer;
-                 EnumerationSet = DtWorkAreaLocation;
-                 Default = "DtWORK_AREA_BOTTOM"; };
diff --git a/cde/osf/wml/wml.c b/cde/osf/wml/wml.c
deleted file mode 100644 (file)
index a61de75..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: wml.c /main/8 1999/04/16 09:41:47 mgreess $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This is the main program for WML. It declares all global data structures
- * used during a compilation, and during output.
- */
-
-/*
- * WML is a semi-standard Unix application. It reads its input from
- * stdin, which is expected to be a stream containing a WML description
- * of a UIL language. If this stream is successfully parsed and semantically
- * validated, then WML writes a series of standard .h and .dat files into
- * the user directory. The .h files will be used directly to construct
- * the UIL compiler. The .dat files are used by other phases of UIL
- * table generation.
- *
- * The files created by WML are:
- *
- *     .h files:
- *             UilSymGen.h
- *             UilSymArTy.h
- *             UilSymRArg.h
- *             UilDrmClas.h
- *             UilConst.h
- *             UilSymReas.h
- *             UilSymArTa.h
- *             UilSymCtl.h
- *             UilSymNam.h
- *     .dat files
- *             argument.dat
- *             reason.dat
- *             grammar.dat
- *     .mm files
- *             wml-uil.mm
- */
-
-#include "wml.h"
-
-#if defined(SYSV) || defined(SVR4)
-#include <fcntl.h>
-#else
-#include <sys/file.h>
-#endif
-#include <stdio.h>
-
-\f
-/*
- * Globals used during WML parsing.
- *
- * WML uses globals exclusively to communicate data during parsing. The
- * current object being constructed is held by these globals, and all
- * routines called from the parse assume correct setting of these globals.
- * This simplisitic approach is possible since the WML description language
- * has no recursive constructs requiring a frame stack.
- */
-
-/*
- * Error and other counts
- */
-int            wml_err_count = 0;      /* total errors */
-int            wml_line_count = 0;     /* lines read from input */
-
-/*
- * Dynamic ordered vector of all objects encountered during parse. This
- * is used to detect name collisions, and is the primary order vector
- * used for all other vectors constructed curing the semantic resolution
- * phase of processing.
- */
-DynamicHandleListDef   wml_synobj;
-DynamicHandleListDefPtr        wml_synobj_ptr = &wml_synobj;
-
-
-/*
- * Dynamic vectors of vectors partitioned and ordered
- * as required by the semantic processing and output routines. All
- * point to resolved objects rather than syntactic objects.
- */
-DynamicHandleListDef   wml_obj_datatype;       /* datatype objects */
-DynamicHandleListDefPtr        wml_obj_datatype_ptr = &wml_obj_datatype;
-
-DynamicHandleListDef   wml_obj_enumval;        /* enumeration value objects */
-DynamicHandleListDefPtr        wml_obj_enumval_ptr = &wml_obj_enumval;
-
-DynamicHandleListDef   wml_obj_enumset;        /* enumeration set objects */
-DynamicHandleListDefPtr        wml_obj_enumset_ptr = &wml_obj_enumset;
-
-DynamicHandleListDef   wml_obj_reason; /* reason resource objects */
-DynamicHandleListDefPtr        wml_obj_reason_ptr = &wml_obj_reason;
-
-DynamicHandleListDef   wml_obj_arg;    /* argument resource objects */
-DynamicHandleListDefPtr        wml_obj_arg_ptr = &wml_obj_arg;
-
-DynamicHandleListDef   wml_obj_child;  /* argument resource objects */
-DynamicHandleListDefPtr        wml_obj_child_ptr = &wml_obj_child;
-
-DynamicHandleListDef   wml_obj_allclass;       /* metaclass, widget, gadget */
-DynamicHandleListDefPtr        wml_obj_allclass_ptr = &wml_obj_allclass;
-
-DynamicHandleListDef   wml_obj_class;          /* widget & gadget objects */
-DynamicHandleListDefPtr        wml_obj_class_ptr = &wml_obj_class;
-
-DynamicHandleListDef   wml_obj_ctrlist;        /* controls list objects */
-DynamicHandleListDefPtr        wml_obj_ctrlist_ptr = &wml_obj_ctrlist;
-
-DynamicHandleListDef   wml_obj_charset;        /* charset objects */
-DynamicHandleListDefPtr        wml_obj_charset_ptr = &wml_obj_charset;
-
-DynamicHandleListDef   wml_tok_sens;           /* case-sensitive tokens */
-DynamicHandleListDefPtr        wml_tok_sens_ptr = &wml_tok_sens;
-
-DynamicHandleListDef   wml_tok_insens;         /* case-insensitive tokens */
-DynamicHandleListDefPtr        wml_tok_insens_ptr = &wml_tok_insens;
-
-
-/*
- * Routines only accessible in this module
- */
-void wmlInit ();
-
-/*
- * External variables
- */
-extern int     yyleng;
-
-
-
-\f
-/*
- * The WML main routine:
- *
- *     1. Initialize global storage
- *     2. Open the input file if there is one
- *     3. Parse the WML description in stdin. Exit on errors
- *     4. Perform semantic validation and resolution. Exit on errors.
- *     5. Output files
- */
-
-int main (argc, argv)
-    int                argc;
-    char       **argv;
-
-{
-
-int            done;
-int            fd;             /* input file descriptor */
-
-/*
- * Initialize storage
- */
-wmlInit ();
-
-/*
- * Assume that anything in argv must be an input file. Open it, and
- * dup it to stdin
- */
-if ( argc > 1 )
-    {
-    if ( (fd=open(argv[1],O_RDONLY)) == -1 )
-       printf ("\nCouldn't open file %s", argv[1]);
-    else
-       dup2 (fd, 0);
-    }
-
-/*
- * Process the input
- */
-done = 0;
-while (!done)
-    {
-    
-    /*
-     * Parse the input stream
-     */
-    yyleng = 0;                /* initialization safety */
-    yyparse ();
-    if ( wml_err_count > 0 ) break;
-    printf ("\nParse of WML input complete");
-    
-    /*
-     * Perform semantic validation, and construct resolved data structures
-     */
-    wmlResolveDescriptors ();
-    if ( wml_err_count > 0 ) break;
-    printf ("\nSemantic validation and resolution complete");
-    
-    /*
-     * Output 
-     */
-    wmlOutput ();
-    if ( wml_err_count > 0 ) break;
-    printf ("\nWML Uil*.h and wml-uil.mm file creation complete\n");
-    
-    done = 1;
-    }
-
-/*
- * Report inaction on errors
- */
-if ( wml_err_count > 0 )
-    {
-    printf ("\nWML found %d errors, no or incomplete output produced\n",
-           wml_err_count);
-     /* Begin fixing the bug CR 4748 */
-     exit(1);
-     /* End fixing the bug CR 4748 */
-    }
-
-return (0);
-
-}
-
-\f
-/*
- * Routine to initialize WML.
- *
- * The main job is to dynamically allocate any dynamic lists to a reasonable
- * initial state.
- */
-void wmlInit ()
-
-{
-
-/*
- * Initialize the list of all syntactic objects
- */
-wmlInitHList (wml_synobj_ptr, 1000, TRUE);
-
-}
-
-yywrap()
-{
-return(1);
-}
diff --git a/cde/osf/wml/wml.h b/cde/osf/wml/wml.h
deleted file mode 100644 (file)
index 574c209..0000000
+++ /dev/null
@@ -1,708 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/*   $XConsortium: wml.h /main/9 1995/08/29 11:10:33 drk $ */
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This file contains the structure and literal definitions required
- * by the WML processor
- */
-
-#if defined(__STDC__)
-#include <stddef.h>
-#else
-#include <stdio.h>
-#endif
-
-#define TRUE           1
-#define FALSE          0
-#define SUCCESS                1
-#define FAILURE                0
-
-/*
- * Generic object pointer
- */
-typedef        char    *ObjectPtr;
-
-
-/*
- * True and False for attributes, so setting is explicit
- */
-#define        WmlAttributeUnspecified         0
-#define        WmlAttributeTrue                1
-#define        WmlAttributeFalse               2
-
-/*
- * Values of character set direction
- */
-#define        WmlCharSetDirectionLtoR         1
-#define        WmlCharSetDirectionRtoL         2
-
-/*
- * Values of character set character size
- */
-#define        WmlCharSizeOneByte              1
-#define        WmlCharSizeTwoByte              2
-#define        WmlCharSizeMixed1_2Byte         3
-
-
-/*
- * Upper case and lower case converters
- */
-#define _upper(c)      ((c) >= 'a' && (c) <= 'z' ? (c) & 0x5F:(c))
-#define _lower(c)      ((c) >= 'A' && (c) <= 'Z' ? (c) | 0x20:(c))
-
-
-/*
- * The Uil token classes which are dealt with WML. Matched to definitions
- * in UilKeyDef.h, although this isn't required.
- */
-#define        WmlTokenClassArgument   1
-#define        WmlTokenClassCharset    2
-#define        WmlTokenClassColor      3
-#define        WmlTokenClassEnumval    4
-#define        WmlTokenClassFont       5
-#define        WmlTokenClassIdentifier 6
-#define        WmlTokenClassKeyword    7
-#define        WmlTokenClassLiteral    8
-#define        WmlTokenClassReason     9
-#define        WmlTokenClassReserved   10
-#define        WmlTokenClassSpecial    11
-#define        WmlTokenClassUnused     12
-#define        WmlTokenClassClass      13
-#define WmlTokenClassChild     14
-
-
-\f
-/*
- * Structures for WML objects. Two kinds are created for each object
- * recognized and built as a WML description is read:
- *     - A syntactic descriptor, which captures the information parse
- *       from the input in pretty much its raw form
- *     - A semantically resolved descriptor, in which pointers to
- *       other descriptors have been resolved, ordering is done, 
- *       superclass inheritance is complete, etc.
- */
-
-/*
- * Syntactic structures. These are constructred during input parse.
- */
-
-
-/*
- * A dummy holding only a header. Allows access to the validation field.
- */
-typedef struct
-    {
-    int                        validation;     /* a unique validation code */
-    ObjectPtr          rslvdef;        /* the resolved object pointer */
-    } WmlSynDef, *WmlSynDefPtr;
-
-
-
-/*
- * A class resource descriptor. This a subset of a full resource descriptor,
- * which captures those elements which can be overridden in a class declaration
- */
-#define WmlClassResDefValid    871253
-
-typedef struct WmlSynClassResDefStruct
-    {
-    int                        validation;     /* WmlClassResDefValid */
-    struct WmlSynClassResDefStruct
-                       *next;          /* next descriptor in chain */
-    char               *name;          /* resource name */
-    char               *type;          /* override type name */
-    char               *dflt;          /* override default value */
-    short int          exclude;        /* WmlAttributeTrue if to be excluded */
-    } WmlSynClassResDef, *WmlSynClassResDefPtr;
-
-/*
- * A class child descriptor. 
- */
-#define WmlClassChildDefValid  780344
-
-typedef struct WmlSynClassChildDefStruct
-    {
-    int                        validation;     /* WmlClassChildDefValid */
-    struct WmlSynClassChildDefStruct
-                       *next;          /* next descriptor in chain */
-    char               *name;          /* child name */
-    } WmlSynClassChildDef, *WmlSynClassChildDefPtr;
-
-
-/*
- * A class controls descriptor. It contains elements which can be added
- * to a controls reference.
- */
-
-#define WmlClassCtrlDefValid   7132320
-
-typedef struct WmlSynClassCtrlDefStruct
-    {
-    int                        validation;     /* WmlClassCtrlDefValid */
-    struct WmlSynClassCtrlDefStruct
-                       *next;          /* next descriptor in chain */
-    char               *name;          /* controlled class name */
-    } WmlSynClassCtrlDef, *WmlSynClassCtrlDefPtr;
-
-
-/*
- * A class structure. One exists for each Class statement in a WML
- * description.
- */
-#define WmlClassDefValid       93741
-
-#define WmlClassTypeMetaclass  1
-#define        WmlClassTypeWidget      2
-#define        WmlClassTypeGadget      3
-
-typedef struct WmlSynClassDefStruct
-    {
-    int                        validation;     /* WmlClassDefValid */
-    struct WmlClassDefStruct
-                       *rslvdef;       /* resolved definition */
-    short int          type;           /* from WmlClassType... */
-    short int          dialog;         /* TRUE if a dialog class (has
-                                          window manager decoration, etc) */
-    char               *name;          /* class name */
-    char               *superclass;    /* superclass name */
-    char               *parentclass;   /* parentclass name */
-    char               *widgetclass;   /* widget class name */
-    char               *int_lit;       /* internal literal name */
-    char               *convfunc;      /* convenience function name */
-    char               *docname;       /* name for docs */
-    char               *ctrlmapto;     /* resource controls map to */
-    WmlSynClassCtrlDefPtr
-                       controls;       /* list of controlled classes */
-    WmlSynClassResDefPtr
-                       resources;      /* list of resources from input */
-    WmlSynClassChildDefPtr
-                        children;      /* list of automatic children */
-    } WmlSynClassDef, *WmlSynClassDefPtr;
-
-
-/*
- * A controls list structure. One is created for each ControlsList statement
- * in a WML description.
- */
-#define WmlCtrlListDefValid    621298
-
-typedef struct WmlSynCtrlListDefStruct
-    {
-    int                        validation;     /* WmlCtrlListDefValid */
-    struct WmlCtrlListDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* controls list name */
-    WmlSynClassCtrlDefPtr
-                       controls;       /* list of controlled classes */
-    } WmlSynCtrlListDef, *WmlSynCtrlListDefPtr;
-
-
-/*
- * A resource descriptor. One is created for each Resource statement
- * in a WML description
- */
-#define WmlResourceDefValid    310538
-
-#define WmlResourceTypeArgument                1
-#define        WmlResourceTypeReason           2
-#define        WmlResourceTypeConstraint       3
-#define        WmlResourceTypeSubResource      4
-
-typedef struct WmlSynResourceDefStruct
-    {
-    int                        validation;     /* WmlResourceDefValid */
-    struct WmlResourceDefStruct
-                       *rslvdef;       /* resolved definition */
-    short int          type;           /* from WmlResourceType... */
-    char               *name;          /* resource name */
-    char               *datatype;      /* resource data type */
-    char               *int_lit;       /* internal literal name */
-    char               *resliteral;    /* resource name literal */
-    char               *enumset;       /* enumeration set name */
-    char               *docname;       /* name for docs */
-    char               *related;       /* names related resource */
-    char               *dflt;          /* default value */
-    short int          xrm_support;    /* WmlAttributeTrue if can be
-                                          Xrm resource */
-    short int          alias_cnt;      /* alias count */
-    char               **alias_list;   /* vector of aliass */
-    } WmlSynResourceDef, *WmlSynResourceDefPtr;
-
-/*
- * A child descriptor. One is created for each Child statement
- * in a WML description
- */
-#define WmlChildDefValid       229629
-
-typedef struct WmlSynChildDefStruct
-    {
-    int                        validation;     /* WmlResourceDefValid */
-    struct WmlChildDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* child name */
-    char               *class;         /* child class */
-    } WmlSynChildDef, *WmlSynChildDefPtr;
-
-
-/*
- * A datatype descriptor
- */
-#define WmlDataTypeDefValid    714210
-
-typedef struct WmlSynDataTypeDefStruct
-    {
-    int                        validation;     /* WmlDataTypeDefValid */
-    struct WmlDataTypeDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* data type name */
-    char               *int_lit;       /* internal literal name */
-    char               *docname;       /* name for docs */
-    short int          xrm_support;    /* WmlAttributeTrue if can be
-                                          Xrm resource */
-    } WmlSynDataTypeDef, *WmlSynDataTypeDefPtr;
-
-
-/*
- * An enumeration set values descriptor, as it occurs in the list for
- * an enumeration set descriptor.
- */
-typedef struct WmlSynEnumSetValDefStruct
-    {
-    int                        validation;     /* WmlEnumValueDefValid */
-    struct WmlSynEnumSetValDefStruct
-                       *next;          /* next descriptor in chain */
-    char               *name;          /* enumeration value name */
-    } WmlSynEnumSetValDef, *WmlSynEnumSetValDefPtr;
-
-
-/*
- * An enumeration set descriptor
- */
-#define        WmlEnumSetDefValid      931184
-
-typedef struct WmlSynEnumSetDefStruct
-    {
-    int                        validation;     /* WmlEnumSetDefValid */
-    struct WmlEnumSetDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* enumeration set name */
-    char               *datatype;      /* enumeration set data type */
-    WmlSynEnumSetValDefPtr
-                       values;         /* list of values in set */
-    } WmlSynEnumSetDef, *WmlSynEnumSetDefPtr;
-
-
-
-/*
- * An enumeration value descriptor
- */
-#define        WmlEnumValueDefValid    172938
-
-typedef struct WmlSynEnumValueDefStruct
-    {
-    int                        validation;     /* WmlEnumValueDefValid */
-    struct WmlEnumValueDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* enumeration value name */
-    char               *enumlit;       /* name of defining literal */
-    } WmlSynEnumValueDef, *WmlSynEnumValueDefPtr;
-
-
-/*
- * A charset descriptor
- */
-#define WmlCharSetDefValid     110983
-
-typedef struct WmlSynCharSetDefStruct
-    {
-    int                        validation;     /* WmlCharSetDefValid */
-    struct WmlCharSetDefStruct
-                       *rslvdef;       /* resolved definition */
-    char               *name;          /* data type name */
-    char               *int_lit;       /* internal literal name */
-    char               *xms_name;      /* identifying XmString name */
-    short int          direction;      /* WmlCharSetDirection... */
-    short int          parsedirection; /* WmlCharSetDirection... */
-    short int          charsize;       /* WmlCharSize... */
-    short int          alias_cnt;      /* alias count */
-    char               **alias_list;   /* vector of aliases */
-    } WmlSynCharSetDef, *WmlSynCharSetDefPtr;
-
-
-\f
-/*
- * Data structures constructed during semantic validation. Each points
- * as required to syntactic data structures. These are typically accessed
- * from ordered pointer vectors.
- */
-
-
-/*
- * A datatype descriptor. It extends the syntactic element by assigning
- * a code to the descriptor.
- */
-typedef struct WmlDataTypeDefStruct
-    {
-    struct WmlSynDataTypeDefStruct
-                       *syndef;        /* syntactic definition */
-    char               *tkname;        /* name for generating literals */
-    } WmlDataTypeDef, *WmlDataTypeDefPtr;
-
-
-/*
- * A charset descriptor. It extends the syntactic element by assigning
- * a code to the descriptor.
- */
-typedef struct WmlCharSetDefStruct
-    {
-    struct WmlSynCharSetDefStruct
-                       *syndef;        /* syntactic definition */
-    char               *tkname;        /* name for generating literals */
-    short int          sym_code;       /* code value for literals */
-    } WmlCharSetDef, *WmlCharSetDefPtr;
-
-/*
- * A child descriptor. It extends the syntactic element by assigning
- * a code and a pointer to the class to the descriptor.
- */
-typedef struct WmlChildDefStruct
-    {
-    struct WmlSynChildDefStruct
-                       *syndef;        /* syntactic definition */
-    char               *tkname;        /* name for generating literals */
-    short int          sym_code;       /* code value for literals */
-    struct WmlClassDefStruct
-                        *class;                /* class structure */
-    struct WmlClassChildDefStruct
-                       *ref_ptr;       /* used dynamically for search */
-    } WmlChildDef, *WmlChildDefPtr;
-
-/*
- * An element in the values list of an enumeration set. These elements have
- * separate lists in order to deal with the possibility of an enumeration
- * value which is a member of more than one list.
- */
-typedef struct WmlEnumSetValDefStruct
-    {
-    struct WmlEnumSetValDefStruct
-                       *next;          /* next value in list */
-    struct WmlEnumValueDefStruct
-                       *value;         /* value descriptor for element */
-    } WmlEnumSetValDef, *WmlEnumSetValDefPtr;
-
-
-/*
- * A resolved enumeration set descriptor
- */
-typedef struct WmlEnumSetDefStruct
-    {
-    struct WmlSynEnumSetDefStruct
-                       *syndef;        /* syntactic definition */
-    char               *tkname;        /* name for generating literals */
-    short int          sym_code;       /* code value for literals */
-    WmlDataTypeDefPtr  dtype_def;      /* data type */
-    short int          values_cnt;     /* count of # of values in set */
-    WmlEnumSetValDefPtr
-                       values;         /* list of values in set */
-    } WmlEnumSetDef, *WmlEnumSetDefPtr;
-
-
-/*
- * A resolved enumeration value descriptor
- */
-typedef struct WmlEnumValueDefStruct
-    {
-    struct WmlSynEnumValueDefStruct
-                       *syndef;        /* syntactic definition */
-    short int          sym_code;       /* code value for literals */
-    } WmlEnumValueDef, *WmlEnumValueDefPtr;
-
-
-/*
- * A resource descriptor
- */
-typedef struct WmlResourceDefStruct
-    {
-    struct WmlSynResourceDefStruct
-                       *syndef;        /* syntactic definition */
-    char               *tkname;        /* name for generating literals */
-    short int          sym_code;       /* code value for literals */
-    WmlDataTypeDefPtr  dtype_def;      /* data type for base definition */
-    WmlEnumSetDefPtr   enumset_def;    /* enumeration set if specified */
-    short int          related_code;   /* if non-0, the sym_code for the
-                                          related (count) argument */
-    short int          xrm_support;    /* if AttributeTrue, then the resource
-                                          can be set in Xrm. Resolved
-                                          from either explicit setting or
-                                          data type setting */
-    struct WmlClassDefStruct
-                       *ref_class;     /* used for membership sort */
-    struct WmlClassResDefStruct
-                       *ref_ptr;       /* used dynamically for search */
-    } WmlResourceDef, *WmlResourceDefPtr;
-
-
-/*
- * A resource descriptor with overrides which is a member of the resource
- * list of a class descriptor.
- */
-typedef struct WmlClassResDefStruct
-    {
-    struct WmlClassResDefStruct
-                       *next;          /* next resource in list */
-    WmlResourceDefPtr  act_resource;   /* actual resource descriptor */
-    WmlDataTypeDefPtr  over_dtype;     /* overriding data type */
-    char               *dflt;          /* overriding default */
-    int                        exclude;        /* WmlAttributeTrue if to be excluded */
-    } WmlClassResDef, *WmlClassResDefPtr;
-
-/*
- * A child descriptor which is a member of the children
- * list of a class descriptor.
- */
-typedef struct WmlClassChildDefStruct
-    {
-    struct WmlClassChildDefStruct
-                       *next;          /* next child in list */
-    WmlChildDefPtr     act_child;      /* actual child descriptor */
-  } WmlClassChildDef, *WmlClassChildDefPtr;
-
-
-/*
- * An element for the controls list of a resolved class descriptor
- */
-typedef struct WmlClassCtrlDefStruct
-    {
-    struct WmlClassCtrlDefStruct
-                       *next;          /* next control in list */
-    struct WmlClassDefStruct
-                       *ctrl;          /* class being controlled */
-    } WmlClassCtrlDef, *WmlClassCtrlDefPtr;
-    
-    
-
-/*
- * A resolved class descriptor. It has a pointer to its superclass, and
- * a resource list consisting of its inherited resources followed by
- * its own resources.
- */
-typedef struct WmlClassDefStruct
-    {
-    struct WmlSynClassDefStruct
-                       *syndef;        /* syntactic definition */
-    struct WmlClassDefStruct
-                       *superclass;    /* superclass structure */
-    struct WmlClassDefStruct
-                       *parentclass;   /* parentclass structure */
-    char               *tkname;        /* name to be used in literals.
-                                          int_lit or name if no int_lit */
-    short int          sym_code;       /* code value for literals */
-    short int          inherit_done;   /* TRUE when inheritance complete */
-    WmlClassResDefPtr  arguments;      /* linked argument list */
-    WmlClassResDefPtr  reasons;        /* lined reason list */
-    WmlClassCtrlDefPtr controls;       /* list of controlled classes.
-                                          Controls list references will
-                                          be expanded into this list. */
-    WmlClassChildDefPtr        children;       /* list of automatic children */
-    struct WmlClassDefStruct
-                       *variant;       /* the gadget class for a widget */
-    struct WmlClassDefStruct
-                       *nondialog;     /* the non-dialog ancestor of a
-                                          dialog widget */
-    WmlResourceDefPtr  ctrlmapto;      /* the resource controls map to */
-    struct WmlClassCtrlDefStruct
-                       *ref_ptr;       /* used dynamically for search */
-    } WmlClassDef, *WmlClassDefPtr;
-
-
-/*
- * A resolved controls list descriptor.
- */
-typedef struct WmlCtrlListDefStruct
-   {
-   struct WmlSynCtrlListDefStruct
-                       *syndef;        /* syntactic definition */
-   WmlClassCtrlDefPtr  controls;       /* list of controlled classes */
-   } WmlCtrlListDef, *WmlCtrlListDefPtr;
-
-
-\f
-/*
- * Data structures used to locate and order objects in various ways.
- */
-
-/*
- * Token structure used to create ordered token lists for generation of
- * UilKeyTab.h. The token string is in the order vector.
- */
-typedef struct WmlKeyWTokenStruct
-    {
-    int                        class;          /* token class, WmlTokenClass... */
-    ObjectPtr          objdef;         /* object definition (resolved) */
-    } WmlKeyWToken, *WmlKeyWTokenPtr;
-
-
-/*
- * A grammar token as obtained from the UIL grammar file (Uil.y)
- */
-typedef struct WmlGrammarTokenStruct
-    {
-    int                        class;          /* token class, WmlTokenClass... */
-    char               *token;         /* token name (literal) */
-    int                        val;            /* token id as value */
-    } WmlGrammarToken, *WmlGrammarTokenPtr;
-
-
-/*
- * A list element which allows association of a name with an object.
- * Typically used to construct ordered lists.
- */
-typedef struct
-    {
-    char               *objname;       /* object name */
-    ObjectPtr          objptr;         /* the object */
-    } ObjectHandleDef, *ObjectHandleDefPtr;
-
-/*
- * A dynamic handle element list, extensible by malloc'ing more space.
- */
-typedef struct
-    {
-    int                        cnt;            /* # entries in use */
-    int                        max;            /* max # entries available */
-    int                        ordered;        /* TRUE if list is lexicographically
-                                          ordered by object name */
-    ObjectHandleDefPtr hvec;           /* vector of handle entries */
-    } DynamicHandleListDef, *DynamicHandleListDefPtr;
-
-
-\f
-/*
- * Global declarations
- */
-
-/*
- * Defined in wml.c
- */
-extern int             wml_err_count;          /* total errors */
-extern int             wml_line_count;         /* lines read from input */
-extern DynamicHandleListDefPtr
-                       wml_synobj_ptr;         /* syntactic object list */
-
-extern DynamicHandleListDefPtr wml_obj_datatype_ptr;
-extern DynamicHandleListDefPtr wml_obj_enumval_ptr;
-extern DynamicHandleListDefPtr wml_obj_enumset_ptr;
-extern DynamicHandleListDefPtr wml_obj_reason_ptr;
-extern DynamicHandleListDefPtr wml_obj_arg_ptr;
-extern DynamicHandleListDefPtr wml_obj_child_ptr;
-extern DynamicHandleListDefPtr wml_obj_allclass_ptr;
-extern DynamicHandleListDefPtr wml_obj_class_ptr;
-extern DynamicHandleListDefPtr wml_obj_ctrlist_ptr;
-extern DynamicHandleListDefPtr wml_obj_charset_ptr;
-
-extern DynamicHandleListDefPtr wml_tok_sens_ptr;
-extern DynamicHandleListDefPtr wml_tok_insens_ptr;
-
-
-
-
-/*
- * Defined in wmlutils.c
- */
-extern char *wmlAllocateString ();             /* dynamic string copy */
-extern void wmlUpperCaseString ();             /* convert to upper case */
-extern void wmlInitHList ();                   /* init dynamic list */
-extern void wmlResizeHList ();                 /* resize a list */
-extern void wmlClearHList ();                  /* clear a list for reuse */
-extern int wmlFindInHList ();                  /* find name in list */
-extern void wmlInsertInHList ();               /* generic list insert */
-extern void wmlInsertInKeyList ();             /* specialized list insert */
-extern WmlClassResDefPtr wmlResolveResIsMember ();
-                                               /* is resource in class? */
-extern WmlClassChildDefPtr wmlResolveChildIsMember ();
-                                               /* is child in class? */
-
-/*
- * Defined in wmlsynbld.c
- */
-extern char            yystringval[];          /* any string value */
-extern char            yynameval[];            /* any name (identifier) */
-extern int             yytknval1;              /* terminal token value 1 */
-extern int             yytknval2;              /* terminal token value 2 */
-extern ObjectPtr       wml_cur_obj;            /* object being constructed */
-extern ObjectPtr       wml_cur_subobj;         /* current subobject */
-extern void wmlCreateClass ();
-extern void wmlAddClassAttribute ();
-extern void wmlAddClassResource ();
-extern void wmlAddClassResourceAttribute ();
-extern void wmlAddClassControl ();
-extern void wmlAddCtrList ();
-extern void wmlCreateResource ();
-extern void wmlCreateDatatype ();
-extern void wmlAddResourceAttribute ();
-extern void wmlAddDatatypeAttribute ();
-extern void wmlAddCtrListControl ();
-extern void wmlCreateEnumSet ();
-extern void wmlAddEnumSetValue ();
-extern void wmlCreateEnumValue ();
-extern void wmlAddEnumValueAttribute ();
-extern void wmlCreateCharset ();
-extern void wmlAddCharsetAttribute ();
-extern void LexIssueError ();
-
-
-/*
- * Defined in wmlresolve.c
- */
-extern void wmlResolveDescriptors ();
-extern void wmlMarkReferencePointers ();
-
-
-/*
- * Defined in wmlouth.c
- */
-extern void wmlOutputHFiles ();
-
-
-/*
- * Defined in wmloutdat.c
- */
-extern void wmlOutputDatFiles ();
-
-/*
- * Define in wmloutp1 or wmloutp2
- */
-extern void wmlOutput ();
diff --git a/cde/osf/wml/wmldbcreate.c b/cde/osf/wml/wmldbcreate.c
deleted file mode 100644 (file)
index 7bff660..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: wmldbcreate.c /main/8 1997/04/14 12:55:30 dbl $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This is the program creates binary databases from WML output.
- */
-
-
-#include <stdio.h>
-#ifndef X_NOT_STDC_ENV
-#include <stdlib.h>
-#endif
-
-#include <Mrm/MrmWidget.h> 
-#include <Xm/Xm.h> 
-#include <Xm/MwmUtil.h>
-
-#include <Dt/Editor.h>
-#include <Dt/Help.h>
-#include <Dt/HelpDialog.h>
-#include <Dt/HelpQuickD.h>
-#include <Dt/MenuButton.h>
-#include <Dt/Print.h>
-#include <Dt/TermPrim.h>
-#include <Dt/Term.h>
-
-
-
-/*
- * User supplied widget public.h and/or private.h files are to be added here
- * #ifdef for automatic use in uilwmdcreate script file
- */
-
-
-/*
- * End of User supplied widget files
- */
-
-
-#include "UilDBDef.h"
-#include "UilLexPars.h"
-
-#include "UilSymGen.h" /* from WML */
-#include "UilSymArTy.h" /* from WML */
-#include "UilSymRArg.h" /* from WML */
-#include "UilSymArTa.h" /* from WML */
-#include "UilSymReas.h" /* from WML */
-#include "UilSymCtl.h" /* from WML */
-#include "UilConst.h" /* from WML */
-#include "UilSymNam.h" /* from WML */
-#include "UilSymEnum.h" /* from WML */
-#include "UilSymCSet.h" /* from WML */
-#include "UilUrmClas.h" /* from WML */
-#include "UilKeyTab.h"  /* from WML */
-#include "UilSymChCl.h" /* from WML */
-#include "UilSymChTa.h" /* from WML */
-
-void emit_globals();
-void emit_header(_db_header_ptr header);
-void emit_chars(int        table_id);
-void emit_ints_and_string( int     table_id);
-void emit_char_table( int      table_id);
-void emit_length_and_string( int       table_id);
-void emit_shorts( int      table_id);
-void emit_int_and_table_shorts( int        table_id);
-void emit_ints( int        table_id);
-
-FILE *bfile, *afile;
-int DEBUG=FALSE;
-char outfilename[80];
-char debugfilename[80];
-\f
-main(argc, argv)
-int argc;
-char **argv;
-{
-    _db_header header;
-
-    strcpy(outfilename, "motif.wmd");
-    strcpy(debugfilename, "motif.dbg");
-
-    for (argc--, argv++; argc; argc--, argv++)
-       {
-       if (strcmp("-debug", *argv) == 0) 
-           {
-           DEBUG=TRUE;
-           }
-       else if ((strcmp("-o", *argv) == 0))
-                {
-                strcpy(outfilename, argv[1]);
-                }
-       }
-
-    bfile = fopen(outfilename, "w");
-    if (bfile == (FILE *) NULL)
-       {
-       printf("\nCouldnt't open %s", outfilename);
-       exit (1);
-       }
-    if (DEBUG)
-       {
-       afile = fopen(debugfilename, "w");
-       if (afile == (FILE *) NULL)
-           {
-           printf("\nCouldn't open %s", debugfilename);
-           exit (1);
-           }
-       }
-
-    emit_globals();
-
-/*
- *   UilConst
- *   UilSymArty
- *   UilSymCset - parts of it
- *   UilSymChCl
- */
-    emit_chars(Constraint_Tab);
-    emit_chars(Argument_Type_Table_Value);
-    emit_chars(Charset_Wrdirection_Table);
-    emit_chars(Charset_Parsdirection_Table);
-    emit_chars(Charset_Charsize_Table);
-    emit_chars(Child_Class_Table); 
-/*
- *    UilKeyTab
- */
-    emit_ints_and_string (Key_Table);
-    emit_ints_and_string (Key_Table_Case_Ins);
-/*
- *   UilSymArTa
- *   UilSymCtl
- *   UilSymReas
- *   UilSymChTa
- */
-    emit_char_table (Allowed_Argument_Table);
-    emit_char_table (Allowed_Control_Table);
-    emit_char_table (Allowed_Reason_Table);
-    emit_char_table (Allowed_Child_Table);
-/*
- *   UilSymCset
- *   UilSymNam
- *   UilUrmClas
- */
-    emit_length_and_string (Charset_Xmstring_Names_Table);
-    emit_length_and_string (Charset_Lang_Names_Table);
-    emit_length_and_string (Uil_Widget_Names);
-    emit_length_and_string (Uil_Argument_Names);
-    emit_length_and_string (Uil_Reason_Names);
-    emit_length_and_string (Uil_Enumval_names);
-    emit_length_and_string (Uil_Charset_Names);
-    emit_length_and_string (Uil_Widget_Funcs);
-    emit_length_and_string (Uil_Argument_Toolkit_Names);
-    emit_length_and_string (Uil_Reason_Toolkit_Names);
-    emit_length_and_string (Uil_Children_Names);
-/*
- *   UilSymCset
- *   UilSymEnum
- *   UilSymRArg
- *   UilUrmClas
- */
-    emit_shorts (Charset_Lang_Codes_Table);
-    emit_shorts (Argument_Enum_Set_Table);
-    emit_shorts (Related_Argument_Table);
-    emit_shorts (Uil_Gadget_Funcs);
-    emit_shorts (Uil_Urm_Nondialog_Class);
-    emit_shorts (Uil_Urm_Subtree_Resource);
-/*
- *   UilSymEnum
- */
-    emit_int_and_table_shorts(Enum_Set_Table);
-/*
- *   UilSymEnum
- */
-    emit_ints (Enumval_Values_Table);
-
-    exit (0);
-}
-
-\f
-void emit_globals()
-{
-    _db_globals globals;
-
-    globals.version = DB_Compiled_Version;
-    globals.uil_max_arg = uil_max_arg;
-    globals.uil_max_charset = uil_max_charset;
-    globals.charset_lang_table_max = charset_lang_table_max;
-    globals.uil_max_object = uil_max_object;
-    globals.uil_max_reason = uil_max_reason;
-    globals.uil_max_enumval = uil_max_enumval;
-    globals.uil_max_enumset = uil_max_enumset;
-    globals.key_k_keyword_count = key_k_keyword_count;
-    globals.key_k_keyword_max_length = key_k_keyword_max_length;
-    globals.uil_max_child = uil_max_child;
-    
-    fwrite (&globals, sizeof (_db_globals), 1, bfile);
-    if (DEBUG)
-       fprintf(afile, "%d %d %d %d %d %d %d %d %d %d ", globals.version,
-               globals.uil_max_arg, globals.uil_max_charset, 
-               globals.charset_lang_table_max, globals.uil_max_object,
-               globals.uil_max_reason, globals.uil_max_enumval, 
-               globals.uil_max_enumset, globals.key_k_keyword_count,
-               globals.key_k_keyword_max_length);
-    }
-
-
-\f
-void emit_header(header)
-_db_header_ptr header;
-{
-
-    fwrite (header, sizeof(_db_header), 1, bfile);
-    if (DEBUG)
-       fprintf(afile, 
-               "\n\nTableId=%d, NumEntries=%d, TableSize=%d \n",
-                header->table_id, header->num_items, header->table_size);
-    }
-
-
-\f
-void emit_chars(table_id)
-    int            table_id;
-{
-    _db_header     header;
-    unsigned char   *ptr;
-    int                    i;
-
-    switch (table_id)
-       {
-       case Constraint_Tab:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(constraint_tab_vec);
-           header.num_items = header.table_size;
-           header.table_id = Constraint_Tab;
-           ptr = constraint_tab;
-           break;
-       case Argument_Type_Table_Value:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(argument_type_table_vec);
-           header.num_items = header.table_size;
-           header.table_id = Argument_Type_Table_Value;
-           ptr = argument_type_table;
-           break;
-       case Charset_Wrdirection_Table:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(charset_wrdirection_table_vec);
-           header.num_items = header.table_size;
-           header.table_id = Charset_Wrdirection_Table;
-           ptr = charset_writing_direction_table;
-           break;
-       case Charset_Parsdirection_Table:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(charset_parsdirection_table_vec);
-           header.num_items = header.table_size;
-           header.table_id = Charset_Parsdirection_Table;
-           ptr = charset_parsing_direction_table;
-           break;
-       case Charset_Charsize_Table:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(charset_charsize_table_vec);
-           header.num_items = header.table_size;
-           header.table_id = Charset_Charsize_Table;
-           ptr = charset_character_size_table;
-           break;
-       case Child_Class_Table:
-           /*
-            * NOTE: The first entry is not used but we copy it anyway
-            */
-           header.table_size = sizeof(child_class_table_vec);
-           header.num_items = header.table_size;
-           header.table_id = Child_Class_Table;
-           ptr = child_class_table;
-           break;
-       }
-
-    emit_header(&header);
-
-    fwrite (ptr, header.table_size, 1, bfile);  
-    if (DEBUG)
-       {
-       for (i=0; i<=header.num_items; i++)
-           {
-           fprintf(afile, "%d ", ptr[i]);
-           }
-       }
-}
-
-\f
-void emit_ints_and_string(table_id)
-    int            table_id;
-{
-    _db_header             header;
-    key_keytable_entry_type *table;
-    int                            i;
-
-    switch (table_id)
-       {
-       /*
-        * All tables are zero based unless otherwise noted
-        */
-       case Key_Table:
-           header.table_size = sizeof(key_table_vec);
-           header.num_items = key_k_keyword_count;
-           header.table_id = Key_Table;
-           table = key_table;
-           break;
-       case Key_Table_Case_Ins:
-           header.table_size = sizeof(key_table_case_ins_vec);
-           header.num_items = key_k_keyword_count;
-           header.table_id = Key_Table_Case_Ins;
-           table = key_table_case_ins;
-           break;
-       }
-    emit_header(&header);
-
-    fwrite (table, header.table_size, 1, bfile);
-    for (i=0; i<header.num_items; i++)
-        {
-       fwrite (table[i].at_name, table[i].b_length + 1, 1, bfile);
-       if (DEBUG)
-           fprintf (afile, "%d %d %d %d %s", table[i].b_class, table[i].b_subclass,
-                table[i].b_length, table[i].b_token, table[i].at_name);
-       }
-              
-}
-
-\f
-void emit_char_table(table_id)
-int    table_id;
-{
-    unsigned char **table;
-    _db_header header;
-    unsigned char *entry_vec;
-    int i, j;
-    int num_bits = (uil_max_object + 7) / 8;
-
-    switch (table_id)
-       {
-       /*
-        * All tables are 1 based unless otherwise specified
-        */
-       case Allowed_Argument_Table:
-           header.table_size = sizeof(allowed_argument_table_vec);
-           header.num_items = uil_max_arg;
-           header.table_id = Allowed_Argument_Table;
-           table = allowed_argument_table;
-           break;
-       case Allowed_Control_Table:
-           header.table_size = sizeof(allowed_control_table_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Allowed_Control_Table;
-           table = allowed_control_table;
-           break;
-       case Allowed_Reason_Table:
-           header.table_size = sizeof(allowed_reason_table_vec);
-           header.num_items = uil_max_reason;
-           header.table_id = Allowed_Reason_Table;
-           table = allowed_reason_table;
-           break;
-       case Allowed_Child_Table:
-           header.table_size = sizeof(allowed_child_table_vec);
-           header.num_items = uil_max_child;
-           header.table_id = Allowed_Child_Table;
-           table = allowed_child_table;
-           break;
-       }
-
-    emit_header(&header);
-
-    for (i=1; i<=header.num_items; i++)   /* First not used */
-        {
-        entry_vec = table[i];
-       fwrite (entry_vec, sizeof (char) * num_bits, 1, bfile);
-       if (DEBUG)
-           {
-           for (j=0; j<num_bits; j++)
-               {
-               fprintf (afile, "%d, ", entry_vec[j]);
-               }
-           fprintf (afile, "\n");
-           }
-        }
-}
-
-\f
-void emit_length_and_string(table_id)
-int    table_id;
-{
-    _db_header header;
-    int                *lengths;
-    char       *string_table;
-    char       **table;
-    int                i;
-
-    switch (table_id)
-       {
-       /*
-        * all the tables are 1 based unless otherwise documented
-        */
-       case Charset_Xmstring_Names_Table:
-           header.table_size = sizeof(charset_xmstring_names_table_vec);
-           header.num_items = uil_max_charset;
-           header.table_id = Charset_Xmstring_Names_Table;
-           table = charset_xmstring_names_table;
-           break;
-       case Charset_Lang_Names_Table:
-           /*
-            * This table is 0 based
-            */
-           header.table_size = sizeof(charset_lang_names_table_vec);
-           header.num_items = charset_lang_table_max - 1;
-           header.table_id = Charset_Lang_Names_Table;
-           table = charset_lang_names_table;
-           break;
-       case Uil_Widget_Names:
-           header.table_size = sizeof(uil_widget_names_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Uil_Widget_Names;
-           table = uil_widget_names ;
-           break;
-       case Uil_Argument_Names:
-           header.table_size = sizeof(uil_argument_names_vec);
-           header.num_items = uil_max_arg;
-           header.table_id = Uil_Argument_Names;
-           table = uil_argument_names;
-           break;
-       case Uil_Reason_Names:
-           header.table_size = sizeof(uil_reason_names_vec);
-           header.num_items = uil_max_reason;
-           header.table_id = Uil_Reason_Names;
-           table = uil_reason_names;
-           break;
-       case Uil_Enumval_names:
-           header.table_size = sizeof(uil_enumval_names_vec);
-           header.num_items = uil_max_enumval;
-           header.table_id = Uil_Enumval_names;
-           table = uil_enumval_names;
-           break;
-       case Uil_Charset_Names:
-           header.table_size = sizeof(uil_charset_names_vec);
-           header.num_items = uil_max_charset;
-           header.table_id = Uil_Charset_Names;
-           table = uil_charset_names;
-           break;
-       case Uil_Widget_Funcs:
-           header.table_size = sizeof(uil_widget_funcs_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Uil_Widget_Funcs;
-           table = uil_widget_funcs;
-           break;
-       case Uil_Argument_Toolkit_Names:
-           header.table_size = sizeof(uil_argument_toolkit_names_vec);
-           header.num_items = uil_max_arg;
-           header.table_id = Uil_Argument_Toolkit_Names;
-           table = uil_argument_toolkit_names;
-           break;
-       case Uil_Reason_Toolkit_Names:
-           header.table_size = sizeof(uil_reason_toolkit_names_vec);
-           header.num_items = uil_max_reason;
-           header.table_id = Uil_Reason_Toolkit_Names;
-           table = uil_reason_toolkit_names;
-           break;
-       case Uil_Children_Names:
-           header.table_size = sizeof(uil_child_names_vec);
-           header.num_items = uil_max_child;
-           header.table_id = Uil_Children_Names;
-           table = uil_child_names ;
-           break;
-       }
-
-    emit_header(&header);
-
-    lengths = (int *) malloc (sizeof (int) * (header.num_items + 1));
-    for (i=0; i<=header.num_items; i++)
-       {
-       if (table[i] != NULL)
-           {
-           /*
-            * Add one to the length for the null terminator
-            */
-           lengths[i] = strlen(table[i]) + 1;
-           }
-       else
-           {
-           lengths[i] = 0;
-           }
-       if (DEBUG)
-           fprintf (afile, "%d ", lengths[i]);
-       }
-    fwrite (lengths, sizeof (int) * (header.num_items + 1), 1, bfile);
-    for (i=0; i<=header.num_items; i++)
-       {
-       if (lengths[i])
-           {
-           /*
-            * assumed lengths[i] = lengths[i] * sizeof(char)
-            * Add one for the null terminator
-            */
-           fwrite (table[i], lengths[i] + 1, 1, bfile);
-           if (DEBUG)
-               fprintf (afile, "%s ", table[i]);
-           }
-       }
-    free (lengths);
-}
-
-\f
-void emit_shorts(table_id)
-    int            table_id;
-{
-    _db_header         header;
-    unsigned short int *ptr;
-    int                        i;
-
-    switch (table_id)
-       {
-       /* 
-        * All tables are 1 based unless otherwise noted
-        */
-       case Charset_Lang_Codes_Table:
-           /*
-            * 0 based table
-            */
-           header.table_size = sizeof(charset_lang_codes_table_vec);
-           header.num_items = charset_lang_table_max - 1;
-           header.table_id = Charset_Lang_Codes_Table;
-           ptr = charset_lang_codes_table;
-           break;
-       case Argument_Enum_Set_Table:
-           header.table_size = sizeof(argument_enumset_table_vec);
-           header.num_items = uil_max_arg;
-           header.table_id = Argument_Enum_Set_Table;
-           ptr = argument_enumset_table;
-           break;
-       case Related_Argument_Table:
-           header.table_size = sizeof(related_argument_table_vec);
-           header.num_items = uil_max_arg;
-           header.table_id = Related_Argument_Table;
-           ptr = related_argument_table;
-           break;
-       case Uil_Gadget_Funcs:
-           header.table_size = sizeof(uil_gadget_variants_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Uil_Gadget_Funcs;
-           ptr = uil_gadget_variants;
-           break;
-       case Uil_Urm_Nondialog_Class:
-           header.table_size = sizeof(uil_urm_nondialog_class_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Uil_Urm_Nondialog_Class;
-           ptr = uil_urm_nondialog_class;
-           break;
-       case Uil_Urm_Subtree_Resource:
-           header.table_size = sizeof(uil_urm_subtree_resource_vec);
-           header.num_items = uil_max_object;
-           header.table_id = Uil_Urm_Subtree_Resource;
-           ptr = uil_urm_subtree_resource;
-           break;
-       }
-
-    emit_header(&header);
-
-    fwrite (ptr, header.table_size, 1, bfile);  
-    if (DEBUG)
-       {
-       for (i=0; i<header.num_items; i++)
-           {
-           fprintf(afile, "%d ", ptr[i]);
-           }
-       }
-}
-
-\f
-void emit_int_and_table_shorts(table_id)
-    int            table_id;
-{
-    _db_header         header;
-    UilEnumSetDescDef  *table;
-    int                        j, i;
-    unsigned short int *value_vec;
-
-    switch (table_id)
-       {
-       /*
-        * All tables are 1 based unless otherwise noted
-        */
-       case Enum_Set_Table:
-           header.table_size = sizeof(enum_set_table_vec);
-           header.num_items = uil_max_enumset;
-           header.table_id = Enum_Set_Table;
-           table = enum_set_table;
-           break;
-       }
-
-    emit_header(&header);
-    fwrite (table, header.table_size, 1, bfile);
-    for (i=0; i<=header.num_items; i++) /* first is not used */
-        {
-       if (table[i].values_cnt)
-           {
-           fwrite (table[i].values, sizeof (short) * table[i].values_cnt, 1, bfile);
-           }
-        }
-}
-
-\f
-void emit_ints(table_id)
-    int            table_id;
-{
-    _db_header header;
-    int                *ptr;
-    int                i;
-
-    switch (table_id)
-       /*
-        * all tables are 1 based unless otherwise noted
-        */
-       {
-       case Enumval_Values_Table:
-           header.table_size = sizeof(enumval_values_table_vec);
-           header.num_items = uil_max_enumval;
-           header.table_id = Enumval_Values_Table;
-           ptr = enumval_values_table;
-           break;
-       }
-
-    emit_header(&header);
-
-    fwrite (ptr, header.table_size, 1, bfile);  
-    if (DEBUG)
-       {
-       for (i=0; i<header.num_items; i++)
-           {
-           fprintf(afile, "%d ", ptr[i]);
-           }
-       }
-}
-
diff --git a/cde/osf/wml/wmllex.l b/cde/osf/wml/wmllex.l
deleted file mode 100644 (file)
index 166f619..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-%{
-/*
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
- */
-/*
- * HISTORY
- */
-#if defined(__STDC__)
-#include <string.h>
-#endif
-
-#ifndef XmConst
-#if (defined(__STDC__) && __STDC__)  ||  !defined( NO_CONST )
-#define XmConst const
-#else
-#define XmConst
-#endif /* __STDC__ */
-#endif /* XmConst */
-
-#ifdef YY_BUFFER_SIZE
-#define BUF_SIZE YY_BUFFER_SIZE
-#else
-#define BUF_SIZE 8192
-#endif
-
-char            yystringval[BUF_SIZE];      /* any string value */
-char            yynameval[BUF_SIZE];         /* any identifier (name) */
-int             yytknval1;              /* terminal token value 1 */
-int             yytknval2;              /* terminal token value 2 */
-
-%}
-
-%p 3000
-%%
-
-[ \t\f]                {}
-
-[\n]           { wml_line_count += 1; }
-
-"Class"                        { return CLASS; }
-"Resource"             { return RESOURCE; }
-"DataType"             { return DATATYPE; }
-"ControlList"          { return CONTROLLIST; }
-"EnumerationSet"       { return ENUMERATIONSET; }
-"EnumerationValue"     { return ENUMERATIONVALUE; }
-"CharacterSet"         { return CHARACTERSET; }
-"Child"                        { return CHILD; }
-
-"DocName"              { return DOCNAME; }
-"ConvenienceFunction"  { return CONVFUNC; }
-"Alias"                        { return ALIAS; }
-"Type"                 { return TYPE; }
-"ResourceLiteral"      { return RESOURCELITERAL; }
-"Related"              { return RELATED; }
-"InternalLiteral"      { return INTERNALLITERAL; }
-"Constraint"           { return CONSTRAINT; }
-"Exclude"              { return EXCLUDE;}
-"Resources"            { return RESOURCES; }
-"SuperClass"           { return SUPERCLASS; }
-"ParentClass"          { return PARENTCLASS; }
-"Controls"             { return CONTROLS; }
-"WidgetClass"          { return WIDGETCLASS; }
-"DialogClass"          { return DIALOGCLASS; }
-"Default"              { return DEFAULT; }
-"EnumLiteral"          { return ENUMLITERAL; }
-"XmStringCharsetName"  { return XMSTRINGCHARSETNAME; }
-"FontListElementTag"   { return XMSTRINGCHARSETNAME; }
-"Direction"            { return DIRECTION; }
-"ParseDirection"       { return PARSEDIRECTION; }
-"CharacterSize"                { return CHARACTERSIZE; }
-"ControlsMapToResource"        { return CTRLMAPSRESOURCE; }
-"Children"             { return CHILDREN; }
-
-"MetaClass"            { return METACLASS;}
-"Widget"               { return WIDGET;}
-"Gadget"               { return GADGET;}
-"Argument"             { return ARGUMENT;}
-"Reason"               { return REASON;}
-"Constraint"           { return CONSTRAINT;}
-"SubResource"          { return SUBRESOURCE;}
-"True"                 { return ATTRTRUE; }
-"False"                        { return ATTRFALSE; }
-"LeftToRight"          { return LEFTTORIGHT; }
-"RightToLeft"          { return RIGHTTOLEFT; }
-"OneByte"              { return ONEBYTE; }
-"TwoByte"              { return TWOBYTE; }
-"MixedOneAndTwoByte"   { return MIXED1_2BYTE; }
-
-":"                    { return COLON; }
-";"                    { return SEMICOLON; }
-"="                    { return EQUALS; }
-"{"                    { return LBRACE; }
-"}"                    { return RBRACE; }
-
-"!"[^\n]*      {}
-
-"#"[^\n]*      {}
-
-[a-zA-Z_][a-zA-Z0-9$_]* {      /* string without quotes        */
-       strcpy (yystringval, (XmConst char *) yytext);
-       return STRING;
-       }
-
-\"[^"\n]*\\    {       /* escaped character in the string      */
-               yymore();
-               }
-
-\"[^"\n]*\"    {       /* String in quotes     */
-               strncpy(yystringval, (XmConst char *) yytext+1, yyleng - 2);
-               yystringval[yyleng-2] = '\0' ;
-               return STRING;
-               }
-\"[^"\n]*      {
-               printf ("\nUnterminated string near %s, line %d",
-                       yytext, wml_line_count);
-               return ERRORTOKEN;
-               }
-
-.      {
-       printf ("\nEncountered illegal character '%c', line %d",
-               yytext[0], wml_line_count);
-       return ERRORTOKEN;
-       }
diff --git a/cde/osf/wml/wmlouth.c b/cde/osf/wml/wmlouth.c
deleted file mode 100644 (file)
index 59f4410..0000000
+++ /dev/null
@@ -1,1964 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmlouth.c /main/8 1995/08/29 11:10:46 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This module contains routines responsible for writing the .h files
- * produced by WML. All files are written into the current directory.
- *
- * Input:
- *     The resolved objects
- *
- * Output:
- *     UilSymGen.h
- *     UilSymArTy.h
- *     UilSymChCl.h
- *     UilSymRArg.h
- *     UilUrmClas.h
- *     UilConst.h
- *     UilSymReas.h
- *     UilSymArTa.h
- *     UilSymChTa.h
- *     UilSymCtl.h
- *     UilSymNam.h
- *     UilSymEnum.h
- *     UilSymCSet.h
- */
-
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <string.h>
-#endif
-#include <stdio.h>
-
-
-/*
- * Routines used only in this module
- */
-void wmlOutputUilSymGen ();
-void wmlOutputUilSymArTy ();
-void wmlOutputUilSymChCl ();
-void wmlOutputUilSymRArg ();
-void wmlOutputUilUrmClas ();
-void wmlOutputUilConst ();
-void wmlOutputUilSymReas ();
-void wmlOutputUilSymArTa ();
-void wmlOutputUilSymChTa ();
-void wmlOutputUilSymCtl ();
-void wmlOutputUilSymNam ();
-void wmlOutputUilSymEnum ();
-void wmlOutputUilSymCSet ();
-
-/*
- * globals
- */
-
-static char            *canned_warn =
-"/*\n\
-**\tThis file is automatically generated.  Do not edit it by hand.\n\
-**/\n";
-
-/*
- * Used to create masks for bytes in bit vectors. Accessed by bit numbers
- * from 1 - 8.
- */
-static char            *bit_masks[] =  {""
-                                       ," | 1"         /* bit 1 */
-                                       ," | 2"         /* bit 2 */
-                                       ," | 4"         /* bit 3 */
-                                       ," | 8"         /* bit 4 */
-                                       ," | 16"        /* bit 5 */
-                                       ," | 32"        /* bit 6 */
-                                       ," | 64"        /* bit 7 */
-                                       ," | 128"};     /* bit 8 */
-
-/*
- * To pick up maximum code values
- */
-static int             max_object_code = 0;
-static int             max_reason_code = 0;
-static int             max_arg_code = 0;
-static int             max_enumset_code = 0;
-static int             max_enumval_code = 0;
-static int             max_charset_code = 0;
-static int             max_child_code = 0;
-
-
-\f
-/*
- * Output control routine, which simply outputs each .h file in turn.
- */
-
-void wmlOutputHFiles ()
-
-{
-
-wmlOutputUilSymGen ();
-wmlOutputUilSymArTy ();
-wmlOutputUilSymChCl ();
-wmlOutputUilSymRArg ();
-wmlOutputUilUrmClas ();
-wmlOutputUilConst ();
-wmlOutputUilSymReas ();
-wmlOutputUilSymArTa ();
-wmlOutputUilSymChTa ();
-wmlOutputUilSymCtl ();
-wmlOutputUilSymNam ();
-wmlOutputUilSymEnum ();
-wmlOutputUilSymCSet ();
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymGen.h
- *
- * This file defines the sym_k... literals for UIL. Each set of literals
- * typiclly increases monotonically from 1, with 0 used as en error value.
- *
- *     sym_k_<class>_object
- *             <class> is widget class name in lexicographic order
- *             gadgets are not include.
- *
- *     bit masks for table access
- *
- *     sym_k_<reason>_reason
- *             literals specifying all reasons, lexicographically ordered 
- *
- *     sym_k_<argument>_arg
- *             literals for all arguments, lexicographically ordered.
- *             Constraints are included, and ordered with the arguments.
- *
- *     sym_k_<child>_child
- *             literals for all automatic children, lexicographically ordered.
- *
- *     sym_k_<enumset>_enumset
- *             literals naming each enumeration set, lexicographically ordered
- *
- *     Fixed literals naming character set character sizes
- *     sym_k_<charset>_charset
- *             literals naming each character set, lexicographically ordered
- */
-
-void wmlOutputUilSymGen ()
-
-{
-
-char           *canned1 =
-"\n/*  Define literals for objects */\n";
-
-
-char           *canned3 =
-"\n/*  Define literals for reasons */\n\n";
-
-
-char           *canned4 =
-"\n/*  Define literals for arguments */\n\n";
-
-char           *canned5 =
-"\n/*  Define literals for enumeration sets */\n\n";
-
-char           *canned6 =
-"\n/*  Define literals for enumeration values */\n\n";
-
-char           *canned7 =
-"\n/*  Define literals for character sets */\n\n";
-
-char           *canned8 =
-"\n/*  Define literals for automatic children */\n\n";
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* class object */
-WmlDataTypeDefPtr      datobj;         /* data type object */
-WmlResourceDefPtr      resobj;         /* resource object */
-WmlEnumSetDefPtr       enumsetobj;     /* enumeration set object */
-WmlEnumValueDefPtr     enumvalobj;     /* enumeration value object */
-WmlCharSetDefPtr       charsetobj;     /* character set object */
-WmlChildDefPtr         childobj;       /* child object */
-
-/*
- * Open the output file. Write the canned header stuff
- */
-outfil = fopen ("UilSymGen.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymGen.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Write the sym_k..._object literals
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_object\t%d\n",
-            clsobj->tkname,
-            clsobj->sym_code);
-    if ( clsobj->sym_code > max_object_code )
-       max_object_code = clsobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._reason literals
- */
-fprintf (outfil, canned3);
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_reason\t%d\n",
-            resobj->tkname,
-            resobj->sym_code);
-    if ( resobj->sym_code > max_reason_code )
-       max_reason_code = resobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._arg literals
- */
-fprintf (outfil, canned4);
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_arg\t%d\n",
-            resobj->tkname,
-            resobj->sym_code);
-    if ( resobj->sym_code > max_arg_code )
-       max_arg_code = resobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._enumset structs and literals
- */
-fprintf (outfil, canned5);
-for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
-    {
-    enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_enumset\t%d\n",
-            enumsetobj->tkname,
-            enumsetobj->sym_code);
-    if ( enumsetobj->sym_code > max_enumset_code )
-       max_enumset_code = enumsetobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._enumval literals
- */
-fprintf (outfil, canned6);
-for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
-    {
-    enumvalobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_enumval\t%d\n",
-            enumvalobj->syndef->name,
-            enumvalobj->sym_code);
-    if ( enumvalobj->sym_code > max_enumval_code )
-       max_enumval_code = enumvalobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._charsize literals
- * Define the sym_k_..._charset literals
- */
-fprintf (outfil, canned7);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    charsetobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_charset\t%d\n",
-            charsetobj->syndef->name,
-            charsetobj->sym_code);
-    if ( charsetobj->sym_code > max_charset_code )
-       max_charset_code = charsetobj->sym_code;
-    }
-
-/*
- * Define the sym_k_..._child literals
- */
-fprintf (outfil, canned8);
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "#define sym_k_%s_child\t%d\n",
-            childobj->syndef->name,
-            childobj->sym_code);
-    if ( childobj->sym_code > max_child_code )
-       max_child_code = childobj->sym_code;
-    }
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymGen.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymChCl.h
- *
- * A table of classes accessed by child type (sym_k_<child>_child, in
- * the form
- *     ...
- *     sym_k_<class>_class,
- */
-
-void wmlOutputUilSymChCl ()
-
-{
-
-char                   *canned1 =
-"/*  Table of the class type of children\n\
-    The table is indexed by child with each entry the\n\
-    permitted class for that child.\n\
-*/\n\
-\n\
-static unsigned char child_class_table_vec[] =\n\
-  {\n\
-    0,\n";
-
-char                   *canned1a =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char *child_class_table =\n\
-\t child_class_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         classobj;       /* data type object */
-WmlChildDefPtr         childobj;       /* resource object */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymChCl.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymChCL.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Create table entries, similar to writing sym_k...
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    classobj = childobj->class;
-    fprintf (outfil, "    sym_k_%s_object,\n",
-            classobj->tkname);
-    }
-fprintf (outfil, canned1a);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymChCl.h");
-fclose (outfil);
-
-}
-
-\f
-/*
- * Routine to write out UilSymArTy.h
- *
- * A table of data types accessed by argument type (sym_k_<arg>_arg, in
- * the form
- *     ...
- *     sym_k_<data_type>_value,
- */
-
-void wmlOutputUilSymArTy ()
-
-{
-
-char                   *canned1 =
-"/*  Table of the types of arguments\n\
-    The table is indexed by argument with each entry the\n\
-    permitted type for that argument.\n\
-*/\n\
-\n\
-static unsigned char argument_type_table_vec[] =\n\
-  {\n\
-    0,\n";
-
-char                   *canned1a =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char *argument_type_table =\n\
-\t argument_type_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlDataTypeDefPtr      datobj;         /* data type object */
-WmlResourceDefPtr      resobj;         /* resource object */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymArTy.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymArTy.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Create table entries, similar to writing sym_k...
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    datobj = resobj->dtype_def;
-    fprintf (outfil, "    sym_k_%s_value,\n",
-            datobj->tkname);
-    }
-fprintf (outfil, canned1a);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymArTy.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymRArg.h
- *
- * Related argument table
- */
-
-void wmlOutputUilSymRArg ()
-
-{
-
-char                   *canned1 =
-"/*    Related argument table. Each non-zero entry is the code\n\
-       of the related argument.\n\
- */\n\
-\n\
-static unsigned short int related_argument_table_vec[] =\n\
-  {\n\
-    0,\n";
-
-char                   *canned1a =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned short int *related_argument_table =\n\
-\t\trelated_argument_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlResourceDefPtr      resobj;         /* resource object */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymRArg.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymRArg.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Create table entries, similar to writing sym_k...
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "    %d,\n",
-            resobj->related_code);
-    }
-fprintf (outfil, canned1a);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymRArg.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilUrmClas.h
- *
- * Table of convenience function names indexed by the sym_k_<class> literal
- *     for both widgets and gadgets
- * Table of resource names indexed by the sym_k_<argument>_arg and
- *     sym_k_<reason>_reason codes.
- */
-
-void wmlOutputUilUrmClas ()
-
-{
-
-char                   *canned1 =
-"\n/*  Define mapping of UIL widget types to convenience functions.  */\n\
-static char *uil_widget_funcs_vec[] = {\n\
-  \"\",\t  /* NOT USED */\n";
-
-char                   *canned2 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_widget_funcs = uil_widget_funcs_vec;\n\
-\n\
-/*  Define mapping of UIL widget classes to matching gadget class.  */\n\
-static unsigned short int uil_gadget_variants_vec[] = {\n\
-  0,\t  /* NOT USED */\n";
-
-char                   *canned3 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned short int *uil_gadget_variants =\n\
-\t\tuil_gadget_variants_vec;\n\
-\n\
-/*  Define mapping of dialog types to non-dialog URM widget classes.  */\n\
-static unsigned short int uil_urm_nondialog_class_vec[] = {\n\
-  0,\t/* NOT USED */\n";
-
-char                   *canned4 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned short int *uil_urm_nondialog_class =\n\
-\t\tuil_urm_nondialog_class_vec;\n\
-\n\
-/*  Define mapping of widget controls to a (subtree) resource.  */\n\
-static unsigned short int uil_urm_subtree_resource_vec[] = {\n\
-  0,\t/* NOT USED */\n";
-
-char                   *canned5 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned short int *uil_urm_subtree_resource =\n\
-\t\tuil_urm_subtree_resource_vec;\n\
-\n\
-/*  Define mapping of arguments to toolkit names.  */\n\
-static char *uil_argument_toolkit_names_vec[] = {\n\
-  \"\",\t  /* NOT USED */\n";
-
-char                   *canned6 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_argument_toolkit_names =\n\
-\t\tuil_argument_toolkit_names_vec;\n\
-\n\
-/*  Define mapping of reasons to toolkit names.  */\n\
-static char *uil_reason_toolkit_names_vec[] = {\n\
-  \"\",\t/* NOT USED */\n";
-
-char                   *canned7 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_reason_toolkit_names =\n\
-\t\tuil_reason_toolkit_names_vec;\n";
-
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* class object */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-WmlClassDefPtr         varobj;         /* variant (widget) class object */
-WmlResourceDefPtr      resobj;         /* argument/reason object */
-WmlSynResourceDefPtr   synres;         /* arg/reason syntactic object */
-WmlResourceDefPtr      mapresobj;      /* controls map to resource object */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilUrmClas.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilUrmClas.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Write entries for widgets
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( clsobj->sym_code == 0 ) continue;
-    synobj = clsobj->syndef;
-    if ( synobj->int_lit != NULL )
-       fprintf (outfil, "  \"%s\",\n", synobj->convfunc);
-    else 
-       fprintf (outfil, "  \"%s\",\t\n", synobj->convfunc);
-    }
-fprintf (outfil, canned2);
-
-/*
- * Write entries for gadget variants of widget classes
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( clsobj->sym_code == 0 ) continue;
-    varobj = clsobj->variant;
-    synobj = clsobj->syndef;
-    if ( varobj==NULL || synobj->type==WmlClassTypeGadget )
-       fprintf (outfil, "  0,\n");
-    else 
-       {
-       synobj = varobj->syndef;
-       if ( synobj->int_lit != NULL )
-           fprintf (outfil, "  sym_k_%s_object,\n",
-                    synobj->int_lit);
-       else 
-           fprintf (outfil, "  sym_k_%s_object,\n",
-                    synobj->name);
-       }
-    }
-fprintf (outfil, canned3);
-
-/*
- * Write entries for non-dialog widgets
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( clsobj->sym_code == 0 ) continue;
-    varobj = clsobj->nondialog;
-    synobj = clsobj->syndef;
-    if ( varobj == NULL )
-       fprintf (outfil, "  0,\n");
-    else
-       {
-       synobj = varobj->syndef;
-       if ( synobj->int_lit != NULL )
-           fprintf (outfil, "  sym_k_%s_object,\n",
-                    synobj->int_lit);
-       else 
-           fprintf (outfil, "  sym_k_%s_object,\n",
-                    synobj->name);
-       }
-    }
-fprintf (outfil, canned4);
-
-/*
- * Write entries for the resource a widget's controls map to
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( clsobj->sym_code == 0 ) continue;
-    synobj = clsobj->syndef;
-    mapresobj = clsobj->ctrlmapto;
-    if ( mapresobj == NULL )
-       fprintf (outfil, "  0,\n");
-    else
-       fprintf (outfil, "  sym_k_%s_arg,\n", mapresobj->tkname);
-    }
-fprintf (outfil, canned5);
-
-/*
- * Write entries for arguments
- */
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    synres = resobj->syndef;
-    if ( resobj->sym_code == 0 ) continue;
-    fprintf (outfil, "  %s,\n",
-            synres->resliteral);
-    }
-fprintf (outfil, canned6);
-
-/*
- * Write entries for reasons
- */
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    synres = resobj->syndef;
-    if ( resobj->sym_code == 0 ) continue;
-    fprintf (outfil, "  %s,\n",
-            synres->resliteral);
-    }
-fprintf (outfil, canned7);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilUrmClas.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilConst.h
- *
- * A bit vector showing which arguments are constraints.
- */
-
-void wmlOutputUilConst ()
-
-{
-
-char                   *canned1 =
-"/* Table indexed by argument indicating whether\n\
-   argument is a constraint (TRUE) or a regular\n\
-   argument (FALSE).  Each entry is one bit.\n\
-   Index and mask macros are defined to simplify\n\
-   access to the table\n\
-*/\n\
-\n\
-static unsigned char constraint_tab_vec[] = {\n";
-
-char                   *canned1a =
-"};\n\
-externaldef(uil_sym_glbl) unsigned char *constraint_tab =\n\
-\t\tconstraint_tab_vec;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlResourceDefPtr      resobj;         /* resource object */
-WmlSynResourceDefPtr   synobj;         /* syntactic object */
-char                   maskbuf[100];   /* to constuct each mask */
-int                    bitno;          /* current bit number, from code */
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilConst.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilConst.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Process the arguments in code order. We start with 1, and write out
- * the mask after processing 8 codes.
- */
-fprintf (outfil, canned1);
-strcpy (maskbuf, "0");
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    synobj = resobj->syndef;
-    bitno = resobj->sym_code % 8;
-    if ( bitno == 0 ) bitno = 8;
-    if ( synobj->type == WmlResourceTypeConstraint )
-       strcat (maskbuf, bit_masks[bitno]);
-    if ( bitno == 8 )
-       {
-       fprintf (outfil, "%s,\n", maskbuf);
-       strcpy (maskbuf, "0");
-       }
-    }
-if ( bitno != 8 )
-    fprintf (outfil, "%s", maskbuf);
-fprintf (outfil, canned1a);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilConst.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymReas.h
- *
- * This file defines the reasons supported by each class. For each
- * reason, there is a bit vector with the bit for each supporting class
- * turned on if the reason is supported. There is then a vector pointing
- * to these bit vectors for all reasons. This vector is accessed by
- * sym_k_..._reason to find the reasons bit vector, then by sym_k_..._object
- * to check the bit.
- */
-
-void wmlOutputUilSymReas ()
-
-{
-
-char                   *canned1 =
-"\n/*\n\
- * Bit vectors for each reason. The entries in the vector correspond\n\
- * to each class.\n\
- */\n";
-
-char                   *bvechdr =
-"\n\
-/* sym_k_%s_reason */\n\
-static unsigned char reason_class_vec%d[] =\n\
-  {\n";
-
-char                   *canned2 =
-"\n/*\n\
- * Table of bit vectors accessed by sym_k_..._reason\n\
- */\n\
-static unsigned char *allowed_reason_table_vec[] =\n\
-  {\n\
-  NULL,\t/* UNUSED */\n";
-
-char                   *canned3 =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char **allowed_reason_table =\n\
-\t\tallowed_reason_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    resndx;         /* outer loop index */
-WmlResourceDefPtr      resobj;         /* current reason */
-int                    clsndx;         /* inner loop index */
-WmlClassDefPtr         clsobj;         /* current class object */
-WmlClassResDefPtr      resref;         /* class' resource reference */
-int                    itemno;         /* item in bye */
-char                   maskbuf[500];   /* current mask buffer */
-char                   itembuf[100];   /* for current item */
-int                    donl;           /* TRUE if append \n to mask */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymReas.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymReas.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-fprintf (outfil, canned1);
-
-/*
- * Generate the bit vectors for each class. Outer loop on the reason code,
- * inner loop on the class code.
- */
-for ( resndx=0 ; resndx<wml_obj_reason_ptr->cnt ; resndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[resndx].objptr;
-    fprintf (outfil, bvechdr, resobj->tkname, resobj->sym_code);
-
-    /*
-     * inner loop on widget class.
-     */
-    strcpy (maskbuf, " ");
-    for ( clsndx=0 ; clsndx<wml_obj_class_ptr->cnt ; clsndx++ )
-       {
-       clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[clsndx].objptr;
-       itemno = (clsobj->sym_code+1) % 8;
-       donl = FALSE;
-       resref = wmlResolveResIsMember (resobj, clsobj->reasons);
-       if ( resref != NULL )
-           if ( resref->exclude != WmlAttributeTrue )
-               {
-               sprintf (itembuf, " _BIT_MASK(sym_k_%s_object) |",
-                        clsobj->tkname);
-               strcat (maskbuf, itembuf);
-               donl = TRUE;
-               }
-       if ( donl )
-           strcat (maskbuf, "\n ");
-       if ( itemno == 0 )
-           {
-           fprintf (outfil, "%s 0", maskbuf);
-           strcpy (maskbuf, ",");
-           }
-       }
-    if ( itemno != 0 )
-       fprintf (outfil, "%s 0};\n", maskbuf);
-    else
-       fprintf (outfil, "};\n");
-    }
-
-/*
- * Write the vector of vectors.
- */
-fprintf (outfil, canned2);
-for ( resndx=0 ; resndx<wml_obj_reason_ptr->cnt ; resndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[resndx].objptr;
-    fprintf (outfil, "  reason_class_vec%d,\n", resobj->sym_code);
-    }
-fprintf (outfil, canned3);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymReas.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymArTa.h
- *
- * This file defines the arguments supported by each class. For each
- * argument, there is a bit vector with the bit for each supporting class
- * turned on if the argument is supported. There is then a vector pointing
- * to these bit vectors for all arguments. This vector is accessed by
- * sym_k_..._arg to find the arguments bit vector, then by sym_k_..._object
- * to check the bit.
- */
-
-void wmlOutputUilSymArTa ()
-
-{
-
-char                   *canned1 =
-"\n/*\n\
- * Bit vectors for each argument. The entries in the vector correspond\n\
- * to each class.\n\
- */\n";
-
-char                   *bvechdr =
-"\n\
-/* sym_k_%s_arg */\n\
-static unsigned char arg_class_vec%d[] =\n\
-  {\n";
-
-char                   *canned2 =
-"\n/*\n\
- * Table of bit vectors accessed by sym_k_..._arg\n\
- */\n\
-static unsigned char *allowed_argument_table_vec[] =\n\
-  {\n\
-  NULL,\t/* UNUSED */\n";
-
-char                   *canned3 =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char **allowed_argument_table =\n\
-\t\tallowed_argument_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    resndx;         /* outer loop index */
-WmlResourceDefPtr      resobj;         /* current argument */
-int                    clsndx;         /* inner loop index */
-WmlClassDefPtr         clsobj;         /* current class object */
-WmlClassResDefPtr      resref;         /* class' resource reference */
-int                    itemno;         /* item in bye */
-char                   maskbuf[500];   /* current mask buffer */
-char                   itembuf[100];   /* for current item */
-int                    donl;           /* TRUE if append \n to mask */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymArTa.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymArTa.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-fprintf (outfil, canned1);
-
-/*
- * Generate the bit vectors for each class. Outer loop on the argument code,
- * inner loop on the class code.
- */
-for ( resndx=0 ; resndx<wml_obj_arg_ptr->cnt ; resndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[resndx].objptr;
-    fprintf (outfil, bvechdr, resobj->tkname, resobj->sym_code);
-
-    /*
-     * inner loop on widget class.
-     */
-    strcpy (maskbuf, " ");
-    for ( clsndx=0 ; clsndx<wml_obj_class_ptr->cnt ; clsndx++ )
-       {
-       clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[clsndx].objptr;
-       itemno = (clsobj->sym_code+1) % 8;
-       donl = FALSE;
-       resref = wmlResolveResIsMember (resobj, clsobj->arguments);
-       if ( resref != NULL )
-           if ( resref->exclude != WmlAttributeTrue )
-               {
-               sprintf (itembuf, " _BIT_MASK(sym_k_%s_object) |",
-                        clsobj->tkname);
-               strcat (maskbuf, itembuf);
-               donl = TRUE;
-               }
-       if ( donl )
-           strcat (maskbuf, "\n ");
-       if ( itemno == 0 )
-           {
-           fprintf (outfil, "%s 0", maskbuf);
-           strcpy (maskbuf, ",");
-           }
-       }
-    if ( itemno != 0 )
-       fprintf (outfil, "%s 0};\n", maskbuf);
-    else
-       fprintf (outfil, "};\n");
-    }
-
-/*
- * Write the vector of vectors.
- */
-fprintf (outfil, canned2);
-for ( resndx=0 ; resndx<wml_obj_arg_ptr->cnt ; resndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[resndx].objptr;
-    fprintf (outfil, "  arg_class_vec%d,\n", resobj->sym_code);
-    }
-fprintf (outfil, canned3);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymArTa.h");
-fclose (outfil);
-
-}
-
-\f
-/*
- * Routine to write out UilSymChTa.h
- *
- * This file defines the automatic children supported by each class. For each
- * child, there is a bit vector with the bit for each supporting class
- * turned on if the child is supported. There is then a vector pointing
- * to these bit vectors for all children. This vector is accessed by
- * sym_k_..._child to find the child's bit vector, then by sym_k_..._object
- * to check the bit.
- */
-
-void wmlOutputUilSymChTa ()
-
-{
-
-char                   *canned1 =
-"\n/*\n\
- * Bit vectors for each child. The entries in the vector correspond\n\
- * to each class.\n\
- */\n";
-
-char                   *bvechdr =
-"\n\
-/* sym_k_%s_child */\n\
-static unsigned char child_class_vec%d[] =\n\
-  {\n";
-
-char                   *canned2 =
-"\n/*\n\
- * Table of bit vectors accessed by sym_k_..._child\n\
- */\n\
-static unsigned char *allowed_child_table_vec[] =\n\
-  {\n\
-  NULL,\t/* UNUSED */\n";
-
-char                   *canned3 =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char **allowed_child_table =\n\
-\t\tallowed_child_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    childndx;       /* outer loop index */
-WmlChildDefPtr         childobj;       /* current argument */
-int                    clsndx;         /* inner loop index */
-WmlClassDefPtr         clsobj;         /* current class object */
-WmlClassChildDefPtr    childref;       /* class' child reference */
-int                    itemno;         /* item in byte */
-char                   maskbuf[500];   /* current mask buffer */
-char                   itembuf[100];   /* for current item */
-int                    donl;           /* TRUE if append \n to mask */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymChTa.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymChTa.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-fprintf (outfil, canned1);
-
-/*
- * Generate the bit vectors for each class. Outer loop on the child code,
- * inner loop on the class code.
- */
-for ( childndx=0 ; childndx<wml_obj_child_ptr->cnt ; childndx++ )
-    {
-    childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[childndx].objptr;
-    fprintf (outfil, bvechdr, childobj->tkname, childobj->sym_code);
-
-    /*
-     * inner loop on widget class.
-     */
-    strcpy (maskbuf, " ");
-    for ( clsndx=0 ; clsndx<wml_obj_class_ptr->cnt ; clsndx++ )
-       {
-       clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[clsndx].objptr;
-       itemno = (clsobj->sym_code+1) % 8;
-       donl = FALSE;
-       childref = wmlResolveChildIsMember (childobj, clsobj->children);
-       if ( childref != NULL )
-         {
-           sprintf (itembuf, " _BIT_MASK(sym_k_%s_object) |", clsobj->tkname);
-           strcat (maskbuf, itembuf);
-           donl = TRUE;
-         }
-       if ( donl )
-           strcat (maskbuf, "\n ");
-       if ( itemno == 0 )
-           {
-           fprintf (outfil, "%s 0", maskbuf);
-           strcpy (maskbuf, ",");
-           }
-       }
-    if ( itemno != 0 )
-       fprintf (outfil, "%s 0};\n", maskbuf);
-    else
-       fprintf (outfil, "};\n");
-    }
-
-/*
- * Write the vector of vectors.
- */
-fprintf (outfil, canned2);
-for ( childndx=0 ; childndx<wml_obj_child_ptr->cnt ; childndx++ )
-    {
-    childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[childndx].objptr;
-    fprintf (outfil, "  child_class_vec%d,\n", childobj->sym_code);
-    }
-fprintf (outfil, canned3);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymChTa.h");
-fclose (outfil);
-
-}
-
-\f
-/*
- * Routine to write out UilSymCtl.h
- *
- * This file defines the controls supported by each class. For each
- * object, there is a bit vector with the bit for each supporting class
- * turned on if the object is supported. There is then a vector pointing
- * to these bit vectors for all objects. This vector is accessed by
- * sym_k_..._object to find the objects bit vector, then by sym_k_..._object
- * to check the bit.
- */
-
-void wmlOutputUilSymCtl ()
-
-{
-
-char                   *canned1 =
-"\n/*\n\
- * Bit vectors for each control. The entries in the vector correspond\n\
- * to each class.\n\
- */\n";
-
-char                   *bvechdr =
-"\n\
-/* sym_k_%s_object */\n\
-static unsigned char object_class_vec%d[] =\n\
-  {\n";
-
-char                   *canned2 =
-"\n/*\n\
- * Table of bit vectors accessed by sym_k_..._object\n\
- */\n\
-static unsigned char *allowed_control_table_vec[] =\n\
-  {\n\
-  NULL,\t/* UNUSED */\n";
-
-char                   *canned3 =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned char **allowed_control_table =\n\
-\t\tallowed_control_table_vec;\n";
-
-FILE                   *outfil;        /* output file */
-int                    ctlndx;         /* outer loop index */
-WmlClassDefPtr         ctlobj;         /* current class allowing controls */
-int                    clsndx;         /* inner loop index */
-WmlClassDefPtr         clsobj;         /* current class object */
-int                    itemno;         /* item in bye */
-char                   maskbuf[500];   /* current mask buffer */
-char                   itembuf[100];   /* for current item */
-int                    donl;           /* TRUE if append \n to mask */
-
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymCtl.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymCtl.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-fprintf (outfil, canned1);
-
-/*
- * Generate the bit vectors for each class. Outer loop on the class code,
- * inner loop on the class code.
- */
-for ( ctlndx=0 ; ctlndx<wml_obj_class_ptr->cnt ; ctlndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ctlndx].objptr;
-    fprintf (outfil, bvechdr, clsobj->tkname, clsobj->sym_code);
-
-    /*
-     * inner loop on widget class.
-     */
-    strcpy (maskbuf, " ");
-    for ( clsndx=0 ; clsndx<wml_obj_class_ptr->cnt ; clsndx++ )
-       {
-       ctlobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[clsndx].objptr;
-       itemno = (ctlobj->sym_code+1) % 8;
-       donl = FALSE;
-       if ( wmlResolveCtlIsMember(clsobj,ctlobj->controls) == TRUE)
-           {
-           sprintf (itembuf, " _BIT_MASK(sym_k_%s_object) |",
-                    ctlobj->tkname);
-           strcat (maskbuf, itembuf);
-           donl = TRUE;
-           }
-       if ( donl )
-           strcat (maskbuf, "\n ");
-       if ( itemno == 0 )
-           {
-           fprintf (outfil, "%s 0", maskbuf);
-           strcpy (maskbuf, ",");
-           }
-       }
-    if ( itemno != 0 )
-       fprintf (outfil, "%s 0};\n", maskbuf);
-    else
-       fprintf (outfil, "};\n");
-    }
-
-/*
- * Write the vector of vectors.
- */
-fprintf (outfil, canned2);
-for ( ctlndx=0 ; ctlndx<wml_obj_class_ptr->cnt ; ctlndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ctlndx].objptr;
-    fprintf (outfil, "  object_class_vec%d,\n", clsobj->sym_code);
-    }
-fprintf (outfil, canned3);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymCtl.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Predicate to indicate if a class object is in a controls list.
- */
-
-int wmlResolveCtlIsMember (ctlobj, ctlref)
-    WmlClassDefPtr             ctlobj;
-    WmlClassCtrlDefPtr         ctlref;
-
-{
-
-while ( ctlref != NULL )
-    {
-    if ( ctlref->ctrl == ctlobj ) return TRUE;
-    ctlref = ctlref->next;
-    }
-return FALSE;
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymNam.h
- *
- * Tables of names of object indexed by their various sym_k_ literals.
- */
-
-void wmlOutputUilSymNam ()
-
-{
-
-char                   *canned1 =
-"/*  Define mapping of sym_k_..._object codes to widget names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_object = %d;\n\
-static char *uil_widget_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n";
-
-char                   *canned2 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_widget_names =\n\
-\t\tuil_widget_names_vec;\n\
-\n\n\
-/*  Define mapping of sym_k_..._arg codes to argument names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_arg = %d;\n\
-static char *uil_argument_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n";
-
-char                   *canned3 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_argument_names =\n\
-\t\tuil_argument_names_vec;\n\
-\n\n\
-/*  Define mapping of sym_k_..._reason to reason names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_reason = %d;\n\
-static char *uil_reason_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n";
-
-char                   *canned4 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_reason_names =\n\
-\t\tuil_reason_names_vec;\n\
-\n\n\
-/*  Define mapping of sym_k_..._enumval to enumeration value names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_enumset = %d;\n\
-externaldef(uil_sym_glbl) int uil_max_enumval = %d;\n\
-static char *uil_enumval_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n";
-
-char                   *canned5 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_enumval_names =\n\
-\t\tuil_enumval_names_vec;\n\
-\n\n\
-/*  Define mapping of sym_k_..._charset to enumeration value names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_charset = %d;\n\
-static char *uil_charset_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n\
-    \"<userdefined>\",\n";
-
-char                   *canned6 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_charset_names =\n\
-\t\tuil_charset_names_vec;\n\
-\n\n\
-/*  Define mapping of sym_k_..._child codes to child names.  */\n\
-\n\
-externaldef(uil_sym_glbl) int uil_max_child = %d;\n\
-static char *uil_child_names_vec[] = {\n\
-    \"\",\t/* NOT USED */\n";
-
-char                   *canned7 =
-"};\n\
-externaldef(uil_sym_glbl) char **uil_child_names =\n\
-\t\tuil_child_names_vec;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* class object */
-WmlClassDefPtr         varobj;         /* gadget class object */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-WmlResourceDefPtr      resobj;         /* argument/reason object */
-WmlSynResourceDefPtr   synres;         /* arg/reason syntactic object */
-WmlEnumValueDefPtr     evobj;          /* enumeration value object */
-WmlSynEnumValueDefPtr  synev;          /* enumeration value syntactic obj */
-WmlCharSetDefPtr       csobj;          /* character set object */
-WmlSynCharSetDefPtr    syncs;          /* character set syntactic obj */
-WmlChildDefPtr         chobj;          /* child object */
-WmlSynChildDefPtr      synch;          /* child syntactic object */
-
-/*
- * Open the output file. Write canned header.
- */
-outfil = fopen ( "UilSymNam.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymNam.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Write entries for widgets
- */
-fprintf (outfil, canned1, max_object_code);
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( clsobj->sym_code == 0 ) continue;
-    synobj = clsobj->syndef;
-    fprintf (outfil, "    \"%s\",\n",
-            synobj->name);
-    }
-
-/*
- * Write entries for arguments
- */
-fprintf (outfil, canned2, max_arg_code);
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    synres = resobj->syndef;
-    if ( resobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    \"%s\",\n",
-            synres->name);
-    }
-
-/*
- * Write entries for reasons
- */
-fprintf (outfil, canned3, max_reason_code);
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    synres = resobj->syndef;
-    if ( resobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    \"%s\",\n",
-            synres->name);
-    }
-
-/*
- * Write entries for enumeration values
- */
-fprintf (outfil, canned4, max_enumset_code, max_enumval_code);
-for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
-    {
-    evobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
-    synev = evobj->syndef;
-    if ( evobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    \"%s\",\n",
-            synev->name);
-    }
-
-/*
- * Write entries for character sets
- */
-fprintf (outfil, canned5, max_charset_code);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    \"%s\",\n",
-            syncs->name);
-    }
-
-/*
- * Write entries for children
- */
-fprintf (outfil, canned6, max_child_code);
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    chobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    synch = chobj->syndef;
-    if ( chobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    \"%s\",\n",
-            synch->name);
-    }
-fprintf (outfil, canned7);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymNam.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymEnum.h
- *
- * This file defines the enumeration sets recognized by UIL. There is an
- * entry in this file for each enumeration set. The definitions are accessed
- * by the sym_k_..._enumset code. Each consists of a structure containing
- * a vector of enumeration value descriptors, each of which is the name
- * of the value and its value.
- *
- * UilSymEnum.h contains:
- *     - Vectors of value descriptors for each table entry
- *     - The table itself.
- *     - A table given the sym_k_..._enumset code for each argument which
- *       has an enumeration set.
- *     - A table accessed by sym_k_..._enumval code giving the actual value
- *       for each enumeration value.
- *
- * The typedefs for the tables are in UilSymGen.h
- */
-
-void wmlOutputUilSymEnum ()
-
-{
-
-char                   *canned1 =
-"\n\
-/*\n\
- * Enumeration value vectors for each enumeration set\n\
- */\n\
-\n";
-
-char                   *valhdr =
-"\n\
-static unsigned short int enum_value_vec%d[] =\n\
-  {\n";
-
-char                   *canned3 =
-"\n\
-/*\n\
- * Enumeration set descriptor table\n\
- */\n\
-static UilEnumSetDescDef enum_set_table_vec[] =\n\
-  {\n\
-    {0,NULL},\n";
-
-char                   *canned4 =
-"  };\n\
-externaldef(uil_sym_glbl) UilEnumSetDescDef *enum_set_table =\n\
-\t\tenum_set_table_vec;\n\
-/*\n\
- * Enumeration set table, accessed by sym_k_..._arg code. Each non-zero entry\n\
- * is the sym_k_..._enumset code for the argument's enumeration set.\n\
- */\n\
-static unsigned short int argument_enumset_table_vec[] =\n\
-  {\n\
-    0,\n";
-
-char                   *canned5 =
-"  };\n\
-externaldef(uil_sym_glbl) unsigned short int *argument_enumset_table =\n\
-\t\targument_enumset_table_vec;\n\
-/*\n\
- * Enumeration value table, accessed by sym_k_..._enumval code. Each entry is\n\
- * the actual value associated with the code.\n\
- */\n\
-static int enumval_values_table_vec[] =\n\
-  {\n\
-  0,\n";
-
-char                   *canned5a =
-"  };\n\
-externaldef(uil_sym_glbl) int *enumval_values_table =\n\
-\t\tenumval_values_table_vec;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlEnumSetDefPtr       enumsetobj;     /* enumeration set object */
-WmlEnumSetValDefPtr    esvobj;         /* current enum set value list element */
-WmlEnumValueDefPtr     evobj;          /* current enumeration value object */
-WmlResourceDefPtr      resobj;         /* resource object */
-
-
-/*
- * Open the output file. Write the canned header stuff
- */
-outfil = fopen ("UilSymEnum.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymEnum.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Generate the enumeration value vectors for each enumeration set.
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
-    {
-    enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
-    fprintf (outfil, valhdr, enumsetobj->sym_code);
-    for ( esvobj=enumsetobj->values ; esvobj!=NULL ; esvobj=esvobj->next )
-       {
-       evobj = esvobj->value;
-       fprintf (outfil, "    %d,\n",
-                evobj->sym_code);
-       }
-    fprintf (outfil, "  };\n");
-    }
-
-/*
- * Generate the enumeration set tables
- */
-fprintf (outfil, canned3);
-for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
-    {
-    enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "    {%d,enum_value_vec%d},\n",
-            enumsetobj->values_cnt,
-            enumsetobj->sym_code);
-    }
-
-/*
- * Create enumset table entries for arguments, similar to writing sym_k...
- */
-fprintf (outfil, canned4);
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    if ( resobj->enumset_def == NULL )
-       fprintf (outfil, "    0,\n");
-    else
-       fprintf (outfil, "    %d,\n",
-                resobj->enumset_def->sym_code);
-    }
-
-/*
- * Create the enumval values table.
- */
-fprintf (outfil, canned5);
-for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
-    {
-    evobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
-    fprintf (outfil, "  %s,\n", evobj->syndef->enumlit);
-    }
-fprintf (outfil, canned5a);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymEnum.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write out UilSymCSet.h
- *
- * This file specifies the various attributes for the character sets
- * recognized by UIL. There is a table for each of the following
- * attributes:
- *     - Standards name associated with the character set
- *     - Writing direction, from XmSTRING_DIRECTION_...
- *     - Parsing direction, from XmSTRING_DIRECTION_...
- *     - Bytes per character, from sym_k_..._charsize (in UilSymGen.h)
- *     - A pair of tables for recognizing $LANG settings:
- *             o a table of all names under which a character set might
- *               be legally recognized (upper case).
- *             o the sym_k_..._charset code for each entry
- *             o a variable giving the number of entries in the table
- *
- * All tables are accessed by the sym_k_..._charset 
- *
- */
-
-void wmlOutputUilSymCSet ()
-
-{
-
-char                   *canned1 =
-"\n\
-/*\n\
- * Character set XmString name table, accessed by sym_k_..._charset code.\n\
- * Each entry is the name which identifies the character set in a XmString.\n\
- */\n\
-static char *charset_xmstring_names_table_vec[] =\n\
-  {\n\
-    0,\n\
-    \"<userdefined>\",\n";
-
-char                   *canned2 =
-"};\n\
-externaldef(uil_sym_glbl) char **charset_xmstring_names_table =\n\
-\t\tcharset_xmstring_names_table_vec;\n\
-/*\n\
- * Character set writing direction table, accessed by sym_k_..._charset code.\n\
- * Each entry is the XmSTRING_DIRECTION_... code which identifies the\n\
- * writing direction for the character set in a XmString.\n\
- */\n\
-static unsigned char charset_wrdirection_table_vec[] =\n\
-  {\n\
-    0,\n\
-    0,\t/* userdefined */\n";
-
-char                   *canned3 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned char *charset_writing_direction_table =\n\
-\t\tcharset_wrdirection_table_vec;\n\
-/*\n\
- * Character set parsing direction table, accessed by sym_k_..._charset code.\n\
- * Each entry is the XmSTRING_DIRECTION_... code which identifies the\n\
- * parsing direction for the character set in a XmString.\n\
- */\n\
-static unsigned char charset_parsdirection_table_vec[] =\n\
-  {\n\
-    0,\n\
-    0,\t/* userdefined */\n";
-
-char                   *canned4 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned char *charset_parsing_direction_table =\n\
-\t\tcharset_parsdirection_table_vec;\n\
-/*\n\
- * Character set character size table, accessed by sym_k_..._charset code.\n\
- * Each entry is the sym_k_..._charsize literal which names the character\n\
- * size for the character set in a XmString.\n\
- */\n\
-static unsigned char charset_charsize_table_vec[] =\n\
-  {\n\
-    0,\n\
-    0,\t/* userdefined */\n";
-
-char                   *canned5 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned char *charset_character_size_table =\n\
-\t\tcharset_charsize_table_vec;\n\
-/*\n\
- * All the names under which a character set may be legally named in a \n\
- * $LANG variable (upper case).\n\
- */\n\
-static char *charset_lang_names_table_vec[] =\n\
-  {\n";
-
-char                   *canned6 =
-"};\n\
-externaldef(uil_sym_glbl) char **charset_lang_names_table =\n\
-\t\tcharset_lang_names_table_vec;\n\
-/*\n\
- * The sym_k_..._charset codes for charset_lang_names\n\
- */\n\
-static unsigned short int charset_lang_codes_table_vec[] =\n\
-  {\n";
-
-char                   *canned7 =
-"};\n\
-externaldef(uil_sym_glbl) unsigned short int *charset_lang_codes_table =\n\
-\t\tcharset_lang_codes_table_vec;\n\
-/*\n\
- * The number of entries in charset_lang_..._table tables\n\
- */\n\
-externaldef(uil_sym_glbl) unsigned short int charset_lang_table_max = %d;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlCharSetDefPtr       csobj;          /* character set object */
-WmlSynCharSetDefPtr    syncs;          /* character set syntactic obj */
-int                    lang_max;       /* max value for $LANG tables */
-int                    alias_ndx;      /* alias loop index */
-char                   uname[200];     /* name converted to upper case */
-
-
-/*
- * Open the output file. Write the canned header stuff
- */
-outfil = fopen ("UilSymCSet.h", "w");
-if ( outfil == (FILE *) NULL )
-    {
-    printf ("\nCouldn't open UilSymCSet.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Generate the standards name table
- */
-fprintf (outfil, canned1);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    if ((strcmp(syncs->xms_name, "XmFONTLIST_DEFAULT_TAG") == 0) ||
-       (strcmp(syncs->xms_name, "_MOTIF_DEFAULT_LOCALE") == 0))
-      fprintf (outfil, "    %s,\t/* %s */\n",
-              syncs->xms_name, syncs->name);
-    else
-      fprintf (outfil, "    \"%s\",\t/* %s */\n",
-              syncs->xms_name, syncs->name);
-    }
-
-/*
- * Generate the writing direction table
- */
-fprintf (outfil, canned2);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    switch ( syncs->direction )
-       {
-       case WmlCharSetDirectionLtoR:
-           fprintf (outfil, "    XmSTRING_DIRECTION_L_TO_R,\t/* %s */\n",
-                    syncs->name);
-           break;
-       case WmlCharSetDirectionRtoL:
-           fprintf (outfil, "    XmSTRING_DIRECTION_R_TO_L,\t/* %s */\n",
-                    syncs->name);
-           break;
-       }
-    }
-
-/*
- * Generate the parsing direction table
- */
-fprintf (outfil, canned3);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    switch ( syncs->parsedirection )
-       {
-       case WmlCharSetDirectionLtoR:
-           fprintf (outfil, "    XmSTRING_DIRECTION_L_TO_R,\t/* %s */\n",
-                    syncs->name);
-           break;
-       case WmlCharSetDirectionRtoL:
-           fprintf (outfil, "    XmSTRING_DIRECTION_R_TO_L,\t/* %s */\n",
-                    syncs->name);
-           break;
-       }
-    }
-
-/*
- * Generate the character size table
- */
-fprintf (outfil, canned4);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    switch ( syncs->charsize )
-       {
-       case WmlCharSizeOneByte:
-           fprintf (outfil, "    sym_k_onebyte_charsize,\t/* %s */\n",
-                    syncs->name);
-           break;
-       case WmlCharSizeTwoByte:
-           fprintf (outfil, "    sym_k_twobyte_charsize,\t/* %s */\n",
-                    syncs->name);
-           break;
-       case WmlCharSizeMixed1_2Byte:
-           fprintf (outfil, "    sym_k_mixed1_2byte_charsize,\t/* %s */\n",
-                    syncs->name);
-           break;
-       }
-    }
-
-/*
- * Generate the $LANG name recognition table
- */
-fprintf (outfil, canned5);
-lang_max = 0;
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    strcpy (uname, syncs->name);
-    wmlUpperCaseString (uname);
-    fprintf (outfil, "    \"%s\",\t/* %s */\n",
-            uname, syncs->name);
-    lang_max += 1;
-    strcpy (uname, syncs->xms_name);
-    wmlUpperCaseString (uname);
-    fprintf (outfil, "    \"%s\",\t/* %s */\n",
-            uname, syncs->name);
-    lang_max += 1;
-    for ( alias_ndx=0 ; alias_ndx<syncs->alias_cnt ; alias_ndx++ )
-       {
-       strcpy (uname, syncs->alias_list[alias_ndx]);
-       wmlUpperCaseString (uname);
-       fprintf (outfil, "    \"%s\",\t/* %s */\n",
-                uname, syncs->name);
-       lang_max += 1;
-       }
-    }
-
-/*
- * Generate the $LANG code lookup table, in upper case
- */
-fprintf (outfil, canned6);
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    syncs = csobj->syndef;
-    if ( csobj->sym_code == 0 ) continue;
-    fprintf (outfil, "    sym_k_%s_charset,\n", syncs->name);
-    fprintf (outfil, "    sym_k_%s_charset,\n", syncs->name);
-    for ( alias_ndx=0 ; alias_ndx<syncs->alias_cnt ; alias_ndx++ )
-       fprintf (outfil, "    sym_k_%s_charset,\n", syncs->name);
-    }
-
-/*
- * Generate the number of entries in the previous two tables
- */
-fprintf (outfil, canned7, lang_max);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilSymCSet.h");
-fclose (outfil);
-
-}
-
-
diff --git a/cde/osf/wml/wmloutkey.c b/cde/osf/wml/wmloutkey.c
deleted file mode 100644 (file)
index 10bb181..0000000
+++ /dev/null
@@ -1,834 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: wmloutkey.c /main/8 1997/04/14 12:55:51 dbl $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This module contains routines responsible for writing the .h files which
- * define the UIL lexer's keyword (token) tables. All files are written
- * into the current directory.
- *
- * Input:
- *     The resolved objects
- *     .dat files required to specify objects defined in Uil.y:
- *             keyword.dat
- *             reserved.dat
- *
- * Output:
- *     UilKeyTab.h
- *
- */
-
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <stdlib.h>
-#include <string.h>
-#endif
-#include <stdio.h>
-
-
-/*
- * Routines used only in this module
- */
-void wmlKeyWBuildTables ();
-void wmlKeyWClassTokens ();
-void wmlKeyWGrammarTokens ();
-int wmlKeyWGrammarClass ();
-void wmlKeyWArgTokens ();
-void wmlKeyWReasonTokens ();
-void wmlKeyWCharsetTokens ();
-void wmlKeyWEnumvalTokens ();
-void wmlKeyWChildTokens ();
-void wmlKeyWMakeTokens ();
-void wmlOutputUilKeyTab ();
-void wmlOutputUilKeyTabBody ();
-void wmlTokenClassString ();
-void wmlTokenSymKString ();
-void wmlTokenTokenString ();
-void wmlOutputUilTokName ();
-
-/*
- * globals
- */
-
-static char            *canned_warn =
-"/*\n\
-**\tThis file is automatically generated.  Do not edit it by hand.\n\
-**/\n\n";
-
-#define        GrTokenMax              200             /* limit on grammar tokens */
-static int                     grtok_max_val = 0;
-static WmlGrammarTokenPtr      grtok_vec[GrTokenMax];
-
-
-\f
-/*
- * Output control routine
- */
-
-void wmlOutputKeyWordFiles ()
-
-{
-
-wmlKeyWBuildTables ();
-wmlOutputUilKeyTab ();
-wmlOutputUilTokName ();
-
-}
-
-
-\f
-/*
- * Routine to construct token tables for building UilKeyTab.h
- *
- * This routine constructs token entries for each token class which appears
- * in UilKeyTab.h (the token classes are defined in UilKeyDef.h). These
- * tokens are defined both by WML objects in object vectors, and by
- * tokens defined in Uil.y.
- */
-
-void wmlKeyWBuildTables ()
-
-{
-
-int            ndx;
-
-
-/*
- * Initialize the token vectors
- */
-wmlInitHList (wml_tok_sens_ptr, 1000, TRUE);
-wmlInitHList (wml_tok_insens_ptr, 1000, TRUE);
-for ( ndx=0 ; ndx<GrTokenMax ; ndx++ )
-    grtok_vec[ndx] = NULL;
-
-/*
- * Read and enter the tokens from Uil.y (via tokens.dat)
- */
-wmlKeyWGrammarTokens ();
-
-/*
- * Enter the class, argument, reason, charset, child, and enumval tokens
- */
-wmlKeyWClassTokens ();
-wmlKeyWArgTokens ();
-wmlKeyWReasonTokens ();
-wmlKeyWCharsetTokens ();
-wmlKeyWEnumvalTokens ();
-wmlKeyWChildTokens ();
-
-}
-
-
-\f
-/*
- * Routine to read and enter tokens defined in Uil.y into the token tables.
- */
-
-void wmlKeyWGrammarTokens ()
-
-{
-
-FILE                   *infil;         /* input file (tokens.dat) */
-int                    scanres;        /* result of fscanf */
-int                    lineno = 1;     /* current line number */
-char                   token[100];     /* current token */
-char                   class[100];     /* current class */
-int                    tokval;         /* current token id (as value) */
-WmlGrammarTokenPtr     grtok;          /* new grammar token */
-int                    ndx;
-char                   sens_name[100]; /* for case-insensitive name */
-
-
-/*
- * Read tokens.dat. Recognize and save all tokens. Some are saved in the
- * global tokens vector so they will be put into UilKeyTab.h. All are
- * saved in an ordered vector to write UilTokName.h
- *
- * Special handling is required for tokens whose yacc definition conflicts
- * with common literals. In these cases, the token literal does not map
- * directly to its keyword in the language, and must be mapped as a special
- * case:
- *     UILTRUE         -> true/TRUE
- *     UILFALSE        -> false/FALSE
- *     UILfile         -> file/FILE
- *     UILeof          -> eof/EOF
- */
-infil = fopen ("tokens.dat", "r");
-if ( infil == NULL )
-    {
-    printf ("\nCouldn't open tokens.dat");
-    return;
-    }
-
-while ( TRUE )
-    {
-    scanres = fscanf (infil, "%s %d %s", token, &tokval, class);
-    if ( scanres == EOF ) break;
-    if ( scanres != 3 )
-       {
-       printf ("\nBadly formatted at line %d in tokens.dat", lineno);
-       continue;
-       }
-    lineno += 1;
-
-/*
- * Convert the token class, and construct a grammar token.
- */
-    grtok = (WmlGrammarTokenPtr) malloc(sizeof(WmlGrammarToken));
-    grtok->class = wmlKeyWGrammarClass (class);
-    grtok->token = wmlAllocateString (token);
-    grtok->val = tokval;
-
-/*
- * Save the token in the grammar token vector, indexed by its value
- * (for UilTokName.h)
- */
-if ( grtok->val < GrTokenMax )
-    {
-    grtok_vec[grtok->val] = grtok;
-    if ( grtok->val > grtok_max_val )
-       grtok_max_val = grtok->val;
-    }
-else
-    printf ("\nToken id %d for %s exceed GrTokenMax",
-           grtok->val, grtok->token);
-
-/*
- * Enter tokens which appear in the keyword tables as keyword tokens.
- * These have their lower case names entered as the case-insensitive
- * keyword token string. Do special token literal mapping.
- */
-    switch ( grtok->class )
-       {
-       case WmlTokenClassKeyword:
-       case WmlTokenClassReserved:
-           strcpy (sens_name, grtok->token);
-           for ( ndx=0 ; ndx<(int)strlen(sens_name) ; ndx++ )
-               sens_name[ndx] = _lower(sens_name[ndx]);
-           if ( strcmp(sens_name,"uiltrue") == 0 )
-               strcpy (sens_name, "true");
-           if ( strcmp(sens_name,"uilfalse") == 0 )
-               strcpy (sens_name, "false");
-           if ( strcmp(sens_name,"uilfile") == 0 )
-               strcpy (sens_name, "file");
-           if ( strcmp(sens_name,"uileof") == 0 )
-               strcpy (sens_name, "eof");
-           wmlKeyWMakeTokens (sens_name, grtok->class, (ObjectPtr)grtok);
-       }
-    }
-
-fclose (infil);
-
-}
-
-
-\f
-/*
- * This routine translates a string identifying a token class into
- * its matching internal literal.
- */
-int wmlKeyWGrammarClass (token)
-    char               *token;
-
-{
-
-if ( strcmp(token,"argument") == 0 )
-    return WmlTokenClassArgument;
-if ( strcmp(token,"charset") == 0 )
-    return WmlTokenClassCharset;
-if ( strcmp(token,"color") == 0 )
-    return WmlTokenClassColor;
-if ( strcmp(token,"enumval") == 0 )
-    return WmlTokenClassEnumval;
-if ( strcmp(token,"font") == 0 )
-    return WmlTokenClassFont;
-if ( strcmp(token,"identifier") == 0 )
-    return WmlTokenClassIdentifier;
-if ( strcmp(token,"keyword") == 0 )
-    return WmlTokenClassKeyword;
-if ( strcmp(token,"literal") == 0 )
-    return WmlTokenClassLiteral;
-if ( strcmp(token,"reason") == 0 )
-    return WmlTokenClassReason;
-if ( strcmp(token,"reserved") == 0 )
-    return WmlTokenClassReserved;
-if ( strcmp(token,"special") == 0 )
-    return WmlTokenClassSpecial;
-if ( strcmp(token,"unused") == 0 )
-    return WmlTokenClassUnused;
-if ( strcmp(token,"class") == 0 )
-    return WmlTokenClassClass;
-if (strcmp(token,"child") == 0) return WmlTokenClassChild;
-
-printf ("\nUnrecognized token class %s", token);
-return 0;
-
-}
-
-
-\f
-/*
- * Routine to process the class objects and enter them in the token tables.
- * Aliases are also entered, under their own names.
- */
-
-void wmlKeyWClassTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* class object */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-
-
-/*
- * Make tokens for all class entries
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    synobj = clsobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassClass, (ObjectPtr)clsobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to process the argument objects and enter them in the token tables.
- * Aliases are also entered, under their own names.
- */
-
-void wmlKeyWArgTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlResourceDefPtr      resobj;         /* resource object */
-WmlSynResourceDefPtr   synobj;         /* syntactic object */
-int                    alias_ndx;      /* alias loop index */
-
-
-/*
- * Make tokens for all argument entries
- */
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    synobj = resobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassArgument, (ObjectPtr)resobj);
-    for ( alias_ndx=0 ; alias_ndx<synobj->alias_cnt ; alias_ndx++ )
-       wmlKeyWMakeTokens (synobj->alias_list[alias_ndx],
-                          WmlTokenClassArgument,
-                          (ObjectPtr)resobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to process the reason objects and enter them in the token tables.
- */
-
-void wmlKeyWReasonTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlResourceDefPtr      resobj;         /* resource object */
-WmlSynResourceDefPtr   synobj;         /* syntactic object */
-int                    alias_ndx;      /* alias loop index */
-
-
-/*
- * Make tokens for all reason entries
- */
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    synobj = resobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassReason, (ObjectPtr)resobj);
-    for ( alias_ndx=0 ; alias_ndx<synobj->alias_cnt ; alias_ndx++ )
-       wmlKeyWMakeTokens (synobj->alias_list[alias_ndx],
-                          WmlTokenClassReason,
-                          (ObjectPtr)resobj);
-    }
-
-}
-
-\f
-/*
- * Routine to process the child objects and enter them in the token tables.
- */
-
-void wmlKeyWChildTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlChildDefPtr         childobj;       /* child object */
-WmlSynChildDefPtr      synobj;         /* syntactic object */
-
-/*
- * Make tokens for all child entries
- */
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    synobj = childobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassChild, (ObjectPtr)childobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to process the charset objects and enter them in the token tables.
- */
-
-void wmlKeyWCharsetTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlCharSetDefPtr       csobj;          /* character set object */
-WmlSynCharSetDefPtr    synobj;         /* syntactic object */
-int                    alias_ndx;      /* alias loop index */
-
-
-/*
- * Make tokens for all charset entries
- */
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    synobj = csobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassCharset, (ObjectPtr)csobj);
-    for ( alias_ndx=0 ; alias_ndx<synobj->alias_cnt ; alias_ndx++ )
-       wmlKeyWMakeTokens (synobj->alias_list[alias_ndx],
-                          WmlTokenClassCharset,
-                          (ObjectPtr)csobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to process the enumval objects and enter them in the token tables.
- */
-
-void wmlKeyWEnumvalTokens ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlEnumValueDefPtr     esobj;          /* enumeration value object */
-WmlSynEnumValueDefPtr  synobj;         /* syntactic object */
-
-
-/*
- * Make tokens for all enumval entries
- */
-for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
-    {
-    esobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
-    synobj = esobj->syndef;
-    wmlKeyWMakeTokens (synobj->name, WmlTokenClassEnumval, (ObjectPtr)esobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to create tokens and enter them in the token list.
- *
- * This routine constructs a case-sensitive and a case-insensitive token
- * and enters them the token vectors.
- */
-void wmlKeyWMakeTokens (sens_name, class, obj)
-    char               *sens_name;
-    int                        class;
-    ObjectPtr          obj;
-
-{
-
-WmlKeyWTokenPtr                senstok;        /* case-sensitive token */
-WmlKeyWTokenPtr                insenstok;      /* case-insensitive token */
-char                   insens_name[100];
-int                    ndx;
-
-
-/*
- * Create both tokens, with one having an upper-case name. The names are
- * entered only in the order vector, not in the token itself.
- */
-senstok = (WmlKeyWTokenPtr) malloc (sizeof(WmlKeyWToken));
-insenstok = (WmlKeyWTokenPtr) malloc (sizeof(WmlKeyWToken));
-senstok->class = class;
-senstok->objdef = obj;
-insenstok->class = class;
-insenstok->objdef = obj;
-
-strcpy (insens_name, sens_name);
-for ( ndx=0 ; ndx<(int)strlen(insens_name) ; ndx++ )
-    insens_name[ndx] = _upper (insens_name[ndx]);
-
-wmlInsertInKeyList(wml_tok_sens_ptr, sens_name, senstok);
-wmlInsertInKeyList(wml_tok_insens_ptr, insens_name, insenstok);
-}
-
-\f
-/*
- * Routine to output UilKeyTab.h
- *
- * This routine dumps the tokens defined in the token tables into
- * UilKeyTab.h. Both the case-sensitive and case-insensitive token
- * lists are used.
- */
-
-void wmlOutputUilKeyTab ()
-
-{
-
-char                   *canned1 =
-"\n/*    case sensitive keyword table    */\n\
-static key_keytable_entry_type key_table_vec[] =\n\
-  {\n";
-
-char                   *canned2 =
-"  };\n\
-externaldef(uil_sym_glbl) key_keytable_entry_type *key_table =\n\
-\t\tkey_table_vec;\n\n\
-/*    Maximum length of a keyword, and table size    */\n\
-externaldef(uil_sym_glbl) int key_k_keyword_max_length = %d;\n\
-externaldef(uil_sym_glbl) int key_k_keyword_count = %d;\n\n\
-/*    case insensitive keyword table    */\n\
-static key_keytable_entry_type key_table_case_ins_vec[] =\n\
-  {\n";
-
-char                   *canned3 =
-"  };\n\
-externaldef(uil_sym_glbl) key_keytable_entry_type *key_table_case_ins =\n\
-\t\tkey_table_case_ins_vec;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-int                    maxlen = 0;     /* max keyword length */
-int                    maxkey = 0;     /* # entries in keyword table */
-
-
-/*
- * Open the output file.
- */
-outfil = fopen ("UilKeyTab.h", "w");
-if ( outfil == NULL )
-    {
-    printf ("\nCouldn't open UilKeyTab.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-
-/*
- * Print the case sensitive and insensitive tables
- */
-fprintf (outfil, canned1);
-wmlOutputUilKeyTabBody (outfil, wml_tok_sens_ptr, &maxlen, &maxkey);
-fprintf (outfil, canned2, maxlen, maxkey);
-wmlOutputUilKeyTabBody (outfil, wml_tok_insens_ptr, &maxlen, &maxkey);
-fprintf (outfil, canned3);
-
-/*
- * close the output file
- */
-printf ("\nCreated UilKeyTab.h");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to output the body of a keyword table
- */
-void wmlOutputUilKeyTabBody (outfil, tokvec, maxlen, maxkey)
-    FILE                       *outfil;
-    DynamicHandleListDefPtr    tokvec;
-    int                                *maxlen;
-    int                                *maxkey;
-
-{
-
-int                    ndx;            /* loop index */
-WmlKeyWTokenPtr                tok;            /* current token */
-char                   *tokstg;        /* string for token (keyword) */
-char                   tkclass[100];   /* token class string */
-char                   tksym[100];     /* token sym_k string */
-char                   tktoken[100];   /* token tkn_k_num string */
-
-
-/*
- * Loop over all tokens, and put out an entry for each.
- */
-for ( ndx=0 ; ndx<tokvec->cnt ; ndx++ )
-    {
-    tok = (WmlKeyWTokenPtr) tokvec->hvec[ndx].objptr;
-    tokstg = tokvec->hvec[ndx].objname;
-    wmlTokenClassString (tkclass, tok);
-    wmlTokenSymKString (tksym, tok);
-    wmlTokenTokenString (tktoken, tok);
-    fprintf (outfil, "    {%s, %s, %d, %s, \"%s\"},\n",
-            tkclass,
-            tksym,
-            strlen(tokstg),
-            tktoken,
-            tokstg);
-    if ( (int)strlen(tokstg) > *maxlen )
-       *maxlen = strlen (tokstg);
-    *maxkey += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to return the string for a token class, tkn_k_class_...
- */
-void wmlTokenClassString (dststg, tok)
-    char               *dststg;
-    WmlKeyWTokenPtr    tok;
-
-{
-
-switch ( tok->class )
-    {
-    case WmlTokenClassArgument:
-        strcpy (dststg, "tkn_k_class_argument");
-       return;
-    case WmlTokenClassCharset:
-        strcpy (dststg, "tkn_k_class_charset");
-       return;
-    case WmlTokenClassEnumval:
-        strcpy (dststg, "tkn_k_class_enumval");
-       return;
-    case WmlTokenClassKeyword:
-        strcpy (dststg, "tkn_k_class_keyword");
-       return;
-    case WmlTokenClassReason:
-        strcpy (dststg, "tkn_k_class_reason");
-       return;
-    case WmlTokenClassReserved:
-        strcpy (dststg, "tkn_k_class_reserved");
-       return;
-    case WmlTokenClassClass:
-        strcpy (dststg, "tkn_k_class_class");
-       return;
-    case WmlTokenClassChild:
-        strcpy (dststg, "tkn_k_class_child");
-       return;
-    }
-
-}
-
-
-\f
-/*
- * Routine to return the string for a sym_k_... for some object
- */
-void wmlTokenSymKString (dststg, tok)
-    char               *dststg;
-    WmlKeyWTokenPtr    tok;
-
-{
-
-WmlClassDefPtr         clsobj;         /* class object */
-WmlResourceDefPtr      resobj;         /* resource object */
-WmlCharSetDefPtr       csobj;          /* character set object */
-WmlEnumValueDefPtr     esobj;          /* enumeration value object */
-WmlChildDefPtr         chobj;          /* child object */
-
-
-switch ( tok->class )
-    {
-    case WmlTokenClassArgument:
-       resobj = (WmlResourceDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_arg", resobj->tkname);
-       return;
-    case WmlTokenClassCharset:
-       csobj = (WmlCharSetDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_charset", csobj->syndef->name);
-       return;
-    case WmlTokenClassEnumval:
-       esobj = (WmlEnumValueDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_enumval", esobj->syndef->name);
-       return;
-    case WmlTokenClassKeyword:
-        strcpy (dststg, "0");
-       return;
-    case WmlTokenClassReason:
-       resobj = (WmlResourceDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_reason", resobj->tkname);
-       return;
-    case WmlTokenClassReserved:
-        strcpy (dststg, "0");
-       return;
-    case WmlTokenClassClass:
-        clsobj = (WmlClassDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_object", clsobj->tkname);
-       return;
-    case WmlTokenClassChild:
-        chobj = (WmlChildDefPtr) tok->objdef;
-       sprintf (dststg, "sym_k_%s_child", chobj->tkname);
-       return;
-    }
-
-}
-
-
-\f
-/*
- * Routine to return the string for a token number, tkn_k_num_...
- */
-void wmlTokenTokenString (dststg, tok)
-    char               *dststg;
-    WmlKeyWTokenPtr    tok;
-
-{
-
-WmlGrammarTokenPtr     grtok;          /* grammar token */
-
-
-switch ( tok->class )
-    {
-    case WmlTokenClassArgument:
-        strcpy (dststg, "ARGUMENT_NAME");
-       return;
-    case WmlTokenClassCharset:
-        strcpy (dststg, "CHARSET_NAME");
-       return;
-    case WmlTokenClassEnumval:
-        strcpy (dststg, "ENUMVAL_NAME");
-       return;
-    case WmlTokenClassReason:
-        strcpy (dststg, "REASON_NAME");
-       return;
-    case WmlTokenClassKeyword:
-    case WmlTokenClassReserved:
-       grtok = (WmlGrammarTokenPtr) tok->objdef;
-        strcpy (dststg, grtok->token);
-       return;
-    case WmlTokenClassClass:
-        strcpy (dststg, "CLASS_NAME");
-       return;
-    case WmlTokenClassChild:
-        strcpy (dststg, "CHILD_NAME");
-       return;
-    }
-
-}
-
-
-\f
-/*
- * routine to output UilTokName.h
- */
-
-void wmlOutputUilTokName ()
-
-{
-
-char                   *canned1 =
-"/*\tToken name table */\n\
-static char *tok_token_name_table_vec[] = \n\
-  {\n";
-
-char                   *canned2 =
-"  };\n\
-externaldef(uil_sym_glbl) char **tok_token_name_table =\n\
-\t\ttok_token_name_table_vec;\n\n\
-/*\tNumber of entries in table */\n\
-externaldef(uil_sym_glbl) int tok_num_tokens = %d;\n";
-
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlGrammarTokenPtr     grtok;          /* current grammar token */
-
-
-/*
- * Open the output file.
- */
-outfil = fopen ("UilTokName.h", "w");
-if ( outfil == NULL )
-    {
-    printf ("\nCouldn't open UilTokName.h");
-    return;
-    }
-fprintf (outfil, canned_warn);
-fprintf (outfil, canned1);
-
-/*
- * Print the token name entries
- * Note: vector size is max_val + 1 for zeroth token
- */
-for ( ndx=0 ; ndx<grtok_max_val+1 ; ndx++ )
-    {
-    grtok = grtok_vec[ndx];
-    if ( grtok != NULL )
-       fprintf (outfil, "    \"%s\",\n", grtok->token);
-    else
-       fprintf (outfil, "    \"UNKNOWN_TOKEN\",\n");
-    }
-
-/*
- * close the output file
- */
-fprintf (outfil, canned2, grtok_max_val+1);
-printf ("\nCreated UilTokName.h");
-fclose (outfil);
-
-}
diff --git a/cde/osf/wml/wmloutmm.c b/cde/osf/wml/wmloutmm.c
deleted file mode 100644 (file)
index 69fc704..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmloutmm.c /main/9 1995/08/29 11:10:59 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This module contains routines responsible for writing the .mm files
- * produced by WML. All files are written into the current directory.
- *
- * Input:
- *     The resolved objects
- *
- * Output:
- *     wml-uil.mm
- *
- */
-
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <string.h>
-#endif
-#include <stdio.h>
-
-
-/*
- * Routines used only in this module
- */
-void wmlOutputWmlUilMm ();
-void wmlOutputWmlUilMmClass ();
-
-/*
- * globals
- */
-int                    tabno = 1;      /* table number */
-
-/*
- * lists re-used repeatedly to order lists for printing
- */
-DynamicHandleListDef   mm_arg;
-DynamicHandleListDefPtr        mm_arg_ptr = &mm_arg;
-DynamicHandleListDef   mm_rsn;
-DynamicHandleListDefPtr        mm_rsn_ptr = &mm_rsn;
-DynamicHandleListDef   mm_ctl;
-DynamicHandleListDefPtr        mm_ctl_ptr = &mm_ctl;
-
-
-\f
-/*
- * Output control routine, which simply outputs each .mm file in turn.
- */
-
-void wmlOutputMmFiles ()
-
-{
-
-wmlOutputWmlUilMm ();
-
-}
-
-
-\f
-/*
- * Routine to write out wml-uil.mm
- *
- * This .mm file contains the tables which are to be included as an
- * appendix to the Uil manual. The tables give the arguments with their
- * default values, reasons, constraints, and controls for each class
- * in the class vectors.
- */
-
-void wmlOutputWmlUilMm ()
-
-{
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* class object */
-
-
-
-/*
- * Open the output file. Write the canned header stuff
- */
-outfil = fopen ("wml-uil.mm", "w");
-if ( outfil == NULL )
-    {
-    printf ("\nCouldn't open wml-uil.mm");
-    return;
-    }
-
-/*
- * Initialize order lists for the tables.
- */
-wmlInitHList (mm_arg_ptr, 200, TRUE);
-wmlInitHList (mm_rsn_ptr, 200, TRUE);
-wmlInitHList (mm_ctl_ptr, 200, TRUE);
-
-/*
- * Write out a table for each class, for both widget and gadget variants
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    wmlOutputWmlUilMmClass (outfil, clsobj, clsobj->syndef->name);
-    }
-
-/*
- * close the output file
- */
-printf ("\nCreated wml-uil.mm");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Routine to write a table for a class entry
- */
-
-void wmlOutputWmlUilMmClass (outfil, clsobj, name)
-    FILE                       *outfil;
-    WmlClassDefPtr             clsobj;
-    char                       *name;
-
-{
-
-char           *canned1 =
-".bp\n\
-.ps 12\n";
-
-char           *canned2 =
-".ps 10\n\
-.vs 12\n\
-.LP\n\
-.TS H\n\
-tab(@);\n\
-lB lB\n\
-l l.\n\
-_\n\
-.sp 6p\n\
-Controls@Reasons\n\
-.sp 6p\n\
-_\n\
-.sp 6p\n\
-.TH\n";
-
-char           *canned3 =
-".TE\n\
-.TS H\n\
-tab(@);\n\
-lB lB lB\n\
-l l l.\n\
-_\n\
-.sp 6p\n\
-UIL Argument Name@Argument Type@Default Value\n\
-.sp 6p\n\
-_\n\
-.sp 6p\n\
-.TH\n";
-
-char           *canned4 =
-".TE\n";
-
-WmlClassResDefPtr      argref;         /* current argument reference */
-WmlClassResDefPtr      rsnref;         /* current reason reference */
-WmlClassCtrlDefPtr     ctlref;         /* current controls reference */
-int                    argndx;         /* to access ordered vector */
-int                    rsnndx;         /* to access ordered vector */
-int                    ctlndx;         /* to access ordered vector */
-
-
-/*
- * Write out header information
- */
-fprintf (outfil, canned1);
-fprintf (outfil, "%s\n", name);
-fprintf (outfil, canned2);
-
-/*
- * Alphabetize the controls, reason, and argument lists
- */
-wmlClearHList (mm_arg_ptr);
-wmlClearHList (mm_rsn_ptr);
-wmlClearHList (mm_ctl_ptr);
-
-argref = clsobj->arguments;
-while ( argref!= NULL )
-    {
-    while ( argref != NULL && argref->exclude == WmlAttributeTrue )
-       argref = argref->next;
-    if ( argref != NULL )
-       {
-       wmlInsertInHList (mm_arg_ptr,
-                         argref->act_resource->syndef->name,
-                         (ObjectPtr)argref);
-       argref = argref->next;
-       }
-    }
-
-rsnref = clsobj->reasons;
-while ( rsnref!=NULL )
-    {
-    while ( rsnref != NULL && rsnref->exclude == WmlAttributeTrue )
-       rsnref = rsnref->next;
-    if ( rsnref != NULL )
-       {
-       wmlInsertInHList (mm_rsn_ptr,
-                         rsnref->act_resource->syndef->name,
-                         (ObjectPtr)rsnref);
-       
-       rsnref = rsnref->next;
-       }
-    }
-
-ctlref = clsobj->controls;
-while ( ctlref != NULL )
-    {
-    wmlInsertInHList (mm_ctl_ptr,
-                     ctlref->ctrl->syndef->name,
-                     (ObjectPtr)ctlref);
-    ctlref = ctlref->next;
-    }
-
-/*
- * Write out the controls and reason table.
- */
-rsnndx = 0;
-ctlndx = 0;
-if ( mm_ctl_ptr->cnt == 0 )
-    fprintf (outfil, "No children are supported");
-while ( rsnndx<mm_rsn_ptr->cnt || ctlndx<mm_ctl_ptr->cnt )
-    {
-    if ( ctlndx < mm_ctl_ptr->cnt )
-       {
-       ctlref = (WmlClassCtrlDefPtr) mm_ctl_ptr->hvec[ctlndx].objptr;
-       fprintf (outfil, "%s@",
-                ctlref->ctrl->syndef->name);
-       ctlndx += 1;
-       }
-    else
-       fprintf (outfil, "@");
-    
-    if ( rsnndx < mm_rsn_ptr->cnt )
-       {
-       rsnref = (WmlClassResDefPtr) mm_rsn_ptr->hvec[rsnndx].objptr;
-       fprintf (outfil, "%s\n",
-                rsnref->act_resource->syndef->name);
-       rsnndx += 1;
-       }
-    else
-       fprintf (outfil, "\n");
-    }
-fprintf (outfil, canned3);
-
-/*
- * Write out the argument table
- */
-argndx = 0;
-while ( argndx < mm_arg_ptr->cnt )
-    {
-    argref = (WmlClassResDefPtr) mm_arg_ptr->hvec[argndx].objptr;
-    fprintf (outfil, "%s@%s@",
-            argref->act_resource->syndef->name,
-            argref->act_resource->dtype_def->syndef->name);
-    if ( argref->dflt != NULL )
-       {
-       if ( strchr(argref->dflt,' ') != 0 )
-           fprintf (outfil, "T{\n%s\nT}\n",
-                    argref->dflt);
-       else
-           fprintf (outfil, "%s\n",
-                    argref->dflt);
-       }
-    else
-       {
-       if (argref->act_resource->syndef->dflt != NULL) {
-           if ( strchr(argref->act_resource->syndef->dflt,' ') != 0 )
-               fprintf (outfil, "T{\n%s\nT}\n",
-                        argref->act_resource->syndef->dflt);
-           else
-               fprintf (outfil, "%s\n",
-                        argref->act_resource->syndef->dflt);
-       }
-       else
-           fprintf (outfil, "  \n");
-    }    
-    argndx += 1;
-    }
-fprintf (outfil, canned4);
-
-}
-
-
-
diff --git a/cde/osf/wml/wmloutp1.c b/cde/osf/wml/wmloutp1.c
deleted file mode 100644 (file)
index 300dadb..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmloutp1.c /main/7 1995/07/13 21:04:31 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This is the standard output module for creating the UIL compiler
- * .h files.
- */
-
-
-#include "wml.h"
-
-
-void wmlOutput ()
-
-{
-
-/*
- * Output the .h files
- */
-wmlOutputHFiles ();
-if ( wml_err_count > 0 ) return;
-
-/*
- * Output the keyword (token) tables
- */
-wmlOutputKeyWordFiles ();
-if ( wml_err_count > 0 ) return;
-
-/*
- * Output the .mm files
- */
-wmlOutputMmFiles ();
-if ( wml_err_count > 0 ) return;
-
-return;
-
-}
-
diff --git a/cde/osf/wml/wmlparse.y b/cde/osf/wml/wmlparse.y
deleted file mode 100644 (file)
index 8a4f312..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-/* "$TOG: wmlparse.y /main/10 1997/04/14 12:56:03 dbl $" */
-/*
- * This file defines the grammar for the Motif Widget Meta Language (WML),
- * the declarative language which describes the widget, gadgets, and 
- * resources in the UIL language.
- */
-
-
-%{
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <string.h>            /* for strcpy() */
-#endif
-
-#ifndef XmConst
-#if (defined(__STDC__) && __STDC__)  ||  !defined( NO_CONST )
-#define XmConst const
-#else
-#define XmConst
-#endif /* __STDC__ */
-#endif /* XmConst */
-
-/*
- * Undefine NULL, since it is defined in stdio
- */
-#undef NULL
-
-%}
-
-
-/*
- * Tokens defining terminals of the language
- */
-
-/*
- * token 0 is EOF, not defined here
- */
-
-/*
- * WML statements
- */
-%token CLASS                   1       /* CLASS statement */
-%token RESOURCE                2       /* RESOURCE statement */
-%token DATATYPE                3       /* DATATYPE statement */
-%token CONTROLLIST             4       /* CONTROLLIST statement */
-%token ENUMERATIONSET          5       /* ENUMERATIONSET statement */
-%token ENUMERATIONVALUE        6       /* ENUMERATIONVALUE statement */
-%token CHARACTERSET            7       /* CHARACTERSET statement */
-%token CHILD                   50      /* CHILD statement */
-/*
- * Statement attributes
- */
-%token DOCNAME                 8       /* DOCNAME attribute */
-%token CONVFUNC                9       /* CONVENIENCEFUNCTION attribute */
-%token ALIAS                   10      /* ALIAS attribute */
-%token TYPE                    11      /* TYPE attribute */
-%token RESOURCELITERAL         12      /* RESOURCELITERAL attribute */
-%token RELATED                 13      /* RELATED attribute */
-%token INTERNALLITERAL         14      /* INTERNALLITERAL attribute */
-%token XRMRESOURCE             15      /* XRMRESOURCE attribute */
-%token EXCLUDE                 16      /* EXCLUDE attribute */
-%token RESOURCES               17      /* RESOURCES attribute */
-%token SUPERCLASS              18      /* SUPERCLASS attribute */
-%token CONTROLS                19      /* CONTROLS attribute */
-%token WIDGETCLASS             20      /* WIDGETCLASS attribute */
-%token DIALOGCLASS             21      /* DIALOGCLASS attribute */
-%token DEFAULT                 22      /* DEFAULT attribute */
-%token ENUMLITERAL             23      /* ENUMLITERAL attribute */
-%token XMSTRINGCHARSETNAME     24      /* XMSTRINGCHARSETNAME attribute */
-%token DIRECTION               25      /* DIRECTION attribute */
-%token PARSEDIRECTION          26      /* PARSEDIRECTION attribute */
-%token CHARACTERSIZE           27      /* CHARACTERSIZE attribute */
-%token CTRLMAPSRESOURCE        28      /* CTRLMAPSRESOURCE attribute */
-%token CHILDREN                51      /* CHILDREN attribute */
-%token PARENTCLASS             52      /* PARENTCLASS attribute */
-/*
- * Other keywords
- */
-%token METACLASS               29      /* CLASS type */
-%token WIDGET                  30      /* CLASS type */
-%token GADGET                  31      /* CLASS type */
-%token ARGUMENT                32      /* RESOURCE type */
-%token REASON                  33      /* RESOURCE type */
-%token CONSTRAINT              34      /* RESOURCE type */
-%token SUBRESOURCE             35      /* RESOURCE type */
-%token ATTRTRUE                36      /* attribute value */
-%token ATTRFALSE               37      /* attribute value */
-%token LEFTTORIGHT             38      /* DIRECTION attribute */
-%token RIGHTTOLEFT             39      /* DIRECTION attribute */
-%token ONEBYTE                 40      /* CHARACTERSIZE attribute */
-%token TWOBYTE                 41      /* CHARACTERSIZE attribute */
-%token MIXED1_2BYTE            42      /* CHARACTERSIZE attribute */
-
-
-/*
- * Special characters
- */
-%token COLON                   43
-%token SEMICOLON               44
-%token EQUALS                  45
-%token LBRACE                  46
-%token RBRACE                  47
-
-/*
- * non-terminals
- */
-%token STRING                  48      /* Any user literal */
-
-/*
- * Others
- */
-%token ERRORTOKEN              49      /* Any unrecognized character */
-
-
-%start statement_block_list
-
-%%
-
-\f
-/*
- * Productions of the WML grammar. All routines assume that current
- * data structures are kept in globals. This works as the language has
- * no recursive elements.
- */
-
-/*
- * The language consists of blocks of statements. The blocks may occur
- * in any order, and blocks of the same kind may be arbitrarily repeated.
- */
-
-statement_block_list
-       : /* empty */
-       | statement_block_list statement_block
-       ;
-
-statement_block
-       : class_statement_block
-       | resource_statement_block
-        | child_statement_block
-       | datatype_statement_block
-       | ctrlist_statement_block
-       | enumset_statement_block
-       | enumval_statement_block
-       | charset_statement_block
-       | error { LexIssueError(0); } SEMICOLON
-       ;
-
-
-/*
- * Statement blocks. Each statement block begins with its identifying
- * keyword, then includes an arbitrary number of statements
- */
-class_statement_block
-       : CLASS
-           class_statement_list
-           ;
-
-class_statement_list
-       : class_statement SEMICOLON
-       | class_statement_list class_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-resource_statement_block
-       : RESOURCE
-           resource_statement_list
-           ;
-
-resource_statement_list
-       : resource_statement SEMICOLON
-       | resource_statement_list resource_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-child_statement_block
-       : CHILD
-           child_statement_list
-           ;
-
-child_statement_list
-       : child_statement SEMICOLON
-       | child_statement_list child_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-datatype_statement_block
-       : DATATYPE
-           datatype_statement_list
-           ;
-
-datatype_statement_list
-       : datatype_statement SEMICOLON
-       | datatype_statement_list datatype_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-ctrlist_statement_block
-       : CONTROLLIST
-           ctrlist_statement_list
-           ;
-
-ctrlist_statement_list
-       : ctrlist_statement SEMICOLON
-       | ctrlist_statement_list ctrlist_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-enumset_statement_block
-       : ENUMERATIONSET
-           enumset_statement_list
-           ;
-
-enumset_statement_list
-       : enumset_statement SEMICOLON
-       | enumset_statement_list enumset_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-enumval_statement_block
-       : ENUMERATIONVALUE
-           enumval_statement_list
-           ;
-
-enumval_statement_list
-       : enumval_statement SEMICOLON
-       | enumval_statement_list enumval_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-charset_statement_block
-       : CHARACTERSET
-           charset_statement_list
-           ;
-
-charset_statement_list
-       : charset_statement SEMICOLON
-       | charset_statement_list charset_statement SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-
-\f
-/*
- * The CLASS statement
- */
-class_statement
-       : name
-           COLON
-           class_type
-               { wmlCreateClass (yynameval, yytknval1); }
-           class_definition
-       ;
-
-class_type
-       : METACLASS             { yytknval1 = METACLASS; }
-       | WIDGET                { yytknval1 = WIDGET; }
-       | GADGET                { yytknval1 = GADGET; }
-       ;
-
-class_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE class_attribute_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_attribute_list
-       : class_attribute
-       | class_attribute_list class_attribute
-       ;
-
-class_attribute
-       : class_attribute_name
-           EQUALS
-           STRING
-               { wmlAddClassAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | boolean_class_attribute_name
-           EQUALS
-           boolean_attribute_value
-               { wmlAddClassAttribute (yytknval1, yytknval2); }
-           SEMICOLON
-       | class_resources SEMICOLON
-       | class_controls SEMICOLON
-        | class_children SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-class_attribute_name
-       : SUPERCLASS            { yytknval1 = SUPERCLASS; }
-       | PARENTCLASS           { yytknval1 = PARENTCLASS; }
-       | INTERNALLITERAL       { yytknval1 = INTERNALLITERAL; }
-       | DOCNAME               { yytknval1 = DOCNAME; }
-       | CONVFUNC              { yytknval1 = CONVFUNC; }
-       | WIDGETCLASS           { yytknval1 = WIDGETCLASS; }
-       | CTRLMAPSRESOURCE      { yytknval1 = CTRLMAPSRESOURCE; }
-       ;
-
-boolean_class_attribute_name
-       : DIALOGCLASS           { yytknval1 = DIALOGCLASS; }
-
-boolean_attribute_value
-       : ATTRTRUE              { yytknval2 = ATTRTRUE; }
-       | ATTRFALSE             { yytknval2 = ATTRFALSE; }
-       ;
-
-class_resources
-       : RESOURCES class_resources_block
-       ;
-
-class_resources_block
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE class_resource_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_resource_list
-       : class_resource_element
-       | class_resource_list class_resource_element
-       ;
-
-class_resource_element
-       : name
-               { wmlAddClassResource (yynameval); }
-           class_resource_attributes
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-class_resource_attributes
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE class_resource_attribute_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_resource_attribute_list
-       : class_resource_attribute_element
-       | class_resource_attribute_list class_resource_attribute_element
-       ;
-
-class_resource_attribute_element
-       : class_resource_attribute_name
-           EQUALS
-           STRING
-               { wmlAddClassResourceAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | boolean_class_resource_attribute_name
-           EQUALS
-           boolean_attribute_value
-               { wmlAddClassResourceAttribute (yytknval1, yytknval2); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-class_resource_attribute_name
-       : TYPE                  { yytknval1 = TYPE; }
-       | DEFAULT               { yytknval1 = DEFAULT; }
-       ;
-
-boolean_class_resource_attribute_name
-       : EXCLUDE               { yytknval1 = EXCLUDE; }
-       ;
-
-class_controls
-       : CONTROLS class_controls_block
-       ;
-
-class_controls_block
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE class_controls_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_controls_list
-       : class_controls_element
-       | class_controls_list class_controls_element
-       ;
-
-class_controls_element
-       : name
-               { wmlAddClassControl (yynameval); }
-           class_controls_attributes
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-class_controls_attributes
-       : /* empty */
-       | LBRACE RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_children
-       : CHILDREN class_children_block
-       ;
-
-class_children_block
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE class_children_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-class_children_list
-       : class_children_element
-       | class_children_list class_children_element
-       ;
-
-class_children_element
-       : name
-               { wmlAddClassChild (yynameval); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-
-\f
-/*
- * The RESOURCE statement
- */
-resource_statement
-       : name
-           COLON
-           resource_type
-               { wmlCreateResource (yynameval, yytknval1); }
-           resource_definition
-       ;
-
-resource_type
-       : ARGUMENT              { yytknval1 = ARGUMENT; }
-       | REASON                { yytknval1 = REASON; }
-       | CONSTRAINT            { yytknval1 = CONSTRAINT; }
-       | SUBRESOURCE           { yytknval1 = SUBRESOURCE; }
-       ;
-
-resource_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE resource_attribute_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-resource_attribute_list
-       : resource_attribute
-       | resource_attribute_list resource_attribute
-       ;
-
-resource_attribute
-       : resource_attribute_name
-           EQUALS
-           STRING
-               { wmlAddResourceAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | boolean_resource_resource_attribute_name
-           EQUALS
-           boolean_attribute_value
-               { wmlAddResourceAttribute (yytknval1, yytknval2); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-resource_attribute_name
-       : TYPE                  { yytknval1 = TYPE; }
-       | RESOURCELITERAL       { yytknval1 = RESOURCELITERAL; }
-       | ENUMERATIONSET        { yytknval1 = ENUMERATIONSET; }
-       | INTERNALLITERAL       { yytknval1 = INTERNALLITERAL; }
-       | RELATED               { yytknval1 = RELATED; }
-       | DOCNAME               { yytknval1 = DOCNAME; }
-       | DEFAULT               { yytknval1 = DEFAULT; }
-       | ALIAS                 { yytknval1 = ALIAS; }
-       ;
-
-boolean_resource_resource_attribute_name
-       : XRMRESOURCE           { yytknval1 = XRMRESOURCE; }
-       ;
-
-\f
-/*
- * The CHILD statement
- */
-child_statement
-       : name COLON STRING
-          { wmlCreateChild(yynameval, yystringval); }
-       ;
-  
-\f
-/*
- * DATATYPE statement
- */
-datatype_statement
-       : name
-               { wmlCreateDatatype (yystringval); }
-           datatype_definition
-           ;
-
-datatype_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE datatype_attribute_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-datatype_attribute_list
-       : datatype_attribute
-       | datatype_attribute_list datatype_attribute
-       ;
-
-datatype_attribute
-       : datatype_attribute_name
-           EQUALS
-           STRING
-               { wmlAddDatatypeAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-datatype_attribute_name
-       : INTERNALLITERAL       { yytknval1 = INTERNALLITERAL; }
-       | DOCNAME               { yytknval1 = DOCNAME; }
-       | XRMRESOURCE           { yytknval1 = XRMRESOURCE; }
-       ;
-
-
-\f
-/*
- * The CONTROLLIST statement
- */
-ctrlist_statement
-       : name
-               { wmlCreateOrAppendCtrlList (yynameval); }
-           ctrlist_definition
-       ;
-
-ctrlist_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE ctrlist_controls_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-ctrlist_controls_list
-       : ctrlist_control
-       | ctrlist_controls_list ctrlist_control
-       ;
-
-ctrlist_control
-       : name
-               { wmlAddCtrlListControl (yynameval); }
-           ctrlist_controls_attributes
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-ctrlist_controls_attributes
-       : /* empty */
-       | LBRACE RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-
-\f
-/*
- * The ENUMERATIONSET statement
- */
-enumset_statement
-       : name
-           COLON
-           enumset_data_type
-               { wmlCreateEnumSet (yynameval, yystringval); }
-           enumset_definition
-       ;
-
-enumset_data_type
-       :
-       STRING
-       ;
-
-enumset_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE enumset_value_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-enumset_value_list
-       : enumset_value
-       | enumset_value_list enumset_value
-       ;
-
-enumset_value
-       : name
-           { wmlAddEnumSetValue (yynameval); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-
-\f
-/*
- * The ENUMERATIONVALUE statement
- */
-enumval_statement
-       : name
-           COLON    
-               { wmlCreateEnumValue (yynameval); }
-           enumvalue_definition
-       ;
-
-enumvalue_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE enumvalue_attributes_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-enumvalue_attributes_list
-       : enumvalue_attribute
-       | enumvalue_attributes_list enumvalue_attribute
-       ;
-
-enumvalue_attribute
-       : enumvalue_attribute_name
-           EQUALS
-           STRING
-               { wmlAddEnumValueAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-enumvalue_attribute_name
-       : ENUMLITERAL           { yytknval1 = ENUMLITERAL; }
-       ;
-
-
-\f
-/*
- * CHARACTERSET statement
- */
-charset_statement
-       : name
-               { wmlCreateCharset (yystringval); }
-           charset_definition
-           ;
-
-charset_definition
-       : /* empty */
-       | LBRACE RBRACE
-       | LBRACE charset_attribute_list RBRACE
-       | error { LexIssueError(RBRACE); } RBRACE
-       ;
-
-charset_attribute_list
-       : charset_attribute
-       | charset_attribute_list charset_attribute
-       ;
-
-charset_attribute
-       : charset_attribute_name
-           EQUALS
-           STRING
-               { wmlAddCharsetAttribute (yytknval1, yystringval); }
-           SEMICOLON
-       | predefined_charset_attribute_name
-           EQUALS
-           predefined_charset_attribute_value
-               { wmlAddCharsetAttribute (yytknval1, yytknval2); }
-           SEMICOLON
-       | error { LexIssueError(SEMICOLON); } SEMICOLON
-       ;
-
-charset_attribute_name
-       : INTERNALLITERAL       { yytknval1 = INTERNALLITERAL; }
-       | ALIAS                 { yytknval1 = ALIAS; }
-       | XMSTRINGCHARSETNAME   { yytknval1 = XMSTRINGCHARSETNAME; }
-       ;
-
-predefined_charset_attribute_name
-       : DIRECTION             { yytknval1 = DIRECTION; }
-       | PARSEDIRECTION        { yytknval1 = PARSEDIRECTION; }
-       | CHARACTERSIZE         { yytknval1 = CHARACTERSIZE; }
-       ;
-
-predefined_charset_attribute_value
-       : LEFTTORIGHT           { yytknval2 = LEFTTORIGHT; }
-       | RIGHTTOLEFT           { yytknval2 = RIGHTTOLEFT; }
-       | ONEBYTE               { yytknval2 = ONEBYTE; }
-       | TWOBYTE               { yytknval2 = TWOBYTE; }
-       | MIXED1_2BYTE          { yytknval2 = MIXED1_2BYTE; }
-
-
-\f
-/*
- * Other productions
- */
-name
-       : STRING
-               { strcpy (yynameval, (XmConst char *)yystringval); }
-       ;
-
-%%
-
-/*
- * Dummmy error routine, since we output our own.
- */
-int yyerror (s)
-char *s;
-{
-       return 0;
-}
-
-
-#include "wmllex.c"
-
diff --git a/cde/osf/wml/wmlresolve.c b/cde/osf/wml/wmlresolve.c
deleted file mode 100644 (file)
index 8dad4a1..0000000
+++ /dev/null
@@ -1,1829 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmlresolve.c /main/9 1995/08/29 11:11:05 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This module contains all routines which perform semantic analysis of
- * the parsed WML specification. It is responsible for building all
- * ordered structures which can be directly translated into literal
- * code values for the various .h files. It is responsible for performing
- * inheritance of resources for all classes.
- *
- * Input:
- *     the ordered list of syntactic objects in wml_synobj_ptr
- *
- * Output:
- *
- */
-
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-
-/*
- * Routines used only in this module
- */
-void wmlResolveGenerateSymK ();
-void wmlResolveValidateClass ();
-void wmlResolvePrintReport ();
-
-void wmlResolveSymKDataType ();
-void wmlResolveSymKChild ();
-void wmlResolveSymKEnumVal ();
-void wmlResolveSymKEnumSet ();
-void wmlResolveSymKReason ();
-void wmlResolveSymKArgument ();
-void wmlResolveSymKRelated ();
-void wmlResolveSymKClass ();
-void wmlResolveSymKCtrlList ();
-void wmlResolveSymKCharSet ();
-
-void wmlResolveClassInherit ();
-void wmlResolveClearRefPointers ();
-void wmlResolveInitRefObj ();
-void wmlResolveInitChildRefObj ();
-
-void wmlResolvePrintClass ();
-void wmlResolvePrintClassArgs ();
-void wmlResolvePrintClassReasons ();
-
-ObjectPtr wmlResolveFindObject ();
-void wmlIssueReferenceError ();
-void wmlIssueIllegalReferenceError ();
-void wmlIssueError ();
-
-
-\f
-/*
- * The control routine for semantic analysis. It calls the various phases.
- */
-
-void wmlResolveDescriptors ()
-
-{
-
-/*
- * Perform the code assignment pass. This results in assignment of sym_k_...
- * codes to all entities. Also, all objects and cross-linking are validated.
- */
-wmlResolveGenerateSymK ();
-printf ("\nInitial validation and reference resolution complete");
-
-/*
- * Perform class inheritance and validation
- */
-wmlResolveValidateClass ();
-printf ("\nClass validation and inheritance complete");
-
-/*
- * Print a report
- */
-if ( wml_err_count > 0 ) return;
-wmlResolvePrintReport ();
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k... literals for objects. Simply
- * a dispatching routine.
- */
-
-void wmlResolveGenerateSymK ()
-
-{
-
-/*
- * Process the datatype objects
- */
-wmlResolveSymKDataType ();
-
-/*
- * Process the enumeration value and enumeration sets
- */
-wmlResolveSymKEnumVal ();
-wmlResolveSymKEnumSet ();
-
-/*
- * Process the resources, producing argument and reason vectors.
- */
-wmlResolveSymKReason ();
-wmlResolveSymKArgument ();
-
-/*
- * Bind related arguments
- */
-wmlResolveSymKRelated ();
-
-/*
- * Process the class definitions
- */
-wmlResolveSymKClass ();
-
-/*
- * Process the controls list definitions
- */
-wmlResolveSymKCtrlList ();
-
-/*
- * Process the charset objects
- */
-wmlResolveSymKCharSet ();
-
-/* Process the child definitions. */
-wmlResolveSymKChild();
-
-}
-
-
-\f
-/*
- * Routine to linearize data types
- *
- * - Generate the wml_obj_datatype... vector of resolved data type objects,
- *   ordered lexicographically.
- *   Do name processing, and acquire links to any other objects named in
- *   the syntactic descriptor.
- */
-
-void wmlResolveSymKDataType ()
-
-{
-
-WmlSynDataTypeDefPtr   cursyn;         /* current syntactic object */
-WmlDataTypeDefPtr      newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each datatype object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_datatype_ptr, 50, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynDataTypeDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlDataTypeDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlDataTypeDefPtr) malloc (sizeof(WmlDataTypeDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    if ( cursyn->int_lit != NULL )
-       newobj->tkname = cursyn->int_lit;
-    else
-       newobj->tkname = cursyn->name;
-    wmlInsertInHList (wml_obj_datatype_ptr, newobj->tkname, (ObjectPtr)newobj);
-
-/*
- * Validate any object references in the syntactic object
- */
-
-    }
-
-}
-
-\f
-/*
- * Routine to linearize children
- *
- * - Generate the wml_obj_child... vector of resolved child objects,
- *   ordered lexicographically.  Assign sym_k_... values while doing so.
- *   Link child to its class. 
- */
-
-void wmlResolveSymKChild ()
-
-{
-
-WmlSynChildDefPtr      cursyn;         /* current syntactic object */
-WmlChildDefPtr         newobj;         /* new resolved object */
-int                    code;           /* assigned sym_k code value */
-int                    ndx;            /* loop index */
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each child object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_child_ptr, 50, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynChildDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlChildDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlChildDefPtr) malloc (sizeof(WmlChildDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    newobj->tkname = cursyn->name;
-    wmlInsertInHList (wml_obj_child_ptr, newobj->tkname, (ObjectPtr)newobj);
-
-/* Link class to the resolved object. */
-if (cursyn->class != NULL)
-  newobj->class = (WmlClassDefPtr)
-    wmlResolveFindObject(cursyn->class, WmlClassDefValid, cursyn->name);
-  }
-
-/*
- * All objects are in the vector. The order is the code order, so
- * process it again and assign codes to each object
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k values to enumeration values
- *
- * - Generate the wml_obj_datatype... vector of resolved data type objects,
- *   ordered lexicographically. No sym_k_... values are needed for
- *   enumeration values, so don't assign any.
- */
-
-void wmlResolveSymKEnumVal ()
-
-{
-
-WmlSynEnumSetDefPtr    cures;          /* current enumeration set */
-WmlSynEnumSetValDefPtr curesv;         /* current enum set value */
-WmlSynEnumValueDefPtr  cursyn;         /* current syntactic object */
-WmlEnumValueDefPtr     newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* sym_k_... code */
-
-
-/*
- * Perform defaulting. Process all the enumeration sets, and define a
- * syntactic object for every enumeration value named in an enumeration set
- * which has no syntactic entry. If there is an error in a name, then
- * this error won't be detected until we attempt to compile the output .h files.
- */
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cures = (WmlSynEnumSetDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cures->validation != WmlEnumSetDefValid ) continue;
-    for (curesv=cures->values ; curesv!=NULL ; curesv=curesv->next)
-       if ( wmlFindInHList(wml_synobj_ptr,curesv->name) < 0 )
-           wmlCreateEnumValue (curesv->name);
-    }
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each enumeration value object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_enumval_ptr, 50, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynEnumValueDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlEnumValueDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlEnumValueDefPtr) malloc (sizeof(WmlEnumValueDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    wmlInsertInHList (wml_obj_enumval_ptr, cursyn->name, (ObjectPtr)newobj);
-    }
-
-/*
- * All objects are in the vector. That order is the code order, so
- * process it again and assign codes to each object
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_enumval_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k values to enumeration sets
- *
- * - Generate the wml_obj_datatype... vector of resolved data type objects,
- *   ordered lexicographically. No sym_k_... values are needed for
- *   enumeration values, so don't assign any.
- */
-
-void wmlResolveSymKEnumSet ()
-
-{
-
-WmlSynEnumSetDefPtr    cursyn;         /* current syntactic object */
-WmlEnumSetDefPtr       newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* sym_k_... code */
-WmlSynEnumSetValDefPtr esvelm;         /* current syntactic list element */
-WmlEnumValueDefPtr     evobj;          /* current enumeration value */
-WmlEnumSetValDefPtr    esvobj;         /* current list element */
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each enumeration set object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_enumset_ptr, 20, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynEnumSetDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlEnumSetDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlEnumSetDefPtr) malloc (sizeof(WmlEnumSetDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    newobj->tkname = cursyn->name;
-    newobj->dtype_def = (WmlDataTypeDefPtr)
-       wmlResolveFindObject (cursyn->datatype,
-                             WmlDataTypeDefValid,
-                             cursyn->name);
-    wmlInsertInHList (wml_obj_enumset_ptr, newobj->tkname, (ObjectPtr)newobj);
-    }
-
-/*
- * All objects are in the vector. That order is the code order, so
- * process it again and assign codes to each object. Simultaneously construct
- * a vector of resolved enumeration values, and count them.
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_enumset_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-
-/*
- * Validate and construct a resolved enumeration value list
- */
-    cursyn = newobj->syndef;
-    newobj->values_cnt = 0;
-    newobj->values = NULL;
-    for ( esvelm=cursyn->values ; esvelm!=NULL ; esvelm=esvelm->next )
-       {
-       evobj = (WmlEnumValueDefPtr)
-           wmlResolveFindObject (esvelm->name,
-                                 WmlEnumValueDefValid,
-                                 cursyn->name);
-       if ( evobj == NULL ) continue;
-       esvobj = (WmlEnumSetValDefPtr) malloc (sizeof(WmlEnumSetValDef));
-       esvobj->value = evobj;
-       esvobj->next = newobj->values;
-       newobj->values = esvobj;
-       newobj->values_cnt += 1;
-       }
-    }
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k values to reasons.
- *
- * - Generate the wml_obj_reason... vector of resolved reason objects,
- *   ordered lexicographically. Assign a sym_k_... value as this is done.
- *   Do name processing, and acquire links to any other objects named in
- *   the syntactic descriptor.
- */
-
-void wmlResolveSymKReason ()
-
-{
-
-WmlSynResourceDefPtr   cursyn;         /* current syntactic object */
-WmlResourceDefPtr      newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* assigned sym_k code value */
-char                   errmsg[300];
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each reason resource object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_reason_ptr, 100, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynResourceDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlResourceDefValid ) continue;
-    if ( cursyn->type != WmlResourceTypeReason ) continue;
-    newobj = (WmlResourceDefPtr) malloc (sizeof(WmlResourceDef));
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    if ( cursyn->int_lit != NULL )
-       newobj->tkname = cursyn->int_lit;
-    else
-       newobj->tkname = cursyn->name;
-    newobj->dtype_def = NULL;
-    newobj->enumset_def = NULL;
-    newobj->related_code = 0;
-    wmlInsertInHList (wml_obj_reason_ptr, newobj->tkname, (ObjectPtr)newobj);
-
-/*
- * Validate any object references in the syntactic object
- * Reason can't bind to some objects.
- */
-    if ( cursyn->datatype != NULL )
-       wmlIssueIllegalReferenceError (cursyn->name, "DataType");
-
-    }
-
-/*
- * All objects are in the vector. That order is the code order, so
- * process it again and assign codes to each object
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k values to arguments.
- *
- * - Generate the wml_obj_arg... vector of resovled reason objects,
- *   ordered lexicographically. Assign a sym_k_... values while doing so.
- *   validate the data type for each argument, and link it to its data type
- *   object.
- *   Do name processing, and acquire links to any other objects named in
- *   the syntactic descriptor.
- */
-
-void wmlResolveSymKArgument ()
-
-{
-
-
-WmlSynResourceDefPtr   cursyn;         /* current syntactic object */
-WmlResourceDefPtr      newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* assigned sym_k code value */
-char                   errmsg[300];
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each reason resource object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_arg_ptr, 500, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynResourceDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlResourceDefValid ) continue;
-    if ( cursyn->type == WmlResourceTypeReason ) continue;
-    newobj = (WmlResourceDefPtr) malloc (sizeof(WmlResourceDef));
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    if ( cursyn->int_lit != NULL )
-       newobj->tkname = cursyn->int_lit;
-    else
-       newobj->tkname = cursyn->name;
-    newobj->related_code = 0;
-    newobj->enumset_def = NULL;
-    wmlInsertInHList (wml_obj_arg_ptr, newobj->tkname, (ObjectPtr)newobj);
-
-/*
- * Validate any object references in the syntactic object
- */
-    newobj->dtype_def = (WmlDataTypeDefPtr)
-       wmlResolveFindObject (cursyn->datatype,
-                             WmlDataTypeDefValid,
-                             cursyn->name);
-    if ( cursyn->enumset != NULL )
-       newobj->enumset_def = (WmlEnumSetDefPtr)
-           wmlResolveFindObject (cursyn->enumset,
-                                 WmlEnumSetDefValid,
-                                 cursyn->name);
-
-    }
-
-/*
- * All objects are in the vector. The order is the code order, so
- * process it again and assign codes to each object
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to resolve related argument references.
- *
- * Search the argument vector for any argument with its related
- * argument set. Find the related argument, and bind the relation.
- * The binding only goes one way.
- */
-
-void wmlResolveSymKRelated ()
-
-{
-
-WmlResourceDefPtr      srcobj;         /* object with related reference */
-WmlResourceDefPtr      dstobj;         /* other object in binding */
-WmlSynResourceDefPtr   srcsynobj;      /* source syntactic object */
-int                    ndx;            /* loop index */
-
-
-/*
- * Scan all arguments for related argument bindings.
- */
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    srcobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    srcsynobj = srcobj->syndef;
-    if ( srcsynobj->related != NULL )
-       {
-       dstobj = (WmlResourceDefPtr)
-           wmlResolveFindObject (srcsynobj->related,
-                                 WmlResourceDefValid,
-                                 srcsynobj->name);
-       if ( dstobj != NULL )
-           srcobj->related_code = dstobj->sym_code;
-       }
-    }
-}
-
-\f
-/*
- * Routine to linearize and assign sym_k values to classes
- *
- * There are two linearizations of classes:
- *     - all classes in wml_obj_allclass...
- *     - all widgets and gadgets in wml_obj_class...
- * Create and linearize all class objects into these vectors. Assign sym_k
- * codes. Link all subclasses to their superclasses. Perform name processing
- * and link to any other named object.
- *
- * Resources are not inherited and linked at this time.
- */
-
-void wmlResolveSymKClass ()
-
-{
-
-WmlSynClassDefPtr      cursyn;         /* current syntactic object */
-WmlClassDefPtr         newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* assigned sym_k code value */
-char                   errmsg[300];
-
-
-/*
- * Initialize the object vectors. Then process the syntactic vector,
- * processing each class object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_allclass_ptr, 200, TRUE);
-wmlInitHList (wml_obj_class_ptr, 200, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynClassDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlClassDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlClassDefPtr) malloc (sizeof(WmlClassDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    newobj->superclass = NULL;
-    newobj->parentclass = NULL;
-    if ( cursyn->int_lit != NULL )
-       newobj->tkname = cursyn->int_lit;
-    else
-       newobj->tkname = cursyn->name;
-    newobj->inherit_done = FALSE;
-    newobj->arguments = NULL;
-    newobj->reasons = NULL;
-    newobj->controls = NULL;
-    newobj->children = NULL;
-    newobj->variant = NULL;
-    newobj->nondialog = NULL;
-    newobj->ctrlmapto = NULL;
-    switch ( cursyn->type )
-       {
-       case WmlClassTypeMetaclass:
-           wmlInsertInHList
-               (wml_obj_allclass_ptr, newobj->tkname, (ObjectPtr)newobj);
-           break;
-       case WmlClassTypeGadget:
-       case WmlClassTypeWidget:
-           wmlInsertInHList
-               (wml_obj_allclass_ptr, newobj->tkname, (ObjectPtr)newobj);
-           wmlInsertInHList
-               (wml_obj_class_ptr, newobj->tkname, (ObjectPtr)newobj);
-           break;
-       }
-
-/*
- * Require a convenience function name
- */
-    if ( cursyn->type != WmlClassTypeMetaclass )
-       if ( cursyn->convfunc == NULL )
-           {
-           sprintf (errmsg, "Class %s does not have a convenience function",
-                    cursyn->name);
-           wmlIssueError (errmsg);
-           }   
-
-/*
- * Validate any object references in the syntactic object
- */
-    if ( cursyn->ctrlmapto != NULL )
-       newobj->ctrlmapto = (WmlResourceDefPtr)
-           wmlResolveFindObject (cursyn->ctrlmapto,
-                                 WmlResourceDefValid,
-                                 cursyn->name);
-
-    }
-
-/*
- * All objects are in the vector. That order is the code order, so
- * process it again and assign codes to each object
- */
-code = 1;
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to validate controls lists
- *
- * Construct and linearize resolved controls lists. The linearized list
- * is used to resolve references.
- */
-
-void wmlResolveSymKCtrlList ()
-
-{
-
-WmlSynCtrlListDefPtr   cursyn;         /* current syntactic object */
-WmlCtrlListDefPtr      newobj;         /* new resolved object */
-WmlSynClassCtrlDefPtr  refptr;         /* current controls reference */
-WmlClassCtrlDefPtr     ctrlobj;        /* resolved control reference */
-WmlClassDefPtr         classobj;       /* the controlled class */
-int                    ndx;            /* loop index */
-
-
-/*
- * Process each control list. Construct a resolved control list for each
- */
-wmlInitHList (wml_obj_ctrlist_ptr, 20, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynCtrlListDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlCtrlListDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlCtrlListDefPtr) malloc (sizeof(WmlCtrlListDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    newobj->controls = NULL;
-    wmlInsertInHList (wml_obj_ctrlist_ptr, cursyn->name, (ObjectPtr)newobj);
-
-/*
- * Validate and construct a resolved controls reference list.
- */
-    for ( refptr=cursyn->controls ; refptr!=NULL ; refptr=refptr->next )
-       {
-       classobj = (WmlClassDefPtr)
-           wmlResolveFindObject (refptr->name,
-                                 WmlClassDefValid,
-                                 cursyn->name);
-       if ( classobj == NULL ) continue;
-       ctrlobj = (WmlClassCtrlDefPtr) malloc (sizeof(WmlClassCtrlDef));
-       ctrlobj->next = newobj->controls;
-       newobj->controls = ctrlobj;
-       ctrlobj->ctrl = classobj;
-       }
-    }
-
-}
-
-
-\f
-/*
- * Routine to linearize and assign sym_k values to character sets
- *
- * - Generate the wml_obj_charset... vector of resolved data type objects,
- *   ordered lexicographically. Assign a sym_k... value as this is done.
- *   Do name processing, and acquire links to any other objects named in
- *   the syntactic descriptor.
- */
-
-void wmlResolveSymKCharSet ()
-
-{
-
-WmlSynCharSetDefPtr    cursyn;         /* current syntactic object */
-WmlCharSetDefPtr       newobj;         /* new resolved object */
-int                    ndx;            /* loop index */
-int                    code;           /* assigned sym_k code value */
-char                   errmsg[300];
-
-
-/*
- * Initialize the object vector. Then process the syntactic vector,
- * processing each charset object encountered (the vector is ordered).
- * create and append a resolved object for each one encountered. This
- * will be ordered as well.
- */
-wmlInitHList (wml_obj_charset_ptr, 50, TRUE);
-for ( ndx=0 ; ndx<wml_synobj_ptr->cnt ; ndx++ )
-    {
-    cursyn = (WmlSynCharSetDefPtr) wml_synobj_ptr->hvec[ndx].objptr;
-    if ( cursyn->validation != WmlCharSetDefValid ) continue;
-
-/*
- * Create and initialize new object. Append to resolved object vector.
- */
-    newobj = (WmlCharSetDefPtr) malloc (sizeof(WmlCharSetDef));
-    newobj->syndef = cursyn;
-    cursyn->rslvdef = newobj;
-    if ( cursyn->int_lit != NULL )
-       newobj->tkname = cursyn->int_lit;
-    else
-       newobj->tkname = cursyn->name;
-    wmlInsertInHList (wml_obj_charset_ptr, newobj->tkname, (ObjectPtr)newobj);
-
-/*
- * Parsing direction defaults to writing direction if unspecified
- */
-    if ( cursyn->parsedirection == WmlAttributeUnspecified )
-       cursyn->parsedirection = cursyn->direction;
-
-/*
- * Require StandardsName attribute for character set
- */
-    if ( cursyn->xms_name == NULL )
-       {
-       sprintf (errmsg, "CharacterSet %s does not have a StandardsName",
-                cursyn->name);
-       wmlIssueError (errmsg);
-       }       
-
-    }
-
-/*
- * All objects are in the vector. That order is the code order, so
- * process it again and assign codes to each object. We start at code
- * 2 since 1 is reserved for sym_k_userdefined_charset
- */
-code = 2;
-for ( ndx=0 ; ndx<wml_obj_charset_ptr->cnt ; ndx++ )
-    {
-    newobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr;
-    newobj->sym_code = code;
-    code += 1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to perform class inheritance and validation.
- *
- * This routine has two major phases:
- *     - Complete resolution of class references, and expand out
- *       controls list.
- *     - Perform inheritance of resources, partitioning them into
- *       into arguments and reasons. When complete, the class has
- *       a list of all its resources, including copies from a 
- *       superclass and possibly a parentclass.
- *       Excluded resources remain in the list, and are simply marked.
- */
-
-void wmlResolveValidateClass ()
-
-{
-
-int                    ndx;            /* loop index */
-int                    max;            /* maximum code value */
-WmlClassDefPtr         clsobj;         /* current class object */
-WmlSynClassDefPtr      synobj;         /* syntactic class object */
-WmlClassDefPtr         superobj;       /* superclass */
-WmlClassDefPtr         parentobj;      /* parentclass */
-WmlClassDefPtr         widgobj;        /* gadget's widget class */
-WmlSynClassCtrlDefPtr  refptr;         /* current controls reference */
-WmlClassCtrlDefPtr     ctrlobj;        /* resolved control reference */
-int                    refndx;         /* index in vector */
-WmlClassDefPtr         refcls;         /* referenced class object */
-WmlCtrlListDefPtr      reflist;        /* controls list object */
-WmlClassCtrlDefPtr     listelem;       /* control reference in list */
-char                   errmsg[300];
-
-
-/*
- * Acquire the superclass pointer for each widget and gadget class
- */
-for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_allclass_ptr->hvec[ndx].objptr;
-    synobj = clsobj->syndef;
-    if ( synobj->superclass != NULL )
-       {
-       superobj = (WmlClassDefPtr)
-           wmlResolveFindObject (synobj->superclass,
-                                 WmlClassDefValid,
-                                 synobj->name);
-       if ( superobj == NULL ) continue;
-       clsobj->superclass = superobj;
-       }
-    }
-
-/*
- * Acquire the parentclass pointer (if one exists),
- * for each widget and gadget class
- */
-for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_allclass_ptr->hvec[ndx].objptr;
-    synobj = clsobj->syndef;
-    if ( synobj->parentclass != NULL )
-       {
-       parentobj = (WmlClassDefPtr)
-           wmlResolveFindObject (synobj->parentclass,
-                                 WmlClassDefValid,
-                                 synobj->name);
-       if ( parentobj == NULL ) continue;
-       clsobj->parentclass = parentobj;
-       }
-    }
-
-/*
- * Link each gadget class with its widget class (both ways).
- * Link any class with a non-dialog version to the non-dialog class.
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    synobj = clsobj->syndef;
-    if ( synobj->type == WmlClassTypeGadget )
-       {
-       if ( synobj->widgetclass == NULL )
-           {
-           sprintf (errmsg, "Gadget class %s has no widgetclass reference",
-                    synobj->name);
-           wmlIssueError (errmsg);
-           }
-       else
-           {
-           widgobj = (WmlClassDefPtr)
-               wmlResolveFindObject
-                   (synobj->widgetclass,
-                    WmlClassDefValid,
-                    synobj->name);
-           if ( widgobj != NULL )
-               {
-               clsobj->variant = widgobj;
-               widgobj->variant = clsobj;
-               }
-           }
-       }
-    if ( synobj->dialog == TRUE )
-       {
-       clsobj->nondialog = clsobj->superclass;
-       while ( clsobj->nondialog->syndef->dialog == TRUE )
-           clsobj->nondialog = clsobj->nondialog->superclass;
-       }
-    else
-       if ( clsobj->superclass != NULL )
-           {
-           synobj->dialog = clsobj->superclass->syndef->dialog;
-           clsobj->nondialog = clsobj->superclass->nondialog;
-           }
-    }
-
-/*
- * Construct the list of resolved controls. Control lists are expanded
- * in place.
- */
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    synobj = clsobj->syndef;
-    for ( refptr=synobj->controls ; refptr!= NULL ; refptr=refptr->next )
-       {
-       refndx = wmlFindInHList (wml_obj_class_ptr, refptr->name);
-       if ( refndx >= 0 )
-           {
-           refcls = (WmlClassDefPtr) wml_obj_class_ptr->hvec[refndx].objptr;
-           ctrlobj = (WmlClassCtrlDefPtr) malloc (sizeof(WmlClassCtrlDef));
-           ctrlobj->next = clsobj->controls;
-           clsobj->controls = ctrlobj;
-           ctrlobj->ctrl = refcls;
-           continue;
-           }
-       refndx = wmlFindInHList (wml_obj_ctrlist_ptr, refptr->name);
-       if ( refndx >= 0 )
-           {
-           reflist = (WmlCtrlListDefPtr)
-               wml_obj_ctrlist_ptr->hvec[refndx].objptr;
-           for ( listelem=reflist->controls ;
-                 listelem!=NULL ;
-                 listelem=listelem->next)
-               {
-               ctrlobj = (WmlClassCtrlDefPtr)
-                   malloc (sizeof(WmlClassCtrlDef));
-               ctrlobj->next = clsobj->controls;
-               clsobj->controls = ctrlobj;
-               ctrlobj->ctrl = listelem->ctrl;
-               }
-           continue;
-           }
-       wmlIssueReferenceError (synobj->name, refptr->name);
-       continue;
-       }
-    }
-
-/*
- * Perform resource inheritance for each class. This constructs the
- * arguments and reasons reference vectors.
- */
-for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_allclass_ptr->hvec[ndx].objptr;
-    wmlResolveClassInherit (clsobj);
-    }
-
-}
-
-
-\f
-/*
- * Routine to perform resource inheritance for a class.
- *
- * This routine constructs the argument and reason resource and child reference
- * vectors for a class. It first ensures the superclass (if any) has
- * been inited. It then makes a copy of the superclass lists. It repeats this
- * procedure for the parentclass (if any.) Finally, it
- * merges in the resources from the syntactic object. It uses the
- * resolved resource or child object to point to the matching reference object 
- * in the list being created as an aid to search doing overrides. This also
- * detects whether a resource or child is already in the list (if so, it is 
- * assumed to be inherited).
- */
-
-void wmlResolveClassInherit (clsobj)
-    WmlClassDefPtr             clsobj;
-
-{
-
-WmlClassDefPtr         superobj;       /* superclass object */
-WmlClassDefPtr         parentobj;      /* parentclass object */
-int                    ndx;            /* loop index */
-WmlResourceDefPtr      resobj;         /* current resource object */
-WmlClassResDefPtr      refobj;         /* current resource reference */
-WmlClassResDefPtr      srcref;         /* source of copy */
-WmlChildDefPtr         childobj;       /* current child object */
-WmlClassChildDefPtr    crefobj;        /* current child reference */
-WmlClassChildDefPtr    csrcref;        /* child source of copy */
-WmlSynClassDefPtr      synobj;         /* this class' syntactic object */
-WmlSynClassResDefPtr   refptr;         /* syntactic resource reference */
-WmlSynClassChildDefPtr crefptr;        /* syntactic child reference */
-
-
-/*
- * Done if inheritance previously performed. Ensure the superclass is
- * done.
- */
-if ( clsobj == NULL ) return;
-if ( clsobj->inherit_done ) return;
-superobj = clsobj->superclass;
-wmlResolveClassInherit (superobj);
-parentobj = clsobj->parentclass;
-wmlResolveClassInherit (parentobj);
-synobj = clsobj->syndef;
-
-/*
- * Clear the active reference pointer in the resolved resource objects.
- */
-wmlResolveClearRefPointers ();
-
-/*
- * Copy the superclass resources, setting the reference pointer as we go.
- */
-if ( superobj != NULL )
-    {
-    for ( srcref=superobj->arguments ; srcref!=NULL ; srcref=srcref->next )
-       {
-       refobj = (WmlClassResDefPtr) malloc (sizeof(WmlClassResDef));
-       refobj->next = clsobj->arguments;
-       clsobj->arguments = refobj;
-       wmlResolveInitRefObj (refobj, srcref);
-       }
-    for ( srcref=superobj->reasons ; srcref!=NULL ; srcref=srcref->next )
-       {
-       refobj = (WmlClassResDefPtr) malloc (sizeof(WmlClassResDef));
-       refobj->next = clsobj->reasons;
-       clsobj->reasons = refobj;
-       wmlResolveInitRefObj (refobj, srcref);
-       }
-    for (csrcref = superobj->children ; csrcref!=NULL ; csrcref=csrcref->next)
-      {
-       crefobj = (WmlClassChildDefPtr) malloc (sizeof(WmlClassChildDef));
-       crefobj->next = clsobj->children;
-       clsobj->children = crefobj;
-       wmlResolveInitChildRefObj (crefobj, csrcref);
-      }
-    }
-
-/*
- * Copy the parentclass resources, setting the reference pointer as we go.
- */
-if ( parentobj != NULL )
-    {
-    for ( srcref=parentobj->arguments ; srcref!=NULL ; srcref=srcref->next )
-       {
-         if (srcref->act_resource->ref_ptr == NULL)
-           {
-             refobj = (WmlClassResDefPtr) malloc (sizeof(WmlClassResDef));
-             refobj->next = clsobj->arguments;
-             clsobj->arguments = refobj;
-             wmlResolveInitRefObj (refobj, srcref);
-           }
-       }
-    for ( srcref=parentobj->reasons ; srcref!=NULL ; srcref=srcref->next )
-       {
-         if (srcref->act_resource->ref_ptr == NULL)
-           {
-             refobj = (WmlClassResDefPtr) malloc (sizeof(WmlClassResDef));
-             refobj->next = clsobj->reasons;
-             clsobj->reasons = refobj;
-             wmlResolveInitRefObj (refobj, srcref);
-           }
-       }
-    for (csrcref = parentobj->children ; csrcref!=NULL ; csrcref=csrcref->next)
-      {
-       if (csrcref->act_child->ref_ptr == NULL)
-         {
-           crefobj = (WmlClassChildDefPtr) malloc (sizeof(WmlClassChildDef));
-           crefobj->next = clsobj->children;
-           clsobj->children = crefobj;
-           wmlResolveInitChildRefObj (crefobj, csrcref);
-         }
-      }
-    }
-
-/*
- * Process the resources belonging to this class. They may either be
- * new resources, or override ones already in the list. Partition them
- * into arguments and reasons.
- */
-for ( refptr=synobj->resources ; refptr!=NULL ; refptr=refptr->next )
-    {
-    resobj = (WmlResourceDefPtr) wmlResolveFindObject (refptr->name,
-                                                      WmlResourceDefValid,
-                                                      synobj->name);
-    if ( resobj == NULL ) continue;
-
-    /*
-     * Acquire the resolved resource object, and the resource reference.
-     * New references are linked in to the proper list, and have their
-     * defaults set.
-     */
-    if ( resobj->ref_ptr != NULL )
-       refobj = resobj->ref_ptr;
-    else
-       {
-       refobj = (WmlClassResDefPtr) malloc (sizeof(WmlClassResDef));
-       refobj->act_resource = resobj;
-       resobj->ref_ptr = refobj;
-       refobj->over_dtype = NULL;
-       refobj->dflt = NULL;
-       refobj->exclude = WmlAttributeUnspecified;
-       if ( resobj->syndef->type == WmlResourceTypeReason )
-           {
-           refobj->next = clsobj->reasons;
-           clsobj->reasons = refobj;
-           }
-       else
-           {
-           refobj->next = clsobj->arguments;
-           clsobj->arguments = refobj;
-           }
-       }
-
-    /*
-     * Override any values in the reference which are explicit in the
-     * syntactic reference.
-     */
-    if ( refptr->type != NULL )
-       refobj->over_dtype = (WmlDataTypeDefPtr)
-           wmlResolveFindObject (refptr->type,
-                                 WmlDataTypeDefValid,
-                                 synobj->name);
-    if ( refptr->dflt != NULL )
-       refobj->dflt = refptr->dflt;
-    if ( refptr->exclude != WmlAttributeUnspecified )
-       refobj->exclude = refptr->exclude;
-    }
-
-/*
- * Process the children belonging to this class. 
- */
-for ( crefptr = synobj->children ; crefptr!=NULL ; crefptr = crefptr->next )
-  {
-    childobj = (WmlChildDefPtr) wmlResolveFindObject (crefptr->name,
-                                                    WmlChildDefValid,
-                                                    synobj->name);
-    if ( childobj == NULL ) continue;
-
-    /*
-     * Acquire the resolved child object, and the child reference.
-     * New references are linked in to the proper list, and have their
-     * defaults set.
-     */
-    if ( childobj->ref_ptr != NULL )
-       crefobj = childobj->ref_ptr;
-    else
-      {
-       crefobj = (WmlClassChildDefPtr) malloc (sizeof(WmlClassChildDef));
-       crefobj->act_child = childobj;
-       childobj->ref_ptr = crefobj;
-       crefobj->next = clsobj->children;
-       clsobj->children = crefobj;
-      }
-  }
-
-/*
- * inheritance complete
- */
-clsobj->inherit_done = TRUE;
-
-}
-
-
-\f
-/*
- * Routine to copy a resource reference
- */
-
-void wmlResolveInitRefObj (dstobj, srcobj)
-    WmlClassResDefPtr          dstobj;
-    WmlClassResDefPtr          srcobj;
-
-{
-
-WmlResourceDefPtr      resobj;
-
-
-resobj = srcobj->act_resource;
-dstobj->act_resource = resobj;
-resobj->ref_ptr = dstobj;
-dstobj->over_dtype = srcobj->over_dtype;
-dstobj->dflt = srcobj->dflt;
-dstobj->exclude = srcobj->exclude;
-
-}
-
-\f
-/*
- * Routine to copy a child reference
- */
-
-void wmlResolveInitChildRefObj (dstobj, srcobj)
-    WmlClassChildDefPtr                dstobj;
-    WmlClassChildDefPtr                srcobj;
-
-{
-
-WmlChildDefPtr childobj;
-
-childobj = srcobj->act_child;
-dstobj->act_child = childobj;
-childobj->ref_ptr = dstobj;
-
-}
-
-
-\f
-/*
- * Routine to print a report in a file.
- *
- * This routine dumps the developed database into the file 'wml.report'
- */
-
-void wmlResolvePrintReport ()
-
-{
-
-FILE                   *outfil;        /* output file */
-int                    ndx;            /* loop index */
-WmlClassDefPtr         clsobj;         /* current class */
-
-
-/*
- * Open the output file.
- */
-outfil = fopen ( "wml.report", "w");
-if ( outfil == NULL )
-    {
-    printf ("\nCouldn't open wml.report");
-    return;
-    }
-
-/*
- * Go through all classes. Print basic information, then dump their
- * resources. The main purpose of this report is to show the actual
- * resources and controls for the class.
- */
-
-for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
-    {
-    clsobj = (WmlClassDefPtr) wml_obj_allclass_ptr->hvec[ndx].objptr;
-    wmlMarkReferencePointers (clsobj);
-    wmlResolvePrintClass (outfil, clsobj);
-    }
-
-
-/*
- * close the output file
- */
-fprintf (outfil, "\n\n");
-printf ("\nCreated report file wml.report");
-fclose (outfil);
-
-}
-
-
-\f
-/*
- * Print the information for a class
- */
-
-void wmlResolvePrintClass (outfil, clsobj)
-    FILE                       *outfil;
-    WmlClassDefPtr             clsobj;
-
-{
-
-int                    ndx;            /* loop index */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-WmlClassCtrlDefPtr     ctrlref;        /* controls reference */
-WmlClassDefPtr         ctrlobj;        /* current class in control */
-
-
-synobj = clsobj->syndef;
-fprintf (outfil, "\n\n\nClass %s:", synobj->name);
-switch ( synobj->type )
-    {
-    case WmlClassTypeMetaclass:
-        fprintf (outfil, "\n  Type: Metaclass\t");
-       if ( synobj->superclass != NULL )
-           fprintf (outfil, "Superclass: %s\t", synobj->superclass);
-       if ( synobj->parentclass != NULL )
-           fprintf (outfil, "Parentclass: %s\t", synobj->parentclass);
-       break;
-    case WmlClassTypeWidget:
-       fprintf (outfil, "\n  Type: Widget\t");
-       if ( synobj->superclass != NULL )
-           fprintf (outfil, "Superclass: %s\t", synobj->superclass);
-       if ( synobj->parentclass != NULL )
-           fprintf (outfil, "Parentclass: %s\t", synobj->parentclass);
-       if ( clsobj->variant != NULL )
-           fprintf (outfil, "\n  Associated gadget class: %s\t",
-                    clsobj->variant->syndef->name);
-       if ( synobj->convfunc != NULL )
-           fprintf (outfil, "Convenience function: %s", synobj->convfunc);
-       break;
-    case WmlClassTypeGadget:
-       fprintf (outfil, "\n  Type: Gadget\t");
-       if ( synobj->superclass != NULL )
-           fprintf (outfil, "Superclass: %s\t", synobj->superclass);
-       if ( synobj->parentclass != NULL )
-           fprintf (outfil, "Parentclass: %s\t", synobj->parentclass);
-       if ( clsobj->variant != NULL )
-           fprintf (outfil, "\n  Associated widget class: %s\t",
-                    clsobj->variant->syndef->name);
-       if ( synobj->convfunc != NULL )
-           fprintf (outfil, "Convenience function: %s", synobj->convfunc);
-       break;
-    }
-
-/*
- * Print associated non-dialog class
- */
-if ( clsobj->nondialog != NULL )
-    fprintf (outfil, "\n  DialogClass: True\tNon-dialog ancestor: %s\t",
-            clsobj->nondialog->syndef->name);
-
-/*
- * Print the arguments valid in the class. First the new resources for the
- * class are printed, then each ancestor's contribution is printed. This
- * is intended to match the way resources are printed in the toolkit manual,
- * so that checking is as easy as possible.
- */
-fprintf (outfil, "\n  Arguments:");
-wmlResolvePrintClassArgs (outfil, clsobj);
-
-/*
- * Print the reasons valid in the class
- */
-fprintf (outfil, "\n  Reasons:");
-wmlResolvePrintClassReasons (outfil, clsobj);
-
-/*
- * Print the controls valid in the class
- */
-fprintf (outfil, "\n  Controls:");
-for ( ndx=0 ; ndx<wml_obj_class_ptr->cnt ; ndx++ )
-    {
-    ctrlobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr;
-    if ( ctrlobj->ref_ptr == NULL ) continue;
-    fprintf (outfil, "\n    %s", ctrlobj->syndef->name);
-    }
-
-}
-
-
-\f
-/*
- * Routine to print the arguments for a class
- *
- * This routine prints out the currently marked arguments which are
- * present in this class. Each argument which is printed is remarked
- * so that it won't be printed again. This routine first prints the
- * superclass arguments, so that the printing order becomes the top-down
- * inheritance order.
- */
-
-void wmlResolvePrintClassArgs (outfil, clsobj)
-    FILE                       *outfil;
-    WmlClassDefPtr             clsobj;
-
-{
-
-int                    prthdr = TRUE;  /* print header line */
-int                    ndx;            /* loop index */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-WmlClassResDefPtr      resref;         /* resource reference */
-int                    constr = FALSE; /* check for constraints */
-WmlResourceDefPtr      resobj;         /* current resource */
-WmlSynResourceDefPtr   synres;         /* syntactic resource object */
-
-
-/*
- * Print the superclass arguments
- */
-if ( clsobj->superclass != NULL )
-    wmlResolvePrintClassArgs (outfil, clsobj->superclass);
-
-/*
- * Print the parentclass arguments
- */
-if ( clsobj->parentclass != NULL )
-    wmlResolvePrintClassArgs (outfil, clsobj->parentclass);
-
-/*
- * Print the arguments for this class. Unmark the reference so it won't
- * be printed again.
- */
-synobj = clsobj->syndef;
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    resref = resobj->ref_ptr;
-    if ( resref == NULL ) continue;
-    if ( wmlResolveResIsMember(resobj,clsobj->arguments) == NULL ) continue;
-    synres = resobj->syndef;
-    switch ( synres->type )
-       {
-       case WmlResourceTypeArgument:
-       case WmlResourceTypeSubResource:
-           break;
-       case WmlResourceTypeConstraint:
-           constr = TRUE;
-           break;
-       default:
-           continue;
-           break;
-       }
-    if ( prthdr )
-       {
-       fprintf (outfil, "\n    %s argument set:", synobj->name);
-       prthdr = FALSE;
-       }
-       
-    fprintf (outfil, "\n      %s", synres->name);
-    fprintf (outfil, "\n\tType = %s", resobj->dtype_def->syndef->name);
-    if ( strcmp(synres->name,synres->resliteral) != 0 )
-       fprintf (outfil, "\tResourceLiteral = %s", synres->resliteral);
-    switch ( resref->exclude )
-       {
-       case WmlAttributeTrue:
-           fprintf (outfil, "\n\tExclude = True;");
-           break;
-       case WmlAttributeFalse:
-           fprintf (outfil, "\n\tExclude = False;");
-           break;
-       }
-    if ( resref->dflt != NULL )
-       fprintf (outfil, "\n\tDefault = \"%s\"", resref->dflt);
-    else
-       if ( synres->dflt != NULL )
-           fprintf (outfil, "\n\tDefault = \"%s\"", synres->dflt);
-    resobj->ref_ptr = NULL;
-    }
-
-/*
- * Print the constraints valid in the class
- */
-if ( constr )
-    {
-    prthdr = TRUE;
-    for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-       {
-       resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-       resref = resobj->ref_ptr;
-       if ( resref == NULL ) continue;
-       if ( wmlResolveResIsMember(resobj,clsobj->arguments) == NULL ) continue;
-       synres = resobj->syndef;
-       switch ( synres->type )
-           {
-           case WmlResourceTypeConstraint:
-               break;
-           default:
-               continue;
-               break;
-           }
-       if ( prthdr )
-           {
-           fprintf (outfil, "\n    %s constraint set:", synobj->name);
-           prthdr = FALSE;
-           }
-       fprintf (outfil, "\n      %s", synres->name);
-       if ( strcmp(synres->name,synres->resliteral) != 0 )
-           fprintf (outfil, "\tResourceLiteral = %s", synres->resliteral);
-       switch ( resref->exclude )
-           {
-           case WmlAttributeTrue:
-               fprintf (outfil, "\n\tExclude = True;");
-               break;
-           case WmlAttributeFalse:
-               fprintf (outfil, "\n\tExclude = False;");
-               break;
-           }
-       if ( resref->dflt != NULL )
-           fprintf (outfil, "\n\tDefault = \"%s\"", resref->dflt);
-       else
-           if ( synres->dflt != NULL )
-               fprintf (outfil, "\n\tDefault = \"%s\"", synres->dflt);
-       resobj->ref_ptr = NULL;
-       }
-    }
-
-}
-
-
-\f
-/*
- * Routine to print reasons in a class.
- *
- * Like printing arguments, only reasons instead.
- */
-
-void wmlResolvePrintClassReasons (outfil, clsobj)
-    FILE                       *outfil;
-    WmlClassDefPtr             clsobj;
-
-{
-
-int                    prthdr = TRUE;  /* print header flag */
-int                    ndx;            /* loop index */
-WmlSynClassDefPtr      synobj;         /* syntactic object */
-WmlClassResDefPtr      resref;         /* resource reference */
-WmlResourceDefPtr      resobj;         /* current resource */
-WmlSynResourceDefPtr   synres;         /* syntactic resource object */
-
-
-/*
- * Print the superclass reasons
- */
-if ( clsobj->superclass != NULL )
-    wmlResolvePrintClassReasons (outfil, clsobj->superclass);
-
-/*
- * Print the parentclass reasons
- */
-if ( clsobj->parentclass != NULL )
-    wmlResolvePrintClassReasons (outfil, clsobj->parentclass);
-
-/*
- * Print the reasons for this class. Unmark the reference so it won't
- * be printed again.
- */
-synobj = clsobj->syndef;
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    resref = resobj->ref_ptr;
-    if ( resref == NULL ) continue;
-    if ( wmlResolveResIsMember(resobj,clsobj->reasons) == NULL ) continue;
-    synres = resobj->syndef;
-    if ( prthdr )
-       {
-       fprintf (outfil, "\n    %s reason set:", synobj->name);
-       prthdr = FALSE;
-       }
-    fprintf (outfil, "\n      %s", synres->name);
-    if ( strcmp(synres->name,synres->resliteral) != 0 )
-       fprintf (outfil, "\tResourceLiteral = %s", synres->resliteral);
-    switch ( resref->exclude )
-       {
-       case WmlAttributeTrue:
-           fprintf (outfil, "\n\tExclude = True;");
-           break;
-       case WmlAttributeFalse:
-           fprintf (outfil, "\n\tExclude = False;");
-           break;
-       }
-    resobj->ref_ptr = NULL;
-    }
-}
-
-
-\f
-/*
- * Routine to mark reference pointers for a class
- *
- * This routine clears all reference pointers, then marks the class and
- * resource objects to flag those contained in the current class. This
- * allows processing of the widget and resource vectors in order to produce
- * bit masks or reports.
- */
-
-void wmlMarkReferencePointers (clsobj)
-    WmlClassDefPtr             clsobj;
-
-{
-
-int                    ndx;            /* loop index */
-WmlClassDefPtr         mrkcls;         /* class object to mark */
-WmlResourceDefPtr      mrkres;         /* resource object to mark */
-WmlClassResDefPtr      resref;         /* resource reference */
-WmlClassCtrlDefPtr     ctrlref;        /* controls reference */
-
-
-/*
- * Clear the reference pointers. Then go through the arguments, reasons,
- * and controls lists, and mark the referenced classes.
- */
-wmlResolveClearRefPointers ();
-for ( resref=clsobj->arguments ; resref!= NULL ; resref=resref->next )
-    resref->act_resource->ref_ptr = resref;
-for ( resref=clsobj->reasons ; resref!= NULL ; resref=resref->next )
-    resref->act_resource->ref_ptr = resref;
-for ( ctrlref=clsobj->controls ; ctrlref!=NULL ; ctrlref=ctrlref->next )
-    ctrlref->ctrl->ref_ptr = ctrlref;
-
-}
-
-
-\f
-/*
- * Routine to clear reference pointers
- */
-
-void wmlResolveClearRefPointers ()
-
-{
-
-int                    ndx;            /* loop index */
-WmlClassDefPtr         mrkcls;         /* class object to mark */
-WmlResourceDefPtr      mrkres;         /* resource object to mark */
-WmlChildDefPtr         mrkcld;         /* child object to mark */
-
-for ( ndx=0 ; ndx<wml_obj_allclass_ptr->cnt ; ndx++ )
-    {
-    mrkcls = (WmlClassDefPtr) wml_obj_allclass_ptr->hvec[ndx].objptr;
-    mrkcls->ref_ptr = NULL;
-    }
-for ( ndx=0 ; ndx<wml_obj_reason_ptr->cnt ; ndx++ )
-    {
-    mrkres = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr;
-    mrkres->ref_ptr = NULL;
-    }
-for ( ndx=0 ; ndx<wml_obj_arg_ptr->cnt ; ndx++ )
-    {
-    mrkres = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr;
-    mrkres->ref_ptr = NULL;
-    }
-for ( ndx=0 ; ndx<wml_obj_child_ptr->cnt ; ndx++ )
-    {
-    mrkcld = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr;
-    mrkcld->ref_ptr = NULL;
-    }
-
-}
-
-
-\f
-/*
- * Routine to find an object for binding. The name is always looked
- * in the syntactic object list, since all references made by the
- * user are in that list (resolved objects may be entered under
- * an internal literal, and not be found). This routine always attempts to
- * return a resolved object (which depends on object type). It also guarantees
- * that the object it finds matches the given type.
- *
- *     name            the object to be found
- *     type            type the object should match
- *     requester       requester name, for error messages
- *
- * Returns:    pointer to the object found
- */
-
-ObjectPtr wmlResolveFindObject (name, type, requester)
-    char                       *name;
-    int                                type;
-    char                       *requester;
-
-{
-
-int                    objndx;         /* the object index in the list */
-WmlSynDefPtr           synobj;         /* syntactic object */
-char                   errmsg[300];
-
-
-objndx = wmlFindInHList (wml_synobj_ptr, name);
-if ( objndx < 0 )
-    {
-    wmlIssueReferenceError (requester, name);
-    return NULL;
-    }
-synobj = (WmlSynDefPtr) wml_synobj_ptr ->hvec[objndx].objptr;
-if ( synobj->validation != type )
-    {
-    sprintf (errmsg,
-            "Object %s references object %s\n\tin a context where a different type of object is required",
-           requester, name);
-    wmlIssueError (errmsg);
-    return NULL;
-    }
-switch ( synobj->validation )
-    {
-    case WmlClassDefValid:
-    case WmlResourceDefValid:
-    case WmlDataTypeDefValid:
-    case WmlCtrlListDefValid:
-    case WmlEnumSetDefValid:
-    case WmlEnumValueDefValid:
-    case WmlChildDefValid:
-        return (ObjectPtr) synobj->rslvdef;
-       break;
-    default:
-       return (ObjectPtr) synobj;
-    }
-
-}
-
-
-/*
- * Report an object reference error
- *
- *     srcname         the object making the reference
- *     badname         the missing object
- */
-
-void wmlIssueReferenceError (srcname, badname)
-    char                       *srcname;
-    char                       *badname;
-
-{
-
-printf ("\nObject %s references undefined object %s", srcname, badname);
-wml_err_count += 1;
-
-}
-
-
-/*
- * Report an attempt to make a reference which is not supported.
- */
-
-void wmlIssueIllegalReferenceError (srcname, badname)
-    char                       *srcname;
-    char                       *badname;
-
-{
-
-printf ("\nObject %s cannot reference a %s object", srcname, badname);
-wml_err_count += 1;
-
-}
-
-
-/*
- * Report an error string.
- */
-void wmlIssueError (errstg)
-    char                       *errstg;
-
-{
-
-printf ("\n%s", errstg);
-wml_err_count += 1;
-
-}
diff --git a/cde/osf/wml/wmlsynbld.c b/cde/osf/wml/wmlsynbld.c
deleted file mode 100644 (file)
index ccb85c8..0000000
+++ /dev/null
@@ -1,1299 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmlsynbld.c /main/9 1995/08/29 11:11:12 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This module contains the programs which construct the syntactic
- * representation of the WML input. All the routines are called as
- * actions of the grammar productions.
- *
- * Since WML is so simple, no stack frame technology is used. Instead,
- * context is maintained by global pointers and vectors which contain
- * the intermediate results of parsing a statement. At most, these
- * contain an object being constructed (for instance a class descriptor)
- * and a subobject (for instance a resource reference in a class).
- *
- * Results are communicated back using the global error count
- * wml_err_count, and the ordered handle list wml_synobj_ptr.
- */
-
-
-#include "wml.h"
-#include "wmlparse.h"
-
-#if defined(__STDC__)
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-
-\f
-/*
- * Globals used during WML parsing.
- */
-
-/*
- * Character arrays and other variables to hold lexemes
- * are defined in wmllex.l
- */
-
-/*
- * Current principal object being constructed
- * Current subobject
- */
-ObjectPtr      wml_cur_obj;
-ObjectPtr      wml_cur_subobj;
-
-
-\f
-/*
- * Routine to create a class descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the class name
- *     ctype           class type, one of METACLASS | WIDGET | GADGET
- */
-
-void wmlCreateClass (name, ctype)
-    char               *name;
-    int                        ctype;
-
-{
-
-WmlSynClassDefPtr      cdesc;          /* new class descriptor */
-
-
-/*
- * Initialize the new class descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-cdesc = (WmlSynClassDefPtr) malloc (sizeof(WmlSynClassDef));
-cdesc->validation = WmlClassDefValid;
-cdesc->rslvdef = NULL;
-switch ( ctype )
-    {
-    case METACLASS:
-        cdesc->type = WmlClassTypeMetaclass;
-       break;
-    case WIDGET:
-        cdesc->type = WmlClassTypeWidget;
-       break;
-    case GADGET:
-        cdesc->type = WmlClassTypeGadget;
-       break;
-    default:
-       printf ("\nwmlCreateClass: unknown class type %d", ctype);
-       return;
-       break;
-    }
-cdesc->dialog = FALSE;
-cdesc->name = wmlAllocateString (name);
-cdesc->superclass = NULL;
-cdesc->parentclass = NULL;
-cdesc->widgetclass = NULL;
-cdesc->int_lit = NULL;
-cdesc->convfunc = NULL;
-cdesc->docname = NULL;
-cdesc->ctrlmapto = NULL;
-cdesc->controls = NULL;
-cdesc->resources = NULL;
-cdesc->children = NULL;
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)cdesc);
-wml_cur_obj = (ObjectPtr) cdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create a resource descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the resource name
- *     rtype           resource type, one of
- *                     ARGUMENT | REASON | CONSTRAINT | SUBRESOURCE
- */
-
-void wmlCreateResource (name, rtype)
-    char               *name;
-    int                        rtype;
-
-{
-
-WmlSynResourceDefPtr   rdesc;          /* new resource descriptor */
-
-
-/*
- * Initialize the new resource descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-rdesc = (WmlSynResourceDefPtr) malloc (sizeof(WmlSynResourceDef));
-rdesc->validation = WmlResourceDefValid;
-rdesc->rslvdef = NULL;
-switch ( rtype )
-    {
-    case ARGUMENT:
-        rdesc->type = WmlResourceTypeArgument;
-       rdesc->xrm_support = WmlAttributeTrue;
-       break;
-    case REASON:
-        rdesc->type = WmlResourceTypeReason;
-       rdesc->xrm_support = WmlAttributeFalse;
-       break;
-    case CONSTRAINT:
-        rdesc->type = WmlResourceTypeConstraint;
-       rdesc->xrm_support = WmlAttributeTrue;
-       break;
-    case SUBRESOURCE:
-        rdesc->type = WmlResourceTypeSubResource;
-       rdesc->xrm_support = WmlAttributeTrue;
-       break;
-    default:
-       printf ("\nwmlCreateResource: unknown resource type %d", rtype);
-       return;
-       break;
-    }
-rdesc->name = wmlAllocateString (name);
-rdesc->datatype = NULL;
-rdesc->int_lit = NULL;
-rdesc->resliteral = wmlAllocateString (name);  /* default to name */
-rdesc->enumset = NULL;
-rdesc->docname = NULL;
-rdesc->related = NULL;
-rdesc->dflt = NULL;
-rdesc->alias_cnt = 0;
-rdesc->alias_list = NULL;
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)rdesc);
-wml_cur_obj = (ObjectPtr) rdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create a datatype descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the datatype name
- */
-
-void wmlCreateDatatype (name)
-    char               *name;
-
-{
-
-WmlSynDataTypeDefPtr   ddesc;          /* new datatype descriptor */
-
-
-/*
- * Initialize the new datatype descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-ddesc = (WmlSynDataTypeDefPtr) malloc (sizeof(WmlSynDataTypeDef));
-ddesc->validation = WmlDataTypeDefValid;
-ddesc->rslvdef = NULL;
-ddesc->name = wmlAllocateString (name);
-ddesc->int_lit = NULL;
-ddesc->docname = NULL;
-ddesc->xrm_support = WmlAttributeTrue;
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)ddesc);
-wml_cur_obj = (ObjectPtr) ddesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-\f
-/*
- * Routine to create a child descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the child name
- *     class           the class name
- */
-
-void wmlCreateChild (name, class)
-     char              *name;
-     char              *class;
-{
-
-WmlSynChildDefPtr      chdesc;         /* new child descriptor */
-
-
-/*
- * Initialize the new child descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-chdesc = (WmlSynChildDefPtr) malloc (sizeof(WmlSynChildDef));
-chdesc->validation = WmlChildDefValid;
-chdesc->rslvdef = NULL;
-chdesc->name = wmlAllocateString (name);
-chdesc->class = wmlAllocateString (class);
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)chdesc);
-wml_cur_obj = (ObjectPtr) chdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create a controls list descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the controls list name
- */
-
-void wmlCreateOrAppendCtrlList (name)
-    char               *name;
-
-{
-int                    idx;
-WmlSynCtrlListDefPtr   cdesc;          /* new CtrlList descriptor */
-
-idx = wmlFindInHList(wml_synobj_ptr,name);
-
-if (idx < 0 ) {
-  /* Didn't find list */
-
-  /*
-   * Initialize the new CtrlList descriptor. Enter it in the object list.
-   * Set the current object global to the descriptor.
-   */
-  cdesc = (WmlSynCtrlListDefPtr) malloc (sizeof(WmlSynCtrlListDef));
-  cdesc->validation = WmlCtrlListDefValid;
-  cdesc->rslvdef = NULL;
-  cdesc->name = wmlAllocateString (name);
-  cdesc->controls = NULL;
-
-  wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)cdesc);
-} else {
-  cdesc = (WmlSynCtrlListDefPtr) wml_synobj_ptr -> hvec[idx].objptr;
-  printf ("\nAppending to list name %s", name);
-}
-
-wml_cur_obj = (ObjectPtr) cdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create an enumeration set descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the enumeration set name
- *     type            data type, must match a data type name
- */
-
-void wmlCreateEnumSet (name, dtype)
-    char               *name;
-    char               *dtype;
-
-{
-
-WmlSynEnumSetDefPtr    esdesc;         /* new enumeration set descriptor */
-
-
-/*
- * Initialize the new resource descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-esdesc = (WmlSynEnumSetDefPtr) malloc (sizeof(WmlSynEnumSetDef));
-esdesc->validation = WmlEnumSetDefValid;
-esdesc->rslvdef = NULL;
-esdesc->name = wmlAllocateString (name);
-esdesc->datatype = wmlAllocateString (dtype);
-esdesc->values = NULL;
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)esdesc);
-wml_cur_obj = (ObjectPtr) esdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create an enumeration value descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the enumeration value name
- */
-
-void wmlCreateEnumValue (name)
-    char               *name;
-
-{
-
-WmlSynEnumValueDefPtr  evdesc;         /* new enumeration value descriptor */
-
-
-/*
- * Initialize the new resource descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-evdesc = (WmlSynEnumValueDefPtr) malloc (sizeof(WmlSynEnumValueDef));
-evdesc->validation = WmlEnumValueDefValid;
-evdesc->rslvdef = NULL;
-evdesc->name = wmlAllocateString (name);
-evdesc->enumlit = wmlAllocateString (name);    /* defaults to name */
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)evdesc);
-wml_cur_obj = (ObjectPtr) evdesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to create a charset descriptor. The result is placed in both
- * wml_cur_obj and wml_synobj.
- *
- *     name            the charset name
- */
-
-void wmlCreateCharset (name)
-    char               *name;
-
-{
-
-WmlSynCharSetDefPtr    ddesc;          /* new charset descriptor */
-
-
-/*
- * Initialize the new charset descriptor. Enter it in the object list.
- * Set the current object global to the descriptor.
- */
-ddesc = (WmlSynCharSetDefPtr) malloc (sizeof(WmlSynCharSetDef));
-ddesc->validation = WmlCharSetDefValid;
-ddesc->rslvdef = NULL;
-ddesc->name = wmlAllocateString (name);
-ddesc->int_lit = NULL;
-ddesc->xms_name = NULL;
-ddesc->direction = WmlCharSetDirectionLtoR;
-ddesc->parsedirection = WmlAttributeUnspecified;
-ddesc->charsize = WmlCharSizeOneByte;
-ddesc->alias_cnt = 0;
-ddesc->alias_list = NULL;
-
-if ( wmlFindInHList(wml_synobj_ptr,name) >= 0 )
-    {
-    printf ("\nDuplicate name %s found", name);
-    return;
-    }
-wmlInsertInHList (wml_synobj_ptr, name, (ObjectPtr)ddesc);
-wml_cur_obj = (ObjectPtr) ddesc;
-wml_cur_subobj = NULL;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to set an attribute in a class descriptor.
- *
- * This routine sets the given attribute in the current object, which
- * must be a class descriptor. The current object and subobject do not
- * change.
- *
- *     attrid          oneof SUPERCLASS | INTERNALLITERAL | DOCNAME |
- *                     CONVFUNC | WIDGETCLASS | DIALOGCLASS |
- *                     CTRLMAPSRESOURCE
- *     val             value of the attribute, usually a string
- */
-
-void wmlAddClassAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynClassDefPtr      cdesc;          /* the class descriptor */
-
-
-/*
- * Acquire the current class descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddClassAttribute: NULL current object");
-    return;
-    }
-cdesc = (WmlSynClassDefPtr) wml_cur_obj;
-if ( cdesc->validation != WmlClassDefValid )
-    {
-    printf ("\nwmlAddClassAttribute: %d not a class descriptor",
-           cdesc->validation);
-    return;
-    }
-
-/*
- * Set the appropriate resource
- */
-switch ( attrid )
-    {
-    case SUPERCLASS:
-        cdesc->superclass = wmlAllocateString (val);
-       break;  
-    case PARENTCLASS:
-        cdesc->parentclass = wmlAllocateString (val);
-       break;  
-    case INTERNALLITERAL:
-        cdesc->int_lit = wmlAllocateString (val);
-       break;  
-    case CONVFUNC:
-        cdesc->convfunc = wmlAllocateString (val);
-       break;  
-    case DOCNAME:
-        cdesc->docname = wmlAllocateString (val);
-       break;  
-    case WIDGETCLASS:
-        cdesc->widgetclass = wmlAllocateString (val);
-       break;  
-    case DIALOGCLASS:
-       switch ( (long)val )
-           {
-           case ATTRTRUE:
-               cdesc->dialog = TRUE;
-               break;
-           }
-       break;  
-    case CTRLMAPSRESOURCE:
-        cdesc->ctrlmapto = wmlAllocateString (val);
-       break;  
-    }
-
-return;
-}
-
-
-\f
-/*
- * Routine to add a control specification to the current class.
- * The current object must be a class descriptor. The entry name
- * is added to the controls list. The control specification becomes the
- * current subobject.
- *
- *     name            the name of the controlled class
- */
-
-void wmlAddClassControl (name)
-    char                       *name;
-
-{
-    
-WmlSynClassDefPtr      cdesc;          /* the class descriptor */
-WmlSynClassCtrlDefPtr  ctrlelm;        /* controls element */
-
-
-/*
- * Acquire the current class descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddClassControl: NULL current object");
-    return;
-    }
-cdesc = (WmlSynClassDefPtr) wml_cur_obj;
-if ( cdesc->validation != WmlClassDefValid )
-    {
-    printf ("\nwmlAddClassControl: %d not a class descriptor",
-           cdesc->validation);
-    return;
-    }
-
-/*
- * Add the control to the control list
- */
-ctrlelm = (WmlSynClassCtrlDefPtr) malloc (sizeof(WmlSynClassCtrlDef));
-ctrlelm->validation = WmlClassCtrlDefValid;
-ctrlelm->next = cdesc->controls;
-cdesc->controls = ctrlelm;
-ctrlelm->name = wmlAllocateString (name);
-
-/*
- * This becomes the current subobject
- */
-wml_cur_subobj = (ObjectPtr) ctrlelm;
-
-return;
-
-}
-
-
-\f
-/*
- * Add a resource descriptor to a class.
- * The current object must be a class descriptor. Create and add a
- * resource descriptor, which becomes the current subobject. It is not
- * entered in the named object list.
- *
- *     name            the resource name
- */
-
-void wmlAddClassResource (name)
-    char                       *name;
-
-{
-    
-WmlSynClassDefPtr      cdesc;          /* the class descriptor */
-WmlSynClassResDefPtr   rdesc;          /* the resource reference descriptor */
-
-
-/*
- * Acquire the current class descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddClassResource: NULL current object");
-    return;
-    }
-cdesc = (WmlSynClassDefPtr) wml_cur_obj;
-if ( cdesc->validation != WmlClassDefValid )
-    {
-    printf ("\nwmlAddClassResource: %d not a class descriptor",
-           cdesc->validation);
-    return;
-    }
-
-/*
- * Add the resource to the resource list
- */
-rdesc = (WmlSynClassResDefPtr) malloc (sizeof(WmlSynClassResDef));
-rdesc->validation = WmlClassResDefValid;
-rdesc->name = wmlAllocateString (name);
-rdesc->type = NULL;
-rdesc->dflt = NULL;
-rdesc->exclude = WmlAttributeUnspecified;
-
-rdesc->next = cdesc->resources;
-cdesc->resources = rdesc;
-
-/*
- * This becomes the current subobject
- */
-wml_cur_subobj = (ObjectPtr) rdesc;
-
-return;
-
-}
-
-\f
-/*
- * Add a child descriptor to a class.
- * The current object must be a class descriptor. Create and add a
- * child descriptor, which becomes the current subobject. It is not
- * entered in the named object list.
- *
- *     name            the resource name
- */
-
-void wmlAddClassChild (name)
-    char                       *name;
-
-{
-    
-WmlSynClassDefPtr      cdesc;          /* the class descriptor */
-WmlSynClassChildDefPtr chdesc;         /* the child reference descriptor */
-
-
-/*
- * Acquire the current class descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddClassResource: NULL current object");
-    return;
-    }
-cdesc = (WmlSynClassDefPtr) wml_cur_obj;
-if ( cdesc->validation != WmlClassDefValid )
-    {
-    printf ("\nwmlAddClassResource: %d not a class descriptor",
-           cdesc->validation);
-    return;
-    }
-
-/*
- * Add the child to the child list
- */
-chdesc = (WmlSynClassChildDefPtr) malloc (sizeof(WmlSynClassChildDef));
-chdesc->validation = WmlClassChildDefValid;
-chdesc->name = wmlAllocateString (name);
-
-chdesc->next = cdesc->children;
-cdesc->children = chdesc;
-
-/*
- * This becomes the current subobject
- */
-wml_cur_subobj = (ObjectPtr) chdesc;
-
-return;
-
-}
-
-
-\f
-/*
- * This routine sets an attribute in the current class resource descriptor.
- * The current subobject must be a class resource descriptor. The
- * named attribute is set.
- *
- *     attrid          one of TYPE | DEFAULT | EXCLUDE
- *     val             attribute value, usually a string. Must be
- *                     ATTRTRUE | ATTRFALSE for EXCLUDE.
- */
-void wmlAddClassResourceAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynClassResDefPtr   rdesc;          /* current class resource descriptor */
-long                   excval;         /* EXCLUDE value */
-
-
-/*
- * Acquire the descriptor from the current subobject.
- */
-if ( wml_cur_subobj == NULL )
-    {
-    printf ("\nwmlAddClassResourceAttribute: NULL current subobject");
-    return;
-    }
-rdesc = (WmlSynClassResDefPtr) wml_cur_subobj;
-if ( rdesc->validation != WmlClassResDefValid )
-    {
-    printf
-       ("\nwmlAddClassResourceAttribute: %d not a class resource descriptor",
-        rdesc->validation);
-    return;
-    }
-
-switch ( attrid )
-    {
-    case TYPE:
-        rdesc->type = wmlAllocateString (val);
-       break;
-    case DEFAULT:
-        rdesc->dflt = wmlAllocateString (val);
-       break;
-    case EXCLUDE:
-       excval = (long) val;
-       switch ( excval )
-           {
-           case ATTRTRUE:
-               rdesc->exclude = WmlAttributeTrue;
-               break;
-           case ATTRFALSE:
-               rdesc->exclude = WmlAttributeFalse;
-               break;
-           default:
-               printf ("\nwmlAddClassResourceAttribute: bad EXCLUDE value %d",
-                       excval);
-               return;
-               break;
-           }
-       break;
-    default:
-       printf ("\nwmlAddClassResourceAttribute: unknown attrid %d", attrid);
-       return;
-       break;
-    }
-
-return;
-
-}
-
-
-
-\f
-/*
- * Routine to set an attribute in a resource descriptor.
- *
- * This routine sets the given attribute in the current object, which
- * must be a resource descriptor. The current object and subobject do not
- * change.
- *
- *     attrid          oneof TYPE | RESOURCELITERAL | INTERNALLITERAL |
- *                     RELATED | DOCNAME | DEFAULT | XRMRESOURCE | ALIAS |
- *                     ENUMERATIONSET
- *     val             value of the attribute, usually a string
- */
-
-void wmlAddResourceAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynResourceDefPtr   rdesc;          /* the resource descriptor */
-long                   xrmval;         /* XRMRESOURCE value */
-char                   **synlist;      /* ALIAS pointer list */
-
-
-/*
- * Acquire the current resource descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddResourceAttribute: NULL current object");
-    return;
-    }
-rdesc = (WmlSynResourceDefPtr) wml_cur_obj;
-if ( rdesc->validation != WmlResourceDefValid )
-    {
-    printf ("\nwmlAddResourceAttribute: %d not a resource descriptor",
-           rdesc->validation);
-    return;
-    }
-
-/*
- * Set the appropriate resource
- */
-switch ( attrid )
-    {
-    case TYPE:
-        rdesc->datatype = wmlAllocateString (val);
-       break;  
-    case INTERNALLITERAL:
-        rdesc->int_lit = wmlAllocateString (val);
-       break;  
-    case RESOURCELITERAL:
-        rdesc->resliteral = wmlAllocateString (val);
-       break;  
-    case ENUMERATIONSET:
-        rdesc->enumset = wmlAllocateString (val);
-       break;  
-    case DOCNAME:
-        rdesc->docname = wmlAllocateString (val);
-       break;  
-    case RELATED:
-        rdesc->related = wmlAllocateString (val);
-       break;  
-    case DEFAULT:
-        rdesc->dflt = wmlAllocateString (val);
-       break;  
-    case XRMRESOURCE:
-       xrmval = (long) val;
-       switch ( xrmval )
-           {
-           case ATTRTRUE:
-               rdesc->xrm_support = WmlAttributeTrue;
-               break;
-           case ATTRFALSE:
-               rdesc->xrm_support = WmlAttributeFalse;
-               break;
-           default:
-               printf
-                   ("\nwmlAddResourceAttribute: bad XRMRESOURCE value %d",
-                    xrmval);
-               return;
-               break;
-           }
-       break;
-    case ALIAS:
-       if ( rdesc->alias_cnt == 0 )
-           synlist = (char **) malloc (sizeof(char *));
-       else
-           synlist = (char **)
-               realloc (rdesc->alias_list,
-                        (rdesc->alias_cnt+1)*sizeof(char **));
-       synlist[rdesc->alias_cnt] = wmlAllocateString (val);
-       rdesc->alias_cnt += 1;
-       rdesc->alias_list = synlist;
-       break;
-    default:
-       printf ("\nwmlAddResourceAttribute: unknown attrid %d", attrid);
-       return;
-       break;
-    }
-
-return;
-}
-
-
-\f
-/*
- * Routine to set an attribute in a datatype descriptor.
- *
- * This routine sets the given attribute in the current object, which
- * must be a datatype descriptor. The current object and subobject do not
- * change.
- *
- *     attrid          oneof INTERNALLITERAL | DOCNAME | XRMRESOURCE
- *     val             value of the attribute, usually a string
- */
-
-void wmlAddDatatypeAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynDataTypeDefPtr   ddesc;          /* the datatype descriptor */
-long                   xrmval;         /* XRMRESOURCE value */
-
-
-/*
- * Acquire the current datatype descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddDatatypeAttribute: NULL current object");
-    return;
-    }
-ddesc = (WmlSynDataTypeDefPtr) wml_cur_obj;
-if ( ddesc->validation != WmlDataTypeDefValid )
-    {
-    printf ("\nwmlAddDatatypeAttribute: %d not a datatype descriptor",
-           ddesc->validation);
-    return;
-    }
-
-/*
- * Set the appropriate slot
- */
-switch ( attrid )
-    {
-    case INTERNALLITERAL:
-        ddesc->int_lit = wmlAllocateString (val);
-       break;  
-    case DOCNAME:
-        ddesc->docname = wmlAllocateString (val);
-       break;  
-    case XRMRESOURCE:
-       xrmval = (long) val;
-       switch ( xrmval )
-           {
-           case ATTRTRUE:
-               ddesc->xrm_support = WmlAttributeTrue;
-               break;
-           case ATTRFALSE:
-               ddesc->xrm_support = WmlAttributeFalse;
-               break;
-           default:
-               printf
-                   ("\nwmlAddDatatypeAttribute: bad XRMRESOURCE value %d",
-                    xrmval);
-               return;
-               break;
-           }
-       break;
-    default:
-       printf ("\nwmlAddDatatypeAttribute: unknown attrid %d", attrid);
-       return;
-       break;
-    }
-
-return;
-}
-
-
-\f
-/*
- * Routine to add a control specification to the current controls list.
- * The current object must be a controls list descriptor. The entry name
- * is added to the controls list. The new element becomes the current
- * subobject.
- *
- *     name            the name of the controlled class
- */
-
-void wmlAddCtrlListControl (name)
-    char                       *name;
-
-{
-    
-WmlSynCtrlListDefPtr   cdesc;          /* the controls list descriptor */
-WmlSynClassCtrlDefPtr  ctrlelm;        /* controls element */
-
-
-/*
- * Acquire the current controls list descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddCtrlListControl: NULL current object");
-    return;
-    }
-cdesc = (WmlSynCtrlListDefPtr) wml_cur_obj;
-if ( cdesc->validation != WmlCtrlListDefValid )
-    {
-    printf ("\nwmlAddCtrlListControl: %d not a controls list descriptor",
-           cdesc->validation);
-    return;
-    }
-
-/*
- * Add the control to the control list
- */
-ctrlelm = (WmlSynClassCtrlDefPtr) malloc (sizeof(WmlSynClassCtrlDef));
-ctrlelm->validation = WmlClassCtrlDefValid;
-ctrlelm->next = cdesc->controls;
-cdesc->controls = ctrlelm;
-ctrlelm->name = wmlAllocateString (name);
-
-/*
- * This becomes the current subobject
- */
-wml_cur_subobj = (ObjectPtr) ctrlelm;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to add an enumeration value to the current enumeration set
- * The current object must be an enumeration set descriptor. The entry name
- * is added to the the enumeration value list.
- *
- *     name            the name of the enumeration value
- */
-void wmlAddEnumSetValue (name)
-    char               *name;
-
-{
-
-WmlSynEnumSetDefPtr    esdesc;         /* the enumeration set descriptor */
-WmlSynEnumSetValDefPtr evelm;          /* EnumSet EnumValue element */
-
-/*
- * Acquire the current enumeration set descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddEnumSetValue: NULL current object");
-    return;
-    }
-esdesc = (WmlSynEnumSetDefPtr) wml_cur_obj;
-if ( esdesc->validation != WmlEnumSetDefValid )
-    {
-    printf ("\nwmlAddEnumSetValue: %d not an enumeration set descriptor",
-           esdesc->validation);
-    return;
-    }
-
-/*
- * Add the value to the set
- */
-evelm = (WmlSynEnumSetValDefPtr) malloc (sizeof(WmlSynEnumSetValDef));
-evelm->validation = WmlEnumValueDefValid;
-evelm->next = esdesc->values;
-esdesc->values = evelm;
-evelm->name = wmlAllocateString (name);
-
-/*
- * Becomes current subobject
- */
-wml_cur_subobj = (ObjectPtr) evelm;
-
-}
-
-
-\f
-/*
- * Routine to set an attribute in an enumeration value
- *
- * This routine sets the given attribute in the current object, which must
- * be an enumeration value descriptor. The current object does not change.
- *
- *     attrid          oneof ENUMLITERAL
- *     val             value of the attribute, usually a string
- */
-void wmlAddEnumValueAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynEnumValueDefPtr  evdesc;         /* the enumeration value descriptor */
-
-
-/*
- * Acquire the current enumeration value descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddEnumValueAttribute: NULL current object");
-    return;
-    }
-evdesc = (WmlSynEnumValueDefPtr) wml_cur_obj;
-if ( evdesc->validation != WmlEnumValueDefValid )
-    {
-    printf ("\nwmlAddEnumValueAttribute: %d not an enumeration value descriptor",
-           evdesc->validation);
-    return;
-    }
-
-/*
- * Set the appropriate slot
- */
-switch ( attrid )
-    {
-    case ENUMLITERAL:
-        evdesc->enumlit = wmlAllocateString (val);
-       break;  
-    default:
-       printf ("\nwmlAddEnumValueAttribute: unknown attrid %d", attrid);
-       return;
-       break;
-    }
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to set an attribute in a charset descriptor.
- *
- * This routine sets the given attribute in the current object, which
- * must be a charset descriptor. The current object and subobject do not
- * change.
- *
- *     attrid          oneof INTERNALLITERAL | ALIAS | XMSTRINGCHARSETNAME |
- *                     DIRECTION | PARSEDIRECTION | CHARACTERSIZE
- *     val             value of the attribute, usually a string
- */
-
-void wmlAddCharsetAttribute (attrid, val)
-    int                        attrid;
-    char               *val;
-
-{
-
-WmlSynCharSetDefPtr    ddesc;          /* the charset descriptor */
-char                   **synlist;      /* ALIAS pointer list */
-long                   atrval;         /* attribute value */
-
-
-/*
- * Acquire the current charset descriptor
- */
-if ( wml_cur_obj == NULL )
-    {
-    printf ("\nwmlAddCharSetAttribute: NULL current object");
-    return;
-    }
-ddesc = (WmlSynCharSetDefPtr) wml_cur_obj;
-if ( ddesc->validation != WmlCharSetDefValid )
-    {
-    printf ("\nwmlAddCharsetAttribute: %d not a CharSet descriptor",
-           ddesc->validation);
-    return;
-    }
-
-/*
- * Set the appropriate slot
- */
-switch ( attrid )
-    {
-    case INTERNALLITERAL:
-        ddesc->int_lit = wmlAllocateString (val);
-       break;  
-    case ALIAS:
-       if ( ddesc->alias_cnt == 0 )
-           synlist = (char **) malloc (sizeof(char *));
-       else
-           synlist = (char **)
-               realloc (ddesc->alias_list,
-                        (ddesc->alias_cnt+1)*sizeof(char **));
-       synlist[ddesc->alias_cnt] = wmlAllocateString (val);
-       ddesc->alias_cnt += 1;
-       ddesc->alias_list = synlist;
-       break;
-    case XMSTRINGCHARSETNAME:
-        ddesc->xms_name = wmlAllocateString (val);
-       break;  
-    case DIRECTION:
-       atrval = (long) val;
-       switch ( atrval )
-           {
-           case LEFTTORIGHT:
-               ddesc->direction = WmlCharSetDirectionLtoR;
-               break;
-           case RIGHTTOLEFT:
-               ddesc->direction = WmlCharSetDirectionRtoL;
-               break;
-           default:
-               printf
-                   ("\nwmlAddCharsetAttribute: bad DIRECTION value %d",
-                    atrval);
-               return;
-               break;
-           }
-       break;  
-    case PARSEDIRECTION:
-       atrval = (long) val;
-       switch ( atrval )
-           {
-           case LEFTTORIGHT:
-               ddesc->parsedirection = WmlCharSetDirectionLtoR;
-               break;
-           case RIGHTTOLEFT:
-               ddesc->parsedirection = WmlCharSetDirectionRtoL;
-               break;
-           default:
-               printf
-                   ("\nwmlAddCharsetAttribute: bad PARSEDIRECTION value %d",
-                    atrval);
-               return;
-               break;
-           }
-       break;  
-    case CHARACTERSIZE:
-       atrval = (long) val;
-       switch ( atrval )
-           {
-           case ONEBYTE:
-               ddesc->charsize = WmlCharSizeOneByte;
-               break;
-           case TWOBYTE:
-               ddesc->charsize = WmlCharSizeTwoByte;
-               break;
-           case MIXED1_2BYTE:
-               ddesc->charsize = WmlCharSizeMixed1_2Byte;
-               break;
-           default:
-               printf
-                   ("\nwmlAddCharsetAttribute: bad CHARACTERSIZE value %d",
-                    atrval);
-               return;
-               break;
-           }
-       break;  
-    default:
-       printf ("\nwmlAddCharsetAttribute: unknown attrid %d", attrid);
-       return;
-       break;
-    }
-
-return;
-}
-
-
-\f
-/*
- * The error reporting routine.
- *
- * For now, issue a very simple error message
- */
-
-void LexIssueError (tkn)
-    int                        tkn;
-
-{
-
-switch ( tkn )
-    {
-    case SEMICOLON:
-        printf ("\n Syntax error: expected a semicolon");
-       break;
-    case RBRACE:
-        printf ("\n Syntax error: expected a right brace");
-       break;
-    case 0:
-       printf ("\nSyntax error: Couldn't recognize a section name, probably fatal");
-       break;
-    }
-printf ("\n\tnear name='%s', value='%s', line %d",
-       yynameval, yystringval, wml_line_count);
-
-wml_err_count += 1;
-
-return;
-
-}
diff --git a/cde/osf/wml/wmluiltok.l b/cde/osf/wml/wmluiltok.l
deleted file mode 100644 (file)
index f5d38ba..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-%{
-/*
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
- */
-/*
- * HISTORY
- */
-
-#if defined(__STDC__)
-#include <string.h>
-#endif
-
-#ifndef XmConst
-#if (defined(__STDC__) && __STDC__)  ||  !defined( NO_CONST )
-#define XmConst const
-#else
-#define XmConst
-#endif /* __STDC__ */
-#endif /* XmConst */
-
-       /*
-        * lex program to construct token data for WML to generate token
-        * table data.
-        *
-        * stdin is the file Uil.y
-        *
-        * it is searched for each occurance of a line starting with '%token'
-        * when found various fields are extracted.
-        *
-        * when Uil.y has been scanned the collected data is written
-        * to stdout.
-        */
-
-%}
-
-%a 9999                                                /* transitions */
-
-%{
-
-#include <stdio.h>
-
-#define TRUE  1
-#define FALSE 0
-
-#define MAX_SYN 10
-
-#ifdef yywrap
-#undef yywrap
-#endif
-
-typedef struct _token
-{
-    char * name;
-    char * id;
-    char * class;
-    int    num_syn;
-    char * syn[MAX_SYN];
-}
-    TokenRec, *Token;
-
-TokenRec token[1000];
-TokenRec temp;
-
-void add_token ();
-
-int phase              = 0;
-int keyword_count;
-int line_num           = 0;
-int in_comment         = 0;
-int in_include         = 0;
-int in_token           = 0;
-int state              = 0;
-int used               = 0;
-
-%}
-
-
-
-%%
-
-
-[\n]           {
-                   if (in_token == TRUE)
-                   {
-                       add_token (&temp);
-                   }
-
-                   in_token = FALSE;
-                   line_num++;
-               }
-
-[ \t]          {                               /* swallow */
-               } 
-
-
-"/\*"          {                               /* swallow */
-               }
-
-
-^%token                {
-                   in_token = TRUE;
-                   state = 0;
-               }
-
-[a-zA-Z0-9_]+  {
-                   if (in_token == TRUE)
-                   {
-                       switch (state)
-                       {
-                           case 0:
-                               temp.name = (char *)
-                                   strcpy ((char *)
-                                       malloc (strlen ((XmConst char *)yytext) + 1), (XmConst char *)yytext);
-
-                               temp.num_syn = 0; 
-                               break;
-
-                           case 1:
-                               temp.id = (char *)
-                                   strcpy ((char *)
-                                       malloc (strlen ((XmConst char *)yytext) + 1), (XmConst char *)yytext);
-                               break;
-
-                           case 2:
-                               temp.class = (char *)
-                                   strcpy ((char *)
-                                       malloc (strlen ((XmConst char *)yytext) + 1), (XmConst char *)yytext);
-                               break;
-
-                           case 3:
-                               temp.syn[temp.num_syn] = (char *)
-                                   strcpy ((char *)
-                                       malloc (strlen ((XmConst char *)yytext) + 1), (XmConst char *)yytext);
-                               temp.num_syn++;
-
-                               if (temp.num_syn > MAX_SYN)
-                                   printf (
-                                       "ERROR, too many synonyms, line %d\n",
-                                       line_num);
-                               break;
-                       }
-
-                       state++;
-                   }
-               }
-
-.              {                               /* swallow */
-               }
-
-%%
-
-
-void
-add_token (t)                                  /* keep sorted by name */
-    Token t;
-{
-    int i, j, k;
-
-    for (j=0; j<used; j++)                     /* for each token */
-    {
-       if (strcmp (token[j].name, t->name) > 0)        /* goes here */
-       {
-           for (i=used++; i>j; i--)            /* make hole */
-               token[i] = token[i-1];
-
-           token[j] = *t;                      /* insert it */
-
-           return;
-       }
-    }
-
-    /*
-     * if we get there then it goes at the end of the list 
-     */
-
-    token[used++] = *t;
-}
-
-
-
-yywrap ()
-{
-    int i, j, k;
-
-    for (i=0; i<used; i++)
-        { 
-        printf ("%s %s %s\n", token[i].name, token[i].id, token[i].class);
-        }
-    return (1);
-}
diff --git a/cde/osf/wml/wmlutils.c b/cde/osf/wml/wmlutils.c
deleted file mode 100644 (file)
index 82036bd..0000000
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$XConsortium: wmlutils.c /main/8 1995/08/29 11:11:24 drk $"
-#endif
-#endif
-/*
-*  (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
-
-/*
- * This file contains utilities used by WML.
- */
-
-
-#include "wml.h"
-
-#if defined(__STDC__)
-#include <stdlib.h>
-#include <string.h>
-#endif
-#include <stdio.h>
-
-\f
-/*
- * Utility to allocate dynamic space for a string, and return the
- * dynamic copy. Produces a NULL on null input.
- */
-
-char *wmlAllocateString (stg)
-    char       *stg;
-
-{
-
-char           *dynstg;        /* the dynamic copy */
-
-
-if ( stg == NULL ) return NULL;
-
-dynstg = (char *) malloc (strlen(stg)+1);
-strcpy (dynstg, stg);
-return dynstg;
-
-}
-
-
-\f
-/*
- * Utility to convert a string to upper case. The conversion happens in
- * place, destroying the original string.
- */
-
-void wmlUpperCaseString (stg)
-    char       *stg;
-
-{
-
-int            ndx;            /* loop index */
-
-
-if ( stg == NULL ) return;
-for ( ndx=0 ; ndx<strlen(stg) ; ndx++ )
-    stg[ndx] = _upper (stg[ndx]);
-
-}
-
-
-\f
-/*
- * Routines for accessing and manipulating dynamic handle lists.
- */
-
-
-/*
- * Initialize a dynamic handle list. Allocate a vector of the given
- * size, and set the count and number used (0).
- *
- *     listptr         the list to be inited
- *     size            # entries in handle vector
- *     is_ordered      TRUE is list is to be ordered
- */
-
-void wmlInitHList (listptr, size, is_ordered)
-    DynamicHandleListDefPtr    listptr;
-    int                                size;
-    int                                is_ordered;
-
-{
-
-listptr->cnt = 0;
-listptr->max = size;
-listptr->ordered = is_ordered;
-listptr->hvec = (ObjectHandleDefPtr) malloc(size*sizeof(ObjectHandleDef));
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to resize a dynamic handle list. Increases the size if required,
- * but does nothing if the list is already big enough.
- *
- *     listptr         the dynamic list
- *     new_size        new list size
- */
-
-void wmlResizeHList (listptr, new_size)
-    DynamicHandleListDefPtr    listptr;
-    int                                new_size;
-
-{    
-
-ObjectHandleDefPtr     new_vec;        /* reallocated vector */
-
-
-if ( listptr->max >= new_size ) return;
-listptr->max = new_size;
-new_vec = (ObjectHandleDefPtr) realloc
-    (listptr->hvec, new_size*sizeof(ObjectHandleDef));
-listptr->hvec = new_vec;
-
-return;
-
-}
-
-
-\f
-/*
- * Routine to clear a dynamic handle list. It leaves the handle vector intact,
- * but frees all the allocated names. The count is reset to 0.
- * but does nothing if the list is already big enough.
- *
- *     listptr         the dynamic list
- */
-
-void wmlClearHList (listptr)
-    DynamicHandleListDefPtr    listptr;
-
-{    
-
-int            ndx;            /* current index in list */
-
-
-for ( ndx=0 ; ndx<listptr->cnt ; ndx++ )
-    {
-    free (listptr->hvec[ndx].objname);
-    listptr->hvec[ndx].objname = NULL;
-    }
-listptr->cnt = 0;
-
-return;
-
-}
-
-
-\f
-/*
- * Function to find a name in a dynamic list. This will function on both
- * ordered and unordered lists.
- *
- *     listptr         the dynamic list
- *     name            the name to look up in the list
- *
- * returns:
- *     >= 0            name found, index in list
- *     < 0             name not found
- */
-
-int wmlFindInHList (listptr, name)
-    DynamicHandleListDefPtr    listptr;
-    char                       *name;
-
-{
-
-int            ndx;            /* current index in list */
-int            londx;          /* low index */
-int            hindx;          /* high index */
-int            midndx;         /* midpoint index */
-int            cmpres;         /* strcmp result */
-
-
-/*
- * Binary search if ordered, brute force otherwise
- */
-if ( listptr->ordered )
-    {
-    for ( londx=0,hindx=listptr->cnt-1 ; hindx>=londx ; )
-       {
-       midndx = (londx+hindx) / 2;
-       cmpres = strcmp (name, listptr->hvec[midndx].objname);
-       if ( cmpres < 0 )
-           hindx = midndx - 1;
-       if ( cmpres > 0 )
-           londx = midndx + 1;
-       if ( cmpres == 0 )
-           return midndx;
-       }
-    return -1;
-    }
-else
-    {
-    for ( ndx=0 ; ndx<listptr->cnt ; ndx++ )
-       if ( strcmp(name,listptr->hvec[ndx].objname) == 0 )
-           return ndx;
-    return -1;
-    }
-
-}
-
-
-\f
-/*
- * Routine to insert an entry into a list. The insertion is ordered or
- * unordered depending on the way the list is marked. Unordered lists
- * insert at the end. This routine assumes no duplicates will be entered
- * in the list.
- *
- *     listptr         the list
- *     name            the name under which to insert
- *     obj             the object to insert
- */
-
-void wmlInsertInHList (listptr, name, obj)
-    DynamicHandleListDefPtr    listptr;
-    char                       *name;
-    ObjectPtr                  obj;
-
-{
-
-int            ndx;            /* current index in list */
-int            londx;          /* low index */
-int            hindx;          /* high index */
-int            midndx;         /* midpoint index */
-int            newndx;         /* new entry index */
-int            cmpres;         /* strcmp result */
-
-
-/*
- * Guarantee enough space in the list
- */
-wmlResizeHList (listptr, listptr->cnt+1);
-
-/*
- * Binary search and insert if ordered, brute force otherwise
- */
-if ( listptr->ordered )
-    {
-    if ( listptr->cnt == 0 )
-       {
-       listptr->hvec[0].objname = wmlAllocateString (name);
-       listptr->hvec[0].objptr = obj;
-       listptr->cnt += 1;
-       return;
-       }
-    for ( londx=0,hindx=listptr->cnt-1 ; hindx>=londx ; )
-       {
-       midndx = (londx+hindx) / 2;
-       cmpres = strcmp (name, listptr->hvec[midndx].objname);
-       if ( cmpres == 0 )
-           {
-           printf ("\nwmlInsertInHList: duplicate name '%s'found\n", name);
-           return;
-           }
-       if ( londx == hindx ) break;
-       if ( cmpres < 0 )
-           hindx = midndx - 1;
-       if ( cmpres > 0 )
-           londx = midndx + 1;
-       }
-    /*
-     * The new entry will go either at midndx or after midndx. Move down
-     * the vector appropriately.
-     */
-    if ( cmpres < 0 )
-       newndx = midndx;
-    else
-       newndx = midndx + 1;
-    for ( ndx=listptr->cnt-1 ; ndx>=newndx ; ndx-- )
-       {
-       listptr->hvec[ndx+1].objname = listptr->hvec[ndx].objname;
-       listptr->hvec[ndx+1].objptr = listptr->hvec[ndx].objptr;
-       }
-    listptr->hvec[newndx].objname = wmlAllocateString (name);
-    listptr->hvec[newndx].objptr = obj;
-    listptr->cnt += 1;
-    return;
-    }
-else
-    {
-    listptr->hvec[listptr->cnt].objname = wmlAllocateString (name);
-    listptr->hvec[listptr->cnt].objptr = obj;
-    listptr->cnt += 1;
-    return;
-    }
-
-}
-
-\f
-/*
- * Routine to insert an entry into a token list. The insertion is ordered.
- * This routine allows duplicates
- *
- *     listptr         the list
- *     name            the name under which to insert
- *     obj             the object to insert
- */
-void wmlInsertInKeyList (listptr, name, obj)
-    DynamicHandleListDefPtr    listptr;
-    char                       *name;
-    ObjectPtr                  obj;
-
-{
-  int          ndx;                              /* current index in list */
-  int          londx;                            /* low index */
-  int          hindx;                            /* high index */
-  int          midndx;                           /* midpoint index */
-  int          newndx;                           /* new entry index */
-  int          cmpres;                           /* strcmp result */
-
-  /*
-   * Guarantee enough space in the list
-   */
-  wmlResizeHList (listptr, listptr->cnt+1);
-
-  /*
-   * Binary search and insert
-   */
-  if ( listptr->cnt == 0 )
-    {
-      listptr->hvec[0].objname = wmlAllocateString (name);
-      listptr->hvec[0].objptr = obj;
-      listptr->cnt += 1;
-      return;
-    }
-  for ( londx=0,hindx=listptr->cnt-1 ; hindx>=londx ; )
-    {
-      midndx = (londx+hindx) / 2;
-      cmpres = strcmp (name, listptr->hvec[midndx].objname);
-      if ( londx == hindx ) break;
-      if ( cmpres < 0 )
-       hindx = midndx - 1;
-      if ( cmpres >= 0 )
-       londx = midndx + 1;
-    }
-  /*
-   * The new entry will go either at midndx or after midndx. Move down
-   * the vector appropriately.
-   */
-  if ( cmpres < 0 )
-    newndx = midndx;
-  else
-    newndx = midndx + 1;
-  for ( ndx=listptr->cnt-1 ; ndx>=newndx ; ndx-- )
-    {
-      listptr->hvec[ndx+1].objname = listptr->hvec[ndx].objname;
-      listptr->hvec[ndx+1].objptr = listptr->hvec[ndx].objptr;
-    }
-  listptr->hvec[newndx].objname = wmlAllocateString (name);
-  listptr->hvec[newndx].objptr = obj;
-  listptr->cnt += 1;
-  return;
-}
-
-\f
-/*
- * Indicate if a resource is in a resource reference list by returning its
- * reference pointer.
- */
-
-WmlClassResDefPtr wmlResolveResIsMember (resobj, resref)
-    WmlResourceDefPtr          resobj;
-    WmlClassResDefPtr          resref;
-
-{
-
-while ( resref != NULL )
-    {
-    if ( resref->act_resource == resobj ) return resref;
-    resref = resref->next;
-    }
-return NULL;
-
-}
-
-\f
-/*
- * Indicate if a child is in a child reference list by returning its
- * reference pointer.
- */
-
-WmlClassChildDefPtr wmlResolveChildIsMember (childobj, childref)
-    WmlChildDefPtr             childobj;
-    WmlClassChildDefPtr                childref;
-
-{
-
-while ( childref != NULL )
-    {
-    if ( childref->act_child == childobj ) return childref;
-    childref = childref->next;
-    }
-return NULL;
-
-}
-
-
diff --git a/cde/osf/xmbind/0040.xmbind b/cde/osf/xmbind/0040.xmbind
deleted file mode 100755 (executable)
index 6aec74f..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-#####################################################################
-###  File:              0040.xmbind
-###
-###  Default Location:  /usr/dt/config/Xsession.d/
-###
-###  Purpose:           Set XMBINDDIR directory to CDE 
-###                    default /usr/dt/lib/bindings
-###                     
-###  Description:
-###                     This script is invoked by means of the Xsession file
-###                     at user login. It sets a default value for the
-###                    environment variable XMBINDDIR.  Motif looks in the
-###                    directory specified by this variable for the 
-###                    xmbind.alias and virtual bindings files.
-###                    
-###
-###  Invoked by:        /usr/dt/bin/Xsession
-###
-###  Product:           @(#)Common Desktop Environment 1.0          
-###
-###  Note:              
-###
-###    The /usr/dt/config/Xsession.d/0040.dtims file is a
-###    factory-default file and will be unconditionally overwritten upon
-###    subsequent installation. To customize the XMBINDDIR value,
-###    copy this file to the configuration directory, 
-###    /etc/dt/config/Xsession.d and change that version
-###    of the file.
-###    
-###  Revision:          $XConsortium: 0040.xmbind /main/3 1995/07/14 09:40:09 drk $
-#####################################################################
-
-
-XMBINDDIR=/usr/dt/lib/bindings
-export XMBINDDIR
-
-##########################         eof       #####################
diff --git a/cde/osf/xmbind/Imakefile b/cde/osf/xmbind/Imakefile
deleted file mode 100644 (file)
index 28c73eb..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-XCOMM 
-XCOMM @OSF_COPYRIGHT@
-XCOMM COPYRIGHT NOTICE
-XCOMM Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
-XCOMM ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
-XCOMM the full copyright text.
-XCOMM 
-XCOMM 
-XCOMM HISTORY
-XCOMM 
-XCOMM   $XConsortium: Imakefile /main/8 1995/07/14 09:39:48 drk $
-
-#ifdef CdeImake
-
-# ifdef USLArchitecture
-#  if HasSharedLibraries
-EXTRA_LOAD_FLAGS = -z nodefs
-#  endif
-# endif
-
-#endif /* CdeImake */
-
-INCLUDES = -I. -I$(INCLUDESRC) -I$(MINCLUDESRC)
-       DEPLIBS1 = XmClientDepLibs
-LOCAL_LIBRARIES = XmClientLibs
-
-SRCS1= xmbind.c
-
-OBJS1= xmbind.o
-
-PROGRAMS = xmbind
-
-NormalLibraryObjectRule()
-
-MComplexProgramTarget_1(xmbind,$(LOCAL_LIBRARIES),NullParameter)
-
diff --git a/cde/osf/xmbind/README b/cde/osf/xmbind/README
deleted file mode 100644 (file)
index 8f853d0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/* $XConsortium: README /main/3 1996/07/15 13:56:01 drk $ */
-This directory contains the xmbind client.
-
-xmbind is used to set up the bindings between keys on the
-keyboard and Motif virtual keys.
-
-Normally mwm will do this on initialization. If you are not
-running mwm, or wish to change the bindings without restarting
-mwm, use xmbind.
-
-For more information see the xmbind and VirtualBindings man pages.
diff --git a/cde/osf/xmbind/xmbind.c b/cde/osf/xmbind/xmbind.c
deleted file mode 100644 (file)
index fb1345d..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* 
- *  @OSF_COPYRIGHT@
- *  COPYRIGHT NOTICE
- *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
- *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
- *  the full copyright text.
-*/ 
-/* 
- * HISTORY
-*/ 
-#ifdef REV_INFO
-#ifndef lint
-static char rcsid[] = "$TOG: xmbind.c /main/10 1997/06/18 17:34:48 samborn $"
-#endif
-#endif
-#include <stdio.h>
-#include <Xm/Xm.h>
-
-/* Internal routines "borrowed" from libXm.  Don't try this at home! */
-extern Boolean _XmVirtKeysLoadFileBindings(char *fileName, String *binding);
-extern int _XmVirtKeysLoadFallbackBindings(Display *display, String *binding);
-
-void main(argc, argv)
-    int argc;
-    char **argv;
-{
-    enum { XA_MOTIF_DEFAULT_BINDINGS, XA_MOTIF_BINDINGS };
-    static char *atom_names[] = {
-      "_MOTIF_DEFAULT_BINDINGS", "_MOTIF_BINDINGS" };
-
-    Atom atoms[XtNumber(atom_names)];
-    XtAppContext  app_context;
-    Display *display;
-    String bindings = NULL;
-
-    XtToolkitInitialize();
-    app_context = XtCreateApplicationContext();
-    display = XtOpenDisplay(app_context, NULL, argv[0], "Xmbind",
-                       NULL, 0, &argc, argv);
-    
-    if (display == NULL) {
-       fprintf(stderr, "%s:  Can't open display\n", argv[0]);
-       exit(1);
-    }
-
-    XInternAtoms(display, atom_names, XtNumber(atom_names), False, atoms);
-    if (argc == 2) {
-       if (_XmVirtKeysLoadFileBindings (argv[1], &bindings) == True) {
-           XDeleteProperty (display, RootWindow (display, 0),
-                            atoms[XA_MOTIF_DEFAULT_BINDINGS]);
-           XChangeProperty (display, RootWindow(display, 0),
-                            atoms[XA_MOTIF_BINDINGS],
-                            XA_STRING, 8, PropModeReplace,
-                            (unsigned char *)bindings, strlen(bindings));
-           XFlush (display);
-           XtFree (bindings);
-           exit(0);
-       }
-       else {
-           fprintf(stderr, "%s:  Can't open %s\n", argv[0], argv[1]);
-           exit(1);
-       }
-    }
-
-    XDeleteProperty (display, RootWindow (display, 0),
-                    atoms[XA_MOTIF_BINDINGS]);
-    XDeleteProperty (display, RootWindow (display, 0),
-                    atoms[XA_MOTIF_DEFAULT_BINDINGS]);
-
-    _XmVirtKeysLoadFallbackBindings (display, &bindings);
-
-    XFlush (display);
-    XtFree (bindings);
-   
-    exit(0);
-}
-
diff --git a/cde/util/progs/lndir.c b/cde/util/progs/lndir.c
deleted file mode 100644 (file)
index 8464b40..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-/*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these librararies and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
-/* $XConsortium: lndir.c /main/2 1996/11/01 10:11:58 drk $ */
-/* Create shadow link tree (after X11R4 script of the same name)
-   Mark Reinhold (mbr@lcs.mit.edu)/3 January 1990 */
-
-/* Copyright 1990, Massachusetts Institute of Technology
-
-   Permission to use, copy, modify, and distribute this program for any purpose
-   and without fee is hereby granted, provided that this copyright and
-   permission notice appear on all copies and supporting documentation, that
-   the name of MIT not be used in advertising or publicity pertaining to
-   distribution of this program without specific prior permission, and that
-   notice be given in supporting documentation that copying and distribution is
-   by permission of MIT.  MIT makes no representations about the suitability of
-   this software for any purpose.  It is provided "as is" without expressed or
-   implied warranty.
-*/
-
-/* From the original /bin/sh script:
-
-   Used to create a copy of the a directory tree that has links for all
-   non-directories (except those named RCS or SCCS).  If you are
-   building the distribution on more than one machine, you should use
-   this script.
-
-   If your master sources are located in /usr/local/src/X and you would like
-   your link tree to be in /usr/local/src/new-X, do the following:
-
-       %  mkdir /usr/local/src/new-X
-       %  cd /usr/local/src/new-X
-       %  lndir ../X
-*/
-
-#include <X11/Xos.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <errno.h>
-
-#ifndef X_NOT_POSIX
-#include <dirent.h>
-#else
-#ifdef SYSV
-#include <dirent.h>
-#else
-#ifdef USG
-#include <dirent.h>
-#else
-#include <sys/dir.h>
-#ifndef dirent
-#define dirent direct
-#endif
-#endif
-#endif
-#endif
-
-#ifdef X_NOT_STDC_ENV
-extern int errno;
-#endif
-
-int silent;
-
-void
-quit (code, fmt, a1, a2, a3)
-char *fmt;
-{
-    fprintf (stderr, fmt, a1, a2, a3);
-    putc ('\n', stderr);
-    exit (code);
-}
-
-void
-quiterr (code, s)
-char *s;
-{
-    perror (s);
-    exit (code);
-}
-
-void
-msg (fmt, a1, a2, a3)
-char *fmt;
-{
-    fprintf (stderr, fmt, a1, a2, a3);
-    putc ('\n', stderr);
-}
-
-
-/* Recursively create symbolic links from the current directory to the "from"
-   directory.  Assumes that files described by fs and ts are directories. */
-
-dodir (fn, fs, ts, rel)
-char *fn;                      /* name of "from" directory, either absolute or
-                                  relative to cwd */
-struct stat *fs, *ts;          /* stats for the "from" directory and cwd */
-int rel;                       /* if true, prepend "../" to fn before using */
-{
-    DIR *df;
-    struct dirent *dp;
-    char buf[MAXPATHLEN + 1], *p;
-    char symbuf[MAXPATHLEN + 1];
-    struct stat sb, sc;
-    int n_dirs;
-
-    if ((fs->st_dev == ts->st_dev) && (fs->st_ino == ts->st_ino)) {
-       msg ("%s: From and to directories are identical!", fn);
-       return 1;
-    }
-
-    if (rel)
-       strcpy (buf, "../");
-    else
-       buf[0] = '\0';
-    strcat (buf, fn);
-    
-    if (!(df = opendir (buf))) {
-       msg ("%s: Cannot opendir", buf);
-       return 1;
-    }
-
-    p = buf + strlen (buf);
-    *p++ = '/';
-    n_dirs = fs->st_nlink;
-    while (dp = readdir (df)) {
-       strcpy (p, dp->d_name);
-
-       if (n_dirs > 0) {
-           if (stat (buf, &sb) < 0) {
-               perror (buf);
-               continue;
-           }
-
-           if (sb.st_mode & S_IFDIR) {
-               /* directory */
-               n_dirs--;
-               if (dp->d_name[0] == '.' &&
-                   (dp->d_name[1] == '\0' || (dp->d_name[1] == '.' &&
-                                              dp->d_name[2] == '\0')))
-                   continue;
-               if (!strcmp (dp->d_name, "RCS"))
-                   continue;
-               if (!strcmp (dp->d_name, "SCCS"))
-                   continue;
-               if (!silent)
-                   printf ("%s:\n", buf);
-               if ((stat (dp->d_name, &sc) < 0) && (errno == ENOENT)) {
-                   if (mkdir (dp->d_name, 0777) < 0 ||
-                       stat (dp->d_name, &sc) < 0) {
-                       perror (dp->d_name);
-                       continue;
-                   }
-               }
-               if (readlink (dp->d_name, symbuf, sizeof(symbuf) - 1) >= 0) {
-                   msg ("%s: is a link instead of a directory\n", dp->d_name);
-                   continue;
-               }
-               if (chdir (dp->d_name) < 0) {
-                   perror (dp->d_name);
-                   continue;
-               }
-               dodir (buf, &sb, &sc, (buf[0] != '/'));
-               if (chdir ("..") < 0)
-                   quiterr (1, "..");
-               continue;
-           }
-       }
-
-       /* non-directory */
-       if (symlink (buf, dp->d_name) < 0) {
-           int saverrno = errno;
-           int symlen;
-           symlen = readlink(dp->d_name, symbuf, sizeof(symbuf) - 1);
-           errno = saverrno;
-           if (symlen > 0)
-               symbuf[symlen] = '\0';
-           if (symlen < 0 || strcmp(symbuf, buf))
-               perror (dp->d_name);
-       }
-    }
-
-    closedir (df);
-    return 0;
-}
-
-
-main (ac, av)
-int ac;
-char **av;
-{
-    char *fn, *tn;
-    struct stat fs, ts;
-
-    silent = 0;
-    if (ac > 1 && !strcmp(av[1], "-silent")) {
-       silent = 1;
-    }
-    if (ac < silent + 2 || ac > silent + 3)
-       quit (1, "usage: %s [-silent] fromdir [todir]", av[0]);
-
-    fn = av[silent + 1];
-    if (ac == silent + 3)
-       tn = av[silent + 2];
-    else
-       tn = ".";
-
-    /* to directory */
-    if (stat (tn, &ts) < 0)
-       quiterr (1, tn);
-    if (!(ts.st_mode & S_IFDIR))
-       quit (2, "%s: Not a directory", tn);
-    if (chdir (tn) < 0)
-       quiterr (1, tn);
-
-    /* from directory */
-    if (stat (fn, &fs) < 0)
-       quiterr (1, fn);
-    if (!(fs.st_mode & S_IFDIR))
-       quit (2, "%s: Not a directory", fn);
-
-    exit (dodir (fn, &fs, &ts, 0));
-}