home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume19 / flex2 / part07 < prev    next >
Text File  |  1989-06-21  |  56KB  |  1,813 lines

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