|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/* $XConsortium: wml.h /main/9 1995/08/29 11:10:33 drk $ */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This file contains the structure and literal definitions required
|
|
Packit |
b099d7 |
* by the WML processor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if defined(__STDC__)
|
|
Packit |
b099d7 |
#include <stddef.h>
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
#include <stdio.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define TRUE 1
|
|
Packit |
b099d7 |
#define FALSE 0
|
|
Packit |
b099d7 |
#define SUCCESS 1
|
|
Packit |
b099d7 |
#define FAILURE 0
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Generic object pointer
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef char *ObjectPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* True and False for attributes, so setting is explicit
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlAttributeUnspecified 0
|
|
Packit |
b099d7 |
#define WmlAttributeTrue 1
|
|
Packit |
b099d7 |
#define WmlAttributeFalse 2
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Values of character set direction
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlCharSetDirectionLtoR 1
|
|
Packit |
b099d7 |
#define WmlCharSetDirectionRtoL 2
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Values of character set character size
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlCharSizeOneByte 1
|
|
Packit |
b099d7 |
#define WmlCharSizeTwoByte 2
|
|
Packit |
b099d7 |
#define WmlCharSizeMixed1_2Byte 3
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Upper case and lower case converters
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define _upper(c) ((c) >= 'a' && (c) <= 'z' ? (c) & 0x5F:(c))
|
|
Packit |
b099d7 |
#define _lower(c) ((c) >= 'A' && (c) <= 'Z' ? (c) | 0x20:(c))
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The Uil token classes which are dealt with WML. Matched to definitions
|
|
Packit |
b099d7 |
* in UilKeyDef.h, although this isn't required.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlTokenClassArgument 1
|
|
Packit |
b099d7 |
#define WmlTokenClassCharset 2
|
|
Packit |
b099d7 |
#define WmlTokenClassColor 3
|
|
Packit |
b099d7 |
#define WmlTokenClassEnumval 4
|
|
Packit |
b099d7 |
#define WmlTokenClassFont 5
|
|
Packit |
b099d7 |
#define WmlTokenClassIdentifier 6
|
|
Packit |
b099d7 |
#define WmlTokenClassKeyword 7
|
|
Packit |
b099d7 |
#define WmlTokenClassLiteral 8
|
|
Packit |
b099d7 |
#define WmlTokenClassReason 9
|
|
Packit |
b099d7 |
#define WmlTokenClassReserved 10
|
|
Packit |
b099d7 |
#define WmlTokenClassSpecial 11
|
|
Packit |
b099d7 |
#define WmlTokenClassUnused 12
|
|
Packit |
b099d7 |
#define WmlTokenClassClass 13
|
|
Packit |
b099d7 |
#define WmlTokenClassChild 14
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Structures for WML objects. Two kinds are created for each object
|
|
Packit |
b099d7 |
* recognized and built as a WML description is read:
|
|
Packit |
b099d7 |
* - A syntactic descriptor, which captures the information parse
|
|
Packit |
b099d7 |
* from the input in pretty much its raw form
|
|
Packit |
b099d7 |
* - A semantically resolved descriptor, in which pointers to
|
|
Packit |
b099d7 |
* other descriptors have been resolved, ordering is done,
|
|
Packit |
b099d7 |
* superclass inheritance is complete, etc.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Syntactic structures. These are constructred during input parse.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A dummy holding only a header. Allows access to the validation field.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* a unique validation code */
|
|
Packit |
b099d7 |
ObjectPtr rslvdef; /* the resolved object pointer */
|
|
Packit |
b099d7 |
} WmlSynDef, *WmlSynDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A class resource descriptor. This a subset of a full resource descriptor,
|
|
Packit |
b099d7 |
* which captures those elements which can be overridden in a class declaration
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlClassResDefValid 871253
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynClassResDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlClassResDefValid */
|
|
Packit |
b099d7 |
struct WmlSynClassResDefStruct
|
|
Packit |
b099d7 |
*next; /* next descriptor in chain */
|
|
Packit |
b099d7 |
char *name; /* resource name */
|
|
Packit |
b099d7 |
char *type; /* override type name */
|
|
Packit |
b099d7 |
char *dflt; /* override default value */
|
|
Packit |
b099d7 |
short int exclude; /* WmlAttributeTrue if to be excluded */
|
|
Packit |
b099d7 |
} WmlSynClassResDef, *WmlSynClassResDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A class child descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlClassChildDefValid 780344
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynClassChildDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlClassChildDefValid */
|
|
Packit |
b099d7 |
struct WmlSynClassChildDefStruct
|
|
Packit |
b099d7 |
*next; /* next descriptor in chain */
|
|
Packit |
b099d7 |
char *name; /* child name */
|
|
Packit |
b099d7 |
} WmlSynClassChildDef, *WmlSynClassChildDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A class controls descriptor. It contains elements which can be added
|
|
Packit |
b099d7 |
* to a controls reference.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define WmlClassCtrlDefValid 7132320
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynClassCtrlDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlClassCtrlDefValid */
|
|
Packit |
b099d7 |
struct WmlSynClassCtrlDefStruct
|
|
Packit |
b099d7 |
*next; /* next descriptor in chain */
|
|
Packit |
b099d7 |
char *name; /* controlled class name */
|
|
Packit |
b099d7 |
} WmlSynClassCtrlDef, *WmlSynClassCtrlDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A class structure. One exists for each Class statement in a WML
|
|
Packit |
b099d7 |
* description.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlClassDefValid 93741
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define WmlClassTypeMetaclass 1
|
|
Packit |
b099d7 |
#define WmlClassTypeWidget 2
|
|
Packit |
b099d7 |
#define WmlClassTypeGadget 3
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynClassDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlClassDefValid */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
short int type; /* from WmlClassType... */
|
|
Packit |
b099d7 |
short int dialog; /* TRUE if a dialog class (has
|
|
Packit |
b099d7 |
window manager decoration, etc) */
|
|
Packit |
b099d7 |
char *name; /* class name */
|
|
Packit |
b099d7 |
char *superclass; /* superclass name */
|
|
Packit |
b099d7 |
char *parentclass; /* parentclass name */
|
|
Packit |
b099d7 |
char *widgetclass; /* widget class name */
|
|
Packit |
b099d7 |
char *int_lit; /* internal literal name */
|
|
Packit |
b099d7 |
char *convfunc; /* convenience function name */
|
|
Packit |
b099d7 |
char *docname; /* name for docs */
|
|
Packit |
b099d7 |
char *ctrlmapto; /* resource controls map to */
|
|
Packit |
b099d7 |
short int alias_cnt; /* alias count */
|
|
Packit |
b099d7 |
char **alias_list; /* vector of aliass */
|
|
Packit |
b099d7 |
WmlSynClassCtrlDefPtr
|
|
Packit |
b099d7 |
controls; /* list of controlled classes */
|
|
Packit |
b099d7 |
WmlSynClassResDefPtr
|
|
Packit |
b099d7 |
resources; /* list of resources from input */
|
|
Packit |
b099d7 |
WmlSynClassChildDefPtr
|
|
Packit |
b099d7 |
children; /* list of automatic children */
|
|
Packit |
b099d7 |
} WmlSynClassDef, *WmlSynClassDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A controls list structure. One is created for each ControlsList statement
|
|
Packit |
b099d7 |
* in a WML description.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlCtrlListDefValid 621298
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynCtrlListDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlCtrlListDefValid */
|
|
Packit |
b099d7 |
struct WmlCtrlListDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* controls list name */
|
|
Packit |
b099d7 |
WmlSynClassCtrlDefPtr
|
|
Packit |
b099d7 |
controls; /* list of controlled classes */
|
|
Packit |
b099d7 |
} WmlSynCtrlListDef, *WmlSynCtrlListDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resource descriptor. One is created for each Resource statement
|
|
Packit |
b099d7 |
* in a WML description
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlResourceDefValid 310538
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define WmlResourceTypeArgument 1
|
|
Packit |
b099d7 |
#define WmlResourceTypeReason 2
|
|
Packit |
b099d7 |
#define WmlResourceTypeConstraint 3
|
|
Packit |
b099d7 |
#define WmlResourceTypeSubResource 4
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynResourceDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlResourceDefValid */
|
|
Packit |
b099d7 |
struct WmlResourceDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
short int type; /* from WmlResourceType... */
|
|
Packit |
b099d7 |
char *name; /* resource name */
|
|
Packit |
b099d7 |
char *datatype; /* resource data type */
|
|
Packit |
b099d7 |
char *int_lit; /* internal literal name */
|
|
Packit |
b099d7 |
char *resliteral; /* resource name literal */
|
|
Packit |
b099d7 |
char *enumset; /* enumeration set name */
|
|
Packit |
b099d7 |
char *docname; /* name for docs */
|
|
Packit |
b099d7 |
char *related; /* names related resource */
|
|
Packit |
b099d7 |
char *dflt; /* default value */
|
|
Packit |
b099d7 |
short int xrm_support; /* WmlAttributeTrue if can be
|
|
Packit |
b099d7 |
Xrm resource */
|
|
Packit |
b099d7 |
short int alias_cnt; /* alias count */
|
|
Packit |
b099d7 |
char **alias_list; /* vector of aliass */
|
|
Packit |
b099d7 |
} WmlSynResourceDef, *WmlSynResourceDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A child descriptor. One is created for each Child statement
|
|
Packit |
b099d7 |
* in a WML description
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlChildDefValid 229629
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynChildDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlResourceDefValid */
|
|
Packit |
b099d7 |
struct WmlChildDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* child name */
|
|
Packit |
b099d7 |
char *class; /* child class */
|
|
Packit |
b099d7 |
} WmlSynChildDef, *WmlSynChildDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A datatype descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlDataTypeDefValid 714210
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynDataTypeDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlDataTypeDefValid */
|
|
Packit |
b099d7 |
struct WmlDataTypeDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* data type name */
|
|
Packit |
b099d7 |
char *int_lit; /* internal literal name */
|
|
Packit |
b099d7 |
char *docname; /* name for docs */
|
|
Packit |
b099d7 |
short int xrm_support; /* WmlAttributeTrue if can be
|
|
Packit |
b099d7 |
Xrm resource */
|
|
Packit |
b099d7 |
} WmlSynDataTypeDef, *WmlSynDataTypeDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An enumeration set values descriptor, as it occurs in the list for
|
|
Packit |
b099d7 |
* an enumeration set descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlSynEnumSetValDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlEnumValueDefValid */
|
|
Packit |
b099d7 |
struct WmlSynEnumSetValDefStruct
|
|
Packit |
b099d7 |
*next; /* next descriptor in chain */
|
|
Packit |
b099d7 |
char *name; /* enumeration value name */
|
|
Packit |
b099d7 |
} WmlSynEnumSetValDef, *WmlSynEnumSetValDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An enumeration set descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlEnumSetDefValid 931184
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynEnumSetDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlEnumSetDefValid */
|
|
Packit |
b099d7 |
struct WmlEnumSetDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* enumeration set name */
|
|
Packit |
b099d7 |
char *datatype; /* enumeration set data type */
|
|
Packit |
b099d7 |
WmlSynEnumSetValDefPtr
|
|
Packit |
b099d7 |
values; /* list of values in set */
|
|
Packit |
b099d7 |
} WmlSynEnumSetDef, *WmlSynEnumSetDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An enumeration value descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlEnumValueDefValid 172938
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynEnumValueDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlEnumValueDefValid */
|
|
Packit |
b099d7 |
struct WmlEnumValueDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* enumeration value name */
|
|
Packit |
b099d7 |
char *enumlit; /* name of defining literal */
|
|
Packit |
b099d7 |
} WmlSynEnumValueDef, *WmlSynEnumValueDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A charset descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#define WmlCharSetDefValid 110983
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct WmlSynCharSetDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int validation; /* WmlCharSetDefValid */
|
|
Packit |
b099d7 |
struct WmlCharSetDefStruct
|
|
Packit |
b099d7 |
*rslvdef; /* resolved definition */
|
|
Packit |
b099d7 |
char *name; /* data type name */
|
|
Packit |
b099d7 |
char *int_lit; /* internal literal name */
|
|
Packit |
b099d7 |
char *xms_name; /* identifying XmString name */
|
|
Packit |
b099d7 |
short int direction; /* WmlCharSetDirection... */
|
|
Packit |
b099d7 |
short int parsedirection; /* WmlCharSetDirection... */
|
|
Packit |
b099d7 |
short int charsize; /* WmlCharSize... */
|
|
Packit |
b099d7 |
short int alias_cnt; /* alias count */
|
|
Packit |
b099d7 |
char **alias_list; /* vector of aliases */
|
|
Packit |
b099d7 |
} WmlSynCharSetDef, *WmlSynCharSetDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Data structures constructed during semantic validation. Each points
|
|
Packit |
b099d7 |
* as required to syntactic data structures. These are typically accessed
|
|
Packit |
b099d7 |
* from ordered pointer vectors.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A datatype descriptor. It extends the syntactic element by assigning
|
|
Packit |
b099d7 |
* a code to the descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlDataTypeDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynDataTypeDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
char *tkname; /* name for generating literals */
|
|
Packit |
b099d7 |
} WmlDataTypeDef, *WmlDataTypeDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A charset descriptor. It extends the syntactic element by assigning
|
|
Packit |
b099d7 |
* a code to the descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlCharSetDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynCharSetDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
char *tkname; /* name for generating literals */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
} WmlCharSetDef, *WmlCharSetDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A child descriptor. It extends the syntactic element by assigning
|
|
Packit |
b099d7 |
* a code and a pointer to the class to the descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlChildDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynChildDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
char *tkname; /* name for generating literals */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*class; /* class structure */
|
|
Packit |
b099d7 |
struct WmlClassChildDefStruct
|
|
Packit |
b099d7 |
*ref_ptr; /* used dynamically for search */
|
|
Packit |
b099d7 |
} WmlChildDef, *WmlChildDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An element in the values list of an enumeration set. These elements have
|
|
Packit |
b099d7 |
* separate lists in order to deal with the possibility of an enumeration
|
|
Packit |
b099d7 |
* value which is a member of more than one list.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlEnumSetValDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlEnumSetValDefStruct
|
|
Packit |
b099d7 |
*next; /* next value in list */
|
|
Packit |
b099d7 |
struct WmlEnumValueDefStruct
|
|
Packit |
b099d7 |
*value; /* value descriptor for element */
|
|
Packit |
b099d7 |
} WmlEnumSetValDef, *WmlEnumSetValDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resolved enumeration set descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlEnumSetDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynEnumSetDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
char *tkname; /* name for generating literals */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
WmlDataTypeDefPtr dtype_def; /* data type */
|
|
Packit |
b099d7 |
short int values_cnt; /* count of # of values in set */
|
|
Packit |
b099d7 |
WmlEnumSetValDefPtr
|
|
Packit |
b099d7 |
values; /* list of values in set */
|
|
Packit |
b099d7 |
} WmlEnumSetDef, *WmlEnumSetDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resolved enumeration value descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlEnumValueDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynEnumValueDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
} WmlEnumValueDef, *WmlEnumValueDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resource descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlResourceDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynResourceDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
char *tkname; /* name for generating literals */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
WmlDataTypeDefPtr dtype_def; /* data type for base definition */
|
|
Packit |
b099d7 |
WmlEnumSetDefPtr enumset_def; /* enumeration set if specified */
|
|
Packit |
b099d7 |
short int related_code; /* if non-0, the sym_code for the
|
|
Packit |
b099d7 |
related (count) argument */
|
|
Packit |
b099d7 |
short int xrm_support; /* if AttributeTrue, then the resource
|
|
Packit |
b099d7 |
can be set in Xrm. Resolved
|
|
Packit |
b099d7 |
from either explicit setting or
|
|
Packit |
b099d7 |
data type setting */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*ref_class; /* used for membership sort */
|
|
Packit |
b099d7 |
struct WmlClassResDefStruct
|
|
Packit |
b099d7 |
*ref_ptr; /* used dynamically for search */
|
|
Packit |
b099d7 |
} WmlResourceDef, *WmlResourceDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resource descriptor with overrides which is a member of the resource
|
|
Packit |
b099d7 |
* list of a class descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlClassResDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlClassResDefStruct
|
|
Packit |
b099d7 |
*next; /* next resource in list */
|
|
Packit |
b099d7 |
WmlResourceDefPtr act_resource; /* actual resource descriptor */
|
|
Packit |
b099d7 |
WmlDataTypeDefPtr over_dtype; /* overriding data type */
|
|
Packit |
b099d7 |
char *dflt; /* overriding default */
|
|
Packit |
b099d7 |
int exclude; /* WmlAttributeTrue if to be excluded */
|
|
Packit |
b099d7 |
} WmlClassResDef, *WmlClassResDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A child descriptor which is a member of the children
|
|
Packit |
b099d7 |
* list of a class descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlClassChildDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlClassChildDefStruct
|
|
Packit |
b099d7 |
*next; /* next child in list */
|
|
Packit |
b099d7 |
WmlChildDefPtr act_child; /* actual child descriptor */
|
|
Packit |
b099d7 |
} WmlClassChildDef, *WmlClassChildDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An element for the controls list of a resolved class descriptor
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlClassCtrlDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlClassCtrlDefStruct
|
|
Packit |
b099d7 |
*next; /* next control in list */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*ctrl; /* class being controlled */
|
|
Packit |
b099d7 |
} WmlClassCtrlDef, *WmlClassCtrlDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resolved class descriptor. It has a pointer to its superclass, and
|
|
Packit |
b099d7 |
* a resource list consisting of its inherited resources followed by
|
|
Packit |
b099d7 |
* its own resources.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlClassDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynClassDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*superclass; /* superclass structure */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*parentclass; /* parentclass structure */
|
|
Packit |
b099d7 |
char *tkname; /* name to be used in literals.
|
|
Packit |
b099d7 |
int_lit or name if no int_lit */
|
|
Packit |
b099d7 |
short int sym_code; /* code value for literals */
|
|
Packit |
b099d7 |
short int inherit_done; /* TRUE when inheritance complete */
|
|
Packit |
b099d7 |
WmlClassResDefPtr arguments; /* linked argument list */
|
|
Packit |
b099d7 |
WmlClassResDefPtr reasons; /* lined reason list */
|
|
Packit |
b099d7 |
WmlClassCtrlDefPtr controls; /* list of controlled classes.
|
|
Packit |
b099d7 |
Controls list references will
|
|
Packit |
b099d7 |
be expanded into this list. */
|
|
Packit |
b099d7 |
WmlClassChildDefPtr children; /* list of automatic children */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*variant; /* the gadget class for a widget */
|
|
Packit |
b099d7 |
struct WmlClassDefStruct
|
|
Packit |
b099d7 |
*nondialog; /* the non-dialog ancestor of a
|
|
Packit |
b099d7 |
dialog widget */
|
|
Packit |
b099d7 |
WmlResourceDefPtr ctrlmapto; /* the resource controls map to */
|
|
Packit |
b099d7 |
struct WmlClassCtrlDefStruct
|
|
Packit |
b099d7 |
*ref_ptr; /* used dynamically for search */
|
|
Packit |
b099d7 |
} WmlClassDef, *WmlClassDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A resolved controls list descriptor.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlCtrlListDefStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct WmlSynCtrlListDefStruct
|
|
Packit |
b099d7 |
*syndef; /* syntactic definition */
|
|
Packit |
b099d7 |
WmlClassCtrlDefPtr controls; /* list of controlled classes */
|
|
Packit |
b099d7 |
} WmlCtrlListDef, *WmlCtrlListDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Data structures used to locate and order objects in various ways.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Token structure used to create ordered token lists for generation of
|
|
Packit |
b099d7 |
* UilKeyTab.h. The token string is in the order vector.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlKeyWTokenStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int class; /* token class, WmlTokenClass... */
|
|
Packit |
b099d7 |
ObjectPtr objdef; /* object definition (resolved) */
|
|
Packit |
b099d7 |
} WmlKeyWToken, *WmlKeyWTokenPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A grammar token as obtained from the UIL grammar file (Uil.y)
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct WmlGrammarTokenStruct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int class; /* token class, WmlTokenClass... */
|
|
Packit |
b099d7 |
char *token; /* token name (literal) */
|
|
Packit |
b099d7 |
int val; /* token id as value */
|
|
Packit |
b099d7 |
} WmlGrammarToken, *WmlGrammarTokenPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A list element which allows association of a name with an object.
|
|
Packit |
b099d7 |
* Typically used to construct ordered lists.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
char *objname; /* object name */
|
|
Packit |
b099d7 |
ObjectPtr objptr; /* the object */
|
|
Packit |
b099d7 |
} ObjectHandleDef, *ObjectHandleDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* A dynamic handle element list, extensible by malloc'ing more space.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
typedef struct
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int cnt; /* # entries in use */
|
|
Packit |
b099d7 |
int max; /* max # entries available */
|
|
Packit |
b099d7 |
int ordered; /* TRUE if list is lexicographically
|
|
Packit |
b099d7 |
ordered by object name */
|
|
Packit |
b099d7 |
ObjectHandleDefPtr hvec; /* vector of handle entries */
|
|
Packit |
b099d7 |
} DynamicHandleListDef, *DynamicHandleListDefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Global declarations
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wml.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern int wml_err_count; /* total errors */
|
|
Packit |
b099d7 |
extern int wml_line_count; /* lines read from input */
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr
|
|
Packit |
b099d7 |
wml_synobj_ptr; /* syntactic object list */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_datatype_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_enumval_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_enumset_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_reason_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_arg_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_child_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_allclass_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_class_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_ctrlist_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_obj_charset_ptr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_tok_sens_ptr;
|
|
Packit |
b099d7 |
extern DynamicHandleListDefPtr wml_tok_insens_ptr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wmlutils.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern char *wmlAllocateString (); /* dynamic string copy */
|
|
Packit |
b099d7 |
extern void wmlUpperCaseString (); /* convert to upper case */
|
|
Packit |
b099d7 |
extern void wmlInitHList (); /* init dynamic list */
|
|
Packit |
b099d7 |
extern void wmlResizeHList (); /* resize a list */
|
|
Packit |
b099d7 |
extern void wmlClearHList (); /* clear a list for reuse */
|
|
Packit |
b099d7 |
extern int wmlFindInHList (); /* find name in list */
|
|
Packit |
b099d7 |
extern void wmlInsertInHList (); /* generic list insert */
|
|
Packit |
b099d7 |
extern void wmlInsertInKeyList (); /* specialized list insert */
|
|
Packit |
b099d7 |
extern WmlClassResDefPtr wmlResolveResIsMember ();
|
|
Packit |
b099d7 |
/* is resource in class? */
|
|
Packit |
b099d7 |
extern WmlClassChildDefPtr wmlResolveChildIsMember ();
|
|
Packit |
b099d7 |
/* is child in class? */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wmlsynbld.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern char yystringval[]; /* any string value */
|
|
Packit |
b099d7 |
extern char yynameval[]; /* any name (identifier) */
|
|
Packit |
b099d7 |
extern int yytknval1; /* terminal token value 1 */
|
|
Packit |
b099d7 |
extern int yytknval2; /* terminal token value 2 */
|
|
Packit |
b099d7 |
extern ObjectPtr wml_cur_obj; /* object being constructed */
|
|
Packit |
b099d7 |
extern ObjectPtr wml_cur_subobj; /* current subobject */
|
|
Packit |
b099d7 |
extern void wmlCreateClass ();
|
|
Packit |
b099d7 |
extern void wmlAddClassAttribute ();
|
|
Packit |
b099d7 |
extern void wmlAddClassResource ();
|
|
Packit |
b099d7 |
extern void wmlAddClassResourceAttribute ();
|
|
Packit |
b099d7 |
extern void wmlAddClassControl ();
|
|
Packit |
b099d7 |
extern void wmlAddCtrList ();
|
|
Packit |
b099d7 |
extern void wmlCreateResource ();
|
|
Packit |
b099d7 |
extern void wmlCreateDatatype ();
|
|
Packit |
b099d7 |
extern void wmlAddResourceAttribute ();
|
|
Packit |
b099d7 |
extern void wmlAddDatatypeAttribute ();
|
|
Packit |
b099d7 |
extern void wmlAddCtrListControl ();
|
|
Packit |
b099d7 |
extern void wmlCreateEnumSet ();
|
|
Packit |
b099d7 |
extern void wmlAddEnumSetValue ();
|
|
Packit |
b099d7 |
extern void wmlCreateEnumValue ();
|
|
Packit |
b099d7 |
extern void wmlAddEnumValueAttribute ();
|
|
Packit |
b099d7 |
extern void wmlCreateCharset ();
|
|
Packit |
b099d7 |
extern void wmlAddCharsetAttribute ();
|
|
Packit |
b099d7 |
extern void LexIssueError ();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wmlresolve.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern void wmlResolveDescriptors ();
|
|
Packit |
b099d7 |
extern void wmlMarkReferencePointers ();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wmlouth.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern void wmlOutputHFiles ();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Defined in wmloutdat.c
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern void wmlOutputDatFiles ();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Define in wmloutp1 or wmloutp2
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
extern void wmlOutput ();
|