home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume22 / m2latex / part02 < prev    next >
Text File  |  1991-08-29  |  56KB  |  1,665 lines

  1. Newsgroups: comp.sources.misc
  2. From: Joerg Heitkoetter <heitkoet@gorbi.informatik.uni-dortmund.de>
  3. Subject:  v22i080:  m2latex - Generate LaTex source from Pascal or Modula-2, Part02/03
  4. Message-ID: <1991Aug30.024524.1196@sparky.IMD.Sterling.COM>
  5. X-Md4-Signature: 5ca845014a6af4adc80d4df17d81ced7
  6. Date: Fri, 30 Aug 1991 02:45:24 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Joerg Heitkoetter <heitkoet@gorbi.informatik.uni-dortmund.de>
  10. Posting-number: Volume 22, Issue 80
  11. Archive-name: m2latex/part02
  12. Environment: UNIX, LaTex, Flex
  13.  
  14. ---- Cut Here and feed the following to sh ----
  15. # this is Part.02 (part 2 of a multipart archive)
  16. # do not concatenate these parts, unpack them in order with /bin/sh
  17. # file m2latex.1 continued
  18. #
  19. if test ! -r _shar_seq_.tmp; then
  20.     echo 'Please unpack part 1 first!'
  21.     exit 1
  22. fi
  23. (read Scheck
  24.  if test "$Scheck" != 2; then
  25.     echo Please unpack part "$Scheck" next!
  26.     exit 1
  27.  else
  28.     exit 0
  29.  fi
  30. ) < _shar_seq_.tmp || exit 1
  31. if test ! -f _shar_wnt_.tmp; then
  32.     echo 'x - still skipping m2latex.1'
  33. else
  34. echo 'x - continuing file m2latex.1'
  35. sed 's/^X//' << 'SHAR_EOF' >> 'm2latex.1' &&
  36. to by the value of this flag. If the {-p,+pipe} option is given, the
  37. output is written to
  38. .I stdout.
  39. (It is an error to specify both options
  40. together.) If none of these options but an input filename is given, the
  41. output is written to a file who's name is the last component of the
  42. input filename with the added suffix '.tex'.
  43. X
  44. .SH OPTIONS
  45. .I m2latex
  46. recognizes the following options:
  47. .TP
  48. .B {-c,+complete-file}
  49. The output is enveloped in
  50. commands which produce a complete
  51. .I LaTeX
  52. source.
  53. .TP
  54. .B {-h,+header}
  55. Each page of output has a header giving the input file name.
  56. This option implies the
  57. {-c,+complete-file} option.
  58. .TP
  59. .B {-i,+indentation} length
  60. Gives the amount of indentation for each leading blank (tabs are
  61. converted to blanks). Default is `0.5em'.
  62. .TP
  63. .B {-n,+no-alignment}
  64. Comments belonging to statements are aligned to the right paper side
  65. by default. You can turn off this behaviour using this switch.
  66. .TP
  67. .B {-o,+output} \fIfile\fR
  68. The output is written in the file pointed to by \fIfile\fR.
  69. .TP
  70. .B {-s,+font-size} \fIsize\fR
  71. The LaTeX source is set in \fIsize\fRpt. Default is `10'.
  72. .TP
  73. .B {-p,+pipe}
  74. The output is written to stdout.
  75. .TP
  76. .B {-C,+comment-font} \fIfont\fR
  77. The comments are set in the given font. Default is `it'.
  78. .TP
  79. .B {-F,+function-font} \fIfont\fR
  80. The standard functions are set in the given font. Default is `bf'.
  81. .TP
  82. .B {-H,+header-font} \fIfont\fR
  83. The headers are set in the given font. Default is `sl'.
  84. .TP
  85. .B {-K,+keyword-font} \fIfont\fR
  86. The keywords are set in the given font. Default is `bf'.
  87. .TP
  88. .B {-P,+pascal} \fIfont\fR
  89. recognize
  90. .B Pascal
  91. keywords, only. Keywords must be written in uppercase letters!
  92. .TP
  93. .B {-S,+string-font} \fIfont\fR
  94. The string and character constants are set in the given font. Default is `tt'.
  95. .TP
  96. .B {-T,+tabstop} \fIwidth\fR
  97. The width of tabs is \fIwidth\fR. Default is `8'.
  98. .TP
  99. .B {-V,+version}
  100. Prints the version number on
  101. .I stderr.
  102. X
  103. .SH OPTION SUMMARY
  104. .TP
  105. To give no option at all is the same as to give the options
  106. -i 0.5em -s 10 -C it -F bf -H sl -K bf -S tt -T 8
  107. X
  108. .SH "SEE ALSO"
  109. .LP
  110. c++2latex(1), latex(1).
  111. X
  112. .SH DIAGNOSTICS
  113. .TP
  114. .I Can't use {-p,+pipe} and {-o,+output} together.
  115. At most one of this options may be given.
  116. .LP
  117. .TP
  118. .I Can't open `<file>' for reading
  119. The program failed to open <file> for reading.
  120. .LP
  121. .TP
  122. .I Can't open `<file>' for writing
  123. The program failed to open <file> for writing. All output is written
  124. in the current directory if not explicitly changed by {-o,+output}.
  125. .LP
  126. .TP
  127. .I Virtual memory exhausted
  128. The program failed to allocate storage. As this is only done for the
  129. construction of filenames, this error will normally indicate a
  130. program error.
  131. X
  132. .SH AUTHOR
  133. Copyright 
  134. .if t \(co 
  135. .if n (C)
  136. 1991 by
  137. .if n Joerg Heitkoetter,
  138. .if t J\*org Heitk\*otter,
  139. Systems Analysis Group, University of Dortmund, Germany.
  140. .nf
  141. Send bugs, comments, etc., to (heitkoet@gorbi.informatik.uni-dortmund.de).
  142. .fi
  143. X
  144. .SH CREDITS
  145. .LP
  146. Thanks to Norbert Kiesel for his C++2LaTeX converter, showing me how
  147. to flex(1) something like this.
  148. X
  149. .SH AVAILABILITY
  150. .LP
  151. This program is under GNU General Public License. Refer to the LICENSE file
  152. accompanying this software for a lengthy, boring, but absolutely complete
  153. description.
  154. X
  155. .SH FINAL NOTE
  156. .LP
  157. If you want to use
  158. .I m2latex
  159. as a
  160. .B Pascal
  161. pretty printer only, simply install it as a (soft) link to ``p2latex''.
  162. The
  163. .B Modula-2
  164. mode is switched on, when
  165. .I m2latex
  166. finds the letter ``m'' in it's name during execution.
  167. SHAR_EOF
  168. echo 'File m2latex.1 is complete' &&
  169. chmod 0640 m2latex.1 ||
  170. echo 'restore of m2latex.1 failed'
  171. Wc_c="`wc -c < 'm2latex.1'`"
  172. test 4910 -eq "$Wc_c" ||
  173.     echo 'm2latex.1: original size 4910, current size' "$Wc_c"
  174. rm -f _shar_wnt_.tmp
  175. fi
  176. # ============= m2latex.c ==============
  177. if test -f 'm2latex.c' -a X"$1" != X"-c"; then
  178.     echo 'x - skipping m2latex.c (File already exists)'
  179.     rm -f _shar_wnt_.tmp
  180. else
  181. > _shar_wnt_.tmp
  182. echo 'x - extracting m2latex.c (Text)'
  183. sed 's/^X//' << 'SHAR_EOF' > 'm2latex.c' &&
  184. /* A lexical scanner generated by flex */
  185. X
  186. /* scanner skeleton version:
  187. X * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp $
  188. X */
  189. X
  190. #define FLEX_SCANNER
  191. X
  192. #include <stdio.h>
  193. X
  194. X
  195. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  196. #ifdef c_plusplus
  197. #ifndef __cplusplus
  198. #define __cplusplus
  199. #endif
  200. #endif
  201. X
  202. X
  203. #ifdef __cplusplus
  204. X
  205. #include <stdlib.h>
  206. #include <osfcn.h>
  207. X
  208. /* use prototypes in function declarations */
  209. #define YY_USE_PROTOS
  210. X
  211. /* the "const" storage-class-modifier is valid */
  212. #define YY_USE_CONST
  213. X
  214. #else    /* ! __cplusplus */
  215. X
  216. #ifdef __STDC__
  217. X
  218. #ifdef __GNUC__
  219. #include <stddef.h>
  220. void *malloc( size_t );
  221. void free( void* );
  222. #else
  223. #include <stdlib.h>
  224. #endif    /* __GNUC__ */
  225. X
  226. #define YY_USE_PROTOS
  227. #define YY_USE_CONST
  228. X
  229. #endif    /* __STDC__ */
  230. #endif    /* ! __cplusplus */
  231. X
  232. X
  233. #ifdef __TURBOC__
  234. #define YY_USE_CONST
  235. #endif
  236. X
  237. X
  238. #ifndef YY_USE_CONST
  239. #define const
  240. #endif
  241. X
  242. X
  243. #ifdef YY_USE_PROTOS
  244. #define YY_PROTO(proto) proto
  245. #else
  246. #define YY_PROTO(proto) ()
  247. /* we can't get here if it's an ANSI C compiler, or a C++ compiler,
  248. X * so it's got to be a K&R compiler, and therefore there's no standard
  249. X * place from which to include these definitions
  250. X */
  251. char *malloc();
  252. int free();
  253. int read();
  254. #endif
  255. X
  256. X
  257. /* amount of stuff to slurp up with each read */
  258. #ifndef YY_READ_BUF_SIZE
  259. #define YY_READ_BUF_SIZE 8192
  260. #endif
  261. X
  262. /* returned upon end-of-file */
  263. #define YY_END_TOK 0
  264. X
  265. /* copy whatever the last rule matched to the standard output */
  266. X
  267. /* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
  268. /* this used to be an fputs(), but since the string might contain NUL's,
  269. X * we now use fwrite()
  270. X */
  271. #define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
  272. X
  273. /* gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  274. X * is returned in "result".
  275. X */
  276. #define YY_INPUT(buf,result,max_size) \
  277. X    if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
  278. X        YY_FATAL_ERROR( "read() in flex scanner failed" );
  279. #define YY_NULL 0
  280. X
  281. /* no semi-colon after return; correct usage is to write "yyterminate();" -
  282. X * we don't want an extra ';' after the "return" because that will cause
  283. X * some compilers to complain about unreachable statements.
  284. X */
  285. #define yyterminate() return ( YY_NULL )
  286. X
  287. /* report a fatal error */
  288. X
  289. /* The funky do-while is used to turn this macro definition into
  290. X * a single C statement (which needs a semi-colon terminator).
  291. X * This avoids problems with code like:
  292. X *
  293. X *     if ( something_happens )
  294. X *        YY_FATAL_ERROR( "oops, the something happened" );
  295. X *    else
  296. X *        everything_okay();
  297. X *
  298. X * Prior to using the do-while the compiler would get upset at the
  299. X * "else" because it interpreted the "if" statement as being all
  300. X * done when it reached the ';' after the YY_FATAL_ERROR() call.
  301. X */
  302. X
  303. #define YY_FATAL_ERROR(msg) \
  304. X    do \
  305. X        { \
  306. X        (void) fputs( msg, stderr ); \
  307. X        (void) putc( '\n', stderr ); \
  308. X        exit( 1 ); \
  309. X        } \
  310. X    while ( 0 )
  311. X
  312. /* default yywrap function - always treat EOF as an EOF */
  313. #define yywrap() 1
  314. X
  315. /* enter a start condition.  This macro really ought to take a parameter,
  316. X * but we do it the disgusting crufty way forced on us by the ()-less
  317. X * definition of BEGIN
  318. X */
  319. #define BEGIN yy_start = 1 + 2 *
  320. X
  321. /* action number for EOF rule of a given start state */
  322. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  323. X
  324. /* special action meaning "start processing a new file" */
  325. #define YY_NEW_FILE \
  326. X    do \
  327. X        { \
  328. X        yy_init_buffer( yy_current_buffer, yyin ); \
  329. X        yy_load_buffer_state(); \
  330. X        } \
  331. X    while ( 0 )
  332. X
  333. /* default declaration of generated scanner - a define so the user can
  334. X * easily add parameters
  335. X */
  336. #define YY_DECL int yylex YY_PROTO(( void )) 
  337. X
  338. /* code executed at the end of each rule */
  339. #define YY_BREAK break;
  340. X
  341. #define YY_END_OF_BUFFER_CHAR 0
  342. X
  343. #ifndef YY_BUF_SIZE
  344. #define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
  345. #endif
  346. X
  347. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  348. X
  349. #define YY_CHAR char
  350. # line 1 "m2latex.l"
  351. #define INITIAL 0
  352. /*
  353. X *  This is a flex input file but should be edited in -*-C-*- mode
  354. X *
  355. X *  Modula2LaTeX 1.0:
  356. X *  Produce prettyprinted LaTeX files from Modula-2 or Pascal sources.
  357. X *
  358. X *  Copyright (C) 1991    Joerg Heitkoetter
  359. X *  Systems Analysis Group, University of Dortmund
  360. X *  (heitkoet@gorbi.informatik.uni-dortmund.de).
  361. X *
  362. X *  This program is free software; you can redistribute it and/or modify
  363. X *  it under the terms of the GNU General Public License as published by
  364. X *  the Free Software Foundation; either version 1, or (at your option)
  365. X *  any later version.
  366. X *
  367. X *  This program is distributed in the hope that it will be useful,
  368. X *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  369. X *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  370. X *  GNU General Public License for more details.
  371. X *
  372. X *  You should have received a copy of the GNU General Public License
  373. X *  along with this program; if not, write to the Free Software
  374. X *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  375. X *
  376. X */
  377. #define STRING 1
  378. #define COMMENT 2
  379. #define MODULA2 3
  380. # line 31 "m2latex.l"
  381. #define KEY        printf ("{\\%s %s}", keyword_font, yytext)
  382. #define STDFUN        unput("("); printf ("{\\%s %s} (", stdfun_font, yytext)
  383. #define SYM(x)        printf ("$\\%s$", x)
  384. #define OUT(x)        printf ("%s", x)
  385. #define CTAB        printf ("\\hspace*{%d\\indentation}", tabtocomment)
  386. #define FONT(x)        printf ("{\\%s ",x);
  387. #define SUB(x)        substitute(x)
  388. #define IND        indent(yytext)
  389. #define INIT        BEGIN (modula_mode ? MODULA2 : INITIAL);
  390. #define REPARSE        yyless (0)
  391. X
  392. #include <stdio.h>
  393. X
  394. #define ON    (1)
  395. #define OFF    (0)
  396. X
  397. int modula_mode        = ON;
  398. X
  399. int complete_file    = OFF;
  400. int header        = OFF;
  401. int tabtotab        = 8;
  402. int piped        = OFF;
  403. X
  404. int aligntoright    = ON;        /* align comments to the right  -joke */
  405. int tabtocomment    = 4;        /* distance between statement and corresponding comment  -joke */
  406. X
  407. char *indentation    = "0.5em";
  408. X
  409. char* font_size        = "10";
  410. char* comment_font    = "it";
  411. char* keyword_font    = "bf";
  412. char* header_font    = "sl";
  413. char* stdfun_font    = "bf";
  414. char* string_font    = "tt";
  415. X
  416. #ifdef __STDC__
  417. void substitute(const char*);
  418. void indent(const char*);
  419. void newpage(int);
  420. void usage(const char*);
  421. #else
  422. void substitute();
  423. void indent();
  424. void newpage();
  425. void usage();
  426. #endif
  427. # line 79 "m2latex.l"
  428. X
  429. /* done after the current pattern has been matched and before the
  430. X * corresponding action - sets up yytext
  431. X */
  432. #define YY_DO_BEFORE_ACTION \
  433. X    yytext = yy_bp; \
  434. X    yyleng = yy_cp - yy_bp; \
  435. X    yy_hold_char = *yy_cp; \
  436. X    *yy_cp = '\0'; \
  437. X    yy_c_buf_p = yy_cp;
  438. X
  439. #define EOB_ACT_CONTINUE_SCAN 0
  440. #define EOB_ACT_END_OF_FILE 1
  441. #define EOB_ACT_LAST_MATCH 2
  442. X
  443. /* return all but the first 'n' matched characters back to the input stream */
  444. #define yyless(n) \
  445. X    do \
  446. X        { \
  447. X        /* undo effects of setting up yytext */ \
  448. X        *yy_cp = yy_hold_char; \
  449. X        yy_c_buf_p = yy_cp = yy_bp + n; \
  450. X        YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  451. X        } \
  452. X    while ( 0 )
  453. X
  454. #define unput(c) yyunput( c, yytext )
  455. X
  456. X
  457. struct yy_buffer_state
  458. X    {
  459. X    FILE *yy_input_file;
  460. X
  461. X    YY_CHAR *yy_ch_buf;        /* input buffer */
  462. X    YY_CHAR *yy_buf_pos;    /* current position in input buffer */
  463. X
  464. X    /* size of input buffer in bytes, not including room for EOB characters*/
  465. X    int yy_buf_size;    
  466. X
  467. X    /* number of characters read into yy_ch_buf, not including EOB characters */
  468. X    int yy_n_chars;
  469. X
  470. X    int yy_eof_status;        /* whether we've seen an EOF on this buffer */
  471. #define EOF_NOT_SEEN 0
  472. X    /* "pending" happens when the EOF has been seen but there's still
  473. X     * some text process
  474. X     */
  475. #define EOF_PENDING 1
  476. #define EOF_DONE 2
  477. X    };
  478. X
  479. static YY_BUFFER_STATE yy_current_buffer;
  480. X
  481. /* we provide macros for accessing buffer states in case in the
  482. X * future we want to put the buffer states in a more general
  483. X * "scanner state"
  484. X */
  485. #define YY_CURRENT_BUFFER yy_current_buffer
  486. X
  487. X
  488. /* yy_hold_char holds the character lost when yytext is formed */
  489. static YY_CHAR yy_hold_char;
  490. X
  491. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  492. X
  493. X
  494. X
  495. #ifndef YY_USER_ACTION
  496. #define YY_USER_ACTION
  497. #endif
  498. X
  499. #ifndef YY_USER_INIT
  500. #define YY_USER_INIT
  501. #endif
  502. X
  503. extern YY_CHAR *yytext;
  504. extern int yyleng;
  505. extern FILE *yyin, *yyout;
  506. X
  507. YY_CHAR *yytext;
  508. int yyleng;
  509. X
  510. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  511. X
  512. #define YY_END_OF_BUFFER 136
  513. typedef int yy_state_type;
  514. static const short int yy_accept[591] =
  515. X    {   0,
  516. X        0,    0,    0,    0,    0,    0,    0,    0,  136,  135,
  517. X      132,  134,  133,  112,  114,  100,  101,   81,   97,   93,
  518. X       96,   94,   98,  123,  123,   91,   95,   86,   92,   87,
  519. X      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
  520. X      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
  521. X      102,  135,  103,   82,   88,   83,   89,  131,  100,  118,
  522. X      116,  113,  115,  117,  111,  110,  109,  111,   84,  104,
  523. X       90,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  524. X      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  525. X      104,  104,   85,  132,  133,    0,    0,  107,  119,  120,
  526. X
  527. X      123,  123,    0,  123,    0,   99,   78,   80,   79,  105,
  528. X      105,  105,  105,  105,  105,  105,  105,  105,   29,  105,
  529. X      105,  105,  105,  105,  105,  105,   37,   39,  112,  114,
  530. X      105,  105,  105,  105,  105,   41,   42,  105,  105,  105,
  531. X      105,  105,  105,  105,  105,   50,  105,  105,  105,  105,
  532. X      105,  105,  130,  131,    0,  106,  117,  110,  108,  104,
  533. X      104,  104,  104,  104,  104,  104,  104,   66,  104,  104,
  534. X      104,  104,  104,   29,  104,  104,  104,  104,  104,  104,
  535. X      104,  104,  104,   37,  104,   39,  104,  104,  104,  104,
  536. X      104,  104,  104,  104,   41,   42,  104,  104,  104,  104,
  537. X
  538. X      104,  104,  104,  104,  104,  104,  104,   50,  104,  104,
  539. X      104,  104,  104,  104,  124,    0,  124,    0,    0,    0,
  540. X      119,  119,    0,  120,  123,    0,  121,  129,   24,  105,
  541. X      105,  105,  105,  105,  105,  105,  105,  105,  105,  105,
  542. X       32,  105,   34,  105,  105,  105,  105,  105,  105,   60,
  543. X       40,  105,  105,  105,  105,  105,  105,  105,  105,  105,
  544. X       47,  105,  105,  105,  105,  105,  105,   53,  105,  105,
  545. X      106,  104,   24,  104,  104,  104,  104,  104,  104,  104,
  546. X      104,  104,  104,  104,  104,  104,  104,  104,  104,   32,
  547. X      104,  104,  104,  104,   34,  104,  104,  104,  104,  104,
  548. X
  549. X      104,  104,  104,  104,  104,  104,  104,   60,   40,  104,
  550. X      104,  104,  104,  104,  104,  104,  104,  104,  104,  104,
  551. X      104,   47,  104,  104,  104,  104,  104,  104,  104,  104,
  552. X       53,  104,  104,  125,  126,    0,    0,    0,  121,  119,
  553. X        0,  122,  129,  105,  105,  105,   27,   57,    0,    1,
  554. X      105,  105,    0,    2,  105,   31,   33,   36,  105,   38,
  555. X      105,    0,    4,    0,    5,    0,    8,    0,    7,  105,
  556. X      105,  105,   58,  105,  105,  105,  105,  105,   49,  105,
  557. X       51,  105,  105,   55,    0,   12,  104,  104,  104,  104,
  558. X        0,   13,  104,   27,   57,  104,    0,   22,  104,  104,
  559. X
  560. X      104,   31,  104,  104,   33,  104,  104,  104,   36,  104,
  561. X       38,  104,  104,  104,    0,   23,  104,  104,   73,    0,
  562. X       19,    0,   18,  104,  104,  104,  104,   65,  104,   58,
  563. X      104,  104,  104,  104,  104,  104,  104,   49,  104,   51,
  564. X      104,    0,   21,  104,   55,    0,  127,    0,   25,   26,
  565. X      105,   28,  105,  105,  105,  105,  105,    0,    9,  105,
  566. X      105,  105,  105,  105,    0,    6,  105,   52,   54,   25,
  567. X       26,  104,  104,  104,   28,  104,  104,  104,   68,    0,
  568. X       14,  104,  104,  104,  104,    0,   16,  104,  104,    0,
  569. X       17,  104,  104,  104,  104,  104,  104,    0,   20,  104,
  570. X
  571. X      104,  104,  104,  104,  104,  104,   52,   54,  105,  105,
  572. X       30,  105,  105,   43,  105,   45,   46,    0,   10,   48,
  573. X        0,   11,   64,  104,  104,  104,  104,   30,   69,    0,
  574. X       15,  104,  104,  104,   72,  104,   74,   43,  104,  104,
  575. X      104,   45,   46,   76,  104,  104,   48,   59,  105,  105,
  576. X       56,  105,   59,  104,  104,  104,   70,  104,  104,   56,
  577. X       75,  104,  104,  104,  104,    0,    3,   35,  105,   62,
  578. X      104,   35,  104,  104,  104,  104,   61,   44,  104,  104,
  579. X       44,   77,   63,   67,  104,  104,  104,  104,   71,    0
  580. X    } ;
  581. X
  582. static const YY_CHAR yy_ec[128] =
  583. X    {   0,
  584. X        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  585. X        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
  586. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  587. X        1,    5,    6,    7,    8,    9,    6,   10,   11,   12,
  588. X       13,   14,   15,   16,   17,   18,   19,   20,   21,   21,
  589. X       21,   21,   21,   21,   21,   22,   22,   23,   24,   25,
  590. X       26,   27,   28,    6,   29,   30,   31,   32,   33,   34,
  591. X       35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
  592. X       45,   46,   47,   48,   49,   50,   51,   52,   53,   38,
  593. X       54,   55,   56,   57,   38,    6,   58,   58,   59,   59,
  594. X
  595. X       60,   61,   38,   38,   38,   38,   38,   62,   38,   63,
  596. X       38,   38,   38,   63,   38,   63,   64,   63,   38,   65,
  597. X       38,   38,   66,   67,   68,   69,    1
  598. X    } ;
  599. X
  600. static const YY_CHAR yy_meta[70] =
  601. X    {   0,
  602. X        1,    1,    1,    1,    2,    2,    2,    2,    3,    2,
  603. X        4,    2,    2,    2,    2,    2,    2,    2,    2,    5,
  604. X        5,    5,    2,    2,    2,    2,    2,    2,    5,    5,
  605. X        5,    5,    5,    5,    6,    6,    6,    6,    6,    6,
  606. X        6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
  607. X        6,    6,    6,    2,    2,    2,    2,    5,    5,    5,
  608. X        5,    6,    6,    6,    6,    2,    2,    2,    2
  609. X    } ;
  610. X
  611. static const short int yy_base[600] =
  612. X    {   0,
  613. X        0,   68,   68,   79,   86,   90,  104,  172, 1189, 1190,
  614. X       72, 1190, 1185, 1190, 1132, 1172, 1190, 1190, 1190, 1190,
  615. X     1190,   76, 1190,  167,  161, 1159, 1190,   75, 1190, 1158,
  616. X       30,  143,  161,  155,  151,  153,    0, 1154,  171,   76,
  617. X     1139,  175,  188,  149,  176,  191,  190, 1139, 1151,  178,
  618. X     1190, 1176, 1190, 1190, 1190, 1190, 1190,  233, 1164, 1190,
  619. X     1190, 1190, 1190,  239, 1190,  244, 1190, 1164, 1190,    0,
  620. X     1190,  221,  219,  228,  233,  208,  238, 1167,  245,  249,
  621. X      266,  256,  259,  271,  277,  246,  279,  280,  288,  252,
  622. X      250,  289, 1190,  299, 1190, 1164,  325, 1190,  317,  334,
  623. X
  624. X      342,  379,  327, 1190,    0, 1190, 1190, 1190, 1190,    0,
  625. X     1142, 1127, 1137, 1128, 1123,  281, 1127,  261, 1117, 1120,
  626. X     1134, 1128, 1118, 1120, 1120, 1121,    0, 1112, 1190, 1104,
  627. X     1126, 1106, 1116, 1107, 1122,    0, 1121, 1121,  297,  340,
  628. X     1102, 1102, 1103, 1117, 1114,    0, 1097, 1101, 1096, 1097,
  629. X     1105, 1093, 1190,  403, 1126, 1190,  313,  356, 1190,    0,
  630. X     1130,  260,  334,  324,  171,  350,  364, 1129,  367,  343,
  631. X      376,  400,  383,  202,  356,  378,  407,  384,  408,  412,
  632. X      411,  416,  413, 1128,  291,  414,  415,  417,  423,  420,
  633. X      426,  427,  428,  431, 1127,  438,  433,  437,  440,  450,
  634. X
  635. X      451,  441,  448,  457,  452,  462,  459, 1126,  463,  466,
  636. X      469,  475,  472,  476, 1190, 1123, 1122,  483,    0,  505,
  637. X     1190,  508,  516, 1190, 1190,  466,  485,  483,    0, 1103,
  638. X     1094, 1090, 1096, 1082,  506, 1080, 1082,  538, 1083, 1091,
  639. X        0, 1075,    0, 1081, 1090, 1072, 1086,  544,  549,    0,
  640. X        0,  550,  555, 1079, 1085, 1085, 1075, 1071, 1080, 1070,
  641. X        0, 1074, 1079, 1067, 1066, 1074, 1069,    0, 1065, 1068,
  642. X     1190,  569, 1094,  505,  482,  488,  504,  570,  507,  544,
  643. X      549,  571,  550,  582,  555,  554,  584,  557,  576, 1093,
  644. X      579,  556,  581,  591,  592,  593,  596,  594,  597,  598,
  645. X
  646. X      606,  603,  601,  635,  646,  647,  648, 1092, 1091,  659,
  647. X      660,  634,  612,  607,  654,  626,  658,  661,  666,  665,
  648. X      667, 1090,  669,  668,  670,  671,  674,  673,  675,  685,
  649. X     1089,  677,  672, 1190, 1190,  611, 1086,  608,  671, 1190,
  650. X      698,  701, 1190, 1043, 1053, 1061,    0,    0,  698, 1190,
  651. X     1045, 1049,  722, 1190, 1043,    0,    0,    0, 1042,    0,
  652. X     1054,  723, 1190,  724, 1190,  728, 1190,  736, 1190, 1055,
  653. X      737, 1054,    0, 1040, 1056, 1052, 1041,  741,    0, 1051,
  654. X        0, 1041, 1047,    0,  742, 1190,  679,  722,  728,  736,
  655. X      750, 1190,  741, 1070, 1069,  742,  754, 1190,  749,  751,
  656. X
  657. X      748, 1068,   69,  763, 1067,  754,  758,  761, 1066,  762,
  658. X     1065,  771,  768,  765,  777, 1190,  783,  772, 1064,  797,
  659. X     1190,  803, 1190,  777,  788,  775,  817,  794,  795,  826,
  660. X      778,  784,  803,  805,  807,  809,  831, 1063,  680, 1062,
  661. X      816,  840, 1190,  811, 1061, 1058, 1190, 1057,    0,    0,
  662. X     1038,    0, 1019, 1022, 1027, 1030, 1030,  845, 1190, 1029,
  663. X     1028, 1011,  856, 1023,  857, 1190,  858,    0,    0, 1044,
  664. X     1040,  825,  837,  830, 1018,  839,  832,  821, 1017,  869,
  665. X     1190,  844,  873,  845,  856,  882, 1190,  858,  868,  884,
  666. X     1190,  874,  879,  881,  882,  886,  888,  896, 1190,  891,
  667. X
  668. X      893,  894,  912,  895,  896,  925, 1015, 1014,  979,  987,
  669. X        0,  976,  972,    0,  964,    0,    0,  923, 1190,    0,
  670. X      937, 1190, 1001,  901,  900,  897,  911, 1000,  998,  945,
  671. X     1190,  910,  924,  929,  993,  902,  992,  991,  931,  937,
  672. X      942,  990,  989,  983,  944,  945,  698,    0,  953,  660,
  673. X        0,  649,  617,  950,  947,  959,  614,  951,  954,  608,
  674. X      605,  957,  961,  960,  963,  973, 1190,    0,  469,  492,
  675. X      965,  480,  967,  971,  973,  980,  372,    0,  972,  988,
  676. X      312,  310,  305,  166,  974,  979,  982,  986,   90, 1190,
  677. X     1028, 1034, 1039, 1041, 1045, 1049,   89,   80, 1052
  678. X
  679. X    } ;
  680. X
  681. static const short int yy_def[600] =
  682. X    {   0,
  683. X      590,    1,  591,  591,  592,  592,  590,    7,  590,  590,
  684. X      590,  590,  590,  590,  593,  590,  590,  590,  590,  590,
  685. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  686. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  687. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  688. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  689. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  595,
  690. X      590,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  691. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  692. X      596,  596,  590,  590,  590,  590,  590,  590,  590,  590,
  693. X
  694. X      590,  590,  590,  590,  597,  590,  590,  590,  590,  594,
  695. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  696. X      594,  594,  594,  594,  594,  594,  594,  594,  590,  593,
  697. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  698. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  699. X      594,  594,  590,  590,  590,  590,  590,  590,  590,  595,
  700. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  701. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  702. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  703. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  704. X
  705. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  706. X      596,  596,  596,  596,  590,  590,  590,  590,  598,  590,
  707. X      590,  590,  590,  590,  590,  590,  590,  597,  594,  594,
  708. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  709. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  710. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  711. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  712. X      590,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  713. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  714. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  715. X
  716. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  717. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  718. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  719. X      596,  596,  596,  590,  590,  590,  599,  590,  590,  590,
  720. X      590,  590,  590,  594,  594,  594,  594,  594,  590,  590,
  721. X      594,  594,  590,  590,  594,  594,  594,  594,  594,  594,
  722. X      594,  590,  590,  590,  590,  590,  590,  590,  590,  594,
  723. X      594,  594,  594,  594,  594,  594,  594,  594,  594,  594,
  724. X      594,  594,  594,  594,  590,  590,  596,  596,  596,  596,
  725. X      590,  590,  596,  596,  596,  596,  590,  590,  596,  596,
  726. X
  727. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  728. X      596,  596,  596,  596,  590,  590,  596,  596,  596,  590,
  729. X      590,  590,  590,  596,  596,  596,  596,  596,  596,  596,
  730. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  731. X      596,  590,  590,  596,  596,  590,  590,  590,  594,  594,
  732. X      594,  594,  594,  594,  594,  594,  594,  590,  590,  594,
  733. X      594,  594,  594,  594,  590,  590,  594,  594,  594,  596,
  734. X      596,  596,  596,  596,  596,  596,  596,  596,  596,  590,
  735. X      590,  596,  596,  596,  596,  590,  590,  596,  596,  590,
  736. X      590,  596,  596,  596,  596,  596,  596,  590,  590,  596,
  737. X
  738. X      596,  596,  596,  596,  596,  596,  596,  596,  594,  594,
  739. X      594,  594,  594,  594,  594,  594,  594,  590,  590,  594,
  740. X      590,  590,  596,  596,  596,  596,  596,  596,  596,  590,
  741. X      590,  596,  596,  596,  596,  596,  596,  596,  596,  596,
  742. X      596,  596,  596,  596,  596,  596,  596,  594,  594,  594,
  743. X      594,  594,  596,  596,  596,  596,  596,  596,  596,  596,
  744. X      596,  596,  596,  596,  596,  590,  590,  594,  594,  596,
  745. X      596,  596,  596,  596,  596,  596,  596,  594,  596,  596,
  746. X      596,  596,  596,  596,  596,  596,  596,  596,  596,    0,
  747. X      590,  590,  590,  590,  590,  590,  590,  590,  590
  748. X
  749. X    } ;
  750. X
  751. static const short int yy_nxt[1260] =
  752. X    {   0,
  753. X       10,   11,   12,   13,   11,   10,   14,   10,   10,   10,
  754. X       15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
  755. X       25,   25,   26,   27,   28,   29,   30,   10,   31,   32,
  756. X       33,   34,   35,   36,   37,   38,   39,   37,   37,   40,
  757. X       41,   42,   43,   44,   37,   45,   46,   47,   48,   49,
  758. X       50,   37,   37,   51,   52,   53,   54,   37,   37,   37,
  759. X       37,   37,   37,   37,   37,   55,   56,   57,   10,   58,
  760. X       61,  111,   58,   94,   62,  112,   94,  160,   63,   59,
  761. X       64,   61,  129,   64,  337,   62,  130,   66,   67,   63,
  762. X       66,   66,   67,  228,   66,   99,   99,   99,  160,   68,
  763. X
  764. X      107,  108,  479,   68,   10,   11,   12,   13,   11,   10,
  765. X       14,   69,   70,   71,   15,   16,   17,   18,   19,   20,
  766. X       21,   22,   23,   24,   25,   25,   26,   27,   28,   29,
  767. X       30,   10,   72,   73,   74,   75,   76,   77,   78,   79,
  768. X       80,   78,   78,   81,   82,   83,   84,   85,   86,   87,
  769. X       88,   89,   90,   91,   92,   78,   78,   51,   52,   53,
  770. X       54,   78,   78,   78,   78,   78,   78,   78,   78,   55,
  771. X       56,   57,   93,   58,  160,  113,   58,  138,  100,  160,
  772. X      102,  102,  102,   59,  100,  114,  101,  101,  102,  115,
  773. X      120,  118,  121,  103,  139,  123,  116,  119,  124,  103,
  774. X
  775. X      104,  125,  122,  117,  127,  275,  104,  132,  140,  104,
  776. X      160,  133,  128,  151,  152,  104,  160,  134,  141,  135,
  777. X      103,  136,  104,  142,  104,  145,  103,  160,  104,  160,
  778. X      104,  105,  146,  137,  154,  147,  160,  154,  143,  144,
  779. X      157,  160,  148,  157,  155,  158,  160,  175,  158,  176,
  780. X      162,  165,  288,  160,  160,  166,  169,  160,  160,  177,
  781. X      160,  167,  163,  170,  160,  172,  164,  160,  160,  173,
  782. X      171,  168,  129,  182,  160,  174,  130,  178,  212,  160,
  783. X      179,  183,  184,  180,  188,  160,  181,  160,  160,  185,
  784. X      186,  191,  189,  211,  200,  192,  160,  160,  190,  160,
  785. X
  786. X       94,  193,  194,   94,  195,  197,  272,  237,  187,  234,
  787. X      238,  201,  203,  160,  157,  204,  196,  157,  160,  198,
  788. X      160,  202,  199,  207,  213,  214,  235,  205,  206,  255,
  789. X      208,  216,  160,  209,  300,  217,   99,   99,   99,  256,
  790. X      210,  226,  160,  226,  218,  218,  227,  227,  227,  220,
  791. X      221,  160,  216,  222,  222,  222,  221,  158,  160,  100,
  792. X      158,  101,  101,  102,  160,  273,  223,  224,  257,  274,
  793. X      258,  281,  160,  224,  103,  160,  220,  221,  221,  216,
  794. X      160,  225,  216,  259,  160,  216,  160,  216,  282,  219,
  795. X      225,  160,  160,  223,  224,  224,  100,  276,  102,  102,
  796. X
  797. X      102,  103,  289,  225,  154,  225,  277,  154,  160,  290,
  798. X      278,  103,  279,  280,  155,  160,  160,  283,  104,  160,
  799. X      160,  160,  160,  160,  160,  160,  294,  104,  160,  286,
  800. X      284,  160,  287,  285,  160,  160,  160,  291,  103,  160,
  801. X      104,  160,  104,  292,  301,  160,  160,  299,  160,  160,
  802. X      293,  306,  297,  295,  296,  298,  160,  303,  160,  160,
  803. X      160,  302,  310,  312,  305,  160,  308,  160,  304,  311,
  804. X      160,  160,  314,  313,  160,  309,  307,  160,  316,  317,
  805. X      160,  318,  315,  160,  160,  227,  227,  227,  160,  321,
  806. X      160,  326,  325,  335,  319,  322,  160,  324,  320,  323,
  807. X
  808. X      160,  578,  336,  336,  227,  227,  227,  349,  332,  328,
  809. X      349,  327,  160,  160,  330,  160,  329,  350,  388,  338,
  810. X      331,  338,  343,  333,  339,  339,  339,  222,  222,  222,
  811. X      341,  343,  341,  387,  389,  342,  342,  342,  393,  353,
  812. X      103,  340,  353,  390,  343,  362,  343,  340,  362,  354,
  813. X      364,  366,  160,  364,  366,  363,  368,  160,  160,  368,
  814. X      365,  367,  160,  160,  160,  160,  369,  103,  340,  340,
  815. X      385,  391,  349,  385,  391,  349,  394,  160,  160,  160,
  816. X      386,  392,  350,  397,  160,  353,  397,  160,  353,  160,
  817. X      160,  399,  160,  398,  395,  354,  396,  400,  401,  160,
  818. X
  819. X      160,  160,  160,  405,  160,  160,  160,  415,  402,  160,
  820. X      415,  160,  403,  160,  160,  160,  160,  416,  404,  407,
  821. X      160,  335,  160,  406,  408,  160,  410,  339,  339,  339,
  822. X      446,  446,  412,  409,  160,  418,  420,  413,  427,  420,
  823. X      414,  411,  160,  160,  419,  417,  421,  422,  362,  364,
  824. X      422,  362,  364,  426,  160,  160,  160,  423,  363,  365,
  825. X      366,  368,  160,  366,  368,  429,  160,  160,  160,  160,
  826. X      367,  369,  425,  160,  160,  160,  160,  160,  160,  160,
  827. X      160,  160,  160,  160,  428,  160,  442,  160,  160,  442,
  828. X      339,  339,  339,  160,  569,  424,  443,  430,  432,  349,
  829. X
  830. X      437,  568,  349,  431,  436,  440,  160,  445,  434,  350,
  831. X      506,  441,  438,  433,  435,  439,  444,  342,  342,  342,
  832. X      342,  342,  342,  353,  362,  364,  353,  362,  364,  366,
  833. X      160,  470,  366,  354,  363,  365,  160,  368,  458,  367,
  834. X      368,  458,  465,  385,  160,  465,  385,  369,  459,  160,
  835. X      160,  391,  466,  386,  391,  397,  160,  160,  397,  160,
  836. X      472,  392,  160,  471,  480,  398,  160,  480,  473,  160,
  837. X      160,  160,  486,  160,  481,  486,  160,  474,  415,  160,
  838. X      160,  415,  487,  160,  490,  160,  160,  490,  416,  475,
  839. X      476,  160,  160,  477,  491,  478,  160,  484,  420,  482,
  840. X
  841. X      488,  420,  160,  160,  422,  483,  492,  422,  421,  485,
  842. X      489,  160,  501,  160,  423,  160,  493,  160,  458,  160,
  843. X      494,  458,  495,  500,  160,  160,  496,  498,  459,  160,
  844. X      498,  497,  465,  160,  160,  465,  503,  499,  160,  160,
  845. X      160,  442,  466,  508,  442,  160,  458,  160,  502,  458,
  846. X      505,  443,  160,  160,  504,  507,  459,  518,  465,  521,
  847. X      518,  465,  521,  528,  160,  524,  160,  519,  466,  522,
  848. X      480,  525,  523,  480,  530,  526,  160,  530,  527,  532,
  849. X      481,  160,  160,  486,  531,  490,  486,  160,  490,  160,
  850. X      160,  529,  533,  487,  160,  491,  160,  498,  534,  160,
  851. X
  852. X      498,  160,  160,  160,  160,  160,  536,  499,  160,  160,
  853. X      160,  537,  538,  518,  539,  535,  518,  540,  160,  160,
  854. X      160,  541,  542,  519,  518,  545,  521,  518,  554,  521,
  855. X      547,  546,  160,  160,  519,  544,  522,  160,  521,  160,
  856. X      543,  521,  553,  556,  555,  160,  530,  560,  522,  530,
  857. X      160,  557,  160,  160,  566,  160,  531,  566,  160,  160,
  858. X      566,  559,  160,  566,  567,  160,  558,  160,  160,  160,
  859. X      567,  160,  564,  160,  566,  160,  561,  566,  563,  160,
  860. X      160,  160,  160,  571,  567,  562,  565,  160,  160,  570,
  861. X      160,  160,  572,  575,  160,  573,  160,  160,  160,  160,
  862. X
  863. X      160,  160,  574,  581,  582,  576,  160,  579,  160,  160,
  864. X      577,  583,  552,  584,  580,  587,  585,  551,  550,  549,
  865. X      548,  586,  160,  160,  588,  160,  160,  589,   60,   60,
  866. X       60,   60,   60,   60,   65,   65,   65,   65,   65,   65,
  867. X       96,   96,   96,   96,   96,  110,  110,  160,  160,  160,
  868. X      160,  161,  160,  161,  161,  448,  448,  520,  517,  516,
  869. X      515,  514,  513,  512,  511,  510,  509,  447,  335,  160,
  870. X      160,  160,  160,  160,  160,  160,  160,  160,  160,  469,
  871. X      468,  467,  464,  463,  462,  461,  460,  457,  456,  455,
  872. X      454,  453,  452,  451,  450,  449,  447,  160,  160,  160,
  873. X
  874. X      160,  160,  160,  384,  383,  382,  381,  380,  379,  378,
  875. X      377,  376,  375,  374,  373,  372,  371,  370,  361,  360,
  876. X      359,  358,  357,  356,  355,  352,  351,  348,  347,  346,
  877. X      345,  344,  334,  334,  160,  160,  160,  160,  160,  271,
  878. X      270,  269,  268,  267,  266,  265,  264,  263,  262,  261,
  879. X      260,  254,  253,  252,  251,  250,  249,  248,   97,  247,
  880. X      246,  245,  244,  243,  242,  241,  240,  239,  236,  233,
  881. X      232,  231,  230,  229,  215,  160,  159,  156,  153,  150,
  882. X      149,  131,  126,  109,  106,   98,   97,   95,  590,    9,
  883. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  884. X
  885. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  886. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  887. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  888. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  889. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  890. X      590,  590,  590,  590,  590,  590,  590,  590,  590
  891. X    } ;
  892. X
  893. static const short int yy_chk[1260] =
  894. X    {   0,
  895. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  896. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  897. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  898. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  899. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  900. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  901. X        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
  902. X        3,   31,    2,   11,    3,   31,   11,  403,    3,    2,
  903. X        4,    4,   40,    4,  598,    4,   40,    5,    5,    4,
  904. X        5,    6,    6,  597,    6,   22,   22,   22,  589,    5,
  905. X
  906. X       28,   28,  403,    6,    7,    7,    7,    7,    7,    7,
  907. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  908. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  909. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  910. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  911. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  912. X        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
  913. X        7,    7,    7,    8,  584,   32,    8,   44,   25,  165,
  914. X       25,   25,   25,    8,   24,   32,   24,   24,   24,   33,
  915. X       35,   34,   35,   25,   44,   36,   33,   34,   36,   24,
  916. X
  917. X       25,   36,   35,   33,   39,  165,   24,   42,   45,   25,
  918. X      174,   42,   39,   50,   50,   24,   76,   42,   45,   43,
  919. X       25,   43,   25,   46,   25,   47,   24,   73,   24,   72,
  920. X       24,   24,   47,   43,   58,   47,   74,   58,   46,   46,
  921. X       64,   75,   47,   64,   58,   66,   77,   76,   66,   76,
  922. X       72,   73,  174,   79,   86,   73,   74,   80,   91,   76,
  923. X       90,   73,   72,   74,   82,   75,   72,   83,  162,   75,
  924. X       74,   73,   81,   79,   81,   75,   81,   77,   91,   84,
  925. X       77,   79,   80,   77,   82,   85,   77,   87,   88,   80,
  926. X       80,   83,   82,   90,   86,   83,   89,   92,   82,  185,
  927. X
  928. X       94,   83,   84,   94,   84,   85,  162,  118,   81,  116,
  929. X      118,   87,   88,  583,  157,   88,   84,  157,  582,   85,
  930. X      581,   87,   85,   89,   92,   92,  116,   88,   88,  139,
  931. X       89,   97,  164,   89,  185,   97,   99,   99,   99,  139,
  932. X       89,  103,  163,  103,   97,   97,  103,  103,  103,   99,
  933. X       99,  170,   97,  100,  100,  100,   99,  158,  166,  101,
  934. X      158,  101,  101,  101,  175,  163,  100,  100,  140,  164,
  935. X      140,  170,  167,  100,  101,  169,   99,   99,   99,   97,
  936. X      577,  101,   97,  140,  171,   97,  176,   97,  170,   97,
  937. X      101,  173,  178,  100,  100,  100,  102,  166,  102,  102,
  938. X
  939. X      102,  101,  175,  101,  154,  101,  167,  154,  172,  176,
  940. X      169,  102,  169,  169,  154,  177,  179,  171,  102,  181,
  941. X      180,  183,  186,  187,  182,  188,  178,  102,  190,  173,
  942. X      172,  189,  173,  172,  191,  192,  193,  177,  102,  194,
  943. X      102,  197,  102,  177,  186,  198,  196,  183,  199,  202,
  944. X      177,  190,  181,  179,  180,  182,  203,  187,  200,  201,
  945. X      205,  186,  194,  197,  189,  204,  192,  207,  188,  196,
  946. X      206,  209,  199,  198,  210,  193,  191,  211,  200,  201,
  947. X      213,  201,  199,  212,  214,  226,  226,  226,  572,  202,
  948. X      275,  207,  206,  218,  201,  203,  276,  205,  201,  204,
  949. X
  950. X      570,  569,  218,  218,  227,  227,  227,  235,  213,  210,
  951. X      235,  209,  277,  274,  212,  279,  211,  235,  275,  220,
  952. X      212,  220,  228,  214,  220,  220,  220,  222,  222,  222,
  953. X      223,  228,  223,  274,  276,  223,  223,  223,  279,  238,
  954. X      222,  222,  238,  277,  228,  248,  228,  222,  248,  238,
  955. X      249,  252,  280,  249,  252,  248,  253,  281,  283,  253,
  956. X      249,  252,  286,  285,  292,  288,  253,  222,  222,  222,
  957. X      272,  278,  282,  272,  278,  282,  280,  272,  278,  282,
  958. X      272,  278,  282,  284,  289,  287,  284,  291,  287,  293,
  959. X      284,  285,  287,  284,  281,  287,  283,  286,  288,  294,
  960. X
  961. X      295,  296,  298,  292,  297,  299,  300,  301,  289,  303,
  962. X      301,  302,  289,  561,  301,  314,  560,  301,  291,  294,
  963. X      313,  336,  557,  293,  295,  553,  297,  338,  338,  338,
  964. X      336,  336,  299,  296,  316,  302,  304,  300,  314,  304,
  965. X      300,  298,  312,  304,  303,  301,  304,  305,  306,  307,
  966. X      305,  306,  307,  313,  305,  306,  307,  305,  306,  307,
  967. X      310,  311,  315,  310,  311,  316,  317,  310,  311,  318,
  968. X      310,  311,  312,  320,  319,  321,  324,  323,  325,  326,
  969. X      333,  328,  327,  329,  315,  332,  330,  387,  439,  330,
  970. X      339,  339,  339,  330,  552,  306,  330,  317,  319,  349,
  971. X
  972. X      325,  550,  349,  318,  324,  328,  547,  333,  321,  349,
  973. X      439,  329,  326,  320,  323,  327,  332,  341,  341,  341,
  974. X      342,  342,  342,  353,  362,  364,  353,  362,  364,  366,
  975. X      388,  387,  366,  353,  362,  364,  389,  368,  371,  366,
  976. X      368,  371,  378,  385,  390,  378,  385,  368,  371,  393,
  977. X      396,  391,  378,  385,  391,  397,  401,  399,  397,  400,
  978. X      389,  391,  406,  388,  404,  397,  407,  404,  390,  408,
  979. X      410,  404,  412,  414,  404,  412,  413,  393,  415,  412,
  980. X      418,  415,  412,  426,  417,  424,  431,  417,  415,  396,
  981. X      399,  417,  432,  400,  417,  401,  425,  408,  420,  406,
  982. X
  983. X      413,  420,  428,  429,  422,  407,  418,  422,  420,  410,
  984. X      414,  433,  432,  434,  422,  435,  424,  436,  427,  444,
  985. X      425,  427,  426,  431,  441,  427,  428,  430,  427,  478,
  986. X      430,  429,  437,  472,  430,  437,  434,  430,  474,  437,
  987. X      477,  442,  437,  444,  442,  473,  458,  476,  433,  458,
  988. X      436,  442,  482,  484,  435,  441,  458,  463,  465,  467,
  989. X      463,  465,  467,  478,  485,  473,  488,  463,  465,  467,
  990. X      480,  474,  472,  480,  483,  476,  489,  483,  477,  484,
  991. X      480,  483,  492,  486,  483,  490,  486,  493,  490,  494,
  992. X      495,  482,  485,  486,  496,  490,  497,  498,  488,  500,
  993. X
  994. X      498,  501,  502,  504,  505,  526,  492,  498,  525,  524,
  995. X      536,  493,  494,  503,  495,  489,  503,  496,  532,  527,
  996. X      503,  497,  500,  503,  518,  504,  506,  518,  525,  506,
  997. X      505,  504,  533,  506,  518,  502,  506,  534,  521,  539,
  998. X      501,  521,  524,  527,  526,  540,  530,  536,  521,  530,
  999. X      541,  532,  545,  546,  549,  555,  530,  549,  554,  558,
  1000. X      556,  534,  559,  556,  549,  562,  533,  556,  564,  563,
  1001. X      556,  565,  545,  571,  566,  573,  539,  566,  541,  574,
  1002. X      579,  575,  585,  555,  566,  540,  546,  586,  576,  554,
  1003. X      587,  544,  558,  563,  588,  559,  580,  543,  542,  538,
  1004. X
  1005. X      537,  535,  562,  574,  575,  564,  529,  571,  528,  523,
  1006. X      565,  576,  515,  579,  573,  586,  580,  513,  512,  510,
  1007. X      509,  585,  508,  507,  587,  479,  475,  588,  591,  591,
  1008. X      591,  591,  591,  591,  592,  592,  592,  592,  592,  592,
  1009. X      593,  593,  593,  593,  593,  594,  594,  595,  471,  595,
  1010. X      595,  596,  470,  596,  596,  599,  599,  464,  462,  461,
  1011. X      460,  457,  456,  455,  454,  453,  451,  448,  446,  445,
  1012. X      440,  438,  419,  411,  409,  405,  402,  395,  394,  383,
  1013. X      382,  380,  377,  376,  375,  374,  372,  370,  361,  359,
  1014. X      355,  352,  351,  346,  345,  344,  337,  331,  322,  309,
  1015. X
  1016. X      308,  290,  273,  270,  269,  267,  266,  265,  264,  263,
  1017. X      262,  260,  259,  258,  257,  256,  255,  254,  247,  246,
  1018. X      245,  244,  242,  240,  239,  237,  236,  234,  233,  232,
  1019. X      231,  230,  217,  216,  208,  195,  184,  168,  161,  155,
  1020. X      152,  151,  150,  149,  148,  147,  145,  144,  143,  142,
  1021. X      141,  138,  137,  135,  134,  133,  132,  131,  130,  128,
  1022. X      126,  125,  124,  123,  122,  121,  120,  119,  117,  115,
  1023. X      114,  113,  112,  111,   96,   78,   68,   59,   52,   49,
  1024. X       48,   41,   38,   30,   26,   16,   15,   13,    9,  590,
  1025. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1026. X
  1027. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1028. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1029. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1030. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1031. X      590,  590,  590,  590,  590,  590,  590,  590,  590,  590,
  1032. X      590,  590,  590,  590,  590,  590,  590,  590,  590
  1033. X    } ;
  1034. X
  1035. static yy_state_type yy_last_accepting_state;
  1036. static YY_CHAR *yy_last_accepting_cpos;
  1037. X
  1038. /* the intent behind this definition is that it'll catch
  1039. X * any uses of REJECT which flex missed
  1040. X */
  1041. #define REJECT reject_used_but_not_detected
  1042. #define yymore() yymore_used_but_not_detected
  1043. #define YY_MORE_ADJ 0
  1044. X
  1045. /* these variables are all declared out here so that section 3 code can
  1046. X * manipulate them
  1047. X */
  1048. /* points to current character in buffer */
  1049. static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
  1050. static int yy_init = 1;        /* whether we need to initialize */
  1051. static int yy_start = 0;    /* start state number */
  1052. X
  1053. /* flag which is used to allow yywrap()'s to do buffer switches
  1054. X * instead of setting up a fresh yyin.  A bit of a hack ...
  1055. X */
  1056. static int yy_did_buffer_switch_on_eof;
  1057. X
  1058. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  1059. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  1060. static int yy_get_next_buffer YY_PROTO(( void ));
  1061. static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
  1062. void yyrestart YY_PROTO(( FILE *input_file ));
  1063. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  1064. void yy_load_buffer_state YY_PROTO(( void ));
  1065. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  1066. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  1067. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  1068. X
  1069. #define yy_new_buffer yy_create_buffer
  1070. X
  1071. #ifdef __cplusplus
  1072. static int yyinput YY_PROTO(( void ));
  1073. #else
  1074. static int input YY_PROTO(( void ));
  1075. #endif
  1076. X
  1077. YY_DECL
  1078. X    {
  1079. X    register yy_state_type yy_current_state;
  1080. X    register YY_CHAR *yy_cp, *yy_bp;
  1081. X    register int yy_act;
  1082. X
  1083. X
  1084. X
  1085. X            INIT;
  1086. X
  1087. X
  1088. X    if ( yy_init )
  1089. X    {
  1090. X    YY_USER_INIT;
  1091. X
  1092. X    if ( ! yy_start )
  1093. X        yy_start = 1;    /* first start state */
  1094. X
  1095. X    if ( ! yyin )
  1096. X        yyin = stdin;
  1097. X
  1098. X    if ( ! yyout )
  1099. X        yyout = stdout;
  1100. X
  1101. X    if ( yy_current_buffer )
  1102. X        yy_init_buffer( yy_current_buffer, yyin );
  1103. X    else
  1104. X        yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  1105. X
  1106. X    yy_load_buffer_state();
  1107. X
  1108. X    yy_init = 0;
  1109. X    }
  1110. X
  1111. X    while ( 1 )        /* loops until end-of-file is reached */
  1112. X    {
  1113. X    yy_cp = yy_c_buf_p;
  1114. X
  1115. X    /* support of yytext */
  1116. X    *yy_cp = yy_hold_char;
  1117. X
  1118. X    /* yy_bp points to the position in yy_ch_buf of the start of the
  1119. X     * current run.
  1120. X     */
  1121. X    yy_bp = yy_cp;
  1122. X
  1123. X    yy_current_state = yy_start;
  1124. X    if ( yy_bp[-1] == '\n' )
  1125. X        ++yy_current_state;
  1126. yy_match:
  1127. X    do
  1128. X        {
  1129. X        register YY_CHAR yy_c = yy_ec[*yy_cp];
  1130. X        if ( yy_accept[yy_current_state] )
  1131. X        {
  1132. X        yy_last_accepting_state = yy_current_state;
  1133. X        yy_last_accepting_cpos = yy_cp;
  1134. X        }
  1135. X        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1136. X        {
  1137. X        yy_current_state = yy_def[yy_current_state];
  1138. X        if ( yy_current_state >= 591 )
  1139. X            yy_c = yy_meta[yy_c];
  1140. X        }
  1141. X        yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
  1142. X        ++yy_cp;
  1143. X        }
  1144. X    while ( yy_current_state != 590 );
  1145. X    yy_cp = yy_last_accepting_cpos;
  1146. X    yy_current_state = yy_last_accepting_state;
  1147. X
  1148. yy_find_action:
  1149. X    yy_act = yy_accept[yy_current_state];
  1150. X
  1151. X    YY_DO_BEFORE_ACTION;
  1152. X    YY_USER_ACTION;
  1153. X
  1154. do_action:    /* this label is used only to access EOF actions */
  1155. X
  1156. X
  1157. X    switch ( yy_act )
  1158. X        {
  1159. X        case 0: /* must backtrack */
  1160. X        /* undo the effects of YY_DO_BEFORE_ACTION */
  1161. X        *yy_cp = yy_hold_char;
  1162. X        yy_cp = yy_last_accepting_cpos;
  1163. X        yy_current_state = yy_last_accepting_state;
  1164. X        goto yy_find_action;
  1165. X
  1166. case 1:
  1167. # line 84 "m2latex.l"
  1168. case 2:
  1169. # line 85 "m2latex.l"
  1170. case 3:
  1171. # line 86 "m2latex.l"
  1172. case 4:
  1173. # line 87 "m2latex.l"
  1174. case 5:
  1175. # line 88 "m2latex.l"
  1176. case 6:
  1177. # line 89 "m2latex.l"
  1178. case 7:
  1179. # line 90 "m2latex.l"
  1180. case 8:
  1181. # line 91 "m2latex.l"
  1182. case 9:
  1183. # line 92 "m2latex.l"
  1184. case 10:
  1185. # line 93 "m2latex.l"
  1186. case 11:
  1187. # line 94 "m2latex.l"
  1188. case 12:
  1189. # line 95 "m2latex.l"
  1190. case 13:
  1191. # line 96 "m2latex.l"
  1192. case 14:
  1193. # line 97 "m2latex.l"
  1194. case 15:
  1195. # line 98 "m2latex.l"
  1196. case 16:
  1197. # line 99 "m2latex.l"
  1198. case 17:
  1199. # line 100 "m2latex.l"
  1200. case 18:
  1201. # line 101 "m2latex.l"
  1202. case 19:
  1203. # line 102 "m2latex.l"
  1204. case 20:
  1205. # line 103 "m2latex.l"
  1206. case 21:
  1207. # line 104 "m2latex.l"
  1208. case 22:
  1209. # line 105 "m2latex.l"
  1210. case 23:
  1211. # line 105 "m2latex.l"
  1212. STDFUN;
  1213. X    YY_BREAK
  1214. case 24:
  1215. # line 108 "m2latex.l"
  1216. case 25:
  1217. # line 109 "m2latex.l"
  1218. case 26:
  1219. # line 110 "m2latex.l"
  1220. case 27:
  1221. # line 111 "m2latex.l"
  1222. case 28:
  1223. # line 112 "m2latex.l"
  1224. case 29:
  1225. # line 113 "m2latex.l"
  1226. case 30:
  1227. # line 114 "m2latex.l"
  1228. case 31:
  1229. # line 115 "m2latex.l"
  1230. case 32:
  1231. # line 116 "m2latex.l"
  1232. case 33:
  1233. # line 117 "m2latex.l"
  1234. case 34:
  1235. # line 118 "m2latex.l"
  1236. case 35:
  1237. # line 119 "m2latex.l"
  1238. case 36:
  1239. # line 120 "m2latex.l"
  1240. case 37:
  1241. # line 121 "m2latex.l"
  1242. case 38:
  1243. # line 122 "m2latex.l"
  1244. case 39:
  1245. # line 123 "m2latex.l"
  1246. case 40:
  1247. # line 124 "m2latex.l"
  1248. case 41:
  1249. # line 125 "m2latex.l"
  1250. case 42:
  1251. # line 126 "m2latex.l"
  1252. case 43:
  1253. # line 127 "m2latex.l"
  1254. case 44:
  1255. # line 128 "m2latex.l"
  1256. case 45:
  1257. # line 129 "m2latex.l"
  1258. case 46:
  1259. # line 130 "m2latex.l"
  1260. case 47:
  1261. # line 131 "m2latex.l"
  1262. case 48:
  1263. # line 132 "m2latex.l"
  1264. case 49:
  1265. # line 133 "m2latex.l"
  1266. case 50:
  1267. # line 134 "m2latex.l"
  1268. case 51:
  1269. # line 135 "m2latex.l"
  1270. case 52:
  1271. # line 136 "m2latex.l"
  1272. case 53:
  1273. # line 137 "m2latex.l"
  1274. case 54:
  1275. # line 138 "m2latex.l"
  1276. case 55:
  1277. # line 139 "m2latex.l"
  1278. case 56:
  1279. # line 140 "m2latex.l"
  1280. case 57:
  1281. # line 141 "m2latex.l"
  1282. case 58:
  1283. # line 142 "m2latex.l"
  1284. case 59:
  1285. # line 143 "m2latex.l"
  1286. case 60:
  1287. # line 144 "m2latex.l"
  1288. case 61:
  1289. # line 145 "m2latex.l"
  1290. case 62:
  1291. # line 146 "m2latex.l"
  1292. case 63:
  1293. # line 147 "m2latex.l"
  1294. case 64:
  1295. # line 148 "m2latex.l"
  1296. case 65:
  1297. # line 149 "m2latex.l"
  1298. case 66:
  1299. # line 150 "m2latex.l"
  1300. case 67:
  1301. # line 151 "m2latex.l"
  1302. case 68:
  1303. # line 152 "m2latex.l"
  1304. case 69:
  1305. # line 153 "m2latex.l"
  1306. case 70:
  1307. # line 154 "m2latex.l"
  1308. case 71:
  1309. # line 155 "m2latex.l"
  1310. case 72:
  1311. # line 156 "m2latex.l"
  1312. case 73:
  1313. # line 157 "m2latex.l"
  1314. case 74:
  1315. # line 158 "m2latex.l"
  1316. case 75:
  1317. # line 159 "m2latex.l"
  1318. case 76:
  1319. # line 160 "m2latex.l"
  1320. case 77:
  1321. # line 160 "m2latex.l"
  1322. KEY;
  1323. X    YY_BREAK
  1324. case 78:
  1325. # line 162 "m2latex.l"
  1326. SYM ("leq");
  1327. X    YY_BREAK
  1328. case 79:
  1329. # line 163 "m2latex.l"
  1330. SYM ("geq");
  1331. X    YY_BREAK
  1332. case 80:
  1333. # line 164 "m2latex.l"
  1334. SYM ("neq");
  1335. X    YY_BREAK
  1336. case 81:
  1337. # line 165 "m2latex.l"
  1338. SYM ("ast");
  1339. X    YY_BREAK
  1340. case 82:
  1341. # line 166 "m2latex.l"
  1342. SYM ("wedge");
  1343. X    YY_BREAK
  1344. case 83:
  1345. # line 167 "m2latex.l"
  1346. SYM ("mid");
  1347. X    YY_BREAK
  1348. case 84:
  1349. # line 168 "m2latex.l"
  1350. SYM ("neq");
  1351. X    YY_BREAK
  1352. case 85:
  1353. # line 169 "m2latex.l"
  1354. SYM ("sim");
  1355. X    YY_BREAK
  1356. case 86:
  1357. # line 170 "m2latex.l"
  1358. OUT ("$<$");
  1359. X    YY_BREAK
  1360. case 87:
  1361. # line 171 "m2latex.l"
  1362. OUT ("$>$");
  1363. X    YY_BREAK
  1364. case 88:
  1365. # line 172 "m2latex.l"
  1366. OUT ("\\{");
  1367. X    YY_BREAK
  1368. case 89:
  1369. # line 173 "m2latex.l"
  1370. OUT ("\\}");
  1371. X    YY_BREAK
  1372. case 90:
  1373. # line 174 "m2latex.l"
  1374. OUT ("\\&");
  1375. X    YY_BREAK
  1376. case 91:
  1377. # line 176 "m2latex.l"
  1378. case 92:
  1379. # line 177 "m2latex.l"
  1380. case 93:
  1381. # line 178 "m2latex.l"
  1382. case 94:
  1383. # line 179 "m2latex.l"
  1384. case 95:
  1385. # line 180 "m2latex.l"
  1386. case 96:
  1387. # line 181 "m2latex.l"
  1388. case 97:
  1389. # line 182 "m2latex.l"
  1390. case 98:
  1391. # line 183 "m2latex.l"
  1392. case 99:
  1393. # line 184 "m2latex.l"
  1394. case 100:
  1395. # line 185 "m2latex.l"
  1396. case 101:
  1397. # line 186 "m2latex.l"
  1398. case 102:
  1399. # line 187 "m2latex.l"
  1400. case 103:
  1401. # line 187 "m2latex.l"
  1402. ECHO;
  1403. X    YY_BREAK
  1404. case 104:
  1405. # line 190 "m2latex.l"
  1406. case 105:
  1407. # line 190 "m2latex.l"
  1408. SUB (yytext);
  1409. X    YY_BREAK
  1410. case 106:
  1411. # line 192 "m2latex.l"
  1412. { BEGIN (COMMENT);
  1413. X                FONT (comment_font);
  1414. X                                REPARSE; }
  1415. X    YY_BREAK
  1416. case 107:
  1417. # line 196 "m2latex.l"
  1418. { BEGIN (COMMENT);
  1419. X                                if (aligntoright) {
  1420. X                    OUT ("\\hfill");
  1421. X                } else {
  1422. X                    CTAB;
  1423. X                }
  1424. X                FONT (comment_font);
  1425. X                                OUT ("($\\ast$"); }
  1426. X    YY_BREAK
  1427. case 108:
  1428. # line 205 "m2latex.l"
  1429. { INIT; OUT ("$\\ast$)}"); }
  1430. X    YY_BREAK
  1431. case 109:
  1432. # line 206 "m2latex.l"
  1433. OUT ("\\mbox{}\\\\\n");
  1434. X    YY_BREAK
  1435. case 110:
  1436. # line 207 "m2latex.l"
  1437. IND;
  1438. X    YY_BREAK
  1439. case 111:
  1440. # line 208 "m2latex.l"
  1441. SUB (yytext);
  1442. X    YY_BREAK
  1443. case 112:
  1444. # line 210 "m2latex.l"
  1445. { BEGIN (STRING);
  1446. X                FONT (string_font); OUT ("\""); }
  1447. X    YY_BREAK
  1448. case 113:
  1449. # line 212 "m2latex.l"
  1450. { INIT; OUT ("\"}"); }
  1451. X    YY_BREAK
  1452. case 114:
  1453. # line 214 "m2latex.l"
  1454. { BEGIN (STRING);
  1455. X                FONT (string_font); OUT ("'"); }
  1456. X    YY_BREAK
  1457. case 115:
  1458. # line 216 "m2latex.l"
  1459. { INIT; OUT ("'}"); }
  1460. X    YY_BREAK
  1461. case 116:
  1462. # line 217 "m2latex.l"
  1463. OUT ("\\mbox{}\\\\\n");
  1464. X    YY_BREAK
  1465. case 117:
  1466. # line 218 "m2latex.l"
  1467. IND;
  1468. X    YY_BREAK
  1469. case 118:
  1470. # line 219 "m2latex.l"
  1471. SUB (yytext);
  1472. X    YY_BREAK
  1473. case 119:
  1474. # line 222 "m2latex.l"
  1475. case 120:
  1476. # line 223 "m2latex.l"
  1477. case 121:
  1478. # line 224 "m2latex.l"
  1479. case 122:
  1480. # line 224 "m2latex.l"
  1481. ECHO;
  1482. X    YY_BREAK
  1483. case 123:
  1484. # line 226 "m2latex.l"
  1485. ECHO;
  1486. X    YY_BREAK
  1487. case 124:
  1488. # line 229 "m2latex.l"
  1489. case 125:
  1490. # line 230 "m2latex.l"
  1491. case 126:
  1492. # line 231 "m2latex.l"
  1493. case 127:
  1494. # line 231 "m2latex.l"
  1495. SUB (yytext);
  1496. X    YY_BREAK
  1497. case 128:
  1498. # line 233 "m2latex.l"
  1499. ECHO;
  1500. X    YY_BREAK
  1501. case 129:
  1502. # line 235 "m2latex.l"
  1503. ECHO;
  1504. X    YY_BREAK
  1505. case 130:
  1506. # line 237 "m2latex.l"
  1507. OUT ("$\\backslash$\\\\\n");
  1508. X    YY_BREAK
  1509. case 131:
  1510. # line 238 "m2latex.l"
  1511. IND;
  1512. X    YY_BREAK
  1513. case 132:
  1514. # line 239 "m2latex.l"
  1515. ECHO;
  1516. X    YY_BREAK
  1517. case 133:
  1518. # line 240 "m2latex.l"
  1519. OUT ("\\newpage\n");
  1520. X    YY_BREAK
  1521. case 134:
  1522. # line 241 "m2latex.l"
  1523. OUT ("\\mbox{}\\\\\n");
  1524. X    YY_BREAK
  1525. case 135:
  1526. # line 243 "m2latex.l"
  1527. ECHO;
  1528. X    YY_BREAK
  1529. case YY_STATE_EOF(INITIAL):
  1530. case YY_STATE_EOF(STRING):
  1531. case YY_STATE_EOF(COMMENT):
  1532. case YY_STATE_EOF(MODULA2):
  1533. X    yyterminate();
  1534. X
  1535. X        case YY_END_OF_BUFFER:
  1536. X        {
  1537. X        /* amount of text matched not including the EOB char */
  1538. X        int yy_amount_of_matched_text = yy_cp - yytext - 1;
  1539. X
  1540. X        /* undo the effects of YY_DO_BEFORE_ACTION */
  1541. X        *yy_cp = yy_hold_char;
  1542. X
  1543. X        /* note that here we test for yy_c_buf_p "<=" to the position
  1544. X         * of the first EOB in the buffer, since yy_c_buf_p will
  1545. X         * already have been incremented past the NUL character
  1546. X         * (since all states make transitions on EOB to the end-
  1547. X         * of-buffer state).  Contrast this with the test in yyinput().
  1548. X         */
  1549. X        if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1550. X            /* this was really a NUL */
  1551. X            {
  1552. X            yy_state_type yy_next_state;
  1553. X
  1554. X            yy_c_buf_p = yytext + yy_amount_of_matched_text;
  1555. X
  1556. X            yy_current_state = yy_get_previous_state();
  1557. X
  1558. X            /* okay, we're now positioned to make the
  1559. X             * NUL transition.  We couldn't have
  1560. X             * yy_get_previous_state() go ahead and do it
  1561. X             * for us because it doesn't know how to deal
  1562. X             * with the possibility of jamming (and we
  1563. X             * don't want to build jamming into it because
  1564. X             * then it will run more slowly)
  1565. X             */
  1566. X
  1567. X            yy_next_state = yy_try_NUL_trans( yy_current_state );
  1568. X
  1569. X            yy_bp = yytext + YY_MORE_ADJ;
  1570. X
  1571. X            if ( yy_next_state )
  1572. X            {
  1573. X            /* consume the NUL */
  1574. X            yy_cp = ++yy_c_buf_p;
  1575. X            yy_current_state = yy_next_state;
  1576. X            goto yy_match;
  1577. X            }
  1578. X
  1579. X            else
  1580. X            {
  1581. X                yy_cp = yy_last_accepting_cpos;
  1582. X                yy_current_state = yy_last_accepting_state;
  1583. X            goto yy_find_action;
  1584. X            }
  1585. X            }
  1586. X
  1587. X        else switch ( yy_get_next_buffer() )
  1588. X            {
  1589. X            case EOB_ACT_END_OF_FILE:
  1590. X            {
  1591. X            yy_did_buffer_switch_on_eof = 0;
  1592. X
  1593. X            if ( yywrap() )
  1594. X                {
  1595. X                /* note: because we've taken care in
  1596. X                 * yy_get_next_buffer() to have set up yytext,
  1597. X                 * we can now set up yy_c_buf_p so that if some
  1598. X                 * total hoser (like flex itself) wants
  1599. X                 * to call the scanner after we return the
  1600. X                 * YY_NULL, it'll still work - another YY_NULL
  1601. X                 * will get returned.
  1602. X                 */
  1603. X                yy_c_buf_p = yytext + YY_MORE_ADJ;
  1604. X
  1605. X                yy_act = YY_STATE_EOF((yy_start - 1) / 2);
  1606. X                goto do_action;
  1607. X                }
  1608. X
  1609. X            else
  1610. X                {
  1611. X                if ( ! yy_did_buffer_switch_on_eof )
  1612. X                YY_NEW_FILE;
  1613. X                }
  1614. X            }
  1615. X            break;
  1616. X
  1617. X            case EOB_ACT_CONTINUE_SCAN:
  1618. X            yy_c_buf_p = yytext + yy_amount_of_matched_text;
  1619. X
  1620. X            yy_current_state = yy_get_previous_state();
  1621. X
  1622. X            yy_cp = yy_c_buf_p;
  1623. X            yy_bp = yytext + YY_MORE_ADJ;
  1624. X            goto yy_match;
  1625. X
  1626. X            case EOB_ACT_LAST_MATCH:
  1627. X            yy_c_buf_p =
  1628. X                &yy_current_buffer->yy_ch_buf[yy_n_chars];
  1629. X
  1630. X            yy_current_state = yy_get_previous_state();
  1631. X
  1632. X            yy_cp = yy_c_buf_p;
  1633. X            yy_bp = yytext + YY_MORE_ADJ;
  1634. X            goto yy_find_action;
  1635. X            }
  1636. X        break;
  1637. X        }
  1638. X
  1639. X        default:
  1640. #ifdef FLEX_DEBUG
  1641. X        printf( "action # %d\n", yy_act );
  1642. #endif
  1643. X        YY_FATAL_ERROR(
  1644. X            "fatal flex scanner internal error--no action found" );
  1645. X        }
  1646. X    }
  1647. X    }
  1648. X
  1649. X
  1650. /* yy_get_next_buffer - try to read in a new buffer
  1651. X *
  1652. X * synopsis
  1653. X *     int yy_get_next_buffer();
  1654. X *     
  1655. X * returns a code representing an action
  1656. X *     EOB_ACT_LAST_MATCH - 
  1657. SHAR_EOF
  1658. true || echo 'restore of m2latex.c failed'
  1659. fi
  1660. echo 'End of  part 2'
  1661. echo 'File m2latex.c is continued in part 3'
  1662. echo 3 > _shar_seq_.tmp
  1663. exit 0
  1664. exit 0 # Just in case...
  1665.