home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume44 / c++2latex / part02 < prev    next >
Internet Message Format  |  1994-08-07  |  58KB

  1. From: joke@germany.eu.net (Joerg Heitkoetter)
  2. Newsgroups: comp.sources.misc
  3. Subject: v44i011:  c++2latex - A set of LaTeX converters for the whole C family, v3.0, Part02/08
  4. Date: 7 Aug 1994 16:42:52 -0500
  5. Organization: Sterling Software
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <323kgs$gla@sparky.sterling.com>
  9. X-Md4-Signature: 3dcf6b3c49cb3ff5d1db59b67185634b
  10.  
  11. Submitted-by: joke@germany.eu.net (Joerg Heitkoetter)
  12. Posting-number: Volume 44, Issue 11
  13. Archive-name: c++2latex/part02
  14. Environment: UNIX, Flex, LaTeX, Sun
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  src/ansic2latex.c
  21. # Wrapped by kent@sparky on Sun Aug  7 16:11:52 1994
  22. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 2 (of 8)."'
  25. if test -f 'src/ansic2latex.c' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'src/ansic2latex.c'\"
  27. else
  28.   echo shar: Extracting \"'src/ansic2latex.c'\" \(54213 characters\)
  29.   sed "s/^X//" >'src/ansic2latex.c' <<'END_OF_FILE'
  30. X/* A lexical scanner generated by flex */
  31. X
  32. X/* Scanner skeleton version:
  33. X * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $
  34. X */
  35. X
  36. X#define FLEX_SCANNER
  37. X
  38. X#include <stdio.h>
  39. X
  40. X
  41. X/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  42. X#ifdef c_plusplus
  43. X#ifndef __cplusplus
  44. X#define __cplusplus
  45. X#endif
  46. X#endif
  47. X
  48. X
  49. X#ifdef __cplusplus
  50. X
  51. X#include <stdlib.h>
  52. X#include <unistd.h>
  53. X
  54. X/* Use prototypes in function declarations. */
  55. X#define YY_USE_PROTOS
  56. X
  57. X/* The "const" storage-class-modifier is valid. */
  58. X#define YY_USE_CONST
  59. X
  60. X#else    /* ! __cplusplus */
  61. X
  62. X#ifdef __STDC__
  63. X
  64. X#define YY_USE_PROTOS
  65. X#define YY_USE_CONST
  66. X
  67. X#endif    /* __STDC__ */
  68. X#endif    /* ! __cplusplus */
  69. X
  70. X
  71. X#ifdef __TURBOC__
  72. X#define YY_USE_CONST
  73. X#endif
  74. X
  75. X
  76. X#ifndef YY_USE_CONST
  77. X#ifndef const
  78. X#define const
  79. X#endif
  80. X#endif
  81. X
  82. X
  83. X#ifdef YY_USE_PROTOS
  84. X#define YY_PROTO(proto) proto
  85. X#else
  86. X#define YY_PROTO(proto) ()
  87. X#endif
  88. X
  89. X/* Returned upon end-of-file. */
  90. X#define YY_NULL 0
  91. X
  92. X/* Promotes a possibly negative, possibly signed char to an unsigned
  93. X * integer for use as an array index.  If the signed char is negative,
  94. X * we want to instead treat it as an 8-bit unsigned char, hence the
  95. X * double cast.
  96. X */
  97. X#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  98. X
  99. X/* Enter a start condition.  This macro really ought to take a parameter,
  100. X * but we do it the disgusting crufty way forced on us by the ()-less
  101. X * definition of BEGIN.
  102. X */
  103. X#define BEGIN yy_start = 1 + 2 *
  104. X
  105. X/* Translate the current start state into a value that can be later handed
  106. X * to BEGIN to return to the state.
  107. X */
  108. X#define YY_START ((yy_start - 1) / 2)
  109. X
  110. X/* Action number for EOF rule of a given start state. */
  111. X#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  112. X
  113. X/* Special action meaning "start processing a new file".  Now included
  114. X * only for backward compatibility with previous versions of flex.
  115. X */
  116. X#define YY_NEW_FILE yyrestart( yyin )
  117. X
  118. X#define YY_END_OF_BUFFER_CHAR 0
  119. X
  120. X/* Size of default input buffer. */
  121. X#define YY_BUF_SIZE 16384
  122. X
  123. Xtypedef struct yy_buffer_state *YY_BUFFER_STATE;
  124. X
  125. Xextern int yyleng;
  126. Xextern FILE *yyin, *yyout;
  127. X
  128. X#ifdef __cplusplus
  129. Xextern "C" {
  130. X#endif
  131. X    extern int yywrap YY_PROTO(( void ));
  132. X#ifdef __cplusplus
  133. X    }
  134. X#endif
  135. X
  136. X#define EOB_ACT_CONTINUE_SCAN 0
  137. X#define EOB_ACT_END_OF_FILE 1
  138. X#define EOB_ACT_LAST_MATCH 2
  139. X
  140. X/* The funky do-while in the following #define is used to turn the definition
  141. X * int a single C statement (which needs a semi-colon terminator).  This
  142. X * avoids problems with code like:
  143. X *
  144. X *     if ( condition_holds )
  145. X *        yyless( 5 );
  146. X *    else
  147. X *        do_something_else();
  148. X *
  149. X * Prior to using the do-while the compiler would get upset at the
  150. X * "else" because it interpreted the "if" statement as being all
  151. X * done when it reached the ';' after the yyless() call.
  152. X */
  153. X
  154. X/* Return all but the first 'n' matched characters back to the input stream. */
  155. X
  156. X#define yyless(n) \
  157. X    do \
  158. X        { \
  159. X        /* Undo effects of setting up yytext. */ \
  160. X        *yy_cp = yy_hold_char; \
  161. X        yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  162. X        YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  163. X        } \
  164. X    while ( 0 )
  165. X
  166. X#define unput(c) yyunput( c, yytext_ptr )
  167. X
  168. X
  169. Xstruct yy_buffer_state
  170. X    {
  171. X    FILE *yy_input_file;
  172. X
  173. X    char *yy_ch_buf;        /* input buffer */
  174. X    char *yy_buf_pos;        /* current position in input buffer */
  175. X
  176. X    /* Size of input buffer in bytes, not including room for EOB
  177. X     * characters.
  178. X     */
  179. X    int yy_buf_size;
  180. X
  181. X    /* Number of characters read into yy_ch_buf, not including EOB
  182. X     * characters.
  183. X     */
  184. X    int yy_n_chars;
  185. X
  186. X    /* Whether this is an "interactive" input source; if so, and
  187. X     * if we're using stdio for input, then we want to use getc()
  188. X     * instead of fread(), to make sure we stop fetching input after
  189. X     * each newline.
  190. X     */
  191. X    int yy_is_interactive;
  192. X
  193. X    /* Whether to try to fill the input buffer when we reach the
  194. X     * end of it.
  195. X     */
  196. X    int yy_fill_buffer;
  197. X
  198. X    int yy_buffer_status;
  199. X#define YY_BUFFER_NEW 0
  200. X#define YY_BUFFER_NORMAL 1
  201. X    /* When an EOF's been seen but there's still some text to process
  202. X     * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  203. X     * shouldn't try reading from the input source any more.  We might
  204. X     * still have a bunch of tokens to match, though, because of
  205. X     * possible backing-up.
  206. X     *
  207. X     * When we actually see the EOF, we change the status to "new"
  208. X     * (via yyrestart()), so that the user can continue scanning by
  209. X     * just pointing yyin at a new input file.
  210. X     */
  211. X#define YY_BUFFER_EOF_PENDING 2
  212. X    };
  213. X
  214. Xstatic YY_BUFFER_STATE yy_current_buffer = 0;
  215. X
  216. X/* We provide macros for accessing buffer states in case in the
  217. X * future we want to put the buffer states in a more general
  218. X * "scanner state".
  219. X */
  220. X#define YY_CURRENT_BUFFER yy_current_buffer
  221. X
  222. X
  223. X/* yy_hold_char holds the character lost when yytext is formed. */
  224. Xstatic char yy_hold_char;
  225. X
  226. Xstatic int yy_n_chars;        /* number of characters read into yy_ch_buf */
  227. X
  228. X
  229. Xint yyleng;
  230. X
  231. X/* Points to current character in buffer. */
  232. Xstatic char *yy_c_buf_p = (char *) 0;
  233. Xstatic int yy_init = 1;        /* whether we need to initialize */
  234. Xstatic int yy_start = 0;    /* start state number */
  235. X
  236. X/* Flag which is used to allow yywrap()'s to do buffer switches
  237. X * instead of setting up a fresh yyin.  A bit of a hack ...
  238. X */
  239. Xstatic int yy_did_buffer_switch_on_eof;
  240. X
  241. Xstatic void yyunput YY_PROTO(( int c, char *buf_ptr ));
  242. Xvoid yyrestart YY_PROTO(( FILE *input_file ));
  243. Xvoid yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  244. Xvoid yy_load_buffer_state YY_PROTO(( void ));
  245. XYY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  246. Xvoid yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  247. Xvoid yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  248. X
  249. Xstatic int yy_start_stack_ptr = 0;
  250. Xstatic int yy_start_stack_depth = 0;
  251. Xstatic int *yy_start_stack = 0;
  252. Xstatic void yy_push_state YY_PROTO(( int new_state ));
  253. Xstatic void yy_pop_state YY_PROTO(( void ));
  254. Xstatic int yy_top_state YY_PROTO(( void ));
  255. X
  256. Xstatic void *yy_flex_alloc YY_PROTO(( unsigned int ));
  257. Xstatic void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));
  258. Xstatic void yy_flex_free YY_PROTO(( void * ));
  259. X
  260. X#define yy_new_buffer yy_create_buffer
  261. X
  262. X#define INITIAL 0
  263. X#define STRING 1
  264. X#define INCLUDE 2
  265. X#define ASTCOMMENT 3
  266. Xtypedef unsigned char YY_CHAR;
  267. Xtypedef int yy_state_type;
  268. XFILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  269. Xextern char *yytext;
  270. X#define yytext_ptr yytext
  271. X
  272. X#ifndef yytext_ptr
  273. Xstatic void yy_flex_strncpy YY_PROTO(( char *, const char *, int ));
  274. X#endif
  275. X
  276. X#ifdef __cplusplus
  277. Xstatic int yyinput YY_PROTO(( void ));
  278. X#else
  279. Xstatic int input YY_PROTO(( void ));
  280. X#endif
  281. X
  282. Xstatic yy_state_type yy_get_previous_state YY_PROTO(( void ));
  283. Xstatic yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  284. Xstatic int yy_get_next_buffer YY_PROTO(( void ));
  285. Xstatic void yy_fatal_error YY_PROTO(( const char msg[] ));
  286. X
  287. X/* Done after the current pattern has been matched and before the
  288. X * corresponding action - sets up yytext.
  289. X */
  290. X#define YY_DO_BEFORE_ACTION \
  291. X    yytext_ptr = yy_bp; \
  292. X    yyleng = yy_cp - yy_bp; \
  293. X    yy_hold_char = *yy_cp; \
  294. X    *yy_cp = '\0'; \
  295. X    yy_c_buf_p = yy_cp;
  296. X
  297. X#define YY_END_OF_BUFFER 133
  298. Xstatic const short int yy_accept[347] =
  299. X    {   0,
  300. X        0,    0,    0,    0,    0,    0,    0,    0,  133,  132,
  301. X      129,  131,  130,   89,  109,   14,  101,   81,   80,  132,
  302. X       97,   98,   69,   91,   86,   90,   87,   72,  122,  122,
  303. X       84,   88,   73,   85,   74,   83,  101,   99,  132,  100,
  304. X       70,  101,  101,  101,  101,  101,  101,  101,  101,  101,
  305. X      101,  101,  101,  101,  101,  101,   78,   71,   79,   68,
  306. X      128,   72,  115,  113,  112,  115,  114,   19,   17,   18,
  307. X       19,   19,  108,  107,  106,  108,  129,  130,   60,    0,
  308. X        0,    0,    0,    0,    0,    0,  101,   76,   75,   77,
  309. X        0,    0,   63,   94,   95,   82,   96,   55,    0,  118,
  310. X
  311. X      104,   92,  119,  116,  122,    0,  122,    0,   56,   58,
  312. X       93,   59,   57,  109,    0,  127,   66,  101,  101,  101,
  313. X      101,  101,  101,  101,   28,  101,  101,  101,  101,  101,
  314. X      101,   36,  101,  101,  101,  101,  101,  101,  101,  101,
  315. X      101,  101,  101,   67,   61,    0,    0,  128,    0,  103,
  316. X      111,  110,  114,   17,    0,   16,    0,   15,  107,  105,
  317. X        0,    0,    0,    0,    7,    8,    0,    0,    0,    0,
  318. X      123,    0,  123,    0,    0,   62,    0,  118,  118,    0,
  319. X      119,  116,    0,  120,  117,   64,   65,   20,  101,  101,
  320. X      101,  101,  101,  101,  101,  101,  101,  101,  101,   34,
  321. X
  322. X      101,  101,   38,  101,  101,  101,  101,  101,  101,  101,
  323. X      101,  101,  101,  101,  101,  101,  101,  101,  102,  103,
  324. X        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
  325. X        0,  124,  125,    0,    0,    0,  120,  118,    0,  121,
  326. X      117,   21,  101,   24,   23,  101,  101,  101,  101,   30,
  327. X       31,  101,  101,   35,  101,   39,  101,  101,  101,  101,
  328. X      101,  101,  101,  101,  101,  101,  101,   52,  101,  101,
  329. X        0,    3,    4,    0,    0,    0,    0,    0,   11,    0,
  330. X        0,    0,  126,    0,   22,   25,  101,  101,  101,  101,
  331. X       33,  101,  101,  101,   42,  101,  101,  101,  101,  101,
  332. X
  333. X      101,  101,   50,  101,  101,   54,    0,    5,    6,    9,
  334. X        0,    0,    0,   13,  101,  101,   29,   32,   37,  101,
  335. X       41,   43,   44,   45,   46,   47,  101,   49,  101,  101,
  336. X        2,   10,    0,   12,  101,   27,  101,   48,  101,  101,
  337. X        1,   26,   40,   51,   53,    0
  338. X    } ;
  339. X
  340. Xstatic const int yy_ec[256] =
  341. X    {   0,
  342. X        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  343. X        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  344. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  345. X        1,    5,    6,    7,    8,    9,   10,   11,   12,   13,
  346. X       14,   15,   16,   17,   18,   19,   20,   21,   22,   22,
  347. X       22,   22,   22,   22,   22,   23,   23,   24,   25,   26,
  348. X       27,   28,   29,   30,   31,   31,   31,   31,   32,   33,
  349. X        9,    9,    9,    9,    9,   34,    9,    9,    9,    9,
  350. X        9,    9,    9,    9,   35,    9,    9,    9,    9,    9,
  351. X       36,   37,   38,   39,    9,   30,   40,   41,   42,   43,
  352. X
  353. X       44,   45,   46,   47,   48,    9,   49,   50,   51,   52,
  354. X       53,   54,    9,   55,   56,   57,   58,   59,   60,   61,
  355. X       62,   63,   64,   65,   66,   67,    1,    1,    1,    1,
  356. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  357. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  358. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  359. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  360. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  361. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  362. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  363. X
  364. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  365. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  366. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  367. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  368. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  369. X        1,    1,    1,    1,    1
  370. X    } ;
  371. X
  372. Xstatic const int yy_meta[68] =
  373. X    {   0,
  374. X        1,    1,    1,    1,    2,    2,    3,    2,    4,    2,
  375. X        2,    5,    2,    2,    2,    2,    2,    2,    2,    2,
  376. X        6,    6,    7,    2,    2,    2,    2,    2,    3,    2,
  377. X        7,    7,    7,    4,    4,    2,    3,    2,    2,    6,
  378. X        6,    7,    7,    7,    6,    4,    4,    4,    4,    4,
  379. X        4,    8,    4,    4,    8,    4,    8,    4,    8,    4,
  380. X        8,    4,    4,    2,    2,    2,    2
  381. X    } ;
  382. X
  383. Xstatic const short int yy_base[358] =
  384. X    {   0,
  385. X        0,   66,   66,   72,   78,   85,   91,   95,  554,  555,
  386. X       97,  555,  550,  525,  555,  103,    0,  524,   80,  513,
  387. X      555,  555,  522,   62,  555,   94,   94,   55,  143,  105,
  388. X      555,  555,   92,  521,  102,  555,  113,  555,  544,  555,
  389. X      519,   75,  490,   95,   70,   82,   88,  491,  100,  490,
  390. X      498,  111,  479,  488,  486,  491,  555,  109,  165,  555,
  391. X      171,   57,  555,  555,  555,  172,  167,  555,  178,  555,
  392. X      530,  508,  555,  184,  555,  515,  190,  555,  555,  192,
  393. X      490,  150,  136,  485,  477,  479,    0,  555,  555,  555,
  394. X      518,  186,  555,  555,  555,  555,  555,  555,  510,  211,
  395. X
  396. X      555,  555,  230,  247,  264,  198,  555,    0,  501,  555,
  397. X      555,  555,  500,  555,  489,  555,  555,  474,  467,  479,
  398. X      466,  481,  468,  474,  460,  461,  458,  458,  461,  458,
  399. X      455,    0,  146,  459,  153,  457,  160,  175,  461,  454,
  400. X      134,  106,  459,  555,  555,  252,  491,  287,  490,  555,
  401. X      555,  555,  220,  236,  497,  555,  475,  555,  271,  555,
  402. X      457,  170,  458,  445,  555,  185,  457,  446,  457,  453,
  403. X      555,  483,  482,  227,    0,  555,  272,  555,  279,  309,
  404. X      555,  555,  237,  294,  284,  555,  555,    0,  440,  452,
  405. X      447,  435,  221,  449,  447,  443,  435,  441,  444,    0,
  406. X
  407. X      430,  434,    0,  435,  432,  421,  423,  425,  432,  418,
  408. X      416,  416,  428,  418,  422,  426,  428,  417,  555,  555,
  409. X      418,  420,  420,  415,  409,  417,  417,  409,  414,  411,
  410. X      412,  555,  555,  314,  443,  316,  322,  555,  325,  328,
  411. X      555,    0,  405,    0,    0,  396,  404,  393,  400,    0,
  412. X        0,  394,  391,    0,  395,    0,  390,  390,  387,  399,
  413. X      389,  393,  398,  397,  107,  386,  391,    0,  379,  391,
  414. X      382,  555,  555,  388,  377,  386,  386,  371,  555,  377,
  415. X      382,  414,  555,  413,    0,    0,  372,  373,  378,  369,
  416. X        0,  376,  362,  366,    0,  374,  363,  363,  320,  294,
  417. X
  418. X      296,  288,    0,  276,  273,    0,  276,  555,  555,  555,
  419. X      265,  266,  266,  555,  246,  246,    0,    0,    0,  240,
  420. X        0,    0,    0,    0,    0,    0,  226,    0,  223,  215,
  421. X      555,  555,  168,  555,  100,    0,   46,    0,   52,   32,
  422. X      555,    0,    0,    0,    0,  555,  351,  359,  367,  372,
  423. X      379,  387,  395,  401,  404,  406,  409
  424. X    } ;
  425. X
  426. Xstatic const short int yy_def[358] =
  427. X    {   0,
  428. X      346,    1,  347,  347,  348,  348,  349,  349,  346,  346,
  429. X      346,  346,  346,  346,  346,  346,  350,  346,  346,  351,
  430. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  431. X      346,  346,  346,  346,  346,  346,  350,  346,  346,  346,
  432. X      346,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  433. X      350,  350,  350,  350,  350,  350,  346,  346,  346,  346,
  434. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  435. X      352,  353,  346,  346,  346,  346,  346,  346,  346,  346,
  436. X      346,  346,  346,  346,  346,  346,  350,  346,  346,  346,
  437. X      346,  354,  346,  346,  346,  346,  346,  346,  346,  346,
  438. X
  439. X      346,  346,  346,  346,  346,  346,  346,  355,  346,  346,
  440. X      346,  346,  346,  346,  351,  346,  346,  350,  350,  350,
  441. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  442. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  443. X      350,  350,  350,  346,  346,  346,  346,  346,  346,  346,
  444. X      346,  346,  346,  346,  352,  346,  353,  346,  346,  346,
  445. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  446. X      346,  346,  346,  346,  356,  346,  346,  346,  346,  346,
  447. X      346,  346,  346,  346,  355,  346,  346,  350,  350,  350,
  448. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  449. X
  450. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  451. X      350,  350,  350,  350,  350,  350,  350,  350,  346,  346,
  452. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  453. X      346,  346,  346,  346,  357,  346,  346,  346,  346,  346,
  454. X      346,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  455. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  456. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  457. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  458. X      346,  346,  346,  346,  350,  350,  350,  350,  350,  350,
  459. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  460. X
  461. X      350,  350,  350,  350,  350,  350,  346,  346,  346,  346,
  462. X      346,  346,  346,  346,  350,  350,  350,  350,  350,  350,
  463. X      350,  350,  350,  350,  350,  350,  350,  350,  350,  350,
  464. X      346,  346,  346,  346,  350,  350,  350,  350,  350,  350,
  465. X      346,  350,  350,  350,  350,    0,  346,  346,  346,  346,
  466. X      346,  346,  346,  346,  346,  346,  346
  467. X    } ;
  468. X
  469. Xstatic const short int yy_nxt[623] =
  470. X    {   0,
  471. X       10,   11,   12,   13,   11,   14,   15,   16,   17,   18,
  472. X       19,   20,   21,   22,   23,   24,   25,   26,   27,   28,
  473. X       29,   30,   30,   31,   32,   33,   34,   35,   36,   10,
  474. X       17,   17,   17,   37,   17,   38,   39,   40,   41,   42,
  475. X       43,   44,   45,   46,   47,   48,   17,   49,   17,   50,
  476. X       17,   17,   17,   17,   51,   52,   53,   54,   55,   56,
  477. X       17,   17,   17,   57,   58,   59,   60,   61,   64,  101,
  478. X       61,  150,   65,   67,   64,  345,   67,   94,   65,   69,
  479. X       70,  102,   69,  102,   71,   62,   69,   70,   95,   69,
  480. X       89,   71,   74,   75,  344,   74,   74,   75,   77,   74,
  481. X
  482. X      343,   77,   66,   72,   80,   76,   90,   80,   66,   76,
  483. X       72,   96,   99,  124,  100,  100,  100,  109,  110,  114,
  484. X       97,   98,  125,  103,  115,  105,  105,  105,  112,  113,
  485. X      118,  126,  119,  127,  121,  144,  106,  129,  107,  107,
  486. X      130,  122,  128,  342,  132,   81,   82,  123,  106,  301,
  487. X       83,  133,   84,  216,  107,  217,   85,  136,  137,  302,
  488. X       86,  103,  107,  104,  104,  105,  146,  138,  153,  146,
  489. X      139,  153,  148,  145,  106,  148,  107,  107,  151,  154,
  490. X      166,  214,  154,  151,  147,  159,  106,  167,  159,  215,
  491. X      149,   77,  107,   80,   77,  202,   80,  173,  205,  162,
  492. X
  493. X      107,  163,  203,  108,  164,  208,  174,  174,  152,  206,
  494. X      165,  341,  151,  183,  210,  183,  151,  222,  184,  184,
  495. X      184,  153,  209,  151,  153,  223,  151,  226,  151,  211,
  496. X      151,  100,  100,  100,   81,   82,  227,  154,  233,   83,
  497. X      154,   84,  177,  178,  178,   85,  175,  234,  234,   86,
  498. X      179,  179,  179,  146,  177,  178,  146,  184,  184,  184,
  499. X      178,  180,  181,  181,  340,  103,  339,  104,  104,  105,
  500. X      338,  147,  159,  180,  181,  159,  246,  247,  106,  181,
  501. X      182,  182,  103,  337,  105,  105,  105,  236,  148,  236,
  502. X      106,  148,  237,  237,  237,  106,  182,  107,  107,  179,
  503. X
  504. X      179,  179,  336,  335,  182,  334,  149,  106,  333,  332,
  505. X      106,  238,  238,  107,  184,  184,  184,  241,  241,  331,
  506. X      330,  107,  106,  238,  239,  233,  239,  329,  238,  240,
  507. X      240,  240,  328,  241,  282,  282,  237,  237,  237,  327,
  508. X      326,  241,  237,  237,  237,  240,  240,  240,  240,  240,
  509. X      240,   63,   63,   63,   63,   63,   63,   63,   63,   68,
  510. X       68,   68,   68,   68,   68,   68,   68,   73,   73,   73,
  511. X       73,   73,   73,   73,   73,   87,  325,   87,   87,   87,
  512. X       91,   91,   91,   91,   91,   91,   91,  155,  155,  155,
  513. X      155,  155,  155,  155,  155,  157,  157,  157,  157,  157,
  514. X
  515. X      157,  157,  157,  172,  324,  172,  172,  323,  172,  185,
  516. X      185,  235,  235,  284,  284,  284,  322,  321,  320,  319,
  517. X      318,  317,  316,  315,  283,  233,  314,  313,  312,  311,
  518. X      310,  309,  308,  307,  306,  305,  304,  303,  300,  299,
  519. X      298,  297,  296,  295,  294,  293,  292,  291,  290,  289,
  520. X      288,  287,  286,  285,  283,  281,  280,  279,  278,  277,
  521. X      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
  522. X      266,  265,  264,  263,  262,  261,  260,  259,  258,  257,
  523. X      256,  255,  254,  253,  252,  251,  250,  249,  248,  245,
  524. X      244,  243,  242,  232,  232,  231,  230,  229,  228,  225,
  525. X
  526. X      224,  221,  158,  156,  220,  219,  218,  213,  212,  207,
  527. X      204,  201,  200,  199,  198,  197,  196,  195,  194,  193,
  528. X      192,  191,  190,  189,  188,   92,  187,  186,  176,  171,
  529. X      170,  169,  168,  161,  160,  158,  156,  143,  142,  141,
  530. X      140,  135,  134,  131,  120,  117,  116,  111,   93,   92,
  531. X       88,   79,   78,  346,    9,  346,  346,  346,  346,  346,
  532. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  533. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  534. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  535. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  536. X
  537. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  538. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  539. X      346,  346
  540. X    } ;
  541. X
  542. Xstatic const short int yy_chk[623] =
  543. X    {   0,
  544. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  545. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  546. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  547. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  548. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  549. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  550. X        1,    1,    1,    1,    1,    1,    1,    2,    3,   28,
  551. X        2,   62,    3,    4,    4,  340,    4,   24,    4,    5,
  552. X        5,   28,    5,   62,    5,    2,    6,    6,   24,    6,
  553. X       19,    6,    7,    7,  339,    7,    8,    8,   11,    8,
  554. X
  555. X      337,   11,    3,    5,   16,    7,   19,   16,    4,    8,
  556. X        6,   26,   27,   45,   27,   27,   27,   33,   33,   37,
  557. X       26,   26,   45,   30,   37,   30,   30,   30,   35,   35,
  558. X       42,   46,   42,   46,   44,   58,   30,   47,   30,   30,
  559. X       47,   44,   46,  335,   49,   16,   16,   44,   30,  265,
  560. X       16,   49,   16,  142,   30,  142,   16,   52,   52,  265,
  561. X       16,   29,   30,   29,   29,   29,   59,   52,   67,   59,
  562. X       52,   67,   61,   58,   29,   61,   29,   29,   66,   69,
  563. X       83,  141,   69,   66,   59,   74,   29,   83,   74,  141,
  564. X       61,   77,   29,   80,   77,  133,   80,   92,  135,   82,
  565. X
  566. X       29,   82,  133,   29,   82,  137,   92,   92,   66,  135,
  567. X       82,  333,   66,  106,  138,  106,   66,  162,  106,  106,
  568. X      106,  153,  137,   66,  153,  162,   66,  166,   66,  138,
  569. X       66,  100,  100,  100,   80,   80,  166,  154,  174,   80,
  570. X      154,   80,  100,  100,  100,   80,   92,  174,  174,   80,
  571. X      103,  103,  103,  146,  100,  100,  146,  183,  183,  183,
  572. X      100,  103,  103,  103,  330,  104,  329,  104,  104,  104,
  573. X      327,  146,  159,  103,  103,  159,  193,  193,  104,  103,
  574. X      104,  104,  105,  320,  105,  105,  105,  177,  148,  177,
  575. X      104,  148,  177,  177,  177,  105,  104,  105,  105,  179,
  576. X
  577. X      179,  179,  316,  315,  104,  313,  148,  105,  312,  311,
  578. X      179,  179,  179,  105,  184,  184,  184,  185,  185,  307,
  579. X      305,  105,  179,  179,  180,  234,  180,  304,  179,  180,
  580. X      180,  180,  302,  185,  234,  234,  236,  236,  236,  301,
  581. X      300,  185,  237,  237,  237,  239,  239,  239,  240,  240,
  582. X      240,  347,  347,  347,  347,  347,  347,  347,  347,  348,
  583. X      348,  348,  348,  348,  348,  348,  348,  349,  349,  349,
  584. X      349,  349,  349,  349,  349,  350,  299,  350,  350,  350,
  585. X      351,  351,  351,  351,  351,  351,  351,  352,  352,  352,
  586. X      352,  352,  352,  352,  352,  353,  353,  353,  353,  353,
  587. X
  588. X      353,  353,  353,  354,  298,  354,  354,  297,  354,  355,
  589. X      355,  356,  356,  357,  357,  357,  296,  294,  293,  292,
  590. X      290,  289,  288,  287,  284,  282,  281,  280,  278,  277,
  591. X      276,  275,  274,  271,  270,  269,  267,  266,  264,  263,
  592. X      262,  261,  260,  259,  258,  257,  255,  253,  252,  249,
  593. X      248,  247,  246,  243,  235,  231,  230,  229,  228,  227,
  594. X      226,  225,  224,  223,  222,  221,  218,  217,  216,  215,
  595. X      214,  213,  212,  211,  210,  209,  208,  207,  206,  205,
  596. X      204,  202,  201,  199,  198,  197,  196,  195,  194,  192,
  597. X      191,  190,  189,  173,  172,  170,  169,  168,  167,  164,
  598. X
  599. X      163,  161,  157,  155,  149,  147,  143,  140,  139,  136,
  600. X      134,  131,  130,  129,  128,  127,  126,  125,  124,  123,
  601. X      122,  121,  120,  119,  118,  115,  113,  109,   99,   91,
  602. X       86,   85,   84,   81,   76,   72,   71,   56,   55,   54,
  603. X       53,   51,   50,   48,   43,   41,   39,   34,   23,   20,
  604. X       18,   14,   13,    9,  346,  346,  346,  346,  346,  346,
  605. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  606. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  607. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  608. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  609. X
  610. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  611. X      346,  346,  346,  346,  346,  346,  346,  346,  346,  346,
  612. X      346,  346
  613. X    } ;
  614. X
  615. Xstatic yy_state_type yy_last_accepting_state;
  616. Xstatic char *yy_last_accepting_cpos;
  617. X
  618. X/* The intent behind this definition is that it'll catch
  619. X * any uses of REJECT which flex missed.
  620. X */
  621. X#define REJECT reject_used_but_not_detected
  622. X#define yymore() yymore_used_but_not_detected
  623. X#define YY_MORE_ADJ 0
  624. Xchar *yytext;
  625. X# line 1 "src/ansic2latex.l"
  626. X/* $Id: ansic2latex.l,v 3.0 1994/01/15 17:07:01 joke Rel $ */
  627. X# line 6 "src/ansic2latex.l"
  628. X#include "defs.h"
  629. X
  630. X/* Macros after this point can all be overridden by user definitions in
  631. X * section 1.
  632. X */
  633. X
  634. X#ifdef YY_MALLOC_DECL
  635. XYY_MALLOC_DECL
  636. X#else
  637. X#if __STDC__
  638. X#ifndef __cplusplus
  639. X#include <stdlib.h>
  640. X#endif
  641. X#else
  642. X/* Just try to get by without declaring the routines.  This will fail
  643. X * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  644. X * or sizeof(void*) != sizeof(int).
  645. X */
  646. X#endif
  647. X#endif
  648. X
  649. X/* Amount of stuff to slurp up with each read. */
  650. X#ifndef YY_READ_BUF_SIZE
  651. X#define YY_READ_BUF_SIZE 8192
  652. X#endif
  653. X
  654. X/* Copy whatever the last rule matched to the standard output. */
  655. X
  656. X#ifndef ECHO
  657. X/* This used to be an fputs(), but since the string might contain NUL's,
  658. X * we now use fwrite().
  659. X */
  660. X#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  661. X#endif
  662. X
  663. X/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  664. X * is returned in "result".
  665. X */
  666. X#ifndef YY_INPUT
  667. X#define YY_INPUT(buf,result,max_size) \
  668. X    if ( yy_current_buffer->yy_is_interactive ) \
  669. X        { \
  670. X        int c = getc( yyin ); \
  671. X        result = c == EOF ? 0 : 1; \
  672. X        buf[0] = (char) c; \
  673. X        } \
  674. X    else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  675. X          && ferror( yyin ) ) \
  676. X        YY_FATAL_ERROR( "input in flex scanner failed" );
  677. X#endif
  678. X
  679. X/* No semi-colon after return; correct usage is to write "yyterminate();" -
  680. X * we don't want an extra ';' after the "return" because that will cause
  681. X * some compilers to complain about unreachable statements.
  682. X */
  683. X#ifndef yyterminate
  684. X#define yyterminate() return YY_NULL
  685. X#endif
  686. X
  687. X/* Number of entries by which start-condition stack grows. */
  688. X#ifndef YY_START_STACK_INCR
  689. X#define YY_START_STACK_INCR 25
  690. X#endif
  691. X
  692. X/* Report a fatal error. */
  693. X#ifndef YY_FATAL_ERROR
  694. X#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  695. X#endif
  696. X
  697. X/* Default declaration of generated scanner - a define so the user can
  698. X * easily add parameters.
  699. X */
  700. X#ifndef YY_DECL
  701. X#define YY_DECL int yylex YY_PROTO(( void ))
  702. X#endif
  703. X
  704. X/* Code executed at the beginning of each rule, after yytext and yyleng
  705. X * have been set up.
  706. X */
  707. X#ifndef YY_USER_ACTION
  708. X#define YY_USER_ACTION
  709. X#endif
  710. X
  711. X/* Code executed at the end of each rule. */
  712. X#ifndef YY_BREAK
  713. X#define YY_BREAK break;
  714. X#endif
  715. X
  716. XYY_DECL
  717. X    {
  718. X    register yy_state_type yy_current_state;
  719. X    register char *yy_cp, *yy_bp;
  720. X    register int yy_act;
  721. X
  722. X# line 9 "src/ansic2latex.l"
  723. X
  724. X            INIT;
  725. X
  726. X
  727. X    if ( yy_init )
  728. X        {
  729. X#ifdef YY_USER_INIT
  730. X        YY_USER_INIT;
  731. X#endif
  732. X
  733. X        if ( ! yy_start )
  734. X            yy_start = 1;    /* first start state */
  735. X
  736. X        if ( ! yyin )
  737. X            yyin = stdin;
  738. X
  739. X        if ( ! yyout )
  740. X            yyout = stdout;
  741. X
  742. X        if ( yy_current_buffer )
  743. X            yy_init_buffer( yy_current_buffer, yyin );
  744. X        else
  745. X            yy_current_buffer =
  746. X                yy_create_buffer( yyin, YY_BUF_SIZE );
  747. X
  748. X        yy_load_buffer_state();
  749. X
  750. X        yy_init = 0;
  751. X        }
  752. X
  753. X    while ( 1 )        /* loops until end-of-file is reached */
  754. X        {
  755. X        yy_cp = yy_c_buf_p;
  756. X
  757. X        /* Support of yytext. */
  758. X        *yy_cp = yy_hold_char;
  759. X
  760. X        /* yy_bp points to the position in yy_ch_buf of the start of
  761. X         * the current run.
  762. X         */
  763. X        yy_bp = yy_cp;
  764. X
  765. X        yy_current_state = yy_start;
  766. X        if ( yy_bp[-1] == '\n' )
  767. X            ++yy_current_state;
  768. Xyy_match:
  769. X        do
  770. X            {
  771. X            register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  772. X            if ( yy_accept[yy_current_state] )
  773. X                {
  774. X                yy_last_accepting_state = yy_current_state;
  775. X                yy_last_accepting_cpos = yy_cp;
  776. X                }
  777. X            while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  778. X                {
  779. X                yy_current_state = (int) yy_def[yy_current_state];
  780. X                if ( yy_current_state >= 347 )
  781. X                    yy_c = yy_meta[(unsigned int) yy_c];
  782. X                }
  783. X            yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  784. X            ++yy_cp;
  785. X            }
  786. X        while ( yy_base[yy_current_state] != 555 );
  787. X
  788. Xyy_find_action:
  789. X        yy_act = yy_accept[yy_current_state];
  790. X
  791. X        YY_DO_BEFORE_ACTION;
  792. X
  793. X
  794. Xdo_action:    /* This label is used only to access EOF actions. */
  795. X
  796. X
  797. X        switch ( yy_act )
  798. X    { /* beginning of action switch */
  799. X            case 0: /* must back up */
  800. X            /* undo the effects of YY_DO_BEFORE_ACTION */
  801. X            *yy_cp = yy_hold_char;
  802. X            yy_cp = yy_last_accepting_cpos;
  803. X            yy_current_state = yy_last_accepting_state;
  804. X            goto yy_find_action;
  805. X
  806. Xcase 1:
  807. XYY_USER_ACTION
  808. X# line 12 "src/ansic2latex.l"
  809. X{ CPP; BEGIN (INCLUDE); }
  810. X    YY_BREAK
  811. Xcase 2:
  812. X# line 15 "src/ansic2latex.l"
  813. Xcase 3:
  814. X# line 16 "src/ansic2latex.l"
  815. Xcase 4:
  816. X# line 17 "src/ansic2latex.l"
  817. Xcase 5:
  818. X# line 18 "src/ansic2latex.l"
  819. Xcase 6:
  820. X# line 19 "src/ansic2latex.l"
  821. Xcase 7:
  822. X# line 20 "src/ansic2latex.l"
  823. Xcase 8:
  824. X# line 21 "src/ansic2latex.l"
  825. Xcase 9:
  826. X# line 22 "src/ansic2latex.l"
  827. Xcase 10:
  828. X# line 23 "src/ansic2latex.l"
  829. Xcase 11:
  830. X# line 24 "src/ansic2latex.l"
  831. Xcase 12:
  832. X# line 25 "src/ansic2latex.l"
  833. Xcase 13:
  834. XYY_USER_ACTION
  835. X# line 25 "src/ansic2latex.l"
  836. XCPP;
  837. X    YY_BREAK
  838. X /*    cpp unary # and binary ## commands */
  839. Xcase 14:
  840. XYY_USER_ACTION
  841. X# line 28 "src/ansic2latex.l"
  842. XCPP;
  843. X    YY_BREAK
  844. Xcase 15:
  845. X*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  846. Xyy_c_buf_p = yy_cp -= 1;
  847. XYY_DO_BEFORE_ACTION; /* set up yytext again */
  848. XYY_USER_ACTION
  849. X# line 31 "src/ansic2latex.l"
  850. X{ OUT ("$<$"); FONT (string_font);
  851. X              SUB (yytext+1); OUT ("}$>$");
  852. X              input(); INIT; }
  853. X    YY_BREAK
  854. Xcase 16:
  855. X*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
  856. Xyy_c_buf_p = yy_cp -= 1;
  857. XYY_DO_BEFORE_ACTION; /* set up yytext again */
  858. XYY_USER_ACTION
  859. X# line 34 "src/ansic2latex.l"
  860. X{ OUT ("\""); FONT (string_font);
  861. X              SUB (yytext+1); OUT ("}\"");
  862. X              input(); INIT; }
  863. X    YY_BREAK
  864. Xcase 17:
  865. XYY_USER_ACTION
  866. X# line 37 "src/ansic2latex.l"
  867. XECHO;
  868. X    YY_BREAK
  869. Xcase 18:
  870. XYY_USER_ACTION
  871. X# line 38 "src/ansic2latex.l"
  872. XOUT ("\\mbox{}\\\\\n");
  873. X    YY_BREAK
  874. Xcase 19:
  875. XYY_USER_ACTION
  876. X# line 39 "src/ansic2latex.l"
  877. X{ REPARSE; INIT; }
  878. X    YY_BREAK
  879. X    /* from: gcc-2.2/c-parse.gperf */
  880. Xcase 20:
  881. X# line 44 "src/ansic2latex.l"
  882. Xcase 21:
  883. X# line 45 "src/ansic2latex.l"
  884. Xcase 22:
  885. X# line 46 "src/ansic2latex.l"
  886. Xcase 23:
  887. X# line 47 "src/ansic2latex.l"
  888. Xcase 24:
  889. X# line 48 "src/ansic2latex.l"
  890. Xcase 25:
  891. X# line 49 "src/ansic2latex.l"
  892. Xcase 26:
  893. X# line 50 "src/ansic2latex.l"
  894. Xcase 27:
  895. X# line 51 "src/ansic2latex.l"
  896. Xcase 28:
  897. X# line 52 "src/ansic2latex.l"
  898. Xcase 29:
  899. X# line 53 "src/ansic2latex.l"
  900. Xcase 30:
  901. X# line 54 "src/ansic2latex.l"
  902. Xcase 31:
  903. X# line 55 "src/ansic2latex.l"
  904. Xcase 32:
  905. X# line 56 "src/ansic2latex.l"
  906. Xcase 33:
  907. X# line 57 "src/ansic2latex.l"
  908. Xcase 34:
  909. X# line 58 "src/ansic2latex.l"
  910. Xcase 35:
  911. X# line 59 "src/ansic2latex.l"
  912. Xcase 36:
  913. X# line 60 "src/ansic2latex.l"
  914. Xcase 37:
  915. X# line 61 "src/ansic2latex.l"
  916. Xcase 38:
  917. X# line 62 "src/ansic2latex.l"
  918. Xcase 39:
  919. X# line 63 "src/ansic2latex.l"
  920. Xcase 40:
  921. X# line 64 "src/ansic2latex.l"
  922. Xcase 41:
  923. X# line 65 "src/ansic2latex.l"
  924. Xcase 42:
  925. X# line 66 "src/ansic2latex.l"
  926. Xcase 43:
  927. X# line 67 "src/ansic2latex.l"
  928. Xcase 44:
  929. X# line 68 "src/ansic2latex.l"
  930. Xcase 45:
  931. X# line 69 "src/ansic2latex.l"
  932. Xcase 46:
  933. X# line 70 "src/ansic2latex.l"
  934. Xcase 47:
  935. X# line 71 "src/ansic2latex.l"
  936. Xcase 48:
  937. X# line 72 "src/ansic2latex.l"
  938. Xcase 49:
  939. X# line 73 "src/ansic2latex.l"
  940. Xcase 50:
  941. X# line 74 "src/ansic2latex.l"
  942. Xcase 51:
  943. X# line 75 "src/ansic2latex.l"
  944. Xcase 52:
  945. X# line 76 "src/ansic2latex.l"
  946. Xcase 53:
  947. X# line 77 "src/ansic2latex.l"
  948. Xcase 54:
  949. XYY_USER_ACTION
  950. X# line 77 "src/ansic2latex.l"
  951. XKEY;
  952. X    YY_BREAK
  953. Xcase 55:
  954. XYY_USER_ACTION
  955. X# line 80 "src/ansic2latex.l"
  956. XSYM ("rightarrow");
  957. X    YY_BREAK
  958. Xcase 56:
  959. XYY_USER_ACTION
  960. X# line 81 "src/ansic2latex.l"
  961. XSYM ("ll");
  962. X    YY_BREAK
  963. Xcase 57:
  964. XYY_USER_ACTION
  965. X# line 82 "src/ansic2latex.l"
  966. XSYM ("gg");
  967. X    YY_BREAK
  968. Xcase 58:
  969. XYY_USER_ACTION
  970. X# line 83 "src/ansic2latex.l"
  971. XSYM ("leq");
  972. X    YY_BREAK
  973. Xcase 59:
  974. XYY_USER_ACTION
  975. X# line 84 "src/ansic2latex.l"
  976. XSYM ("geq");
  977. X    YY_BREAK
  978. Xcase 60:
  979. XYY_USER_ACTION
  980. X# line 85 "src/ansic2latex.l"
  981. XSYM ("neq");
  982. X    YY_BREAK
  983. Xcase 61:
  984. XYY_USER_ACTION
  985. X# line 86 "src/ansic2latex.l"
  986. XSYM ("mid\\mid");
  987. X    YY_BREAK
  988. Xcase 62:
  989. XYY_USER_ACTION
  990. X# line 87 "src/ansic2latex.l"
  991. XSYM ("ldots");
  992. X    YY_BREAK
  993. Xcase 63:
  994. XYY_USER_ACTION
  995. X# line 88 "src/ansic2latex.l"
  996. XSYM ("ast=");
  997. X    YY_BREAK
  998. Xcase 64:
  999. XYY_USER_ACTION
  1000. X# line 89 "src/ansic2latex.l"
  1001. XSYM ("ll=");
  1002. X    YY_BREAK
  1003. Xcase 65:
  1004. XYY_USER_ACTION
  1005. X# line 90 "src/ansic2latex.l"
  1006. XSYM ("gg=");
  1007. X    YY_BREAK
  1008. Xcase 66:
  1009. XYY_USER_ACTION
  1010. X# line 91 "src/ansic2latex.l"
  1011. XSYM ("vee=");
  1012. X    YY_BREAK
  1013. Xcase 67:
  1014. XYY_USER_ACTION
  1015. X# line 92 "src/ansic2latex.l"
  1016. XSYM ("mid=");
  1017. X    YY_BREAK
  1018. Xcase 68:
  1019. XYY_USER_ACTION
  1020. X# line 93 "src/ansic2latex.l"
  1021. XSYM ("sim");
  1022. X    YY_BREAK
  1023. Xcase 69:
  1024. XYY_USER_ACTION
  1025. X# line 94 "src/ansic2latex.l"
  1026. XSYM ("ast");
  1027. X    YY_BREAK
  1028. Xcase 70:
  1029. XYY_USER_ACTION
  1030. X# line 95 "src/ansic2latex.l"
  1031. XSYM ("wedge");
  1032. X    YY_BREAK
  1033. Xcase 71:
  1034. XYY_USER_ACTION
  1035. X# line 96 "src/ansic2latex.l"
  1036. XSYM ("mid");
  1037. X    YY_BREAK
  1038. Xcase 72:
  1039. XYY_USER_ACTION
  1040. X# line 97 "src/ansic2latex.l"
  1041. XOUT ("$/$");
  1042. X    YY_BREAK
  1043. Xcase 73:
  1044. XYY_USER_ACTION
  1045. X# line 98 "src/ansic2latex.l"
  1046. XOUT ("$<$");
  1047. X    YY_BREAK
  1048. Xcase 74:
  1049. XYY_USER_ACTION
  1050. X# line 99 "src/ansic2latex.l"
  1051. XOUT ("$>$");
  1052. X    YY_BREAK
  1053. Xcase 75:
  1054. XYY_USER_ACTION
  1055. X# line 100 "src/ansic2latex.l"
  1056. XOUT ("\\&\\&");
  1057. X    YY_BREAK
  1058. Xcase 76:
  1059. XYY_USER_ACTION
  1060. X# line 101 "src/ansic2latex.l"
  1061. XOUT ("\\%=");
  1062. X    YY_BREAK
  1063. Xcase 77:
  1064. XYY_USER_ACTION
  1065. X# line 102 "src/ansic2latex.l"
  1066. XOUT ("\\&=");
  1067. X    YY_BREAK
  1068. Xcase 78:
  1069. XYY_USER_ACTION
  1070. X# line 103 "src/ansic2latex.l"
  1071. XOUT ("\\{");
  1072. X    YY_BREAK
  1073. Xcase 79:
  1074. XYY_USER_ACTION
  1075. X# line 104 "src/ansic2latex.l"
  1076. XOUT ("\\}");
  1077. X    YY_BREAK
  1078. Xcase 80:
  1079. XYY_USER_ACTION
  1080. X# line 105 "src/ansic2latex.l"
  1081. XOUT ("\\&");
  1082. X    YY_BREAK
  1083. Xcase 81:
  1084. XYY_USER_ACTION
  1085. X# line 106 "src/ansic2latex.l"
  1086. XOUT ("\\%");
  1087. X    YY_BREAK
  1088. Xcase 82:
  1089. XYY_USER_ACTION
  1090. X# line 107 "src/ansic2latex.l"
  1091. XOUT ("-{}-");
  1092. X    YY_BREAK
  1093. Xcase 83:
  1094. X# line 109 "src/ansic2latex.l"
  1095. Xcase 84:
  1096. X# line 110 "src/ansic2latex.l"
  1097. Xcase 85:
  1098. X# line 111 "src/ansic2latex.l"
  1099. Xcase 86:
  1100. X# line 112 "src/ansic2latex.l"
  1101. Xcase 87:
  1102. X# line 113 "src/ansic2latex.l"
  1103. Xcase 88:
  1104. X# line 114 "src/ansic2latex.l"
  1105. Xcase 89:
  1106. X# line 115 "src/ansic2latex.l"
  1107. Xcase 90:
  1108. X# line 116 "src/ansic2latex.l"
  1109. Xcase 91:
  1110. X# line 117 "src/ansic2latex.l"
  1111. Xcase 92:
  1112. X# line 118 "src/ansic2latex.l"
  1113. Xcase 93:
  1114. X# line 119 "src/ansic2latex.l"
  1115. Xcase 94:
  1116. X# line 120 "src/ansic2latex.l"
  1117. Xcase 95:
  1118. X# line 121 "src/ansic2latex.l"
  1119. Xcase 96:
  1120. X# line 122 "src/ansic2latex.l"
  1121. Xcase 97:
  1122. X# line 123 "src/ansic2latex.l"
  1123. Xcase 98:
  1124. X# line 124 "src/ansic2latex.l"
  1125. Xcase 99:
  1126. X# line 125 "src/ansic2latex.l"
  1127. Xcase 100:
  1128. X# line 126 "src/ansic2latex.l"
  1129. X            ECHO;
  1130. X /*    identifiers: may contain $ chars */
  1131. Xcase 101:
  1132. XYY_USER_ACTION
  1133. X# line 129 "src/ansic2latex.l"
  1134. XSUB (yytext);
  1135. X    YY_BREAK
  1136. X /*    1.   Asterisk comments mini scanner */
  1137. X /*    1.1. Curly  brace comment */
  1138. Xcase 102:
  1139. XYY_USER_ACTION
  1140. X# line 134 "src/ansic2latex.l"
  1141. X{ BEGIN (ASTCOMMENT);
  1142. X                                OUT ("\\}");
  1143. X                                BTAB;
  1144. X                                FONT (comment_font);
  1145. X                                OUT ("/$\\ast$"); }
  1146. X    YY_BREAK
  1147. X /*    1.2. Comments at the beginning of a line */
  1148. Xcase 103:
  1149. XYY_USER_ACTION
  1150. X# line 141 "src/ansic2latex.l"
  1151. X{ BEGIN (ASTCOMMENT);
  1152. X                FONT (comment_font);
  1153. X                                REPARSE; }
  1154. X    YY_BREAK
  1155. X /*    1.3. Other comments, aligned to right side of paper */
  1156. Xcase 104:
  1157. XYY_USER_ACTION
  1158. X# line 146 "src/ansic2latex.l"
  1159. X{ BEGIN (ASTCOMMENT);
  1160. X                                if (aligntoright) {
  1161. X                    OUT ("\\hfill");
  1162. X                } else {
  1163. X                    CTAB;
  1164. X                }
  1165. X                FONT (comment_font);
  1166. X                                OUT ("/$\\ast$"); }
  1167. X    YY_BREAK
  1168. Xcase 105:
  1169. XYY_USER_ACTION
  1170. X# line 155 "src/ansic2latex.l"
  1171. X{ INIT; OUT ("$\\ast$/}"); }
  1172. X    YY_BREAK
  1173. Xcase 106:
  1174. XYY_USER_ACTION
  1175. X# line 156 "src/ansic2latex.l"
  1176. X{ OUT ("}\\mbox{}\\\\\n"); FONT (comment_font); }
  1177. X    YY_BREAK
  1178. Xcase 107:
  1179. XYY_USER_ACTION
  1180. X# line 157 "src/ansic2latex.l"
  1181. XIND;
  1182. X    YY_BREAK
  1183. Xcase 108:
  1184. XYY_USER_ACTION
  1185. X# line 158 "src/ansic2latex.l"
  1186. XSUB (yytext);
  1187. X    YY_BREAK
  1188. Xcase 109:
  1189. XYY_USER_ACTION
  1190. X# line 161 "src/ansic2latex.l"
  1191. X{ BEGIN (STRING);
  1192. X                FONT (string_font); OUT ("\""); }
  1193. X    YY_BREAK
  1194. Xcase 110:
  1195. XYY_USER_ACTION
  1196. X# line 163 "src/ansic2latex.l"
  1197. XOUT ("$\\backslash\\backslash$");
  1198. X    YY_BREAK
  1199. Xcase 111:
  1200. XYY_USER_ACTION
  1201. X# line 164 "src/ansic2latex.l"
  1202. X{ OUT ("$\\backslash$"); SUB (yytext+1); }
  1203. X    YY_BREAK
  1204. Xcase 112:
  1205. XYY_USER_ACTION
  1206. X# line 165 "src/ansic2latex.l"
  1207. X{ INIT; OUT ("\"}"); }
  1208. X    YY_BREAK
  1209. Xcase 113:
  1210. XYY_USER_ACTION
  1211. X# line 166 "src/ansic2latex.l"
  1212. XOUT ("\\mbox{}\\\\\n");
  1213. X    YY_BREAK
  1214. Xcase 114:
  1215. XYY_USER_ACTION
  1216. X# line 167 "src/ansic2latex.l"
  1217. XIND;
  1218. X    YY_BREAK
  1219. Xcase 115:
  1220. XYY_USER_ACTION
  1221. X# line 168 "src/ansic2latex.l"
  1222. XSUB (yytext);
  1223. X    YY_BREAK
  1224. Xcase 116:
  1225. XYY_USER_ACTION
  1226. X# line 170 "src/ansic2latex.l"
  1227. XECHO;
  1228. X    YY_BREAK
  1229. Xcase 117:
  1230. XYY_USER_ACTION
  1231. X# line 172 "src/ansic2latex.l"
  1232. XECHO;
  1233. X    YY_BREAK
  1234. Xcase 118:
  1235. X# line 175 "src/ansic2latex.l"
  1236. Xcase 119:
  1237. X# line 176 "src/ansic2latex.l"
  1238. Xcase 120:
  1239. X# line 177 "src/ansic2latex.l"
  1240. Xcase 121:
  1241. XYY_USER_ACTION
  1242. X# line 177 "src/ansic2latex.l"
  1243. XECHO;
  1244. X    YY_BREAK
  1245. Xcase 122:
  1246. XYY_USER_ACTION
  1247. X# line 179 "src/ansic2latex.l"
  1248. XECHO;
  1249. X    YY_BREAK
  1250. Xcase 123:
  1251. X# line 182 "src/ansic2latex.l"
  1252. Xcase 124:
  1253. X# line 183 "src/ansic2latex.l"
  1254. Xcase 125:
  1255. X# line 184 "src/ansic2latex.l"
  1256. Xcase 126:
  1257. XYY_USER_ACTION
  1258. X# line 184 "src/ansic2latex.l"
  1259. XSUB (yytext);
  1260. X    YY_BREAK
  1261. Xcase 127:
  1262. XYY_USER_ACTION
  1263. X# line 186 "src/ansic2latex.l"
  1264. XOUT ("$\\backslash$\\\\\n");
  1265. X    YY_BREAK
  1266. Xcase 128:
  1267. XYY_USER_ACTION
  1268. X# line 187 "src/ansic2latex.l"
  1269. XIND;
  1270. X    YY_BREAK
  1271. Xcase 129:
  1272. XYY_USER_ACTION
  1273. X# line 188 "src/ansic2latex.l"
  1274. XECHO;
  1275. X    YY_BREAK
  1276. Xcase 130:
  1277. XYY_USER_ACTION
  1278. X# line 189 "src/ansic2latex.l"
  1279. XOUT ("\\newpage\n");
  1280. X    YY_BREAK
  1281. Xcase 131:
  1282. XYY_USER_ACTION
  1283. X# line 190 "src/ansic2latex.l"
  1284. XOUT ("\\mbox{}\\\\\n");
  1285. X    YY_BREAK
  1286. Xcase 132:
  1287. XYY_USER_ACTION
  1288. X# line 191 "src/ansic2latex.l"
  1289. XECHO;
  1290. X    YY_BREAK
  1291. Xcase YY_STATE_EOF(INITIAL):
  1292. Xcase YY_STATE_EOF(STRING):
  1293. Xcase YY_STATE_EOF(INCLUDE):
  1294. Xcase YY_STATE_EOF(ASTCOMMENT):
  1295. X    yyterminate();
  1296. X
  1297. X    case YY_END_OF_BUFFER:
  1298. X        {
  1299. X        /* Amount of text matched not including the EOB char. */
  1300. X        int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1;
  1301. X
  1302. X        /* Undo the effects of YY_DO_BEFORE_ACTION. */
  1303. X        *yy_cp = yy_hold_char;
  1304. X
  1305. X        if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
  1306. X            {
  1307. X            /* We're scanning a new file or input source.  It's
  1308. X             * possible that this happened because the user
  1309. X             * just pointed yyin at a new source and called
  1310. X             * yylex().  If so, then we have to assure
  1311. X             * consistency between yy_current_buffer and our
  1312. X             * globals.  Here is the right place to do so, because
  1313. X             * this is the first action (other than possibly a
  1314. X             * back-up) that will match for the new input source.
  1315. X             */
  1316. X            yy_n_chars = yy_current_buffer->yy_n_chars;
  1317. X            yy_current_buffer->yy_input_file = yyin;
  1318. X            yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
  1319. X            }
  1320. X
  1321. X        /* Note that here we test for yy_c_buf_p "<=" to the position
  1322. X         * of the first EOB in the buffer, since yy_c_buf_p will
  1323. X         * already have been incremented past the NUL character
  1324. X         * (since all states make transitions on EOB to the
  1325. X         * end-of-buffer state).  Contrast this with the test
  1326. X         * in input().
  1327. X         */
  1328. X        if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1329. X            { /* This was really a NUL. */
  1330. X            yy_state_type yy_next_state;
  1331. X
  1332. X            yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  1333. X
  1334. X            yy_current_state = yy_get_previous_state();
  1335. X
  1336. X            /* Okay, we're now positioned to make the NUL
  1337. X             * transition.  We couldn't have
  1338. X             * yy_get_previous_state() go ahead and do it
  1339. X             * for us because it doesn't know how to deal
  1340. X             * with the possibility of jamming (and we don't
  1341. X             * want to build jamming into it because then it
  1342. X             * will run more slowly).
  1343. X             */
  1344. X
  1345. X            yy_next_state = yy_try_NUL_trans( yy_current_state );
  1346. X
  1347. X            yy_bp = yytext_ptr + YY_MORE_ADJ;
  1348. X
  1349. X            if ( yy_next_state )
  1350. X                {
  1351. X                /* Consume the NUL. */
  1352. X                yy_cp = ++yy_c_buf_p;
  1353. X                yy_current_state = yy_next_state;
  1354. X                goto yy_match;
  1355. X                }
  1356. X
  1357. X            else
  1358. X                {
  1359. X                            yy_cp = yy_c_buf_p;
  1360. X                goto yy_find_action;
  1361. X                }
  1362. X            }
  1363. X
  1364. X        else switch ( yy_get_next_buffer() )
  1365. X            {
  1366. X            case EOB_ACT_END_OF_FILE:
  1367. X                {
  1368. X                yy_did_buffer_switch_on_eof = 0;
  1369. X
  1370. X                if ( yywrap() )
  1371. X                    {
  1372. X                    /* Note: because we've taken care in
  1373. X                     * yy_get_next_buffer() to have set up
  1374. X                     * yytext, we can now set up
  1375. X                     * yy_c_buf_p so that if some total
  1376. X                     * hoser (like flex itself) wants to
  1377. X                     * call the scanner after we return the
  1378. X                     * YY_NULL, it'll still work - another
  1379. X                     * YY_NULL will get returned.
  1380. X                     */
  1381. X                    yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  1382. X
  1383. X                    yy_act = YY_STATE_EOF(YY_START);
  1384. X                    goto do_action;
  1385. X                    }
  1386. X
  1387. X                else
  1388. X                    {
  1389. X                    if ( ! yy_did_buffer_switch_on_eof )
  1390. X                        YY_NEW_FILE;
  1391. X                    }
  1392. X                break;
  1393. X                }
  1394. X
  1395. X            case EOB_ACT_CONTINUE_SCAN:
  1396. X                yy_c_buf_p =
  1397. X                    yytext_ptr + yy_amount_of_matched_text;
  1398. X
  1399. X                yy_current_state = yy_get_previous_state();
  1400. X
  1401. X                yy_cp = yy_c_buf_p;
  1402. X                yy_bp = yytext_ptr + YY_MORE_ADJ;
  1403. X                goto yy_match;
  1404. X
  1405. X            case EOB_ACT_LAST_MATCH:
  1406. X                yy_c_buf_p =
  1407. X                &yy_current_buffer->yy_ch_buf[yy_n_chars];
  1408. X
  1409. X                yy_current_state = yy_get_previous_state();
  1410. X
  1411. X                yy_cp = yy_c_buf_p;
  1412. X                yy_bp = yytext_ptr + YY_MORE_ADJ;
  1413. X                goto yy_find_action;
  1414. X            }
  1415. X        break;
  1416. X        }
  1417. X
  1418. X    default:
  1419. X        YY_FATAL_ERROR(
  1420. X            "fatal flex scanner internal error--no action found" );
  1421. X    } /* end of action switch */
  1422. X        } /* end of scanning one token */
  1423. X    } /* end of yylex */
  1424. X
  1425. X
  1426. X/* yy_get_next_buffer - try to read in a new buffer
  1427. X *
  1428. X * Returns a code representing an action:
  1429. X *    EOB_ACT_LAST_MATCH -
  1430. X *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  1431. X *    EOB_ACT_END_OF_FILE - end of file
  1432. X */
  1433. X
  1434. Xstatic int yy_get_next_buffer()
  1435. X    {
  1436. X    register char *dest = yy_current_buffer->yy_ch_buf;
  1437. X    register char *source = yytext_ptr - 1; /* copy prev. char, too */
  1438. X    register int number_to_move, i;
  1439. X    int ret_val;
  1440. X
  1441. X    if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  1442. X        YY_FATAL_ERROR(
  1443. X        "fatal flex scanner internal error--end of buffer missed" );
  1444. X
  1445. X    if ( yy_current_buffer->yy_fill_buffer == 0 )
  1446. X        { /* Don't try to fill the buffer, so this is an EOF. */
  1447. X        if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  1448. X            {
  1449. X            /* We matched a singled characater, the EOB, so
  1450. X             * treat this as a final EOF.
  1451. X             */
  1452. X            return EOB_ACT_END_OF_FILE;
  1453. X            }
  1454. X
  1455. X        else
  1456. X            {
  1457. X            /* We matched some text prior to the EOB, first
  1458. X             * process it.
  1459. X             */
  1460. X            return EOB_ACT_LAST_MATCH;
  1461. X            }
  1462. X        }
  1463. X
  1464. X    /* Try to read more data. */
  1465. X
  1466. X    /* First move last chars to start of buffer. */
  1467. X    number_to_move = yy_c_buf_p - yytext_ptr;
  1468. X
  1469. X    for ( i = 0; i < number_to_move; ++i )
  1470. X        *(dest++) = *(source++);
  1471. X
  1472. X    if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  1473. X        /* don't do the read, it's not guaranteed to return an EOF,
  1474. X         * just force an EOF
  1475. X         */
  1476. X        yy_n_chars = 0;
  1477. X
  1478. X    else
  1479. X        {
  1480. X        int num_to_read =
  1481. X            yy_current_buffer->yy_buf_size - number_to_move - 1;
  1482. X
  1483. X        while ( num_to_read <= 0 )
  1484. X            { /* Not enough room in the buffer - grow it. */
  1485. X#ifdef YY_USES_REJECT
  1486. X            YY_FATAL_ERROR(
  1487. X"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  1488. X#else
  1489. X
  1490. X            /* just a shorter name for the current buffer */
  1491. X            YY_BUFFER_STATE b = yy_current_buffer;
  1492. X
  1493. X            int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf;
  1494. X
  1495. X            b->yy_buf_size *= 2;
  1496. X            b->yy_ch_buf = (char *)
  1497. X                yy_flex_realloc( (void *) b->yy_ch_buf,
  1498. X                         b->yy_buf_size );
  1499. X
  1500. X            if ( ! b->yy_ch_buf )
  1501. X                YY_FATAL_ERROR(
  1502. X                "fatal error - scanner input buffer overflow" );
  1503. X
  1504. X            yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  1505. X
  1506. X            num_to_read = yy_current_buffer->yy_buf_size -
  1507. X                        number_to_move - 1;
  1508. X#endif
  1509. X            }
  1510. X
  1511. X        if ( num_to_read > YY_READ_BUF_SIZE )
  1512. X            num_to_read = YY_READ_BUF_SIZE;
  1513. X
  1514. X        /* Read in more data. */
  1515. X        YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  1516. X            yy_n_chars, num_to_read );
  1517. X        }
  1518. X
  1519. X    if ( yy_n_chars == 0 )
  1520. X        {
  1521. X        if ( number_to_move - YY_MORE_ADJ == 1 )
  1522. X            {
  1523. X            ret_val = EOB_ACT_END_OF_FILE;
  1524. X            yyrestart( yyin );
  1525. X            }
  1526. X
  1527. X        else
  1528. X            {
  1529. X            ret_val = EOB_ACT_LAST_MATCH;
  1530. X            yy_current_buffer->yy_buffer_status =
  1531. X                YY_BUFFER_EOF_PENDING;
  1532. X            }
  1533. X        }
  1534. X
  1535. X    else
  1536. X        ret_val = EOB_ACT_CONTINUE_SCAN;
  1537. X
  1538. X    yy_n_chars += number_to_move;
  1539. X    yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  1540. X    yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  1541. X
  1542. X    /* yytext begins at the second character in yy_ch_buf; the first
  1543. X     * character is the one which preceded it before reading in the latest
  1544. X     * buffer; it needs to be kept around in case it's a newline, so
  1545. X     * yy_get_previous_state() will have with '^' rules active.
  1546. X     */
  1547. X
  1548. X    yytext_ptr = &yy_current_buffer->yy_ch_buf[1];
  1549. X
  1550. X    return ret_val;
  1551. X    }
  1552. X
  1553. X
  1554. X/* yy_get_previous_state - get the state just before the EOB char was reached */
  1555. X
  1556. Xstatic yy_state_type yy_get_previous_state()
  1557. X    {
  1558. X    register yy_state_type yy_current_state;
  1559. X    register char *yy_cp;
  1560. X
  1561. X    register char *yy_bp = yytext_ptr;
  1562. X
  1563. X    yy_current_state = yy_start;
  1564. X    if ( yy_bp[-1] == '\n' )
  1565. X        ++yy_current_state;
  1566. X
  1567. X    for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  1568. X        {
  1569. X        register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  1570. X        if ( yy_accept[yy_current_state] )
  1571. X            {
  1572. X            yy_last_accepting_state = yy_current_state;
  1573. X            yy_last_accepting_cpos = yy_cp;
  1574. X            }
  1575. X        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1576. X            {
  1577. X            yy_current_state = (int) yy_def[yy_current_state];
  1578. X            if ( yy_current_state >= 347 )
  1579. X                yy_c = yy_meta[(unsigned int) yy_c];
  1580. X            }
  1581. X        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1582. X        }
  1583. X
  1584. X    return yy_current_state;
  1585. X    }
  1586. X
  1587. X
  1588. X/* yy_try_NUL_trans - try to make a transition on the NUL character
  1589. X *
  1590. X * synopsis
  1591. X *    next_state = yy_try_NUL_trans( current_state );
  1592. X */
  1593. X
  1594. X#ifdef YY_USE_PROTOS
  1595. Xstatic yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  1596. X#else
  1597. Xstatic yy_state_type yy_try_NUL_trans( yy_current_state )
  1598. Xyy_state_type yy_current_state;
  1599. X#endif
  1600. X    {
  1601. X    register int yy_is_jam;
  1602. X    register char *yy_cp = yy_c_buf_p;
  1603. X
  1604. X    register YY_CHAR yy_c = 1;
  1605. X    if ( yy_accept[yy_current_state] )
  1606. X        {
  1607. X        yy_last_accepting_state = yy_current_state;
  1608. X        yy_last_accepting_cpos = yy_cp;
  1609. X        }
  1610. X    while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1611. X        {
  1612. X        yy_current_state = (int) yy_def[yy_current_state];
  1613. X        if ( yy_current_state >= 347 )
  1614. X            yy_c = yy_meta[(unsigned int) yy_c];
  1615. X        }
  1616. X    yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1617. X    yy_is_jam = (yy_current_state == 346);
  1618. X
  1619. X    return yy_is_jam ? 0 : yy_current_state;
  1620. X    }
  1621. X
  1622. X
  1623. X#ifdef YY_USE_PROTOS
  1624. Xstatic void yyunput( int c, register char *yy_bp )
  1625. X#else
  1626. Xstatic void yyunput( c, yy_bp )
  1627. Xint c;
  1628. Xregister char *yy_bp;
  1629. X#endif
  1630. X    {
  1631. X    register char *yy_cp = yy_c_buf_p;
  1632. X
  1633. X    /* undo effects of setting up yytext */
  1634. X    *yy_cp = yy_hold_char;
  1635. X
  1636. X    if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1637. X        { /* need to shift things up to make room */
  1638. X        /* +2 for EOB chars. */
  1639. X        register int number_to_move = yy_n_chars + 2;
  1640. X        register char *dest = &yy_current_buffer->yy_ch_buf[
  1641. X                    yy_current_buffer->yy_buf_size + 2];
  1642. X        register char *source =
  1643. X                &yy_current_buffer->yy_ch_buf[number_to_move];
  1644. X
  1645. X        while ( source > yy_current_buffer->yy_ch_buf )
  1646. X            *--dest = *--source;
  1647. X
  1648. X        yy_cp += dest - source;
  1649. X        yy_bp += dest - source;
  1650. X        yy_n_chars = yy_current_buffer->yy_buf_size;
  1651. X
  1652. X        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  1653. X            YY_FATAL_ERROR( "flex scanner push-back overflow" );
  1654. X        }
  1655. X
  1656. X    if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  1657. X        yy_cp[-2] = '\n';
  1658. X
  1659. X    *--yy_cp = (char) c;
  1660. X
  1661. X
  1662. X    /* Note: the formal parameter *must* be called "yy_bp" for this
  1663. X     * macro to now work correctly.
  1664. X     */
  1665. X    YY_DO_BEFORE_ACTION; /* set up yytext again */
  1666. X    }
  1667. X
  1668. X
  1669. X#ifdef __cplusplus
  1670. Xstatic int yyinput()
  1671. X#else
  1672. Xstatic int input()
  1673. X#endif
  1674. X    {
  1675. X    int c;
  1676. X
  1677. X    *yy_c_buf_p = yy_hold_char;
  1678. X
  1679. X    if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  1680. X        {
  1681. X        /* yy_c_buf_p now points to the character we want to return.
  1682. X         * If this occurs *before* the EOB characters, then it's a
  1683. X         * valid NUL; if not, then we've hit the end of the buffer.
  1684. X         */
  1685. X        if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1686. X            /* This was really a NUL. */
  1687. X            *yy_c_buf_p = '\0';
  1688. X
  1689. X        else
  1690. X            { /* need more input */
  1691. X            yytext_ptr = yy_c_buf_p;
  1692. X            ++yy_c_buf_p;
  1693. X
  1694. X            switch ( yy_get_next_buffer() )
  1695. X                {
  1696. X                case EOB_ACT_END_OF_FILE:
  1697. X                    {
  1698. X                    if ( yywrap() )
  1699. X                        {
  1700. X                        yy_c_buf_p =
  1701. X                        yytext_ptr + YY_MORE_ADJ;
  1702. X                        return EOF;
  1703. X                        }
  1704. X
  1705. X                    YY_NEW_FILE;
  1706. X#ifdef __cplusplus
  1707. X                    return yyinput();
  1708. X#else
  1709. X                    return input();
  1710. X#endif
  1711. X                    }
  1712. X
  1713. X                case EOB_ACT_CONTINUE_SCAN:
  1714. X                    yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  1715. X                    break;
  1716. X
  1717. X                case EOB_ACT_LAST_MATCH:
  1718. X#ifdef __cplusplus
  1719. X                    YY_FATAL_ERROR(
  1720. X                    "unexpected last match in yyinput()" );
  1721. X#else
  1722. X                    YY_FATAL_ERROR(
  1723. X                    "unexpected last match in input()" );
  1724. X#endif
  1725. X                }
  1726. X            }
  1727. X        }
  1728. X
  1729. X    c = *(unsigned char *) yy_c_buf_p;    /* cast for 8-bit char's */
  1730. X    *yy_c_buf_p = '\0';    /* preserve yytext */
  1731. X    yy_hold_char = *++yy_c_buf_p;
  1732. X
  1733. X    return c;
  1734. X    }
  1735. X
  1736. X
  1737. X#ifdef YY_USE_PROTOS
  1738. Xvoid yyrestart( FILE *input_file )
  1739. X#else
  1740. Xvoid yyrestart( input_file )
  1741. XFILE *input_file;
  1742. X#endif
  1743. X    {
  1744. X    if ( ! yy_current_buffer )
  1745. X        yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1746. X
  1747. X    yy_init_buffer( yy_current_buffer, input_file );
  1748. X    yy_load_buffer_state();
  1749. X    }
  1750. X
  1751. X
  1752. X#ifdef YY_USE_PROTOS
  1753. Xvoid yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  1754. X#else
  1755. Xvoid yy_switch_to_buffer( new_buffer )
  1756. XYY_BUFFER_STATE new_buffer;
  1757. X#endif
  1758. X    {
  1759. X    if ( yy_current_buffer == new_buffer )
  1760. X        return;
  1761. X
  1762. X    if ( yy_current_buffer )
  1763. X        {
  1764. X        /* Flush out information for old buffer. */
  1765. X        *yy_c_buf_p = yy_hold_char;
  1766. X        yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  1767. X        yy_current_buffer->yy_n_chars = yy_n_chars;
  1768. X        }
  1769. X
  1770. X    yy_current_buffer = new_buffer;
  1771. X    yy_load_buffer_state();
  1772. X
  1773. X    /* We don't actually know whether we did this switch during
  1774. X     * EOF (yywrap()) processing, but the only time this flag
  1775. X     * is looked at is after yywrap() is called, so it's safe
  1776. X     * to go ahead and always set it.
  1777. X     */
  1778. X    yy_did_buffer_switch_on_eof = 1;
  1779. X    }
  1780. X
  1781. X
  1782. X#ifdef YY_USE_PROTOS
  1783. Xvoid yy_load_buffer_state( void )
  1784. X#else
  1785. Xvoid yy_load_buffer_state()
  1786. X#endif
  1787. X    {
  1788. X    yy_n_chars = yy_current_buffer->yy_n_chars;
  1789. X    yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  1790. X    yyin = yy_current_buffer->yy_input_file;
  1791. X    yy_hold_char = *yy_c_buf_p;
  1792. X    }
  1793. X
  1794. X
  1795. X#ifdef YY_USE_PROTOS
  1796. XYY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  1797. X#else
  1798. XYY_BUFFER_STATE yy_create_buffer( file, size )
  1799. XFILE *file;
  1800. Xint size;
  1801. X#endif
  1802. X    {
  1803. X    YY_BUFFER_STATE b;
  1804. X
  1805. X    b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  1806. X
  1807. X    if ( ! b )
  1808. X        YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1809. X
  1810. X    b->yy_buf_size = size;
  1811. X
  1812. X    /* yy_ch_buf has to be 2 characters longer than the size given because
  1813. X     * we need to put in 2 end-of-buffer characters.
  1814. X     */
  1815. X    b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  1816. X
  1817. X    if ( ! b->yy_ch_buf )
  1818. X        YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  1819. X
  1820. X    yy_init_buffer( b, file );
  1821. X
  1822. X    return b;
  1823. X    }
  1824. X
  1825. X
  1826. X#ifdef YY_USE_PROTOS
  1827. Xvoid yy_delete_buffer( YY_BUFFER_STATE b )
  1828. X#else
  1829. Xvoid yy_delete_buffer( b )
  1830. XYY_BUFFER_STATE b;
  1831. X#endif
  1832. X    {
  1833. X    if ( b == yy_current_buffer )
  1834. X        yy_current_buffer = (YY_BUFFER_STATE) 0;
  1835. X
  1836. X    yy_flex_free( (void *) b->yy_ch_buf );
  1837. X    yy_flex_free( (void *) b );
  1838. X    }
  1839. X
  1840. X
  1841. X#ifdef YY_USE_PROTOS
  1842. Xvoid yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  1843. X#else
  1844. Xvoid yy_init_buffer( b, file )
  1845. XYY_BUFFER_STATE b;
  1846. XFILE *file;
  1847. X#endif
  1848. X    {
  1849. X    b->yy_input_file = file;
  1850. X
  1851. X    /* We put in the '\n' and start reading from [1] so that an
  1852. X     * initial match-at-newline will be true.
  1853. X     */
  1854. X
  1855. X    b->yy_ch_buf[0] = '\n';
  1856. X    b->yy_n_chars = 1;
  1857. X
  1858. X    /* We always need two end-of-buffer characters.  The first causes
  1859. X     * a transition to the end-of-buffer state.  The second causes
  1860. X     * a jam in that state.
  1861. X     */
  1862. X    b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  1863. X    b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  1864. X
  1865. X    b->yy_buf_pos = &b->yy_ch_buf[1];
  1866. X
  1867. X    b->yy_is_interactive = file ? isatty( fileno(file) ) : 0;
  1868. X
  1869. X    b->yy_fill_buffer = 1;
  1870. X
  1871. X    b->yy_buffer_status = YY_BUFFER_NEW;
  1872. X    }
  1873. X
  1874. X
  1875. X#ifdef YY_USE_PROTOS
  1876. Xstatic void yy_push_state( int new_state )
  1877. X#else
  1878. Xstatic void yy_push_state( new_state )
  1879. Xint new_state;
  1880. X#endif
  1881. X    {
  1882. X    if ( yy_start_stack_ptr >= yy_start_stack_depth )
  1883. X        {
  1884. X        int new_size;
  1885. X
  1886. X        yy_start_stack_depth += YY_START_STACK_INCR;
  1887. X        new_size = yy_start_stack_depth * sizeof( int );
  1888. X
  1889. X        if ( ! yy_start_stack )
  1890. X            yy_start_stack = (int *) yy_flex_alloc( new_size );
  1891. X
  1892. X        else
  1893. X            yy_start_stack = (int *) yy_flex_realloc(
  1894. X                    (void *) yy_start_stack, new_size );
  1895. X
  1896. X        if ( ! yy_start_stack )
  1897. X            YY_FATAL_ERROR(
  1898. X            "out of memory expanding start-condition stack" );
  1899. X        }
  1900. X
  1901. X    yy_start_stack[yy_start_stack_ptr++] = YY_START;
  1902. X
  1903. X    BEGIN(new_state);
  1904. X    }
  1905. X
  1906. X
  1907. Xstatic void yy_pop_state()
  1908. X    {
  1909. X    if ( --yy_start_stack_ptr < 0 )
  1910. X        YY_FATAL_ERROR( "start-condition stack underflow" );
  1911. X
  1912. X    BEGIN(yy_start_stack[yy_start_stack_ptr]);
  1913. X    }
  1914. X
  1915. X
  1916. Xstatic int yy_top_state()
  1917. X    {
  1918. X    return yy_start_stack[yy_start_stack_ptr - 1];
  1919. X    }
  1920. X
  1921. X
  1922. X#ifdef YY_USE_PROTOS
  1923. Xstatic void yy_fatal_error( const char msg[] )
  1924. X#else
  1925. Xstatic void yy_fatal_error( msg )
  1926. Xchar msg[];
  1927. X#endif
  1928. X    {
  1929. X    (void) fprintf( stderr, "%s\n", msg );
  1930. X    exit( 1 );
  1931. X    }
  1932. X
  1933. X
  1934. X
  1935. X/* Redefine yyless() so it works in section 3 code. */
  1936. X
  1937. X#undef yyless
  1938. X#define yyless(n) \
  1939. X    do \
  1940. X        { \
  1941. X        /* Undo effects of setting up yytext. */ \
  1942. X        yytext[yyleng] = yy_hold_char; \
  1943. X        yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  1944. X        yy_hold_char = *yy_c_buf_p; \
  1945. X        *yy_c_buf_p = '\0'; \
  1946. X        yyleng = n; \
  1947. X        } \
  1948. X    while ( 0 )
  1949. X
  1950. X
  1951. X/* Internal utility routines. */
  1952. X
  1953. X#ifndef yytext_ptr
  1954. X#ifdef YY_USE_PROTOS
  1955. Xstatic void yy_flex_strncpy( char *s1, const char *s2, int n )
  1956. X#else
  1957. Xstatic void yy_flex_strncpy( s1, s2, n )
  1958. Xchar *s1;
  1959. Xconst char *s2;
  1960. Xint n;
  1961. X#endif
  1962. X    {
  1963. X    register int i;
  1964. X    for ( i = 0; i < n; ++i )
  1965. X        s1[i] = s2[i];
  1966. X    }
  1967. X#endif
  1968. X
  1969. X
  1970. X#ifdef YY_USE_PROTOS
  1971. Xstatic void *yy_flex_alloc( unsigned int size )
  1972. X#else
  1973. Xstatic void *yy_flex_alloc( size )
  1974. Xunsigned int size;
  1975. X#endif
  1976. X    {
  1977. X    return (void *) malloc( size );
  1978. X    }
  1979. X
  1980. X#ifdef YY_USE_PROTOS
  1981. Xstatic void *yy_flex_realloc( void *ptr, unsigned int size )
  1982. X#else
  1983. Xstatic void *yy_flex_realloc( ptr, size )
  1984. Xvoid *ptr;
  1985. Xunsigned int size;
  1986. X#endif
  1987. X    {
  1988. X    return (void *) realloc( ptr, size );
  1989. X    }
  1990. X
  1991. X#ifdef YY_USE_PROTOS
  1992. Xstatic void yy_flex_free( void *ptr )
  1993. X#else
  1994. Xstatic void yy_flex_free( ptr )
  1995. Xvoid *ptr;
  1996. X#endif
  1997. X    {
  1998. X    free( ptr );
  1999. X    }
  2000. X# line 191 "src/ansic2latex.l"
  2001. X
  2002. X
  2003. X#include "main.c"
  2004. END_OF_FILE
  2005.   if test 54213 -ne `wc -c <'src/ansic2latex.c'`; then
  2006.     echo shar: \"'src/ansic2latex.c'\" unpacked with wrong size!
  2007.   fi
  2008.   # end of 'src/ansic2latex.c'
  2009. fi
  2010. echo shar: End of archive 2 \(of 8\).
  2011. cp /dev/null ark2isdone
  2012. MISSING=""
  2013. for I in 1 2 3 4 5 6 7 8 ; do
  2014.     if test ! -f ark${I}isdone ; then
  2015.     MISSING="${MISSING} ${I}"
  2016.     fi
  2017. done
  2018. if test "${MISSING}" = "" ; then
  2019.     echo You have unpacked all 8 archives.
  2020.     rm -f ark[1-9]isdone
  2021. else
  2022.     echo You still must unpack the following archives:
  2023.     echo "        " ${MISSING}
  2024. fi
  2025. exit 0
  2026. exit 0 # Just in case...
  2027.