Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – /branches/tendra4/src/utilities/make_err/syntax.c – Rev 2

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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