Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
 * Automatically generated from the files:
7 7u83 3
 *	syntax.sid
2 7u83 4
 * and
7 7u83 5
 *	syntax.act
2 7u83 6
 * by:
7
 *	sid
8
 */
9
 
10
/* BEGINNING OF HEADER */
11
 
12
 
13
/*
14
    		 Crown Copyright (c) 1997
7 7u83 15
 
2 7u83 16
    This TenDRA(r) Computer Program is subject to Copyright
17
    owned by the United Kingdom Secretary of State for Defence
18
    acting through the Defence Evaluation and Research Agency
19
    (DERA).  It is made available to Recipients with a
20
    royalty-free licence for its use, reproduction, transfer
21
    to other parties and amendment for any purpose not excluding
22
    product development provided that any such use et cetera
23
    shall be deemed to be acceptance of the following conditions:-
7 7u83 24
 
2 7u83 25
        (1) Its Recipients shall ensure that this Notice is
26
        reproduced upon any copies or amended versions of it;
7 7u83 27
 
2 7u83 28
        (2) Any amended version of it shall be clearly marked to
29
        show both the nature of and the organisation responsible
30
        for the relevant amendment or amendments;
7 7u83 31
 
2 7u83 32
        (3) Its onward transfer from a recipient to another
33
        party shall be deemed to be that party's acceptance of
34
        these conditions;
7 7u83 35
 
2 7u83 36
        (4) DERA gives no warranty or assurance as to its
37
        quality or suitability for any purpose and DERA accepts
38
        no liability whatsoever in relation to any use to which
39
        it may be put.
40
*/
41
 
42
 
43
#include "config.h"
44
#include "errors.h"
45
#include "entry_ops.h"
46
#include "map_ops.h"
47
#include "msg_ops.h"
48
#include "name_ops.h"
49
#include "param_ops.h"
50
#include "error.h"
51
#include "lex.h"
52
#include "process.h"
53
#include "syntax.h"
54
#include "xalloc.h"
55
 
56
 
57
/*
58
    PARSER TYPES
59
 
60
    These types give the implementation of the types used in the syntax.
61
*/
62
 
63
typedef LIST ( ENTRY ) LIST_ENTRY ;
64
typedef LIST ( MAP ) LIST_MAP ;
65
typedef LIST ( MESSAGE ) LIST_MESSAGE ;
66
typedef LIST ( NAME ) LIST_NAME ;
67
typedef LIST ( PARAM ) LIST_PARAM ;
68
typedef LIST ( PROPERTY ) LIST_PROPERTY ;
69
 
70
 
71
/*
72
    COUNTER VARIABLE
73
 
74
    This variable is used to keep count of the position in a name or
75
    parameter list.
76
*/
77
 
78
static int counter = 0 ;
79
 
80
 
81
/*
82
    FIND A NAME
83
 
84
    This routine searches the name list p for an identifier matching id.
85
    The null name is returned if no matching name is found.
86
*/
87
 
88
static NAME find_name
7 7u83 89
    ( LIST ( NAME ) p, string id )
2 7u83 90
{
91
    while ( !IS_NULL_list ( p ) ) {
92
	NAME a = DEREF_name ( HEAD_list ( p ) ) ;
93
	string nm = DEREF_string ( name_id ( a ) ) ;
94
	if ( streq ( nm, id ) ) return ( a ) ;
95
	p = TAIL_list ( p ) ;
96
    }
97
    return ( NULL_name ) ;
98
}
99
 
100
 
101
/*
102
    FIND A PARAMETER
103
 
104
    This routine searches the parameter list p for an identifier matching
105
    id.  The null parameter is returned if no matching parameter is found.
106
*/
107
 
108
static PARAM find_param
7 7u83 109
    ( LIST ( PARAM ) p, string id )
2 7u83 110
{
111
    while ( !IS_NULL_list ( p ) ) {
112
	PARAM a = DEREF_param ( HEAD_list ( p ) ) ;
113
	string nm = DEREF_string ( param_name ( a ) ) ;
114
	if ( streq ( nm, id ) ) return ( a ) ;
115
	p = TAIL_list ( p ) ;
116
    }
117
    return ( NULL_param ) ;
118
}
119
 
120
 
121
/*
122
    COMPILATION MODE
123
 
124
    We allow unreached code and switch off the variable analysis in the
125
    automatically generated sections.
126
*/
127
 
128
#if FS_TENDRA
129
#pragma TenDRA begin
130
#pragma TenDRA variable analysis off
131
#ifndef OLD_PRODUCER
132
#pragma TenDRA unreachable code allow
133
#endif
134
#endif
135
 
136
 
137
 
138
/* BEGINNING OF FUNCTION DECLARATIONS */
139
 
7 7u83 140
static void ZRparam_Hlist(LIST_PARAM *);
141
static void ZRname_Hlist(LIST_NAME *, LIST_NAME *, LIST_NAME *);
142
static void ZRname_Hseq(LIST_NAME *, LIST_NAME *, LIST_NAME *);
143
static void ZRprops_Hlist(LIST_PROPERTY *);
144
static void ZRmap_Hlist(LIST_PARAM, LIST_MAP *);
145
static void ZRentry(ENTRY *);
146
extern void read_errors(void);
147
static void ZRmessage_Hlist(LIST_PARAM, LIST_MESSAGE *);
148
static void ZRsignature(LIST_PARAM *);
149
static void ZRentries_Hlist(LIST_ENTRY *);
2 7u83 150
 
151
/* BEGINNING OF STATIC VARIABLES */
152
 
153
 
154
/* BEGINNING OF FUNCTION DEFINITIONS */
155
 
156
static void
7 7u83 157
ZRparam_Hlist(LIST_PARAM *ZOp)
2 7u83 158
{
159
    LIST_PARAM ZIp;
160
 
161
    if ((CURRENT_TERMINAL) == 26) {
162
	return;
163
    }
164
    {
165
	string ZIa;
166
	TYPE ZIt;
167
	string ZIb;
168
	PARAM ZIc;
169
	LIST_PARAM ZIq;
170
 
171
	switch (CURRENT_TERMINAL) {
172
	  case 0:
173
	    {
174
 
175
    ZIa = xstrcpy ( token_buff ) ;
176
	    }
177
	    break;
178
	  default:
179
	    goto ZL1;
180
	}
181
	ADVANCE_LEXER;
182
	{
183
 
184
    NAME n = find_name ( all_types, (ZIa) ) ;
185
    if ( IS_NULL_name ( n ) ) {
186
	error ( ERROR_SERIOUS, "Type '%s' not defined", (ZIa) ) ;
187
	MAKE_name_basic ( (ZIa), 0, n ) ;
188
    }
189
    (ZIt) = n ;
190
	}
191
	switch (CURRENT_TERMINAL) {
192
	  case 16:
193
	    break;
194
	  default:
195
	    goto ZL1;
196
	}
197
	ADVANCE_LEXER;
198
	switch (CURRENT_TERMINAL) {
199
	  case 0:
200
	    {
201
 
202
    ZIb = xstrcpy ( token_buff ) ;
203
	    }
204
	    break;
205
	  default:
206
	    goto ZL1;
207
	}
208
	ADVANCE_LEXER;
209
	{
210
 
211
    MAKE_param_basic ( (ZIt), (ZIb), counter, (ZIc) ) ;
212
    counter++ ;
213
	}
214
	{
215
	    switch (CURRENT_TERMINAL) {
216
	      case 17:
217
		{
218
		    ADVANCE_LEXER;
219
		    ZRparam_Hlist (&ZIq);
220
		    if ((CURRENT_TERMINAL) == 26) {
221
			RESTORE_LEXER;
222
			goto ZL1;
223
		    }
224
		}
225
		break;
226
	      default:
227
		{
228
		    {
229
 
230
    (ZIq) = NULL_list ( PARAM ) ;
231
		    }
232
		}
233
		break;
234
	    }
235
	}
236
	{
237
 
238
    string id = DEREF_string ( param_name ( (ZIc) ) ) ;
239
    PARAM b = find_param ( (ZIq), id ) ;
240
    if ( !IS_NULL_param ( b ) ) {
241
	error ( ERROR_SERIOUS, "Parameter '%s' defined twice", id ) ;
242
    }
243
    CONS_param ( (ZIc), (ZIq), (ZIp) ) ;
244
	}
245
    }
246
    goto ZL0;
247
  ZL1:;
248
    SAVE_LEXER (26);
249
    return;
250
  ZL0:;
251
    *ZOp = ZIp;
252
}
253
 
254
static void
7 7u83 255
ZRname_Hlist(LIST_NAME *ZOp, LIST_NAME *ZOq, LIST_NAME *ZOr)
2 7u83 256
{
257
    LIST_NAME ZIp;
258
    LIST_NAME ZIq;
259
    LIST_NAME ZIr;
260
 
261
    switch (CURRENT_TERMINAL) {
262
      case 0:
263
	{
264
	    ZRname_Hseq (&ZIp, &ZIq, &ZIr);
265
	    if ((CURRENT_TERMINAL) == 26) {
266
		RESTORE_LEXER;
267
		goto ZL1;
268
	    }
269
	}
270
	break;
271
      default:
272
	{
273
	    {
274
 
275
    (ZIp) = NULL_list ( NAME ) ;
276
	    }
277
	    {
278
 
279
    (ZIq) = NULL_list ( NAME ) ;
280
	    }
281
	    {
282
 
283
    (ZIr) = NULL_list ( NAME ) ;
284
	    }
285
	}
286
	break;
287
      case 26:
288
	return;
289
    }
290
    goto ZL0;
291
  ZL1:;
292
    SAVE_LEXER (26);
293
    return;
294
  ZL0:;
295
    *ZOp = ZIp;
296
    *ZOq = ZIq;
297
    *ZOr = ZIr;
298
}
299
 
300
static void
7 7u83 301
ZRname_Hseq(LIST_NAME *ZOp, LIST_NAME *ZOq, LIST_NAME *ZOr)
2 7u83 302
{
303
    LIST_NAME ZIp;
304
    LIST_NAME ZIq;
305
    LIST_NAME ZIr;
306
 
307
    if ((CURRENT_TERMINAL) == 26) {
308
	return;
309
    }
310
    {
311
	string ZIa;
312
	NAME ZIn;
313
	NAME ZIm;
314
	NAME ZIk;
315
	LIST_NAME ZIp1;
316
	LIST_NAME ZIq1;
317
	LIST_NAME ZIr1;
318
 
319
	switch (CURRENT_TERMINAL) {
320
	  case 0:
321
	    {
322
 
323
    ZIa = xstrcpy ( token_buff ) ;
324
	    }
325
	    break;
326
	  default:
327
	    goto ZL1;
328
	}
329
	ADVANCE_LEXER;
330
	{
331
 
332
    MAKE_name_basic ( (ZIa), counter, (ZIn) ) ;
333
    counter++ ;
334
	}
335
	{
336
	    switch (CURRENT_TERMINAL) {
337
	      case 18:
338
		{
339
		    string ZIb;
340
		    NAME ZIk1;
341
 
342
		    ADVANCE_LEXER;
343
		    switch (CURRENT_TERMINAL) {
344
		      case 0:
345
			{
346
 
347
    ZIb = xstrcpy ( token_buff ) ;
348
			}
349
			break;
350
		      default:
351
			goto ZL1;
352
		    }
353
		    ADVANCE_LEXER;
354
		    {
355
 
356
    MAKE_name_basic ( (ZIb), 0, (ZIm) ) ;
357
		    }
358
		    {
359
			switch (CURRENT_TERMINAL) {
360
			  case 19:
361
			    {
362
				string ZIc;
363
 
364
				ADVANCE_LEXER;
365
				switch (CURRENT_TERMINAL) {
366
				  case 0:
367
				    {
368
 
369
    ZIc = xstrcpy ( token_buff ) ;
370
				    }
371
				    break;
372
				  default:
373
				    goto ZL1;
374
				}
375
				ADVANCE_LEXER;
376
				{
377
 
378
    MAKE_name_basic ( (ZIc), 0, (ZIk1) ) ;
379
				}
380
			    }
381
			    break;
382
			  default:
383
			    {
384
				ZIk1 = ZIm;
385
			    }
386
			    break;
387
			}
388
		    }
389
		    ZIk = ZIk1;
390
		}
391
		break;
392
	      default:
393
		{
394
		    ZIm = ZIn;
395
		    ZIk = ZIn;
396
		}
397
		break;
398
	    }
399
	}
400
	{
401
	    switch (CURRENT_TERMINAL) {
402
	      case 17:
403
		{
404
		    ADVANCE_LEXER;
405
		    ZRname_Hseq (&ZIp1, &ZIq1, &ZIr1);
406
		    if ((CURRENT_TERMINAL) == 26) {
407
			RESTORE_LEXER;
408
			goto ZL1;
409
		    }
410
		}
411
		break;
412
	      default:
413
		{
414
		    {
415
 
416
    (ZIp1) = NULL_list ( NAME ) ;
417
		    }
418
		    {
419
 
420
    (ZIq1) = NULL_list ( NAME ) ;
421
		    }
422
		    {
423
 
424
    (ZIr1) = NULL_list ( NAME ) ;
425
		    }
426
		}
427
		break;
428
	    }
429
	}
430
	{
431
 
432
    string id = DEREF_string ( name_id ( (ZIn) ) ) ;
433
    NAME b = find_name ( (ZIp1), id ) ;
434
    if ( !IS_NULL_name ( b ) ) {
435
	error ( ERROR_SERIOUS, "Name '%s' given twice in list", id ) ;
436
    }
437
    CONS_name ( (ZIn), (ZIp1), (ZIp) ) ;
438
	}
439
	{
440
 
441
    CONS_name ( (ZIm), (ZIq1), (ZIq) ) ;
442
	}
443
	{
444
 
445
    CONS_name ( (ZIk), (ZIr1), (ZIr) ) ;
446
	}
447
    }
448
    goto ZL0;
449
  ZL1:;
450
    SAVE_LEXER (26);
451
    return;
452
  ZL0:;
453
    *ZOp = ZIp;
454
    *ZOq = ZIq;
455
    *ZOr = ZIr;
456
}
457
 
458
static void
7 7u83 459
ZRprops_Hlist(LIST_PROPERTY *ZOp)
2 7u83 460
{
461
    LIST_PROPERTY ZIp;
462
 
463
    if ((CURRENT_TERMINAL) == 26) {
464
	return;
465
    }
466
    {
467
	string ZIa;
468
	PROPERTY ZIb;
469
	LIST_PROPERTY ZIq;
470
 
471
	switch (CURRENT_TERMINAL) {
472
	  case 0:
473
	    {
474
 
475
    ZIa = xstrcpy ( token_buff ) ;
476
	    }
477
	    break;
478
	  default:
479
	    goto ZL1;
480
	}
481
	ADVANCE_LEXER;
482
	{
483
 
484
    NAME n = find_name ( all_props, (ZIa) ) ;
485
    if ( IS_NULL_name ( n ) ) {
486
	error ( ERROR_SERIOUS, "Property '%s' not defined", (ZIa) ) ;
487
	MAKE_name_basic ( (ZIa), 0, n ) ;
488
    }
489
    (ZIb) = n ;
490
	}
491
	{
492
	    switch (CURRENT_TERMINAL) {
493
	      case 17:
494
		{
495
		    ADVANCE_LEXER;
496
		    ZRprops_Hlist (&ZIq);
497
		    if ((CURRENT_TERMINAL) == 26) {
498
			RESTORE_LEXER;
499
			goto ZL1;
500
		    }
501
		}
502
		break;
503
	      default:
504
		{
505
		    {
506
 
507
    (ZIq) = NULL_list ( PROPERTY ) ;
508
		    }
509
		}
510
		break;
511
	    }
512
	}
513
	{
514
 
515
    CONS_name ( (ZIb), (ZIq), (ZIp) ) ;
516
	}
517
    }
518
    goto ZL0;
519
  ZL1:;
520
    SAVE_LEXER (26);
521
    return;
522
  ZL0:;
523
    *ZOp = ZIp;
524
}
525
 
526
static void
7 7u83 527
ZRmap_Hlist(LIST_PARAM ZIs, LIST_MAP *ZOp)
2 7u83 528
{
529
    LIST_MAP ZIp;
530
 
531
    switch (CURRENT_TERMINAL) {
532
      case 5:
533
	{
534
	    string ZIa;
535
	    KEY ZIk;
536
	    LIST_MESSAGE ZIm1;
537
	    LIST_MESSAGE ZIm2;
538
	    MAP ZIn;
539
	    LIST_MAP ZIq;
540
 
541
	    ADVANCE_LEXER;
542
	    switch (CURRENT_TERMINAL) {
543
	      case 20:
544
		break;
545
	      default:
546
		goto ZL1;
547
	    }
548
	    ADVANCE_LEXER;
549
	    switch (CURRENT_TERMINAL) {
550
	      case 0:
551
		{
552
 
553
    ZIa = xstrcpy ( token_buff ) ;
554
		}
555
		break;
556
	      default:
557
		goto ZL1;
558
	    }
559
	    ADVANCE_LEXER;
560
	    switch (CURRENT_TERMINAL) {
561
	      case 21:
562
		break;
563
	      default:
564
		goto ZL1;
565
	    }
566
	    ADVANCE_LEXER;
567
	    {
568
 
569
    NAME n = find_name ( all_keys, (ZIa) ) ;
570
    if ( IS_NULL_name ( n ) ) {
571
	error ( ERROR_SERIOUS, "Key '%s' not defined", (ZIa) ) ;
572
    }
573
    (ZIk) = n ;
574
	    }
575
	    ZRmessage_Hlist (ZIs, &ZIm1);
576
	    {
577
		switch (CURRENT_TERMINAL) {
578
		  case 19:
579
		    {
580
			ADVANCE_LEXER;
581
			ZRmessage_Hlist (ZIs, &ZIm2);
582
			if ((CURRENT_TERMINAL) == 26) {
583
			    RESTORE_LEXER;
584
			    goto ZL1;
585
			}
586
		    }
587
		    break;
588
		  default:
589
		    {
590
			ZIm2 = ZIm1;
591
		    }
592
		    break;
593
		  case 26:
594
		    RESTORE_LEXER;
595
		    goto ZL1;
596
		}
597
	    }
598
	    {
599
 
600
    MAKE_map_basic  ( (ZIk), (ZIm1), (ZIm2), (ZIn) ) ;
601
	    }
602
	    ZRmap_Hlist (ZIs, &ZIq);
603
	    if ((CURRENT_TERMINAL) == 26) {
604
		RESTORE_LEXER;
605
		goto ZL1;
606
	    }
607
	    {
608
 
609
    CONS_map ( (ZIn), (ZIq), (ZIp) ) ;
610
	    }
611
	}
612
	break;
613
      default:
614
	{
615
	    {
616
 
617
    (ZIp) = NULL_list ( MAP ) ;
618
	    }
619
	}
620
	break;
621
      case 26:
622
	return;
623
    }
624
    goto ZL0;
625
  ZL1:;
626
    SAVE_LEXER (26);
627
    return;
628
  ZL0:;
629
    *ZOp = ZIp;
630
}
631
 
632
static void
7 7u83 633
ZRentry(ENTRY *ZOe)
2 7u83 634
{
635
    ENTRY ZIe;
636
 
637
    if ((CURRENT_TERMINAL) == 26) {
638
	return;
639
    }
640
    {
641
	string ZIa;
642
	LIST_PARAM ZIs;
643
	string ZIb;
644
	USAGE ZIu;
645
	USAGE ZIv;
646
	LIST_PROPERTY ZIp;
647
	LIST_MAP ZIm;
648
 
649
	switch (CURRENT_TERMINAL) {
650
	  case 0:
651
	    {
652
 
653
    ZIa = xstrcpy ( token_buff ) ;
654
	    }
655
	    break;
656
	  default:
657
	    goto ZL1;
658
	}
659
	ADVANCE_LEXER;
660
	switch (CURRENT_TERMINAL) {
661
	  case 20:
662
	    break;
663
	  default:
664
	    goto ZL1;
665
	}
666
	ADVANCE_LEXER;
667
	ZRsignature (&ZIs);
668
	switch (CURRENT_TERMINAL) {
669
	  case 21:
670
	    break;
671
	  case 26:
672
	    RESTORE_LEXER;
673
	    goto ZL1;
674
	  default:
675
	    goto ZL1;
676
	}
677
	ADVANCE_LEXER;
678
	switch (CURRENT_TERMINAL) {
679
	  case 22:
680
	    break;
681
	  default:
682
	    goto ZL1;
683
	}
684
	ADVANCE_LEXER;
685
	{
686
	    switch (CURRENT_TERMINAL) {
687
	      case 2:
688
		{
689
		    ADVANCE_LEXER;
690
		    switch (CURRENT_TERMINAL) {
691
		      case 16:
692
			break;
693
		      default:
694
			goto ZL1;
695
		    }
696
		    ADVANCE_LEXER;
697
		    switch (CURRENT_TERMINAL) {
698
		      case 0:
699
			{
700
 
701
    ZIb = xstrcpy ( token_buff ) ;
702
			}
703
			break;
704
		      default:
705
			goto ZL1;
706
		    }
707
		    ADVANCE_LEXER;
708
		}
709
		break;
710
	      default:
711
		{
712
		    {
713
 
714
    (ZIb) = NULL ;
715
		    }
716
		}
717
		break;
718
	    }
719
	}
720
	{
721
	    switch (CURRENT_TERMINAL) {
722
	      case 11:
723
		{
724
		    string ZIc;
725
		    USAGE ZIw;
726
 
727
		    ADVANCE_LEXER;
728
		    switch (CURRENT_TERMINAL) {
729
		      case 16:
730
			break;
731
		      default:
732
			goto ZL1;
733
		    }
734
		    ADVANCE_LEXER;
735
		    switch (CURRENT_TERMINAL) {
736
		      case 0:
737
			{
738
 
739
    ZIc = xstrcpy ( token_buff ) ;
740
			}
741
			break;
742
		      default:
743
			goto ZL1;
744
		    }
745
		    ADVANCE_LEXER;
746
		    {
747
 
748
    NAME n = find_name ( all_usages, (ZIc) ) ;
749
    if ( IS_NULL_name ( n ) ) {
750
	error ( ERROR_SERIOUS, "Usage '%s' not defined", (ZIc) ) ;
751
	MAKE_name_basic ( (ZIc), 0, n ) ;
752
    }
753
    (ZIu) = n ;
754
		    }
755
		    {
756
			switch (CURRENT_TERMINAL) {
757
			  case 19:
758
			    {
759
				string ZId;
760
 
761
				ADVANCE_LEXER;
762
				switch (CURRENT_TERMINAL) {
763
				  case 0:
764
				    {
765
 
766
    ZId = xstrcpy ( token_buff ) ;
767
				    }
768
				    break;
769
				  default:
770
				    goto ZL1;
771
				}
772
				ADVANCE_LEXER;
773
				{
774
 
775
    NAME n = find_name ( all_usages, (ZId) ) ;
776
    if ( IS_NULL_name ( n ) ) {
777
	error ( ERROR_SERIOUS, "Usage '%s' not defined", (ZId) ) ;
778
	MAKE_name_basic ( (ZId), 0, n ) ;
779
    }
780
    (ZIw) = n ;
781
				}
782
			    }
783
			    break;
784
			  default:
785
			    {
786
				ZIw = ZIu;
787
			    }
788
			    break;
789
			}
790
		    }
791
		    ZIv = ZIw;
792
		}
793
		break;
794
	      default:
795
		{
796
		    {
797
 
798
    (ZIu) = NULL_name ;
799
		    }
800
		    {
801
 
802
    (ZIv) = NULL_name ;
803
		    }
804
		}
805
		break;
806
	    }
807
	}
808
	{
809
	    switch (CURRENT_TERMINAL) {
810
	      case 8:
811
		{
812
		    LIST_PROPERTY ZIq;
813
 
814
		    ADVANCE_LEXER;
815
		    switch (CURRENT_TERMINAL) {
816
		      case 16:
817
			break;
818
		      default:
819
			goto ZL1;
820
		    }
821
		    ADVANCE_LEXER;
822
		    {
823
			switch (CURRENT_TERMINAL) {
824
			  case 0:
825
			    {
826
				ZRprops_Hlist (&ZIq);
827
				if ((CURRENT_TERMINAL) == 26) {
828
				    RESTORE_LEXER;
829
				    goto ZL1;
830
				}
831
			    }
832
			    break;
833
			  default:
834
			    {
835
				{
836
 
837
    (ZIq) = NULL_list ( PROPERTY ) ;
838
				}
839
			    }
840
			    break;
841
			}
842
		    }
843
		    ZIp = ZIq;
844
		}
845
		break;
846
	      default:
847
		{
848
		    {
849
 
850
    (ZIp) = NULL_list ( PROPERTY ) ;
851
		    }
852
		}
853
		break;
854
	    }
855
	}
856
	ZRmap_Hlist (ZIs, &ZIm);
857
	switch (CURRENT_TERMINAL) {
858
	  case 23:
859
	    break;
860
	  case 26:
861
	    RESTORE_LEXER;
862
	    goto ZL1;
863
	  default:
864
	    goto ZL1;
865
	}
866
	ADVANCE_LEXER;
867
	{
868
 
869
    MAKE_entry_basic ( (ZIa), (ZIb), (ZIs), (ZIu), (ZIv), (ZIp), (ZIm), (ZIe) ) ;
870
    counter = 0 ;
871
	}
872
    }
873
    goto ZL0;
874
  ZL1:;
875
    SAVE_LEXER (26);
876
    return;
877
  ZL0:;
878
    *ZOe = ZIe;
879
}
880
 
881
void
7 7u83 882
read_errors(void)
2 7u83 883
{
884
    if ((CURRENT_TERMINAL) == 26) {
885
	return;
886
    }
887
    {
888
	LIST_NAME ZIt1;
889
	LIST_NAME ZIt2;
890
	LIST_NAME ZIt3;
891
	LIST_NAME ZIp1;
892
	LIST_NAME ZIp2;
893
	LIST_NAME ZIp3;
894
	LIST_NAME ZIk1;
895
	LIST_NAME ZIk2;
896
	LIST_NAME ZIk3;
897
	LIST_NAME ZIu1;
898
	LIST_NAME ZIu2;
899
	LIST_NAME ZIu3;
900
	LIST_ENTRY ZIe;
901
 
902
	{
903
	    switch (CURRENT_TERMINAL) {
904
	      case 3:
905
		{
906
		    string ZId;
907
		    string ZI158;
908
 
909
		    ADVANCE_LEXER;
910
		    switch (CURRENT_TERMINAL) {
911
		      case 16:
912
			break;
913
		      default:
914
			goto ZL1;
915
		    }
916
		    ADVANCE_LEXER;
917
		    switch (CURRENT_TERMINAL) {
918
		      case 0:
919
			{
920
 
921
    ZId = xstrcpy ( token_buff ) ;
922
			}
923
			break;
924
		      default:
925
			goto ZL1;
926
		    }
927
		    ADVANCE_LEXER;
928
		    {
929
			switch (CURRENT_TERMINAL) {
930
			  case 19:
931
			    {
932
				ADVANCE_LEXER;
933
				switch (CURRENT_TERMINAL) {
934
				  case 0:
935
				    {
936
 
937
    ZI158 = xstrcpy ( token_buff ) ;
938
				    }
939
				    break;
940
				  default:
941
				    goto ZL1;
942
				}
943
				ADVANCE_LEXER;
944
			    }
945
			    break;
946
			  default:
947
			    {
948
				ZI158 = ZId;
949
			    }
950
			    break;
951
			}
952
		    }
953
		    {
954
 
955
    db_name = (ZId) ;
956
    db_name_alt = (ZI158) ;
957
		    }
958
		}
959
		break;
960
	      default:
961
		break;
962
	    }
963
	}
964
	{
965
	    switch (CURRENT_TERMINAL) {
966
	      case 9:
967
		{
968
		    string ZIr;
969
 
970
		    ADVANCE_LEXER;
971
		    switch (CURRENT_TERMINAL) {
972
		      case 16:
973
			break;
974
		      default:
975
			goto ZL1;
976
		    }
977
		    ADVANCE_LEXER;
978
		    switch (CURRENT_TERMINAL) {
979
		      case 0:
980
			{
981
 
982
    ZIr = xstrcpy ( token_buff ) ;
983
			}
984
			break;
985
		      default:
986
			goto ZL1;
987
		    }
988
		    ADVANCE_LEXER;
989
		    {
990
 
991
    rig_name = (ZIr) ;
992
		    }
993
		}
994
		break;
995
	      default:
996
		break;
997
	    }
998
	}
999
	{
1000
	    switch (CURRENT_TERMINAL) {
1001
	      case 7:
1002
		{
1003
		    string ZIq1;
1004
		    string ZIq2;
1005
		    string ZIq3;
1006
 
1007
		    ADVANCE_LEXER;
1008
		    switch (CURRENT_TERMINAL) {
1009
		      case 16:
1010
			break;
1011
		      default:
1012
			goto ZL1;
1013
		    }
1014
		    ADVANCE_LEXER;
1015
		    {
1016
			switch (CURRENT_TERMINAL) {
1017
			  case 12:
1018
			    {
1019
				ADVANCE_LEXER;
1020
				switch (CURRENT_TERMINAL) {
1021
				  case 15:
1022
				    break;
1023
				  default:
1024
				    goto ZL1;
1025
				}
1026
				ADVANCE_LEXER;
1027
				switch (CURRENT_TERMINAL) {
1028
				  case 0:
1029
				    {
1030
 
1031
    ZIq1 = xstrcpy ( token_buff ) ;
1032
				    }
1033
				    break;
1034
				  default:
1035
				    goto ZL1;
1036
				}
1037
				ADVANCE_LEXER;
1038
			    }
1039
			    break;
1040
			  default:
1041
			    {
1042
				{
1043
 
1044
    (ZIq1) = NULL ;
1045
				}
1046
			    }
1047
			    break;
1048
			}
1049
		    }
1050
		    {
1051
			switch (CURRENT_TERMINAL) {
1052
			  case 13:
1053
			    {
1054
				ADVANCE_LEXER;
1055
				switch (CURRENT_TERMINAL) {
1056
				  case 15:
1057
				    break;
1058
				  default:
1059
				    goto ZL1;
1060
				}
1061
				ADVANCE_LEXER;
1062
				switch (CURRENT_TERMINAL) {
1063
				  case 0:
1064
				    {
1065
 
1066
    ZIq2 = xstrcpy ( token_buff ) ;
1067
				    }
1068
				    break;
1069
				  default:
1070
				    goto ZL1;
1071
				}
1072
				ADVANCE_LEXER;
1073
			    }
1074
			    break;
1075
			  default:
1076
			    {
1077
				{
1078
 
1079
    (ZIq2) = NULL ;
1080
				}
1081
			    }
1082
			    break;
1083
			}
1084
		    }
1085
		    {
1086
			switch (CURRENT_TERMINAL) {
1087
			  case 14:
1088
			    {
1089
				ADVANCE_LEXER;
1090
				switch (CURRENT_TERMINAL) {
1091
				  case 15:
1092
				    break;
1093
				  default:
1094
				    goto ZL1;
1095
				}
1096
				ADVANCE_LEXER;
1097
				switch (CURRENT_TERMINAL) {
1098
				  case 0:
1099
				    {
1100
 
1101
    ZIq3 = xstrcpy ( token_buff ) ;
1102
				    }
1103
				    break;
1104
				  default:
1105
				    goto ZL1;
1106
				}
1107
				ADVANCE_LEXER;
1108
			    }
1109
			    break;
1110
			  default:
1111
			    {
1112
				{
1113
 
1114
    (ZIq3) = NULL ;
1115
				}
1116
			    }
1117
			    break;
1118
			}
1119
		    }
1120
		    {
1121
 
1122
    if ( (ZIq1) ) rig_comp_output = (ZIq1) ;
1123
    if ( (ZIq2) ) rig_from_comp = (ZIq2) ;
1124
    if ( (ZIq3) ) rig_from_db = (ZIq3) ;
1125
		    }
1126
		}
1127
		break;
1128
	      default:
1129
		{
1130
		    string ZIq1;
1131
		    string ZIq2;
1132
		    string ZIq3;
1133
 
1134
		    {
1135
 
1136
    (ZIq1) = NULL ;
1137
		    }
1138
		    {
1139
 
1140
    (ZIq2) = NULL ;
1141
		    }
1142
		    {
1143
 
1144
    (ZIq3) = NULL ;
1145
		    }
1146
		    {
1147
 
1148
    if ( (ZIq1) ) rig_comp_output = (ZIq1) ;
1149
    if ( (ZIq2) ) rig_from_comp = (ZIq2) ;
1150
    if ( (ZIq3) ) rig_from_db = (ZIq3) ;
1151
		    }
1152
		}
1153
		break;
1154
	    }
1155
	}
1156
	{
1157
	    switch (CURRENT_TERMINAL) {
1158
	      case 10:
1159
		{
1160
		    ADVANCE_LEXER;
1161
		    switch (CURRENT_TERMINAL) {
1162
		      case 16:
1163
			break;
1164
		      default:
1165
			goto ZL1;
1166
		    }
1167
		    ADVANCE_LEXER;
1168
		    ZRname_Hlist (&ZIt1, &ZIt2, &ZIt3);
1169
		    if ((CURRENT_TERMINAL) == 26) {
1170
			RESTORE_LEXER;
1171
			goto ZL1;
1172
		    }
1173
		}
1174
		break;
1175
	      default:
1176
		{
1177
		    {
1178
 
1179
    (ZIt1) = NULL_list ( NAME ) ;
1180
		    }
1181
		    {
1182
 
1183
    (ZIt2) = NULL_list ( NAME ) ;
1184
		    }
1185
		    {
1186
 
1187
    (ZIt3) = NULL_list ( NAME ) ;
1188
		    }
1189
		}
1190
		break;
1191
	    }
1192
	}
1193
	{
1194
 
1195
    all_types = (ZIt1) ;
1196
    all_types_aux = (ZIt2) ;
1197
    all_types_alt = (ZIt3) ;
1198
    counter = 0 ;
1199
	}
1200
	{
1201
	    switch (CURRENT_TERMINAL) {
1202
	      case 8:
1203
		{
1204
		    ADVANCE_LEXER;
1205
		    switch (CURRENT_TERMINAL) {
1206
		      case 16:
1207
			break;
1208
		      default:
1209
			goto ZL1;
1210
		    }
1211
		    ADVANCE_LEXER;
1212
		    ZRname_Hlist (&ZIp1, &ZIp2, &ZIp3);
1213
		    if ((CURRENT_TERMINAL) == 26) {
1214
			RESTORE_LEXER;
1215
			goto ZL1;
1216
		    }
1217
		}
1218
		break;
1219
	      default:
1220
		{
1221
		    {
1222
 
1223
    (ZIp1) = NULL_list ( NAME ) ;
1224
		    }
1225
		    {
1226
 
1227
    (ZIp2) = NULL_list ( NAME ) ;
1228
		    }
1229
		    {
1230
 
1231
    (ZIp3) = NULL_list ( NAME ) ;
1232
		    }
1233
		}
1234
		break;
1235
	    }
1236
	}
1237
	{
1238
 
1239
    all_props = (ZIp1) ;
1240
    all_props_aux = (ZIp2) ;
1241
    all_props_alt = (ZIp3) ;
1242
    counter = 0 ;
1243
	}
1244
	{
1245
	    switch (CURRENT_TERMINAL) {
1246
	      case 6:
1247
		{
1248
		    ADVANCE_LEXER;
1249
		    switch (CURRENT_TERMINAL) {
1250
		      case 16:
1251
			break;
1252
		      default:
1253
			goto ZL1;
1254
		    }
1255
		    ADVANCE_LEXER;
1256
		    ZRname_Hlist (&ZIk1, &ZIk2, &ZIk3);
1257
		    if ((CURRENT_TERMINAL) == 26) {
1258
			RESTORE_LEXER;
1259
			goto ZL1;
1260
		    }
1261
		}
1262
		break;
1263
	      default:
1264
		{
1265
		    {
1266
 
1267
    (ZIk1) = NULL_list ( NAME ) ;
1268
		    }
1269
		    {
1270
 
1271
    (ZIk2) = NULL_list ( NAME ) ;
1272
		    }
1273
		    {
1274
 
1275
    (ZIk3) = NULL_list ( NAME ) ;
1276
		    }
1277
		}
1278
		break;
1279
	    }
1280
	}
1281
	{
1282
 
1283
    all_keys = (ZIk1) ;
1284
    all_keys_aux = (ZIk2) ;
1285
    all_keys_alt = (ZIk3) ;
1286
    counter = 0 ;
1287
	}
1288
	{
1289
	    switch (CURRENT_TERMINAL) {
1290
	      case 11:
1291
		{
1292
		    ADVANCE_LEXER;
1293
		    switch (CURRENT_TERMINAL) {
1294
		      case 16:
1295
			break;
1296
		      default:
1297
			goto ZL1;
1298
		    }
1299
		    ADVANCE_LEXER;
1300
		    ZRname_Hlist (&ZIu1, &ZIu2, &ZIu3);
1301
		    if ((CURRENT_TERMINAL) == 26) {
1302
			RESTORE_LEXER;
1303
			goto ZL1;
1304
		    }
1305
		}
1306
		break;
1307
	      default:
1308
		{
1309
		    {
1310
 
1311
    (ZIu1) = NULL_list ( NAME ) ;
1312
		    }
1313
		    {
1314
 
1315
    (ZIu2) = NULL_list ( NAME ) ;
1316
		    }
1317
		    {
1318
 
1319
    (ZIu3) = NULL_list ( NAME ) ;
1320
		    }
1321
		}
1322
		break;
1323
	    }
1324
	}
1325
	{
1326
 
1327
    all_usages = (ZIu1) ;
1328
    all_usages_aux = (ZIu2) ;
1329
    all_usages_alt = (ZIu3) ;
1330
    counter = 0 ;
1331
	}
1332
	{
1333
	    switch (CURRENT_TERMINAL) {
1334
	      case 4:
1335
		{
1336
		    ADVANCE_LEXER;
1337
		    switch (CURRENT_TERMINAL) {
1338
		      case 16:
1339
			break;
1340
		      default:
1341
			goto ZL1;
1342
		    }
1343
		    ADVANCE_LEXER;
1344
		    ZRentries_Hlist (&ZIe);
1345
		    if ((CURRENT_TERMINAL) == 26) {
1346
			RESTORE_LEXER;
1347
			goto ZL1;
1348
		    }
1349
		}
1350
		break;
1351
	      default:
1352
		{
1353
		    {
1354
 
1355
    (ZIe) = NULL_list ( ENTRY ) ;
1356
		    }
1357
		}
1358
		break;
1359
	    }
1360
	}
1361
	{
1362
 
1363
    all_entries = (ZIe) ;
1364
    counter = 0 ;
1365
	}
1366
	switch (CURRENT_TERMINAL) {
1367
	  case 24:
1368
	    break;
1369
	  default:
1370
	    goto ZL1;
1371
	}
1372
	ADVANCE_LEXER;
1373
    }
1374
    return;
1375
  ZL1:;
1376
    {
1377
	{
1378
 
1379
    error ( ERROR_SERIOUS, "Syntax error" ) ;
1380
	}
1381
    }
1382
}
1383
 
1384
static void
7 7u83 1385
ZRmessage_Hlist(LIST_PARAM ZIs, LIST_MESSAGE *ZOp)
2 7u83 1386
{
1387
    LIST_MESSAGE ZIp;
1388
 
1389
    switch (CURRENT_TERMINAL) {
1390
      case 0:
1391
	{
1392
	    string ZIa;
1393
	    PARAM ZIn;
1394
	    MESSAGE ZIm;
1395
	    LIST_MESSAGE ZIq;
1396
 
1397
	    {
1398
 
1399
    ZIa = xstrcpy ( token_buff ) ;
1400
	    }
1401
	    ADVANCE_LEXER;
1402
	    {
1403
 
1404
    PARAM a = find_param ( (ZIs), (ZIa) ) ;
1405
    if ( IS_NULL_param ( a ) ) {
1406
	error ( ERROR_SERIOUS, "Parameter '%s' not defined", (ZIa) ) ;
1407
    }
1408
    (ZIn) = a ;
1409
	    }
1410
	    {
1411
 
1412
    if ( !IS_NULL_param ( (ZIn) ) ) {
1413
	MAKE_msg_param ( (ZIn), (ZIm) ) ;
1414
    } else {
1415
	MAKE_msg_text ( "<error>", (ZIm) ) ;
1416
    }
1417
	    }
1418
	    ZRmessage_Hlist (ZIs, &ZIq);
1419
	    if ((CURRENT_TERMINAL) == 26) {
1420
		RESTORE_LEXER;
1421
		goto ZL1;
1422
	    }
1423
	    {
1424
 
1425
    CONS_msg ( (ZIm), (ZIq), (ZIp) ) ;
1426
	    }
1427
	}
1428
	break;
1429
      case 1:
1430
	{
1431
	    string ZIa;
1432
	    MESSAGE ZIm;
1433
	    LIST_MESSAGE ZIq;
1434
 
1435
	    {
1436
 
1437
    ZIa = xstrcpy ( token_buff ) ;
1438
	    }
1439
	    ADVANCE_LEXER;
1440
	    {
1441
 
1442
    MAKE_msg_text ( (ZIa), (ZIm) ) ;
1443
	    }
1444
	    ZRmessage_Hlist (ZIs, &ZIq);
1445
	    if ((CURRENT_TERMINAL) == 26) {
1446
		RESTORE_LEXER;
1447
		goto ZL1;
1448
	    }
1449
	    {
1450
 
1451
    CONS_msg ( (ZIm), (ZIq), (ZIp) ) ;
1452
	    }
1453
	}
1454
	break;
1455
      default:
1456
	{
1457
	    {
1458
 
1459
    (ZIp) = NULL_list ( MESSAGE ) ;
1460
	    }
1461
	}
1462
	break;
1463
      case 26:
1464
	return;
1465
    }
1466
    goto ZL0;
1467
  ZL1:;
1468
    SAVE_LEXER (26);
1469
    return;
1470
  ZL0:;
1471
    *ZOp = ZIp;
1472
}
1473
 
1474
static void
7 7u83 1475
ZRsignature(LIST_PARAM *ZOp)
2 7u83 1476
{
1477
    LIST_PARAM ZIp;
1478
 
1479
    switch (CURRENT_TERMINAL) {
1480
      case 0:
1481
	{
1482
	    ZRparam_Hlist (&ZIp);
1483
	    if ((CURRENT_TERMINAL) == 26) {
1484
		RESTORE_LEXER;
1485
		goto ZL1;
1486
	    }
1487
	}
1488
	break;
1489
      default:
1490
	{
1491
	    {
1492
 
1493
    (ZIp) = NULL_list ( PARAM ) ;
1494
	    }
1495
	}
1496
	break;
1497
      case 26:
1498
	return;
1499
    }
1500
    goto ZL0;
1501
  ZL1:;
1502
    SAVE_LEXER (26);
1503
    return;
1504
  ZL0:;
1505
    *ZOp = ZIp;
1506
}
1507
 
1508
static void
7 7u83 1509
ZRentries_Hlist(LIST_ENTRY *ZOp)
2 7u83 1510
{
1511
    LIST_ENTRY ZIp;
1512
 
1513
    switch (CURRENT_TERMINAL) {
1514
      case 0:
1515
	{
1516
	    ENTRY ZIa;
1517
	    LIST_ENTRY ZIq;
1518
 
1519
	    ZRentry (&ZIa);
1520
	    ZRentries_Hlist (&ZIq);
1521
	    if ((CURRENT_TERMINAL) == 26) {
1522
		RESTORE_LEXER;
1523
		goto ZL1;
1524
	    }
1525
	    {
1526
 
1527
    CONS_entry ( (ZIa), (ZIq), (ZIp) ) ;
1528
	    }
1529
	}
1530
	break;
1531
      default:
1532
	{
1533
	    {
1534
 
1535
    (ZIp) = NULL_list ( ENTRY ) ;
1536
	    }
1537
	}
1538
	break;
1539
      case 26:
1540
	return;
1541
    }
1542
    goto ZL0;
1543
  ZL1:;
1544
    SAVE_LEXER (26);
1545
    return;
1546
  ZL0:;
1547
    *ZOp = ZIp;
1548
}
1549
 
1550
/* BEGINNING OF TRAILER */
1551
 
1552
 
1553
 
1554
/* END OF FILE */