home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Resource Library: Graphics
/
graphics-16000.iso
/
msdos
/
raytrace
/
rayshade
/
src
/
lexyy.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-05
|
41KB
|
1,268 lines
#define YY_DEFAULT_ACTION ECHO;
#define FLEX_USE_ECS
#define FLEX_USE_MECS
/* A lexical scanner generated by flex */
#include "skeleton.h"
#define INITIAL 0
/* lex.l */
/* Copyright (C) 1989, 1991, Craig E. Kolb */
/* All rights reserved. */
/* */
/* This software may be freely copied, modified, and redistributed, */
/* provided that this copyright notice is preserved on all copies. */
/* */
/* You may not distribute this software, in whole or in part, as part of */
/* any commercial product without the express consent of the authors. */
/* */
/* There is no warranty or other guarantee of fitness of this software */
/* for any purpose. It is provided solely "as is". */
/* */
/* $Id: lex.l,v 4.0.1.3 92/01/14 18:28:38 cek Exp Locker: cek $ */
#include "config.h"
#include "rayshade.h"
#ifdef I_STRING
#include <string.h>
#else
#include <strings.h>
#endif
#include "light.h"
#include "atmosphere.h"
#include "surface.h"
#include "texture.h"
#include "geom.h"
#include "symtab.h"
#include "yacc_tab.h"
extern int yylineno;
extern char *strsave();
#define YY_JAM 538
#define YY_JAM_BASE 1085
#define YY_TEMPLATE 539
static char l[539] =
{ 0,
-2, -2, 118, 1, 1, 118, 118, 112, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 2, 0, 0, 114, 3, 0, 0, 117, 113,
112, 0, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 106, 107, 116, 116, 116, 0, 117, 113,
0, 0, 115, 116, 116, 116, 116, 116, 116, 116,
116, 13, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 30, 116, 116, 36, 116,
116, 39, 41, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 55, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
83, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 0, 114, 0,
0, 113, 116, 116, 116, 7, 116, 116, 10, 116,
12, 14, 116, 116, 116, 17, 116, 20, 116, 116,
116, 116, 116, 116, 29, 116, 116, 33, 116, 116,
116, 116, 116, 116, 116, 116, 46, 116, 116, 116,
116, 116, 116, 53, 116, 116, 116, 59, 116, 60,
116, 116, 116, 116, 116, 116, 68, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 89, 116, 116, 116, 116, 95, 116, 116,
116, 116, 116, 116, 111, 0, 113, 116, 116, 116,
116, 116, 116, 116, 16, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 44, 45, 116, 48, 49, 116, 116, 52,
54, 116, 116, 58, 116, 116, 116, 116, 116, 65,
67, 116, 70, 71, 72, 116, 116, 116, 116, 116,
79, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 96, 116, 116, 105, 116, 116, 110,
116, 116, 116, 116, 116, 11, 116, 116, 116, 116,
22, 116, 25, 116, 116, 116, 116, 116, 34, 116,
35, 116, 116, 116, 43, 116, 116, 51, 56, 116,
116, 116, 63, 116, 66, 116, 116, 75, 116, 77,
78, 80, 116, 116, 84, 116, 116, 85, 116, 116,
91, 116, 116, 116, 116, 116, 101, 116, 116, 109,
4, 116, 116, 116, 116, 15, 116, 116, 21, 116,
116, 116, 26, 116, 116, 32, 37, 116, 40, 116,
116, 116, 116, 116, 116, 64, 69, 73, 116, 116,
82, 88, 116, 116, 116, 92, 116, 94, 116, 116,
99, 116, 116, 108, 5, 116, 116, 116, 116, 19,
23, 116, 116, 116, 31, 116, 116, 116, 116, 57,
61, 62, 116, 116, 116, 87, 116, 116, 93, 116,
116, 116, 116, 103, 6, 116, 116, 18, 116, 116,
116, 38, 116, 116, 50, 116, 116, 116, 86, 90,
97, 98, 116, 116, 116, 8, 9, 116, 27, 116,
116, 116, 74, 76, 116, 116, 116, 104, 24, 28,
42, 47, 116, 116, 102, 81, 100, 0
} ;
static char e[128] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 1, 4, 1, 1, 1, 1, 1,
1, 5, 6, 1, 7, 8, 9, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 1, 1, 1,
1, 1, 1, 1, 11, 11, 11, 11, 12, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
1, 1, 1, 1, 13, 1, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 11, 1, 1, 1, 1, 1
} ;
static char m[39] =
{ 0,
1, 1, 1, 1, 2, 1, 3, 4, 4, 3,
4, 4, 3, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 4, 4, 4
} ;
static short int b[542] =
{ 0,
0, 1081, 1085, 1085, 1085, 31, 37, 39, 1075, 34,
41, 67, 50, 43, 62, 69, 35, 47, 39, 80,
82, 97, 88, 90, 45, 98, 118, 115, 121, 105,
127, 1085, 1074, 77, 147, 1085, 111, 153, 1073, 154,
159, 168, 1072, 49, 161, 120, 119, 144, 126, 159,
154, 122, 164, 172, 173, 174, 175, 176, 178, 100,
179, 184, 177, 195, 197, 180, 53, 199, 202, 206,
205, 209, 207, 213, 216, 212, 214, 220, 221, 225,
227, 222, 242, 243, 244, 249, 250, 251, 228, 253,
255, 258, 264, 254, 266, 267, 265, 104, 276, 269,
281, 282, 1071, 1070, 279, 280, 284, 299, 1069, 301,
308, 1067, 1066, 299, 307, 308, 311, 313, 315, 314,
288, 1066, 319, 318, 321, 322, 326, 323, 328, 333,
327, 331, 337, 336, 334, 1065, 348, 349, 353, 354,
355, 356, 1064, 358, 362, 363, 365, 366, 368, 367,
371, 370, 381, 374, 382, 1063, 383, 384, 387, 388,
390, 391, 395, 396, 400, 401, 402, 403, 408, 409,
412, 413, 414, 415, 416, 417, 422, 427, 431, 424,
1062, 425, 428, 440, 430, 441, 442, 443, 445, 447,
446, 450, 452, 451, 458, 459, 465, 1060, 1059, 477,
1058, 1057, 472, 460, 461, 1057, 462, 466, 1056, 476,
1055, 1054, 479, 480, 482, 1053, 486, 1052, 487, 489,
491, 492, 493, 496, 1051, 495, 497, 1050, 498, 500,
505, 504, 517, 519, 506, 511, 1049, 521, 522, 516,
523, 527, 524, 1048, 530, 535, 532, 1047, 537, 1046,
538, 542, 539, 540, 549, 543, 552, 555, 556, 557,
559, 560, 565, 564, 569, 574, 575, 570, 571, 572,
573, 577, 1045, 576, 586, 587, 578, 1044, 590, 591,
594, 597, 602, 604, 1043, 1041, 1040, 607, 605, 608,
609, 610, 616, 611, 1040, 617, 619, 618, 626, 634,
637, 622, 627, 638, 639, 641, 643, 649, 645, 651,
653, 652, 1039, 1038, 654, 1037, 1036, 656, 655, 1035,
1034, 661, 664, 1033, 657, 665, 658, 669, 671, 1032,
1031, 672, 1030, 1029, 1028, 676, 674, 680, 686, 687,
1027, 688, 689, 690, 692, 694, 701, 702, 697, 700,
703, 707, 708, 1026, 718, 712, 1025, 714, 719, 1024,
720, 725, 724, 727, 722, 1023, 726, 731, 729, 733,
1022, 736, 1021, 742, 750, 753, 754, 755, 1020, 756,
1019, 757, 760, 762, 1018, 764, 768, 1017, 1016, 761,
769, 765, 1015, 772, 1014, 773, 780, 1013, 782, 1012,
1011, 1010, 783, 767, 1009, 786, 787, 1008, 788, 790,
1007, 793, 794, 796, 798, 809, 810, 808, 811, 1006,
1005, 812, 797, 818, 800, 1004, 822, 799, 1003, 826,
828, 829, 1002, 830, 831, 1001, 1000, 832, 999, 833,
837, 835, 844, 836, 838, 998, 997, 846, 853, 845,
996, 995, 852, 857, 843, 989, 854, 986, 861, 863,
868, 869, 870, 985, 984, 871, 872, 877, 873, 983,
982, 878, 882, 880, 981, 876, 888, 884, 886, 980,
979, 978, 890, 892, 896, 977, 902, 903, 976, 904,
905, 906, 908, 907, 975, 913, 919, 974, 920, 924,
923, 973, 926, 929, 972, 930, 931, 934, 970, 969,
967, 966, 935, 936, 937, 964, 962, 940, 961, 941,
943, 938, 960, 959, 942, 944, 947, 909, 801, 735,
290, 230, 948, 958, 229, 226, 182, 1085, 995, 997,
999
} ;
static short int d[542] =
{ 0,
538, 1, 538, 538, 538, 538, 539, 538, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 538, 538, 539, 538, 538, 538, 539, 541, 538,
538, 538, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 538, 541, 538,
538, 538, 538, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 538, 538, 538,
538, 538, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 538, 538, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540,-32767, 538, 538,
538
} ;
static short int n[1124] =
{ 0,
3, 4, 5, 3, 3, 3, 3, 6, 7, 8,
9, 9, 3, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 9, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 9, 9, 33, 34,
35, 36, 34, 34, 37, 38, 40, 34, 41, 34,
42, 34, 70, 34, 48, 34, 42, 34, 34, 44,
73, 34, 45, 114, 46, 49, 47, 58, 50, 60,
34, 59, 71, 72, 51, 34, 63, 34, 86, 61,
62, 538, 67, 64, 37, 538, 145, 52, 34, 65,
34, 53, 66, 68, 54, 76, 34, 55, 34, 69,
56, 74, 81, 77, 57, 34, 34, 75, 34, 78,
79, 87, 34, 34, 83, 88, 136, 84, 33, 34,
85, 82, 105, 34, 80, 89, 34, 34, 34, 34,
34, 90, 98, 91, 34, 34, 99, 117, 92, 124,
189, 93, 100, 94, 118, 101, 95, 102, 106, 103,
96, 97, 34, 120, 107, 104, 35, 538, 108, 119,
37, 538, 34, 110, 108, 111, 40, 34, 41, 34,
42, 111, 34, 112, 112, 121, 42, 113, 115, 123,
34, 34, 34, 34, 34, 34, 34, 34, 34, 116,
34, 125, 34, 144, 132, 122, 133, 126, 127, 131,
128, 138, 139, 34, 129, 34, 130, 34, 134, 135,
34, 137, 141, 34, 34, 34, 142, 34, 149, 140,
34, 34, 34, 147, 34, 150, 146, 148, 34, 34,
34, 143, 153, 34, 34, 34, 34, 34, 34, 152,
156, 151, 157, 155, 154, 159, 161, 162, 158, 164,
34, 34, 34, 160, 165, 166, 163, 34, 34, 34,
175, 34, 34, 34, 167, 169, 34, 168, 177, 172,
170, 179, 34, 34, 34, 34, 171, 34, 176, 173,
186, 182, 174, 183, 34, 178, 184, 34, 34, 34,
34, 180, 34, 185, 192, 188, 34, 187, 34, 191,
190, 181, 193, 194, 198, 198, 196, 34, 199, 195,
110, 197, 200, 201, 201, 34, 34, 202, 200, 34,
203, 34, 34, 34, 206, 211, 34, 34, 209, 34,
34, 34, 205, 213, 34, 34, 34, 204, 208, 34,
207, 34, 34, 216, 34, 34, 210, 212, 221, 225,
215, 218, 222, 224, 214, 223, 34, 34, 217, 219,
220, 34, 34, 34, 34, 226, 34, 230, 232, 227,
34, 34, 233, 34, 34, 34, 34, 228, 34, 34,
229, 237, 34, 234, 240, 238, 231, 239, 241, 34,
34, 34, 34, 235, 236, 34, 34, 246, 34, 34,
247, 243, 242, 34, 34, 245, 244, 250, 34, 34,
34, 34, 251, 253, 249, 252, 34, 34, 254, 248,
34, 34, 34, 34, 34, 34, 259, 255, 256, 264,
34, 260, 34, 34, 258, 34, 34, 261, 34, 34,
257, 262, 263, 271, 267, 265, 266, 268, 34, 34,
34, 34, 270, 34, 34, 34, 269, 272, 34, 34,
34, 276, 273, 275, 278, 281, 34, 34, 34, 34,
34, 274, 283, 34, 34, 284, 280, 277, 282, 279,
34, 285, 286, 286, 34, 292, 287, 34, 34, 288,
34, 293, 289, 291, 34, 34, 295, 34, 290, 34,
34, 34, 294, 34, 34, 34, 34, 299, 34, 296,
302, 304, 34, 34, 34, 307, 297, 300, 301, 34,
298, 305, 309, 306, 34, 34, 303, 34, 310, 34,
34, 34, 34, 308, 311, 34, 312, 313, 34, 316,
34, 315, 314, 34, 319, 34, 34, 34, 34, 323,
34, 34, 317, 318, 327, 326, 320, 34, 321, 322,
34, 328, 329, 34, 34, 34, 330, 34, 34, 324,
325, 332, 34, 34, 335, 331, 336, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 333, 334, 338,
337, 341, 342, 340, 34, 34, 339, 343, 34, 34,
351, 346, 34, 344, 345, 34, 347, 348, 349, 352,
34, 353, 34, 34, 350, 34, 34, 34, 34, 34,
356, 354, 355, 357, 34, 34, 34, 34, 367, 358,
34, 359, 369, 361, 34, 34, 366, 364, 362, 363,
365, 360, 34, 368, 371, 34, 34, 34, 370, 34,
372, 34, 374, 34, 373, 377, 378, 34, 375, 34,
34, 34, 34, 34, 34, 34, 34, 382, 383, 34,
376, 379, 34, 34, 380, 381, 384, 34, 389, 34,
34, 392, 34, 385, 34, 388, 386, 387, 34, 391,
393, 397, 390, 394, 34, 34, 34, 34, 34, 396,
34, 395, 34, 400, 401, 34, 398, 404, 34, 34,
34, 34, 405, 399, 402, 34, 34, 411, 412, 408,
34, 406, 34, 409, 403, 407, 34, 34, 34, 410,
34, 418, 34, 34, 34, 34, 415, 34, 414, 34,
413, 34, 416, 34, 34, 419, 417, 424, 427, 425,
34, 429, 421, 430, 420, 422, 426, 423, 34, 432,
428, 34, 34, 34, 34, 34, 431, 433, 34, 34,
34, 435, 34, 34, 434, 34, 34, 34, 438, 440,
34, 34, 441, 439, 437, 442, 444, 436, 34, 446,
34, 34, 445, 443, 34, 34, 34, 451, 34, 447,
453, 34, 34, 454, 34, 34, 34, 34, 34, 34,
456, 455, 448, 458, 449, 450, 34, 34, 34, 34,
34, 452, 460, 462, 457, 459, 34, 466, 464, 465,
34, 470, 463, 468, 34, 467, 34, 34, 34, 34,
34, 34, 461, 34, 34, 34, 34, 475, 469, 472,
479, 34, 34, 34, 34, 473, 471, 474, 478, 477,
34, 34, 34, 476, 480, 34, 481, 483, 488, 34,
487, 34, 489, 482, 484, 485, 34, 34, 34, 34,
34, 34, 486, 492, 34, 34, 34, 494, 34, 495,
34, 490, 34, 499, 34, 491, 34, 500, 34, 493,
34, 504, 496, 497, 34, 498, 501, 503, 502, 508,
34, 34, 34, 34, 34, 34, 34, 34, 505, 507,
510, 34, 512, 513, 506, 514, 509, 34, 34, 511,
516, 34, 34, 518, 34, 517, 520, 34, 34, 34,
515, 519, 34, 34, 34, 34, 34, 523, 34, 34,
34, 34, 34, 522, 532, 34, 34, 524, 521, 534,
525, 526, 527, 531, 529, 530, 34, 34, 34, 34,
34, 528, 34, 533, 34, 34, 536, 34, 34, 535,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 537, 39, 34, 39, 43,
43, 109, 109, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 287,
287, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 202, 202, 199, 199,
34, 34, 34, 34, 34, 113, 113, 34, 34, 34,
34, 34, 34, 34, 32, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538
} ;
static short int c[1124] =
{ 0,
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, 6, 6,
6, 7, 10, 17, 7, 7, 8, 19, 8, 11,
8, 14, 17, 25, 11, 18, 8, 44, 13, 10,
19, 67, 10, 44, 10, 11, 10, 13, 11, 14,
15, 13, 18, 18, 11, 12, 15, 16, 25, 14,
14, 34, 16, 15, 34, 34, 67, 12, 20, 15,
21, 12, 15, 16, 12, 21, 23, 12, 24, 16,
12, 20, 23, 21, 12, 22, 26, 20, 60, 21,
22, 26, 98, 30, 24, 26, 60, 24, 37, 37,
24, 23, 30, 28, 22, 26, 27, 47, 46, 29,
52, 27, 28, 27, 49, 31, 28, 46, 27, 52,
98, 27, 28, 27, 47, 28, 27, 29, 31, 29,
27, 27, 48, 49, 31, 29, 35, 38, 35, 48,
38, 38, 51, 40, 35, 40, 41, 50, 41, 45,
41, 40, 53, 42, 42, 50, 41, 42, 45, 51,
54, 55, 56, 57, 58, 63, 59, 61, 66, 45,
537, 53, 62, 66, 58, 50, 59, 54, 54, 57,
55, 62, 63, 64, 56, 65, 56, 68, 59, 59,
69, 61, 65, 71, 70, 73, 65, 72, 71, 64,
76, 74, 77, 69, 75, 72, 68, 70, 78, 79,
82, 65, 74, 80, 536, 81, 89, 535, 532, 73,
76, 72, 76, 75, 74, 77, 79, 80, 76, 81,
83, 84, 85, 78, 82, 83, 80, 86, 87, 88,
89, 90, 94, 91, 84, 85, 92, 84, 91, 88,
86, 92, 93, 97, 95, 96, 87, 100, 90, 88,
96, 94, 88, 95, 99, 91, 95, 105, 106, 101,
102, 92, 107, 95, 101, 97, 121, 96, 531, 100,
99, 93, 101, 102, 108, 108, 106, 114, 108, 105,
110, 107, 110, 111, 111, 115, 116, 111, 110, 117,
114, 118, 120, 119, 117, 121, 124, 123, 120, 125,
126, 128, 116, 124, 127, 131, 129, 115, 119, 132,
118, 130, 135, 127, 134, 133, 120, 123, 131, 135,
126, 128, 132, 134, 125, 133, 137, 138, 127, 129,
130, 139, 140, 141, 142, 137, 144, 139, 141, 137,
145, 146, 142, 147, 148, 150, 149, 138, 152, 151,
138, 147, 154, 144, 150, 148, 140, 149, 151, 153,
155, 157, 158, 145, 146, 159, 160, 157, 161, 162,
158, 153, 152, 163, 164, 155, 154, 161, 165, 166,
167, 168, 162, 164, 160, 163, 169, 170, 165, 159,
171, 172, 173, 174, 175, 176, 170, 166, 167, 175,
177, 171, 180, 182, 169, 178, 183, 172, 185, 179,
168, 173, 174, 183, 178, 176, 177, 179, 184, 186,
187, 188, 182, 189, 191, 190, 180, 184, 192, 194,
193, 188, 185, 187, 190, 193, 195, 196, 204, 205,
207, 186, 195, 197, 208, 196, 192, 189, 194, 191,
203, 197, 200, 200, 210, 208, 200, 213, 214, 203,
215, 210, 204, 207, 217, 219, 214, 220, 205, 221,
222, 223, 213, 226, 224, 227, 229, 220, 230, 215,
223, 224, 232, 231, 235, 229, 217, 221, 222, 236,
219, 226, 231, 227, 240, 233, 223, 234, 232, 238,
239, 241, 243, 230, 233, 242, 234, 235, 245, 239,
247, 238, 236, 246, 242, 249, 251, 253, 254, 247,
252, 256, 240, 241, 253, 252, 243, 255, 245, 246,
257, 254, 255, 258, 259, 260, 255, 261, 262, 249,
251, 257, 264, 263, 260, 256, 261, 265, 268, 269,
270, 271, 266, 267, 274, 272, 277, 258, 259, 263,
262, 266, 267, 265, 275, 276, 264, 268, 279, 280,
276, 271, 281, 269, 270, 282, 271, 272, 274, 277,
283, 277, 284, 289, 275, 288, 290, 291, 292, 294,
281, 279, 280, 282, 293, 296, 298, 297, 294, 283,
302, 284, 297, 288, 299, 303, 293, 291, 289, 290,
292, 284, 300, 296, 299, 301, 304, 305, 298, 306,
300, 307, 302, 309, 301, 305, 306, 308, 303, 310,
312, 311, 315, 319, 318, 325, 327, 310, 311, 322,
304, 307, 323, 326, 308, 309, 312, 328, 322, 329,
332, 326, 337, 312, 336, 319, 315, 318, 338, 325,
327, 336, 323, 328, 339, 340, 342, 343, 344, 332,
345, 329, 346, 339, 340, 349, 337, 344, 350, 347,
348, 351, 345, 338, 342, 352, 353, 350, 351, 348,
356, 346, 358, 348, 343, 347, 355, 359, 361, 349,
365, 356, 363, 362, 367, 364, 355, 369, 353, 368,
352, 370, 355, 530, 372, 358, 355, 364, 368, 365,
374, 370, 361, 372, 359, 362, 367, 363, 375, 374,
369, 376, 377, 378, 380, 382, 372, 375, 383, 390,
384, 377, 386, 392, 376, 404, 387, 391, 382, 384,
394, 396, 386, 383, 380, 387, 391, 378, 397, 394,
399, 403, 392, 390, 406, 407, 409, 404, 410, 396,
407, 412, 413, 409, 414, 423, 415, 428, 425, 529,
412, 410, 397, 414, 399, 403, 418, 416, 417, 419,
422, 406, 416, 417, 413, 415, 424, 423, 419, 422,
427, 428, 418, 425, 430, 424, 431, 432, 434, 435,
438, 440, 416, 442, 444, 441, 445, 435, 427, 431,
442, 455, 443, 450, 448, 432, 430, 434, 441, 440,
453, 449, 457, 438, 443, 454, 444, 448, 455, 459,
454, 460, 457, 445, 449, 450, 461, 462, 463, 466,
467, 469, 453, 461, 476, 468, 472, 463, 474, 466,
473, 459, 478, 472, 479, 460, 477, 473, 483, 462,
484, 478, 467, 468, 485, 469, 474, 477, 476, 485,
487, 488, 490, 491, 492, 494, 493, 528, 479, 484,
488, 496, 491, 492, 483, 493, 487, 497, 499, 490,
496, 501, 500, 499, 503, 497, 501, 504, 506, 507,
494, 500, 508, 513, 514, 515, 522, 506, 518, 520,
525, 521, 526, 504, 522, 527, 533, 507, 503, 526,
508, 513, 514, 521, 518, 520, 534, 524, 523, 519,
517, 515, 516, 525, 512, 511, 533, 510, 509, 527,
505, 502, 498, 495, 489, 486, 482, 481, 480, 475,
471, 470, 465, 464, 458, 534, 539, 456, 539, 540,
540, 541, 541, 452, 451, 447, 446, 439, 437, 436,
433, 429, 426, 421, 420, 411, 408, 405, 402, 401,
400, 398, 395, 393, 389, 388, 385, 381, 379, 373,
371, 366, 360, 357, 354, 341, 335, 334, 333, 331,
330, 324, 321, 320, 317, 316, 314, 313, 295, 287,
286, 285, 278, 273, 250, 248, 244, 237, 228, 225,
218, 216, 212, 211, 209, 206, 202, 201, 199, 198,
181, 156, 143, 136, 122, 113, 112, 109, 104, 103,
43, 39, 33, 9, 2, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538, 538, 538, 538, 538, 538, 538, 538,
538, 538, 538
} ;
/* these declarations have to come after the section 1 code or lint gets
* confused about whether the variables are used
*/
FILE *yyin = stdin, *yyout = stdout;
/* these variables are all declared out here so that section 3 code can
* manipulate them
*/
static int yy_start, yy_b_buf_p, yy_c_buf_p, yy_e_buf_p;
static int yy_saw_eof, yy_init = 1;
/* yy_ch_buf has to be 1 character longer than YY_BUF_SIZE, since when
* setting up yytext we can try to put a '\0' just past the end of the
* matched text
*/
static char yy_ch_buf[YY_BUF_SIZE + 1];
static int yy_st_buf[YY_BUF_SIZE];
static char yy_hold_char;
static char input( void) ;
static void unput( char) ;
char *yytext;
static int yyleng;
/*--------------------------------------------------------------------------*/
/*------------------------- BEGIN LEXICAL ANALYZER -------------------------*/
/*--------------------------------------------------------------------------*/
YY_DECL
{
int yy_n_chars, yy_lp, yy_iii, yy_buf_pos, yy_act;
#ifdef FLEX_REJECT_ENABLED
int yy_full_match;
#endif
if ( yy_init )
{
YY_INIT;
yy_start = 1;
yy_init = 0;
}
goto get_next_token;
do_action:
#ifdef FLEX_REJECT_ENABLED
/* remember matched text in case we back up due to trailing context */
yy_full_match = yy_c_buf_p;
#endif
for ( ; ; )
{
YY_DO_BEFORE_ACTION
#ifdef FLEX_DEBUG
fprintf( stderr, "--accepting rule #%d\n", yy_act );
#endif
switch ( yy_act )
{
case 1:
;
YY_BREAK
case 2:
handlehash();
YY_BREAK
case 3:
skipcomments();
YY_BREAK
case 4:
return tAMBIENT;
YY_BREAK
case 5:
return tAPERTURE;
YY_BREAK
case 6:
return tAPPLYSURF;
YY_BREAK
case 7:
return tAREA;
YY_BREAK
case 8:
return tATMOSPHERE;
YY_BREAK
case 9:
return tBACKGROUND;
YY_BREAK
case 10:
return tBLOB;
YY_BREAK
case 11:
return tBLOTCH;
YY_BREAK
case 12:
return tBODY;
YY_BREAK
case 13:
return tBOX;
YY_BREAK
case 14:
return tBUMP;
YY_BREAK
case 15:
return tCHECKER;
YY_BREAK
case 16:
return tCLOUD;
YY_BREAK
case 17:
return tCONE;
YY_BREAK
case 18:
return tCOMPONENT;
YY_BREAK
case 19:
return tCONTRAST;
YY_BREAK
case 20:
return tCROP;
YY_BREAK
case 21:
return tCURSURF;
YY_BREAK
case 22:
return tCUTOFF;
YY_BREAK
case 23:
return tCYL;
YY_BREAK
case 24:
return tCYLINDRICAL;
YY_BREAK
case 25:
return tDEFINE;
YY_BREAK
case 26:
return tDIFFUSE;
YY_BREAK
case 27:
return tDIFFERENCE;
YY_BREAK
case 28:
return tDIRECTIONAL;
YY_BREAK
case 29:
return tDISC;
YY_BREAK
case 30:
return tEND;
YY_BREAK
case 31:
return tEXTENDED;
YY_BREAK
case 32:
return tEXTINCT;
YY_BREAK
case 33:
return tEYEP;
YY_BREAK
case 34:
return tEYESEP;
YY_BREAK
case 35:
return tFILTER;
YY_BREAK
case 36:
return tFBM;
YY_BREAK
case 37:
return tFBMBUMP;
YY_BREAK
case 38:
return tFOCALDIST;
YY_BREAK
case 39:
return tFOG;
YY_BREAK
case 40:
return tFOGDECK;
YY_BREAK
case 41:
return tFOV;
YY_BREAK
case 42:
return tFRAMELENGTH;
YY_BREAK
case 43:
return tFRAMES;
YY_BREAK
case 44:
return tGAUSS;
YY_BREAK
case 45:
return tGLOSS;
YY_BREAK
case 46:
return tGRID;
YY_BREAK
case 47:
return tHEIGHTFIELD;
YY_BREAK
case 48:
return tIMAGE;
YY_BREAK
case 49:
return tINDEX;
YY_BREAK
case 50:
return tINTERSECT;
YY_BREAK
case 51:
return tJITTER;
YY_BREAK
case 52:
return tLIGHT;
YY_BREAK
case 53:
return tLIST;
YY_BREAK
case 54:
return tLOOKP;
YY_BREAK
case 55:
return tMAP;
YY_BREAK
case 56:
return tMARBLE;
YY_BREAK
case 57:
return tMAXDEPTH;
YY_BREAK
case 58:
return tMOUNT;
YY_BREAK
case 59:
return tMIST;
YY_BREAK
case 60:
return tNAME;
YY_BREAK
case 61:
return tNOJITTER;
YY_BREAK
case 62:
return tNOSHADOW;
YY_BREAK
case 63:
return tOBJECT;
YY_BREAK
case 64:
return tOUTFILE;
YY_BREAK
case 65:
return tPLANE;
YY_BREAK
case 66:
return tPLANAR;
YY_BREAK
case 67:
return tPOINT;
YY_BREAK
case 68:
return tPOLY;
YY_BREAK
case 69:
return tPOLY;
YY_BREAK
case 70:
return tPRINT;
YY_BREAK
case 71:
return tQUIET;
YY_BREAK
case 72:
return tRANGE;
YY_BREAK
case 73:
return tREFLECT;
YY_BREAK
case 74:
return tREFLECT;
YY_BREAK
case 75:
return tREPORT;
YY_BREAK
case 76:
return tSCREEN; /* A synonym for screen */
YY_BREAK
case 77:
return tROTATE;
YY_BREAK
case 78:
return tSAMPLE;
YY_BREAK
case 79:
return tSCALE;
YY_BREAK
case 80:
return tSCREEN;
YY_BREAK
case 81:
return tSHADOWTRANSP;
YY_BREAK
case 82:
return tSHUTTER;
YY_BREAK
case 83:
return tSKY;
YY_BREAK
case 84:
return tSMOOTH;
YY_BREAK
case 85:
return tSPHERE;
YY_BREAK
case 86:
return tSPHERICAL;
YY_BREAK
case 87:
return tSPECULAR;
YY_BREAK
case 88:
return tSPECPOW;
YY_BREAK
case 89:
return tSPOT;
YY_BREAK
case 90:
return tSTARTTIME;
YY_BREAK
case 91:
return tSTRIPE;
YY_BREAK
case 92:
return tSURFACE;
YY_BREAK
case 93:
return tTEXTSURF;
YY_BREAK
case 94:
return tTEXTURE;
YY_BREAK
case 95:
return tTILE;
YY_BREAK
case 96:
return tTORUS;
YY_BREAK
case 97:
return tTRANSFORM;
YY_BREAK
case 98:
return tTRANSLATE;
YY_BREAK
case 99:
return tTRANSLU;
YY_BREAK
case 100:
return tTRANSLU;
YY_BREAK
case 101:
return tTRANSP;
YY_BREAK
case 102:
return tTRANSP;
YY_BREAK
case 103:
return tTRIANGLE;
YY_BREAK
case 104:
return tTRIANGLEUV;
YY_BREAK
case 105:
return tUNION;
YY_BREAK
case 106:
return tUP;
YY_BREAK
case 107:
return tUV;
YY_BREAK
case 108:
return tVERBOSE;
YY_BREAK
case 109:
return tWINDOW;
YY_BREAK
case 110:
return tWINDY;
YY_BREAK
case 111:
return tWOOD;
YY_BREAK
case 112:
case 113:
case 114:
case 115:
{yylval.d = atof(yytext); return tFLOAT;}
YY_BREAK
case 116:
{yylval.c = strsave(yytext); return tSTRING;}
YY_BREAK
case 117:
{yylval.c = strsave(yytext); return tFILENAME;}
YY_BREAK
case 118:
return yytext[0];
YY_BREAK
case 119:
YY_DEFAULT_ACTION;
YY_BREAK
case YY_NEW_FILE:
break; /* begin reading from new file */
case YY_END_TOK:
return ( YY_END_TOK );
default:
YY_FATAL_ERROR( "fatal flex scanner internal error" );
}
get_next_token:
{
register int yy_curst;
register char yy_sym;
YY_DO_BEFORE_SCAN
/* set up to begin running DFA */
yy_curst = yy_start;
if ( yy_ch_buf[yy_c_buf_p] == '\n' ) {
yylineno++;
++yy_curst;
}
/* yy_b_buf_p points to the position in yy_ch_buf
* of the start of the current run.
*/
yy_b_buf_p = yy_c_buf_p + 1;
do /* until the machine jams */
{
if ( yy_c_buf_p == yy_e_buf_p )
{ /* need more input */
if ( yy_e_buf_p >= YY_BUF_LIM )
{ /* not enough room to do another read */
/* see if we can make some room for more chars */
yy_n_chars = yy_e_buf_p - yy_b_buf_p;
if ( yy_n_chars >= 0 )
/* shift down buffer to make room */
for ( yy_iii = 0; yy_iii <= yy_n_chars; ++yy_iii )
{
yy_buf_pos = yy_b_buf_p + yy_iii;
yy_ch_buf[yy_iii] = yy_ch_buf[yy_buf_pos];
yy_st_buf[yy_iii] = yy_st_buf[yy_buf_pos];
}
yy_b_buf_p = 0;
yy_e_buf_p = yy_n_chars;
if ( yy_e_buf_p >= YY_BUF_LIM )
YY_FATAL_ERROR( "flex input buffer overflowed" );
yy_c_buf_p = yy_e_buf_p;
}
else if ( yy_saw_eof )
{
saweof: if ( yy_b_buf_p > yy_e_buf_p )
{
if ( yywrap() )
{
yy_act = YY_END_TOK;
goto do_action;
}
else
{
YY_INIT;
yy_act = YY_NEW_FILE;
goto do_action;
}
}
else /* do a jam to eat up more input */
{
#ifndef FLEX_INTERACTIVE_SCANNER
/* we're going to decrement yy_c_buf_p upon doing
* the jam. In this case, that's wrong, since
* it points to the last non-jam character. So
* we increment it now to counter the decrement.
*/
++yy_c_buf_p;
#endif
break;
}
}
YY_INPUT( (yy_ch_buf + yy_c_buf_p + 1), yy_n_chars,
YY_MAX_LINE );
if ( yy_n_chars == YY_NULL )
{
if ( yy_saw_eof )
YY_FATAL_ERROR( "flex scanner saw EOF twice - shouldn't happen" );
yy_saw_eof = 1;
goto saweof;
}
yy_e_buf_p += yy_n_chars;
}
++yy_c_buf_p;
#ifdef FLEX_USE_ECS
yy_sym = e[yy_ch_buf[yy_c_buf_p]];
#else
yy_sym = yy_ch_buf[yy_c_buf_p];
#endif
#ifdef FLEX_FULL_TABLE
yy_curst = n[yy_curst][yy_sym];
#else /* get next state from compressed table */
while ( c[b[yy_curst] + yy_sym] != yy_curst )
{
yy_curst = d[yy_curst];
#ifdef FLEX_USE_MECS
/* we've arrange it so that templates are never chained
* to one another. This means we can afford make a
* very simple test to see if we need to convert to
* yy_sym's meta-equivalence class without worrying
* about erroneously looking up the meta-equivalence
* class twice
*/
if ( yy_curst >= YY_TEMPLATE )
yy_sym = m[yy_sym];
#endif
}
yy_curst = n[b[yy_curst] + yy_sym];
#endif
yy_st_buf[yy_c_buf_p] = yy_curst;
}
#ifdef FLEX_INTERACTIVE_SCANNER
while ( b[yy_curst] != YY_JAM_BASE );
#else
while ( yy_curst != YY_JAM );
--yy_c_buf_p; /* put back character we jammed on */
#endif
if ( yy_c_buf_p >= yy_b_buf_p )
{ /* we matched some text */
yy_curst = yy_st_buf[yy_c_buf_p];
yy_lp = l[yy_curst];
#ifdef FLEX_REJECT_ENABLED
find_rule: /* we branch to this label when doing a REJECT */
#endif
for ( ; ; ) /* until we find what rule we matched */
{
#ifdef FLEX_REJECT_ENABLED
if ( yy_lp && yy_lp < l[yy_curst + 1] )
{
yy_act = a[yy_lp];
goto do_action; /* "continue 2" */
}
#else
if ( yy_lp )
{
yy_act = yy_lp;
goto do_action; /* "continue 2" */
}
#endif
if ( --yy_c_buf_p < yy_b_buf_p )
break;
yy_curst = yy_st_buf[yy_c_buf_p];
yy_lp = l[yy_curst];
}
}
YY_FATAL_ERROR( "no match in flex scanner - possible NULL in input" );
}
}
/*NOTREACHED*/
}
static void unput( c )
char c;
{
register int i;
register int yy_buf_pos ;
YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
if ( yy_c_buf_p == 0 )
{
yy_buf_pos = YY_BUF_MAX ;
for ( i = yy_e_buf_p; i >= yy_c_buf_p; --i )
{
yy_ch_buf[yy_buf_pos] = yy_ch_buf[i];
yy_st_buf[yy_buf_pos] = yy_st_buf[i];
--yy_buf_pos;
}
yy_c_buf_p = YY_BUF_MAX - yy_e_buf_p;
yy_e_buf_p = YY_BUF_MAX;
}
if ( yy_c_buf_p <= 0 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );
if ( yy_c_buf_p >= yy_b_buf_p && yy_ch_buf[yy_c_buf_p] == '\n' )
yy_ch_buf[yy_c_buf_p - 1] = '\n';
yy_ch_buf[yy_c_buf_p--] = c;
YY_DO_BEFORE_ACTION; /* set up yytext again */
}
static char input( void)
{
char c;
YY_DO_BEFORE_SCAN
if ( yy_c_buf_p == yy_e_buf_p )
{ /* need more input */
int yy_n_chars;
/* we can throw away the entire current buffer */
if ( yy_saw_eof )
{
if ( yywrap() )
return ( EOF );
YY_INIT;
}
yy_b_buf_p = 0;
YY_INPUT( yy_ch_buf, yy_n_chars, YY_MAX_LINE );
if ( yy_n_chars == YY_NULL )
{
yy_saw_eof = 1;
if ( yywrap() )
return ( EOF );
YY_INIT;
return ( input() );
}
yy_c_buf_p = -1;
yy_e_buf_p = yy_n_chars - 1;
}
c = (unsigned char) yy_ch_buf[++yy_c_buf_p];
if (c=='\n')
yylineno++;
YY_DO_BEFORE_ACTION;
return ( c );
}
/*--------------------------------------------------------------------------*/
/*------------------------- END OF LEXICAL ANALYZER ------------------------*/
/*--------------------------------------------------------------------------*/
yywrap() {return 1;}
/*
* Skip over comments.
*/
skipcomments()
{
char c;
while (1) {
while (input() != '*')
;
if ((c = input()) == '/')
return;
unput(c);
}
}
/*
* Deal with ccp-produced lines of the form:
* # n "filename"
* and
* # n
* Where filename is the name of the file being processed, and n is
* the current line number in that file.
*/
handlehash()
{
char buf[BUFSIZ];
int i;
extern int yylineno;
extern char yyfilename[];
/*
* Read the entire line into buf.
*/
for (i = 0; (buf[i] = input()) != '\n'; i++)
;
unput(buf[i]); /* To make sure consecutive # lines work. */
buf[i] = (char)NULL; /* Replace newline with NULL. */
/*
* Complain if the line was not of the form #n "filename"
*/
if ((i = sscanf(buf,"%d \"%[^\"]s\"", &yylineno, yyfilename)) == 0 &&
(i = sscanf(buf," line %d \"%[^\"]s\"",&yylineno,yyfilename))==0) {
RLerror(RL_PANIC, "Unknown '#' control (%s).\n",buf,"","");
exit(1);
}
if (i == 1 && (index(buf,'"') != (char *)NULL)) {
/*
* Filename was given as ""
*/
(void)strcpy(yyfilename, "stdin");
}
yylineno--; /* The newline we unput will increment yylineno */
}