home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume22
/
m2latex
/
part02
< prev
next >
Wrap
Text File
|
1991-08-29
|
56KB
|
1,665 lines
Newsgroups: comp.sources.misc
From: Joerg Heitkoetter <heitkoet@gorbi.informatik.uni-dortmund.de>
Subject: v22i080: m2latex - Generate LaTex source from Pascal or Modula-2, Part02/03
Message-ID: <1991Aug30.024524.1196@sparky.IMD.Sterling.COM>
X-Md4-Signature: 5ca845014a6af4adc80d4df17d81ced7
Date: Fri, 30 Aug 1991 02:45:24 GMT
Approved: kent@sparky.imd.sterling.com
Submitted-by: Joerg Heitkoetter <heitkoet@gorbi.informatik.uni-dortmund.de>
Posting-number: Volume 22, Issue 80
Archive-name: m2latex/part02
Environment: UNIX, LaTex, Flex
---- Cut Here and feed the following to sh ----
# this is Part.02 (part 2 of a multipart archive)
# do not concatenate these parts, unpack them in order with /bin/sh
# file m2latex.1 continued
#
if test ! -r _shar_seq_.tmp; then
echo 'Please unpack part 1 first!'
exit 1
fi
(read Scheck
if test "$Scheck" != 2; then
echo Please unpack part "$Scheck" next!
exit 1
else
exit 0
fi
) < _shar_seq_.tmp || exit 1
if test ! -f _shar_wnt_.tmp; then
echo 'x - still skipping m2latex.1'
else
echo 'x - continuing file m2latex.1'
sed 's/^X//' << 'SHAR_EOF' >> 'm2latex.1' &&
to by the value of this flag. If the {-p,+pipe} option is given, the
output is written to
.I stdout.
(It is an error to specify both options
together.) If none of these options but an input filename is given, the
output is written to a file who's name is the last component of the
input filename with the added suffix '.tex'.
X
.SH OPTIONS
.I m2latex
recognizes the following options:
.TP
.B {-c,+complete-file}
The output is enveloped in
commands which produce a complete
.I LaTeX
source.
.TP
.B {-h,+header}
Each page of output has a header giving the input file name.
This option implies the
{-c,+complete-file} option.
.TP
.B {-i,+indentation} length
Gives the amount of indentation for each leading blank (tabs are
converted to blanks). Default is `0.5em'.
.TP
.B {-n,+no-alignment}
Comments belonging to statements are aligned to the right paper side
by default. You can turn off this behaviour using this switch.
.TP
.B {-o,+output} \fIfile\fR
The output is written in the file pointed to by \fIfile\fR.
.TP
.B {-s,+font-size} \fIsize\fR
The LaTeX source is set in \fIsize\fRpt. Default is `10'.
.TP
.B {-p,+pipe}
The output is written to stdout.
.TP
.B {-C,+comment-font} \fIfont\fR
The comments are set in the given font. Default is `it'.
.TP
.B {-F,+function-font} \fIfont\fR
The standard functions are set in the given font. Default is `bf'.
.TP
.B {-H,+header-font} \fIfont\fR
The headers are set in the given font. Default is `sl'.
.TP
.B {-K,+keyword-font} \fIfont\fR
The keywords are set in the given font. Default is `bf'.
.TP
.B {-P,+pascal} \fIfont\fR
recognize
.B Pascal
keywords, only. Keywords must be written in uppercase letters!
.TP
.B {-S,+string-font} \fIfont\fR
The string and character constants are set in the given font. Default is `tt'.
.TP
.B {-T,+tabstop} \fIwidth\fR
The width of tabs is \fIwidth\fR. Default is `8'.
.TP
.B {-V,+version}
Prints the version number on
.I stderr.
X
.SH OPTION SUMMARY
.TP
To give no option at all is the same as to give the options
-i 0.5em -s 10 -C it -F bf -H sl -K bf -S tt -T 8
X
.SH "SEE ALSO"
.LP
c++2latex(1), latex(1).
X
.SH DIAGNOSTICS
.TP
.I Can't use {-p,+pipe} and {-o,+output} together.
At most one of this options may be given.
.LP
.TP
.I Can't open `<file>' for reading
The program failed to open <file> for reading.
.LP
.TP
.I Can't open `<file>' for writing
The program failed to open <file> for writing. All output is written
in the current directory if not explicitly changed by {-o,+output}.
.LP
.TP
.I Virtual memory exhausted
The program failed to allocate storage. As this is only done for the
construction of filenames, this error will normally indicate a
program error.
X
.SH AUTHOR
Copyright
.if t \(co
.if n (C)
1991 by
.if n Joerg Heitkoetter,
.if t J\*org Heitk\*otter,
Systems Analysis Group, University of Dortmund, Germany.
.nf
Send bugs, comments, etc., to (heitkoet@gorbi.informatik.uni-dortmund.de).
.fi
X
.SH CREDITS
.LP
Thanks to Norbert Kiesel for his C++2LaTeX converter, showing me how
to flex(1) something like this.
X
.SH AVAILABILITY
.LP
This program is under GNU General Public License. Refer to the LICENSE file
accompanying this software for a lengthy, boring, but absolutely complete
description.
X
.SH FINAL NOTE
.LP
If you want to use
.I m2latex
as a
.B Pascal
pretty printer only, simply install it as a (soft) link to ``p2latex''.
The
.B Modula-2
mode is switched on, when
.I m2latex
finds the letter ``m'' in it's name during execution.
SHAR_EOF
echo 'File m2latex.1 is complete' &&
chmod 0640 m2latex.1 ||
echo 'restore of m2latex.1 failed'
Wc_c="`wc -c < 'm2latex.1'`"
test 4910 -eq "$Wc_c" ||
echo 'm2latex.1: original size 4910, current size' "$Wc_c"
rm -f _shar_wnt_.tmp
fi
# ============= m2latex.c ==============
if test -f 'm2latex.c' -a X"$1" != X"-c"; then
echo 'x - skipping m2latex.c (File already exists)'
rm -f _shar_wnt_.tmp
else
> _shar_wnt_.tmp
echo 'x - extracting m2latex.c (Text)'
sed 's/^X//' << 'SHAR_EOF' > 'm2latex.c' &&
/* A lexical scanner generated by flex */
X
/* scanner skeleton version:
X * $Header: /usr/fsys/odin/a/vern/flex/RCS/flex.skel,v 2.16 90/08/03 14:09:36 vern Exp $
X */
X
#define FLEX_SCANNER
X
#include <stdio.h>
X
X
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif
X
X
#ifdef __cplusplus
X
#include <stdlib.h>
#include <osfcn.h>
X
/* use prototypes in function declarations */
#define YY_USE_PROTOS
X
/* the "const" storage-class-modifier is valid */
#define YY_USE_CONST
X
#else /* ! __cplusplus */
X
#ifdef __STDC__
X
#ifdef __GNUC__
#include <stddef.h>
void *malloc( size_t );
void free( void* );
#else
#include <stdlib.h>
#endif /* __GNUC__ */
X
#define YY_USE_PROTOS
#define YY_USE_CONST
X
#endif /* __STDC__ */
#endif /* ! __cplusplus */
X
X
#ifdef __TURBOC__
#define YY_USE_CONST
#endif
X
X
#ifndef YY_USE_CONST
#define const
#endif
X
X
#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
/* we can't get here if it's an ANSI C compiler, or a C++ compiler,
X * so it's got to be a K&R compiler, and therefore there's no standard
X * place from which to include these definitions
X */
char *malloc();
int free();
int read();
#endif
X
X
/* amount of stuff to slurp up with each read */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif
X
/* returned upon end-of-file */
#define YY_END_TOK 0
X
/* copy whatever the last rule matched to the standard output */
X
/* cast to (char *) is because for 8-bit chars, yytext is (unsigned char *) */
/* this used to be an fputs(), but since the string might contain NUL's,
X * we now use fwrite()
X */
#define ECHO (void) fwrite( (char *) yytext, yyleng, 1, yyout )
X
/* gets input and stuffs it into "buf". number of characters read, or YY_NULL,
X * is returned in "result".
X */
#define YY_INPUT(buf,result,max_size) \
X if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
X YY_FATAL_ERROR( "read() in flex scanner failed" );
#define YY_NULL 0
X
/* no semi-colon after return; correct usage is to write "yyterminate();" -
X * we don't want an extra ';' after the "return" because that will cause
X * some compilers to complain about unreachable statements.
X */
#define yyterminate() return ( YY_NULL )
X
/* report a fatal error */
X
/* The funky do-while is used to turn this macro definition into
X * a single C statement (which needs a semi-colon terminator).
X * This avoids problems with code like:
X *
X * if ( something_happens )
X * YY_FATAL_ERROR( "oops, the something happened" );
X * else
X * everything_okay();
X *
X * Prior to using the do-while the compiler would get upset at the
X * "else" because it interpreted the "if" statement as being all
X * done when it reached the ';' after the YY_FATAL_ERROR() call.
X */
X
#define YY_FATAL_ERROR(msg) \
X do \
X { \
X (void) fputs( msg, stderr ); \
X (void) putc( '\n', stderr ); \
X exit( 1 ); \
X } \
X while ( 0 )
X
/* default yywrap function - always treat EOF as an EOF */
#define yywrap() 1
X
/* enter a start condition. This macro really ought to take a parameter,
X * but we do it the disgusting crufty way forced on us by the ()-less
X * definition of BEGIN
X */
#define BEGIN yy_start = 1 + 2 *
X
/* action number for EOF rule of a given start state */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
X
/* special action meaning "start processing a new file" */
#define YY_NEW_FILE \
X do \
X { \
X yy_init_buffer( yy_current_buffer, yyin ); \
X yy_load_buffer_state(); \
X } \
X while ( 0 )
X
/* default declaration of generated scanner - a define so the user can
X * easily add parameters
X */
#define YY_DECL int yylex YY_PROTO(( void ))
X
/* code executed at the end of each rule */
#define YY_BREAK break;
X
#define YY_END_OF_BUFFER_CHAR 0
X
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE (YY_READ_BUF_SIZE * 2) /* size of default input buffer */
#endif
X
typedef struct yy_buffer_state *YY_BUFFER_STATE;
X
#define YY_CHAR char
# line 1 "m2latex.l"
#define INITIAL 0
/*
X * This is a flex input file but should be edited in -*-C-*- mode
X *
X * Modula2LaTeX 1.0:
X * Produce prettyprinted LaTeX files from Modula-2 or Pascal sources.
X *
X * Copyright (C) 1991 Joerg Heitkoetter
X * Systems Analysis Group, University of Dortmund
X * (heitkoet@gorbi.informatik.uni-dortmund.de).
X *
X * This program is free software; you can redistribute it and/or modify
X * it under the terms of the GNU General Public License as published by
X * the Free Software Foundation; either version 1, or (at your option)
X * any later version.
X *
X * This program is distributed in the hope that it will be useful,
X * but WITHOUT ANY WARRANTY; without even the implied warranty of
X * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
X * GNU General Public License for more details.
X *
X * You should have received a copy of the GNU General Public License
X * along with this program; if not, write to the Free Software
X * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
X *
X */
#define STRING 1
#define COMMENT 2
#define MODULA2 3
# line 31 "m2latex.l"
#define KEY printf ("{\\%s %s}", keyword_font, yytext)
#define STDFUN unput("("); printf ("{\\%s %s} (", stdfun_font, yytext)
#define SYM(x) printf ("$\\%s$", x)
#define OUT(x) printf ("%s", x)
#define CTAB printf ("\\hspace*{%d\\indentation}", tabtocomment)
#define FONT(x) printf ("{\\%s ",x);
#define SUB(x) substitute(x)
#define IND indent(yytext)
#define INIT BEGIN (modula_mode ? MODULA2 : INITIAL);
#define REPARSE yyless (0)
X
#include <stdio.h>
X
#define ON (1)
#define OFF (0)
X
int modula_mode = ON;
X
int complete_file = OFF;
int header = OFF;
int tabtotab = 8;
int piped = OFF;
X
int aligntoright = ON; /* align comments to the right -joke */
int tabtocomment = 4; /* distance between statement and corresponding comment -joke */
X
char *indentation = "0.5em";
X
char* font_size = "10";
char* comment_font = "it";
char* keyword_font = "bf";
char* header_font = "sl";
char* stdfun_font = "bf";
char* string_font = "tt";
X
#ifdef __STDC__
void substitute(const char*);
void indent(const char*);
void newpage(int);
void usage(const char*);
#else
void substitute();
void indent();
void newpage();
void usage();
#endif
# line 79 "m2latex.l"
X
/* done after the current pattern has been matched and before the
X * corresponding action - sets up yytext
X */
#define YY_DO_BEFORE_ACTION \
X yytext = yy_bp; \
X yyleng = yy_cp - yy_bp; \
X yy_hold_char = *yy_cp; \
X *yy_cp = '\0'; \
X yy_c_buf_p = yy_cp;
X
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
X
/* return all but the first 'n' matched characters back to the input stream */
#define yyless(n) \
X do \
X { \
X /* undo effects of setting up yytext */ \
X *yy_cp = yy_hold_char; \
X yy_c_buf_p = yy_cp = yy_bp + n; \
X YY_DO_BEFORE_ACTION; /* set up yytext again */ \
X } \
X while ( 0 )
X
#define unput(c) yyunput( c, yytext )
X
X
struct yy_buffer_state
X {
X FILE *yy_input_file;
X
X YY_CHAR *yy_ch_buf; /* input buffer */
X YY_CHAR *yy_buf_pos; /* current position in input buffer */
X
X /* size of input buffer in bytes, not including room for EOB characters*/
X int yy_buf_size;
X
X /* number of characters read into yy_ch_buf, not including EOB characters */
X int yy_n_chars;
X
X int yy_eof_status; /* whether we've seen an EOF on this buffer */
#define EOF_NOT_SEEN 0
X /* "pending" happens when the EOF has been seen but there's still
X * some text process
X */
#define EOF_PENDING 1
#define EOF_DONE 2
X };
X
static YY_BUFFER_STATE yy_current_buffer;
X
/* we provide macros for accessing buffer states in case in the
X * future we want to put the buffer states in a more general
X * "scanner state"
X */
#define YY_CURRENT_BUFFER yy_current_buffer
X
X
/* yy_hold_char holds the character lost when yytext is formed */
static YY_CHAR yy_hold_char;
X
static int yy_n_chars; /* number of characters read into yy_ch_buf */
X
X
X
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif
X
#ifndef YY_USER_INIT
#define YY_USER_INIT
#endif
X
extern YY_CHAR *yytext;
extern int yyleng;
extern FILE *yyin, *yyout;
X
YY_CHAR *yytext;
int yyleng;
X
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
X
#define YY_END_OF_BUFFER 136
typedef int yy_state_type;
static const short int yy_accept[591] =
X { 0,
X 0, 0, 0, 0, 0, 0, 0, 0, 136, 135,
X 132, 134, 133, 112, 114, 100, 101, 81, 97, 93,
X 96, 94, 98, 123, 123, 91, 95, 86, 92, 87,
X 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
X 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
X 102, 135, 103, 82, 88, 83, 89, 131, 100, 118,
X 116, 113, 115, 117, 111, 110, 109, 111, 84, 104,
X 90, 104, 104, 104, 104, 104, 104, 104, 104, 104,
X 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
X 104, 104, 85, 132, 133, 0, 0, 107, 119, 120,
X
X 123, 123, 0, 123, 0, 99, 78, 80, 79, 105,
X 105, 105, 105, 105, 105, 105, 105, 105, 29, 105,
X 105, 105, 105, 105, 105, 105, 37, 39, 112, 114,
X 105, 105, 105, 105, 105, 41, 42, 105, 105, 105,
X 105, 105, 105, 105, 105, 50, 105, 105, 105, 105,
X 105, 105, 130, 131, 0, 106, 117, 110, 108, 104,
X 104, 104, 104, 104, 104, 104, 104, 66, 104, 104,
X 104, 104, 104, 29, 104, 104, 104, 104, 104, 104,
X 104, 104, 104, 37, 104, 39, 104, 104, 104, 104,
X 104, 104, 104, 104, 41, 42, 104, 104, 104, 104,
X
X 104, 104, 104, 104, 104, 104, 104, 50, 104, 104,
X 104, 104, 104, 104, 124, 0, 124, 0, 0, 0,
X 119, 119, 0, 120, 123, 0, 121, 129, 24, 105,
X 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
X 32, 105, 34, 105, 105, 105, 105, 105, 105, 60,
X 40, 105, 105, 105, 105, 105, 105, 105, 105, 105,
X 47, 105, 105, 105, 105, 105, 105, 53, 105, 105,
X 106, 104, 24, 104, 104, 104, 104, 104, 104, 104,
X 104, 104, 104, 104, 104, 104, 104, 104, 104, 32,
X 104, 104, 104, 104, 34, 104, 104, 104, 104, 104,
X
X 104, 104, 104, 104, 104, 104, 104, 60, 40, 104,
X 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
X 104, 47, 104, 104, 104, 104, 104, 104, 104, 104,
X 53, 104, 104, 125, 126, 0, 0, 0, 121, 119,
X 0, 122, 129, 105, 105, 105, 27, 57, 0, 1,
X 105, 105, 0, 2, 105, 31, 33, 36, 105, 38,
X 105, 0, 4, 0, 5, 0, 8, 0, 7, 105,
X 105, 105, 58, 105, 105, 105, 105, 105, 49, 105,
X 51, 105, 105, 55, 0, 12, 104, 104, 104, 104,
X 0, 13, 104, 27, 57, 104, 0, 22, 104, 104,
X
X 104, 31, 104, 104, 33, 104, 104, 104, 36, 104,
X 38, 104, 104, 104, 0, 23, 104, 104, 73, 0,
X 19, 0, 18, 104, 104, 104, 104, 65, 104, 58,
X 104, 104, 104, 104, 104, 104, 104, 49, 104, 51,
X 104, 0, 21, 104, 55, 0, 127, 0, 25, 26,
X 105, 28, 105, 105, 105, 105, 105, 0, 9, 105,
X 105, 105, 105, 105, 0, 6, 105, 52, 54, 25,
X 26, 104, 104, 104, 28, 104, 104, 104, 68, 0,
X 14, 104, 104, 104, 104, 0, 16, 104, 104, 0,
X 17, 104, 104, 104, 104, 104, 104, 0, 20, 104,
X
X 104, 104, 104, 104, 104, 104, 52, 54, 105, 105,
X 30, 105, 105, 43, 105, 45, 46, 0, 10, 48,
X 0, 11, 64, 104, 104, 104, 104, 30, 69, 0,
X 15, 104, 104, 104, 72, 104, 74, 43, 104, 104,
X 104, 45, 46, 76, 104, 104, 48, 59, 105, 105,
X 56, 105, 59, 104, 104, 104, 70, 104, 104, 56,
X 75, 104, 104, 104, 104, 0, 3, 35, 105, 62,
X 104, 35, 104, 104, 104, 104, 61, 44, 104, 104,
X 44, 77, 63, 67, 104, 104, 104, 104, 71, 0
X } ;
X
static const YY_CHAR yy_ec[128] =
X { 0,
X 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
X 1, 4, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 5, 6, 7, 8, 9, 6, 10, 11, 12,
X 13, 14, 15, 16, 17, 18, 19, 20, 21, 21,
X 21, 21, 21, 21, 21, 22, 22, 23, 24, 25,
X 26, 27, 28, 6, 29, 30, 31, 32, 33, 34,
X 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
X 45, 46, 47, 48, 49, 50, 51, 52, 53, 38,
X 54, 55, 56, 57, 38, 6, 58, 58, 59, 59,
X
X 60, 61, 38, 38, 38, 38, 38, 62, 38, 63,
X 38, 38, 38, 63, 38, 63, 64, 63, 38, 65,
X 38, 38, 66, 67, 68, 69, 1
X } ;
X
static const YY_CHAR yy_meta[70] =
X { 0,
X 1, 1, 1, 1, 2, 2, 2, 2, 3, 2,
X 4, 2, 2, 2, 2, 2, 2, 2, 2, 5,
X 5, 5, 2, 2, 2, 2, 2, 2, 5, 5,
X 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
X 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
X 6, 6, 6, 2, 2, 2, 2, 5, 5, 5,
X 5, 6, 6, 6, 6, 2, 2, 2, 2
X } ;
X
static const short int yy_base[600] =
X { 0,
X 0, 68, 68, 79, 86, 90, 104, 172, 1189, 1190,
X 72, 1190, 1185, 1190, 1132, 1172, 1190, 1190, 1190, 1190,
X 1190, 76, 1190, 167, 161, 1159, 1190, 75, 1190, 1158,
X 30, 143, 161, 155, 151, 153, 0, 1154, 171, 76,
X 1139, 175, 188, 149, 176, 191, 190, 1139, 1151, 178,
X 1190, 1176, 1190, 1190, 1190, 1190, 1190, 233, 1164, 1190,
X 1190, 1190, 1190, 239, 1190, 244, 1190, 1164, 1190, 0,
X 1190, 221, 219, 228, 233, 208, 238, 1167, 245, 249,
X 266, 256, 259, 271, 277, 246, 279, 280, 288, 252,
X 250, 289, 1190, 299, 1190, 1164, 325, 1190, 317, 334,
X
X 342, 379, 327, 1190, 0, 1190, 1190, 1190, 1190, 0,
X 1142, 1127, 1137, 1128, 1123, 281, 1127, 261, 1117, 1120,
X 1134, 1128, 1118, 1120, 1120, 1121, 0, 1112, 1190, 1104,
X 1126, 1106, 1116, 1107, 1122, 0, 1121, 1121, 297, 340,
X 1102, 1102, 1103, 1117, 1114, 0, 1097, 1101, 1096, 1097,
X 1105, 1093, 1190, 403, 1126, 1190, 313, 356, 1190, 0,
X 1130, 260, 334, 324, 171, 350, 364, 1129, 367, 343,
X 376, 400, 383, 202, 356, 378, 407, 384, 408, 412,
X 411, 416, 413, 1128, 291, 414, 415, 417, 423, 420,
X 426, 427, 428, 431, 1127, 438, 433, 437, 440, 450,
X
X 451, 441, 448, 457, 452, 462, 459, 1126, 463, 466,
X 469, 475, 472, 476, 1190, 1123, 1122, 483, 0, 505,
X 1190, 508, 516, 1190, 1190, 466, 485, 483, 0, 1103,
X 1094, 1090, 1096, 1082, 506, 1080, 1082, 538, 1083, 1091,
X 0, 1075, 0, 1081, 1090, 1072, 1086, 544, 549, 0,
X 0, 550, 555, 1079, 1085, 1085, 1075, 1071, 1080, 1070,
X 0, 1074, 1079, 1067, 1066, 1074, 1069, 0, 1065, 1068,
X 1190, 569, 1094, 505, 482, 488, 504, 570, 507, 544,
X 549, 571, 550, 582, 555, 554, 584, 557, 576, 1093,
X 579, 556, 581, 591, 592, 593, 596, 594, 597, 598,
X
X 606, 603, 601, 635, 646, 647, 648, 1092, 1091, 659,
X 660, 634, 612, 607, 654, 626, 658, 661, 666, 665,
X 667, 1090, 669, 668, 670, 671, 674, 673, 675, 685,
X 1089, 677, 672, 1190, 1190, 611, 1086, 608, 671, 1190,
X 698, 701, 1190, 1043, 1053, 1061, 0, 0, 698, 1190,
X 1045, 1049, 722, 1190, 1043, 0, 0, 0, 1042, 0,
X 1054, 723, 1190, 724, 1190, 728, 1190, 736, 1190, 1055,
X 737, 1054, 0, 1040, 1056, 1052, 1041, 741, 0, 1051,
X 0, 1041, 1047, 0, 742, 1190, 679, 722, 728, 736,
X 750, 1190, 741, 1070, 1069, 742, 754, 1190, 749, 751,
X
X 748, 1068, 69, 763, 1067, 754, 758, 761, 1066, 762,
X 1065, 771, 768, 765, 777, 1190, 783, 772, 1064, 797,
X 1190, 803, 1190, 777, 788, 775, 817, 794, 795, 826,
X 778, 784, 803, 805, 807, 809, 831, 1063, 680, 1062,
X 816, 840, 1190, 811, 1061, 1058, 1190, 1057, 0, 0,
X 1038, 0, 1019, 1022, 1027, 1030, 1030, 845, 1190, 1029,
X 1028, 1011, 856, 1023, 857, 1190, 858, 0, 0, 1044,
X 1040, 825, 837, 830, 1018, 839, 832, 821, 1017, 869,
X 1190, 844, 873, 845, 856, 882, 1190, 858, 868, 884,
X 1190, 874, 879, 881, 882, 886, 888, 896, 1190, 891,
X
X 893, 894, 912, 895, 896, 925, 1015, 1014, 979, 987,
X 0, 976, 972, 0, 964, 0, 0, 923, 1190, 0,
X 937, 1190, 1001, 901, 900, 897, 911, 1000, 998, 945,
X 1190, 910, 924, 929, 993, 902, 992, 991, 931, 937,
X 942, 990, 989, 983, 944, 945, 698, 0, 953, 660,
X 0, 649, 617, 950, 947, 959, 614, 951, 954, 608,
X 605, 957, 961, 960, 963, 973, 1190, 0, 469, 492,
X 965, 480, 967, 971, 973, 980, 372, 0, 972, 988,
X 312, 310, 305, 166, 974, 979, 982, 986, 90, 1190,
X 1028, 1034, 1039, 1041, 1045, 1049, 89, 80, 1052
X
X } ;
X
static const short int yy_def[600] =
X { 0,
X 590, 1, 591, 591, 592, 592, 590, 7, 590, 590,
X 590, 590, 590, 590, 593, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 595,
X 590, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 590, 590, 590, 590, 590, 590, 590, 590,
X
X 590, 590, 590, 590, 597, 590, 590, 590, 590, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 590, 593,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 590, 590, 590, 590, 590, 590, 590, 595,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 590, 590, 590, 590, 598, 590,
X 590, 590, 590, 590, 590, 590, 590, 597, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 590, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 590, 590, 590, 599, 590, 590, 590,
X 590, 590, 590, 594, 594, 594, 594, 594, 590, 590,
X 594, 594, 590, 590, 594, 594, 594, 594, 594, 594,
X 594, 590, 590, 590, 590, 590, 590, 590, 590, 594,
X 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
X 594, 594, 594, 594, 590, 590, 596, 596, 596, 596,
X 590, 590, 596, 596, 596, 596, 590, 590, 596, 596,
X
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 590, 590, 596, 596, 596, 590,
X 590, 590, 590, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 590, 590, 596, 596, 590, 590, 590, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 590, 590, 594,
X 594, 594, 594, 594, 590, 590, 594, 594, 594, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 590,
X 590, 596, 596, 596, 596, 590, 590, 596, 596, 590,
X 590, 596, 596, 596, 596, 596, 596, 590, 590, 596,
X
X 596, 596, 596, 596, 596, 596, 596, 596, 594, 594,
X 594, 594, 594, 594, 594, 594, 594, 590, 590, 594,
X 590, 590, 596, 596, 596, 596, 596, 596, 596, 590,
X 590, 596, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 594, 594, 594,
X 594, 594, 596, 596, 596, 596, 596, 596, 596, 596,
X 596, 596, 596, 596, 596, 590, 590, 594, 594, 596,
X 596, 596, 596, 596, 596, 596, 596, 594, 596, 596,
X 596, 596, 596, 596, 596, 596, 596, 596, 596, 0,
X 590, 590, 590, 590, 590, 590, 590, 590, 590
X
X } ;
X
static const short int yy_nxt[1260] =
X { 0,
X 10, 11, 12, 13, 11, 10, 14, 10, 10, 10,
X 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
X 25, 25, 26, 27, 28, 29, 30, 10, 31, 32,
X 33, 34, 35, 36, 37, 38, 39, 37, 37, 40,
X 41, 42, 43, 44, 37, 45, 46, 47, 48, 49,
X 50, 37, 37, 51, 52, 53, 54, 37, 37, 37,
X 37, 37, 37, 37, 37, 55, 56, 57, 10, 58,
X 61, 111, 58, 94, 62, 112, 94, 160, 63, 59,
X 64, 61, 129, 64, 337, 62, 130, 66, 67, 63,
X 66, 66, 67, 228, 66, 99, 99, 99, 160, 68,
X
X 107, 108, 479, 68, 10, 11, 12, 13, 11, 10,
X 14, 69, 70, 71, 15, 16, 17, 18, 19, 20,
X 21, 22, 23, 24, 25, 25, 26, 27, 28, 29,
X 30, 10, 72, 73, 74, 75, 76, 77, 78, 79,
X 80, 78, 78, 81, 82, 83, 84, 85, 86, 87,
X 88, 89, 90, 91, 92, 78, 78, 51, 52, 53,
X 54, 78, 78, 78, 78, 78, 78, 78, 78, 55,
X 56, 57, 93, 58, 160, 113, 58, 138, 100, 160,
X 102, 102, 102, 59, 100, 114, 101, 101, 102, 115,
X 120, 118, 121, 103, 139, 123, 116, 119, 124, 103,
X
X 104, 125, 122, 117, 127, 275, 104, 132, 140, 104,
X 160, 133, 128, 151, 152, 104, 160, 134, 141, 135,
X 103, 136, 104, 142, 104, 145, 103, 160, 104, 160,
X 104, 105, 146, 137, 154, 147, 160, 154, 143, 144,
X 157, 160, 148, 157, 155, 158, 160, 175, 158, 176,
X 162, 165, 288, 160, 160, 166, 169, 160, 160, 177,
X 160, 167, 163, 170, 160, 172, 164, 160, 160, 173,
X 171, 168, 129, 182, 160, 174, 130, 178, 212, 160,
X 179, 183, 184, 180, 188, 160, 181, 160, 160, 185,
X 186, 191, 189, 211, 200, 192, 160, 160, 190, 160,
X
X 94, 193, 194, 94, 195, 197, 272, 237, 187, 234,
X 238, 201, 203, 160, 157, 204, 196, 157, 160, 198,
X 160, 202, 199, 207, 213, 214, 235, 205, 206, 255,
X 208, 216, 160, 209, 300, 217, 99, 99, 99, 256,
X 210, 226, 160, 226, 218, 218, 227, 227, 227, 220,
X 221, 160, 216, 222, 222, 222, 221, 158, 160, 100,
X 158, 101, 101, 102, 160, 273, 223, 224, 257, 274,
X 258, 281, 160, 224, 103, 160, 220, 221, 221, 216,
X 160, 225, 216, 259, 160, 216, 160, 216, 282, 219,
X 225, 160, 160, 223, 224, 224, 100, 276, 102, 102,
X
X 102, 103, 289, 225, 154, 225, 277, 154, 160, 290,
X 278, 103, 279, 280, 155, 160, 160, 283, 104, 160,
X 160, 160, 160, 160, 160, 160, 294, 104, 160, 286,
X 284, 160, 287, 285, 160, 160, 160, 291, 103, 160,
X 104, 160, 104, 292, 301, 160, 160, 299, 160, 160,
X 293, 306, 297, 295, 296, 298, 160, 303, 160, 160,
X 160, 302, 310, 312, 305, 160, 308, 160, 304, 311,
X 160, 160, 314, 313, 160, 309, 307, 160, 316, 317,
X 160, 318, 315, 160, 160, 227, 227, 227, 160, 321,
X 160, 326, 325, 335, 319, 322, 160, 324, 320, 323,
X
X 160, 578, 336, 336, 227, 227, 227, 349, 332, 328,
X 349, 327, 160, 160, 330, 160, 329, 350, 388, 338,
X 331, 338, 343, 333, 339, 339, 339, 222, 222, 222,
X 341, 343, 341, 387, 389, 342, 342, 342, 393, 353,
X 103, 340, 353, 390, 343, 362, 343, 340, 362, 354,
X 364, 366, 160, 364, 366, 363, 368, 160, 160, 368,
X 365, 367, 160, 160, 160, 160, 369, 103, 340, 340,
X 385, 391, 349, 385, 391, 349, 394, 160, 160, 160,
X 386, 392, 350, 397, 160, 353, 397, 160, 353, 160,
X 160, 399, 160, 398, 395, 354, 396, 400, 401, 160,
X
X 160, 160, 160, 405, 160, 160, 160, 415, 402, 160,
X 415, 160, 403, 160, 160, 160, 160, 416, 404, 407,
X 160, 335, 160, 406, 408, 160, 410, 339, 339, 339,
X 446, 446, 412, 409, 160, 418, 420, 413, 427, 420,
X 414, 411, 160, 160, 419, 417, 421, 422, 362, 364,
X 422, 362, 364, 426, 160, 160, 160, 423, 363, 365,
X 366, 368, 160, 366, 368, 429, 160, 160, 160, 160,
X 367, 369, 425, 160, 160, 160, 160, 160, 160, 160,
X 160, 160, 160, 160, 428, 160, 442, 160, 160, 442,
X 339, 339, 339, 160, 569, 424, 443, 430, 432, 349,
X
X 437, 568, 349, 431, 436, 440, 160, 445, 434, 350,
X 506, 441, 438, 433, 435, 439, 444, 342, 342, 342,
X 342, 342, 342, 353, 362, 364, 353, 362, 364, 366,
X 160, 470, 366, 354, 363, 365, 160, 368, 458, 367,
X 368, 458, 465, 385, 160, 465, 385, 369, 459, 160,
X 160, 391, 466, 386, 391, 397, 160, 160, 397, 160,
X 472, 392, 160, 471, 480, 398, 160, 480, 473, 160,
X 160, 160, 486, 160, 481, 486, 160, 474, 415, 160,
X 160, 415, 487, 160, 490, 160, 160, 490, 416, 475,
X 476, 160, 160, 477, 491, 478, 160, 484, 420, 482,
X
X 488, 420, 160, 160, 422, 483, 492, 422, 421, 485,
X 489, 160, 501, 160, 423, 160, 493, 160, 458, 160,
X 494, 458, 495, 500, 160, 160, 496, 498, 459, 160,
X 498, 497, 465, 160, 160, 465, 503, 499, 160, 160,
X 160, 442, 466, 508, 442, 160, 458, 160, 502, 458,
X 505, 443, 160, 160, 504, 507, 459, 518, 465, 521,
X 518, 465, 521, 528, 160, 524, 160, 519, 466, 522,
X 480, 525, 523, 480, 530, 526, 160, 530, 527, 532,
X 481, 160, 160, 486, 531, 490, 486, 160, 490, 160,
X 160, 529, 533, 487, 160, 491, 160, 498, 534, 160,
X
X 498, 160, 160, 160, 160, 160, 536, 499, 160, 160,
X 160, 537, 538, 518, 539, 535, 518, 540, 160, 160,
X 160, 541, 542, 519, 518, 545, 521, 518, 554, 521,
X 547, 546, 160, 160, 519, 544, 522, 160, 521, 160,
X 543, 521, 553, 556, 555, 160, 530, 560, 522, 530,
X 160, 557, 160, 160, 566, 160, 531, 566, 160, 160,
X 566, 559, 160, 566, 567, 160, 558, 160, 160, 160,
X 567, 160, 564, 160, 566, 160, 561, 566, 563, 160,
X 160, 160, 160, 571, 567, 562, 565, 160, 160, 570,
X 160, 160, 572, 575, 160, 573, 160, 160, 160, 160,
X
X 160, 160, 574, 581, 582, 576, 160, 579, 160, 160,
X 577, 583, 552, 584, 580, 587, 585, 551, 550, 549,
X 548, 586, 160, 160, 588, 160, 160, 589, 60, 60,
X 60, 60, 60, 60, 65, 65, 65, 65, 65, 65,
X 96, 96, 96, 96, 96, 110, 110, 160, 160, 160,
X 160, 161, 160, 161, 161, 448, 448, 520, 517, 516,
X 515, 514, 513, 512, 511, 510, 509, 447, 335, 160,
X 160, 160, 160, 160, 160, 160, 160, 160, 160, 469,
X 468, 467, 464, 463, 462, 461, 460, 457, 456, 455,
X 454, 453, 452, 451, 450, 449, 447, 160, 160, 160,
X
X 160, 160, 160, 384, 383, 382, 381, 380, 379, 378,
X 377, 376, 375, 374, 373, 372, 371, 370, 361, 360,
X 359, 358, 357, 356, 355, 352, 351, 348, 347, 346,
X 345, 344, 334, 334, 160, 160, 160, 160, 160, 271,
X 270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
X 260, 254, 253, 252, 251, 250, 249, 248, 97, 247,
X 246, 245, 244, 243, 242, 241, 240, 239, 236, 233,
X 232, 231, 230, 229, 215, 160, 159, 156, 153, 150,
X 149, 131, 126, 109, 106, 98, 97, 95, 590, 9,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590
X } ;
X
static const short int yy_chk[1260] =
X { 0,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
X 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
X 3, 31, 2, 11, 3, 31, 11, 403, 3, 2,
X 4, 4, 40, 4, 598, 4, 40, 5, 5, 4,
X 5, 6, 6, 597, 6, 22, 22, 22, 589, 5,
X
X 28, 28, 403, 6, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
X 7, 7, 7, 8, 584, 32, 8, 44, 25, 165,
X 25, 25, 25, 8, 24, 32, 24, 24, 24, 33,
X 35, 34, 35, 25, 44, 36, 33, 34, 36, 24,
X
X 25, 36, 35, 33, 39, 165, 24, 42, 45, 25,
X 174, 42, 39, 50, 50, 24, 76, 42, 45, 43,
X 25, 43, 25, 46, 25, 47, 24, 73, 24, 72,
X 24, 24, 47, 43, 58, 47, 74, 58, 46, 46,
X 64, 75, 47, 64, 58, 66, 77, 76, 66, 76,
X 72, 73, 174, 79, 86, 73, 74, 80, 91, 76,
X 90, 73, 72, 74, 82, 75, 72, 83, 162, 75,
X 74, 73, 81, 79, 81, 75, 81, 77, 91, 84,
X 77, 79, 80, 77, 82, 85, 77, 87, 88, 80,
X 80, 83, 82, 90, 86, 83, 89, 92, 82, 185,
X
X 94, 83, 84, 94, 84, 85, 162, 118, 81, 116,
X 118, 87, 88, 583, 157, 88, 84, 157, 582, 85,
X 581, 87, 85, 89, 92, 92, 116, 88, 88, 139,
X 89, 97, 164, 89, 185, 97, 99, 99, 99, 139,
X 89, 103, 163, 103, 97, 97, 103, 103, 103, 99,
X 99, 170, 97, 100, 100, 100, 99, 158, 166, 101,
X 158, 101, 101, 101, 175, 163, 100, 100, 140, 164,
X 140, 170, 167, 100, 101, 169, 99, 99, 99, 97,
X 577, 101, 97, 140, 171, 97, 176, 97, 170, 97,
X 101, 173, 178, 100, 100, 100, 102, 166, 102, 102,
X
X 102, 101, 175, 101, 154, 101, 167, 154, 172, 176,
X 169, 102, 169, 169, 154, 177, 179, 171, 102, 181,
X 180, 183, 186, 187, 182, 188, 178, 102, 190, 173,
X 172, 189, 173, 172, 191, 192, 193, 177, 102, 194,
X 102, 197, 102, 177, 186, 198, 196, 183, 199, 202,
X 177, 190, 181, 179, 180, 182, 203, 187, 200, 201,
X 205, 186, 194, 197, 189, 204, 192, 207, 188, 196,
X 206, 209, 199, 198, 210, 193, 191, 211, 200, 201,
X 213, 201, 199, 212, 214, 226, 226, 226, 572, 202,
X 275, 207, 206, 218, 201, 203, 276, 205, 201, 204,
X
X 570, 569, 218, 218, 227, 227, 227, 235, 213, 210,
X 235, 209, 277, 274, 212, 279, 211, 235, 275, 220,
X 212, 220, 228, 214, 220, 220, 220, 222, 222, 222,
X 223, 228, 223, 274, 276, 223, 223, 223, 279, 238,
X 222, 222, 238, 277, 228, 248, 228, 222, 248, 238,
X 249, 252, 280, 249, 252, 248, 253, 281, 283, 253,
X 249, 252, 286, 285, 292, 288, 253, 222, 222, 222,
X 272, 278, 282, 272, 278, 282, 280, 272, 278, 282,
X 272, 278, 282, 284, 289, 287, 284, 291, 287, 293,
X 284, 285, 287, 284, 281, 287, 283, 286, 288, 294,
X
X 295, 296, 298, 292, 297, 299, 300, 301, 289, 303,
X 301, 302, 289, 561, 301, 314, 560, 301, 291, 294,
X 313, 336, 557, 293, 295, 553, 297, 338, 338, 338,
X 336, 336, 299, 296, 316, 302, 304, 300, 314, 304,
X 300, 298, 312, 304, 303, 301, 304, 305, 306, 307,
X 305, 306, 307, 313, 305, 306, 307, 305, 306, 307,
X 310, 311, 315, 310, 311, 316, 317, 310, 311, 318,
X 310, 311, 312, 320, 319, 321, 324, 323, 325, 326,
X 333, 328, 327, 329, 315, 332, 330, 387, 439, 330,
X 339, 339, 339, 330, 552, 306, 330, 317, 319, 349,
X
X 325, 550, 349, 318, 324, 328, 547, 333, 321, 349,
X 439, 329, 326, 320, 323, 327, 332, 341, 341, 341,
X 342, 342, 342, 353, 362, 364, 353, 362, 364, 366,
X 388, 387, 366, 353, 362, 364, 389, 368, 371, 366,
X 368, 371, 378, 385, 390, 378, 385, 368, 371, 393,
X 396, 391, 378, 385, 391, 397, 401, 399, 397, 400,
X 389, 391, 406, 388, 404, 397, 407, 404, 390, 408,
X 410, 404, 412, 414, 404, 412, 413, 393, 415, 412,
X 418, 415, 412, 426, 417, 424, 431, 417, 415, 396,
X 399, 417, 432, 400, 417, 401, 425, 408, 420, 406,
X
X 413, 420, 428, 429, 422, 407, 418, 422, 420, 410,
X 414, 433, 432, 434, 422, 435, 424, 436, 427, 444,
X 425, 427, 426, 431, 441, 427, 428, 430, 427, 478,
X 430, 429, 437, 472, 430, 437, 434, 430, 474, 437,
X 477, 442, 437, 444, 442, 473, 458, 476, 433, 458,
X 436, 442, 482, 484, 435, 441, 458, 463, 465, 467,
X 463, 465, 467, 478, 485, 473, 488, 463, 465, 467,
X 480, 474, 472, 480, 483, 476, 489, 483, 477, 484,
X 480, 483, 492, 486, 483, 490, 486, 493, 490, 494,
X 495, 482, 485, 486, 496, 490, 497, 498, 488, 500,
X
X 498, 501, 502, 504, 505, 526, 492, 498, 525, 524,
X 536, 493, 494, 503, 495, 489, 503, 496, 532, 527,
X 503, 497, 500, 503, 518, 504, 506, 518, 525, 506,
X 505, 504, 533, 506, 518, 502, 506, 534, 521, 539,
X 501, 521, 524, 527, 526, 540, 530, 536, 521, 530,
X 541, 532, 545, 546, 549, 555, 530, 549, 554, 558,
X 556, 534, 559, 556, 549, 562, 533, 556, 564, 563,
X 556, 565, 545, 571, 566, 573, 539, 566, 541, 574,
X 579, 575, 585, 555, 566, 540, 546, 586, 576, 554,
X 587, 544, 558, 563, 588, 559, 580, 543, 542, 538,
X
X 537, 535, 562, 574, 575, 564, 529, 571, 528, 523,
X 565, 576, 515, 579, 573, 586, 580, 513, 512, 510,
X 509, 585, 508, 507, 587, 479, 475, 588, 591, 591,
X 591, 591, 591, 591, 592, 592, 592, 592, 592, 592,
X 593, 593, 593, 593, 593, 594, 594, 595, 471, 595,
X 595, 596, 470, 596, 596, 599, 599, 464, 462, 461,
X 460, 457, 456, 455, 454, 453, 451, 448, 446, 445,
X 440, 438, 419, 411, 409, 405, 402, 395, 394, 383,
X 382, 380, 377, 376, 375, 374, 372, 370, 361, 359,
X 355, 352, 351, 346, 345, 344, 337, 331, 322, 309,
X
X 308, 290, 273, 270, 269, 267, 266, 265, 264, 263,
X 262, 260, 259, 258, 257, 256, 255, 254, 247, 246,
X 245, 244, 242, 240, 239, 237, 236, 234, 233, 232,
X 231, 230, 217, 216, 208, 195, 184, 168, 161, 155,
X 152, 151, 150, 149, 148, 147, 145, 144, 143, 142,
X 141, 138, 137, 135, 134, 133, 132, 131, 130, 128,
X 126, 125, 124, 123, 122, 121, 120, 119, 117, 115,
X 114, 113, 112, 111, 96, 78, 68, 59, 52, 49,
X 48, 41, 38, 30, 26, 16, 15, 13, 9, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
X 590, 590, 590, 590, 590, 590, 590, 590, 590
X } ;
X
static yy_state_type yy_last_accepting_state;
static YY_CHAR *yy_last_accepting_cpos;
X
/* the intent behind this definition is that it'll catch
X * any uses of REJECT which flex missed
X */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
X
/* these variables are all declared out here so that section 3 code can
X * manipulate them
X */
/* points to current character in buffer */
static YY_CHAR *yy_c_buf_p = (YY_CHAR *) 0;
static int yy_init = 1; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
X
/* flag which is used to allow yywrap()'s to do buffer switches
X * instead of setting up a fresh yyin. A bit of a hack ...
X */
static int yy_did_buffer_switch_on_eof;
X
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
static int yy_get_next_buffer YY_PROTO(( void ));
static void yyunput YY_PROTO(( YY_CHAR c, YY_CHAR *buf_ptr ));
void yyrestart YY_PROTO(( FILE *input_file ));
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
void yy_load_buffer_state YY_PROTO(( void ));
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
X
#define yy_new_buffer yy_create_buffer
X
#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
#else
static int input YY_PROTO(( void ));
#endif
X
YY_DECL
X {
X register yy_state_type yy_current_state;
X register YY_CHAR *yy_cp, *yy_bp;
X register int yy_act;
X
X
X
X INIT;
X
X
X if ( yy_init )
X {
X YY_USER_INIT;
X
X if ( ! yy_start )
X yy_start = 1; /* first start state */
X
X if ( ! yyin )
X yyin = stdin;
X
X if ( ! yyout )
X yyout = stdout;
X
X if ( yy_current_buffer )
X yy_init_buffer( yy_current_buffer, yyin );
X else
X yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
X
X yy_load_buffer_state();
X
X yy_init = 0;
X }
X
X while ( 1 ) /* loops until end-of-file is reached */
X {
X yy_cp = yy_c_buf_p;
X
X /* support of yytext */
X *yy_cp = yy_hold_char;
X
X /* yy_bp points to the position in yy_ch_buf of the start of the
X * current run.
X */
X yy_bp = yy_cp;
X
X yy_current_state = yy_start;
X if ( yy_bp[-1] == '\n' )
X ++yy_current_state;
yy_match:
X do
X {
X register YY_CHAR yy_c = yy_ec[*yy_cp];
X if ( yy_accept[yy_current_state] )
X {
X yy_last_accepting_state = yy_current_state;
X yy_last_accepting_cpos = yy_cp;
X }
X while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
X {
X yy_current_state = yy_def[yy_current_state];
X if ( yy_current_state >= 591 )
X yy_c = yy_meta[yy_c];
X }
X yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
X ++yy_cp;
X }
X while ( yy_current_state != 590 );
X yy_cp = yy_last_accepting_cpos;
X yy_current_state = yy_last_accepting_state;
X
yy_find_action:
X yy_act = yy_accept[yy_current_state];
X
X YY_DO_BEFORE_ACTION;
X YY_USER_ACTION;
X
do_action: /* this label is used only to access EOF actions */
X
X
X switch ( yy_act )
X {
X case 0: /* must backtrack */
X /* undo the effects of YY_DO_BEFORE_ACTION */
X *yy_cp = yy_hold_char;
X yy_cp = yy_last_accepting_cpos;
X yy_current_state = yy_last_accepting_state;
X goto yy_find_action;
X
case 1:
# line 84 "m2latex.l"
case 2:
# line 85 "m2latex.l"
case 3:
# line 86 "m2latex.l"
case 4:
# line 87 "m2latex.l"
case 5:
# line 88 "m2latex.l"
case 6:
# line 89 "m2latex.l"
case 7:
# line 90 "m2latex.l"
case 8:
# line 91 "m2latex.l"
case 9:
# line 92 "m2latex.l"
case 10:
# line 93 "m2latex.l"
case 11:
# line 94 "m2latex.l"
case 12:
# line 95 "m2latex.l"
case 13:
# line 96 "m2latex.l"
case 14:
# line 97 "m2latex.l"
case 15:
# line 98 "m2latex.l"
case 16:
# line 99 "m2latex.l"
case 17:
# line 100 "m2latex.l"
case 18:
# line 101 "m2latex.l"
case 19:
# line 102 "m2latex.l"
case 20:
# line 103 "m2latex.l"
case 21:
# line 104 "m2latex.l"
case 22:
# line 105 "m2latex.l"
case 23:
# line 105 "m2latex.l"
STDFUN;
X YY_BREAK
case 24:
# line 108 "m2latex.l"
case 25:
# line 109 "m2latex.l"
case 26:
# line 110 "m2latex.l"
case 27:
# line 111 "m2latex.l"
case 28:
# line 112 "m2latex.l"
case 29:
# line 113 "m2latex.l"
case 30:
# line 114 "m2latex.l"
case 31:
# line 115 "m2latex.l"
case 32:
# line 116 "m2latex.l"
case 33:
# line 117 "m2latex.l"
case 34:
# line 118 "m2latex.l"
case 35:
# line 119 "m2latex.l"
case 36:
# line 120 "m2latex.l"
case 37:
# line 121 "m2latex.l"
case 38:
# line 122 "m2latex.l"
case 39:
# line 123 "m2latex.l"
case 40:
# line 124 "m2latex.l"
case 41:
# line 125 "m2latex.l"
case 42:
# line 126 "m2latex.l"
case 43:
# line 127 "m2latex.l"
case 44:
# line 128 "m2latex.l"
case 45:
# line 129 "m2latex.l"
case 46:
# line 130 "m2latex.l"
case 47:
# line 131 "m2latex.l"
case 48:
# line 132 "m2latex.l"
case 49:
# line 133 "m2latex.l"
case 50:
# line 134 "m2latex.l"
case 51:
# line 135 "m2latex.l"
case 52:
# line 136 "m2latex.l"
case 53:
# line 137 "m2latex.l"
case 54:
# line 138 "m2latex.l"
case 55:
# line 139 "m2latex.l"
case 56:
# line 140 "m2latex.l"
case 57:
# line 141 "m2latex.l"
case 58:
# line 142 "m2latex.l"
case 59:
# line 143 "m2latex.l"
case 60:
# line 144 "m2latex.l"
case 61:
# line 145 "m2latex.l"
case 62:
# line 146 "m2latex.l"
case 63:
# line 147 "m2latex.l"
case 64:
# line 148 "m2latex.l"
case 65:
# line 149 "m2latex.l"
case 66:
# line 150 "m2latex.l"
case 67:
# line 151 "m2latex.l"
case 68:
# line 152 "m2latex.l"
case 69:
# line 153 "m2latex.l"
case 70:
# line 154 "m2latex.l"
case 71:
# line 155 "m2latex.l"
case 72:
# line 156 "m2latex.l"
case 73:
# line 157 "m2latex.l"
case 74:
# line 158 "m2latex.l"
case 75:
# line 159 "m2latex.l"
case 76:
# line 160 "m2latex.l"
case 77:
# line 160 "m2latex.l"
KEY;
X YY_BREAK
case 78:
# line 162 "m2latex.l"
SYM ("leq");
X YY_BREAK
case 79:
# line 163 "m2latex.l"
SYM ("geq");
X YY_BREAK
case 80:
# line 164 "m2latex.l"
SYM ("neq");
X YY_BREAK
case 81:
# line 165 "m2latex.l"
SYM ("ast");
X YY_BREAK
case 82:
# line 166 "m2latex.l"
SYM ("wedge");
X YY_BREAK
case 83:
# line 167 "m2latex.l"
SYM ("mid");
X YY_BREAK
case 84:
# line 168 "m2latex.l"
SYM ("neq");
X YY_BREAK
case 85:
# line 169 "m2latex.l"
SYM ("sim");
X YY_BREAK
case 86:
# line 170 "m2latex.l"
OUT ("$<$");
X YY_BREAK
case 87:
# line 171 "m2latex.l"
OUT ("$>$");
X YY_BREAK
case 88:
# line 172 "m2latex.l"
OUT ("\\{");
X YY_BREAK
case 89:
# line 173 "m2latex.l"
OUT ("\\}");
X YY_BREAK
case 90:
# line 174 "m2latex.l"
OUT ("\\&");
X YY_BREAK
case 91:
# line 176 "m2latex.l"
case 92:
# line 177 "m2latex.l"
case 93:
# line 178 "m2latex.l"
case 94:
# line 179 "m2latex.l"
case 95:
# line 180 "m2latex.l"
case 96:
# line 181 "m2latex.l"
case 97:
# line 182 "m2latex.l"
case 98:
# line 183 "m2latex.l"
case 99:
# line 184 "m2latex.l"
case 100:
# line 185 "m2latex.l"
case 101:
# line 186 "m2latex.l"
case 102:
# line 187 "m2latex.l"
case 103:
# line 187 "m2latex.l"
ECHO;
X YY_BREAK
case 104:
# line 190 "m2latex.l"
case 105:
# line 190 "m2latex.l"
SUB (yytext);
X YY_BREAK
case 106:
# line 192 "m2latex.l"
{ BEGIN (COMMENT);
X FONT (comment_font);
X REPARSE; }
X YY_BREAK
case 107:
# line 196 "m2latex.l"
{ BEGIN (COMMENT);
X if (aligntoright) {
X OUT ("\\hfill");
X } else {
X CTAB;
X }
X FONT (comment_font);
X OUT ("($\\ast$"); }
X YY_BREAK
case 108:
# line 205 "m2latex.l"
{ INIT; OUT ("$\\ast$)}"); }
X YY_BREAK
case 109:
# line 206 "m2latex.l"
OUT ("\\mbox{}\\\\\n");
X YY_BREAK
case 110:
# line 207 "m2latex.l"
IND;
X YY_BREAK
case 111:
# line 208 "m2latex.l"
SUB (yytext);
X YY_BREAK
case 112:
# line 210 "m2latex.l"
{ BEGIN (STRING);
X FONT (string_font); OUT ("\""); }
X YY_BREAK
case 113:
# line 212 "m2latex.l"
{ INIT; OUT ("\"}"); }
X YY_BREAK
case 114:
# line 214 "m2latex.l"
{ BEGIN (STRING);
X FONT (string_font); OUT ("'"); }
X YY_BREAK
case 115:
# line 216 "m2latex.l"
{ INIT; OUT ("'}"); }
X YY_BREAK
case 116:
# line 217 "m2latex.l"
OUT ("\\mbox{}\\\\\n");
X YY_BREAK
case 117:
# line 218 "m2latex.l"
IND;
X YY_BREAK
case 118:
# line 219 "m2latex.l"
SUB (yytext);
X YY_BREAK
case 119:
# line 222 "m2latex.l"
case 120:
# line 223 "m2latex.l"
case 121:
# line 224 "m2latex.l"
case 122:
# line 224 "m2latex.l"
ECHO;
X YY_BREAK
case 123:
# line 226 "m2latex.l"
ECHO;
X YY_BREAK
case 124:
# line 229 "m2latex.l"
case 125:
# line 230 "m2latex.l"
case 126:
# line 231 "m2latex.l"
case 127:
# line 231 "m2latex.l"
SUB (yytext);
X YY_BREAK
case 128:
# line 233 "m2latex.l"
ECHO;
X YY_BREAK
case 129:
# line 235 "m2latex.l"
ECHO;
X YY_BREAK
case 130:
# line 237 "m2latex.l"
OUT ("$\\backslash$\\\\\n");
X YY_BREAK
case 131:
# line 238 "m2latex.l"
IND;
X YY_BREAK
case 132:
# line 239 "m2latex.l"
ECHO;
X YY_BREAK
case 133:
# line 240 "m2latex.l"
OUT ("\\newpage\n");
X YY_BREAK
case 134:
# line 241 "m2latex.l"
OUT ("\\mbox{}\\\\\n");
X YY_BREAK
case 135:
# line 243 "m2latex.l"
ECHO;
X YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(STRING):
case YY_STATE_EOF(COMMENT):
case YY_STATE_EOF(MODULA2):
X yyterminate();
X
X case YY_END_OF_BUFFER:
X {
X /* amount of text matched not including the EOB char */
X int yy_amount_of_matched_text = yy_cp - yytext - 1;
X
X /* undo the effects of YY_DO_BEFORE_ACTION */
X *yy_cp = yy_hold_char;
X
X /* note that here we test for yy_c_buf_p "<=" to the position
X * of the first EOB in the buffer, since yy_c_buf_p will
X * already have been incremented past the NUL character
X * (since all states make transitions on EOB to the end-
X * of-buffer state). Contrast this with the test in yyinput().
X */
X if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
X /* this was really a NUL */
X {
X yy_state_type yy_next_state;
X
X yy_c_buf_p = yytext + yy_amount_of_matched_text;
X
X yy_current_state = yy_get_previous_state();
X
X /* okay, we're now positioned to make the
X * NUL transition. We couldn't have
X * yy_get_previous_state() go ahead and do it
X * for us because it doesn't know how to deal
X * with the possibility of jamming (and we
X * don't want to build jamming into it because
X * then it will run more slowly)
X */
X
X yy_next_state = yy_try_NUL_trans( yy_current_state );
X
X yy_bp = yytext + YY_MORE_ADJ;
X
X if ( yy_next_state )
X {
X /* consume the NUL */
X yy_cp = ++yy_c_buf_p;
X yy_current_state = yy_next_state;
X goto yy_match;
X }
X
X else
X {
X yy_cp = yy_last_accepting_cpos;
X yy_current_state = yy_last_accepting_state;
X goto yy_find_action;
X }
X }
X
X else switch ( yy_get_next_buffer() )
X {
X case EOB_ACT_END_OF_FILE:
X {
X yy_did_buffer_switch_on_eof = 0;
X
X if ( yywrap() )
X {
X /* note: because we've taken care in
X * yy_get_next_buffer() to have set up yytext,
X * we can now set up yy_c_buf_p so that if some
X * total hoser (like flex itself) wants
X * to call the scanner after we return the
X * YY_NULL, it'll still work - another YY_NULL
X * will get returned.
X */
X yy_c_buf_p = yytext + YY_MORE_ADJ;
X
X yy_act = YY_STATE_EOF((yy_start - 1) / 2);
X goto do_action;
X }
X
X else
X {
X if ( ! yy_did_buffer_switch_on_eof )
X YY_NEW_FILE;
X }
X }
X break;
X
X case EOB_ACT_CONTINUE_SCAN:
X yy_c_buf_p = yytext + yy_amount_of_matched_text;
X
X yy_current_state = yy_get_previous_state();
X
X yy_cp = yy_c_buf_p;
X yy_bp = yytext + YY_MORE_ADJ;
X goto yy_match;
X
X case EOB_ACT_LAST_MATCH:
X yy_c_buf_p =
X &yy_current_buffer->yy_ch_buf[yy_n_chars];
X
X yy_current_state = yy_get_previous_state();
X
X yy_cp = yy_c_buf_p;
X yy_bp = yytext + YY_MORE_ADJ;
X goto yy_find_action;
X }
X break;
X }
X
X default:
#ifdef FLEX_DEBUG
X printf( "action # %d\n", yy_act );
#endif
X YY_FATAL_ERROR(
X "fatal flex scanner internal error--no action found" );
X }
X }
X }
X
X
/* yy_get_next_buffer - try to read in a new buffer
X *
X * synopsis
X * int yy_get_next_buffer();
X *
X * returns a code representing an action
X * EOB_ACT_LAST_MATCH -
SHAR_EOF
true || echo 'restore of m2latex.c failed'
fi
echo 'End of part 2'
echo 'File m2latex.c is continued in part 3'
echo 3 > _shar_seq_.tmp
exit 0
exit 0 # Just in case...