home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / progrmng / flextc.sit / scan.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-25  |  52.7 KB  |  1,803 lines  |  [TEXT/KAHL]

  1. #define FLEX_COMPRESSED
  2. /* A lexical scanner generated by flex */
  3.  
  4. /* scanner skeleton version:
  5.  * $Header: flex.skel,v 2.0 89/06/20 15:49:46 vern Locked $
  6.  */
  7.  
  8. #include <stdio.h>
  9. #ifdef THINK_C
  10. #include <stdlib.h>
  11. #endif
  12.  
  13. #define FLEX_SCANNER
  14.  
  15. /* amount of stuff to slurp up with each read */
  16. #ifndef YY_READ_BUF_SIZE
  17. #define YY_READ_BUF_SIZE 8192
  18. #endif
  19.  
  20. #ifndef YY_BUF_SIZE
  21. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of input buffer */
  22. #endif
  23.  
  24. /* returned upon end-of-file */
  25. #define YY_END_TOK 0
  26.  
  27. /* copy whatever the last rule matched to the standard output */
  28.  
  29. #define ECHO fputs( yytext, yyout )
  30.  
  31. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  32.  * is returned in "result".
  33.  */
  34. #define YY_INPUT(buf,result,max_size) \
  35.     if ( (result = read( fileno(yyin), buf, max_size )) < 0 ) \
  36.         YY_FATAL_ERROR( "read() in flex scanner failed" );
  37. #define YY_NULL 0
  38. #define yyterminate() return ( YY_NULL )
  39.  
  40. /* report a fatal error */
  41. #define YY_FATAL_ERROR(msg) \
  42.     { \
  43.     fputs( msg, stderr ); \
  44.     putc( '\n', stderr ); \
  45.     exit( 1 ); \
  46.     }
  47.  
  48. /* default yywrap function - always treat EOF as an EOF */
  49. #define yywrap() 1
  50.  
  51. /* enter a start condition.  This macro really ought to take a parameter,
  52.  * but we do it the disgusting crufty way forced on us by the ()-less
  53.  * definition of BEGIN
  54.  */
  55. #define BEGIN yy_start = 1 + 2 *
  56.  
  57. /* action number for EOF rule of a given start state */
  58. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  59.  
  60. /* special action meaning "start processing a new file" */
  61. #define YY_NEW_FILE goto new_file
  62.  
  63. /* default declaration of generated scanner - a define so the user can
  64.  * easily add parameters
  65.  */
  66. #ifdef __STDC__
  67. #define YY_DECL int yylex( void )
  68. #else
  69. #define YY_DECL int yylex()
  70. #endif
  71.  
  72. /* code executed at the end of each rule */
  73. #define YY_BREAK break;
  74.  
  75. #define YY_END_OF_BUFFER_CHAR 0
  76.  
  77. /* done after the current pattern has been matched and before the
  78.  * corresponding action - sets up yytext
  79.  */
  80. #define YY_DO_BEFORE_ACTION \
  81.     yytext = yy_bp; \
  82.     yy_hold_char = *yy_cp; \
  83.     *yy_cp = '\0'; \
  84.     yy_c_buf_p = yy_cp;
  85.  
  86. /* returns the length of the matched text */
  87. #define yyleng (yy_cp - yy_bp)
  88.  
  89. #define EOB_ACT_RESTART_SCAN 0
  90. #define EOB_ACT_END_OF_FILE 1
  91. #define EOB_ACT_LAST_MATCH 2
  92.  
  93. /* return all but the first 'n' matched characters back to the input stream */
  94. #define yyless(n) \
  95.     { \
  96.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
  97.     yy_c_buf_p = yy_cp = yy_bp + n; \
  98.     YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  99.     }
  100.  
  101. #define unput(c) yyunput( c, yy_bp )
  102.  
  103. #define YY_USER_ACTION
  104.  
  105. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  106. char *yytext;
  107.  
  108. #ifndef __STDC__
  109. #define const
  110. #endif
  111.  
  112. # line 1 "scan.l"
  113. #define INITIAL 0
  114. /* scan.l - scanner for flex input */
  115. /*
  116.  * Copyright (c) 1989 The Regents of the University of California.
  117.  * All rights reserved.
  118.  *
  119.  * This code is derived from software contributed to Berkeley by
  120.  * Vern Paxson.
  121.  * 
  122.  * The United States Government has rights in this work pursuant to
  123.  * contract no. DE-AC03-76SF00098 between the United States Department of
  124.  * Energy and the University of California.
  125.  *
  126.  * Redistribution and use in source and binary forms are permitted
  127.  * provided that the above copyright notice and this paragraph are
  128.  * duplicated in all such forms and that any documentation,
  129.  * advertising materials, and other materials related to such
  130.  * distribution and use acknowledge that the software was developed
  131.  * by the University of California, Berkeley.  The name of the
  132.  * University may not be used to endorse or promote products derived
  133.  * from this software without specific prior written permission.
  134.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  135.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  136.  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  137.  */
  138. # line 28 "scan.l"
  139. #include "flexdef.h"
  140. #include "parse.h"
  141.  
  142. #ifndef lint
  143. static char copyright[] =
  144.     "@(#) Copyright (c) 1989 The Regents of the University of California.\n";
  145. static char CR_continuation[] = "@(#) All rights reserved.\n";
  146.  
  147. static char rcsid[] =
  148.     "@(#) $Header: scan.l,v 2.1 89/06/20 17:24:13 vern Exp $ (LBL)";
  149. #endif
  150.  
  151. #define ACTION_ECHO fprintf( temp_action_file, "%s", yytext )
  152. #define MARK_END_OF_PROLOG fprintf( temp_action_file, "%%%% end of prolog\n" );
  153.  
  154. #undef YY_DECL
  155. #define YY_DECL \
  156.     int flexscan()
  157.  
  158. #define RETURNCHAR \
  159.     yylval = yytext[0]; \
  160.     return ( CHAR );
  161.  
  162. #define RETURNNAME \
  163.     (void) strcpy( nmstr, yytext ); \
  164.     return ( NAME );
  165.  
  166. #define PUT_BACK_STRING(str, start) \
  167.     for ( i = strlen( str ) - 1; i >= start; --i ) \
  168.         unput(str[i])
  169.  
  170. #define CHECK_REJECT(str) \
  171.     if ( all_upper( str ) ) \
  172.         reject = true;
  173.  
  174. #define CHECK_YYMORE(str) \
  175.     if ( all_lower( str ) ) \
  176.         yymore_used = true;
  177. #define SECT2 1
  178. #define SECT2PROLOG 2
  179. #define SECT3 3
  180. #define CODEBLOCK 4
  181. #define PICKUPDEF 5
  182. #define SC 6
  183. #define CARETISBOL 7
  184. #define NUM 8
  185. #define QUOTE 9
  186. #define FIRSTCCL 10
  187. #define CCL 11
  188. #define ACTION 12
  189. #define RECOVER 13
  190. #define BRACEERROR 14
  191. #define C_COMMENT 15
  192. #define C_COMMENT_2 16
  193. #define ACTION_COMMENT 17
  194. #define ACTION_STRING 18
  195. #define PERCENT_BRACE_ACTION 19
  196. #define USED_LIST 20
  197. # line 83 "scan.l"
  198. #define YY_END_OF_BUFFER 116
  199. typedef int yy_state_type;
  200.  
  201. #ifdef THINK_C
  202. /* We need to adjust for the 32K global data limit, of course. */
  203. static const short int *yy_accept;
  204. static const char *yy_ec;
  205. static const char *yy_meta;
  206. static const short int *yy_base;
  207. static const short int *yy_def;
  208. static const short int *yy_nxt;
  209. static const short int *yy_chk;
  210.  
  211. enum { yyAccept, yyEc, yyMeta, yyBase, yyDef, yyNxt, yyChk };
  212. #else
  213. static const short int yy_accept[317] =
  214.     {   0,
  215.         0,    0,    0,    0,    0,    0,  114,  114,    0,    0,
  216.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  217.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  218.         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  219.         0,    0,  116,   16,    7,   15,   13,    1,   14,   16,
  220.        16,   16,   12,   58,   50,   51,   43,   58,   57,   41,
  221.        58,   58,   58,   50,   39,   58,   57,   42,  115,   37,
  222.       114,  114,   25,   26,   25,   25,   25,   25,   28,   27,
  223.        29,   64,  115,   60,   61,   63,   65,   79,   80,   77,
  224.        76,   78,   66,   68,   67,   66,   72,   71,   72,   72,
  225.  
  226.        74,   74,   74,   75,   90,   95,   94,   96,   96,   91,
  227.        91,   91,   88,   89,  115,   30,   82,   81,   19,   21,
  228.        20,  104,  106,  105,   98,  100,   99,  107,  109,  110,
  229.       111,   86,   86,   87,   86,   86,   86,   86,   35,   32,
  230.        31,   35,   35,    7,   13,    1,   14,    0,    2,    0,
  231.         8,    4,    0,    5,    0,    3,   12,   50,   51,    0,
  232.         0,   46,    0,    0,    0,  112,  112,   45,   44,   45,
  233.         0,   50,   39,    0,    0,    0,   54,   49,    0,   37,
  234.        36,  114,  114,   25,   25,   25,   25,   25,   28,   27,
  235.        62,   63,   76,  113,  113,   69,   70,   73,   90,    0,
  236.  
  237.        93,    0,   92,   91,   91,   91,    0,   30,   19,   17,
  238.       104,  102,   98,   97,  107,  108,   86,   86,   86,   83,
  239.        86,   86,   86,   35,   32,   35,   35,    0,    8,    8,
  240.         0,    0,    0,    0,    6,    0,   47,    0,   48,    0,
  241.        55,    0,  112,   45,   45,   56,   40,    0,   47,    0,
  242.        40,    0,   54,   25,   25,   25,   22,    0,  113,   91,
  243.        91,    0,   18,    0,  103,   83,   83,   86,   86,   35,
  244.        35,    0,   11,    8,    0,    0,    0,    0,    6,    0,
  245.         0,   25,   25,   91,   91,   86,   86,   35,   35,    0,
  246.         0,    9,    0,    0,   25,   25,   91,   91,   86,   86,
  247.  
  248.        35,   35,    4,    0,    0,   23,   24,   84,   85,   84,
  249.        85,   33,   34,   10,   53,    0
  250.     } ;
  251.  
  252. static const char yy_ec[128] =
  253.     {   0,
  254.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  255.         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  256.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  257.         1,    5,    1,    6,    7,    8,    9,    1,   10,   11,
  258.        11,   12,   11,   13,   14,   11,   15,   16,   16,   16,
  259.        16,   16,   16,   16,   16,   16,   16,    1,    1,   17,
  260.         1,   18,   11,    1,   24,   23,   25,   26,   27,   28,
  261.        23,   23,   23,   29,   23,   23,   30,   31,   32,   23,
  262.        23,   33,   34,   35,   36,   23,   23,   37,   38,   23,
  263.        19,   20,   21,   22,   23,    1,   24,   23,   25,   26,
  264.  
  265.        27,   28,   23,   23,   23,   29,   23,   23,   30,   31,
  266.        32,   23,   23,   33,   34,   35,   36,   23,   23,   37,
  267.        38,   23,   39,   40,   41,    1,    1
  268.     } ;
  269.  
  270. static const char yy_meta[42] =
  271.     {   0,
  272.         1,    2,    3,    2,    2,    4,    1,    1,    1,    5,
  273.         1,    6,    1,    7,    5,    7,    1,    1,    1,    8,
  274.         9,    1,   10,   10,   10,   10,   10,   10,   10,   10,
  275.        10,   10,   10,   10,   10,   10,   10,   10,    5,    1,
  276.        11
  277.     } ;
  278.  
  279. static const short int yy_base[375] =
  280.     {   0,
  281.         0,   41,   81,  120, 1129, 1096, 1085, 1084,  160, 1075,
  282.       100,  104,  201,    0, 1061, 1058,  114,  240,   91,  113,
  283.       131,  241,  244,  246,  281,    0, 1070, 1059,  107,  109,
  284.        87,  135,  140,  146,  242,  245,  256,  320,  340,    0,
  285.       380,  384, 1056, 1250,  152, 1250,    0,  266, 1250, 1049,
  286.       241, 1039,    0, 1250,  388, 1250, 1250,  322, 1250, 1026,
  287.      1020, 1016,  428,  468, 1250, 1020, 1009, 1250, 1015,    0,
  288.      1000, 1250,    0, 1250,    0,  975,  954,  944,    0,  326,
  289.      1250, 1250, 1250, 1250,  962,    0, 1250, 1250, 1250, 1250,
  290.       967, 1250, 1250, 1250, 1250,  962, 1250, 1250,  956,  947,
  291.  
  292.      1250,    0,  934, 1250,    0, 1250, 1250,  126,  934,    0,
  293.       918,  897, 1250, 1250,  928, 1250, 1250, 1250,    0, 1250,
  294.       915,    0, 1250,  912,    0, 1250,  905,    0, 1250, 1250,
  295.         0,    0,  330, 1250,  857,    0,  870,  827,    0,  394,
  296.      1250,  833,  816,  398,    0,  402, 1250,  847, 1250,  844,
  297.       819,  788,  110, 1250,  269, 1250,    0,  476, 1250,  543,
  298.       578, 1250,  553,   93,  230, 1250,  563,    0, 1250,  503,
  299.       405,  543, 1250,  471,  326,  406,    0, 1250,  575,    0,
  300.      1250,  574, 1250,    0,    0,  547,  545,  583,    0,  410,
  301.      1250,    0,  558, 1250,  557, 1250, 1250, 1250,    0,  391,
  302.  
  303.      1250,    0, 1250,    0,  543,  541,  567, 1250,    0,  566,
  304.         0,  565,    0, 1250,    0, 1250,    0,  422,  526,  602,
  305.         0,  537,  535,    0,  485,  535,  533,  559,    0,  558,
  306.       536,  523,  530,  553, 1250,  552, 1250,  551, 1250,  521,
  307.      1250,  472,  535,    0,    0, 1250, 1250,  407,  479,  481,
  308.      1250,  413,    0,  523,  517,    0, 1250,  540,  526,  498,
  309.       492,  520, 1250,  519, 1250,  618,    0,  494,  488,  491,
  310.       483,  511, 1250,  510,  479,  477,  483,  504, 1250,  478,
  311.       479,  480,  471,  478,  469,  476,  465,  472,  458,  441,
  312.       448, 1250,  405,  316,  360,  367,  298,  252,  238,  225,
  313.  
  314.        83,   68, 1250,   65,   70,    0,    0,    0,    0,    0,
  315.         0,    0,    0, 1250, 1250, 1250,  656,  667,  678,  689,
  316.       700,  711,  722,  733,  744,  755,  766,  777,  788,  799,
  317.       810,  815,  825,  836,  841,  851,  862,  873,  884,  895,
  318.       906,  917,  922,  932,  937,  947,  958,  969,  980,  989,
  319.       994, 1004, 1015, 1026, 1037, 1048, 1059, 1070, 1075, 1085,
  320.      1096, 1107, 1118, 1129, 1139, 1150, 1161, 1172, 1183, 1194,
  321.      1205, 1216, 1227, 1238
  322.     } ;
  323.  
  324. static const short int yy_def[375] =
  325.     {   0,
  326.       316,  316,  317,  317,  318,  318,  319,  319,  316,    9,
  327.       320,  320,  316,   13,  321,  321,  322,  322,  323,  323,
  328.       324,  324,  325,  325,  316,   25,  326,  326,  321,  321,
  329.       327,  327,  328,  328,  329,  329,  330,  330,  316,   39,
  330.       331,  331,  316,  316,  316,  316,  332,  316,  316,  333,
  331.       334,  316,  335,  316,  316,  316,  316,  316,  316,  316,
  332.       336,  337,  316,  338,  316,  316,  316,  316,  339,  340,
  333.       341,  316,  342,  316,  343,  343,  343,  342,  344,  316,
  334.       316,  316,  316,  316,  316,  345,  316,  316,  316,  316,
  335.       316,  316,  316,  316,  316,  337,  316,  316,  346,  347,
  336.  
  337.       316,  348,  337,  316,  349,  316,  316,  350,  316,  351,
  338.       351,  351,  316,  316,  352,  316,  316,  316,  353,  316,
  339.       316,  354,  316,  316,  355,  316,  316,  356,  316,  316,
  340.       357,  358,  358,  316,  358,  359,  359,  359,  360,  316,
  341.       316,  360,  360,  316,  332,  316,  316,  333,  316,  316,
  342.       361,  316,  316,  316,  362,  316,  335,  316,  316,  316,
  343.       363,  316,  316,  336,  336,  316,  316,  364,  316,  364,
  344.       338,  338,  316,  338,  338,  365,  366,  316,  339,  340,
  345.       316,  341,  316,  342,  343,  343,  343,  316,  344,  316,
  346.       316,  345,  316,  316,  316,  316,  316,  316,  349,  350,
  347.  
  348.       316,  350,  316,  351,  351,  351,  352,  316,  353,  367,
  349.       354,  368,  355,  316,  356,  316,  358,  358,  358,  369,
  350.       359,  359,  359,  360,  316,  360,  360,  370,  361,  371,
  351.       316,  316,  316,  362,  316,  372,  316,  363,  316,  316,
  352.       316,  336,  316,  364,  170,  316,  316,  338,  338,  365,
  353.       316,  365,  366,  343,  343,  188,  316,  373,  316,  351,
  354.       351,  367,  316,  368,  316,  369,  374,  359,  359,  360,
  355.       360,  370,  316,  371,  316,  316,  316,  372,  316,  316,
  356.       336,  343,  343,  351,  351,  359,  359,  360,  360,  316,
  357.       316,  316,  316,  336,  343,  343,  351,  351,  359,  359,
  358.  
  359.       360,  360,  316,  316,  316,  343,  343,  351,  351,  359,
  360.       359,  360,  360,  316,  316,    0,  316,  316,  316,  316,
  361.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  362.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  363.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  364.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  365.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  366.       316,  316,  316,  316
  367.     } ;
  368.  
  369. static const short int yy_nxt[1292] =
  370.     {   0,
  371.        44,   45,   46,   45,   45,   44,   44,   44,   44,   44,
  372.        44,   44,   44,   44,   44,   44,   44,   44,   44,   44,
  373.        44,   44,   47,   47,   47,   47,   47,   47,   47,   47,
  374.        47,   47,   47,   47,   47,   47,   47,   47,   44,   44,
  375.        44,   44,   48,   49,   48,   48,   44,   50,   44,   51,
  376.        44,   44,   44,   44,   44,   52,   44,   44,   44,   44,
  377.        44,   44,   44,   53,   53,   53,   53,   53,   53,   53,
  378.        53,   53,   53,   53,   53,   53,   53,   53,   53,   44,
  379.        44,   44,   55,   56,   55,   55,   57,  315,   58,  120,
  380.       314,   59,   59,   94,  313,   59,   95,   60,  121,   61,
  381.  
  382.        62,   80,   81,   80,   80,   80,   81,   80,   80,  117,
  383.        96,  117,  165,  241,  228,   94,   89,  312,   95,   63,
  384.        59,   64,   65,   64,   64,   57,   90,   58,   66,   91,
  385.        59,   59,   96,   83,   67,  201,   60,  120,   61,   62,
  386.       232,   68,  123,  233,   98,  202,  121,  118,  123,  118,
  387.        99,  124,  100,  144,   92,  144,  144,  124,   63,   59,
  388.        73,   73,   74,   73,   73,   73,   73,   73,   73,   73,
  389.        73,   73,   73,   73,   73,   73,   73,   73,   73,   73,
  390.        73,   73,   75,   75,   75,   75,   75,   75,   75,   75,
  391.        75,   75,   76,   75,   75,   75,   75,   77,   73,   73,
  392.  
  393.        73,   82,   82,   83,   82,   82,   82,   82,   82,   82,
  394.        82,   82,   82,   84,   82,   82,   82,   82,   85,   82,
  395.        82,   82,   82,   86,   86,   86,   86,   86,   86,   86,
  396.        86,   86,   86,   86,   86,   86,   86,   86,   86,   82,
  397.        82,   82,   89,   83,  126,  242,   83,  126,   83,  151,
  398.       164,  311,   90,  127,   98,   91,  127,  102,  129,  102,
  399.        99,  130,  100,  103,  104,  103,  104,  146,  147,  146,
  400.       146,  235,  310,  236,  152,  131,  153,  154,  309,  155,
  401.        92,  105,  105,  106,  105,  105,  107,  105,  105,  105,
  402.       108,  105,  105,  105,  105,  109,  105,  105,  105,  105,
  403.  
  404.       105,  105,  105,  110,  110,  110,  110,  110,  110,  110,
  405.       110,  110,  110,  111,  110,  110,  110,  110,  112,  113,
  406.       105,  114,  129,  162,  162,  130,  162,  190,  247,  190,
  407.       190,  218,  308,  218,  218,  165,  241,  178,  219,  131,
  408.       132,  133,  134,  133,  133,  132,  132,  132,  135,  132,
  409.       132,  132,  132,  132,  132,  132,  132,  132,  132,  132,
  410.       132,  132,  136,  136,  136,  136,  136,  136,  136,  136,
  411.       136,  136,  137,  136,  136,  136,  136,  138,  132,  132,
  412.       132,  140,  141,  140,  140,  140,  141,  140,  140,  158,
  413.       159,  158,  158,  307,  306,  225,  160,  225,  225,  144,
  414.  
  415.       201,  144,  144,  146,  147,  146,  146,  247,  251,  247,
  416.       202,  190,  142,  190,  190,  251,  142,  143,  316,  248,
  417.       252,  143,  305,  218,  238,  218,  218,  161,  168,  168,
  418.       219,  168,  168,  168,  168,  168,  168,  168,  168,  168,
  419.       168,  168,  168,  169,  168,  168,  168,  168,  168,  168,
  420.       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  421.       170,  170,  170,  170,  170,  170,  168,  168,  168,  172,
  422.       173,  172,  172,  247,  304,  303,  174,  158,  159,  158,
  423.       158,  247,  175,  251,  160,  248,  225,  281,  225,  225,
  424.       302,  165,  241,  248,  294,  252,  301,  300,  165,  241,
  425.  
  426.       299,  298,  297,  296,  295,  293,  279,  176,  292,  249,
  427.       291,  290,  273,  273,  289,  161,  245,  288,  245,  287,
  428.       286,  265,  263,  285,  284,  245,  245,  245,  245,  245,
  429.       245,  245,  245,  245,  245,  245,  245,  245,  245,  245,
  430.       245,  194,  257,  246,  172,  173,  172,  172,  283,  282,
  431.       166,  174,  280,  239,  279,  235,  277,  175,  276,  275,
  432.       273,  273,  271,  270,  269,  268,  220,  265,  263,  208,
  433.       261,  260,  259,  193,  255,  254,  183,  180,  243,  240,
  434.       239,  237,  176,  256,  256,  257,  256,  256,  256,  256,
  435.       256,  256,  256,  256,  256,  256,  256,  256,  256,  256,
  436.  
  437.       256,  256,  256,  256,  256,  258,  258,  258,  258,  258,
  438.       258,  258,  258,  258,  258,  258,  258,  258,  258,  258,
  439.       258,  256,  256,  256,  267,  267,  267,  267,  267,  267,
  440.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  441.       267,  267,  267,  267,  267,  267,  267,  267,  267,  267,
  442.       267,  267,  267,  267,  267,  267,   54,   54,   54,   54,
  443.        54,   54,   54,   54,   54,   54,   54,   69,   69,   69,
  444.        69,   69,   69,   69,   69,   69,   69,   69,   71,   71,
  445.        71,   71,   71,   71,   71,   71,   71,   71,   71,   79,
  446.        79,   79,   79,   79,   79,   79,   79,   79,   79,   79,
  447.  
  448.        83,   83,   83,   83,   83,   83,   83,   83,   83,   83,
  449.        83,   88,   88,   88,   88,   88,   88,   88,   88,   88,
  450.        88,   88,   93,   93,   93,   93,   93,   93,   93,   93,
  451.        93,   93,   93,   97,   97,   97,   97,   97,   97,   97,
  452.        97,   97,   97,   97,  101,  101,  101,  101,  101,  101,
  453.       101,  101,  101,  101,  101,  115,  115,  115,  115,  115,
  454.       115,  115,  115,  115,  115,  115,  119,  119,  119,  119,
  455.       119,  119,  119,  119,  119,  119,  119,  122,  122,  122,
  456.       122,  122,  122,  122,  122,  122,  122,  122,  125,  125,
  457.       125,  125,  125,  125,  125,  125,  125,  125,  125,  128,
  458.  
  459.       128,  128,  128,  128,  128,  128,  128,  128,  128,  128,
  460.       139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
  461.       139,  145,  231,  230,  145,  148,  148,  148,  148,  148,
  462.       148,  148,  148,  148,  148,  148,  150,  150,  150,  150,
  463.       150,  150,  150,  150,  150,  150,  150,  157,  228,  149,
  464.       157,  164,  164,  227,  164,  164,  164,  164,  164,  226,
  465.       164,  164,  166,  166,  223,  166,  166,  166,  166,  166,
  466.       166,  166,  166,  171,  171,  171,  171,  171,  171,  171,
  467.       171,  171,  171,  171,  179,  179,  179,  179,  179,  179,
  468.       179,  179,  179,  179,  179,  181,  222,  220,  181,  181,
  469.  
  470.       181,  181,  181,  181,  181,  181,  182,  182,  182,  182,
  471.       182,  182,  182,  182,  182,  182,  182,  184,  184,  214,
  472.       184,  184,  184,  184,  184,  184,  212,  184,  185,  210,
  473.       208,  185,  189,  189,  206,  189,  189,  189,  189,  189,
  474.       189,  189,  189,  192,  205,  203,  192,  194,  194,  167,
  475.       194,  194,  194,  194,  194,  194,  194,  194,  196,  196,
  476.       197,  196,  196,  196,  196,  196,  196,  196,  196,  198,
  477.       198,  195,  198,  198,  198,  198,  198,  167,  198,  198,
  478.       199,  199,  193,  191,  188,  199,  199,  199,  199,  200,
  479.       200,  187,  200,  200,  200,  200,  200,  200,  200,  200,
  480.  
  481.       204,  186,  183,  204,  207,  207,  207,  207,  207,  207,
  482.       207,  207,  207,  207,  207,  209,  209,  180,  209,  209,
  483.       178,  209,  209,  209,  209,  209,  211,  211,  177,  211,
  484.       211,  167,  211,  211,  211,  211,  211,  213,  213,  165,
  485.       213,  213,  163,  213,  213,  213,  213,  213,  215,  215,
  486.       156,  149,  215,  215,  215,  316,  215,  215,  215,  216,
  487.       216,  116,  216,  216,  216,  216,  216,  216,  216,  216,
  488.       217,  217,  116,  217,  217,  217,  217,  217,  217,   87,
  489.       217,  221,   87,   78,  221,  224,   72,   72,  224,  224,
  490.       224,  224,  224,  224,  224,  224,  229,  229,   70,  229,
  491.  
  492.       229,  229,  229,  229,  229,  229,  229,  234,  234,  234,
  493.       234,  234,  234,  234,  234,  234,  234,  234,  238,  238,
  494.       238,  238,  238,  238,  238,  238,  238,  238,  238,  244,
  495.       244,   70,  244,  244,  244,  244,  244,  244,  244,  250,
  496.       250,  250,  250,  250,  250,  250,  250,  250,  250,  250,
  497.       253,  253,  316,  253,  253,  253,  253,  253,  253,  253,
  498.       253,  262,  262,  262,  262,  262,  262,  262,  262,  262,
  499.       262,  262,  264,  264,  264,  264,  264,  264,  264,  264,
  500.       264,  264,  264,  266,  266,  316,  266,  266,  266,  266,
  501.       266,  266,  266,  266,  272,  272,  272,  272,  272,  272,
  502.  
  503.       272,  272,  272,  272,  272,  274,  274,  274,  274,  274,
  504.       274,  274,  274,  274,  274,  274,  278,  278,  278,  278,
  505.       278,  278,  278,  278,  278,  278,  278,  258,  258,  258,
  506.       258,  258,  258,  258,  258,  258,  258,  258,  267,  267,
  507.       316,  267,  267,  267,  267,  267,  267,  267,  267,   43,
  508.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  509.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  510.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  511.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  512.       316
  513.  
  514.     } ;
  515.  
  516. static const short int yy_chk[1292] =
  517.     {   0,
  518.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  519.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  520.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  521.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  522.         1,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  523.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  524.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  525.         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
  526.         2,    2,    3,    3,    3,    3,    3,  305,    3,   31,
  527.       304,    3,    3,   19,  302,    3,   19,    3,   31,    3,
  528.  
  529.         3,   11,   11,   11,   11,   12,   12,   12,   12,   29,
  530.        19,   30,  164,  164,  153,   20,   17,  301,   20,    3,
  531.         3,    4,    4,    4,    4,    4,   17,    4,    4,   17,
  532.         4,    4,   20,   21,    4,  108,    4,   32,    4,    4,
  533.       153,    4,   33,  153,   21,  108,   32,   29,   34,   30,
  534.        21,   33,   21,   45,   17,   45,   45,   34,    4,    4,
  535.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  536.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  537.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  538.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  539.  
  540.         9,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  541.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  542.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  543.        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
  544.        13,   13,   18,   22,   35,  165,   23,   36,   24,   51,
  545.       165,  300,   18,   35,   22,   18,   36,   23,   37,   24,
  546.        22,   37,   22,   23,   23,   24,   24,   48,   48,   48,
  547.        48,  155,  299,  155,   51,   37,   51,   51,  298,   51,
  548.        18,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  549.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  550.  
  551.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  552.        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
  553.        25,   25,   38,   58,   58,   38,   58,   80,  175,   80,
  554.        80,  133,  297,  133,  133,  294,  294,  175,  133,   38,
  555.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  556.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  557.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  558.        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
  559.        39,   41,   41,   41,   41,   42,   42,   42,   42,   55,
  560.        55,   55,   55,  296,  295,  140,   55,  140,  140,  144,
  561.  
  562.       200,  144,  144,  146,  146,  146,  146,  171,  176,  248,
  563.       200,  190,   41,  190,  190,  252,   42,   41,  248,  171,
  564.       176,   42,  293,  218,  252,  218,  218,   55,   63,   63,
  565.       218,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  566.        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  567.        63,   63,   63,   63,   63,   63,   63,   63,   63,   63,
  568.        63,   63,   63,   63,   63,   63,   63,   63,   63,   64,
  569.        64,   64,   64,  174,  291,  290,   64,  158,  158,  158,
  570.       158,  249,   64,  250,  158,  174,  225,  242,  225,  225,
  571.       289,  242,  242,  249,  281,  250,  288,  287,  281,  281,
  572.  
  573.       286,  285,  284,  283,  282,  280,  278,   64,  277,  174,
  574.       276,  275,  274,  272,  271,  158,  170,  270,  170,  269,
  575.       268,  264,  262,  261,  260,  170,  170,  170,  170,  170,
  576.       170,  170,  170,  170,  170,  170,  170,  170,  170,  170,
  577.       170,  259,  258,  170,  172,  172,  172,  172,  255,  254,
  578.       243,  172,  240,  238,  236,  234,  233,  172,  232,  231,
  579.       230,  228,  227,  226,  223,  222,  219,  212,  210,  207,
  580.       206,  205,  195,  193,  187,  186,  182,  179,  167,  163,
  581.       161,  160,  172,  188,  188,  188,  188,  188,  188,  188,
  582.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  583.  
  584.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  585.       188,  188,  188,  188,  188,  188,  188,  188,  188,  188,
  586.       188,  188,  188,  188,  220,  220,  220,  220,  220,  220,
  587.       220,  220,  220,  220,  220,  220,  220,  220,  220,  220,
  588.       266,  266,  266,  266,  266,  266,  266,  266,  266,  266,
  589.       266,  266,  266,  266,  266,  266,  317,  317,  317,  317,
  590.       317,  317,  317,  317,  317,  317,  317,  318,  318,  318,
  591.       318,  318,  318,  318,  318,  318,  318,  318,  319,  319,
  592.       319,  319,  319,  319,  319,  319,  319,  319,  319,  320,
  593.       320,  320,  320,  320,  320,  320,  320,  320,  320,  320,
  594.  
  595.       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
  596.       321,  322,  322,  322,  322,  322,  322,  322,  322,  322,
  597.       322,  322,  323,  323,  323,  323,  323,  323,  323,  323,
  598.       323,  323,  323,  324,  324,  324,  324,  324,  324,  324,
  599.       324,  324,  324,  324,  325,  325,  325,  325,  325,  325,
  600.       325,  325,  325,  325,  325,  326,  326,  326,  326,  326,
  601.       326,  326,  326,  326,  326,  326,  327,  327,  327,  327,
  602.       327,  327,  327,  327,  327,  327,  327,  328,  328,  328,
  603.       328,  328,  328,  328,  328,  328,  328,  328,  329,  329,
  604.       329,  329,  329,  329,  329,  329,  329,  329,  329,  330,
  605.  
  606.       330,  330,  330,  330,  330,  330,  330,  330,  330,  330,
  607.       331,  331,  331,  331,  331,  331,  331,  331,  331,  331,
  608.       331,  332,  152,  151,  332,  333,  333,  333,  333,  333,
  609.       333,  333,  333,  333,  333,  333,  334,  334,  334,  334,
  610.       334,  334,  334,  334,  334,  334,  334,  335,  150,  148,
  611.       335,  336,  336,  143,  336,  336,  336,  336,  336,  142,
  612.       336,  336,  337,  337,  138,  337,  337,  337,  337,  337,
  613.       337,  337,  337,  338,  338,  338,  338,  338,  338,  338,
  614.       338,  338,  338,  338,  339,  339,  339,  339,  339,  339,
  615.       339,  339,  339,  339,  339,  340,  137,  135,  340,  340,
  616.  
  617.       340,  340,  340,  340,  340,  340,  341,  341,  341,  341,
  618.       341,  341,  341,  341,  341,  341,  341,  342,  342,  127,
  619.       342,  342,  342,  342,  342,  342,  124,  342,  343,  121,
  620.       115,  343,  344,  344,  112,  344,  344,  344,  344,  344,
  621.       344,  344,  344,  345,  111,  109,  345,  346,  346,  103,
  622.       346,  346,  346,  346,  346,  346,  346,  346,  347,  347,
  623.       100,  347,  347,  347,  347,  347,  347,  347,  347,  348,
  624.       348,   99,  348,  348,  348,  348,  348,   96,  348,  348,
  625.       349,  349,   91,   85,   78,  349,  349,  349,  349,  350,
  626.       350,   77,  350,  350,  350,  350,  350,  350,  350,  350,
  627.  
  628.       351,   76,   71,  351,  352,  352,  352,  352,  352,  352,
  629.       352,  352,  352,  352,  352,  353,  353,   69,  353,  353,
  630.        67,  353,  353,  353,  353,  353,  354,  354,   66,  354,
  631.       354,   62,  354,  354,  354,  354,  354,  355,  355,   61,
  632.       355,  355,   60,  355,  355,  355,  355,  355,  356,  356,
  633.        52,   50,  356,  356,  356,   43,  356,  356,  356,  357,
  634.       357,   28,  357,  357,  357,  357,  357,  357,  357,  357,
  635.       358,  358,   27,  358,  358,  358,  358,  358,  358,   16,
  636.       358,  359,   15,   10,  359,  360,    8,    7,  360,  360,
  637.       360,  360,  360,  360,  360,  360,  361,  361,    6,  361,
  638.  
  639.       361,  361,  361,  361,  361,  361,  361,  362,  362,  362,
  640.       362,  362,  362,  362,  362,  362,  362,  362,  363,  363,
  641.       363,  363,  363,  363,  363,  363,  363,  363,  363,  364,
  642.       364,    5,  364,  364,  364,  364,  364,  364,  364,  365,
  643.       365,  365,  365,  365,  365,  365,  365,  365,  365,  365,
  644.       366,  366,    0,  366,  366,  366,  366,  366,  366,  366,
  645.       366,  367,  367,  367,  367,  367,  367,  367,  367,  367,
  646.       367,  367,  368,  368,  368,  368,  368,  368,  368,  368,
  647.       368,  368,  368,  369,  369,    0,  369,  369,  369,  369,
  648.       369,  369,  369,  369,  370,  370,  370,  370,  370,  370,
  649.  
  650.       370,  370,  370,  370,  370,  371,  371,  371,  371,  371,
  651.       371,  371,  371,  371,  371,  371,  372,  372,  372,  372,
  652.       372,  372,  372,  372,  372,  372,  372,  373,  373,  373,
  653.       373,  373,  373,  373,  373,  373,  373,  373,  374,  374,
  654.         0,  374,  374,  374,  374,  374,  374,  374,  374,  316,
  655.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  656.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  657.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  658.       316,  316,  316,  316,  316,  316,  316,  316,  316,  316,
  659.       316
  660.  
  661.     } ;
  662. #endif
  663.  
  664. /* the intent behind this definition is that it'll catch
  665.  * any uses of REJECT which flex missed
  666.  */
  667. #define REJECT reject_used_but_not_detected
  668. #define yymore() yymore_used_but_not_detected
  669.  
  670. /* these variables are all declared out here so that section 3 code can
  671.  * manipulate them
  672.  */
  673. static char *yy_c_buf_p;    /* points to current character in buffer */
  674. static int yy_init = 1;        /* whether we need to initialize */
  675. static int yy_start = 0;    /* start state number */
  676.  
  677. /* true when we've seen an EOF for the current input file */
  678. static int yy_eof_has_been_seen;
  679.  
  680. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  681.  
  682. /* yy_ch_buf has to be 2 characters longer than YY_BUF_SIZE because we need
  683.  * to put in 2 end-of-buffer characters (this is explained where it is
  684.  * done) at the end of yy_ch_buf
  685.  */
  686.  
  687. #ifdef THINK_C
  688. static char *yy_ch_buf;
  689. #else
  690. static char yy_ch_buf[YY_BUF_SIZE + 2];
  691. #endif
  692.  
  693. /* yy_hold_char holds the character lost when yytext is formed */
  694. static char yy_hold_char;
  695.  
  696. static yy_state_type yy_last_accepting_state;
  697. static char *yy_last_accepting_cpos;
  698.  
  699. #ifdef __STDC__
  700. static yy_state_type yy_get_previous_state( void );
  701. static int yy_get_next_buffer( void );
  702. static void yyunput( int c, char *buf_ptr );
  703. static int input( void );
  704. static void yyrestart( FILE *input_file );
  705. #else
  706. static yy_state_type yy_get_previous_state();
  707. static int yy_get_next_buffer();
  708. static void yyunput();
  709. static int input();
  710. static void yyrestart();
  711. #endif
  712.  
  713. YY_DECL        /* yylex () */
  714.     {
  715.     register yy_state_type yy_current_state;
  716.     register char *yy_cp, *yy_bp;
  717.     register int yy_act;
  718.  
  719.  
  720.     static int bracelevel, didadef;
  721.     int i, indented_code, checking_used;
  722.     char nmdef[MAXLINE], myesc();
  723.  
  724. #ifdef THINK_C
  725.     /* Set up static tables by loading resources */
  726.     short int *load_table (int id);
  727.  
  728.     if (yy_ch_buf == NULL) {
  729.         yy_ch_buf = calloc (YY_BUF_SIZE + 2, 1);
  730.     
  731.         yy_accept = load_table (yyAccept);
  732.         yy_ec = (char *) load_table (yyEc);
  733.         yy_meta = (char *) load_table (yyMeta);
  734.         yy_base = load_table (yyBase);
  735.         yy_def = load_table (yyDef);
  736.         yy_nxt = load_table (yyNxt);
  737.         yy_chk = load_table (yyChk);
  738.         }
  739. #endif
  740.  
  741.     if ( yy_init )
  742.     {
  743.     if ( ! yy_start )
  744.         yy_start = 1;    /* first start state */
  745.  
  746.     if ( ! yyin )
  747.         yyin = stdin;
  748.  
  749.     if ( ! yyout )
  750.         yyout = stdout;
  751.  
  752. new_file:
  753.     /* this is where we enter upon encountering an end-of-file and
  754.      * yywrap() indicating that we should continue processing
  755.      */
  756.  
  757.     /* we put in the '\n' and start reading from [1] so that an
  758.      * initial match-at-newline will be true.
  759.      */
  760.  
  761.     yy_ch_buf[0] = '\n';
  762.     yy_n_chars = 1;
  763.  
  764.     /* we always need two end-of-buffer characters.  The first causes
  765.      * a transition to the end-of-buffer state.  The second causes
  766.      * a jam in that state.
  767.      */
  768.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  769.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  770.  
  771.     yy_eof_has_been_seen = 0;
  772.  
  773.     yytext = yy_c_buf_p = &yy_ch_buf[1];
  774.     yy_hold_char = *yy_c_buf_p;
  775.     yy_init = 0;
  776.     }
  777.  
  778.     while ( 1 )        /* loops until end-of-file is reached */
  779.     {
  780.     yy_cp = yy_c_buf_p;
  781.  
  782.     /* support of yytext */
  783.     *yy_cp = yy_hold_char;
  784.  
  785.     /* yy_bp points to the position in yy_ch_buf of the start of the
  786.      * current run.
  787.      */
  788.     yy_bp = yy_cp;
  789.  
  790.     yy_current_state = yy_start;
  791.     if ( yy_bp[-1] == '\n' )
  792.         ++yy_current_state;
  793.     do
  794.         {
  795.         register char yy_c = yy_ec[*yy_cp];
  796.         if ( yy_accept[yy_current_state] )
  797.         {
  798.         yy_last_accepting_state = yy_current_state;
  799.         yy_last_accepting_cpos = yy_cp;
  800.         }
  801.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  802.         {
  803.         yy_current_state = yy_def[yy_current_state];
  804.         if ( yy_current_state >= 317 )
  805.             yy_c = yy_meta[yy_c];
  806.         }
  807.         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  808.         ++yy_cp;
  809.         }
  810.     while ( yy_current_state != 316 );
  811.     yy_cp = yy_last_accepting_cpos;
  812.     yy_current_state = yy_last_accepting_state;
  813.  
  814.     /* bogus while loop to let YY_BACK_TRACK, EOB_ACT_LAST_MATCH,
  815.      * and EOF actions branch here without introducing an optimizer-
  816.      * daunting goto
  817.      */
  818.     while ( 1 )
  819.         {
  820.         yy_act = yy_accept[yy_current_state];
  821.  
  822.         YY_DO_BEFORE_ACTION;
  823.         YY_USER_ACTION;
  824.  
  825. #ifdef FLEX_DEBUG
  826.         fprintf( stderr, "--accepting rule #%d (\"%s\")\n",
  827.              yy_act, yytext );
  828. #endif
  829.  
  830. do_action:    /* this label is used only to access EOF actions */
  831.         switch ( yy_act )
  832.         {
  833.         case 0: /* must backtrack */
  834.         /* undo the effects of YY_DO_BEFORE_ACTION */
  835.         *yy_cp = yy_hold_char;
  836.         yy_cp = yy_last_accepting_cpos;
  837.         yy_current_state = yy_last_accepting_state;
  838.         continue; /* go to "YY_DO_BEFORE_ACTION" */
  839.  
  840. case 1:
  841. # line 88 "scan.l"
  842. indented_code = true; BEGIN(CODEBLOCK);
  843.     YY_BREAK
  844. case 2:
  845. # line 89 "scan.l"
  846. ++linenum; ECHO; /* treat as a comment */
  847.     YY_BREAK
  848. case 3:
  849. # line 90 "scan.l"
  850. ECHO; BEGIN(C_COMMENT);
  851.     YY_BREAK
  852. case 4:
  853. # line 91 "scan.l"
  854. return ( SCDECL );
  855.     YY_BREAK
  856. case 5:
  857. # line 92 "scan.l"
  858. return ( XSCDECL );
  859.     YY_BREAK
  860. case 6:
  861. # line 93 "scan.l"
  862. {
  863.             ++linenum;
  864.             line_directive_out( stdout );
  865.             indented_code = false;
  866.             BEGIN(CODEBLOCK);
  867.             }
  868.     YY_BREAK
  869. case 7:
  870. # line 100 "scan.l"
  871. return ( WHITESPACE );
  872.     YY_BREAK
  873. case 8:
  874. # line 102 "scan.l"
  875. {
  876.             sectnum = 2;
  877.             line_directive_out( stdout );
  878.             BEGIN(SECT2PROLOG);
  879.             return ( SECTEND );
  880.             }
  881.     YY_BREAK
  882. case 9:
  883. # line 109 "scan.l"
  884. checking_used = REALLY_USED; BEGIN(USED_LIST);
  885.     YY_BREAK
  886. case 10:
  887. # line 110 "scan.l"
  888. checking_used = REALLY_NOT_USED; BEGIN(USED_LIST);
  889.     YY_BREAK
  890. case 11:
  891. # line 113 "scan.l"
  892. {
  893.             fprintf( stderr,
  894.                  "old-style lex command at line %d ignored:\n\t%s",
  895.                  linenum, yytext );
  896.             ++linenum;
  897.             }
  898.     YY_BREAK
  899. case 12:
  900. # line 120 "scan.l"
  901. {
  902.             (void) strcpy( nmstr, yytext );
  903.             didadef = false;
  904.             BEGIN(PICKUPDEF);
  905.             }
  906.     YY_BREAK
  907. case 13:
  908. # line 126 "scan.l"
  909. RETURNNAME;
  910.     YY_BREAK
  911. case 14:
  912. # line 127 "scan.l"
  913. ++linenum; /* allows blank lines in section 1 */
  914.     YY_BREAK
  915. case 15:
  916. # line 128 "scan.l"
  917. ++linenum; return ( '\n' );
  918.     YY_BREAK
  919. case 16:
  920. # line 129 "scan.l"
  921. synerr( "illegal character" ); BEGIN(RECOVER);
  922.     YY_BREAK
  923. case 17:
  924. # line 132 "scan.l"
  925. ECHO; BEGIN(0);
  926.     YY_BREAK
  927. case 18:
  928. # line 133 "scan.l"
  929. ++linenum; ECHO; BEGIN(0);
  930.     YY_BREAK
  931. case 19:
  932. # line 134 "scan.l"
  933. ECHO;
  934.     YY_BREAK
  935. case 20:
  936. # line 135 "scan.l"
  937. ECHO;
  938.     YY_BREAK
  939. case 21:
  940. # line 136 "scan.l"
  941. ++linenum; ECHO;
  942.     YY_BREAK
  943. case 22:
  944. # line 139 "scan.l"
  945. ++linenum; BEGIN(0);
  946.     YY_BREAK
  947. case 23:
  948. # line 140 "scan.l"
  949. ECHO; CHECK_REJECT(yytext);
  950.     YY_BREAK
  951. case 24:
  952. # line 141 "scan.l"
  953. ECHO; CHECK_YYMORE(yytext);
  954.     YY_BREAK
  955. case 25:
  956. # line 142 "scan.l"
  957. ECHO;
  958.     YY_BREAK
  959. case 26:
  960. # line 143 "scan.l"
  961. {
  962.             ++linenum;
  963.             ECHO;
  964.             if ( indented_code )
  965.                 BEGIN(0);
  966.             }
  967.     YY_BREAK
  968. case 27:
  969. # line 151 "scan.l"
  970. /* separates name and definition */
  971.     YY_BREAK
  972. case 28:
  973. # line 153 "scan.l"
  974. {
  975.             (void) strcpy( nmdef, yytext );
  976.  
  977.             for ( i = strlen( nmdef ) - 1;
  978.                   i >= 0 &&
  979.                   nmdef[i] == ' ' || nmdef[i] == '\t';
  980.                   --i )
  981.                 ;
  982.  
  983.             nmdef[i + 1] = '\0';
  984.  
  985.                         ndinstal( nmstr, nmdef );
  986.             didadef = true;
  987.             }
  988.     YY_BREAK
  989. case 29:
  990. # line 168 "scan.l"
  991. {
  992.             if ( ! didadef )
  993.                 synerr( "incomplete name definition" );
  994.             BEGIN(0);
  995.             ++linenum;
  996.             }
  997.     YY_BREAK
  998. case 30:
  999. # line 175 "scan.l"
  1000. ++linenum; BEGIN(0); RETURNNAME;
  1001.     YY_BREAK
  1002. case 31:
  1003. # line 178 "scan.l"
  1004. ++linenum; BEGIN(0);
  1005.     YY_BREAK
  1006. case 32:
  1007. # line 179 "scan.l"
  1008.  
  1009.     YY_BREAK
  1010. case 33:
  1011. # line 180 "scan.l"
  1012. {
  1013.             if ( all_upper( yytext ) )
  1014.                 reject_really_used = checking_used;
  1015.             else
  1016.                 synerr( "unrecognized %used/%unused construct" );
  1017.             }
  1018.     YY_BREAK
  1019. case 34:
  1020. # line 186 "scan.l"
  1021. {
  1022.             if ( all_lower( yytext ) )
  1023.                 yymore_really_used = checking_used;
  1024.             else
  1025.                 synerr( "unrecognized %used/%unused construct" );
  1026.             }
  1027.     YY_BREAK
  1028. case 35:
  1029. # line 192 "scan.l"
  1030. synerr( "unrecognized %used/%unused construct" );
  1031.     YY_BREAK
  1032. case 36:
  1033. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1034. yy_c_buf_p = yy_cp -= 1;
  1035. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1036. # line 195 "scan.l"
  1037. {
  1038.             ++linenum;
  1039.             ACTION_ECHO;
  1040.             MARK_END_OF_PROLOG;
  1041.             BEGIN(SECT2);
  1042.             }
  1043.     YY_BREAK
  1044. case 37:
  1045. # line 202 "scan.l"
  1046. ++linenum; ACTION_ECHO;
  1047.     YY_BREAK
  1048. case YY_STATE_EOF(SECT2PROLOG):
  1049. # line 204 "scan.l"
  1050. MARK_END_OF_PROLOG; yyterminate();
  1051.     YY_BREAK
  1052. case 39:
  1053. # line 206 "scan.l"
  1054. ++linenum; /* allow blank lines in section 2 */
  1055.     YY_BREAK
  1056.     /* this horrible mess of a rule matches indented lines which
  1057.      * do not contain "/*".  We need to make the distinction because
  1058.      * otherwise this rule will be taken instead of the rule which
  1059.      * matches the beginning of comments like this one
  1060.      */
  1061. case 40:
  1062. # line 213 "scan.l"
  1063. {
  1064.             synerr( "indented code found outside of action" );
  1065.             ++linenum;
  1066.             }
  1067.     YY_BREAK
  1068. case 41:
  1069. # line 218 "scan.l"
  1070. BEGIN(SC); return ( '<' );
  1071.     YY_BREAK
  1072. case 42:
  1073. # line 219 "scan.l"
  1074. return ( '^' );
  1075.     YY_BREAK
  1076. case 43:
  1077. # line 220 "scan.l"
  1078. BEGIN(QUOTE); return ( '"' );
  1079.     YY_BREAK
  1080. case 44:
  1081. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1082. yy_c_buf_p = yy_cp = yy_bp + 1;
  1083. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1084. # line 221 "scan.l"
  1085. BEGIN(NUM); return ( '{' );
  1086.     YY_BREAK
  1087. case 45:
  1088. # line 222 "scan.l"
  1089. BEGIN(BRACEERROR);
  1090.     YY_BREAK
  1091. case 46:
  1092. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1093. yy_c_buf_p = yy_cp = yy_bp + 1;
  1094. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1095. # line 223 "scan.l"
  1096. return ( '$' );
  1097.     YY_BREAK
  1098. case 47:
  1099. # line 225 "scan.l"
  1100. {
  1101.             bracelevel = 1;
  1102.             BEGIN(PERCENT_BRACE_ACTION);
  1103.             return ( '\n' );
  1104.             }
  1105.     YY_BREAK
  1106. case 48:
  1107. # line 230 "scan.l"
  1108. continued_action = true; ++linenum; return ( '\n' );
  1109.     YY_BREAK
  1110. case 49:
  1111. # line 232 "scan.l"
  1112. ACTION_ECHO; BEGIN(C_COMMENT_2);
  1113.     YY_BREAK
  1114. case 50:
  1115. # line 234 "scan.l"
  1116. {
  1117.             /* this rule is separate from the one below because
  1118.              * otherwise we get variable trailing context, so
  1119.              * we can't build the scanner using -{f,F}
  1120.              */
  1121.             bracelevel = 0;
  1122.             continued_action = false;
  1123.             BEGIN(ACTION);
  1124.             return ( '\n' );
  1125.             }
  1126.     YY_BREAK
  1127. case 51:
  1128. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1129. yy_c_buf_p = yy_cp -= 1;
  1130. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1131. # line 245 "scan.l"
  1132. {
  1133.             bracelevel = 0;
  1134.             continued_action = false;
  1135.             BEGIN(ACTION);
  1136.             return ( '\n' );
  1137.             }
  1138.     YY_BREAK
  1139. case 52:
  1140. # line 252 "scan.l"
  1141. ++linenum; return ( '\n' );
  1142.     YY_BREAK
  1143. case 53:
  1144. # line 254 "scan.l"
  1145. return ( EOF_OP );
  1146.     YY_BREAK
  1147. case 54:
  1148. # line 256 "scan.l"
  1149. {
  1150.             sectnum = 3;
  1151.             BEGIN(SECT3);
  1152.             return ( EOF ); /* to stop the parser */
  1153.             }
  1154.     YY_BREAK
  1155. case 55:
  1156. # line 262 "scan.l"
  1157. {
  1158.             int cclval;
  1159.  
  1160.             (void) strcpy( nmstr, yytext );
  1161.  
  1162.             /* check to see if we've already encountered this ccl */
  1163.             if ( (cclval = ccllookup( nmstr )) )
  1164.                 {
  1165.                 yylval = cclval;
  1166.                 ++cclreuse;
  1167.                 return ( PREVCCL );
  1168.                 }
  1169.             else
  1170.                 {
  1171.                 /* we fudge a bit.  We know that this ccl will
  1172.                  * soon be numbered as lastccl + 1 by cclinit
  1173.                  */
  1174.                 cclinstal( nmstr, lastccl + 1 );
  1175.  
  1176.                 /* push back everything but the leading bracket
  1177.                  * so the ccl can be rescanned
  1178.                  */
  1179.                 PUT_BACK_STRING(nmstr, 1);
  1180.  
  1181.                 BEGIN(FIRSTCCL);
  1182.                 return ( '[' );
  1183.                 }
  1184.             }
  1185.     YY_BREAK
  1186. case 56:
  1187. # line 291 "scan.l"
  1188. {
  1189.             register char *nmdefptr;
  1190.             char *ndlookup();
  1191.  
  1192.             (void) strcpy( nmstr, yytext );
  1193.             nmstr[yyleng - 1] = '\0';  /* chop trailing brace */
  1194.  
  1195.             /* lookup from "nmstr + 1" to chop leading brace */
  1196.             if ( ! (nmdefptr = ndlookup( nmstr + 1 )) )
  1197.                 synerr( "undefined {name}" );
  1198.  
  1199.             else
  1200.                 { /* push back name surrounded by ()'s */
  1201.                 unput(')');
  1202.                 PUT_BACK_STRING(nmdefptr, 0);
  1203.                 unput('(');
  1204.                 }
  1205.             }
  1206.     YY_BREAK
  1207. case 57:
  1208. # line 310 "scan.l"
  1209. return ( yytext[0] );
  1210.     YY_BREAK
  1211. case 58:
  1212. # line 311 "scan.l"
  1213. RETURNCHAR;
  1214.     YY_BREAK
  1215. case 59:
  1216. # line 312 "scan.l"
  1217. ++linenum; return ( '\n' );
  1218.     YY_BREAK
  1219. case 60:
  1220. # line 315 "scan.l"
  1221. return ( ',' );
  1222.     YY_BREAK
  1223. case 61:
  1224. # line 316 "scan.l"
  1225. BEGIN(SECT2); return ( '>' );
  1226.     YY_BREAK
  1227. case 62:
  1228. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1229. yy_c_buf_p = yy_cp = yy_bp + 1;
  1230. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1231. # line 317 "scan.l"
  1232. BEGIN(CARETISBOL); return ( '>' );
  1233.     YY_BREAK
  1234. case 63:
  1235. # line 318 "scan.l"
  1236. RETURNNAME;
  1237.     YY_BREAK
  1238. case 64:
  1239. # line 319 "scan.l"
  1240. synerr( "bad start condition name" );
  1241.     YY_BREAK
  1242. case 65:
  1243. # line 321 "scan.l"
  1244. BEGIN(SECT2); return ( '^' );
  1245.     YY_BREAK
  1246. case 66:
  1247. # line 324 "scan.l"
  1248. RETURNCHAR;
  1249.     YY_BREAK
  1250. case 67:
  1251. # line 325 "scan.l"
  1252. BEGIN(SECT2); return ( '"' );
  1253.     YY_BREAK
  1254. case 68:
  1255. # line 327 "scan.l"
  1256. {
  1257.             synerr( "missing quote" );
  1258.             BEGIN(SECT2);
  1259.             ++linenum;
  1260.             return ( '"' );
  1261.             }
  1262.     YY_BREAK
  1263. case 69:
  1264. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1265. yy_c_buf_p = yy_cp = yy_bp + 1;
  1266. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1267. # line 335 "scan.l"
  1268. BEGIN(CCL); return ( '^' );
  1269.     YY_BREAK
  1270. case 70:
  1271. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1272. yy_c_buf_p = yy_cp = yy_bp + 1;
  1273. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1274. # line 336 "scan.l"
  1275. return ( '^' );
  1276.     YY_BREAK
  1277. case 71:
  1278. # line 337 "scan.l"
  1279. BEGIN(CCL); yylval = '-'; return ( CHAR );
  1280.     YY_BREAK
  1281. case 72:
  1282. # line 338 "scan.l"
  1283. BEGIN(CCL); RETURNCHAR;
  1284.     YY_BREAK
  1285. case 73:
  1286. *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1287. yy_c_buf_p = yy_cp = yy_bp + 1;
  1288. YY_DO_BEFORE_ACTION; /* set up yytext again */
  1289. # line 340 "scan.l"
  1290. return ( '-' );
  1291.     YY_BREAK
  1292. case 74:
  1293. # line 341 "scan.l"
  1294. RETURNCHAR;
  1295.     YY_BREAK
  1296. case 75:
  1297. # line 342 "scan.l"
  1298. BEGIN(SECT2); return ( ']' );
  1299.     YY_BREAK
  1300. case 76:
  1301. # line 345 "scan.l"
  1302. {
  1303.             yylval = myctoi( yytext );
  1304.             return ( NUMBER );
  1305.             }
  1306.     YY_BREAK
  1307. case 77:
  1308. # line 350 "scan.l"
  1309. return ( ',' );
  1310.     YY_BREAK
  1311. case 78:
  1312. # line 351 "scan.l"
  1313. BEGIN(SECT2); return ( '}' );
  1314.     YY_BREAK
  1315. case 79:
  1316. # line 353 "scan.l"
  1317. {
  1318.             synerr( "bad character inside {}'s" );
  1319.             BEGIN(SECT2);
  1320.             return ( '}' );
  1321.             }
  1322.     YY_BREAK
  1323. case 80:
  1324. # line 359 "scan.l"
  1325. {
  1326.             synerr( "missing }" );
  1327.             BEGIN(SECT2);
  1328.             ++linenum;
  1329.             return ( '}' );
  1330.             }
  1331.     YY_BREAK
  1332. case 81:
  1333. # line 367 "scan.l"
  1334. synerr( "bad name in {}'s" ); BEGIN(SECT2);
  1335.     YY_BREAK
  1336. case 82:
  1337. # line 368 "scan.l"
  1338. synerr( "missing }" ); ++linenum; BEGIN(SECT2);
  1339.     YY_BREAK
  1340. case 83:
  1341. # line 371 "scan.l"
  1342. bracelevel = 0;
  1343.     YY_BREAK
  1344. case 84:
  1345. # line 372 "scan.l"
  1346. ACTION_ECHO; CHECK_REJECT(yytext);
  1347.     YY_BREAK
  1348. case 85:
  1349. # line 373 "scan.l"
  1350. ACTION_ECHO; CHECK_YYMORE(yytext);
  1351.     YY_BREAK
  1352. case 86:
  1353. # line 374 "scan.l"
  1354. ACTION_ECHO;
  1355.     YY_BREAK
  1356. case 87:
  1357. # line 375 "scan.l"
  1358. {
  1359.             ++linenum;
  1360.             ACTION_ECHO;
  1361.             if ( bracelevel == 0 )
  1362.                 {
  1363.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1364.                 BEGIN(SECT2);
  1365.                 }
  1366.             }
  1367.     YY_BREAK
  1368.     /* REJECT and yymore() are checked for above, in PERCENT_BRACE_ACTION */
  1369. case 88:
  1370. # line 386 "scan.l"
  1371. ACTION_ECHO; ++bracelevel;
  1372.     YY_BREAK
  1373. case 89:
  1374. # line 387 "scan.l"
  1375. ACTION_ECHO; --bracelevel;
  1376.     YY_BREAK
  1377. case 90:
  1378. # line 388 "scan.l"
  1379. ACTION_ECHO;
  1380.     YY_BREAK
  1381. case 91:
  1382. # line 389 "scan.l"
  1383. ACTION_ECHO;
  1384.     YY_BREAK
  1385. case 92:
  1386. # line 390 "scan.l"
  1387. ACTION_ECHO; BEGIN(ACTION_COMMENT);
  1388.     YY_BREAK
  1389. case 93:
  1390. # line 391 "scan.l"
  1391. ACTION_ECHO; /* character constant */
  1392.     YY_BREAK
  1393. case 94:
  1394. # line 392 "scan.l"
  1395. ACTION_ECHO; BEGIN(ACTION_STRING);
  1396.     YY_BREAK
  1397. case 95:
  1398. # line 393 "scan.l"
  1399. {
  1400.             ++linenum;
  1401.             ACTION_ECHO;
  1402.             if ( bracelevel == 0 )
  1403.                 {
  1404.                 fputs( "\tYY_BREAK\n", temp_action_file );
  1405.                 BEGIN(SECT2);
  1406.                 }
  1407.             }
  1408.     YY_BREAK
  1409. case 96:
  1410. # line 402 "scan.l"
  1411. ACTION_ECHO;
  1412.     YY_BREAK
  1413. case 97:
  1414. # line 404 "scan.l"
  1415. ACTION_ECHO; BEGIN(ACTION);
  1416.     YY_BREAK
  1417. case 98:
  1418. # line 405 "scan.l"
  1419. ACTION_ECHO;
  1420.     YY_BREAK
  1421. case 99:
  1422. # line 406 "scan.l"
  1423. ACTION_ECHO;
  1424.     YY_BREAK
  1425. case 100:
  1426. # line 407 "scan.l"
  1427. ++linenum; ACTION_ECHO;
  1428.     YY_BREAK
  1429. case 101:
  1430. # line 408 "scan.l"
  1431. ACTION_ECHO;
  1432.     YY_BREAK
  1433. case 102:
  1434. # line 410 "scan.l"
  1435. ACTION_ECHO; BEGIN(SECT2);
  1436.     YY_BREAK
  1437. case 103:
  1438. # line 411 "scan.l"
  1439. ++linenum; ACTION_ECHO; BEGIN(SECT2);
  1440.     YY_BREAK
  1441. case 104:
  1442. # line 412 "scan.l"
  1443. ACTION_ECHO;
  1444.     YY_BREAK
  1445. case 105:
  1446. # line 413 "scan.l"
  1447. ACTION_ECHO;
  1448.     YY_BREAK
  1449. case 106:
  1450. # line 414 "scan.l"
  1451. ++linenum; ACTION_ECHO;
  1452.     YY_BREAK
  1453. case 107:
  1454. # line 416 "scan.l"
  1455. ACTION_ECHO;
  1456.     YY_BREAK
  1457. case 108:
  1458. # line 417 "scan.l"
  1459. ACTION_ECHO;
  1460.     YY_BREAK
  1461. case 109:
  1462. # line 418 "scan.l"
  1463. ++linenum; ACTION_ECHO;
  1464.     YY_BREAK
  1465. case 110:
  1466. # line 419 "scan.l"
  1467. ACTION_ECHO; BEGIN(ACTION);
  1468.     YY_BREAK
  1469. case 111:
  1470. # line 420 "scan.l"
  1471. ACTION_ECHO;
  1472.     YY_BREAK
  1473. case 112:
  1474. # line 423 "scan.l"
  1475. {
  1476.             yylval = myesc( yytext );
  1477.             return ( CHAR );
  1478.             }
  1479.     YY_BREAK
  1480. case 113:
  1481. # line 428 "scan.l"
  1482. {
  1483.             yylval = myesc( yytext );
  1484.             BEGIN(CCL);
  1485.             return ( CHAR );
  1486.             }
  1487.     YY_BREAK
  1488. case 114:
  1489. # line 435 "scan.l"
  1490. ECHO;
  1491.     YY_BREAK
  1492. case 115:
  1493. # line 436 "scan.l"
  1494. YY_FATAL_ERROR( "flex scanner jammed" );
  1495.     YY_BREAK
  1496. case YY_STATE_EOF(INITIAL):
  1497. case YY_STATE_EOF(SECT2):
  1498. case YY_STATE_EOF(SECT3):
  1499. case YY_STATE_EOF(CODEBLOCK):
  1500. case YY_STATE_EOF(PICKUPDEF):
  1501. case YY_STATE_EOF(SC):
  1502. case YY_STATE_EOF(CARETISBOL):
  1503. case YY_STATE_EOF(NUM):
  1504. case YY_STATE_EOF(QUOTE):
  1505. case YY_STATE_EOF(FIRSTCCL):
  1506. case YY_STATE_EOF(CCL):
  1507. case YY_STATE_EOF(ACTION):
  1508. case YY_STATE_EOF(RECOVER):
  1509. case YY_STATE_EOF(BRACEERROR):
  1510. case YY_STATE_EOF(C_COMMENT):
  1511. case YY_STATE_EOF(C_COMMENT_2):
  1512. case YY_STATE_EOF(ACTION_COMMENT):
  1513. case YY_STATE_EOF(ACTION_STRING):
  1514. case YY_STATE_EOF(PERCENT_BRACE_ACTION):
  1515. case YY_STATE_EOF(USED_LIST):
  1516.     yyterminate();
  1517.  
  1518.         case YY_END_OF_BUFFER:
  1519.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1520.             *yy_cp = yy_hold_char;
  1521.  
  1522.             yytext = yy_bp;
  1523.  
  1524.             switch ( yy_get_next_buffer() )
  1525.             {
  1526.             case EOB_ACT_END_OF_FILE:
  1527.                 {
  1528.                 if ( yywrap() )
  1529.                 {
  1530.                 /* note: because we've taken care in
  1531.                  * yy_get_next_buffer() to have set up yytext,
  1532.                  * we can now set up yy_c_buf_p so that if some
  1533.                  * total hoser (like flex itself) wants
  1534.                  * to call the scanner after we return the
  1535.                  * YY_NULL, it'll still work - another YY_NULL
  1536.                  * will get returned.
  1537.                  */
  1538.                 yy_c_buf_p = yytext;
  1539.  
  1540.                 yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1541.                 goto do_action;
  1542.                 }
  1543.  
  1544.                 else
  1545.                 YY_NEW_FILE;
  1546.                 }
  1547.                 break;
  1548.  
  1549.             case EOB_ACT_RESTART_SCAN:
  1550.                 yy_c_buf_p = yytext;
  1551.                 yy_hold_char = *yy_c_buf_p;
  1552.                 break;
  1553.  
  1554.             case EOB_ACT_LAST_MATCH:
  1555.                 yy_c_buf_p = &yy_ch_buf[yy_n_chars];
  1556.  
  1557.                 yy_current_state = yy_get_previous_state();
  1558.  
  1559.                 yy_cp = yy_c_buf_p;
  1560.                 yy_bp = yytext;
  1561.                 continue; /* go to "YY_DO_BEFORE_ACTION" */
  1562.             }
  1563.             break;
  1564.  
  1565.         default:
  1566.             printf( "action # %d\n", yy_act );
  1567.             YY_FATAL_ERROR( "fatal flex scanner internal error" );
  1568.         }
  1569.  
  1570.         break; /* exit bogus while loop */
  1571.         }
  1572.     }
  1573.     }
  1574.  
  1575.  
  1576. /* yy_get_next_buffer - try to read in new buffer
  1577.  *
  1578.  * synopsis
  1579.  *     int yy_get_next_buffer();
  1580.  *     
  1581.  * returns a code representing an action
  1582.  *     EOB_ACT_LAST_MATCH - 
  1583.  *     EOB_ACT_RESTART_SCAN - restart the scanner
  1584.  *     EOB_ACT_END_OF_FILE - end of file
  1585.  */
  1586.  
  1587. static int yy_get_next_buffer()
  1588.  
  1589.     {
  1590.     register char *dest = yy_ch_buf;
  1591.     register char *source = yytext - 1; /* copy prev. char, too */
  1592.     register int number_to_move, i;
  1593.     int ret_val;
  1594.     
  1595.     if ( yy_c_buf_p != &yy_ch_buf[yy_n_chars + 1] )
  1596.     {
  1597.     YY_FATAL_ERROR( "NULL in input" );
  1598.     /*NOTREACHED*/
  1599.     }
  1600.  
  1601.     /* try to read more data */
  1602.  
  1603.     /* first move last chars to start of buffer */
  1604.     number_to_move = yy_c_buf_p - yytext;
  1605.  
  1606.     for ( i = 0; i < number_to_move; ++i )
  1607.     *(dest++) = *(source++);
  1608.  
  1609.     if ( yy_eof_has_been_seen )
  1610.     /* don't do the read, it's not guaranteed to return an EOF,
  1611.      * just force an EOF
  1612.      */
  1613.     yy_n_chars = 0;
  1614.  
  1615.     else
  1616.     {
  1617.     int num_to_read = YY_BUF_SIZE - number_to_move - 1;
  1618.  
  1619.     if ( num_to_read > YY_READ_BUF_SIZE )
  1620.         num_to_read = YY_READ_BUF_SIZE;
  1621.  
  1622.     /* read in more data */
  1623.     YY_INPUT( (&yy_ch_buf[number_to_move]), yy_n_chars, num_to_read );
  1624.     }
  1625.  
  1626.     if ( yy_n_chars == 0 )
  1627.     {
  1628.     if ( number_to_move == 1 )
  1629.         ret_val = EOB_ACT_END_OF_FILE;
  1630.     else
  1631.         ret_val = EOB_ACT_LAST_MATCH;
  1632.  
  1633.     yy_eof_has_been_seen = 1;
  1634.     }
  1635.  
  1636.     else
  1637.     ret_val = EOB_ACT_RESTART_SCAN;
  1638.  
  1639.     yy_n_chars += number_to_move;
  1640.     yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1641.     yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1642.  
  1643.     /* yytext begins at the second character in
  1644.      * yy_ch_buf; the first character is the one which
  1645.      * preceded it before reading in the latest buffer;
  1646.      * it needs to be kept around in case it's a
  1647.      * newline, so yy_get_previous_state() will have
  1648.      * with '^' rules active
  1649.      */
  1650.  
  1651.     yytext = &yy_ch_buf[1];
  1652.  
  1653.     return ( ret_val );
  1654.     }
  1655.  
  1656.  
  1657. /* yy_get_previous_state - get the state just before the EOB char was reached
  1658.  *
  1659.  * synopsis
  1660.  *     yy_state_type yy_get_previous_state();
  1661.  */
  1662.  
  1663. static yy_state_type yy_get_previous_state()
  1664.  
  1665.     {
  1666.     register yy_state_type yy_current_state;
  1667.     register char *yy_cp;
  1668.  
  1669.     register char *yy_bp = yytext;
  1670.  
  1671.     yy_current_state = yy_start;
  1672.     if ( yy_bp[-1] == '\n' )
  1673.     ++yy_current_state;
  1674.  
  1675.     for ( yy_cp = yytext; yy_cp < yy_c_buf_p; ++yy_cp )
  1676.     {
  1677.     register char yy_c = yy_ec[*yy_cp];
  1678.     if ( yy_accept[yy_current_state] )
  1679.         {
  1680.         yy_last_accepting_state = yy_current_state;
  1681.         yy_last_accepting_cpos = yy_cp;
  1682.         }
  1683.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1684.         {
  1685.         yy_current_state = yy_def[yy_current_state];
  1686.         if ( yy_current_state >= 317 )
  1687.         yy_c = yy_meta[yy_c];
  1688.         }
  1689.     yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1690.     }
  1691.  
  1692.     return ( yy_current_state );
  1693.     }
  1694.  
  1695.  
  1696. #ifdef __STDC__
  1697. static void yyunput( int c, register char *yy_bp )
  1698. #else
  1699. static void yyunput( c, yy_bp )
  1700. int c;
  1701. register char *yy_bp;
  1702. #endif
  1703.  
  1704.     {
  1705.     register char *yy_cp = yy_c_buf_p;
  1706.  
  1707.     *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  1708.  
  1709.     if ( yy_cp < yy_ch_buf + 2 )
  1710.     { /* need to shift things up to make room */
  1711.     register int number_to_move = yy_n_chars + 2; /* +2 for EOB chars */
  1712.     register char *dest = &yy_ch_buf[YY_BUF_SIZE + 2];
  1713.     register char *source = &yy_ch_buf[number_to_move];
  1714.  
  1715.     while ( source > yy_ch_buf )
  1716.         *--dest = *--source;
  1717.  
  1718.     yy_cp += dest - source;
  1719.     yy_bp += dest - source;
  1720.  
  1721.     if ( yy_cp < yy_ch_buf + 2 )
  1722.         YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1723.     }
  1724.  
  1725.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1726.     yy_cp[-2] = '\n';
  1727.  
  1728.     *--yy_cp = c;
  1729.  
  1730.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  1731.     }
  1732.  
  1733.  
  1734. static int input()
  1735.  
  1736.     {
  1737.     int c;
  1738.     char *yy_cp = yy_c_buf_p;
  1739.  
  1740.     *yy_cp = yy_hold_char;
  1741.  
  1742.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1743.     { /* need more input */
  1744.     yytext = yy_c_buf_p;
  1745.     ++yy_c_buf_p;
  1746.  
  1747.     switch ( yy_get_next_buffer() )
  1748.         {
  1749.         /* this code, unfortunately, is somewhat redundant with
  1750.          * that above
  1751.          */
  1752.         case EOB_ACT_END_OF_FILE:
  1753.         {
  1754.         if ( yywrap() )
  1755.             {
  1756.             yy_c_buf_p = yytext;
  1757.             return ( EOF );
  1758.             }
  1759.  
  1760.         yy_ch_buf[0] = '\n';
  1761.         yy_n_chars = 1;
  1762.         yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1763.         yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1764.         yy_eof_has_been_seen = 0;
  1765.         yytext = yy_c_buf_p = &yy_ch_buf[1];
  1766.         yy_hold_char = *yy_c_buf_p;
  1767.  
  1768.         return ( input() );
  1769.         }
  1770.         break;
  1771.  
  1772.         case EOB_ACT_RESTART_SCAN:
  1773.         yy_c_buf_p = yytext;
  1774.         break;
  1775.  
  1776.         case EOB_ACT_LAST_MATCH:
  1777.         YY_FATAL_ERROR( "unexpected last match in input()" );
  1778.         }
  1779.     }
  1780.  
  1781.     c = *yy_c_buf_p;
  1782.     yy_hold_char = *++yy_c_buf_p;
  1783.  
  1784.     return ( c );
  1785.     }
  1786.  
  1787.  
  1788. #ifdef __STDC__
  1789. static void yyrestart( FILE *input_file )
  1790. #else
  1791. static void yyrestart( input_file )
  1792. FILE *input_file;
  1793. #endif
  1794.  
  1795.     {
  1796.     if ( yyin != stdin )
  1797.     fclose( yyin );
  1798.  
  1799.     yyin = input_file;
  1800.     yy_init = 1;
  1801.     }
  1802. # line 436 "scan.l"
  1803.