|
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 |
/* "$TOG: wmlparse.y /main/10 1997/04/14 12:56:03 dbl $" */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* This file defines the grammar for the Motif Widget Meta Language (WML),
|
|
Packit |
b099d7 |
* the declarative language which describes the widget, gadgets, and
|
|
Packit |
b099d7 |
* resources in the UIL language.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
%{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include "wml.h"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if defined(__STDC__)
|
|
Packit |
b099d7 |
#include <string.h> /* for strcpy() */
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef XmConst
|
|
Packit |
b099d7 |
#if defined(__STDC__) || !defined( NO_CONST )
|
|
Packit |
b099d7 |
#define XmConst const
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
#define XmConst
|
|
Packit |
b099d7 |
#endif /* __STDC__ */
|
|
Packit |
b099d7 |
#endif /* XmConst */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#if !defined(__STDC__)
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Undefine NULL, since it is defined in stdio
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#undef NULL
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
%}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Tokens defining terminals of the language
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* token 0 is EOF, not defined here
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* WML statements
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token CLASS 1 /* CLASS statement */
|
|
Packit |
b099d7 |
%token RESOURCE 2 /* RESOURCE statement */
|
|
Packit |
b099d7 |
%token DATATYPE 3 /* DATATYPE statement */
|
|
Packit |
b099d7 |
%token CONTROLLIST 4 /* CONTROLLIST statement */
|
|
Packit |
b099d7 |
%token ENUMERATIONSET 5 /* ENUMERATIONSET statement */
|
|
Packit |
b099d7 |
%token ENUMERATIONVALUE 6 /* ENUMERATIONVALUE statement */
|
|
Packit |
b099d7 |
%token CHARACTERSET 7 /* CHARACTERSET statement */
|
|
Packit |
b099d7 |
%token CHILD 50 /* CHILD statement */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Statement attributes
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token DOCNAME 8 /* DOCNAME attribute */
|
|
Packit |
b099d7 |
%token CONVFUNC 9 /* CONVENIENCEFUNCTION attribute */
|
|
Packit |
b099d7 |
%token ALIAS 10 /* ALIAS attribute */
|
|
Packit |
b099d7 |
%token TYPE 11 /* TYPE attribute */
|
|
Packit |
b099d7 |
%token RESOURCELITERAL 12 /* RESOURCELITERAL attribute */
|
|
Packit |
b099d7 |
%token RELATED 13 /* RELATED attribute */
|
|
Packit |
b099d7 |
%token INTERNALLITERAL 14 /* INTERNALLITERAL attribute */
|
|
Packit |
b099d7 |
%token XRMRESOURCE 15 /* XRMRESOURCE attribute */
|
|
Packit |
b099d7 |
%token EXCLUDE 16 /* EXCLUDE attribute */
|
|
Packit |
b099d7 |
%token RESOURCES 17 /* RESOURCES attribute */
|
|
Packit |
b099d7 |
%token SUPERCLASS 18 /* SUPERCLASS attribute */
|
|
Packit |
b099d7 |
%token CONTROLS 19 /* CONTROLS attribute */
|
|
Packit |
b099d7 |
%token WIDGETCLASS 20 /* WIDGETCLASS attribute */
|
|
Packit |
b099d7 |
%token DIALOGCLASS 21 /* DIALOGCLASS attribute */
|
|
Packit |
b099d7 |
%token DEFAULT 22 /* DEFAULT attribute */
|
|
Packit |
b099d7 |
%token ENUMLITERAL 23 /* ENUMLITERAL attribute */
|
|
Packit |
b099d7 |
%token XMSTRINGCHARSETNAME 24 /* XMSTRINGCHARSETNAME attribute */
|
|
Packit |
b099d7 |
%token DIRECTION 25 /* DIRECTION attribute */
|
|
Packit |
b099d7 |
%token PARSEDIRECTION 26 /* PARSEDIRECTION attribute */
|
|
Packit |
b099d7 |
%token CHARACTERSIZE 27 /* CHARACTERSIZE attribute */
|
|
Packit |
b099d7 |
%token CTRLMAPSRESOURCE 28 /* CTRLMAPSRESOURCE attribute */
|
|
Packit |
b099d7 |
%token CHILDREN 51 /* CHILDREN attribute */
|
|
Packit |
b099d7 |
%token PARENTCLASS 52 /* PARENTCLASS attribute */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Other keywords
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token METACLASS 29 /* CLASS type */
|
|
Packit |
b099d7 |
%token WIDGET 30 /* CLASS type */
|
|
Packit |
b099d7 |
%token GADGET 31 /* CLASS type */
|
|
Packit |
b099d7 |
%token ARGUMENT 32 /* RESOURCE type */
|
|
Packit |
b099d7 |
%token REASON 33 /* RESOURCE type */
|
|
Packit |
b099d7 |
%token CONSTRAINT 34 /* RESOURCE type */
|
|
Packit |
b099d7 |
%token SUBRESOURCE 35 /* RESOURCE type */
|
|
Packit |
b099d7 |
%token ATTRTRUE 36 /* attribute value */
|
|
Packit |
b099d7 |
%token ATTRFALSE 37 /* attribute value */
|
|
Packit |
b099d7 |
%token LEFTTORIGHT 38 /* DIRECTION attribute */
|
|
Packit |
b099d7 |
%token RIGHTTOLEFT 39 /* DIRECTION attribute */
|
|
Packit |
b099d7 |
%token ONEBYTE 40 /* CHARACTERSIZE attribute */
|
|
Packit |
b099d7 |
%token TWOBYTE 41 /* CHARACTERSIZE attribute */
|
|
Packit |
b099d7 |
%token MIXED1_2BYTE 42 /* CHARACTERSIZE attribute */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Special characters
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token COLON 43
|
|
Packit |
b099d7 |
%token SEMICOLON 44
|
|
Packit |
b099d7 |
%token EQUALS 45
|
|
Packit |
b099d7 |
%token LBRACE 46
|
|
Packit |
b099d7 |
%token RBRACE 47
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* non-terminals
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token STRING 48 /* Any user literal */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Others
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
%token ERRORTOKEN 49 /* Any unrecognized character */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
%start statement_block_list
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
%%
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Productions of the WML grammar. All routines assume that current
|
|
Packit |
b099d7 |
* data structures are kept in globals. This works as the language has
|
|
Packit |
b099d7 |
* no recursive elements.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The language consists of blocks of statements. The blocks may occur
|
|
Packit |
b099d7 |
* in any order, and blocks of the same kind may be arbitrarily repeated.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
statement_block_list
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| statement_block_list statement_block
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
statement_block
|
|
Packit |
b099d7 |
: class_statement_block
|
|
Packit |
b099d7 |
| resource_statement_block
|
|
Packit |
b099d7 |
| child_statement_block
|
|
Packit |
b099d7 |
| datatype_statement_block
|
|
Packit |
b099d7 |
| ctrlist_statement_block
|
|
Packit |
b099d7 |
| enumset_statement_block
|
|
Packit |
b099d7 |
| enumval_statement_block
|
|
Packit |
b099d7 |
| charset_statement_block
|
|
Packit |
b099d7 |
| error { LexIssueError(0); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Statement blocks. Each statement block begins with its identifying
|
|
Packit |
b099d7 |
* keyword, then includes an arbitrary number of statements
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
class_statement_block
|
|
Packit |
b099d7 |
: CLASS
|
|
Packit |
b099d7 |
class_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_statement_list
|
|
Packit |
b099d7 |
: class_statement SEMICOLON
|
|
Packit |
b099d7 |
| class_statement_list class_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_statement_block
|
|
Packit |
b099d7 |
: RESOURCE
|
|
Packit |
b099d7 |
resource_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_statement_list
|
|
Packit |
b099d7 |
: resource_statement SEMICOLON
|
|
Packit |
b099d7 |
| resource_statement_list resource_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
child_statement_block
|
|
Packit |
b099d7 |
: CHILD
|
|
Packit |
b099d7 |
child_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
child_statement_list
|
|
Packit |
b099d7 |
: child_statement SEMICOLON
|
|
Packit |
b099d7 |
| child_statement_list child_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_statement_block
|
|
Packit |
b099d7 |
: DATATYPE
|
|
Packit |
b099d7 |
datatype_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_statement_list
|
|
Packit |
b099d7 |
: datatype_statement SEMICOLON
|
|
Packit |
b099d7 |
| datatype_statement_list datatype_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_statement_block
|
|
Packit |
b099d7 |
: CONTROLLIST
|
|
Packit |
b099d7 |
ctrlist_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_statement_list
|
|
Packit |
b099d7 |
: ctrlist_statement SEMICOLON
|
|
Packit |
b099d7 |
| ctrlist_statement_list ctrlist_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_statement_block
|
|
Packit |
b099d7 |
: ENUMERATIONSET
|
|
Packit |
b099d7 |
enumset_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_statement_list
|
|
Packit |
b099d7 |
: enumset_statement SEMICOLON
|
|
Packit |
b099d7 |
| enumset_statement_list enumset_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumval_statement_block
|
|
Packit |
b099d7 |
: ENUMERATIONVALUE
|
|
Packit |
b099d7 |
enumval_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumval_statement_list
|
|
Packit |
b099d7 |
: enumval_statement SEMICOLON
|
|
Packit |
b099d7 |
| enumval_statement_list enumval_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_statement_block
|
|
Packit |
b099d7 |
: CHARACTERSET
|
|
Packit |
b099d7 |
charset_statement_list
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_statement_list
|
|
Packit |
b099d7 |
: charset_statement SEMICOLON
|
|
Packit |
b099d7 |
| charset_statement_list charset_statement SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The CLASS statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
class_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
COLON
|
|
Packit |
b099d7 |
class_type
|
|
Packit |
b099d7 |
{ wmlCreateClass (yynameval, yytknval1); }
|
|
Packit |
b099d7 |
class_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_type
|
|
Packit |
b099d7 |
: METACLASS { yytknval1 = METACLASS; }
|
|
Packit |
b099d7 |
| WIDGET { yytknval1 = WIDGET; }
|
|
Packit |
b099d7 |
| GADGET { yytknval1 = GADGET; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE class_attribute_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_attribute_list
|
|
Packit |
b099d7 |
: class_attribute
|
|
Packit |
b099d7 |
| class_attribute_list class_attribute
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_attribute
|
|
Packit |
b099d7 |
: class_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddClassAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| boolean_class_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
boolean_attribute_value
|
|
Packit |
b099d7 |
{ wmlAddClassAttribute (yytknval1, yytknval2); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| class_resources SEMICOLON
|
|
Packit |
b099d7 |
| class_controls SEMICOLON
|
|
Packit |
b099d7 |
| class_children SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_attribute_name
|
|
Packit |
b099d7 |
: SUPERCLASS { yytknval1 = SUPERCLASS; }
|
|
Packit |
b099d7 |
| PARENTCLASS { yytknval1 = PARENTCLASS; }
|
|
Packit |
b099d7 |
| INTERNALLITERAL { yytknval1 = INTERNALLITERAL; }
|
|
Packit |
b099d7 |
| DOCNAME { yytknval1 = DOCNAME; }
|
|
Packit |
b099d7 |
| CONVFUNC { yytknval1 = CONVFUNC; }
|
|
Packit |
b099d7 |
| WIDGETCLASS { yytknval1 = WIDGETCLASS; }
|
|
Packit |
b099d7 |
| CTRLMAPSRESOURCE { yytknval1 = CTRLMAPSRESOURCE; }
|
|
Packit |
b099d7 |
| ALIAS { yytknval1 = ALIAS; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
boolean_class_attribute_name
|
|
Packit |
b099d7 |
: DIALOGCLASS { yytknval1 = DIALOGCLASS; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
boolean_attribute_value
|
|
Packit |
b099d7 |
: ATTRTRUE { yytknval2 = ATTRTRUE; }
|
|
Packit |
b099d7 |
| ATTRFALSE { yytknval2 = ATTRFALSE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resources
|
|
Packit |
b099d7 |
: RESOURCES class_resources_block
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resources_block
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE class_resource_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_list
|
|
Packit |
b099d7 |
: class_resource_element
|
|
Packit |
b099d7 |
| class_resource_list class_resource_element
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_element
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlAddClassResource (yynameval); }
|
|
Packit |
b099d7 |
class_resource_attributes
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_attributes
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE class_resource_attribute_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_attribute_list
|
|
Packit |
b099d7 |
: class_resource_attribute_element
|
|
Packit |
b099d7 |
| class_resource_attribute_list class_resource_attribute_element
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_attribute_element
|
|
Packit |
b099d7 |
: class_resource_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddClassResourceAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| boolean_class_resource_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
boolean_attribute_value
|
|
Packit |
b099d7 |
{ wmlAddClassResourceAttribute (yytknval1, yytknval2); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_resource_attribute_name
|
|
Packit |
b099d7 |
: TYPE { yytknval1 = TYPE; }
|
|
Packit |
b099d7 |
| DEFAULT { yytknval1 = DEFAULT; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
boolean_class_resource_attribute_name
|
|
Packit |
b099d7 |
: EXCLUDE { yytknval1 = EXCLUDE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_controls
|
|
Packit |
b099d7 |
: CONTROLS class_controls_block
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_controls_block
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE class_controls_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_controls_list
|
|
Packit |
b099d7 |
: class_controls_element
|
|
Packit |
b099d7 |
| class_controls_list class_controls_element
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_controls_element
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlAddClassControl (yynameval); }
|
|
Packit |
b099d7 |
class_controls_attributes
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_controls_attributes
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_children
|
|
Packit |
b099d7 |
: CHILDREN class_children_block
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_children_block
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE class_children_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_children_list
|
|
Packit |
b099d7 |
: class_children_element
|
|
Packit |
b099d7 |
| class_children_list class_children_element
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
class_children_element
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlAddClassChild (yynameval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The RESOURCE statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
resource_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
COLON
|
|
Packit |
b099d7 |
resource_type
|
|
Packit |
b099d7 |
{ wmlCreateResource (yynameval, yytknval1); }
|
|
Packit |
b099d7 |
resource_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_type
|
|
Packit |
b099d7 |
: ARGUMENT { yytknval1 = ARGUMENT; }
|
|
Packit |
b099d7 |
| REASON { yytknval1 = REASON; }
|
|
Packit |
b099d7 |
| CONSTRAINT { yytknval1 = CONSTRAINT; }
|
|
Packit |
b099d7 |
| SUBRESOURCE { yytknval1 = SUBRESOURCE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE resource_attribute_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_attribute_list
|
|
Packit |
b099d7 |
: resource_attribute
|
|
Packit |
b099d7 |
| resource_attribute_list resource_attribute
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_attribute
|
|
Packit |
b099d7 |
: resource_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddResourceAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| boolean_resource_resource_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
boolean_attribute_value
|
|
Packit |
b099d7 |
{ wmlAddResourceAttribute (yytknval1, yytknval2); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
resource_attribute_name
|
|
Packit |
b099d7 |
: TYPE { yytknval1 = TYPE; }
|
|
Packit |
b099d7 |
| RESOURCELITERAL { yytknval1 = RESOURCELITERAL; }
|
|
Packit |
b099d7 |
| ENUMERATIONSET { yytknval1 = ENUMERATIONSET; }
|
|
Packit |
b099d7 |
| INTERNALLITERAL { yytknval1 = INTERNALLITERAL; }
|
|
Packit |
b099d7 |
| RELATED { yytknval1 = RELATED; }
|
|
Packit |
b099d7 |
| DOCNAME { yytknval1 = DOCNAME; }
|
|
Packit |
b099d7 |
| DEFAULT { yytknval1 = DEFAULT; }
|
|
Packit |
b099d7 |
| ALIAS { yytknval1 = ALIAS; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
boolean_resource_resource_attribute_name
|
|
Packit |
b099d7 |
: XRMRESOURCE { yytknval1 = XRMRESOURCE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The CHILD statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
child_statement
|
|
Packit |
b099d7 |
: name COLON STRING
|
|
Packit |
b099d7 |
{ wmlCreateChild(yynameval, yystringval); }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* DATATYPE statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
datatype_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlCreateDatatype (yystringval); }
|
|
Packit |
b099d7 |
datatype_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE datatype_attribute_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_attribute_list
|
|
Packit |
b099d7 |
: datatype_attribute
|
|
Packit |
b099d7 |
| datatype_attribute_list datatype_attribute
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_attribute
|
|
Packit |
b099d7 |
: datatype_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddDatatypeAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
datatype_attribute_name
|
|
Packit |
b099d7 |
: INTERNALLITERAL { yytknval1 = INTERNALLITERAL; }
|
|
Packit |
b099d7 |
| DOCNAME { yytknval1 = DOCNAME; }
|
|
Packit |
b099d7 |
| XRMRESOURCE { yytknval1 = XRMRESOURCE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The CONTROLLIST statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
ctrlist_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlCreateOrAppendCtrlList (yynameval); }
|
|
Packit |
b099d7 |
ctrlist_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE ctrlist_controls_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_controls_list
|
|
Packit |
b099d7 |
: ctrlist_control
|
|
Packit |
b099d7 |
| ctrlist_controls_list ctrlist_control
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_control
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlAddCtrlListControl (yynameval); }
|
|
Packit |
b099d7 |
ctrlist_controls_attributes
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ctrlist_controls_attributes
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The ENUMERATIONSET statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
enumset_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
COLON
|
|
Packit |
b099d7 |
enumset_data_type
|
|
Packit |
b099d7 |
{ wmlCreateEnumSet (yynameval, yystringval); }
|
|
Packit |
b099d7 |
enumset_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_data_type
|
|
Packit |
b099d7 |
:
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE enumset_value_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_value_list
|
|
Packit |
b099d7 |
: enumset_value
|
|
Packit |
b099d7 |
| enumset_value_list enumset_value
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumset_value
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlAddEnumSetValue (yynameval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* The ENUMERATIONVALUE statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
enumval_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
COLON
|
|
Packit |
b099d7 |
{ wmlCreateEnumValue (yynameval); }
|
|
Packit |
b099d7 |
enumvalue_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumvalue_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE enumvalue_attributes_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumvalue_attributes_list
|
|
Packit |
b099d7 |
: enumvalue_attribute
|
|
Packit |
b099d7 |
| enumvalue_attributes_list enumvalue_attribute
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumvalue_attribute
|
|
Packit |
b099d7 |
: enumvalue_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddEnumValueAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
enumvalue_attribute_name
|
|
Packit |
b099d7 |
: ENUMLITERAL { yytknval1 = ENUMLITERAL; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* CHARACTERSET statement
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
charset_statement
|
|
Packit |
b099d7 |
: name
|
|
Packit |
b099d7 |
{ wmlCreateCharset (yystringval); }
|
|
Packit |
b099d7 |
charset_definition
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_definition
|
|
Packit |
b099d7 |
: /* empty */
|
|
Packit |
b099d7 |
| LBRACE RBRACE
|
|
Packit |
b099d7 |
| LBRACE charset_attribute_list RBRACE
|
|
Packit |
b099d7 |
| error { LexIssueError(RBRACE); } RBRACE
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_attribute_list
|
|
Packit |
b099d7 |
: charset_attribute
|
|
Packit |
b099d7 |
| charset_attribute_list charset_attribute
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_attribute
|
|
Packit |
b099d7 |
: charset_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
STRING
|
|
Packit |
b099d7 |
{ wmlAddCharsetAttribute (yytknval1, yystringval); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| predefined_charset_attribute_name
|
|
Packit |
b099d7 |
EQUALS
|
|
Packit |
b099d7 |
predefined_charset_attribute_value
|
|
Packit |
b099d7 |
{ wmlAddCharsetAttribute (yytknval1, yytknval2); }
|
|
Packit |
b099d7 |
SEMICOLON
|
|
Packit |
b099d7 |
| error { LexIssueError(SEMICOLON); } SEMICOLON
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
charset_attribute_name
|
|
Packit |
b099d7 |
: INTERNALLITERAL { yytknval1 = INTERNALLITERAL; }
|
|
Packit |
b099d7 |
| ALIAS { yytknval1 = ALIAS; }
|
|
Packit |
b099d7 |
| XMSTRINGCHARSETNAME { yytknval1 = XMSTRINGCHARSETNAME; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
predefined_charset_attribute_name
|
|
Packit |
b099d7 |
: DIRECTION { yytknval1 = DIRECTION; }
|
|
Packit |
b099d7 |
| PARSEDIRECTION { yytknval1 = PARSEDIRECTION; }
|
|
Packit |
b099d7 |
| CHARACTERSIZE { yytknval1 = CHARACTERSIZE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
predefined_charset_attribute_value
|
|
Packit |
b099d7 |
: LEFTTORIGHT { yytknval2 = LEFTTORIGHT; }
|
|
Packit |
b099d7 |
| RIGHTTOLEFT { yytknval2 = RIGHTTOLEFT; }
|
|
Packit |
b099d7 |
| ONEBYTE { yytknval2 = ONEBYTE; }
|
|
Packit |
b099d7 |
| TWOBYTE { yytknval2 = TWOBYTE; }
|
|
Packit |
b099d7 |
| MIXED1_2BYTE { yytknval2 = MIXED1_2BYTE; }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Other productions
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
name
|
|
Packit |
b099d7 |
: STRING
|
|
Packit |
b099d7 |
{ strcpy (yynameval, (XmConst char *)yystringval); }
|
|
Packit |
b099d7 |
;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
%%
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Dummmy error routine, since we output our own.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
int yyerror (s)
|
|
Packit |
b099d7 |
char *s;
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return 0;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include "wmllex.c"
|
|
Packit |
b099d7 |
|