
# line 12 "bifparse.y"
/*--------------------------------------------------------------------*\
|
|  Copyright (C) 1989,1990, 1991, National Computer Graphics Association
|
|  Permission is granted to any individual or institution to use, copy, or
|  redistribute this software so long as it is not sold for profit, provided
|  this copyright notice is retained.
|
|                         Developed for the
|                National Computer Graphics Association
|                         2722 Merrilee Drive
|                         Fairfax, VA  22031
|                           (703) 698-9600
|
|                                by
|                 SimGraphics Engineering Corporation
|                    1137 Huntington Drive  Unit A
|                      South Pasadena, CA  91030
|                           (213) 255-0900
|---------------------------------------------------------------------
|
| Author        :	mjf / SimGraphics Engineering Corportation
|
| File          :	bifparse.y
| Date          :	Fri Feb  9 10:46:55 PST 1990
| Project       :	PLB
| Description   :	
| Status        :	Version 1.0
|
| Revisions     :	
|
\*--------------------------------------------------------------------*/

#include <stdio.h>

#ifdef SUN4
#include <strings.h>
#else
#include <string.h>
#endif

#include <ctype.h>
#include "bifbuild.h"

#define STRLENGTH 80
#define REPEAT_TABLE_SIZE 30

#ifndef FALSE
#define FALSE 0
#endif /* ifndef FALSE */
#ifndef TRUE
#define TRUE (!FALSE)
#endif /* ifndef TRUE */

#define CB_ERM1 "Additional attempt to set color model ignored"
#define CB_ERM2 "Additional attempt to set buffer mode ignored"
#define CB_ERM3 "Additional attempt to set color mode ignored"
#define CB_ERM4 "Additional attempt to set window size ignored"
#define FAS_ERM1 "Additional VERTEX_COLOR set in FILL_AREA_SET3 ignored."
#define FAS_ERM2 "Additional VERTEX_COLOR_INDICES in FILL_AREA_SET3 ignored."
#define FAS_ERM3 "Additional VERTEX_NORMALS set in FILL_AREA_SET3 ignored."
#define FAS_ERM4 "Additional EDGE_VISIBILITY set in FILL_AREA_SET3 ignored."
#define FAS_ERM5 "Additional FACET_COLORS set in FILL_AREA_SET3 ignored."
#define FAS_ERM6 "Additional FACET_COLOR_INDICES in FILL_AREA_SET3 ignored."
#define FAS_ERM7 "Additional FACET_NORMALS set in FILL_AREA_SET3 ignored."
#define GS_ERM1 "Additional CENTER in GEN_SPHERE3 ignored."
#define GS_ERM2 "Additional RADIUS in GEN_SPHERE3 ignored."
#define GS_ERM3 "Additional SCALE_FACTOR in GEN_SPHERE3 ignored."
#define GC_ERM1 "Additional CENTER in GEN_CIRCLE ignored."
#define GC_ERM2 "Additional RADIUS in GEN_CIRCLE ignored."
#define GC3_ERM1 "Additional CENTER in GEN_CIRCLE3 ignored."
#define GC3_ERM2 "Additional RADIUS in GEN_CIRCLE3 ignored."
#define GC3_ERM3 "Additional NORMAL in GEN_CIRCLE3 ignored."
#define WD3B_error(A) \
{ \
  char temp[STRLENGTH]; \
  sprintf(temp,"Additional %s in %s ignored.", A, with_data_name ); \
  yyerror(temp); \
}
				
typedef char StringType[STRLENGTH];

static char *with_data_name;
extern FILE *active_file, *last_file;
extern char filenm[128], last_filenm[128];
extern int lineno,last_lineno;



# line 108 "bifparse.y"
typedef union 	{
	long		l;
	double		f;
	StringType	str;
	} YYSTYPE;
#define LONG 257
#define REAL 258
#define QSTRING 259
#define BEGIN_STRUCTURE 260
#define END_STRUCTURE 261
#define LABEL 262
#define MARKER 263
#define MARKER3 264
#define LINE 265
#define LINE3 266
#define POLYGON 267
#define POLYGON3 268
#define FILL_AREA_SET 269
#define FILL_AREA_SET3 270
#define TRIANGLE3 271
#define QUAD_MESH3 272
#define INDEX_POLYGONS3 273
#define GEN_SPHERE3 274
#define GEN_CIRCLE 275
#define GEN_CIRCLE3 276
#define TEXT 277
#define TEXT3 278
#define ANNOTATION_TEXT3 279
#define PIXEL_MAP3 280
#define NON_UNIFORM_BSPLINE_CURVE 281
#define NON_UNIFORM_BSPLINE_SURFACE 282
#define CURVE_APPROXIMATION_CRITERIA 283
#define TRIMCURVE_APPROXIMATION_CRITERIA 284
#define SURFACE_APPROXIMATION_CRITERIA 285
#define MARKER_TYPE 286
#define MARKER_SIZE 287
#define MARKER_COLOR 288
#define MARKER_COLOR_INDEX 289
#define LINE_TYPE 290
#define LINE_WIDTH 291
#define LINE_COLOR 292
#define LINE_COLOR_INDEX 293
#define LINE_SHADING 294
#define INTERIOR_STYLE 295
#define INTERIOR_PATTERN_INDEX 296
#define INTERIOR_COLOR 297
#define INTERIOR_COLOR_INDEX 298
#define BACKFACE_INTERIOR_COLOR 299
#define BACKFACE_INTERIOR_COLOR_INDEX 300
#define INTERIOR_SHADING 301
#define INTERIOR_LIGHTING 302
#define SURFACE_PROPERTIES 303
#define BACKFACE_PROPERTIES 304
#define BACKFACE_PROCESSING 305
#define EDGE_FLAG 306
#define EDGE_TYPE 307
#define EDGE_WIDTH 308
#define EDGE_COLOR 309
#define EDGE_COLOR_INDEX 310
#define TEXT_FONT 311
#define TEXT_PREC 312
#define TEXT_COLOR 313
#define TEXT_COLOR_INDEX 314
#define TEXT_PATH 315
#define TEXT_ALIGN 316
#define CHAR_HEIGHT 317
#define CHAR_EXP 318
#define CHAR_SPACE 319
#define CHAR_UP_VECTOR 320
#define ANNO_TEXT_CHAR_HEIGHT 321
#define ANNO_TEXT_CHAR_UP_VECTOR 322
#define ANNO_TEXT_STYLE 323
#define LIGHT_STATE 324
#define DEPTHCUE_INDEX 325
#define HLHS_REMOVAL 326
#define IDENTITY3 327
#define CONCAT_MATRIX3 328
#define INVERT_MATRIX3 329
#define ROTATE3 330
#define ROTATE_XYZ3 331
#define TRANSLATE3 332
#define SCALE3 333
#define MATRIX3 334
#define GET_MATRIX3 335
#define PUSH_MATRIX3 336
#define POP_MATRIX3 337
#define GLOBAL_TRANSFORMATION3 338
#define LOCAL_TRANSFORMATION3 339
#define APPLY_TO_GLOBAL3 340
#define APPLY_TO_LOCAL3 341
#define VIEW_ORIENTATION3 342
#define VIEW_MAPPING3 343
#define ACTIVE_VIEW 344
#define EXECUTE_STRUCTURE 345
#define CALL_STRUCTURE 346
#define READ_GEOMETRY_FILE 347
#define CLEAR_GEOMETRY 348
#define BEGIN_TEST 349
#define END_TEST 350
#define PAUSE 351
#define SLEEP 352
#define INVOKE_AT_FRAME 353
#define DEFINE_COLOR 354
#define BACKGROUND_COLOR 355
#define BACKGROUND_COLOR_INDEX 356
#define DEFINE_VIEW_SPECIFICATION 357
#define DEFAULT_VIEW_SPECIFICATION 358
#define DEFINE_LIGHT 359
#define DEFINE_DEPTHCUE 360
#define CONFIGURATION 361
#define KNOTS 362
#define CTRL_POINTS 363
#define UKNOTS 364
#define VKNOTS 365
#define TRIMLOOP 366
#define TRIMCURVE 367
#define RATIONAL 368
#define NON_RATIONAL 369
#define IGNORE_GROUP 370
#define VERTEX_COLORS 371
#define VERTEX_NORMALS 372
#define VERTEX_COLOR_INDICES 373
#define FACET_COLORS 374
#define FACET_NORMALS 375
#define FACET_COLOR_INDICES 376
#define VERTEX_COORDINATES 377
#define EDGE_VISIBILITY 378
#define ENABLE 379
#define DISABLE 380
#define STRING 381
#define CHAR 382
#define STROKE 383
#define WORLD 384
#define MODELLING 385
#define AMBIENT_LIGHT 386
#define DIRECTIONAL_LIGHT 387
#define POSITIONAL_LIGHT 388
#define SPOT_LIGHT 389
#define LD_TRANSFORM 390
#define ACTIVATE_LIST 391
#define DEACTIVATE_LIST 392
#define HLHSRID 393
#define HLHS_DISABLE 394
#define HLHS_ENABLE 395
#define MAKE_RAMP 396
#define COLOR_LIST 397
#define RGB 398
#define CIE 399
#define HSV 400
#define HLS 401
#define PRECONCAT 402
#define POSTCONCAT 403
#define REPLACE 404
#define X_AXIS 405
#define Y_AXIS 406
#define Z_AXIS 407
#define PERSPECTIVE 408
#define PARALLEL 409
#define MATCH_VIEW_AREA 410
#define ADJUST_X 411
#define ADJUST_Y 412
#define GROW 413
#define SHRINK 414
#define XY_CLIP 415
#define NO_XY_CLIP 416
#define FRONT_CLIP 417
#define NO_FRONT_CLIP 418
#define BACK_CLIP 419
#define NO_BACK_CLIP 420
#define HOLLOW 421
#define SOLID 422
#define PATTERN 423
#define EMPTY 424
#define VIEW_MAPPING 425
#define VIEW_ORIENTATION 426
#define GLOBAL_MODELLING 427
#define LOCAL_MODELLING 428
#define COMPOSITE_MODELLING 429
#define SPECIFY_REPORT_FILE 430
#define TO 431
#define END 432
#define EXECUTE 433
#define CALL 434
#define WINDOW_SIZE 435
#define DOUBLE_BUFFER 436
#define SINGLE_BUFFER 437
#define TRUE_COLOR 438
#define PSEUDO_COLOR 439
#define FACET_CONNECTIVITY 440
#define EXACT 441
#define CENTER 442
#define RADIUS 443
#define SCALE_FACTORS 444
#define NORMAL 445
#define TEXT_DIRECTION 446
#define ADD 447
#define AND 448
#define CLEAR 449
#define INVERT 450
#define NAND 451
#define NOOP 452
#define NOR 453
#define OR 454
#define SET 455
#define SUBTRACT_DEST 456
#define SUBTRACT_SOURCE 457
#define XOR 458
#define PIXEL_VALUES 459
#define INTENSITY_VALUES 460
#define PIXEL_VALUE_SEGMENTS 461
#define INTENSITY_VALUE_SEGMENTS 462
#define FIRST_FILE 463
#define END_GEOM_FILE 464
#define UNRECOGNIZED_KEYWORD 465
#define yyclearin yychar = -1
#define yyerrok yyerrflag = 0
extern int yychar;
extern short yyerrflag;
#ifndef YYMAXDEPTH
#define YYMAXDEPTH 150
#endif
YYSTYPE yylval, yyval;
# define YYERRCODE 256

# line 2323 "bifparse.y"


/* ------------------------------------------------------------------ */
/* not_repeated is a utility used by entities in yacc to allow        */
/* optional date groups to be specified in any order but to detect   */
/* if an optional group is specified more than once.                  */ 
/*                                                                    */ 
/*  code        < 0:       Reinitialize the repeat_table              */ 
/*  code        > REPEAT_TABLE_SIZE -1: is an error.                  */ 
/*  return_code = FALSE:   The optional group has been repeated       */
/*  return_code = TRUE:    The optional group has not been repeated   */
/* ------------------------------------------------------------------ */
int not_repeated(code)
int code;
{
	int return_code;
	static int repeat_table[REPEAT_TABLE_SIZE];
	int i;

	return_code = TRUE;
	if (code < 0)
	{
		for(i=0;i<REPEAT_TABLE_SIZE;i++)
			repeat_table[i]=TRUE;
	}
	else if (code > REPEAT_TABLE_SIZE-1)
	{
	   yyerror
	   ("Program error:  Attempt to index beyond end of repeat_table.");
	   yyerror
	   ("             :  Entity option has been ignored.");
		return_code = FALSE;
	}
	else
	{
		if(repeat_table[code])  repeat_table[code] = FALSE;
		else   return_code = FALSE;
	}
	return(return_code);
}
short yyexca[] ={
-1, 1,
	0, -1,
	-2, 0,
-1, 2,
	260, 444,
	-2, 445,
	};
# define YYNPROD 460
# define YYLAST 1672
short yyact[]={

 336, 724, 325, 590, 750, 344, 335, 232, 526, 558,
 557, 324, 562, 561, 327, 423, 467, 560, 559, 804,
 805, 806, 807,   5, 327, 666, 333, 338, 477, 949,
 870, 676, 826, 581, 685, 972, 534, 107, 108, 109,
 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
 190, 191, 857, 226, 229, 230, 231, 745, 536, 705,
 706, 767, 768, 240, 241, 235, 402, 244, 245, 249,
 250, 251, 252, 254, 577, 256, 699, 700, 822, 260,
 261, 620, 621, 979, 266, 267, 527, 528, 751, 273,
 505, 506, 507, 277, 278, 279, 280, 281, 282, 551,
 737, 738, 739, 740, 741, 742, 743, 744, 746, 747,
 748, 749, 415, 416, 417, 418, 419,1020,1021,1022,
1023, 424, 425, 426, 286, 287, 771, 772, 773, 774,
 316, 270, 271, 272, 208, 871, 445, 444, 263, 264,
 233, 234, 978, 334, 201, 334, 204, 334, 765, 914,
 915, 916, 656, 327, 802,   4, 977, 352, 696, 209,
 353, 354, 355, 909, 587, 466, 520, 358, 359, 360,
 192, 337, 363, 340, 639, 341, 367, 463, 346, 878,
 348, 876, 460, 481, 457, 372, 832, 374, 830, 228,
 227, 378, 379, 434, 829, 722, 827, 311, 385, 714,
1003, 713, 900, 654, 391, 775, 703, 682, 627, 437,
 679, 398, 626, 400, 591,   3, 589, 525, 572, 486,
 450, 446, 409, 410, 411, 412, 442, 407, 394, 637,
 420, 421, 380, 996, 427, 428, 953, 357, 356, 349,
 347, 930, 904, 322, 320, 556, 439, 440, 319, 318,
 443, 317, 881, 877, 831, 828, 756, 448, 315, 313,
 307, 306, 305, 304, 458, 459, 461, 462, 458, 303,
 302, 458, 102, 301, 228, 227, 465, 296, 295, 294,
 293, 292, 291, 453, 482, 483, 484, 290, 228, 227,
 289, 489, 288, 474, 490, 228, 227, 432, 491, 285,
 283, 276, 275, 492, 274, 493, 269, 268, 265, 494,
 495, 228, 227, 228, 227, 262, 497, 259, 228, 227,
 228, 227, 498, 258, 257, 981, 228, 227, 228, 227,
 255, 228, 227, 228, 227, 228, 227, 667, 668, 669,
 670, 508, 509, 510, 511, 582, 583, 584, 677, 585,
1043, 513, 514, 503, 253, 247, 246, 243, 516, 517,
 512, 228, 227, 228, 227, 755, 242, 239, 755, 522,
 523, 524, 105, 931, 755, 228, 227, 531, 238, 237,
 228, 227, 228, 227, 755, 755, 755, 755, 755, 548,
 236, 225, 549, 550, 224, 223, 461, 537, 538, 539,
 540, 334, 221, 533, 553, 552, 628, 438, 211,1042,
 571, 554,1041, 555, 588, 790, 790, 879, 875, 471,
1033, 874, 323,1028,1016, 597, 598, 568, 790, 471,
 873, 872,1014, 573, 545, 541, 542, 543, 544, 604,
 605, 606, 607,1012, 609, 610,1011, 611, 612, 790,
 603, 791, 973, 616, 617, 968, 578, 579, 580, 961,
 956, 623, 624, 615, 554, 563, 555, 564, 566, 565,
 955, 664, 944, 943, 925, 906, 905, 885, 884, 209,
 629, 846, 844, 331, 814, 799, 647, 649, 648, 651,
 653, 652, 797, 650, 762, 761,1025,1018, 334, 458,
 468,1017, 461, 990, 987, 983, 638, 554, 563, 555,
 564, 566, 565, 976, 659, 658, 970, 663, 662, 678,
 655, 681, 661, 660, 636, 969, 952, 951, 683, 684,
 554, 563, 555, 564, 566, 565, 950, 917, 690, 887,
 691, 692, 693, 694, 866, 858, 853, 697, 448, 725,
 687, 688, 689, 345, 701, 702, 695, 554, 563, 555,
 564, 566, 565, 825, 469, 824, 823, 458, 816, 461,
 815, 789, 788, 787, 786, 785, 784, 783, 782, 734,
 728, 727, 726, 330, 712, 711, 710, 709, 708, 707,
 675, 674, 673, 672, 671, 665, 601, 530, 471, 413,
 343, 300, 729, 730, 731, 732, 733, 299,1048, 735,
1047,1044, 986, 982, 753, 754, 975, 962, 958, 942,
 940, 760, 932, 891, 763, 890, 865, 852, 448, 850,
 759, 758, 769, 764, 757, 686, 625, 622, 618, 613,
 608, 602, 600, 599, 776, 596, 778, 779, 595, 781,
 594, 593, 592, 586, 546, 535, 529, 793, 794, 795,
 796, 518, 798, 515, 800, 801, 501, 500, 499, 496,
 488, 487, 447, 777, 441, 436, 780, 435, 431, 430,
 429, 422, 408, 406, 811, 812, 810, 405, 404, 403,
 401, 399, 397, 396, 817, 818, 395, 819, 393, 392,
 820, 390, 389, 388, 387, 386, 384, 461, 383, 461,
 461, 382, 461, 381, 377, 834, 376, 836, 833, 375,
 835, 840, 373, 837, 843, 839, 845, 371, 370, 847,
 369, 848, 849, 368, 366, 365, 364, 362, 361, 332,
 312, 681, 855, 856, 310, 298, 859, 860, 861, 862,
 863, 864, 838, 297, 867, 868, 869, 842, 451, 328,
 821, 770, 321, 314, 547, 614, 521, 519, 461, 433,
 461, 309, 308, 971, 882, 957, 883, 967, 892, 813,
 886, 502, 284, 934, 933,1024,1009, 888, 980, 893,
 894, 895, 896, 897, 898, 899, 966, 935, 901, 902,
 903, 913, 912, 911, 910, 889, 880, 854, 752, 809,
 808, 680, 485, 963, 948, 908, 851, 907, 480, 681,
 351, 479, 350, 576, 918, 919, 920, 921, 922, 923,
 924, 478, 926, 927, 928, 575, 723, 657, 929, 574,
 476, 222, 475, 220, 721, 720, 719, 718, 717, 937,
 938, 939, 716, 941, 715, 646, 645, 644, 945, 946,
 947, 643, 642, 641, 640, 570, 472, 219, 954, 569,
 473, 567, 470, 841, 792, 342, 959, 960, 218, 635,
 634, 633, 936, 632, 964, 965, 631, 630, 339, 217,
 216, 974, 464, 215, 214, 681, 681, 213, 212, 104,
 984, 985, 103, 101, 100, 988,  99,  98,  97,  96,
  95,  94,  93,  92, 991, 992, 993,  91, 994, 995,
  90,  89, 998, 999,1000,1001,1002,  88, 997,1004,
1005,1006,1007,1008,  87,1010,  86,  85,1013,  84,
  83, 989,  82,1015,  81,  80, 681,  79,1026,1027,
  78,  77,  76,  75,  74,  73,1030,1031,1032,1029,
  72,1034,1035,1036,  71,1037,1038,1039,1040,  70,
  69,  68,  67,  66,  65,  64,  63,  62,  61,  60,
  59,  58,  57,  56,  55,  54,  53,  52,1045,1046,
 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
 187, 188, 189, 190, 191, 193, 194, 205,  51, 196,
 197,  50, 198, 199, 200, 201, 202, 204, 203,  49,
  48,  47,  46,  45,  44,  43,  42,  41,  40,  39,
  38,  37,  36,  35,  34,  33,  32,  31,  30,  29,
  28,  27,  26,  25,  24,  23,  22,  21,  20,  19,
  18,  17,  16,  15,  14,  13,  12,  11,  10,   9,
   8, 454, 452, 329, 210, 106, 532, 449, 326,   7,
   6, 207, 206, 736, 803, 704, 248, 766, 698, 619,
1019, 504, 414,   1,   0,   0,   0,   0, 195,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   2,   0, 192, 107, 108, 109, 110, 111, 112,
 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
 183, 184, 185, 186, 187, 188, 189, 190, 191, 193,
 194, 205,   0, 196, 197,   0, 198, 199, 200, 201,
 202, 204, 203,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0, 195,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 192, 107, 108,
 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
 189, 190, 191,   0,   0,   0, 455,   0,   0, 456,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0, 192 };
short yypact[]={

 798,-1000,-157,1002,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000, 221,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000, 215,-1000, 208,
 207, 204,   2,   2,   2,   2,-158,-158, 203, 192,
 191, 180,   2,   2, 179, 170,   2,   2, 169, 168,
-282, 167,   2, 143,   2, 137, 136, 130,   2,   2,
 128,-171, 121,   2,   2, 120, 119,-180,   2, 117,
 115, 114,   2,   2,   2,   2,   2,   2, 113,-1000,
 112,-200, 105, 103, 100,  95,  94,  93,  92,  91,
  90, 764, 756, 554, 548,  86,  83,  82,  76,  75,
  74,  73,-1000,-1000, 755,   8, 751,  72,  71,   2,
  64,  62,  61,  57,-1000,  56,1002, -37,-1000,-1000,
-143, 750,   2,   2,   2,-1000,   2,-1000, 547, 500,
-1000,  53,-1000,  52,-1000,-1000,   2,-1000,-1000,   2,
   2,   2,  51,-1000,-1000,  50,   2,   2,   2, 749,
 748,   2, 747, 746, 745,   2, 744, 741, 739,-1000,
-1000,-1000,-1000, 738,   2, 733,   2, 730, 727, 725,
   2,   2,  45, 724, 722, 719, 717,   2, 716, 715,
 714, 713, 712,   2, 710, 709,  41, 707, 704, 703,
   2, 702,   2, 701,-255, 700, 699, 698, 694,  40,
 693,   2,   2,   2,   2, 546,-243,-1000,-1000,   2,
   2, 692,-211,   2,   2, 691, 690, 689, 111,   4,
-1000, 688,-1000, 686, 220,   2,   2, 685,  39,   2,
-173,  34, 683,1002, -37,-1000,-1000,  33,-1000,1206,
-1000,-1000,-1000, 195,   2, 193,   2, 188,-1000,   2,
 176,-1000, 511,-1000, 545,-1000,-1000,-1000,-412,-1000,
-1000,-1000,  -6,   2,   2,   2,-1000,  32, 682, 681,
   2,-1000,-1000,   2,-1000,-1000,-1000,   2,-1000,-1000,
-1000,-1000,   2,-1000,   2,-1000,-1000,-1000,   2,   2,
 680,-1000,-1000,-1000,-1000,   2,-1000,-1000,-1000,-1000,
-1000,   2,-1000,-1000, 679,-1000,-1000,-1000, 678,-1000,
 677,-1000,-1000,-1000,-1000,-1000,-1000,-211,-1000,-245,
   2,   2,   2,   2,-211,-1000,-1000,-1000,-1000,-1000,
   2,   2,-1000, 674,-1000,-1000,-1000,   2,   2,-1000,
-1000,-1000, 672, -23,-1000,-1000,-1000,-1000,   2,   2,
   2,-1000,  30,-252, 667, 544,   2,-1000,-1000,-225,
 666,  69,-1000,-1000,-1000, 665,-1000,-1000,   2,-1000,
-1000,   2,   2,-1000, 110,   2,-1000, 256,-1000,-1000,
   2,-1000,-1000,   2, 229,-1000,-1000,-1000,-1000,  85,
 -26, 664, -25,   2,  29,-1000,  27,-1000,-1000, 663,
 662, 661, 659, 656,   2,   2,-1000, 654, 653,-1000,
-1000,-1000, 543, 652,-211,-1000,-1000,-1000,   2,   2,
   2,   2, 651,   2,   2,-1000,   2,   2,-1000, 650,
-1000, -37,   2,   2, 649,-264, 648,-1000,-1000,-1000,
   2,   2,-1000,-1000, 647,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,  25,-1000, 219,-1000,   2,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,   2, 174,   2,
 185, 148,-1000,-1000, 163, 542, -34,-1000,-1000, 541,
 540,-1000,-1000, 539, 538, 537,-1000, -28,   2,  23,
   2,  20,-1000,-1000,-1000,-1000,-1000,   2,   2,-1000,
-1000,-1000,-1000, 646,-211,-211,-211,   2,-1000,   2,
   2,   2,   2,-1000, -37,-236,   2,-1000,-1000,-271,
-1000,-1000,-1000,   2,   2,-1000,  19,-1000,-304,-1000,
 536, 535, 534, 533, 532, 531, 146,-1000, 144,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000, 206,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000, 496,-1000,-1000, 529, 528,
 527,   2,   2,   2,   2,   2,-1000, 526,   2,-277,
-204,-1000,-1000,   2,   2, 201,-1000, 645, 642, 641,
   2, 440, 439,   2,-252,-246,-1000,-1000,-288,-1000,
-1000,   2,-190,-1000,  18,-1000,-1000,   2,-1000,   2,
   2,-1000,   2,-1000,-1000, 525, 524, 523, 522, 521,
 520, 519,-1000, 518, 396,-1000,   2,   2,   2,   2,
 437,   2, 430,   2,   2, -35,-440,-1000,-1000,-1000,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
-1000,-1000,-1000,   2,   2,-1000,-1000,-1000,-1000,-1000,
 429, 517, 515,   2,   2,-1000,   2,-1000,-1000,   2,
-242,-1000, 513, 512, 510,-399, 141, 200, 139, 133,
 199, 131, 500, 496, 500, 496,   2,-1000,   2, 496,
-1000,-1000,-1000,   2, 427,   2, 426,-1000,   2,-1000,
   2,   2, 640,-1000,-1000,-1000,-1000,-1000, 638, 493,
   2,   2,   2,-270, 492,   2,   2,   2,   2,   2,
   2, 637, 491,   2,   2,   2,-227,-1000,-1000,-1000,
-1000,-1000,-1000, 376, 375, 366, 363, 126, 198, 124,
 362,-1000, 197,   2,-1000,   2,-1000, 423, 422,   2,
-1000, 486,-1000,-1000,-1000, 636, 634,-1000,   2,   2,
   2,   2,   2,   2,   2,-1000,  15,   2,   2,   2,
-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,
 187,-1000, 421, 420,-1000,-1000,   2,-1000, 108,-145,
-1000,-1000, 484,   2,   2,   2,   2,   2,   2,   2,
 419,   2,   2,   2,-1000,-1000,-1000,   2, 186,-1000,
 633,-1000,-1000,-1000,-1000,-1000,-1000,-1000,   2,   2,
   2, 631,   2, 630, 418,-1000, 417,   2,   2,   2,
-410,-1000,-1000, 483, 474, 473, 181,   2, 415, 405,
-1000,-1000,-1000, 629,-1000,   2,   2, 404, 628,-1000,
-1000,-1000,-1000,-1000, 400, 472, 463,-375,-1000, 397,
   2, 627,-1000, 460, 101,  87,  28, 624, 452,   2,
   2, 623, 451,-1000,   2,-1000,-1000,-1000,-1000,-1000,
-1000, 450,-1000,   2,   2,   2,-1000,   2,   2, 178,
-158,   2,   2,   2,   2,   2,-1000,  13,   2,   2,
   2,   2,   2,-1000,   2, 391, 388,   2, 377,-1000,
 369, 448, 444,-224,-1000,   2, 443,   2,   2, 368,
-1000,-1000,-1000,-1000,-204,   2,   2,   2,-1000, 365,
   2,   2,   2,-1000,   2,   2,   2,   2, 357, 354,
 295, 622,-211,-211,-1000, 621, 619,-1000,-1000 };
short yypgo[]={

   0,1223,   0,   7,  15,1222,1221,   8,1220,1219,
1218,1217,1216,1215,1214,1213,1212, 285,1211,  11,
 225,   2,  23,1210,1209,1208,1207,1206,1205,1204,
1203,1202, 442, 342,1201,1200,1199,1198,1197,1196,
1195,1194,1193,1192,1191,1190,1189,1188,1187,1186,
1185,1184,1183,1182,1181,1180,1179,1178,1177,1176,
1175,1174,1173,1172,1171,1170,1169,1168,1167,1166,
1165,1164,1163,1162,1161,1160,1159,1151,1148,1057,
1056,1055,1054,1053,1052,1051,1050,1049,1048,1047,
1046,1045,1044,1043,1042,1041,1040,1039,1034,1030,
1025,1024,1023,1022,1021,1020,1017,1015,1014,1012,
1010,1009,1007,1006,1004, 997, 991, 990, 987, 983,
 982, 981, 980, 979, 978, 977, 976, 974, 973, 972,
 969, 968,  26, 967,   6,  34, 964, 963,  27, 962,
  10,   9, 960, 959,  16, 958,  18,  17,  13,  12,
 957, 956, 953, 951, 950, 949, 948, 945,   1, 944,
 943, 942, 941,   5, 940, 939, 937, 936, 935, 934,
 933, 932, 931, 927, 926, 925, 924, 922, 918, 917,
 916, 915, 914, 913, 912, 911, 910, 909, 907, 906,
 905, 901, 893, 892, 891, 890, 888, 886, 885, 884,
 883, 882,   3, 881,   4, 880, 879, 878, 877, 875,
 874, 873, 872, 871, 867, 866, 858, 856, 855, 854,
 853, 852, 851, 849, 848, 847, 845, 843, 842, 841,
 839, 837, 836, 835, 834, 833, 832, 831, 830, 829,
 828 };
short yyr1[]={

   0,   1,   1,   1,   1,  17,  17,  19,  19,  20,
  20,  20,  21,  25,  26,  26,  27,  24,  28,  29,
  29,  29,  30,  30,  30,  31,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  22,  22,  22,  22,  22,  22,  22,  22,
  22,  22,  23,  23,  23,  23,  23,  23,  23,  23,
  23,  23,  23,  23,  35, 131,  36, 133,  37, 132,
 132, 134, 134, 135, 135, 136,  38, 137,  39, 139,
 139, 139, 142,  40, 143,  41, 145, 138, 144, 144,
 144, 144, 144, 144, 144, 150, 140, 151, 141, 152,
 146, 153, 147, 154, 148, 155, 149, 156,  42, 159,
 158, 160, 158, 161, 157, 162, 157, 164, 163, 165,
 163, 166, 167,  43, 168, 168, 168, 168, 168, 168,
 168, 168, 176, 169, 177, 170, 178, 171, 179, 172,
 180, 173, 181, 174, 182, 175, 183,  44, 184,  45,
 185,  46, 187, 187, 187, 187, 187, 187, 187, 187,
 189, 188, 190, 186, 191,  47, 192, 192, 192, 192,
 192, 193,  48, 194, 194, 194, 194, 195,  49, 196,
 196, 196, 196, 196,  50,  51,  51,  52, 197,  53,
  15,  15,  15,  15,  15,  15,  15,  15,  15,  15,
  15,  15,  15,  15,  14,  14,  14,  14, 198, 198,
 199, 200, 199, 201, 203, 205,  54, 204, 206, 204,
   3,   3, 202, 202, 207, 208, 210,  55, 209, 209,
 209, 209, 214, 213, 215, 215, 217, 218, 216, 219,
 211, 220, 212,  56,  57,  58,  59,  60,  61,  62,
  63,  64,  65,  66,  67,  68,  12,  12,  12,  12,
  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,
  79,  79,  80,  81,  82,  83,  84,  85,  85,  85,
  86,  87,  88,  89,  90,  91,  92,  93,  94,  95,
  96, 221, 222, 223, 224, 225,  97,  98,  99,  99,
 100, 101,   4,   4,   4, 102, 103,   6,   6,   6,
 104, 105, 106, 107, 108,   5,   5,   5,   5,   5,
 109, 110, 111, 112, 113, 114, 115, 226, 116,   7,
   7, 227, 227,   8,   8,   8,   8, 117, 118, 119,
 228, 120, 229, 231, 121, 232, 230, 233, 230, 122,
 123, 124, 125,  34, 234, 234, 234, 234,  13,  13,
 126, 235, 235, 127, 128,  33,   9,   9,  10,  10,
  11,  11, 129, 236,  32, 237, 237, 237, 237, 237,
 238, 238, 130, 130,  18,  16, 239,  16, 240, 240,
 240, 240, 240, 240, 240, 240, 240, 240,   2,   2 };
short yyr2[]={

   0,   0,   3,   1,   3,   1,   2,   1,   2,   1,
   1,   1,   3,   3,   0,   2,   2,   4,   3,   0,
   2,   2,   0,   2,   2,   2,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   3,   0,   4,   0,   4,   2,
   3,   3,   4,   0,   2,   0,   4,   0,   5,   0,
   2,   2,   0,   4,   0,   5,   0,   2,   0,   2,
   2,   2,   2,   2,   2,   0,   5,   0,   5,   0,
   5,   0,   5,   0,   5,   0,   5,   0,   4,   0,
   4,   0,   5,   0,   4,   0,   5,   0,   4,   0,
   5,   0,   0,   6,   0,   2,   2,   2,   2,   2,
   2,   2,   0,   5,   0,   5,   0,   5,   0,   5,
   0,   5,   0,   5,   0,   5,   0,   5,   0,   7,
   0,   6,   0,   2,   2,   2,   2,   2,   2,   2,
   0,   5,   0,   5,   0,   6,   0,   2,   7,   5,
   7,   0,   5,   0,   2,   6,   5,   0,   5,   0,
   2,   7,   5,   7,   5,   6,  15,   9,   0,  14,
   0,   1,   1,   1,   1,   1,   1,   1,   1,   1,
   1,   1,   1,   1,   1,   1,   1,   1,   0,   2,
   0,   0,   5,   0,   0,   0,   9,   0,   0,   5,
   1,   1,   0,   2,   0,   0,   0,  12,   0,   2,
   2,   2,   0,   5,   0,   2,   0,   0,   9,   0,
   5,   0,   5,   4,   4,   5,   3,   3,   5,   3,
   3,   3,   5,   3,   3,   3,   1,   1,   1,   1,
   3,   5,   3,   5,   3,   3,   3,  10,  10,   4,
   3,   3,   3,   3,   5,   3,   3,   3,   3,   3,
   5,   3,   3,   4,   3,   3,   3,   4,   3,   4,
   3,   0,   0,   0,   0,   0,  15,   3,   3,   3,
   3,   5,   1,   1,   1,   3,   6,   1,   1,   1,
   7,   7,   7,  28,   5,   1,   1,   1,   1,   1,
   2,   2,  26,  27,   3,   4,  12,   0,  15,   1,
   1,   0,   8,   1,   1,   1,   1,   3,   3,   3,
   0,   4,   0,   0,   5,   0,   4,   0,   5,   2,
   3,   2,   3,   3,   0,   4,   6,   6,   1,   1,
   3,   4,   5,   5,   3,  12,   1,   1,   1,   1,
   1,   1,   5,   0,   9,   0,   1,   6,   8,  13,
   0,   4,   4,  13,   0,   0,   0,   4,   0,   2,
   2,   2,   2,   2,   2,   2,   2,   4,   1,   1 };
short yychk[]={

-1000,  -1, 463, -17, -20, -22, -23, -24, -35, -36,
 -37, -38, -39, -40, -41, -42, -43, -44, -45, -46,
 -47, -48, -49, -50, -51, -52, -53, -54, -55, -56,
 -57, -58, -59, -60, -61, -62, -63, -64, -65, -66,
 -67, -68, -69, -70, -71, -72, -73, -74, -75, -76,
 -77, -78, -79, -80, -81, -82, -83, -84, -85, -86,
 -87, -88, -89, -90, -91, -92, -93, -94, -95, -96,
 -97, -98, -99,-100,-101,-102,-103,-104,-105,-106,
-107,-108,-109,-110,-111,-112,-113,-114,-115,-116,
-117,-118,-119,-120,-121,-122,-123,-124,-125,-126,
-127,-128, -33,-129,-130, -32, -28, 262, 263, 264,
 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
 345, 346, 465, 347, 348, 430, 351, 352, 354, 355,
 356, 357, 358, 360, 359, 349, -16, -18, 361, -20,
 -29, 257,-131,-133,-136,-137,-142,-143,-156,-166,
-183, 257,-185, 257, 257, 257,  -2, 258, 257,  -2,
  -2,  -2,  -3, 368, 369,  -3, 257, 257, 257, 257,
  -2,  -2, 257, 257,  -2,  -2, 257, 257, -12, 421,
 422, 423, 424, 257,  -2, 257,  -2, 257, 257, 257,
  -2,  -2, 257, 379, 380, 257,  -2,  -2, 257, 257,
 381, 382, 383,  -2, 257, 257, 257,  -2,  -2,  -2,
  -2,  -2,  -2, 257,-221, 257, 394, 395, 257, 257,
 257, 257, 257, 257, 257, 257, 257,  59,  59, 123,
 123, 257, 257, 257, 257, 257, 257, 257,-228,-229,
  59, 259,  59, 257,-235, 257,  -2, 257, 257, 257,
 257,-236, 257, -17, -19, -21, -25, 260,-239, -30,
 -32, -33,  59,-132,  -2,-134,  -2,-132,-138,-145,
-132,-138,-157, 123,-163, 123,-138, 257,-138, 257,
-193,-195,  -2,  -2,  -2,  -2, 257, 257,  -2,  -2,
  -2,  59,  59,  -2,  59,  59,  59,  -2,  59,  59,
  59,  59,  -2,  59,  -2,  59,  59,  59,  -2,  -2,
 257,  59,  59,  59,  59,  -2,  59,  59,  59,  59,
  59,  -2,  59,  59, 257,  59,  59,  59,  -2,  59,
  -2,  59, 391,  59,  59,  59,  59, 257,  59,  -2,
  -2,  -2,  -2, 123,  -5, 425, 426, 427, 428, 429,
  -2,  -2,  59,  -4, 402, 403, 404,  -2,  -2,  59,
  59,  59, 256,-230, 259,  59,  59,  59, 257,  -2,
  -2,  59, 257,  -2, 380, 379, 257,  59, -21, -26,
 257,-240, -31, -22, -34, 350, 353,  59,  -2,  -2,
  59,  -2,  -2,  59,-139,-134,  59,-144,  59, 123,
-161, 123,-167,-164,-144,-184,-186, 440,-191,-194,
-196, 259,  -2,  -2,  -2,-201, 257,  59,  59,  -2,
  -2,  -2,  -2,  -2,  -2,  -2,  59,  -2,  -2,  59,
  59,  59,-222,  -4,  -6, 405, 406, 407,  -2,  -2,
  -2,  -2,  -4,  -2,  -2,  59,  -2,  -2,  59,-231,
 259,-232,  -2,  -2,  -2, 257,  -7, 408, 409,  59,
 123,  -2, -27, -22, 261,  59,  59, 398, 399, 400,
 401, 436, 437, 438, 439, 435,  59,-234,  -2,  -2,
  -2,  59,-140,-141, 371, 373,  59,-140,-141,-146,
-147,-148,-149, 372, 374, 376, 375,-162,-132,-165,
-168,-134,  59,-138,-187,-190,-192,  59, 441, 442,
 443,  59, 441, 442, 443, 445,  59, 259,  -2, 257,
-202, 257,  59,  59,  59,  59,  59,  -2,  -2,  59,
  59, 123,  59,  -4,  -2,  -2,  -2,  -2,  59,  -2,
  -2,  -2,  -2,  59,-233, -19,  -2,  -2,  59,  -9,
 415, 416,  59,  -2,  -2,  59, 257,  59, 257,  -2,
-150,-151,-152,-153,-154,-155,-132, 125,-134,  59,
-169,-170,-171,-172,-173,-174,-175, 371, 373, 372,
 378, 374, 376, 375, 125,-144,  59,-188,-140,-141,
-146,-147,-148,-149, 378, 123,  59, 441, 442, 443,
 444, 123, 123, 123, 123, 123,  59, 446,  -2, 257,
-203,  -2, 257,  -2,  -2,-135,  59,  -4,  -4,  -4,
  -2,  -2,  -2,  -2,  -2, -19, 464,  -2, -10, 417,
 418,  -2,  -2, 257, -13, 433, 434, 123, 123, 123,
 123, 123, 123, 125, 125,-176,-177,-178,-179,-180,
-181,-182,  59,-189,-158, 123, 123, 123, 123,  -2,
  -2,  -2,  -2,  -2, 123,  -2, -15, 447, 448, 449,
 450, 451, 452, 453, 454, 404, 455, 456, 457, 458,
-204, 362,-207,  -2,  -2, 257, 125,  59,  59,  59,
  -2, 125, 125,  -2,  -7, 464, -11, 419, 420,  -2,
-237, 386, 387, 388, 389, 257,-134,-135,-134,-134,
-135,-134, 123, 123, 123, 123, 123, 123, 123, 123,
 123, 125,-159,  -2,  -2,  -2,  -2, 125,  -2, 125,
  -2,  -2, 259, -14, 459, 460, 461, 462,-205,-206,
-202,  -2,  -2,-223, 125, 123, 123,  -2,  -2,  -2,
  -2,-238, 390, 123, 123, 123, 431, 125, 125, 125,
 125, 125, 125,-163,-158,-163,-158,-134,-135,-134,
-158,-160,-135,  -2, 125,  -2, 125,  -2,  -2,  -2,
  59,-197,  59, 123,-208,  -2,  -2, 392, 123,  -2,
  -2,  -2,  -2,  -2,  -2,  59, 123,  -2,  -2,  -2,
 257, 432, 125, 125, 125, 125, 125, 125, 125, 125,
-135, 125,  -2,  -2, 125, 125,  -2, 123,-202,-209,
  59,  59,-224,  -2,  -2,  -2,  -2,  -2,  -2,  -2,
 257,  -2,  -2,  -2, 125, 125, 125,  -2,-198, 125,
-210,-211,-212,-213, 364, 365, 366, 123,  -2,  -2,
  -2,  -2,  -2,  -2,  -2, 125,  -2,  -2,  -2,  -2,
 125, 257,  59,-219,-220,-214,-135,  -2,  -2,  -2,
  59,  -2,  59, 125, 125,  -2,  -2,  -2,-199, 439,
 123, 123, 123, 125,  -2, 125, 125,-226,  59,  -2,
  -2, 125,  59,-200,-202,-202,-215,-225, 125, 123,
 123,-227, 410, 125,  -2,  59, 123, 125, 125, 125,
-216, 367,  59, 123,  -2,  -2,  59, 123,  -2,-135,
 123,  -2,  -2,  -2,  -2,  -2, 125,  -3,  -2,  -2,
  -2,  -2,  -2, 257,  -2,  -2,  -2,  -2,  -2,-217,
  -2, 125, 125,  -2, 125,-202, 125, 123, 123,  -8,
 411, 412, 413, 414,-218, 123,  -2,  -2, 125,-204,
  -2,  -2,  -2, 125,  -2,  -2,  -2,  -2,  -2,  -2,
  -2, 125, 125, 125,  59,  -4,  -4,  59,  59 };
short yydef[]={

   1,  -2,  -2,   3,   5,   9,  10,  11,  26,  27,
  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,
  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,
  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,
  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,
  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,
  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
  88,  89,  90,  91,  92,  93,  94,  95,  96,  97,
  98,  99, 100, 101, 102, 103, 104, 105, 106, 107,
 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
 118, 119, 120, 121, 122, 123,  19,   0, 125, 127,
 135, 137, 142, 144, 167, 181, 206,   0, 210,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0, 351,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0, 400, 402,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0, 433,   0,   0,   0, 446,   6,
  22,   0,   0,   0,   0, 146,   0, 146,   0,   0,
 146,   0, 146,   0, 231, 237,   0, 458, 459,   0,
   0,   0,   0, 280, 281,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0, 316,
 317, 318, 319,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 380, 381,   0,
   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
 409,   0, 411,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   2,   4,   7,  14,   0, 448,   0,
  20,  21, 124,   0,   0,   0,   0,   0, 139,   0,
   0, 148,   0, 173, 182, 177, 148, 208,   0, 224,
 233, 239,   0,   0,   0,   0, 273,   0,   0,   0,
   0, 306, 307,   0, 309, 310, 311,   0, 313, 314,
 315, 320,   0, 322,   0, 324, 325, 326,   0,   0,
   0, 330, 331, 332, 333,   0, 335, 336, 337, 338,
 339,   0, 341, 342,   0, 344, 345, 346,   0, 348,
   0, 350, 352, 357, 358, 359, 360,   0, 365,   0,
   0,   0,   0,   0,   0, 375, 376, 377, 378, 379,
   0,   0, 384,   0, 362, 363, 364,   0,   0, 397,
 398, 399,   0, 403, 405, 410, 412, 420,   0,   0,
   0, 424,   0,   0,   0,   0,   0,  18,   8,   0,
   0,   0,  17,  23,  24,   0, 414, 126,   0, 129,
 128,   0,   0, 136,   0, 147, 143,   0, 168, 175,
   0, 179, 184,   0,   0, 146, 212, 222, 226,   0,
   0,   0,   0,   0,   0, 282,   0, 303, 304,   0,
   0,   0,   0,   0,   0,   0, 329,   0,   0, 343,
 347, 349,   0,   0,   0, 367, 368, 369,   0,   0,
   0,   0,   0,   0,   0, 385,   0,   0, 401,   0,
 407,   0,   0,   0,   0,   0,   0, 389, 390, 442,
   0,   0,  12,  15,   0,  13, 447, 449, 450, 451,
 452, 453, 454, 455, 456,   0,  25,   0, 130,   0,
 131, 138, 140, 141, 155, 157, 145, 149, 150, 151,
 152, 153, 154, 159, 161, 163, 165,   0,   0,   0,
   0,   0, 207, 148,   0,   0,   0, 232, 234,   0,
   0, 238, 240,   0,   0,   0, 244,   0,   0,   0,
 274,   0, 305, 308, 312, 321, 323,   0,   0, 334,
 340, 133, 361,   0,   0,   0,   0,   0, 374,   0,
   0,   0,   0, 404,   0,   0,   0, 421, 423,   0,
 426, 427, 432,   0,   0,  16,   0, 413,   0, 132,
   0,   0,   0,   0,   0,   0,   0, 174,   0, 183,
 185, 186, 187, 188, 189, 190, 191, 192, 194, 196,
 198, 200, 202, 204, 178,   0, 211, 213, 214, 215,
 216, 217, 218, 219, 220,   0, 225, 227,   0,   0,
   0,   0,   0,   0,   0,   0, 245,   0,   0, 250,
 277, 283, 284,   0,   0,   0, 366,   0,   0,   0,
   0,   0,   0,   0,   0,   0, 406, 422,   0, 428,
 429,   0, 435, 457,   0, 418, 419,   0, 133,   0,
   0, 133,   0, 176, 180,   0,   0,   0,   0,   0,
   0,   0, 209,   0,   0, 169,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 251, 252, 253,
 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
 275, 278, 282,   0,   0, 134, 353, 370, 371, 372,
   0,   0,   0,   0,   0, 408,   0, 430, 431,   0,
 440, 436,   0,   0,   0, 415,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 133,   0,   0,
 171, 223, 133,   0,   0,   0,   0, 236,   0, 242,
   0,   0,   0, 248, 264, 265, 266, 267,   0,   0,
 285,   0,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0,   0,   0,   0, 156, 158, 160,
 162, 164, 166,   0,   0,   0,   0,   0,   0,   0,
   0, 133,   0,   0, 229,   0, 235,   0,   0,   0,
 247,   0, 276, 282, 288,   0,   0, 354,   0,   0,
   0,   0,   0,   0,   0, 434,   0,   0,   0,   0,
 416, 417, 193, 195, 197, 199, 201, 203, 205, 221,
   0, 170,   0,   0, 241, 243,   0, 268,   0, 286,
 327, 328,   0,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0, 172, 228, 230,   0,   0, 279,
   0, 289, 290, 291, 299, 301, 292, 133,   0,   0,
   0,   0,   0,   0,   0, 441,   0,   0,   0,   0,
 270, 269, 287,   0,   0,   0,   0,   0,   0,   0,
 386, 387, 425,   0, 437,   0,   0,   0,   0, 271,
 282, 282, 294, 355,   0,   0,   0, 391, 443,   0,
   0,   0, 249,   0,   0,   0,   0,   0,   0,   0,
   0,   0,   0, 438,   0, 246, 133, 300, 302, 293,
 295,   0, 356,   0,   0,   0, 388,   0,   0,   0,
   0,   0,   0,   0,   0,   0, 272,   0,   0,   0,
   0,   0,   0, 296,   0,   0,   0,   0,   0, 282,
   0,   0,   0,   0, 439, 297,   0,   0,   0,   0,
 393, 394, 395, 396, 277,   0,   0,   0, 392,   0,
   0,   0,   0, 298,   0,   0,   0,   0,   0,   0,
   0,   0,   0,   0, 382,   0,   0, 383, 373 };
/* static char yaccpar_sccsid[] = "@(#) bifparse.c,v 1.3 91/01/17 10:17:23 mikec Exp"; */

#
# define YYFLAG -1000
# define YYERROR goto yyerrlab
# define YYACCEPT return(0)
# define YYABORT return(1)

/*	parser for yacc output	*/

#ifdef YYDEBUG
int yydebug = 0; /* 1 for debugging */
#endif
YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */
int yychar = -1; /* current input token number */
int yynerrs = 0;  /* number of errors */
short yyerrflag = 0;  /* error recovery flag */

yyparse() {

	short yys[YYMAXDEPTH];
	short yyj, yym;
	register YYSTYPE *yypvt;
	register short yystate, *yyps, yyn;
	register YYSTYPE *yypv;
	register short *yyxi;

	yystate = 0;
	yychar = -1;
	yynerrs = 0;
	yyerrflag = 0;
	yyps= &yys[-1];
	yypv= &yyv[-1];

 yystack:    /* put a state and value onto the stack */

#ifdef YYDEBUG
	if( yydebug  ) printf( "state %d, char 0%o\n", yystate, yychar );
#endif
		if( ++yyps> &yys[YYMAXDEPTH] ) { yyerror( "yacc stack overflow" ); return(1); }
		*yyps = yystate;
		++yypv;
		*yypv = yyval;

 yynewstate:

	yyn = yypact[yystate];

	if( yyn<= YYFLAG ) goto yydefault; /* simple state */

	if( yychar<0 ) if( (yychar=yylex())<0 ) yychar=0;
	if( (yyn += yychar)<0 || yyn >= YYLAST ) goto yydefault;

	if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */
		yychar = -1;
		yyval = yylval;
		yystate = yyn;
		if( yyerrflag > 0 ) --yyerrflag;
		goto yystack;
		}

 yydefault:
	/* default state action */

	if( (yyn=yydef[yystate]) == -2 ) {
		if( yychar<0 ) if( (yychar=yylex())<0 ) yychar = 0;
		/* look through exception table */

		for( yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate) ; yyxi += 2 ) ; /* VOID */

		while( *(yyxi+=2) >= 0 ){
			if( *yyxi == yychar ) break;
			}
		if( (yyn = yyxi[1]) < 0 ) return(0);   /* accept */
		}

	if( yyn == 0 ){ /* error */
		/* error ... attempt to resume parsing */

		switch( yyerrflag ){

		case 0:   /* brand new error */

		yyerrlab:
			yyerror( "syntax error" );
			++yynerrs;

		case 1:
		case 2: /* incompletely recovered error ... try again */

			yyerrflag = 3;

			/* find a state where "error" is a legal shift action */

			while ( yyps >= yys ) {
			   yyn = yypact[*yyps] + YYERRCODE;
			   if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){
			      yystate = yyact[yyn];  /* simulate a shift of "error" */
			      goto yystack;
			      }
			   yyn = yypact[*yyps];

			   /* the current yyps has no shift onn "error", pop stack */

#ifdef YYDEBUG
			   if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] );
#endif
			   --yyps;
			   --yypv;
			   }

			/* there is no state on the stack with an error shift ... abort */

	yyabort:
			return(1);


		case 3:  /* no shift yet; clobber input char */

#ifdef YYDEBUG
			if( yydebug ) printf( "error recovery discards char %d\n", yychar );
#endif

			if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */
			yychar = -1;
			goto yynewstate;   /* try again in the same state */

			}

		}

	/* reduction by production yyn */

#ifdef YYDEBUG
		if( yydebug ) printf("reduce %d\n",yyn);
#endif
		yyps -= yyr2[yyn];
		yypvt = yypv;
		yypv -= yyr2[yyn];
		yyval = yypv[1];
		yym=yyn;
			/* consult goto table to find next state */
		yyn = yyr1[yyn];
		yyj = yypgo[yyn] + *yyps + 1;
		if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]];
		switch(yym){
			
case 2:
# line 389 "bifparse.y"
{ close_reportfile(); } break;
case 3:
# line 391 "bifparse.y"
{ close_reportfile(); } break;
case 4:
# line 393 "bifparse.y"
{ close_reportfile(); } break;
case 13:
# line 413 "bifparse.y"
{ (void)bif_begstr(yypvt[-1].l); } break;
case 16:
# line 422 "bifparse.y"
{ (void)bif_endstr(); } break;
case 18:
# line 429 "bifparse.y"
{ (void)bif_begintest(yypvt[-1].l); } break;
case 25:
# line 442 "bifparse.y"
{ (void)bif_endtest(); } break;
case 124:
# line 550 "bifparse.y"
{ (void)bif_label(yypvt[-1].l); } break;
case 125:
# line 554 "bifparse.y"
{ (void) bif_marker(BIF_P_BEGIN); } break;
case 126:
# line 556 "bifparse.y"
{ (void)bif_marker(BIF_P_END  ); } break;
case 127:
# line 560 "bifparse.y"
{ (void)bif_marker3(BIF_P_BEGIN); } break;
case 128:
# line 562 "bifparse.y"
{ (void)bif_marker3(BIF_P_END  ); } break;
case 129:
# line 566 "bifparse.y"
{
				 (void)bif_pair(yypvt[-1].f,yypvt[-0].f);  /* rev 0.8 */
				} break;
case 130:
# line 570 "bifparse.y"
{(void)bif_pair(yypvt[-1].f,yypvt[-0].f); } break;
case 131:
# line 574 "bifparse.y"
{
				 (void)bif_triplet(yypvt[-2].f,yypvt[-1].f,yypvt[-0].f); 
				} break;
case 132:
# line 578 "bifparse.y"
{(void)bif_triplet(yypvt[-2].f,yypvt[-1].f,yypvt[-0].f);} break;
case 134:
# line 583 "bifparse.y"
{ bif_intlist(yypvt[-0].l); } break;
case 135:
# line 587 "bifparse.y"
{ (void)
				   bif_line(BIF_P_BEGIN); } break;
case 136:
# line 590 "bifparse.y"
{ (void)bif_line(BIF_P_END  ); } break;
case 137:
# line 594 "bifparse.y"
{ 
				  bif_line3(BIF_P_BEGIN); 
				  not_repeated(-1); 
				  with_data_name = "LINE3";
				} break;
case 138:
# line 600 "bifparse.y"
{ 
				  not_repeated(-1); 
				  bif_line3(BIF_P_END  ); 
				} break;
case 142:
# line 613 "bifparse.y"
{ (void)
				   bif_polygon(BIF_P_BEGIN); } break;
case 143:
# line 616 "bifparse.y"
{ (void)bif_polygon(BIF_P_END  ); } break;
case 144:
# line 620 "bifparse.y"
{ 
				  bif_polygon3 (BIF_P_BEGIN); 
				  not_repeated(-1); 
				  with_data_name = "POLYGON3";
				} break;
case 145:
# line 626 "bifparse.y"
{ 
				  not_repeated(-1); 
				  (void)bif_polygon3 (BIF_P_END  ); 
				} break;
case 146:
# line 632 "bifparse.y"
{ (void)bif_group(VERTEX_COORDINATES); } break;
case 147:
# line 634 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 155:
# line 647 "bifparse.y"
{ 
				  if(not_repeated(1)) 
				  bif_group(VERTEX_COLORS); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("VERTEX_COLORS"); 
				  } 
				} break;
case 156:
# line 657 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 157:
# line 661 "bifparse.y"
{ 
				  if(not_repeated(2)) 
				  bif_group(VERTEX_COLOR_INDICES); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("VERTEX_COLOR_INDICES"); 
				  } 
				} break;
case 158:
# line 671 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 159:
# line 676 "bifparse.y"
{ 
				  if(not_repeated(3)) 
				  bif_group(VERTEX_NORMALS); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("VERTEX_NORMALS"); 
				  } 
				} break;
case 160:
# line 686 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 161:
# line 691 "bifparse.y"
{ 
				  if(not_repeated(4)) 
				  bif_group(FACET_COLORS); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("FACET_COLORS"); 
				  } 
				} break;
case 162:
# line 701 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 163:
# line 706 "bifparse.y"
{ 
				  if(not_repeated(5)) 
				  bif_group(FACET_COLOR_INDICES); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("FACET_COLOR_INDICES"); 
				  } 
				} break;
case 164:
# line 716 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 165:
# line 721 "bifparse.y"
{ 
				  if(not_repeated(6)) 
				  bif_group(FACET_NORMALS); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("FACET_NORMALS"); 
				  } 
				} break;
case 166:
# line 731 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 167:
# line 737 "bifparse.y"
{ 
				  (void)bif_faset (BIF_P_BEGIN);  /* rev 0.8 */
				  (void)bif_group(VERTEX_COORDINATES); 
				} break;
case 168:
# line 743 "bifparse.y"
{ 
				  (void)bif_group(BIF_END_OF_GROUP); 
				  (void)bif_faset (BIF_P_END  ); 
				} break;
case 169:
# line 750 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 170:
# line 753 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 171:
# line 756 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 172:
# line 759 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 173:
# line 763 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 174:
# line 766 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 175:
# line 769 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 176:
# line 772 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 177:
# line 776 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 178:
# line 779 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 179:
# line 782 "bifparse.y"
{ (void)bif_contour(BIF_P_BEGIN); } break;
case 180:
# line 785 "bifparse.y"
{ (void)bif_contour(BIF_P_END  ); } break;
case 181:
# line 789 "bifparse.y"
{ 
				  (void)bif_faset3(BIF_P_BEGIN); 
				  (void)bif_group(VERTEX_COORDINATES); 
				} break;
case 182:
# line 794 "bifparse.y"
{ 
				   (void)bif_group(BIF_END_OF_GROUP); 
				   (void)not_repeated(-1); 
			 	} break;
case 183:
# line 799 "bifparse.y"
{ 
				   (void)not_repeated(-1); 
				   (void)bif_faset3 (BIF_P_END  );
			 	} break;
case 192:
# line 816 "bifparse.y"
{ if(not_repeated(1))
				     (void)bif_group(VERTEX_COLORS); 
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); /*rev 0.8*/
				     yyerror(FAS_ERM1);
				  }
				} break;
case 193:
# line 825 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 194:
# line 829 "bifparse.y"
{ if(not_repeated(2))
				     (void)bif_group(VERTEX_COLOR_INDICES);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); /*rev 0.8*/
				     yyerror(FAS_ERM2);
				  }
				} break;
case 195:
# line 838 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 196:
# line 842 "bifparse.y"
{ if(not_repeated(3))
				     (void)bif_group(VERTEX_NORMALS);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); 
				     yyerror(FAS_ERM3);
				  }
				} break;
case 197:
# line 851 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 198:
# line 855 "bifparse.y"
{ if(not_repeated(4))
				     (void)bif_group(EDGE_VISIBILITY);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); 
				     yyerror(FAS_ERM4);
				  }
				} break;
case 199:
# line 864 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 200:
# line 868 "bifparse.y"
{ if(not_repeated(5))
				     (void)bif_group(FACET_COLORS);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); 
				     yyerror(FAS_ERM5);
				  }
				} break;
case 201:
# line 877 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 202:
# line 881 "bifparse.y"
{ if(not_repeated(6))
				     (void)bif_group(FACET_COLOR_INDICES);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); 
				     yyerror(FAS_ERM6);
				  }
				} break;
case 203:
# line 890 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 204:
# line 894 "bifparse.y"
{ if(not_repeated(7))
				     (void)bif_group(FACET_NORMALS);
				  else
				  {
				     (void)bif_group(IGNORE_GROUP); 
				     yyerror(FAS_ERM7);
				  }
				} break;
case 205:
# line 903 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 206:
# line 908 "bifparse.y"
{
				  bif_triangle3 (BIF_P_BEGIN);/* rev 0.8 */
				  not_repeated(-1); 
				  with_data_name = "TRIANGLE3";
				} break;
case 207:
# line 914 "bifparse.y"
{
				  not_repeated(-1); 
				  (void)bif_triangle3 (BIF_P_END  ); 
				} break;
case 208:
# line 922 "bifparse.y"
{
				  (void)bif_quad_mesh3 (BIF_P_BEGIN);/*rev 0.8*/
				  (void)bif_quadmeshorder(yypvt[-1].l,yypvt[-0].l);    /*rev 0.8*/
				  not_repeated(-1); 
				  with_data_name = "QUAD_MESH3";
				} break;
case 209:
# line 929 "bifparse.y"
{
				  not_repeated(-1); 
				  (void)bif_quad_mesh3 (BIF_P_END  ); 
				} break;
case 210:
# line 936 "bifparse.y"
{
				  bif_indexpoly3 (BIF_P_BEGIN); /* rev 0.8 */
				  not_repeated(-1); 
				  with_data_name = "INDEX_POLYGON3";
				} break;
case 211:
# line 944 "bifparse.y"
{
				  not_repeated(-1); 
				  (void)bif_indexpoly3 (BIF_P_END  ); 
				} break;
case 220:
# line 962 "bifparse.y"
{ 
				  if(not_repeated(7)) 
				  bif_group(EDGE_VISIBILITY); 
				  else 
				  { 
				     (void)bif_group(IGNORE_GROUP);  
				     WD3B_error("EDGE_VISIBILITY"); 
				  } 
				} break;
case 221:
# line 972 "bifparse.y"
{ (void)bif_group(BIF_END_OF_GROUP); } break;
case 222:
# line 978 "bifparse.y"
{(void)bif_group(FACET_CONNECTIVITY);} break;
case 223:
# line 981 "bifparse.y"
{(void)bif_group(BIF_END_OF_GROUP); } break;
case 224:
# line 986 "bifparse.y"
{
				   (void)bif_sphere3(BIF_P_BEGIN); /* rev 0.8 */
				   (void)bif_sphereorder(yypvt[-1].l,yypvt[-0].l);
				   (void)not_repeated(-1); 
				} break;
case 225:
# line 993 "bifparse.y"
{
				   (void)not_repeated(-1); 
				   (void)bif_sphere3(BIF_P_END); 
				} break;
case 227:
# line 1001 "bifparse.y"
{ 
				  bif_exact(TRUE);
				} break;
case 228:
# line 1006 "bifparse.y"
{ 
				  if(not_repeated(1)) 
				     bif_center(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GS_ERM1);
				} break;
case 229:
# line 1013 "bifparse.y"
{ 
				  if(not_repeated(2)) 
				     bif_radius(yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GS_ERM2);
				} break;
case 230:
# line 1020 "bifparse.y"
{ 
				  if(not_repeated(3)) 
				     bif_scalefactors(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GS_ERM3);
				} break;
case 231:
# line 1029 "bifparse.y"
{
				   (void)bif_gencircle(BIF_P_BEGIN); /*rev 0.8*/
				   (void)bif_circleedges(yypvt[-0].l); /* rev 0.8 */
				   (void)not_repeated(-1); 
				} break;
case 232:
# line 1036 "bifparse.y"
{
				   (void)not_repeated(-1); 
				   (void)bif_gencircle(BIF_P_END);
				} break;
case 234:
# line 1044 "bifparse.y"
{ 
				  bif_exact(TRUE);
				} break;
case 235:
# line 1049 "bifparse.y"
{ 
				  if(not_repeated(1)) 
				     bif_center(yypvt[-2].f,yypvt[-1].f,0.0); /* rev 0.8 */
				  else yyerror(GC_ERM1);
				} break;
case 236:
# line 1056 "bifparse.y"
{ 
				  if(not_repeated(2)) 
				     bif_radius(yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GC_ERM2);
				} break;
case 237:
# line 1065 "bifparse.y"
{
				   (void)bif_gencircle3(BIF_P_BEGIN);/*rev 0.8*/
				   (void)bif_circleedges(yypvt[-0].l); /* rev 0.8 +3 */
				   (void)not_repeated(-1); 
				} break;
case 238:
# line 1072 "bifparse.y"
{
				   (void)not_repeated(-1); 
				   (void)bif_gencircle3(BIF_P_END);
				} break;
case 240:
# line 1080 "bifparse.y"
{ 
				  bif_exact(TRUE);
				} break;
case 241:
# line 1085 "bifparse.y"
{ 
				  if(not_repeated(1)) 
				     bif_center(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GC3_ERM1);
				} break;
case 242:
# line 1092 "bifparse.y"
{ 
				  if(not_repeated(2)) 
				     bif_radius(yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GC3_ERM2);
				} break;
case 243:
# line 1099 "bifparse.y"
{ 
				  if(not_repeated(3)) 
				     bif_normal(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); /* rev 0.8 */
				  else yyerror(GC3_ERM3);
				} break;
case 244:
# line 1110 "bifparse.y"
{bif_text(yypvt[-3].f,yypvt[-2].f,yypvt[-1].str);} break;
case 245:
# line 1117 "bifparse.y"
{ (void)bif_text3(yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].str, /*rev 0.8 delta*/
					FALSE,0.,0.,0.,0.,0.,0.); } break;
case 246:
# line 1128 "bifparse.y"
{ (void)bif_text3(yypvt[-13].f,yypvt[-12].f,yypvt[-11].f,yypvt[-10].str, /*rev 0.8 delta*/
				TRUE,yypvt[-7].f,yypvt[-6].f,yypvt[-5].f,yypvt[-4].f,yypvt[-3].f,yypvt[-2].f);} break;
case 247:
# line 1137 "bifparse.y"
{bif_annotationtext(yypvt[-7].f,yypvt[-6].f,yypvt[-5].f, /* rev 0.8 */
				yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].str);} break;
case 248:
# line 1154 "bifparse.y"
{
				   bif_pixelmap3(BIF_P_BEGIN,
				   		yypvt[-6].f,yypvt[-5].f,yypvt[-4].f, yypvt[-3].l,yypvt[-2].l,yypvt[-1].l,yypvt[-0].l);
				} break;
case 249:
# line 1161 "bifparse.y"
{
				  bif_pixelmap3(BIF_P_END,
						0,0,0,0,0,0,0 );
				} break;
case 250:
# line 1167 "bifparse.y"
{ yyval.l = REPLACE ; } break;
case 251:
# line 1168 "bifparse.y"
{yyval.l=ADD;} break;
case 252:
# line 1169 "bifparse.y"
{yyval.l=AND;} break;
case 253:
# line 1170 "bifparse.y"
{yyval.l=CLEAR;} break;
case 254:
# line 1171 "bifparse.y"
{yyval.l=INVERT;} break;
case 255:
# line 1172 "bifparse.y"
{yyval.l=NAND;} break;
case 256:
# line 1173 "bifparse.y"
{yyval.l=NOOP;} break;
case 257:
# line 1174 "bifparse.y"
{yyval.l=NOR;} break;
case 258:
# line 1175 "bifparse.y"
{yyval.l=OR;} break;
case 259:
# line 1176 "bifparse.y"
{yyval.l=REPLACE;} break;
case 260:
# line 1177 "bifparse.y"
{yyval.l=SET;} break;
case 261:
# line 1178 "bifparse.y"
{yyval.l=SUBTRACT_DEST;} break;
case 262:
# line 1179 "bifparse.y"
{yyval.l=SUBTRACT_SOURCE;} break;
case 263:
# line 1180 "bifparse.y"
{yyval.l=XOR;} break;
case 264:
# line 1184 "bifparse.y"
{ yyval.l = PIXEL_VALUES ;             } break;
case 265:
# line 1186 "bifparse.y"
{ yyval.l = INTENSITY_VALUES ;         } break;
case 266:
# line 1188 "bifparse.y"
{ yyval.l = PIXEL_VALUE_SEGMENTS ;     } break;
case 267:
# line 1190 "bifparse.y"
{ yyval.l = INTENSITY_VALUE_SEGMENTS ; } break;
case 269:
# line 1195 "bifparse.y"
{ bif_fillpixelbuffer(yypvt[-0].l); } break;
case 271:
# line 1200 "bifparse.y"
{ bif_group(PSEUDO_COLOR); } break;
case 272:
# line 1202 "bifparse.y"
{ bif_group(BIF_END_OF_GROUP); } break;
case 273:
# line 1210 "bifparse.y"
{ 
				  	   (void)bif_nubc(BIF_P_BEGIN);
						/*rev1.0*/ 
					   (void)bif_nubcholder(yypvt[-1].l,yypvt[-0].l);
						/*rev1.0*/
				  	   (void)bif_group(CTRL_POINTS); 
						/* rev 1.0 CTRL_POINTS*/
					} break;
case 274:
# line 1219 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 275:
# line 1223 "bifparse.y"
{ 
				   	   (void)bif_nubc (BIF_P_END);
							/*rev 1.0*/
			 		} break;
case 278:
# line 1233 "bifparse.y"
{ 
				  	   (void)bif_group(KNOTS); 
						     /* rev 1.0 KNOTS*/
			 		} break;
case 279:
# line 1239 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 280:
# line 1244 "bifparse.y"
{ yyval.l = RATIONAL; } break;
case 281:
# line 1245 "bifparse.y"
{ yyval.l = NON_RATIONAL; } break;
case 283:
# line 1250 "bifparse.y"
{ bif_real_list(yypvt[-0].f); } break;
case 284:
# line 1262 "bifparse.y"
{ 
				  	   (void)bif_nubs(BIF_P_BEGIN); 
				  	   not_repeated(-1); 
				  	   with_data_name = 
					        "NON_UNIFORM_BSPLINE_SURFACE";
					   (void)bif_nubsholder(yypvt[-4].l,yypvt[-3].l,
								yypvt[-2].l,yypvt[-1].l,yypvt[-0].l); 
				  	   (void)bif_group(CTRL_POINTS); 
					} break;
case 285:
# line 1272 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 286:
# line 1276 "bifparse.y"
{ 
				   	   (void)bif_nubs (BIF_P_END  );
							/* rev 1.0*/
			 		} break;
case 292:
# line 1290 "bifparse.y"
{
				  	   (void)bif_group(TRIMLOOP); 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
					} break;
case 296:
# line 1307 "bifparse.y"
{ 
				  	   (void)bif_group(TRIMCURVE); 
					   bif_intlist(yypvt[-1].l);
					   bif_intlist(yypvt[-0].l);
				   	   (void)bif_group(BIF_END_OF_GROUP); 
				  	   (void)bif_group(CTRL_POINTS); 
					} break;
case 297:
# line 1315 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 299:
# line 1323 "bifparse.y"
{ 
					  if(not_repeated(1)) 
					  bif_group(UKNOTS); 
					      /* rev 1.0 UKNOTS*/
					  else 
					  { 
					     (void)bif_group(IGNORE_GROUP);  
					     WD3B_error("VERTEX_COLORS"); 
					  } 
					} break;
case 300:
# line 1334 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 301:
# line 1340 "bifparse.y"
{ 
					  if(not_repeated(2)) 
					  bif_group(VKNOTS); 
					      /* rev 1.0 VKNOTS*/
					  else 
					  { 
					     (void)bif_group(IGNORE_GROUP);  
					     WD3B_error("VERTEX_COLORS"); 
					  } 
					} break;
case 302:
# line 1351 "bifparse.y"
{ 
				   	   (void)bif_group(BIF_END_OF_GROUP); 
			 		} break;
case 303:
# line 1363 "bifparse.y"
{
					   bif_curve_approx_criteria (yypvt[-2].l,yypvt[-1].f); 
					} break;
case 304:
# line 1375 "bifparse.y"
{
					   bif_trimcurve_approx_criteria (yypvt[-2].l,yypvt[-1].f); 
					} break;
case 305:
# line 1388 "bifparse.y"
{
					   bif_surface_approx_criteria (yypvt[-3].l,yypvt[-2].f,yypvt[-1].f); 
					} break;
case 306:
# line 1397 "bifparse.y"
{ (void)bif_mktype(yypvt[-1].l); } break;
case 307:
# line 1402 "bifparse.y"
{ (void)bif_mkscale(yypvt[-1].f); } break;
case 308:
# line 1407 "bifparse.y"
{ (void)
					  bif_mkcolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); } break;
case 309:
# line 1413 "bifparse.y"
{ (void)bif_mkcolorindex(yypvt[-1].l); } break;
case 310:
# line 1418 "bifparse.y"
{ (void)bif_linetype(yypvt[-1].l); } break;
case 311:
# line 1423 "bifparse.y"
{ (void)bif_linewidth(yypvt[-1].f); } break;
case 312:
# line 1428 "bifparse.y"
{ (void)
					  bif_linecolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); } break;
case 313:
# line 1434 "bifparse.y"
{ (void)bif_linecolorindex(yypvt[-1].l); } break;
case 314:
# line 1439 "bifparse.y"
{ (void)
					  bif_lineshading(yypvt[-1].l); } break;
case 315:
# line 1445 "bifparse.y"
{ (void)
					   bif_intstyle(yypvt[-1].l); } break;
case 316:
# line 1449 "bifparse.y"
{ yyval.l = HOLLOW ; } break;
case 317:
# line 1450 "bifparse.y"
{ yyval.l = SOLID  ; } break;
case 318:
# line 1451 "bifparse.y"
{ yyval.l = PATTERN; } break;
case 319:
# line 1452 "bifparse.y"
{ yyval.l = EMPTY  ; } break;
case 320:
# line 1457 "bifparse.y"
{ 
				  (void)bif_intpatternindex(yypvt[-1].l);/* rev 0.8 */
				} break;
case 321:
# line 1464 "bifparse.y"
{ 
				  (void)bif_intcolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f);/* rev 0.8 */
				} break;
case 322:
# line 1471 "bifparse.y"
{ (void)bif_intcolorindex(yypvt[-1].l); } break;
case 323:
# line 1476 "bifparse.y"
{ (void)
					   bif_bkfintcolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); } break;
case 324:
# line 1483 "bifparse.y"
{ (void)
					   bif_bkfintcolorindex(yypvt[-1].l); } break;
case 325:
# line 1490 "bifparse.y"
{ (void)bif_intshade(yypvt[-1].l); } break;
case 326:
# line 1495 "bifparse.y"
{ (void)bif_intlight(yypvt[-1].l); } break;
case 327:
# line 1503 "bifparse.y"
{ (void)bif_surfprop(yypvt[-8].f,yypvt[-7].f,
					  yypvt[-6].f,yypvt[-5].f,yypvt[-4].f,yypvt[-3].f,
					  yypvt[-2].f,yypvt[-1].f); } break;
case 328:
# line 1513 "bifparse.y"
{ (void)bif_bkfprop(yypvt[-8].f,yypvt[-7].f, /* rev 0.8 */
					  yypvt[-6].f,yypvt[-5].f,yypvt[-4].f,yypvt[-3].f,
					  yypvt[-2].f,yypvt[-1].f); } break;
case 329:
# line 1520 "bifparse.y"
{ (void)
					   bif_bkfprocessing(yypvt[-2].l,yypvt[-1].l); } break;
case 330:
# line 1527 "bifparse.y"
{ (void)bif_edgeflag(ENABLE ); } break;
case 331:
# line 1530 "bifparse.y"
{ (void)bif_edgeflag(DISABLE ); } break;
case 332:
# line 1535 "bifparse.y"
{ (void)bif_edgetype(yypvt[-1].l);} break;
case 333:
# line 1540 "bifparse.y"
{ (void)bif_edgewidth(yypvt[-1].f); } break;
case 334:
# line 1545 "bifparse.y"
{ 
				  (void)bif_edgecolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f);/* rev 0.8 */
				} break;
case 335:
# line 1552 "bifparse.y"
{ 
				  (void)bif_edgecolorindex(yypvt[-1].l);/* rev 0.8 */
				} break;
case 336:
# line 1559 "bifparse.y"
{ (void)bif_textfont(yypvt[-1].l); } break;
case 337:
# line 1564 "bifparse.y"
{ (void)bif_textprec(STRING ); } break;
case 338:
# line 1567 "bifparse.y"
{ (void)bif_textprec(CHAR ); } break;
case 339:
# line 1570 "bifparse.y"
{ (void)bif_textprec(STROKE ); } break;
case 340:
# line 1575 "bifparse.y"
{ (void)
					   bif_textcolor(yypvt[-3].f,yypvt[-2].f,yypvt[-1].f); } break;
case 341:
# line 1582 "bifparse.y"
{ (void)bif_textcolorindex(yypvt[-1].l); } break;
case 342:
# line 1587 "bifparse.y"
{ (void)bif_textpath(yypvt[-1].l); } break;
case 343:
# line 1593 "bifparse.y"
{ (void)bif_textalign(yypvt[-2].l, yypvt[-1].l); } break;
case 344:
# line 1599 "bifparse.y"
{ (void)bif_charheight(yypvt[-1].f); } break;
case 345:
# line 1604 "bifparse.y"
{ (void)bif_charexp(yypvt[-1].f); } break;
case 346:
# line 1609 "bifparse.y"
{ (void)bif_charspace(yypvt[-1].f); } break;
case 347:
# line 1616 "bifparse.y"
{ (void)bif_charupvector(yypvt[-2].f, yypvt[-1].f); } break;
case 348:
# line 1621 "bifparse.y"
{ (void)
				   bif_annotextcharheight(yypvt[-1].f); } break;
case 349:
# line 1627 "bifparse.y"
{ (void)
				   bif_annotextcharupvector(yypvt[-2].f,yypvt[-1].f); } break;
case 350:
# line 1633 "bifparse.y"
{ (void)
				   	   bif_annotextstyle(yypvt[-1].l); } break;
case 351:
# line 1642 "bifparse.y"
{(void)bif_lightstate(BIF_P_BEGIN);} break;
case 352:
# line 1644 "bifparse.y"
{(void)bif_group(ACTIVATE_LIST);} break;
case 353:
# line 1646 "bifparse.y"
{(void)bif_group(BIF_END_OF_GROUP);} break;
case 354:
# line 1648 "bifparse.y"
{(void)bif_group(DEACTIVATE_LIST);} break;
case 355:
# line 1650 "bifparse.y"
{(void)bif_group(BIF_END_OF_GROUP);} break;
case 356:
# line 1652 "bifparse.y"
{(void)bif_lightstate(BIF_P_END  );} break;
case 357:
# line 1657 "bifparse.y"
{ (void)
					   bif_depthcueindex(yypvt[-1].l); } break;
case 358:
# line 1664 "bifparse.y"
{(void)bif_hlhsremoval(HLHS_DISABLE);} break;
case 359:
# line 1668 "bifparse.y"
{(void)bif_hlhsremoval(HLHS_ENABLE);} break;
case 360:
# line 1675 "bifparse.y"
{(void)bif_identity3(yypvt[-1].l);} break;
case 361:
# line 1681 "bifparse.y"
{(void)bif_concatmatrix3(yypvt[-3].l,yypvt[-2].l,yypvt[-1].l);} break;
case 362:
# line 1684 "bifparse.y"
{ yyval.l = PRECONCAT; } break;
case 363:
# line 1685 "bifparse.y"
{ yyval.l = POSTCONCAT; } break;
case 364:
# line 1686 "bifparse.y"
{ yyval.l = REPLACE; } break;
case 365:
# line 1692 "bifparse.y"
{(void)bif_invertmatrix3(yypvt[-1].l);} break;
case 366:
# line 1701 "bifparse.y"
{(void)bif_rotate3(yypvt[-4].l,yypvt[-3].f,yypvt[-2].l,yypvt[-1].l);} break;
case 367:
# line 1704 "bifparse.y"
{ yyval.l = X_AXIS; } break;
case 368:
# line 1705 "bifparse.y"
{ yyval.l = Y_AXIS; } break;
case 369:
# line 1706 "bifparse.y"
{ yyval.l = Z_AXIS; } break;
case 370:
# line 1714 "bifparse.y"
{(void)bif_rotatexyz3(yypvt[-5].l,yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].l);} break;
case 371:
# line 1722 "bifparse.y"
{(void)bif_translate3(yypvt[-5].l,yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].l);} break;
case 372:
# line 1730 "bifparse.y"
{(void)bif_scale3(yypvt[-5].l,yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].l);} break;
case 373:
# line 1749 "bifparse.y"
{
					 double amatrix[4][4];
					 amatrix[0][0] = yypvt[-24].f;
					 amatrix[0][1] = yypvt[-23].f;
					 amatrix[0][2] = yypvt[-22].f;
					 amatrix[0][3] = yypvt[-21].f;

					 amatrix[1][0] = yypvt[-18].f;
					 amatrix[1][1] = yypvt[-17].f;
					 amatrix[1][2] = yypvt[-16].f;
					 amatrix[1][3] = yypvt[-15].f;

					 amatrix[2][0] = yypvt[-12].f;
					 amatrix[2][1] = yypvt[-11].f;
					 amatrix[2][2] = yypvt[-10].f;
					 amatrix[2][3] = yypvt[-9].f;

					 amatrix[3][0] = yypvt[-6].f;
					 amatrix[3][1] = yypvt[-5].f;
					 amatrix[3][2] = yypvt[-4].f;
					 amatrix[3][3] = yypvt[-3].f;
					 (void)bif_matrix3(yypvt[-26].l,amatrix,yypvt[-1].l);
					} break;
case 374:
# line 1779 "bifparse.y"
{ 
				  (void)bif_getmatrix3(yypvt[-3].l,yypvt[-2].l,yypvt[-1].l);/* rev 0.8 */
				} break;
case 375:
# line 1785 "bifparse.y"
{ yyval.l = VIEW_MAPPING; } break;
case 376:
# line 1787 "bifparse.y"
{ yyval.l = POSTCONCAT; } break;
case 377:
# line 1789 "bifparse.y"
{ yyval.l = GLOBAL_MODELLING; } break;
case 378:
# line 1791 "bifparse.y"
{ yyval.l = LOCAL_MODELLING; } break;
case 379:
# line 1793 "bifparse.y"
{ yyval.l = COMPOSITE_MODELLING; } break;
case 380:
# line 1797 "bifparse.y"
{(void)bif_pushmatrix3(); } break;
case 381:
# line 1801 "bifparse.y"
{(void)bif_popmatrix3(); } break;
case 382:
# line 1818 "bifparse.y"
{
					 double amatrix[4][4];
					 amatrix[0][0] = yypvt[-23].f;
					 amatrix[0][1] = yypvt[-22].f;
					 amatrix[0][2] = yypvt[-21].f;
					 amatrix[0][3] = yypvt[-20].f;

					 amatrix[1][0] = yypvt[-17].f;
					 amatrix[1][1] = yypvt[-16].f;
					 amatrix[1][2] = yypvt[-15].f;
					 amatrix[1][3] = yypvt[-14].f;

					 amatrix[2][0] = yypvt[-11].f;
					 amatrix[2][1] = yypvt[-10].f;
					 amatrix[2][2] = yypvt[-9].f;
					 amatrix[2][3] = yypvt[-8].f;

					 amatrix[3][0] = yypvt[-5].f;
					 amatrix[3][1] = yypvt[-4].f;
					 amatrix[3][2] = yypvt[-3].f;
					 amatrix[3][3] = yypvt[-2].f;

					 (void)bif_gtransform3(amatrix);
					} break;
case 383:
# line 1860 "bifparse.y"
{
					 double amatrix[4][4];
					 amatrix[0][0] = yypvt[-24].f;
					 amatrix[0][1] = yypvt[-23].f;
					 amatrix[0][2] = yypvt[-22].f;
					 amatrix[0][3] = yypvt[-21].f;

					 amatrix[1][0] = yypvt[-18].f;
					 amatrix[1][1] = yypvt[-17].f;
					 amatrix[1][2] = yypvt[-16].f;
					 amatrix[1][3] = yypvt[-15].f;

					 amatrix[2][0] = yypvt[-12].f;
					 amatrix[2][1] = yypvt[-11].f;
					 amatrix[2][2] = yypvt[-10].f;
					 amatrix[2][3] = yypvt[-9].f;

					 amatrix[3][0] = yypvt[-6].f;
					 amatrix[3][1] = yypvt[-5].f;
					 amatrix[3][2] = yypvt[-4].f;
					 amatrix[3][3] = yypvt[-3].f;

					 (void)bif_ltransform3(amatrix,yypvt[-1].l);
					} break;
case 384:
# line 1891 "bifparse.y"
{(void)bif_applytoglobal3(yypvt[-1].l);} break;
case 385:
# line 1898 "bifparse.y"
{(void)bif_applytolocal3(yypvt[-2].l,yypvt[-1].l);} break;
case 386:
# line 1908 "bifparse.y"
{
					 double vrp[3],vpn[3],vup[3];
					 vrp[0] = yypvt[-9].f;
					 vrp[1] = yypvt[-8].f;
					 vrp[2] = yypvt[-7].f;

					 vpn[0] = yypvt[-6].f;
					 vpn[1] = yypvt[-5].f;
					 vpn[2] = yypvt[-4].f;

					 vup[0] = yypvt[-3].f;
					 vup[1] = yypvt[-2].f;
					 vup[2] = yypvt[-1].f;

					 (void)bif_vieworient3(yypvt[-10].l,vrp,vpn,vup);
					} break;
case 387:
# line 1933 "bifparse.y"
{
					 double prp[3];
					 (void)bif_viewmap3(BIF_P_BEGIN);
					 prp[0] = yypvt[-4].f;
					 prp[1] = yypvt[-3].f;
					 prp[2] = yypvt[-2].f;
					 (void)bif_viewmapbasic(yypvt[-10].l, yypvt[-9].f, yypvt[-8].f,
							   yypvt[-7].f, yypvt[-6].f, yypvt[-5].l,prp,
							   yypvt[-1].f,yypvt[-0].f );
					} break;
case 388:
# line 1945 "bifparse.y"
{(void)bif_viewmap3(BIF_P_END  );} break;
case 389:
# line 1948 "bifparse.y"
{ yyval.l = PERSPECTIVE; } break;
case 390:
# line 1949 "bifparse.y"
{ yyval.l = PARALLEL; } break;
case 392:
# line 1958 "bifparse.y"
{
					 (void)bif_viewmapmatch(yypvt[-5].f,yypvt[-4].f,yypvt[-3].f,yypvt[-2].f,yypvt[-1].l);
					} break;
case 393:
# line 1963 "bifparse.y"
{ yyval.l = ADJUST_X; } break;
case 394:
# line 1964 "bifparse.y"
{ yyval.l = ADJUST_Y; } break;
case 395:
# line 1965 "bifparse.y"
{ yyval.l = GROW; } break;
case 396:
# line 1966 "bifparse.y"
{ yyval.l = SHRINK; } break;
case 397:
# line 1973 "bifparse.y"
{(void)bif_activeview(yypvt[-1].l);} break;
case 398:
# line 1980 "bifparse.y"
{(void)bif_execstr(yypvt[-1].l);} break;
case 399:
# line 1987 "bifparse.y"
{(void)bif_callstr(yypvt[-1].l);} break;
case 400:
# line 1992 "bifparse.y"
{ 
					  char temp[STRLENGTH]; 
					  sprintf(temp,
					  "Unsupported entity (%s) ", yypvt[-0].str);
 					  yyerror(temp);
					} break;
case 401:
# line 2001 "bifparse.y"
{ 
					  char temp[STRLENGTH]; 
					  sprintf(temp,
					  "End of Unsupported entity (%s) ", 
					   yypvt[-3].str);
 					  yyerror(temp);
					} break;
case 402:
# line 2017 "bifparse.y"
{(void)collapseAllStructures();} break;
case 403:
# line 2019 "bifparse.y"
{(void)expandAllStructures();} break;
case 405:
# line 2024 "bifparse.y"
{(void)bif_readgeom(yypvt[-0].str);} break;
case 407:
# line 2029 "bifparse.y"
{(void)bif_readgeom(yypvt[-0].str);} break;
case 409:
# line 2036 "bifparse.y"
{(void)bif_cleargeom();} break;
case 410:
# line 2043 "bifparse.y"
{(void)bif_reportfile(yypvt[-1].str);} break;
case 411:
# line 2048 "bifparse.y"
{(void)bif_pause();} break;
case 412:
# line 2055 "bifparse.y"
{(void)bif_sleep(yypvt[-1].l);} break;
case 415:
# line 2068 "bifparse.y"
{ (void)bif_invokeatframe /* rev 0.8 */
				   (yypvt[-2].l,yypvt[-1].l,yypvt[-0].l,yypvt[-0].l); } break;
case 416:
# line 2075 "bifparse.y"
{ (void)bif_invokeatframe /* rev 0.8 */
				   (yypvt[-4].l,yypvt[-3].l,yypvt[-2].l,yypvt[-0].l); } break;
case 417:
# line 2082 "bifparse.y"
{ (void)bif_invokeatframe /* rev 0.8 */
				   (yypvt[-4].l,yypvt[-3].l,yypvt[-2].l,-1); } break;
case 418:
# line 2086 "bifparse.y"
{ yyval.l = EXECUTE ; } break;
case 419:
# line 2087 "bifparse.y"
{ yyval.l = CALL  ; } break;
case 421:
# line 2098 "bifparse.y"
{
					(void) bif_definecolor /* rev 0.8 */
					   (yypvt[-3].l,yypvt[-2].f,yypvt[-1].f,yypvt[-0].f); 
					} break;
case 422:
# line 2104 "bifparse.y"
{
					(void) bif_definecolor
					   (yypvt[-3].l,yypvt[-2].f,yypvt[-1].f,yypvt[-0].f); 
					} break;
case 423:
# line 2113 "bifparse.y"
{(void)bif_backgroundcolor /* rev 0.8 */
					   (yypvt[-3].f,yypvt[-2].f,yypvt[-1].f);} break;
case 424:
# line 2120 "bifparse.y"
{(void)bif_backgroundcolorindex(yypvt[-1].l);} break;
case 425:
# line 2131 "bifparse.y"
{(void)bif_viewspec(yypvt[-10].l, yypvt[-9].l,  yypvt[-8].l,
							    /*  $5, $6,   */
							    yypvt[-7].l, 
							    yypvt[-6].l,
							    yypvt[-5].l,
							    yypvt[-4].f ,yypvt[-3].f , yypvt[-2].f,yypvt[-1].f);} break;
case 426:
# line 2139 "bifparse.y"
{ yyval.l = XY_CLIP; } break;
case 427:
# line 2140 "bifparse.y"
{ yyval.l = NO_XY_CLIP; } break;
case 428:
# line 2143 "bifparse.y"
{ yyval.l = FRONT_CLIP; } break;
case 429:
# line 2144 "bifparse.y"
{ yyval.l = NO_FRONT_CLIP; } break;
case 430:
# line 2147 "bifparse.y"
{ yyval.l = BACK_CLIP; } break;
case 431:
# line 2148 "bifparse.y"
{ yyval.l = NO_BACK_CLIP; } break;
case 432:
# line 2155 "bifparse.y"
{
					 (void)bif_defviewspec(yypvt[-3].l,yypvt[-2].f,yypvt[-1].l);
					} break;
case 433:
# line 2161 "bifparse.y"
{(void)bif_definelight(BIF_P_BEGIN);} break;
case 434:
# line 2165 "bifparse.y"
{
				 (void)bif_lightbasic(yypvt[-6].l,yypvt[-5].f,yypvt[-4].f,yypvt[-3].f);
				 (void)bif_definelight(BIF_P_END  );
				} break;
case 437:
# line 2177 "bifparse.y"
{
				 (void)
				 bif_lightoption(DIRECTIONAL_LIGHT, 
				     0., 0., 0.,
				     yypvt[-3].f, yypvt[-2].f, yypvt[-1].f,
				     0., 0.,
				     0., 0. );
			        } break;
case 438:
# line 2191 "bifparse.y"
{(void)
				 bif_lightoption(POSITIONAL_LIGHT, 
				     yypvt[-5].f, yypvt[-4].f, yypvt[-3].f,
				     0., 0., 0.,
				     0., 0.,
				     yypvt[-2].f, yypvt[-1].f );} break;
case 439:
# line 2202 "bifparse.y"
{(void)
				 bif_lightoption(SPOT_LIGHT, 
				     yypvt[-10].f, yypvt[-9].f, yypvt[-8].f,
				     yypvt[-7].f, yypvt[-6].f, yypvt[-5].f,
				     yypvt[-4].f, yypvt[-3].f,
				     yypvt[-2].f,yypvt[-1].f);} break;
case 441:
# line 2213 "bifparse.y"
{ (void)bif_ldtransform(yypvt[-1].l); } break;
case 442:
# line 2219 "bifparse.y"
{(void)
				   bif_definedepthcue /* rev 0.8 CHANGED: JMZ */
				   (yypvt[-2].l, DISABLE, 0.,0., 0.,0., 0.,0.,0.0); } break;
case 443:
# line 2230 "bifparse.y"
{(void)
				   bif_definedepthcue /* rev 0.8 CHANGED: JMZ */
				   (yypvt[-11].l, ENABLE, yypvt[-8].f,yypvt[-7].f, yypvt[-6].f,yypvt[-5].f, yypvt[-4].f,yypvt[-3].f,yypvt[-2].f); } break;
case 444:
# line 2236 "bifparse.y"
{
				   bif_defaultconfig();
				   bif_openwk();
				} break;
case 445:
# line 2243 "bifparse.y"
{
				   bif_defaultconfig();
				   bif_openwk();
				} break;
case 446:
# line 2248 "bifparse.y"
{
				   (void)not_repeated(-1);
				   bif_defaultconfig();
				} break;
case 447:
# line 2254 "bifparse.y"
{
				   bif_openwk();
				   (void)not_repeated(-1);
				} break;
case 449:
# line 2262 "bifparse.y"
{ 
				  if(not_repeated(1)) bif_colormodel(RGB);
				  else yyerror(CB_ERM1);
				} break;
case 450:
# line 2267 "bifparse.y"
{ 
				  if(not_repeated(1)) bif_colormodel(CIE);
				  else yyerror(CB_ERM1);
				} break;
case 451:
# line 2272 "bifparse.y"
{ 
				  if(not_repeated(1)) bif_colormodel(HSV);
				  else yyerror(CB_ERM1);
				} break;
case 452:
# line 2277 "bifparse.y"
{ 
				  if(not_repeated(1))
				     bif_colormodel(HLS); /* rev 0.8 mod. */
				  else yyerror(CB_ERM1);
				} break;
case 453:
# line 2283 "bifparse.y"
{ if(not_repeated(2))
			     	     bif_buffermode(DOUBLE_BUFFER); /*rev 0.8*/
				  else
				     yyerror(CB_ERM2);
				} break;
case 454:
# line 2289 "bifparse.y"
{ if(not_repeated(2))
				     bif_buffermode(SINGLE_BUFFER); 
				  else
				     yyerror(CB_ERM2);
				} break;
case 455:
# line 2295 "bifparse.y"
{ if(not_repeated(3))
			     	     bif_colormode(TRUE_COLOR); /* rev 0.8 */
				  else
				     yyerror(CB_ERM3);
				} break;
case 456:
# line 2301 "bifparse.y"
{ if(not_repeated(3))
			     	     bif_colormode(PSEUDO_COLOR); /* rev 0.8 */
				  else
				     yyerror(CB_ERM3);
				} break;
case 457:
# line 2307 "bifparse.y"
{ if(not_repeated(4))
		   	             (void)bif_window(yypvt[-1].l,yypvt[-0].l);
				  else
				     yyerror(CB_ERM4);
				} break;
case 458:
# line 2317 "bifparse.y"
{ yyval.f = yypvt[-0].f; } break;
case 459:
# line 2318 "bifparse.y"
{ yyval.f = (double)yypvt[-0].l; } break;
		}
		goto yystack;  /* stack new state and value */

	}
