home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Graphics / graphics-16000.iso / msdos / raytrace / rayshade / src / lexyy.c < prev    next >
C/C++ Source or Header  |  1992-05-05  |  41KB  |  1,268 lines

  1. #define YY_DEFAULT_ACTION ECHO;
  2. #define FLEX_USE_ECS
  3. #define FLEX_USE_MECS
  4. /* A lexical scanner generated by flex */
  5.  
  6. #include "skeleton.h"
  7.  
  8. #define INITIAL 0
  9. /* lex.l                                   */
  10. /* Copyright (C) 1989, 1991, Craig E. Kolb                   */
  11. /* All rights reserved.                               */
  12. /*                                       */
  13. /* This software may be freely copied, modified, and redistributed,       */
  14. /* provided that this copyright notice is preserved on all copies.       */
  15. /*                                       */
  16. /* You may not distribute this software, in whole or in part, as part of   */
  17. /* any commercial product without the express consent of the authors.       */
  18. /*                                        */
  19. /* There is no warranty or other guarantee of fitness of this software       */
  20. /* for any purpose.  It is provided solely "as is".               */
  21. /*                                       */
  22. /* $Id: lex.l,v 4.0.1.3 92/01/14 18:28:38 cek Exp Locker: cek $ */
  23. #include "config.h"
  24. #include "rayshade.h"
  25. #ifdef I_STRING
  26. #include <string.h>
  27. #else
  28. #include <strings.h>
  29. #endif
  30. #include "light.h"
  31. #include "atmosphere.h"
  32. #include "surface.h"
  33. #include "texture.h"
  34. #include "geom.h"
  35. #include "symtab.h"
  36. #include "yacc_tab.h"
  37.  
  38. extern int yylineno;
  39. extern char *strsave();
  40. #define YY_JAM 538
  41. #define YY_JAM_BASE 1085
  42. #define YY_TEMPLATE 539
  43. static char l[539] =
  44.     {   0,
  45.        -2,   -2,  118,    1,    1,  118,  118,  112,  116,  116,
  46.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  47.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  48.       116,    2,    0,    0,  114,    3,    0,    0,  117,  113,
  49.       112,    0,  116,  116,  116,  116,  116,  116,  116,  116,
  50.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  51.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  52.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  53.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  54.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  55.  
  56.       116,  116,  106,  107,  116,  116,  116,    0,  117,  113,
  57.         0,    0,  115,  116,  116,  116,  116,  116,  116,  116,
  58.       116,   13,  116,  116,  116,  116,  116,  116,  116,  116,
  59.       116,  116,  116,  116,  116,   30,  116,  116,   36,  116,
  60.       116,   39,   41,  116,  116,  116,  116,  116,  116,  116,
  61.       116,  116,  116,  116,  116,   55,  116,  116,  116,  116,
  62.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  63.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  64.        83,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  65.       116,  116,  116,  116,  116,  116,  116,    0,  114,    0,
  66.  
  67.         0,  113,  116,  116,  116,    7,  116,  116,   10,  116,
  68.        12,   14,  116,  116,  116,   17,  116,   20,  116,  116,
  69.       116,  116,  116,  116,   29,  116,  116,   33,  116,  116,
  70.       116,  116,  116,  116,  116,  116,   46,  116,  116,  116,
  71.       116,  116,  116,   53,  116,  116,  116,   59,  116,   60,
  72.       116,  116,  116,  116,  116,  116,   68,  116,  116,  116,
  73.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  74.       116,  116,   89,  116,  116,  116,  116,   95,  116,  116,
  75.       116,  116,  116,  116,  111,    0,  113,  116,  116,  116,
  76.       116,  116,  116,  116,   16,  116,  116,  116,  116,  116,
  77.  
  78.       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  79.       116,  116,   44,   45,  116,   48,   49,  116,  116,   52,
  80.        54,  116,  116,   58,  116,  116,  116,  116,  116,   65,
  81.        67,  116,   70,   71,   72,  116,  116,  116,  116,  116,
  82.        79,  116,  116,  116,  116,  116,  116,  116,  116,  116,
  83.       116,  116,  116,   96,  116,  116,  105,  116,  116,  110,
  84.       116,  116,  116,  116,  116,   11,  116,  116,  116,  116,
  85.        22,  116,   25,  116,  116,  116,  116,  116,   34,  116,
  86.        35,  116,  116,  116,   43,  116,  116,   51,   56,  116,
  87.       116,  116,   63,  116,   66,  116,  116,   75,  116,   77,
  88.  
  89.        78,   80,  116,  116,   84,  116,  116,   85,  116,  116,
  90.        91,  116,  116,  116,  116,  116,  101,  116,  116,  109,
  91.         4,  116,  116,  116,  116,   15,  116,  116,   21,  116,
  92.       116,  116,   26,  116,  116,   32,   37,  116,   40,  116,
  93.       116,  116,  116,  116,  116,   64,   69,   73,  116,  116,
  94.        82,   88,  116,  116,  116,   92,  116,   94,  116,  116,
  95.        99,  116,  116,  108,    5,  116,  116,  116,  116,   19,
  96.        23,  116,  116,  116,   31,  116,  116,  116,  116,   57,
  97.        61,   62,  116,  116,  116,   87,  116,  116,   93,  116,
  98.       116,  116,  116,  103,    6,  116,  116,   18,  116,  116,
  99.  
  100.       116,   38,  116,  116,   50,  116,  116,  116,   86,   90,
  101.        97,   98,  116,  116,  116,    8,    9,  116,   27,  116,
  102.       116,  116,   74,   76,  116,  116,  116,  104,   24,   28,
  103.        42,   47,  116,  116,  102,   81,  100,    0
  104.     } ;
  105.  
  106. static char e[128] =
  107.     {   0,
  108.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  109.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  110.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  111.         1,    2,    1,    1,    4,    1,    1,    1,    1,    1,
  112.         1,    5,    6,    1,    7,    8,    9,   10,   10,   10,
  113.        10,   10,   10,   10,   10,   10,   10,    1,    1,    1,
  114.         1,    1,    1,    1,   11,   11,   11,   11,   12,   11,
  115.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  116.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  117.         1,    1,    1,    1,   13,    1,   14,   15,   16,   17,
  118.  
  119.        18,   19,   20,   21,   22,   23,   24,   25,   26,   27,
  120.        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
  121.        38,   11,    1,    1,    1,    1,    1
  122.     } ;
  123.  
  124. static char m[39] =
  125.     {   0,
  126.         1,    1,    1,    1,    2,    1,    3,    4,    4,    3,
  127.         4,    4,    3,    4,    4,    4,    4,    4,    4,    4,
  128.         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
  129.         4,    4,    4,    4,    4,    4,    4,    4
  130.     } ;
  131.  
  132. static short int b[542] =
  133.     {   0,
  134.         0, 1081, 1085, 1085, 1085,   31,   37,   39, 1075,   34,
  135.        41,   67,   50,   43,   62,   69,   35,   47,   39,   80,
  136.        82,   97,   88,   90,   45,   98,  118,  115,  121,  105,
  137.       127, 1085, 1074,   77,  147, 1085,  111,  153, 1073,  154,
  138.       159,  168, 1072,   49,  161,  120,  119,  144,  126,  159,
  139.       154,  122,  164,  172,  173,  174,  175,  176,  178,  100,
  140.       179,  184,  177,  195,  197,  180,   53,  199,  202,  206,
  141.       205,  209,  207,  213,  216,  212,  214,  220,  221,  225,
  142.       227,  222,  242,  243,  244,  249,  250,  251,  228,  253,
  143.       255,  258,  264,  254,  266,  267,  265,  104,  276,  269,
  144.  
  145.       281,  282, 1071, 1070,  279,  280,  284,  299, 1069,  301,
  146.       308, 1067, 1066,  299,  307,  308,  311,  313,  315,  314,
  147.       288, 1066,  319,  318,  321,  322,  326,  323,  328,  333,
  148.       327,  331,  337,  336,  334, 1065,  348,  349,  353,  354,
  149.       355,  356, 1064,  358,  362,  363,  365,  366,  368,  367,
  150.       371,  370,  381,  374,  382, 1063,  383,  384,  387,  388,
  151.       390,  391,  395,  396,  400,  401,  402,  403,  408,  409,
  152.       412,  413,  414,  415,  416,  417,  422,  427,  431,  424,
  153.      1062,  425,  428,  440,  430,  441,  442,  443,  445,  447,
  154.       446,  450,  452,  451,  458,  459,  465, 1060, 1059,  477,
  155.  
  156.      1058, 1057,  472,  460,  461, 1057,  462,  466, 1056,  476,
  157.      1055, 1054,  479,  480,  482, 1053,  486, 1052,  487,  489,
  158.       491,  492,  493,  496, 1051,  495,  497, 1050,  498,  500,
  159.       505,  504,  517,  519,  506,  511, 1049,  521,  522,  516,
  160.       523,  527,  524, 1048,  530,  535,  532, 1047,  537, 1046,
  161.       538,  542,  539,  540,  549,  543,  552,  555,  556,  557,
  162.       559,  560,  565,  564,  569,  574,  575,  570,  571,  572,
  163.       573,  577, 1045,  576,  586,  587,  578, 1044,  590,  591,
  164.       594,  597,  602,  604, 1043, 1041, 1040,  607,  605,  608,
  165.       609,  610,  616,  611, 1040,  617,  619,  618,  626,  634,
  166.  
  167.       637,  622,  627,  638,  639,  641,  643,  649,  645,  651,
  168.       653,  652, 1039, 1038,  654, 1037, 1036,  656,  655, 1035,
  169.      1034,  661,  664, 1033,  657,  665,  658,  669,  671, 1032,
  170.      1031,  672, 1030, 1029, 1028,  676,  674,  680,  686,  687,
  171.      1027,  688,  689,  690,  692,  694,  701,  702,  697,  700,
  172.       703,  707,  708, 1026,  718,  712, 1025,  714,  719, 1024,
  173.       720,  725,  724,  727,  722, 1023,  726,  731,  729,  733,
  174.      1022,  736, 1021,  742,  750,  753,  754,  755, 1020,  756,
  175.      1019,  757,  760,  762, 1018,  764,  768, 1017, 1016,  761,
  176.       769,  765, 1015,  772, 1014,  773,  780, 1013,  782, 1012,
  177.  
  178.      1011, 1010,  783,  767, 1009,  786,  787, 1008,  788,  790,
  179.      1007,  793,  794,  796,  798,  809,  810,  808,  811, 1006,
  180.      1005,  812,  797,  818,  800, 1004,  822,  799, 1003,  826,
  181.       828,  829, 1002,  830,  831, 1001, 1000,  832,  999,  833,
  182.       837,  835,  844,  836,  838,  998,  997,  846,  853,  845,
  183.       996,  995,  852,  857,  843,  989,  854,  986,  861,  863,
  184.       868,  869,  870,  985,  984,  871,  872,  877,  873,  983,
  185.       982,  878,  882,  880,  981,  876,  888,  884,  886,  980,
  186.       979,  978,  890,  892,  896,  977,  902,  903,  976,  904,
  187.       905,  906,  908,  907,  975,  913,  919,  974,  920,  924,
  188.  
  189.       923,  973,  926,  929,  972,  930,  931,  934,  970,  969,
  190.       967,  966,  935,  936,  937,  964,  962,  940,  961,  941,
  191.       943,  938,  960,  959,  942,  944,  947,  909,  801,  735,
  192.       290,  230,  948,  958,  229,  226,  182, 1085,  995,  997,
  193.       999
  194.     } ;
  195.  
  196. static short int d[542] =
  197.     {   0,
  198.       538,    1,  538,  538,  538,  538,  539,  538,  540,  540,
  199.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  200.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  201.       540,  538,  538,  539,  538,  538,  538,  539,  541,  538,
  202.       538,  538,  540,  540,  540,  540,  540,  540,  540,  540,
  203.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  204.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  205.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  206.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  207.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  208.  
  209.       540,  540,  540,  540,  540,  540,  540,  538,  541,  538,
  210.       538,  538,  538,  540,  540,  540,  540,  540,  540,  540,
  211.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  212.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  213.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  214.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  215.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  216.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  217.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  218.       540,  540,  540,  540,  540,  540,  540,  538,  538,  538,
  219.  
  220.       538,  538,  540,  540,  540,  540,  540,  540,  540,  540,
  221.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  222.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  223.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  224.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  225.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  226.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  227.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  228.       540,  540,  540,  540,  540,  538,  538,  540,  540,  540,
  229.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  230.  
  231.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  232.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  233.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  234.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  235.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  236.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  237.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  238.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  239.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  240.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  241.  
  242.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  243.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  244.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  245.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  246.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  247.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  248.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  249.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  250.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  251.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  252.  
  253.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  254.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  255.       540,  540,  540,  540,  540,  540,  540,  540,  540,  540,
  256.       540,  540,  540,  540,  540,  540,  540,-32767,  538,  538,
  257.       538
  258.     } ;
  259.  
  260. static short int n[1124] =
  261.     {   0,
  262.         3,    4,    5,    3,    3,    3,    3,    6,    7,    8,
  263.         9,    9,    3,   10,   11,   12,   13,   14,   15,   16,
  264.        17,   18,   19,    9,   20,   21,   22,   23,   24,   25,
  265.        26,   27,   28,   29,   30,   31,    9,    9,   33,   34,
  266.        35,   36,   34,   34,   37,   38,   40,   34,   41,   34,
  267.        42,   34,   70,   34,   48,   34,   42,   34,   34,   44,
  268.        73,   34,   45,  114,   46,   49,   47,   58,   50,   60,
  269.        34,   59,   71,   72,   51,   34,   63,   34,   86,   61,
  270.        62,  538,   67,   64,   37,  538,  145,   52,   34,   65,
  271.        34,   53,   66,   68,   54,   76,   34,   55,   34,   69,
  272.  
  273.        56,   74,   81,   77,   57,   34,   34,   75,   34,   78,
  274.        79,   87,   34,   34,   83,   88,  136,   84,   33,   34,
  275.        85,   82,  105,   34,   80,   89,   34,   34,   34,   34,
  276.        34,   90,   98,   91,   34,   34,   99,  117,   92,  124,
  277.       189,   93,  100,   94,  118,  101,   95,  102,  106,  103,
  278.        96,   97,   34,  120,  107,  104,   35,  538,  108,  119,
  279.        37,  538,   34,  110,  108,  111,   40,   34,   41,   34,
  280.        42,  111,   34,  112,  112,  121,   42,  113,  115,  123,
  281.        34,   34,   34,   34,   34,   34,   34,   34,   34,  116,
  282.        34,  125,   34,  144,  132,  122,  133,  126,  127,  131,
  283.  
  284.       128,  138,  139,   34,  129,   34,  130,   34,  134,  135,
  285.        34,  137,  141,   34,   34,   34,  142,   34,  149,  140,
  286.        34,   34,   34,  147,   34,  150,  146,  148,   34,   34,
  287.        34,  143,  153,   34,   34,   34,   34,   34,   34,  152,
  288.       156,  151,  157,  155,  154,  159,  161,  162,  158,  164,
  289.        34,   34,   34,  160,  165,  166,  163,   34,   34,   34,
  290.       175,   34,   34,   34,  167,  169,   34,  168,  177,  172,
  291.       170,  179,   34,   34,   34,   34,  171,   34,  176,  173,
  292.       186,  182,  174,  183,   34,  178,  184,   34,   34,   34,
  293.        34,  180,   34,  185,  192,  188,   34,  187,   34,  191,
  294.  
  295.       190,  181,  193,  194,  198,  198,  196,   34,  199,  195,
  296.       110,  197,  200,  201,  201,   34,   34,  202,  200,   34,
  297.       203,   34,   34,   34,  206,  211,   34,   34,  209,   34,
  298.        34,   34,  205,  213,   34,   34,   34,  204,  208,   34,
  299.       207,   34,   34,  216,   34,   34,  210,  212,  221,  225,
  300.       215,  218,  222,  224,  214,  223,   34,   34,  217,  219,
  301.       220,   34,   34,   34,   34,  226,   34,  230,  232,  227,
  302.        34,   34,  233,   34,   34,   34,   34,  228,   34,   34,
  303.       229,  237,   34,  234,  240,  238,  231,  239,  241,   34,
  304.        34,   34,   34,  235,  236,   34,   34,  246,   34,   34,
  305.  
  306.       247,  243,  242,   34,   34,  245,  244,  250,   34,   34,
  307.        34,   34,  251,  253,  249,  252,   34,   34,  254,  248,
  308.        34,   34,   34,   34,   34,   34,  259,  255,  256,  264,
  309.        34,  260,   34,   34,  258,   34,   34,  261,   34,   34,
  310.       257,  262,  263,  271,  267,  265,  266,  268,   34,   34,
  311.        34,   34,  270,   34,   34,   34,  269,  272,   34,   34,
  312.        34,  276,  273,  275,  278,  281,   34,   34,   34,   34,
  313.        34,  274,  283,   34,   34,  284,  280,  277,  282,  279,
  314.        34,  285,  286,  286,   34,  292,  287,   34,   34,  288,
  315.        34,  293,  289,  291,   34,   34,  295,   34,  290,   34,
  316.  
  317.        34,   34,  294,   34,   34,   34,   34,  299,   34,  296,
  318.       302,  304,   34,   34,   34,  307,  297,  300,  301,   34,
  319.       298,  305,  309,  306,   34,   34,  303,   34,  310,   34,
  320.        34,   34,   34,  308,  311,   34,  312,  313,   34,  316,
  321.        34,  315,  314,   34,  319,   34,   34,   34,   34,  323,
  322.        34,   34,  317,  318,  327,  326,  320,   34,  321,  322,
  323.        34,  328,  329,   34,   34,   34,  330,   34,   34,  324,
  324.       325,  332,   34,   34,  335,  331,  336,   34,   34,   34,
  325.        34,   34,   34,   34,   34,   34,   34,  333,  334,  338,
  326.       337,  341,  342,  340,   34,   34,  339,  343,   34,   34,
  327.  
  328.       351,  346,   34,  344,  345,   34,  347,  348,  349,  352,
  329.        34,  353,   34,   34,  350,   34,   34,   34,   34,   34,
  330.       356,  354,  355,  357,   34,   34,   34,   34,  367,  358,
  331.        34,  359,  369,  361,   34,   34,  366,  364,  362,  363,
  332.       365,  360,   34,  368,  371,   34,   34,   34,  370,   34,
  333.       372,   34,  374,   34,  373,  377,  378,   34,  375,   34,
  334.        34,   34,   34,   34,   34,   34,   34,  382,  383,   34,
  335.       376,  379,   34,   34,  380,  381,  384,   34,  389,   34,
  336.        34,  392,   34,  385,   34,  388,  386,  387,   34,  391,
  337.       393,  397,  390,  394,   34,   34,   34,   34,   34,  396,
  338.  
  339.        34,  395,   34,  400,  401,   34,  398,  404,   34,   34,
  340.        34,   34,  405,  399,  402,   34,   34,  411,  412,  408,
  341.        34,  406,   34,  409,  403,  407,   34,   34,   34,  410,
  342.        34,  418,   34,   34,   34,   34,  415,   34,  414,   34,
  343.       413,   34,  416,   34,   34,  419,  417,  424,  427,  425,
  344.        34,  429,  421,  430,  420,  422,  426,  423,   34,  432,
  345.       428,   34,   34,   34,   34,   34,  431,  433,   34,   34,
  346.        34,  435,   34,   34,  434,   34,   34,   34,  438,  440,
  347.        34,   34,  441,  439,  437,  442,  444,  436,   34,  446,
  348.        34,   34,  445,  443,   34,   34,   34,  451,   34,  447,
  349.  
  350.       453,   34,   34,  454,   34,   34,   34,   34,   34,   34,
  351.       456,  455,  448,  458,  449,  450,   34,   34,   34,   34,
  352.        34,  452,  460,  462,  457,  459,   34,  466,  464,  465,
  353.        34,  470,  463,  468,   34,  467,   34,   34,   34,   34,
  354.        34,   34,  461,   34,   34,   34,   34,  475,  469,  472,
  355.       479,   34,   34,   34,   34,  473,  471,  474,  478,  477,
  356.        34,   34,   34,  476,  480,   34,  481,  483,  488,   34,
  357.       487,   34,  489,  482,  484,  485,   34,   34,   34,   34,
  358.        34,   34,  486,  492,   34,   34,   34,  494,   34,  495,
  359.        34,  490,   34,  499,   34,  491,   34,  500,   34,  493,
  360.  
  361.        34,  504,  496,  497,   34,  498,  501,  503,  502,  508,
  362.        34,   34,   34,   34,   34,   34,   34,   34,  505,  507,
  363.       510,   34,  512,  513,  506,  514,  509,   34,   34,  511,
  364.       516,   34,   34,  518,   34,  517,  520,   34,   34,   34,
  365.       515,  519,   34,   34,   34,   34,   34,  523,   34,   34,
  366.        34,   34,   34,  522,  532,   34,   34,  524,  521,  534,
  367.       525,  526,  527,  531,  529,  530,   34,   34,   34,   34,
  368.        34,  528,   34,  533,   34,   34,  536,   34,   34,  535,
  369.        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
  370.        34,   34,   34,   34,   34,  537,   39,   34,   39,   43,
  371.  
  372.        43,  109,  109,   34,   34,   34,   34,   34,   34,   34,
  373.        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
  374.        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
  375.        34,   34,   34,   34,   34,   34,   34,   34,   34,   34,
  376.        34,   34,   34,   34,   34,   34,   34,   34,   34,  287,
  377.       287,   34,   34,   34,   34,   34,   34,   34,   34,   34,
  378.        34,   34,   34,   34,   34,   34,  202,  202,  199,  199,
  379.        34,   34,   34,   34,   34,  113,  113,   34,   34,   34,
  380.        34,   34,   34,   34,   32,  538,  538,  538,  538,  538,
  381.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  382.  
  383.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  384.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  385.       538,  538,  538
  386.     } ;
  387.  
  388. static short int c[1124] =
  389.     {   0,
  390.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  391.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  392.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  393.         1,    1,    1,    1,    1,    1,    1,    1,    6,    6,
  394.         6,    7,   10,   17,    7,    7,    8,   19,    8,   11,
  395.         8,   14,   17,   25,   11,   18,    8,   44,   13,   10,
  396.        19,   67,   10,   44,   10,   11,   10,   13,   11,   14,
  397.        15,   13,   18,   18,   11,   12,   15,   16,   25,   14,
  398.        14,   34,   16,   15,   34,   34,   67,   12,   20,   15,
  399.        21,   12,   15,   16,   12,   21,   23,   12,   24,   16,
  400.  
  401.        12,   20,   23,   21,   12,   22,   26,   20,   60,   21,
  402.        22,   26,   98,   30,   24,   26,   60,   24,   37,   37,
  403.        24,   23,   30,   28,   22,   26,   27,   47,   46,   29,
  404.        52,   27,   28,   27,   49,   31,   28,   46,   27,   52,
  405.        98,   27,   28,   27,   47,   28,   27,   29,   31,   29,
  406.        27,   27,   48,   49,   31,   29,   35,   38,   35,   48,
  407.        38,   38,   51,   40,   35,   40,   41,   50,   41,   45,
  408.        41,   40,   53,   42,   42,   50,   41,   42,   45,   51,
  409.        54,   55,   56,   57,   58,   63,   59,   61,   66,   45,
  410.       537,   53,   62,   66,   58,   50,   59,   54,   54,   57,
  411.  
  412.        55,   62,   63,   64,   56,   65,   56,   68,   59,   59,
  413.        69,   61,   65,   71,   70,   73,   65,   72,   71,   64,
  414.        76,   74,   77,   69,   75,   72,   68,   70,   78,   79,
  415.        82,   65,   74,   80,  536,   81,   89,  535,  532,   73,
  416.        76,   72,   76,   75,   74,   77,   79,   80,   76,   81,
  417.        83,   84,   85,   78,   82,   83,   80,   86,   87,   88,
  418.        89,   90,   94,   91,   84,   85,   92,   84,   91,   88,
  419.        86,   92,   93,   97,   95,   96,   87,  100,   90,   88,
  420.        96,   94,   88,   95,   99,   91,   95,  105,  106,  101,
  421.       102,   92,  107,   95,  101,   97,  121,   96,  531,  100,
  422.  
  423.        99,   93,  101,  102,  108,  108,  106,  114,  108,  105,
  424.       110,  107,  110,  111,  111,  115,  116,  111,  110,  117,
  425.       114,  118,  120,  119,  117,  121,  124,  123,  120,  125,
  426.       126,  128,  116,  124,  127,  131,  129,  115,  119,  132,
  427.       118,  130,  135,  127,  134,  133,  120,  123,  131,  135,
  428.       126,  128,  132,  134,  125,  133,  137,  138,  127,  129,
  429.       130,  139,  140,  141,  142,  137,  144,  139,  141,  137,
  430.       145,  146,  142,  147,  148,  150,  149,  138,  152,  151,
  431.       138,  147,  154,  144,  150,  148,  140,  149,  151,  153,
  432.       155,  157,  158,  145,  146,  159,  160,  157,  161,  162,
  433.  
  434.       158,  153,  152,  163,  164,  155,  154,  161,  165,  166,
  435.       167,  168,  162,  164,  160,  163,  169,  170,  165,  159,
  436.       171,  172,  173,  174,  175,  176,  170,  166,  167,  175,
  437.       177,  171,  180,  182,  169,  178,  183,  172,  185,  179,
  438.       168,  173,  174,  183,  178,  176,  177,  179,  184,  186,
  439.       187,  188,  182,  189,  191,  190,  180,  184,  192,  194,
  440.       193,  188,  185,  187,  190,  193,  195,  196,  204,  205,
  441.       207,  186,  195,  197,  208,  196,  192,  189,  194,  191,
  442.       203,  197,  200,  200,  210,  208,  200,  213,  214,  203,
  443.       215,  210,  204,  207,  217,  219,  214,  220,  205,  221,
  444.  
  445.       222,  223,  213,  226,  224,  227,  229,  220,  230,  215,
  446.       223,  224,  232,  231,  235,  229,  217,  221,  222,  236,
  447.       219,  226,  231,  227,  240,  233,  223,  234,  232,  238,
  448.       239,  241,  243,  230,  233,  242,  234,  235,  245,  239,
  449.       247,  238,  236,  246,  242,  249,  251,  253,  254,  247,
  450.       252,  256,  240,  241,  253,  252,  243,  255,  245,  246,
  451.       257,  254,  255,  258,  259,  260,  255,  261,  262,  249,
  452.       251,  257,  264,  263,  260,  256,  261,  265,  268,  269,
  453.       270,  271,  266,  267,  274,  272,  277,  258,  259,  263,
  454.       262,  266,  267,  265,  275,  276,  264,  268,  279,  280,
  455.  
  456.       276,  271,  281,  269,  270,  282,  271,  272,  274,  277,
  457.       283,  277,  284,  289,  275,  288,  290,  291,  292,  294,
  458.       281,  279,  280,  282,  293,  296,  298,  297,  294,  283,
  459.       302,  284,  297,  288,  299,  303,  293,  291,  289,  290,
  460.       292,  284,  300,  296,  299,  301,  304,  305,  298,  306,
  461.       300,  307,  302,  309,  301,  305,  306,  308,  303,  310,
  462.       312,  311,  315,  319,  318,  325,  327,  310,  311,  322,
  463.       304,  307,  323,  326,  308,  309,  312,  328,  322,  329,
  464.       332,  326,  337,  312,  336,  319,  315,  318,  338,  325,
  465.       327,  336,  323,  328,  339,  340,  342,  343,  344,  332,
  466.  
  467.       345,  329,  346,  339,  340,  349,  337,  344,  350,  347,
  468.       348,  351,  345,  338,  342,  352,  353,  350,  351,  348,
  469.       356,  346,  358,  348,  343,  347,  355,  359,  361,  349,
  470.       365,  356,  363,  362,  367,  364,  355,  369,  353,  368,
  471.       352,  370,  355,  530,  372,  358,  355,  364,  368,  365,
  472.       374,  370,  361,  372,  359,  362,  367,  363,  375,  374,
  473.       369,  376,  377,  378,  380,  382,  372,  375,  383,  390,
  474.       384,  377,  386,  392,  376,  404,  387,  391,  382,  384,
  475.       394,  396,  386,  383,  380,  387,  391,  378,  397,  394,
  476.       399,  403,  392,  390,  406,  407,  409,  404,  410,  396,
  477.  
  478.       407,  412,  413,  409,  414,  423,  415,  428,  425,  529,
  479.       412,  410,  397,  414,  399,  403,  418,  416,  417,  419,
  480.       422,  406,  416,  417,  413,  415,  424,  423,  419,  422,
  481.       427,  428,  418,  425,  430,  424,  431,  432,  434,  435,
  482.       438,  440,  416,  442,  444,  441,  445,  435,  427,  431,
  483.       442,  455,  443,  450,  448,  432,  430,  434,  441,  440,
  484.       453,  449,  457,  438,  443,  454,  444,  448,  455,  459,
  485.       454,  460,  457,  445,  449,  450,  461,  462,  463,  466,
  486.       467,  469,  453,  461,  476,  468,  472,  463,  474,  466,
  487.       473,  459,  478,  472,  479,  460,  477,  473,  483,  462,
  488.  
  489.       484,  478,  467,  468,  485,  469,  474,  477,  476,  485,
  490.       487,  488,  490,  491,  492,  494,  493,  528,  479,  484,
  491.       488,  496,  491,  492,  483,  493,  487,  497,  499,  490,
  492.       496,  501,  500,  499,  503,  497,  501,  504,  506,  507,
  493.       494,  500,  508,  513,  514,  515,  522,  506,  518,  520,
  494.       525,  521,  526,  504,  522,  527,  533,  507,  503,  526,
  495.       508,  513,  514,  521,  518,  520,  534,  524,  523,  519,
  496.       517,  515,  516,  525,  512,  511,  533,  510,  509,  527,
  497.       505,  502,  498,  495,  489,  486,  482,  481,  480,  475,
  498.       471,  470,  465,  464,  458,  534,  539,  456,  539,  540,
  499.  
  500.       540,  541,  541,  452,  451,  447,  446,  439,  437,  436,
  501.       433,  429,  426,  421,  420,  411,  408,  405,  402,  401,
  502.       400,  398,  395,  393,  389,  388,  385,  381,  379,  373,
  503.       371,  366,  360,  357,  354,  341,  335,  334,  333,  331,
  504.       330,  324,  321,  320,  317,  316,  314,  313,  295,  287,
  505.       286,  285,  278,  273,  250,  248,  244,  237,  228,  225,
  506.       218,  216,  212,  211,  209,  206,  202,  201,  199,  198,
  507.       181,  156,  143,  136,  122,  113,  112,  109,  104,  103,
  508.        43,   39,   33,    9,    2,  538,  538,  538,  538,  538,
  509.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  510.  
  511.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  512.       538,  538,  538,  538,  538,  538,  538,  538,  538,  538,
  513.       538,  538,  538
  514.     } ;
  515.  
  516.  
  517. /* these declarations have to come after the section 1 code or lint gets
  518.  * confused about whether the variables are used
  519.  */
  520. FILE *yyin = stdin, *yyout = stdout;
  521.  
  522. /* these variables are all declared out here so that section 3 code can
  523.  * manipulate them
  524.  */
  525. static int yy_start, yy_b_buf_p, yy_c_buf_p, yy_e_buf_p;
  526. static int yy_saw_eof, yy_init = 1;
  527.  
  528. /* yy_ch_buf has to be 1 character longer than YY_BUF_SIZE, since when
  529.  * setting up yytext we can try to put a '\0' just past the end of the
  530.  * matched text
  531.  */
  532. static char yy_ch_buf[YY_BUF_SIZE + 1];
  533. static int yy_st_buf[YY_BUF_SIZE];
  534. static char yy_hold_char;
  535.  
  536. static char input( void) ;
  537. static void unput( char) ;
  538.  
  539. char *yytext;
  540. static int yyleng;
  541.  
  542. /*--------------------------------------------------------------------------*/
  543. /*------------------------- BEGIN LEXICAL ANALYZER -------------------------*/
  544. /*--------------------------------------------------------------------------*/
  545.  
  546. YY_DECL
  547.     {
  548.     int yy_n_chars, yy_lp, yy_iii, yy_buf_pos, yy_act;
  549. #ifdef FLEX_REJECT_ENABLED
  550.     int yy_full_match;
  551. #endif
  552.  
  553.  
  554.  
  555.     if ( yy_init )
  556.     {
  557.     YY_INIT;
  558.     yy_start = 1;
  559.     yy_init = 0;
  560.     }
  561.  
  562.     goto get_next_token;
  563.  
  564. do_action:
  565.  
  566. #ifdef FLEX_REJECT_ENABLED
  567.     /* remember matched text in case we back up due to trailing context */
  568.     yy_full_match = yy_c_buf_p;
  569. #endif
  570.  
  571.     for ( ; ; )
  572.     {
  573.     YY_DO_BEFORE_ACTION
  574.  
  575. #ifdef FLEX_DEBUG
  576.     fprintf( stderr, "--accepting rule #%d\n", yy_act );
  577. #endif
  578.     switch ( yy_act )
  579.         {
  580. case 1:
  581. ;
  582.     YY_BREAK
  583. case 2:
  584. handlehash();
  585.     YY_BREAK
  586. case 3:
  587. skipcomments();
  588.     YY_BREAK
  589. case 4:
  590. return tAMBIENT;
  591.     YY_BREAK
  592. case 5:
  593. return tAPERTURE;
  594.     YY_BREAK
  595. case 6:
  596. return tAPPLYSURF;
  597.     YY_BREAK
  598. case 7:
  599. return tAREA;
  600.     YY_BREAK
  601. case 8:
  602. return tATMOSPHERE;
  603.     YY_BREAK
  604. case 9:
  605. return tBACKGROUND;
  606.     YY_BREAK
  607. case 10:
  608. return tBLOB;
  609.     YY_BREAK
  610. case 11:
  611. return tBLOTCH;
  612.     YY_BREAK
  613. case 12:
  614. return tBODY;
  615.     YY_BREAK
  616. case 13:
  617. return tBOX;
  618.     YY_BREAK
  619. case 14:
  620. return tBUMP;
  621.     YY_BREAK
  622. case 15:
  623. return tCHECKER;
  624.     YY_BREAK
  625. case 16:
  626. return tCLOUD;
  627.     YY_BREAK
  628. case 17:
  629. return tCONE;
  630.     YY_BREAK
  631. case 18:
  632. return tCOMPONENT;
  633.     YY_BREAK
  634. case 19:
  635. return tCONTRAST;
  636.     YY_BREAK
  637. case 20:
  638. return tCROP;
  639.     YY_BREAK
  640. case 21:
  641. return tCURSURF;
  642.     YY_BREAK
  643. case 22:
  644. return tCUTOFF;
  645.     YY_BREAK
  646. case 23:
  647. return tCYL;
  648.     YY_BREAK
  649. case 24:
  650. return tCYLINDRICAL;
  651.     YY_BREAK
  652. case 25:
  653. return tDEFINE;
  654.     YY_BREAK
  655. case 26:
  656. return tDIFFUSE;
  657.     YY_BREAK
  658. case 27:
  659. return tDIFFERENCE;
  660.     YY_BREAK
  661. case 28:
  662. return tDIRECTIONAL;
  663.     YY_BREAK
  664. case 29:
  665. return tDISC;
  666.     YY_BREAK
  667. case 30:
  668. return tEND;
  669.     YY_BREAK
  670. case 31:
  671. return tEXTENDED;
  672.     YY_BREAK
  673. case 32:
  674. return tEXTINCT;
  675.     YY_BREAK
  676. case 33:
  677. return tEYEP;
  678.     YY_BREAK
  679. case 34:
  680. return tEYESEP;
  681.     YY_BREAK
  682. case 35:
  683. return tFILTER;
  684.     YY_BREAK
  685. case 36:
  686. return tFBM;
  687.     YY_BREAK
  688. case 37:
  689. return tFBMBUMP;
  690.     YY_BREAK
  691. case 38:
  692. return tFOCALDIST;
  693.     YY_BREAK
  694. case 39:
  695. return tFOG;
  696.     YY_BREAK
  697. case 40:
  698. return tFOGDECK;
  699.     YY_BREAK
  700. case 41:
  701. return tFOV;
  702.     YY_BREAK
  703. case 42:
  704. return tFRAMELENGTH;
  705.     YY_BREAK
  706. case 43:
  707. return tFRAMES;
  708.     YY_BREAK
  709. case 44:
  710. return tGAUSS;
  711.     YY_BREAK
  712. case 45:
  713. return tGLOSS;
  714.     YY_BREAK
  715. case 46:
  716. return tGRID;
  717.     YY_BREAK
  718. case 47:
  719. return tHEIGHTFIELD;
  720.     YY_BREAK
  721. case 48:
  722. return tIMAGE;
  723.     YY_BREAK
  724. case 49:
  725. return tINDEX;
  726.     YY_BREAK
  727. case 50:
  728. return tINTERSECT;
  729.     YY_BREAK
  730. case 51:
  731. return tJITTER;
  732.     YY_BREAK
  733. case 52:
  734. return tLIGHT;
  735.     YY_BREAK
  736. case 53:
  737. return tLIST;
  738.     YY_BREAK
  739. case 54:
  740. return tLOOKP;
  741.     YY_BREAK
  742. case 55:
  743. return tMAP;
  744.     YY_BREAK
  745. case 56:
  746. return tMARBLE;
  747.     YY_BREAK
  748. case 57:
  749. return tMAXDEPTH;
  750.     YY_BREAK
  751. case 58:
  752. return tMOUNT;
  753.     YY_BREAK
  754. case 59:
  755. return tMIST;
  756.     YY_BREAK
  757. case 60:
  758. return tNAME;
  759.     YY_BREAK
  760. case 61:
  761. return tNOJITTER;
  762.     YY_BREAK
  763. case 62:
  764. return tNOSHADOW;
  765.     YY_BREAK
  766. case 63:
  767. return tOBJECT;
  768.     YY_BREAK
  769. case 64:
  770. return tOUTFILE;
  771.     YY_BREAK
  772. case 65:
  773. return tPLANE;
  774.     YY_BREAK
  775. case 66:
  776. return tPLANAR;
  777.     YY_BREAK
  778. case 67:
  779. return tPOINT;
  780.     YY_BREAK
  781. case 68:
  782. return tPOLY;
  783.     YY_BREAK
  784. case 69:
  785. return tPOLY;
  786.     YY_BREAK
  787. case 70:
  788. return tPRINT;
  789.     YY_BREAK
  790. case 71:
  791. return tQUIET;
  792.     YY_BREAK
  793. case 72:
  794. return tRANGE;
  795.     YY_BREAK
  796. case 73:
  797. return tREFLECT;
  798.     YY_BREAK
  799. case 74:
  800. return tREFLECT;
  801.     YY_BREAK
  802. case 75:
  803. return tREPORT;
  804.     YY_BREAK
  805. case 76:
  806. return tSCREEN; /* A synonym for screen */
  807.     YY_BREAK
  808. case 77:
  809. return tROTATE;
  810.     YY_BREAK
  811. case 78:
  812. return tSAMPLE;
  813.     YY_BREAK
  814. case 79:
  815. return tSCALE;
  816.     YY_BREAK
  817. case 80:
  818. return tSCREEN;
  819.     YY_BREAK
  820. case 81:
  821. return tSHADOWTRANSP;
  822.     YY_BREAK
  823. case 82:
  824. return tSHUTTER;
  825.     YY_BREAK
  826. case 83:
  827. return tSKY;
  828.     YY_BREAK
  829. case 84:
  830. return tSMOOTH;
  831.     YY_BREAK
  832. case 85:
  833. return tSPHERE;
  834.     YY_BREAK
  835. case 86:
  836. return tSPHERICAL;
  837.     YY_BREAK
  838. case 87:
  839. return tSPECULAR;
  840.     YY_BREAK
  841. case 88:
  842. return tSPECPOW;
  843.     YY_BREAK
  844. case 89:
  845. return tSPOT;
  846.     YY_BREAK
  847. case 90:
  848. return tSTARTTIME;
  849.     YY_BREAK
  850. case 91:
  851. return tSTRIPE;
  852.     YY_BREAK
  853. case 92:
  854. return tSURFACE;
  855.     YY_BREAK
  856. case 93:
  857. return tTEXTSURF;
  858.     YY_BREAK
  859. case 94:
  860. return tTEXTURE;
  861.     YY_BREAK
  862. case 95:
  863. return tTILE;
  864.     YY_BREAK
  865. case 96:
  866. return tTORUS;
  867.     YY_BREAK
  868. case 97:
  869. return tTRANSFORM;
  870.     YY_BREAK
  871. case 98:
  872. return tTRANSLATE;
  873.     YY_BREAK
  874. case 99:
  875. return tTRANSLU;
  876.     YY_BREAK
  877. case 100:
  878. return tTRANSLU;
  879.     YY_BREAK
  880. case 101:
  881. return tTRANSP;
  882.     YY_BREAK
  883. case 102:
  884. return tTRANSP;
  885.     YY_BREAK
  886. case 103:
  887. return tTRIANGLE;
  888.     YY_BREAK
  889. case 104:
  890. return tTRIANGLEUV;
  891.     YY_BREAK
  892. case 105:
  893. return tUNION;
  894.     YY_BREAK
  895. case 106:
  896. return tUP;
  897.     YY_BREAK
  898. case 107:
  899. return tUV;
  900.     YY_BREAK
  901. case 108:
  902. return tVERBOSE;
  903.     YY_BREAK
  904. case 109:
  905. return tWINDOW;
  906.     YY_BREAK
  907. case 110:
  908. return tWINDY;
  909.     YY_BREAK
  910. case 111:
  911. return tWOOD;
  912.     YY_BREAK
  913. case 112:
  914. case 113:
  915. case 114:
  916. case 115:
  917. {yylval.d = atof(yytext); return tFLOAT;}
  918.     YY_BREAK
  919. case 116:
  920. {yylval.c = strsave(yytext); return tSTRING;}
  921.     YY_BREAK
  922. case 117:
  923. {yylval.c = strsave(yytext); return tFILENAME;}
  924.     YY_BREAK
  925. case 118:
  926. return yytext[0];
  927.     YY_BREAK
  928. case 119:
  929. YY_DEFAULT_ACTION;
  930.     YY_BREAK
  931.  
  932. case YY_NEW_FILE:
  933. break; /* begin reading from new file */
  934.  
  935. case YY_END_TOK:
  936. return ( YY_END_TOK );
  937.  
  938. default:
  939. YY_FATAL_ERROR( "fatal flex scanner internal error" );
  940.         }
  941.  
  942. get_next_token:
  943.     {
  944.     register int yy_curst;
  945.     register char yy_sym;
  946.  
  947.     YY_DO_BEFORE_SCAN
  948.  
  949.     /* set up to begin running DFA */
  950.  
  951.     yy_curst = yy_start;
  952.  
  953.     if ( yy_ch_buf[yy_c_buf_p] == '\n' ) {
  954.         yylineno++;
  955.         ++yy_curst;
  956.         }
  957.  
  958.     /* yy_b_buf_p points to the position in yy_ch_buf
  959.      * of the start of the current run.
  960.      */
  961.  
  962.     yy_b_buf_p = yy_c_buf_p + 1;
  963.  
  964.     do /* until the machine jams */
  965.         {
  966.         if ( yy_c_buf_p == yy_e_buf_p )
  967.         { /* need more input */
  968.         if ( yy_e_buf_p >= YY_BUF_LIM )
  969.             { /* not enough room to do another read */
  970.             /* see if we can make some room for more chars */
  971.  
  972.             yy_n_chars = yy_e_buf_p - yy_b_buf_p;
  973.  
  974.             if ( yy_n_chars >= 0 )
  975.             /* shift down buffer to make room */
  976.             for ( yy_iii = 0; yy_iii <= yy_n_chars; ++yy_iii )
  977.                 {
  978.                 yy_buf_pos = yy_b_buf_p + yy_iii;
  979.                 yy_ch_buf[yy_iii] = yy_ch_buf[yy_buf_pos];
  980.                 yy_st_buf[yy_iii] = yy_st_buf[yy_buf_pos];
  981.                 }
  982.  
  983.             yy_b_buf_p = 0;
  984.             yy_e_buf_p = yy_n_chars;
  985.  
  986.             if ( yy_e_buf_p >= YY_BUF_LIM )
  987.             YY_FATAL_ERROR( "flex input buffer overflowed" );
  988.  
  989.             yy_c_buf_p = yy_e_buf_p;
  990.             }
  991.  
  992.         else if ( yy_saw_eof )
  993.             {
  994. saweof:            if ( yy_b_buf_p > yy_e_buf_p )
  995.             {
  996.             if ( yywrap() )
  997.                 {
  998.                 yy_act = YY_END_TOK;
  999.                 goto do_action;
  1000.                 }
  1001.  
  1002.             else
  1003.                 {
  1004.                 YY_INIT;
  1005.                 yy_act = YY_NEW_FILE;
  1006.                 goto do_action;
  1007.                 }
  1008.             }
  1009.  
  1010.             else /* do a jam to eat up more input */
  1011.             {
  1012. #ifndef FLEX_INTERACTIVE_SCANNER
  1013.             /* we're going to decrement yy_c_buf_p upon doing
  1014.              * the jam.  In this case, that's wrong, since
  1015.              * it points to the last non-jam character.  So
  1016.              * we increment it now to counter the decrement.
  1017.              */
  1018.             ++yy_c_buf_p;
  1019. #endif
  1020.             break;
  1021.             }
  1022.             }
  1023.  
  1024.         YY_INPUT( (yy_ch_buf + yy_c_buf_p + 1), yy_n_chars,
  1025.               YY_MAX_LINE );
  1026.  
  1027.         if ( yy_n_chars == YY_NULL )
  1028.             {
  1029.             if ( yy_saw_eof )
  1030.     YY_FATAL_ERROR( "flex scanner saw EOF twice - shouldn't happen" );
  1031.             yy_saw_eof = 1;
  1032.             goto saweof;
  1033.             }
  1034.  
  1035.         yy_e_buf_p += yy_n_chars;
  1036.         }
  1037.  
  1038.         ++yy_c_buf_p;
  1039.  
  1040. #ifdef FLEX_USE_ECS
  1041.         yy_sym = e[yy_ch_buf[yy_c_buf_p]];
  1042. #else
  1043.         yy_sym = yy_ch_buf[yy_c_buf_p];
  1044. #endif
  1045.  
  1046. #ifdef FLEX_FULL_TABLE
  1047.         yy_curst = n[yy_curst][yy_sym];
  1048.  
  1049. #else /* get next state from compressed table */
  1050.  
  1051.         while ( c[b[yy_curst] + yy_sym] != yy_curst )
  1052.         {
  1053.         yy_curst = d[yy_curst];
  1054.  
  1055. #ifdef FLEX_USE_MECS
  1056.         /* we've arrange it so that templates are never chained
  1057.          * to one another.  This means we can afford make a
  1058.          * very simple test to see if we need to convert to
  1059.          * yy_sym's meta-equivalence class without worrying
  1060.          * about erroneously looking up the meta-equivalence
  1061.          * class twice
  1062.          */
  1063.  
  1064.         if ( yy_curst >= YY_TEMPLATE )
  1065.             yy_sym = m[yy_sym];
  1066. #endif
  1067.         }
  1068.  
  1069.         yy_curst = n[b[yy_curst] + yy_sym];
  1070.  
  1071. #endif
  1072.  
  1073.         yy_st_buf[yy_c_buf_p] = yy_curst;
  1074.  
  1075.         }
  1076. #ifdef FLEX_INTERACTIVE_SCANNER
  1077.     while ( b[yy_curst] != YY_JAM_BASE );
  1078. #else
  1079.     while ( yy_curst != YY_JAM );
  1080.     --yy_c_buf_p; /* put back character we jammed on */
  1081.  
  1082. #endif
  1083.  
  1084.     if ( yy_c_buf_p >= yy_b_buf_p )
  1085.         { /* we matched some text */
  1086.         yy_curst = yy_st_buf[yy_c_buf_p];
  1087.         yy_lp = l[yy_curst];
  1088.  
  1089. #ifdef FLEX_REJECT_ENABLED
  1090. find_rule: /* we branch to this label when doing a REJECT */
  1091. #endif
  1092.  
  1093.         for ( ; ; ) /* until we find what rule we matched */
  1094.         {
  1095. #ifdef FLEX_REJECT_ENABLED
  1096.         if ( yy_lp && yy_lp < l[yy_curst + 1] )
  1097.             {
  1098.             yy_act = a[yy_lp];
  1099.             goto do_action; /* "continue 2" */
  1100.             }
  1101. #else
  1102.         if ( yy_lp )
  1103.             {
  1104.             yy_act = yy_lp;
  1105.             goto do_action; /* "continue 2" */
  1106.             }
  1107. #endif
  1108.  
  1109.         if ( --yy_c_buf_p < yy_b_buf_p )
  1110.             break;
  1111.  
  1112.         yy_curst = yy_st_buf[yy_c_buf_p];
  1113.         yy_lp = l[yy_curst];
  1114.         }
  1115.         }
  1116.  
  1117.     YY_FATAL_ERROR( "no match in flex scanner - possible NULL in input" );
  1118.     }
  1119.     }
  1120.  
  1121.     /*NOTREACHED*/
  1122.     }
  1123.  
  1124.  
  1125. static  void unput( c )
  1126. char c;
  1127. {
  1128.  register int i;
  1129.  register int yy_buf_pos ;
  1130.  
  1131.     YY_DO_BEFORE_SCAN; /* undo effects of setting up yytext */
  1132.  
  1133.     if ( yy_c_buf_p == 0 )
  1134.     {
  1135.     yy_buf_pos = YY_BUF_MAX ;
  1136.     for ( i = yy_e_buf_p; i >= yy_c_buf_p; --i )
  1137.         {
  1138.         yy_ch_buf[yy_buf_pos] = yy_ch_buf[i];
  1139.         yy_st_buf[yy_buf_pos] = yy_st_buf[i];
  1140.         --yy_buf_pos;
  1141.         }
  1142.  
  1143.     yy_c_buf_p = YY_BUF_MAX - yy_e_buf_p;
  1144.     yy_e_buf_p = YY_BUF_MAX;
  1145.     }
  1146.  
  1147.     if ( yy_c_buf_p <= 0 )
  1148.     YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1149.  
  1150.     if ( yy_c_buf_p >= yy_b_buf_p && yy_ch_buf[yy_c_buf_p] == '\n' )
  1151.     yy_ch_buf[yy_c_buf_p - 1] = '\n';
  1152.  
  1153.     yy_ch_buf[yy_c_buf_p--] =  c;
  1154.  
  1155.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1156.  
  1157.     }
  1158.  
  1159.  
  1160. static char input( void)
  1161. {
  1162.     char c;
  1163.  
  1164.     YY_DO_BEFORE_SCAN
  1165.  
  1166.     if ( yy_c_buf_p == yy_e_buf_p )
  1167.     { /* need more input */
  1168.     int yy_n_chars;
  1169.  
  1170.     /* we can throw away the entire current buffer */
  1171.     if ( yy_saw_eof )
  1172.         {
  1173.         if ( yywrap() )
  1174.         return ( EOF );
  1175.  
  1176.         YY_INIT;
  1177.         }
  1178.  
  1179.     yy_b_buf_p = 0;
  1180.     YY_INPUT( yy_ch_buf, yy_n_chars, YY_MAX_LINE );
  1181.  
  1182.     if ( yy_n_chars == YY_NULL )
  1183.     {
  1184.         yy_saw_eof = 1;
  1185.  
  1186.         if ( yywrap() )
  1187.         return ( EOF );
  1188.  
  1189.         YY_INIT;
  1190.  
  1191.         return ( input() );
  1192.     }
  1193.  
  1194.     yy_c_buf_p = -1;
  1195.     yy_e_buf_p = yy_n_chars - 1;
  1196.     }
  1197.  
  1198.     c = (unsigned char) yy_ch_buf[++yy_c_buf_p];
  1199.  
  1200.     if (c=='\n')
  1201.         yylineno++;
  1202.  
  1203.     YY_DO_BEFORE_ACTION;
  1204.  
  1205.     return ( c );
  1206.     }
  1207.  
  1208. /*--------------------------------------------------------------------------*/
  1209. /*------------------------- END OF LEXICAL ANALYZER ------------------------*/
  1210. /*--------------------------------------------------------------------------*/
  1211.  
  1212.  
  1213. yywrap() {return 1;}
  1214. /*
  1215.  * Skip over comments.
  1216.  */
  1217. skipcomments()
  1218. {
  1219.     char c;
  1220.  
  1221.     while (1) {
  1222.         while (input() != '*')
  1223.             ;
  1224.         if ((c = input()) == '/')
  1225.             return;
  1226.         unput(c);
  1227.     }
  1228. }
  1229. /*
  1230.  * Deal with ccp-produced lines of the form:
  1231.  * # n "filename"
  1232.  * and
  1233.  * # n
  1234.  * Where filename is the name of the file being processed, and n is
  1235.  * the current line number in that file.
  1236.  */
  1237. handlehash()
  1238. {
  1239.     char buf[BUFSIZ];
  1240.     int i;
  1241.     extern int yylineno;
  1242.     extern char yyfilename[];
  1243.  
  1244.     /*
  1245.      * Read the entire line into buf.
  1246.      */
  1247.     for (i = 0; (buf[i] = input()) != '\n'; i++)
  1248.             ;
  1249.     unput(buf[i]);        /* To make sure consecutive # lines work. */
  1250.     buf[i] = (char)NULL;    /* Replace newline with NULL. */
  1251.  
  1252.     /*
  1253.      * Complain if the line was not of the form #n "filename"
  1254.      */
  1255.     if ((i = sscanf(buf,"%d \"%[^\"]s\"", &yylineno, yyfilename)) == 0 &&
  1256.         (i = sscanf(buf," line %d \"%[^\"]s\"",&yylineno,yyfilename))==0) {
  1257.         RLerror(RL_PANIC, "Unknown '#' control (%s).\n",buf,"","");
  1258.         exit(1);
  1259.     }
  1260.     if (i == 1 && (index(buf,'"') != (char *)NULL)) {
  1261.         /*
  1262.          * Filename was given as ""
  1263.          */
  1264.         (void)strcpy(yyfilename, "stdin");
  1265.     }
  1266.     yylineno--;  /* The newline we unput will increment yylineno */
  1267. }
  1268.