/* A lexical scanner generated by flex */

/* Scanner skeleton version:
 * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $
 */

#define FLEX_SCANNER

#include <stdio.h>


/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus
#ifndef __cplusplus
#define __cplusplus
#endif
#endif


#ifdef __cplusplus

#include <stdlib.h>
#include <unistd.h>

/* Use prototypes in function declarations. */
#define YY_USE_PROTOS

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

#else	/* ! __cplusplus */

#ifdef __STDC__

#define YY_USE_PROTOS
#define YY_USE_CONST

#endif	/* __STDC__ */
#endif	/* ! __cplusplus */


#ifdef __TURBOC__
#define YY_USE_CONST
#endif


#ifndef YY_USE_CONST
#ifndef const
#define const
#endif
#endif


#ifdef YY_USE_PROTOS
#define YY_PROTO(proto) proto
#else
#define YY_PROTO(proto) ()
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
#define BEGIN yy_start = 1 + 2 *

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.
 */
#define YY_START ((yy_start - 1) / 2)

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file".  Now included
 * only for backward compatibility with previous versions of flex.
 */
#define YY_NEW_FILE yyrestart( yyin )

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
#define YY_BUF_SIZE 16384

typedef struct yy_buffer_state *YY_BUFFER_STATE;

extern int yyleng;
extern FILE *yyin, *yyout;

#ifdef __cplusplus
extern "C" {
#endif
	extern int yywrap YY_PROTO(( void ));
#ifdef __cplusplus
	}
#endif

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

/* The funky do-while in the following #define is used to turn the definition
 * int a single C statement (which needs a semi-colon terminator).  This
 * avoids problems with code like:
 *
 * 	if ( condition_holds )
 *		yyless( 5 );
 *	else
 *		do_something_else();
 *
 * Prior to using the do-while the compiler would get upset at the
 * "else" because it interpreted the "if" statement as being all
 * done when it reached the ';' after the yyless() call.
 */

/* Return all but the first 'n' matched characters back to the input stream. */

#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
		*yy_cp = yy_hold_char; \
		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
		} \
	while ( 0 )

#define unput(c) yyunput( c, yytext_ptr )


struct yy_buffer_state
	{
	FILE *yy_input_file;

	char *yy_ch_buf;		/* input buffer */
	char *yy_buf_pos;		/* current position in input buffer */

	/* Size of input buffer in bytes, not including room for EOB
	 * characters.
	 */
	int yy_buf_size;

	/* Number of characters read into yy_ch_buf, not including EOB
	 * characters.
	 */
	int yy_n_chars;

	/* Whether this is an "interactive" input source; if so, and
	 * if we're using stdio for input, then we want to use getc()
	 * instead of fread(), to make sure we stop fetching input after
	 * each newline.
	 */
	int yy_is_interactive;

	/* Whether to try to fill the input buffer when we reach the
	 * end of it.
	 */
	int yy_fill_buffer;

	int yy_buffer_status;
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
	/* When an EOF's been seen but there's still some text to process
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
	 * shouldn't try reading from the input source any more.  We might
	 * still have a bunch of tokens to match, though, because of
	 * possible backing-up.
	 *
	 * When we actually see the EOF, we change the status to "new"
	 * (via yyrestart()), so that the user can continue scanning by
	 * just pointing yyin at a new input file.
	 */
#define YY_BUFFER_EOF_PENDING 2
	};

static YY_BUFFER_STATE yy_current_buffer = 0;

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
 */
#define YY_CURRENT_BUFFER yy_current_buffer


/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;

static int yy_n_chars;		/* number of characters read into yy_ch_buf */


int yyleng;

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
static int yy_init = 1;		/* whether we need to initialize */
static int yy_start = 0;	/* start state number */

/* Flag which is used to allow yywrap()'s to do buffer switches
 * instead of setting up a fresh yyin.  A bit of a hack ...
 */
static int yy_did_buffer_switch_on_eof;

static void yyunput YY_PROTO(( int c, 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 ));

static int yy_start_stack_ptr = 0;
static int yy_start_stack_depth = 0;
static int *yy_start_stack = 0;
static void yy_push_state YY_PROTO(( int new_state ));
static void yy_pop_state YY_PROTO(( void ));
static int yy_top_state YY_PROTO(( void ));

static void *yy_flex_alloc YY_PROTO(( unsigned int ));
static void *yy_flex_realloc YY_PROTO(( void *, unsigned int ));
static void yy_flex_free YY_PROTO(( void * ));

#define yy_new_buffer yy_create_buffer

#define INITIAL 0
#define C 1
#define CLU 2
#define PLAIN 3
#define ARG 4
#define SCHEME 5
typedef unsigned char YY_CHAR;
typedef int yy_state_type;
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
extern char *yytext;
#define yytext_ptr yytext

#ifndef yytext_ptr
static void yy_flex_strncpy YY_PROTO(( char *, const char *, int ));
#endif

#ifdef __cplusplus
static int yyinput YY_PROTO(( void ));
#else
static int input YY_PROTO(( void ));
#endif

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 yy_fatal_error YY_PROTO(( const char msg[] ));

/* Done after the current pattern has been matched and before the
 * corresponding action - sets up yytext.
 */
#define YY_DO_BEFORE_ACTION \
	yytext_ptr = yy_bp; \
	yyleng = yy_cp - yy_bp; \
	yy_hold_char = *yy_cp; \
	*yy_cp = '\0'; \
	yy_c_buf_p = yy_cp;

#define YY_END_OF_BUFFER 255
static const short int yy_accept[824] =
    {   0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,  255,  253,  254,   20,    6,   19,    2,   12,
       13,   14,   15,   20,   20,   17,   18,   20,   16,   20,
       20,   20,   20,   20,   20,   20,   20,   20,   20,   20,
       20,   20,   20,   20,   20,   93,    7,   91,    3,   86,
       92,   87,   88,   89,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   90,  252,    8,  251,    4,  248,  249,
      250,  158,    9,  156,  151,  157,  152,  153,  154,  158,
      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,

      158,  158,  158,  158,  158,  158,  158,  158,  158,  158,
      158,  155,   63,    5,   61,    1,   57,   55,   63,   58,
       59,   62,   60,   63,   63,   63,   63,   63,   63,   63,
       63,   63,   63,   63,   63,    6,   22,   21,   53,   11,
       53,   53,   53,   53,   53,   53,   47,   53,   53,   53,
       53,   53,   53,   43,   53,   53,   53,   53,   53,   53,
       53,   53,   53,   53,   53,   10,    7,  149,  149,  149,
      149,  149,  149,  149,  149,  149,  149,  149,  124,  149,
      149,  149,  149,  149,  126,  104,  147,  149,  149,  149,
      149,  149,  149,  149,  149,  149,  149,  149,  149,  149,

      146,  149,  149,  149,   85,    8,    9,  247,  247,  247,
      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
      247,  247,  247,  247,  190,  247,  247,  247,  247,  247,
      247,  247,  192,  247,  169,  170,  247,  247,  247,  247,
      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
      247,  247,  247,  247,  247,  247,  212,  247,  247,  247,
      247,  150,    5,   54,    0,    0,    0,    0,    0,   72,
        0,   74,    0,    0,   79,    0,    0,    0,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
       46,   53,   23,   53,   53,   53,   53,   53,   53,   53,

       53,   53,   53,   53,   53,   53,   10,  113,  149,  149,
      149,  149,  149,  149,  149,  149,  144,  114,  149,  149,
       95,  149,  149,  125,  103,  109,  149,  149,  149,  149,
      106,  149,  149,  149,  105,  149,  149,  149,  149,  149,
      141,  149,  149,  149,  149,  149,  149,  247,  247,  179,
      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
      247,  247,  210,  247,  180,  247,  247,  160,  247,  247,
      247,  247,  191,  247,  247,  168,  247,  175,  247,  247,
      247,  247,  247,  247,  247,  172,  247,  247,  247,  247,
      171,  247,  247,  247,  247,  247,  247,  247,  247,  207,

      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
       66,    0,    0,    0,    0,    0,    0,    0,   76,    0,
        0,    0,    0,   33,   53,   50,   24,   53,   53,   53,
       44,   53,   45,   53,   53,   38,   30,   53,   53,   53,
       53,   53,   53,   53,   53,   53,   53,   27,   53,  149,
      149,  108,  149,  143,  111,  149,  149,  148,  129,  149,
      135,  149,   96,  107,  149,  149,   94,  110,  149,  149,
      149,  149,  149,  149,  149,  149,  127,   98,  149,  142,
      149,  149,  149,  247,  247,  247,  247,  247,  247,  220,
      174,  247,  209,  177,  247,  247,  247,  247,  213,  195,

      247,  247,  247,  201,  247,  226,  247,  247,  247,  161,
      247,  247,  234,  173,  247,  247,  247,  159,  176,  247,
      247,  247,  247,  239,  247,  247,  247,  247,  247,  247,
      247,  247,  247,  193,  247,  247,  163,  247,  208,  247,
      247,  246,  247,    0,   68,   69,    0,    0,   73,    0,
       77,    0,    0,    0,   82,    0,   41,   53,   53,   53,
       52,   53,   25,   53,   53,   31,   53,   53,   53,   53,
       53,   29,   53,   48,  115,  138,  136,  149,  149,  149,
      149,  145,  149,  119,  149,  149,  149,  149,  149,  149,
      149,  149,  149,  149,  149,  102,  123,  133,  214,  247,

      181,  247,  247,  204,  202,  247,  247,  247,  247,  247,
      224,  247,  247,  211,  247,  247,  231,  247,  232,  233,
      185,  247,  235,  247,  247,  247,  247,  247,  247,  238,
      247,  247,  247,  247,  247,  247,  247,  247,  247,  247,
      247,  247,  167,  189,  199,   67,    0,   71,    0,    0,
        0,   80,    0,   53,   53,   26,   34,   53,   39,   40,
       37,   28,   49,   53,   53,  149,  149,  128,  140,  149,
      131,  149,  117,  149,  132,  149,  134,  112,  118,  149,
      149,  100,  215,  247,  247,  247,  247,  247,  247,  194,
      247,  206,  247,  247,  247,  197,  247,  247,  183,  247,

      247,  198,  247,  200,  240,  178,  184,  247,  247,  247,
      247,  247,  247,  247,  165,   70,   75,   78,    0,    0,
       53,   51,   53,   36,   53,   97,  149,  149,  149,  149,
       99,  149,  101,  130,  120,  247,  247,  162,  221,  247,
      222,  225,  247,  228,  230,  247,  236,  247,  237,  247,
      164,  247,  166,  196,  241,  242,  247,  247,  247,  186,
        0,   83,   42,   35,   32,  137,  122,  121,  139,  116,
      247,  247,  247,  247,  203,  247,  227,  247,  188,  187,
      205,  182,  247,  247,  245,    0,    0,  247,  247,  247,
      247,  247,  247,  243,  244,    0,    0,  247,  247,  247,

      219,  247,  247,   81,    0,  247,  247,  247,  223,  229,
        0,  216,  247,  247,    0,  217,  247,    0,  218,    0,
        0,   84,    0
    } ;

static const int yy_ec[256] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    5,    6,    7,    8,    1,    9,    1,   10,   11,
       12,   13,    1,    1,   14,    1,   15,   16,   16,   16,
       16,   16,   16,   16,   16,   16,   16,    1,   17,   18,
        1,   19,    1,    1,   20,   21,   22,   23,   24,   25,
       26,   27,   28,   29,   30,   31,   32,   33,   34,   35,
       36,   37,   38,   39,   40,   41,   42,   43,   44,   45,
        1,   46,    1,    1,   47,   48,   49,   50,   51,   52,

       53,   54,   55,   56,   57,   29,   58,   59,   60,   61,
       62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
       72,   73,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

static const int yy_meta[74] =
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    2,    1,    1,    1,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    1,    3,    1,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3
    } ;

static const short int yy_base[832] =
    {   0,
     1467, 1466,    0, 1460,   73,    0,  145,  148,  194,    0,
      266,  333, 1467, 1471, 1471, 1471, 1464, 1471, 1471, 1471,
     1471, 1471, 1471, 1450, 1451, 1471, 1471,    0, 1456, 1394,
     1396,  105,  100,  104,   96, 1398,  110, 1397, 1405,  112,
     1385, 1395, 1393, 1398,    0, 1471, 1451, 1471, 1471, 1471,
     1471, 1471, 1471, 1471,  242,  248,  369,  240,  296,  246,
        0,  271,  308,  241,  365,  256,  271,  349,  322,  259,
      277,  304,  323, 1445, 1471, 1449, 1471, 1471, 1471, 1471,
     1471, 1471, 1448, 1471, 1471, 1471, 1471, 1471, 1471,  390,
      419,  465,  314,  427,  325,  323,  344,  462,    0,  381,

      368,  380,  470,  413,  391,  451,  521,  374,  397,  480,
      402, 1442, 1471, 1446, 1471, 1471, 1471, 1471, 1471, 1471,
     1471, 1471, 1440, 1471, 1385, 1392,  121,  119, 1385, 1389,
      124, 1377, 1373, 1387, 1378, 1436, 1471, 1471,    0, 1471,
     1370, 1383, 1369, 1385, 1372, 1378, 1363, 1364,  117, 1362,
     1366, 1362, 1359,    0, 1358, 1363,  111, 1361, 1349,  125,
     1364, 1357,  123, 1362, 1361,    0, 1415,    0,  377,  387,
      419,  420,  440,  428,  477,  437,  478,  471,  483,  494,
      490,  522,  496,  497,    0,  513,    0,  493,  523,  496,
      529,  526,  528,  556,  528,  541,  532,  545,  548,  540,

        0,  544,  560,  565, 1471, 1414, 1413,    0,  564,  560,
      558,  567,  572,  586,  584,  579,  580,  591,  587,  596,
      581,  614,  600,  589,  587,  593,  602,  593,  630,  598,
      616,  617,    0,  623,  607,    0,  636,  642,  625,  643,
      637,  646,  644,  640,  636,  643,  668,  666,  654,  673,
      656,  647,  661,  663,  666,  673,    0,  676,  692,  698,
      697, 1471, 1412, 1471, 1361, 1357, 1345, 1349,  133, 1471,
     1343, 1471, 1348, 1340, 1471,  237, 1339, 1341, 1342, 1354,
     1349, 1336, 1333, 1350, 1348, 1344, 1331, 1335, 1341, 1344,
        0, 1330,    0, 1336, 1333, 1321, 1323, 1334, 1319, 1317,

     1317, 1330, 1320, 1324, 1328, 1320,    0,    0,  704,  699,
      698,  712,  710,  700,  701,  701,    0,    0,  709,  719,
        0,  720,  707,  726,    0,    0,  714,  721,  720,  731,
        0,  736,  729,  729,    0,  736,  726,  729,  738,  750,
      753,  748,  752,  755,  752,  755,  761,  758,  768,    0,
      778,  768,  771,  774,  780,  775,  788,  787,  778,  778,
      786,  782,    0,  791,    0,  789,  800,    0,  802,  810,
      809,  796,  816,  799,  818,    0,  816,    0,  808,  807,
      827,  828,  823,  822,  833,    0,  822,  836,  830,  831,
        0,  838,  828,  824,  847,  835,  844,  857,  851,  870,

      851,  852,  874,  857,  874,  871,  869,  873,  874,  879,
     1471, 1321, 1324, 1324, 1318, 1325, 1320, 1322,  287, 1305,
     1303, 1344, 1281,    0, 1288,    0,    0, 1288, 1275, 1283,
        0, 1267,    0, 1272, 1268,    0,    0, 1268, 1268, 1263,
     1267, 1271, 1269, 1261, 1251, 1232, 1155,    0, 1122,  870,
      882,    0,  886,    0,    0,  878,  892,    0,  894,  889,
        0,  901,  892,    0,  901,  896,  896,    0,  899,  913,
      904,  922,  927,  917,  926,  933,    0,    0,  936,    0,
      933,  934,  937,  923,  931,  922,  939,  944,  939,    0,
        0,  943,    0,    0,  935,  940,  952,  944,    0,  953,

      947,  949,  956,    0,  968,    0,  972,  966,  974,  964,
      980,  963,    0,    0,  983,  976,  990,  991,    0,  981,
      994,  980,  999,    0, 1002, 1008, 1001, 1002, 1014, 1018,
     1015, 1020, 1014,    0, 1025, 1013,    0, 1028,    0, 1029,
     1030,    0, 1033, 1081, 1471, 1471, 1050, 1002, 1471,  977,
     1471,  952,  914,  706, 1471,  666,    0,  550,  509,  513,
        0,  496,    0,  484,  422,    0,  426,  422,  404,  413,
      414,    0,  405,    0,    0,    0,    0, 1035, 1028, 1037,
     1025,    0, 1022,    0, 1032, 1028, 1050, 1042, 1045, 1047,
     1050, 1058, 1047, 1049, 1057,    0,    0, 1055,    0, 1062,

        0, 1074, 1062,    0,    0, 1073, 1077, 1071, 1071, 1082,
        0, 1086, 1073,    0, 1088, 1093,    0, 1075,    0,    0,
        0, 1082,    0, 1084, 1080, 1105, 1105, 1098, 1101,    0,
     1102, 1106, 1114, 1115, 1104, 1106, 1111, 1123, 1120, 1115,
     1123, 1123,    0,    0, 1122, 1471,  412, 1471,  373,  368,
      349, 1471,  305,  302,  301,    0,    0,  312,    0,    0,
        0,    0,    0,  307,  305, 1124, 1124,    0,    0, 1131,
        0, 1133,    0, 1149, 1135, 1152, 1138,    0,    0, 1154,
     1146,    0,    0,  309, 1152, 1150, 1153, 1151, 1156,    0,
     1157,    0, 1159, 1162, 1162,    0, 1164, 1170,    0, 1169,

     1189, 1173, 1190, 1178,    0,    0,    0, 1193, 1181, 1183,
     1204, 1198, 1201, 1192,    0, 1471, 1471, 1471,  286,  300,
      258,    0,  241,    0,  253,    0, 1208, 1211, 1212, 1209,
        0, 1213,    0,    0,    0, 1232, 1202,    0,    0, 1219,
     1208,    0, 1216, 1212,    0, 1221,    0, 1230,    0, 1225,
        0, 1233,    0,    0,    0,    0, 1221, 1228, 1224,    0,
      242,  284,    0,    0,    0,    0,    0,    0,    0,    0,
     1230, 1247, 1256, 1245,    0, 1236,    0, 1238,    0,    0,
        0,    0, 1261, 1254,    0,  229,  226, 1252, 1270, 1257,
     1273, 1263, 1264,    0,    0,  237,  226, 1282, 1270, 1279,

        0, 1285, 1287, 1471,  229, 1269, 1279, 1298,    0,    0,
      230,    0, 1296, 1290,  233,    0, 1285,  136,    0,  127,
      131, 1471, 1471, 1352, 1355, 1358, 1360,  173, 1362, 1364,
     1366
    } ;

static const short int yy_def[832] =
    {   0,
      824,  824,  823,    3,  823,    5,  825,  825,  823,    9,
      826,  826,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  827,  823,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  828,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,

      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  827,  823,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  831,  823,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,

      829,  829,  829,  829,  823,  823,  823,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,

      827,  827,  827,  827,  827,  827,  831,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,

      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,

      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  830,  830,

      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  823,  823,  823,  823,  823,
      823,  823,  823,  827,  827,  827,  827,  827,  827,  827,
      827,  827,  827,  827,  827,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
      829,  829,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,

      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  823,  823,  823,  823,  823,
      827,  827,  827,  827,  827,  829,  829,  829,  829,  829,
      829,  829,  829,  829,  829,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      823,  823,  827,  827,  827,  829,  829,  829,  829,  829,
      830,  830,  830,  830,  830,  830,  830,  830,  830,  830,
      830,  830,  830,  830,  830,  823,  823,  830,  830,  830,
      830,  830,  830,  830,  830,  823,  823,  830,  830,  830,

      830,  830,  830,  823,  823,  830,  830,  830,  830,  830,
      823,  830,  830,  830,  823,  830,  830,  823,  830,  823,
      823,  823,    0,  823,  823,  823,  823,  823,  823,  823,
      823
    } ;

static const short int yy_nxt[1545] =
    {   0,
       16,   17,   18,   19,   16,   16,   20,   16,   16,   21,
       22,   23,   24,   16,   25,   16,   16,   26,   27,   28,
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
       28,   28,   28,   28,   28,   29,   28,   16,   30,   31,
       32,   33,   34,   35,   36,   28,   37,   28,   38,   28,
       28,   28,   28,   28,   39,   40,   41,   42,   43,   44,
       28,   28,   28,   46,   47,   48,   49,   46,   46,   50,
       46,   51,   52,   53,   54,   46,   46,   46,   46,   46,
       46,   46,   55,   56,   57,   58,   59,   60,   61,   62,

       63,   61,   61,   61,   61,   64,   65,   66,   61,   67,
       68,   69,   70,   71,   72,   61,   73,   61,   74,   61,
       46,   55,   56,   57,   58,   59,   60,   61,   62,   63,
       61,   61,   61,   64,   65,   66,   61,   67,   68,   69,
       70,   71,   72,   61,   73,   61,   76,   77,   78,   76,
       77,   78,  146,  143,  151,   79,   80,  152,   79,   80,
      144,  147,  148,  154,  149,  295,  145,  158,  159,  267,
      155,  269,  273,  299,  150,  166,  274,  296,  160,  303,
      270,  161,  268,  287,  288,  822,  415,  821,  304,  300,
       81,  416,  820,   81,   82,   83,   84,   82,   82,   82,

       85,   82,   86,   87,   88,   89,   82,   82,   82,   82,
       82,   82,   82,   90,   91,   92,   93,   94,   95,   96,
       97,   98,   99,   99,  100,  101,  102,  103,  104,   99,
      105,  106,  107,  108,  109,  110,   99,  111,   99,  112,
       99,   82,   90,   91,   92,   93,   94,   95,   96,   97,
       98,   99,  100,  101,  102,  103,  104,   99,  105,  106,
      107,  108,  109,  110,   99,  111,   99,  114,  115,  116,
      117,  171,  118,  179,  169,  119,  120,  121,  170,  183,
      189,  172,  122,  818,  173,  420,  815,  811,  805,  804,
      184,  797,  193,  201,  194,  796,  202,  787,  421,  551,

      171,  179,  169,  786,  765,  764,  170,  183,  189,  172,
      763,  123,  173,  124,  125,  126,  127,  128,  129,  184,
      193,  201,  130,  194,  131,  202,  180,  132,  181,  133,
      203,  134,  185,  135,  114,  115,  116,  117,  182,  118,
      186,  198,  119,  120,  121,  187,  188,  225,  199,  122,
      204,  552,  762,  761,  180,  736,  181,  725,  230,  203,
      724,  185,  231,  232,  723,  200,  182,  722,  186,  721,
      198,  720,  195,  187,  188,  225,  196,  199,  123,  204,
      124,  125,  126,  127,  128,  129,  230,  197,  174,  130,
      231,  131,  232,  200,  132,  175,  133,  190,  134,  176,

      135,  195,  177,  191,  238,  196,  192,  239,  257,  178,
      209,  210,  719,  240,  247,  197,  258,  174,  718,  241,
      308,  717,  211,  309,  175,  190,  212,  176,  213,  261,
      177,  191,  245,  238,  192,  239,  257,  178,  214,  209,
      210,  240,  215,  247,  310,  258,  216,  241,  308,  246,
      211,  309,  217,  311,  212,  218,  213,  226,  261,  227,
      313,  245,  228,  312,  716,  665,  664,  214,  663,  229,
      662,  215,  661,  310,  248,  216,  315,  246,  249,  660,
      217,  311,  659,  218,  219,  226,  233,  227,  313,  250,
      228,  220,  312,  234,  235,  221,  314,  229,  222,  236,

      237,  223,  242,  248,  315,  224,  259,  249,  243,  318,
      316,  244,  321,  219,  317,  233,  327,  250,  260,  329,
      220,  234,  235,  221,  319,  314,  222,  236,  237,  223,
      242,  320,  324,  224,  325,  259,  243,  318,  316,  244,
      251,  321,  317,  322,  252,  327,  260,  253,  329,  323,
      658,  326,  319,  328,  254,  330,  657,  255,  331,  320,
      324,  332,  325,  338,  256,  656,  339,  655,  340,  251,
      341,  342,  322,  252,  343,  333,  253,  334,  323,  326,
      344,  328,  254,  345,  330,  255,  331,  346,  347,  332,
      335,  338,  256,  336,  337,  339,  340,  348,  349,  341,

      342,  350,  343,  351,  333,  352,  334,  353,  344,  354,
      654,  355,  345,  356,  357,  359,  346,  347,  335,  358,
      360,  336,  337,  364,  368,  348,  349,  365,  366,  350,
      367,  351,  370,  352,  373,  374,  353,  361,  354,  355,
      369,  356,  377,  357,  359,  378,  362,  358,  360,  375,
      363,  371,  364,  368,  376,  365,  366,  372,  367,  379,
      370,  380,  373,  381,  374,  382,  361,  383,  369,  384,
      385,  377,  386,  378,  362,  387,  388,  375,  363,  397,
      371,  400,  376,  401,  402,  404,  372,  389,  379,  390,
      380,  381,  398,  394,  382,  383,  395,  403,  384,  385,

      386,  396,  391,  387,  388,  392,  393,  405,  397,  399,
      400,  401,  406,  402,  404,  407,  389,  409,  390,  408,
      410,  398,  394,  450,  395,  403,  451,  653,  452,  396,
      391,  453,  454,  392,  393,  405,  455,  399,  456,  457,
      406,  458,  459,  460,  407,  461,  409,  462,  408,  410,
      463,  464,  450,  465,  466,  451,  452,  467,  652,  468,
      453,  454,  469,  470,  455,  471,  456,  457,  472,  458,
      473,  459,  460,  461,  476,  478,  462,  474,  463,  464,
      477,  465,  479,  466,  480,  482,  467,  468,  481,  475,
      469,  483,  470,  471,  484,  485,  472,  486,  473,  487,

      488,  489,  490,  476,  478,  491,  474,  492,  477,  493,
      498,  479,  480,  482,  494,  495,  481,  475,  496,  483,
      497,  499,  484,  500,  485,  501,  486,  487,  488,  502,
      489,  490,  503,  491,  504,  507,  492,  505,  493,  498,
      508,  509,  494,  495,  510,  506,  496,  511,  497,  499,
      512,  513,  500,  514,  501,  515,  516,  518,  502,  517,
      519,  503,  504,  507,  520,  521,  505,  522,  523,  508,
      509,  524,  510,  506,  525,  511,  526,  527,  528,  512,
      513,  514,  533,  515,  534,  516,  518,  517,  519,  536,
      529,  530,  520,  535,  521,  522,  523,  537,  538,  542,

      524,  539,  525,  541,  526,  540,  527,  528,  531,  543,
      533,  532,  534,  575,  576,  577,  578,  536,  529,  579,
      530,  580,  535,  581,  582,  584,  537,  538,  542,  539,
      583,  541,  585,  540,  586,  587,  531,  543,  588,  532,
      589,  575,  576,  577,  578,  590,  591,  593,  579,  592,
      580,  581,  594,  582,  584,  595,  596,  597,  583,  598,
      585,  599,  586,  587,  600,  601,  602,  588,  589,  603,
      651,  604,  605,  606,  590,  591,  593,  592,  607,  608,
      610,  594,  609,  611,  595,  596,  597,  612,  598,  599,
      613,  614,  600,  601,  615,  602,  616,  617,  603,  604,

      605,  606,  618,  619,  650,  620,  607,  621,  608,  610,
      609,  611,  622,  623,  624,  612,  629,  626,  613,  628,
      614,  627,  630,  615,  616,  631,  617,  632,  649,  625,
      618,  633,  619,  620,  634,  635,  621,  636,  637,  638,
      622,  639,  623,  624,  629,  626,  640,  642,  628,  627,
      641,  630,  643,  644,  631,  645,  632,  625,  666,  633,
      667,  668,  634,  669,  635,  670,  636,  637,  638,  671,
      639,  672,  673,  648,  674,  640,  642,  675,  641,  676,
      677,  643,  644,  678,  645,  679,  680,  666,  667,  681,
      668,  669,  682,  670,  683,  684,  686,  671,  685,  672,

      687,  673,  674,  688,  689,  675,  690,  676,  677,  691,
      647,  692,  678,  679,  680,  693,  694,  681,  695,  696,
      682,  697,  683,  698,  684,  686,  685,  699,  700,  687,
      701,  688,  689,  702,  703,  690,  704,  705,  691,  692,
      706,  646,  707,  708,  693,  694,  695,  696,  709,  697,
      710,  698,  711,  712,  713,  714,  699,  700,  701,  715,
      726,  702,  703,  727,  704,  728,  705,  729,  730,  706,
      707,  708,  731,  732,  574,  733,  709,  734,  743,  710,
      711,  712,  713,  714,  735,  737,  738,  715,  726,  739,
      740,  727,  741,  728,  742,  729,  746,  730,  744,  745,

      731,  747,  732,  733,  748,  749,  734,  743,  750,  573,
      751,  752,  735,  737,  738,  753,  754,  739,  740,  755,
      741,  756,  742,  757,  746,  758,  744,  745,  759,  747,
      760,  766,  748,  749,  767,  768,  770,  750,  751,  769,
      752,  774,  775,  753,  779,  754,  776,  755,  777,  756,
      778,  771,  757,  780,  758,  781,  782,  759,  760,  783,
      766,  784,  785,  767,  768,  770,  788,  769,  772,  774,
      789,  775,  773,  779,  776,  790,  777,  791,  778,  792,
      771,  793,  780,  781,  794,  782,  795,  783,  798,  784,
      785,  799,  572,  800,  788,  801,  772,  802,  803,  789,

      773,  806,  571,  807,  790,  791,  808,  792,  809,  793,
      810,  570,  812,  794,  795,  813,  798,  814,  816,  569,
      799,  800,  817,  819,  801,  802,  803,  568,  567,  566,
      806,  807,  565,  564,  563,  808,  562,  809,  561,  810,
      812,  560,  559,  813,  558,  557,  814,  816,  556,  555,
      817,  819,   14,   14,   14,   75,   75,   75,  113,  113,
      113,  139,  139,  168,  168,  208,  208,  307,  307,  554,
      553,  550,  549,  548,  547,  546,  545,  544,  449,  448,
      447,  446,  445,  444,  443,  442,  441,  440,  439,  438,
      437,  436,  435,  434,  433,  432,  431,  430,  429,  428,

      427,  426,  425,  424,  423,  422,  419,  418,  417,  414,
      413,  412,  411,  263,  207,  206,  167,  306,  305,  302,
      301,  298,  297,  294,  293,  292,  291,  290,  289,  286,
      285,  284,  283,  282,  281,  280,  279,  136,  278,  277,
      276,  275,  272,  271,  266,  265,  264,  263,  262,  207,
      206,  205,  167,  165,  164,  163,  162,  157,  156,  153,
      142,  141,  140,  138,  137,  136,  823,   45,   15,   15,
       13,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,

      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823
    } ;

static const short int yy_chk[1545] =
    {   0,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
        3,    3,    3,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,

        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
        5,    5,    5,    5,    5,    5,    7,    7,    7,    8,
        8,    8,   33,   32,   35,    7,    7,   35,    8,    8,
       32,   33,   34,   37,   34,  157,   32,   40,   40,  127,
       37,  128,  131,  160,   34,  828,  131,  157,   40,  163,
      128,   40,  127,  149,  149,  821,  269,  820,  163,  160,
        7,  269,  818,    8,    9,    9,    9,    9,    9,    9,

        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
        9,    9,    9,    9,    9,    9,    9,   11,   11,   11,
       11,   56,   11,   58,   55,   11,   11,   11,   55,   60,
       64,   56,   11,  815,   56,  276,  811,  805,  797,  796,
       62,  787,   66,   70,   67,  786,   71,  762,  276,  419,

       56,   58,   55,  761,  725,  723,   55,   60,   64,   56,
      721,   11,   56,   11,   11,   11,   11,   11,   11,   62,
       66,   70,   11,   67,   11,   71,   59,   11,   59,   11,
       72,   11,   63,   11,   12,   12,   12,   12,   59,   12,
       63,   69,   12,   12,   12,   63,   63,   93,   69,   12,
       73,  419,  720,  719,   59,  684,   59,  665,   95,   72,
      664,   63,   96,   97,  658,   69,   59,  655,   63,  654,
       69,  653,   68,   63,   63,   93,   68,   69,   12,   73,
       12,   12,   12,   12,   12,   12,   95,   68,   57,   12,
       96,   12,   97,   69,   12,   57,   12,   65,   12,   57,

       12,   68,   57,   65,  100,   68,   65,  101,  108,   57,
       90,   90,  651,  102,  105,   68,  109,   57,  650,  102,
      169,  649,   90,  170,   57,   65,   90,   57,   90,  111,
       57,   65,  104,  100,   65,  101,  108,   57,   91,   90,
       90,  102,   91,  105,  171,  109,   91,  102,  169,  104,
       90,  170,   91,  172,   90,   91,   90,   94,  111,   94,
      174,  104,   94,  173,  647,  573,  571,   91,  570,   94,
      569,   91,  568,  171,  106,   91,  176,  104,  106,  567,
       91,  172,  565,   91,   92,   94,   98,   94,  174,  106,
       94,   92,  173,   98,   98,   92,  175,   94,   92,   98,

       98,   92,  103,  106,  176,   92,  110,  106,  103,  178,
      177,  103,  181,   92,  177,   98,  188,  106,  110,  190,
       92,   98,   98,   92,  179,  175,   92,   98,   98,   92,
      103,  180,  183,   92,  184,  110,  103,  178,  177,  103,
      107,  181,  177,  182,  107,  188,  110,  107,  190,  182,
      564,  186,  179,  189,  107,  191,  562,  107,  192,  180,
      183,  193,  184,  195,  107,  560,  196,  559,  197,  107,
      198,  199,  182,  107,  200,  194,  107,  194,  182,  186,
      202,  189,  107,  203,  191,  107,  192,  203,  204,  193,
      194,  195,  107,  194,  194,  196,  197,  209,  210,  198,

      199,  211,  200,  212,  194,  213,  194,  214,  202,  215,
      558,  216,  203,  217,  218,  220,  203,  204,  194,  219,
      221,  194,  194,  223,  227,  209,  210,  224,  225,  211,
      226,  212,  228,  213,  230,  231,  214,  222,  215,  216,
      227,  217,  234,  218,  220,  235,  222,  219,  221,  232,
      222,  229,  223,  227,  232,  224,  225,  229,  226,  237,
      228,  238,  230,  239,  231,  240,  222,  241,  227,  242,
      243,  234,  244,  235,  222,  245,  246,  232,  222,  249,
      229,  251,  232,  252,  253,  255,  229,  247,  237,  247,
      238,  239,  250,  248,  240,  241,  248,  254,  242,  243,

      244,  248,  247,  245,  246,  247,  247,  256,  249,  250,
      251,  252,  258,  253,  255,  259,  247,  260,  247,  259,
      261,  250,  248,  309,  248,  254,  310,  556,  311,  248,
      247,  312,  313,  247,  247,  256,  314,  250,  315,  316,
      258,  319,  320,  322,  259,  323,  260,  324,  259,  261,
      327,  328,  309,  329,  330,  310,  311,  332,  554,  333,
      312,  313,  334,  336,  314,  337,  315,  316,  338,  319,
      339,  320,  322,  323,  341,  343,  324,  340,  327,  328,
      342,  329,  344,  330,  345,  346,  332,  333,  345,  340,
      334,  347,  336,  337,  348,  349,  338,  351,  339,  352,

      353,  354,  355,  341,  343,  356,  340,  357,  342,  358,
      364,  344,  345,  346,  359,  360,  345,  340,  361,  347,
      362,  366,  348,  367,  349,  369,  351,  352,  353,  370,
      354,  355,  371,  356,  372,  374,  357,  373,  358,  364,
      375,  377,  359,  360,  379,  373,  361,  380,  362,  366,
      381,  382,  367,  383,  369,  384,  385,  388,  370,  387,
      389,  371,  372,  374,  390,  392,  373,  393,  394,  375,
      377,  395,  379,  373,  396,  380,  397,  398,  399,  381,
      382,  383,  401,  384,  402,  385,  388,  387,  389,  404,
      399,  400,  390,  403,  392,  393,  394,  405,  406,  409,

      395,  407,  396,  408,  397,  407,  398,  399,  400,  410,
      401,  400,  402,  450,  451,  453,  456,  404,  399,  457,
      400,  459,  403,  460,  462,  465,  405,  406,  409,  407,
      463,  408,  466,  407,  467,  469,  400,  410,  470,  400,
      471,  450,  451,  453,  456,  472,  473,  475,  457,  474,
      459,  460,  476,  462,  465,  479,  481,  482,  463,  483,
      466,  484,  467,  469,  485,  486,  487,  470,  471,  488,
      553,  489,  492,  495,  472,  473,  475,  474,  496,  497,
      500,  476,  498,  501,  479,  481,  482,  502,  483,  484,
      503,  505,  485,  486,  507,  487,  508,  509,  488,  489,

      492,  495,  510,  511,  552,  512,  496,  515,  497,  500,
      498,  501,  516,  517,  518,  502,  522,  520,  503,  521,
      505,  520,  523,  507,  508,  525,  509,  526,  550,  518,
      510,  527,  511,  512,  528,  529,  515,  530,  531,  532,
      516,  533,  517,  518,  522,  520,  535,  538,  521,  520,
      536,  523,  540,  541,  525,  543,  526,  518,  578,  527,
      579,  580,  528,  581,  529,  583,  530,  531,  532,  585,
      533,  586,  587,  548,  588,  535,  538,  589,  536,  590,
      591,  540,  541,  592,  543,  593,  594,  578,  579,  595,
      580,  581,  598,  583,  600,  602,  606,  585,  603,  586,

      607,  587,  588,  608,  609,  589,  610,  590,  591,  612,
      547,  613,  592,  593,  594,  615,  616,  595,  618,  622,
      598,  624,  600,  625,  602,  606,  603,  626,  627,  607,
      628,  608,  609,  629,  631,  610,  632,  633,  612,  613,
      634,  544,  635,  636,  615,  616,  618,  622,  637,  624,
      638,  625,  639,  640,  641,  642,  626,  627,  628,  645,
      666,  629,  631,  667,  632,  670,  633,  672,  674,  634,
      635,  636,  675,  676,  449,  677,  637,  680,  693,  638,
      639,  640,  641,  642,  681,  685,  686,  645,  666,  687,
      688,  667,  689,  670,  691,  672,  695,  674,  694,  694,

      675,  697,  676,  677,  698,  700,  680,  693,  701,  447,
      702,  703,  681,  685,  686,  704,  708,  687,  688,  709,
      689,  710,  691,  711,  695,  712,  694,  694,  713,  697,
      714,  727,  698,  700,  728,  729,  732,  701,  702,  730,
      703,  737,  740,  704,  746,  708,  741,  709,  743,  710,
      744,  736,  711,  748,  712,  750,  752,  713,  714,  757,
      727,  758,  759,  728,  729,  732,  771,  730,  736,  737,
      772,  740,  736,  746,  741,  773,  743,  774,  744,  776,
      736,  778,  748,  750,  783,  752,  784,  757,  788,  758,
      759,  789,  446,  790,  771,  791,  736,  792,  793,  772,

      736,  798,  445,  799,  773,  774,  800,  776,  802,  778,
      803,  444,  806,  783,  784,  807,  788,  808,  813,  443,
      789,  790,  814,  817,  791,  792,  793,  442,  441,  440,
      798,  799,  439,  438,  435,  800,  434,  802,  432,  803,
      806,  430,  429,  807,  428,  425,  808,  813,  423,  422,
      814,  817,  824,  824,  824,  825,  825,  825,  826,  826,
      826,  827,  827,  829,  829,  830,  830,  831,  831,  421,
      420,  418,  417,  416,  415,  414,  413,  412,  306,  305,
      304,  303,  302,  301,  300,  299,  298,  297,  296,  295,
      294,  292,  290,  289,  288,  287,  286,  285,  284,  283,

      282,  281,  280,  279,  278,  277,  274,  273,  271,  268,
      267,  266,  265,  263,  207,  206,  167,  165,  164,  162,
      161,  159,  158,  156,  155,  153,  152,  151,  150,  148,
      147,  146,  145,  144,  143,  142,  141,  136,  135,  134,
      133,  132,  130,  129,  126,  125,  123,  114,  112,   83,
       76,   74,   47,   44,   43,   42,   41,   39,   38,   36,
       31,   30,   29,   25,   24,   17,   13,    4,    2,    1,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,

      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823,  823,  823,  823,  823,  823,  823,
      823,  823,  823,  823
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

/* The intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed.
 */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
char *yytext;
# line 1 "psify.lex"
# line 9 "psify.lex"
/* Andrew Heybey (atheybey@ptt.lcs.mit.edu)
   15-JAN-1987

   Modified by Neeraj Gupta (goop@athena.mit.edu)
   10-MAR-1993
   * -2 option allows 2 column output
*/

#define NORM_STATE 1
#define COMMENT_STATE 2
#define QUOTE_STATE 3
#define SQUOTE_STATE 4

#ifdef yywrap
#undef yywrap
#endif

int state = NORM_STATE;
int pagenum, masterpagenum;
int linenum;
int scheme_prev_paren = 0;	  /* used by scheme mode */
int paren_open = 0;
int preproc = 0;
int filename = 0;
int numparen = 0;
int newpage;
int newcol;
int col2;

extern int max_lines;
extern int page_lines;
extern int type;
extern int starting;
extern char name[], date[];



/* Different types of files that I know how to process */
#define C_FILE_TYPE 1		/* C source (.c & .h files) */
#define CLU_FILE_TYPE 2		/* Clu source (.clu files) */
#define PLAIN_FILE_TYPE 3	/* Plain text files */
#define ARGUS_FILE_TYPE 4	/* Argus source (.arg files) */
#define SCHEME_FILE_TYPE 5	/* Scheme source code (.scm) */


/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifdef YY_MALLOC_DECL
YY_MALLOC_DECL
#else
#if __STDC__
#ifndef __cplusplus
#include <stdlib.h>
#endif
#else
/* Just try to get by without declaring the routines.  This will fail
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 * or sizeof(void*) != sizeof(int).
 */
#endif
#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */

#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
	if ( yy_current_buffer->yy_is_interactive ) \
		{ \
		int c = getc( yyin ); \
		result = c == EOF ? 0 : 1; \
		buf[0] = (char) c; \
		} \
	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
		  && ferror( yyin ) ) \
		YY_FATAL_ERROR( "input in flex scanner failed" );
#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
#define YY_DECL int yylex YY_PROTO(( void ))
#endif

/* Code executed at the beginning of each rule, after yytext and yyleng
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

YY_DECL
	{
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;

# line 84 "psify.lex"


	if ( yy_init )
		{
#ifdef YY_USER_INIT
		YY_USER_INIT;
#endif

		if ( ! yy_start )
			yy_start = 1;	/* first start state */

		if ( ! yyin )
			yyin = stdin;

		if ( ! yyout )
			yyout = stdout;

		if ( yy_current_buffer )
			yy_init_buffer( yy_current_buffer, yyin );
		else
			yy_current_buffer =
				yy_create_buffer( yyin, YY_BUF_SIZE );

		yy_load_buffer_state();

		yy_init = 0;
		}

	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = yy_c_buf_p;

		/* Support of yytext. */
		*yy_cp = yy_hold_char;

		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;

		yy_current_state = yy_start;
		if ( yy_bp[-1] == '\n' )
			++yy_current_state;
yy_match:
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			if ( yy_accept[yy_current_state] )
				{
				yy_last_accepting_state = yy_current_state;
				yy_last_accepting_cpos = yy_cp;
				}
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
				{
				yy_current_state = (int) yy_def[yy_current_state];
				if ( yy_current_state >= 824 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			++yy_cp;
			}
		while ( yy_base[yy_current_state] != 1471 );

yy_find_action:
		yy_act = yy_accept[yy_current_state];

		YY_DO_BEFORE_ACTION;


do_action:	/* This label is used only to access EOF actions. */


		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = yy_hold_char;
			yy_cp = yy_last_accepting_cpos;
			yy_current_state = yy_last_accepting_state;
			goto yy_find_action;

case 1:
# line 86 "psify.lex"
case 2:
# line 87 "psify.lex"
case 3:
# line 88 "psify.lex"
case 4:
YY_USER_ACTION
# line 88 "psify.lex"
{		/* Handle form feeds */
		  switch (state)  {
		    case QUOTE_STATE:
		    case SQUOTE_STATE:
			newparen();
			ECHO;
			break;
		    default:
			makenewpage();
			if (paren_open)  {
			  fprintf(yyout, ") show ");
			  paren_open = 0;
			}
			fprintf(yyout, " showpage restore\n");
			newpage = 1;
			filename = preproc = 0;
			break;
		  }
		}
	YY_BREAK
case 5:
# line 108 "psify.lex"
case 6:
# line 109 "psify.lex"
case 7:
# line 110 "psify.lex"
case 8:
# line 111 "psify.lex"
case 9:
YY_USER_ACTION
# line 111 "psify.lex"
{
		  makenewpage();
		  if (paren_open)  {
		    fprintf(yyout, ") show\n");
		    paren_open = 0;
		  }
		  fprintf(yyout, " %d dotab\n", yyleng);
		}
	YY_BREAK
case 10:
YY_USER_ACTION
# line 119 "psify.lex"
{
		if (state == NORM_STATE)  {
		  makenewpage();
		  preproc = 1;
		  paren_open = 1;
		  fprintf(yyout, "(");
		  ECHO;
		} else  {
		  newparen();
		  ECHO;
		}
		}
	YY_BREAK
case 11:
YY_USER_ACTION
# line 131 "psify.lex"
{ newparen();  fprintf(yyout, "\\\\\"");}
	YY_BREAK
case 12:
YY_USER_ACTION
# line 132 "psify.lex"
{ newparen();
		  ECHO;
		  switch (state)  {
		  case NORM_STATE:
			state = QUOTE_STATE;
			break;
		  case QUOTE_STATE:
			state = NORM_STATE;
			break;
		  default:
			break;
		}}
	YY_BREAK
case 13:
YY_USER_ACTION
# line 144 "psify.lex"
{
		  newparen();
		  ECHO;
		  switch (state)  {
		    case NORM_STATE:
			state = SQUOTE_STATE;
			break;
		    case SQUOTE_STATE:
			state = NORM_STATE;
			break;
		    default:
			break;
		  }
		}
	YY_BREAK
case 14:
YY_USER_ACTION
# line 158 "psify.lex"
{newparen(); fprintf(yyout, "\\(");}
	YY_BREAK
case 15:
YY_USER_ACTION
# line 159 "psify.lex"
{newparen(); fprintf(yyout, "\\)");}
	YY_BREAK
case 16:
YY_USER_ACTION
# line 160 "psify.lex"
{newparen(); fprintf(yyout, "\\\\");}
	YY_BREAK
case 17:
YY_USER_ACTION
# line 161 "psify.lex"
{ newparen();
		  if (preproc)
		    filename = 1;
		  ECHO;
		}
	YY_BREAK
case 18:
YY_USER_ACTION
# line 166 "psify.lex"
{ newparen();
		  if (preproc && filename)
		    filename = 0;
		  ECHO;
		}
	YY_BREAK
case 19:
YY_USER_ACTION
# line 171 "psify.lex"
{
		makenewpage();
		if (paren_open)  {
		  fprintf(yyout, ") show ");
		  paren_open = 0;
		}
		fprintf(yyout, " newline\n");
		if (++linenum >= page_lines)  {
		  fprintf(yyout, " showpage restore\n");
		  newpage = 1;
		}
		else if (linenum >= max_lines && !col2) {
		  fprintf(yyout, " restore\n");
		  newcol = 1;
		}
		filename = preproc = 0;
		}
	YY_BREAK
case 20:
YY_USER_ACTION
# line 188 "psify.lex"
{newparen(); ECHO;}
	YY_BREAK
case 21:
YY_USER_ACTION
# line 189 "psify.lex"
{ makenewpage();
		  switch (state)  {
		    case NORM_STATE:
			state = COMMENT_STATE;
			if (paren_open)
			  fprintf(yyout, ") show\n");
			fprintf(yyout, "commentfont (/*");
			paren_open = 1;
			break;
		    default:
			newparen();
			ECHO;
			break;
		}}
	YY_BREAK
case 22:
YY_USER_ACTION
# line 203 "psify.lex"
{ newparen();
		  switch (state)  {
		    case COMMENT_STATE:
			state = NORM_STATE;
			if (paren_open)
			  fprintf(yyout, "*/) show\n");
			fprintf(yyout, "normfont ");
			paren_open = 0;
			break;
		    default:
			ECHO;
			break;
		}}
	YY_BREAK
case 23:
# line 217 "psify.lex"
case 24:
# line 218 "psify.lex"
case 25:
# line 219 "psify.lex"
case 26:
# line 220 "psify.lex"
case 27:
# line 221 "psify.lex"
case 28:
# line 222 "psify.lex"
case 29:
# line 223 "psify.lex"
case 30:
# line 224 "psify.lex"
case 31:
# line 225 "psify.lex"
case 32:
# line 226 "psify.lex"
case 33:
# line 227 "psify.lex"
case 34:
# line 228 "psify.lex"
case 35:
# line 229 "psify.lex"
case 36:
# line 230 "psify.lex"
case 37:
# line 231 "psify.lex"
case 38:
# line 232 "psify.lex"
case 39:
# line 233 "psify.lex"
case 40:
# line 234 "psify.lex"
case 41:
# line 235 "psify.lex"
case 42:
# line 236 "psify.lex"
case 43:
# line 237 "psify.lex"
case 44:
# line 238 "psify.lex"
case 45:
# line 239 "psify.lex"
case 46:
# line 240 "psify.lex"
case 47:
# line 241 "psify.lex"
case 48:
# line 242 "psify.lex"
case 49:
# line 243 "psify.lex"
case 50:
# line 244 "psify.lex"
case 51:
# line 245 "psify.lex"
case 52:
YY_USER_ACTION
# line 245 "psify.lex"
{
		makenewpage();
		if (state == NORM_STATE && !filename)  {
		  if (paren_open)
		    fprintf(yyout, ") show\n");
		  fprintf(yyout, "reservefont (%s) show \nnormfont ", yytext);
		  if (paren_open)
		    fprintf(yyout, "(");
		} else
		  {newparen(); ECHO;}
		}
	YY_BREAK
case 53:
YY_USER_ACTION
# line 256 "psify.lex"
{
		newparen();
		ECHO;
		}
	YY_BREAK
case 54:
YY_USER_ACTION
# line 261 "psify.lex"
{ newparen();  fprintf(yyout, "\\\\\""); scheme_prev_paren = 0;}
	YY_BREAK
case 55:
YY_USER_ACTION
# line 262 "psify.lex"
{ newparen();
		  ECHO;
		  switch (state)  {
		  case NORM_STATE:
			state = QUOTE_STATE;
			break;
		  case QUOTE_STATE:
			state = NORM_STATE;
			break;
		  default:
			break;
		  scheme_prev_paren = 0;
		}}
	YY_BREAK
case 56:
# line 277 "psify.lex"
case 57:
YY_USER_ACTION
# line 277 "psify.lex"
{newparen();
		 ECHO;
		 if (state == SQUOTE_STATE && numparen == 0)
		   state = NORM_STATE;
	         scheme_prev_paren = 0;
	       }
	YY_BREAK
case 58:
YY_USER_ACTION
# line 283 "psify.lex"
{newparen();
		 fprintf(yyout, "\\(");
		 if (state == SQUOTE_STATE)
		   numparen++;
		 scheme_prev_paren = 1;
	       }
	YY_BREAK
case 59:
YY_USER_ACTION
# line 289 "psify.lex"
{newparen();
		 fprintf(yyout, "\\)");
		 if (state == SQUOTE_STATE)
		   {
		     numparen--;
		     if (numparen == 0)
		       state = NORM_STATE;
		   }
	         scheme_prev_paren = 0;
	       }
	YY_BREAK
case 60:
YY_USER_ACTION
# line 299 "psify.lex"
{newparen(); fprintf(yyout, "\\\\"); scheme_prev_paren = 0;}
	YY_BREAK
case 61:
YY_USER_ACTION
# line 300 "psify.lex"
{
		makenewpage();
		if (paren_open)  {
		  fprintf(yyout, ") show ");
		  paren_open = 0;
		}
		fprintf(yyout, " newline\n");
		if (state == COMMENT_STATE)  {
		  state = NORM_STATE;
		  fprintf(yyout, "normfont\n");
		}
		if (++linenum >= page_lines)  {
		  fprintf(yyout, " showpage restore\n");
		  newpage = 1;
		}
		else if (linenum >= max_lines && !col2) {
		  fprintf(yyout, " restore\n");
		  newcol = 1;
		}
		if (numparen == 0 && state == SQUOTE_STATE)
		  state = NORM_STATE;
	        scheme_prev_paren = 0;
	      }
	YY_BREAK
case 62:
YY_USER_ACTION
# line 323 "psify.lex"
{ makenewpage();
		  switch (state)  {
		    case NORM_STATE:
			state = COMMENT_STATE;
			if (paren_open)
			  fprintf(yyout, ") show\n");
			fprintf(yyout, "commentfont (;");
			paren_open = 1;
			break;
		    default:
			newparen();
			ECHO;
			break;
		 }
	         scheme_prev_paren = 0;
		}
	YY_BREAK
case 63:
YY_USER_ACTION
# line 339 "psify.lex"
{newparen(); ECHO; scheme_prev_paren = 0;}
	YY_BREAK
case 64:
# line 341 "psify.lex"
case 65:
# line 342 "psify.lex"
case 66:
# line 343 "psify.lex"
case 67:
# line 344 "psify.lex"
case 68:
# line 345 "psify.lex"
case 69:
# line 346 "psify.lex"
case 70:
# line 347 "psify.lex"
case 71:
# line 348 "psify.lex"
case 72:
# line 349 "psify.lex"
case 73:
# line 350 "psify.lex"
case 74:
# line 351 "psify.lex"
case 75:
# line 352 "psify.lex"
case 76:
# line 353 "psify.lex"
case 77:
# line 354 "psify.lex"
case 78:
# line 355 "psify.lex"
case 79:
# line 356 "psify.lex"
case 80:
# line 357 "psify.lex"
case 81:
# line 358 "psify.lex"
case 82:
# line 359 "psify.lex"
case 83:
# line 360 "psify.lex"
case 84:
YY_USER_ACTION
# line 360 "psify.lex"
{
		makenewpage();
		if (state == NORM_STATE && !filename
			&& scheme_prev_paren == 1)  {
		  if (paren_open)
		    fprintf(yyout, ") show\n");
		  fprintf(yyout, "reservefont (%s) show \nnormfont ", yytext);
		  if (paren_open)
		    fprintf(yyout, "(");
		} else
		  {newparen(); 
		   fprintf(yyout, "%s", yytext);
		 }
	
		}
	YY_BREAK
case 85:
YY_USER_ACTION
# line 376 "psify.lex"
{ newparen();  fprintf(yyout, "\\\\\"");}
	YY_BREAK
case 86:
YY_USER_ACTION
# line 377 "psify.lex"
{ newparen();
		  ECHO;
		  switch (state)  {
		  case NORM_STATE:
			state = QUOTE_STATE;
			break;
		  case QUOTE_STATE:
			state = NORM_STATE;
			break;
		  default:
			break;
		}}
	YY_BREAK
case 87:
YY_USER_ACTION
# line 389 "psify.lex"
{
		  newparen();
		  ECHO;
		  switch (state)  {
		    case NORM_STATE:
			state = SQUOTE_STATE;
			break;
		    case SQUOTE_STATE:
			state = NORM_STATE;
			break;
		    default:
			break;
		  }
		}
	YY_BREAK
case 88:
YY_USER_ACTION
# line 403 "psify.lex"
{newparen(); fprintf(yyout, "\\(");}
	YY_BREAK
case 89:
YY_USER_ACTION
# line 404 "psify.lex"
{newparen(); fprintf(yyout, "\\)");}
	YY_BREAK
case 90:
YY_USER_ACTION
# line 405 "psify.lex"
{newparen(); fprintf(yyout, "\\\\");}
	YY_BREAK
case 91:
YY_USER_ACTION
# line 406 "psify.lex"
{
		makenewpage();
		if (paren_open)  {
		  fprintf(yyout, ") show ");
		  paren_open = 0;
		}
		fprintf(yyout, " newline\n");
		if (state == COMMENT_STATE)  {
		  state = NORM_STATE;
		  fprintf(yyout, "normfont\n");
		}
		if (++linenum >= page_lines)  {
		  fprintf(yyout, " showpage restore\n");
		  newpage = 1;
		}
		else if (linenum >= max_lines && !col2) {
		  fprintf(yyout, " restore\n");
		  newcol = 1;
		}
		}
	YY_BREAK
case 92:
YY_USER_ACTION
# line 426 "psify.lex"
{ makenewpage();
		  switch (state)  {
		    case NORM_STATE:
			state = COMMENT_STATE;
			if (paren_open)
			  fprintf(yyout, ") show\n");
			fprintf(yyout, "commentfont (%%");
			paren_open = 1;
			break;
		    default:
			newparen();
			ECHO;
			break;
		}}
	YY_BREAK
case 93:
YY_USER_ACTION
# line 440 "psify.lex"
{newparen(); ECHO;}
	YY_BREAK
case 94:
# line 442 "psify.lex"
case 95:
# line 443 "psify.lex"
case 96:
# line 444 "psify.lex"
case 97:
# line 445 "psify.lex"
case 98:
# line 446 "psify.lex"
case 99:
# line 447 "psify.lex"
case 100:
# line 448 "psify.lex"
case 101:
# line 449 "psify.lex"
case 102:
# line 450 "psify.lex"
case 103:
# line 451 "psify.lex"
case 104:
# line 452 "psify.lex"
case 105:
# line 453 "psify.lex"
case 106:
# line 454 "psify.lex"
case 107:
# line 455 "psify.lex"
case 108:
# line 456 "psify.lex"
case 109:
# line 457 "psify.lex"
case 110:
# line 458 "psify.lex"
case 111:
# line 459 "psify.lex"
case 112:
# line 460 "psify.lex"
case 113:
# line 461 "psify.lex"
case 114:
# line 462 "psify.lex"
case 115:
# line 463 "psify.lex"
case 116:
# line 464 "psify.lex"
case 117:
# line 465 "psify.lex"
case 118:
# line 466 "psify.lex"
case 119:
# line 467 "psify.lex"
case 120:
# line 468 "psify.lex"
case 121:
# line 469 "psify.lex"
case 122:
# line 470 "psify.lex"
case 123:
# line 471 "psify.lex"
case 124:
# line 472 "psify.lex"
case 125:
# line 473 "psify.lex"
case 126:
# line 474 "psify.lex"
case 127:
# line 475 "psify.lex"
case 128:
# line 476 "psify.lex"
case 129:
# line 477 "psify.lex"
case 130:
# line 478 "psify.lex"
case 131:
# line 479 "psify.lex"
case 132:
# line 480 "psify.lex"
case 133:
# line 481 "psify.lex"
case 134:
# line 482 "psify.lex"
case 135:
# line 483 "psify.lex"
case 136:
# line 484 "psify.lex"
case 137:
# line 485 "psify.lex"
case 138:
# line 486 "psify.lex"
case 139:
# line 487 "psify.lex"
case 140:
# line 488 "psify.lex"
case 141:
# line 489 "psify.lex"
case 142:
# line 490 "psify.lex"
case 143:
# line 491 "psify.lex"
case 144:
# line 492 "psify.lex"
case 145:
# line 493 "psify.lex"
case 146:
# line 494 "psify.lex"
case 147:
# line 495 "psify.lex"
case 148:
YY_USER_ACTION
# line 495 "psify.lex"
{
		makenewpage();
		if (state == NORM_STATE && !filename)  {
		  if (paren_open)
		    fprintf(yyout, ") show\n");
		  fprintf(yyout, "reservefont (%s) show \nnormfont ", yytext);
		  if (paren_open)
		    fprintf(yyout, "(");
		} else
		  {newparen(); ECHO;}
		}
	YY_BREAK
case 149:
YY_USER_ACTION
# line 506 "psify.lex"
{
		newparen();
		ECHO;
		}
	YY_BREAK
case 150:
YY_USER_ACTION
# line 511 "psify.lex"
{ newparen();  fprintf(yyout, "\\\\\"");}
	YY_BREAK
case 151:
YY_USER_ACTION
# line 512 "psify.lex"
{ newparen();
		  ECHO;
		  switch (state)  {
		  case NORM_STATE:
			state = QUOTE_STATE;
			break;
		  case QUOTE_STATE:
			state = NORM_STATE;
			break;
		  default:
			break;
		}}
	YY_BREAK
case 152:
YY_USER_ACTION
# line 524 "psify.lex"
{
		  newparen();
		  ECHO;
		  switch (state)  {
		    case NORM_STATE:
			state = SQUOTE_STATE;
			break;
		    case SQUOTE_STATE:
			state = NORM_STATE;
			break;
		    default:
			break;
		  }
		}
	YY_BREAK
case 153:
YY_USER_ACTION
# line 538 "psify.lex"
{newparen(); fprintf(yyout, "\\(");}
	YY_BREAK
case 154:
YY_USER_ACTION
# line 539 "psify.lex"
{newparen(); fprintf(yyout, "\\)");}
	YY_BREAK
case 155:
YY_USER_ACTION
# line 540 "psify.lex"
{newparen(); fprintf(yyout, "\\\\");}
	YY_BREAK
case 156:
YY_USER_ACTION
# line 541 "psify.lex"
{
		makenewpage();
		if (paren_open)  {
		  fprintf(yyout, ") show ");
		  paren_open = 0;
		}
		fprintf(yyout, " newline\n");
		if (state == COMMENT_STATE)  {
		  state = NORM_STATE;
		  fprintf(yyout, "normfont\n");
		}
		if (++linenum >= page_lines)  {
		  fprintf(yyout, " showpage restore\n");
		  newpage = 1;
		}
		else if (linenum >= max_lines && !col2) {
		  fprintf(yyout, " restore\n");
		  newcol = 1;
		}
		}
	YY_BREAK
case 157:
YY_USER_ACTION
# line 561 "psify.lex"
{ makenewpage();
		  switch (state)  {
		    case NORM_STATE:
			state = COMMENT_STATE;
			if (paren_open)
			  fprintf(yyout, ") show\n");
			fprintf(yyout, "commentfont (%%");
			paren_open = 1;
			break;
		    default:
			newparen();
			ECHO;
			break;
		}}
	YY_BREAK
case 158:
YY_USER_ACTION
# line 575 "psify.lex"
{newparen(); ECHO;}
	YY_BREAK
case 159:
# line 577 "psify.lex"
case 160:
# line 578 "psify.lex"
case 161:
# line 579 "psify.lex"
case 162:
# line 580 "psify.lex"
case 163:
# line 581 "psify.lex"
case 164:
# line 582 "psify.lex"
case 165:
# line 583 "psify.lex"
case 166:
# line 584 "psify.lex"
case 167:
# line 585 "psify.lex"
case 168:
# line 586 "psify.lex"
case 169:
# line 587 "psify.lex"
case 170:
# line 588 "psify.lex"
case 171:
# line 589 "psify.lex"
case 172:
# line 590 "psify.lex"
case 173:
# line 591 "psify.lex"
case 174:
# line 592 "psify.lex"
case 175:
# line 593 "psify.lex"
case 176:
# line 594 "psify.lex"
case 177:
# line 595 "psify.lex"
case 178:
# line 596 "psify.lex"
case 179:
# line 597 "psify.lex"
case 180:
# line 598 "psify.lex"
case 181:
# line 599 "psify.lex"
case 182:
# line 600 "psify.lex"
case 183:
# line 601 "psify.lex"
case 184:
# line 602 "psify.lex"
case 185:
# line 603 "psify.lex"
case 186:
# line 604 "psify.lex"
case 187:
# line 605 "psify.lex"
case 188:
# line 606 "psify.lex"
case 189:
# line 607 "psify.lex"
case 190:
# line 608 "psify.lex"
case 191:
# line 609 "psify.lex"
case 192:
# line 610 "psify.lex"
case 193:
# line 611 "psify.lex"
case 194:
# line 612 "psify.lex"
case 195:
# line 613 "psify.lex"
case 196:
# line 614 "psify.lex"
case 197:
# line 615 "psify.lex"
case 198:
# line 616 "psify.lex"
case 199:
# line 617 "psify.lex"
case 200:
# line 618 "psify.lex"
case 201:
# line 619 "psify.lex"
case 202:
# line 620 "psify.lex"
case 203:
# line 621 "psify.lex"
case 204:
# line 622 "psify.lex"
case 205:
# line 623 "psify.lex"
case 206:
# line 624 "psify.lex"
case 207:
# line 625 "psify.lex"
case 208:
# line 626 "psify.lex"
case 209:
# line 627 "psify.lex"
case 210:
# line 628 "psify.lex"
case 211:
# line 629 "psify.lex"
case 212:
# line 630 "psify.lex"
case 213:
# line 631 "psify.lex"
case 214:
# line 632 "psify.lex"
case 215:
# line 633 "psify.lex"
case 216:
# line 634 "psify.lex"
case 217:
# line 635 "psify.lex"
case 218:
# line 636 "psify.lex"
case 219:
# line 637 "psify.lex"
case 220:
# line 638 "psify.lex"
case 221:
# line 639 "psify.lex"
case 222:
# line 640 "psify.lex"
case 223:
# line 641 "psify.lex"
case 224:
# line 642 "psify.lex"
case 225:
# line 643 "psify.lex"
case 226:
# line 644 "psify.lex"
case 227:
# line 645 "psify.lex"
case 228:
# line 646 "psify.lex"
case 229:
# line 647 "psify.lex"
case 230:
# line 648 "psify.lex"
case 231:
# line 649 "psify.lex"
case 232:
# line 650 "psify.lex"
case 233:
# line 651 "psify.lex"
case 234:
# line 652 "psify.lex"
case 235:
# line 653 "psify.lex"
case 236:
# line 654 "psify.lex"
case 237:
# line 655 "psify.lex"
case 238:
# line 656 "psify.lex"
case 239:
# line 657 "psify.lex"
case 240:
# line 658 "psify.lex"
case 241:
# line 659 "psify.lex"
case 242:
# line 660 "psify.lex"
case 243:
# line 661 "psify.lex"
case 244:
# line 662 "psify.lex"
case 245:
# line 663 "psify.lex"
case 246:
YY_USER_ACTION
# line 663 "psify.lex"
{
		makenewpage();
		if (state == NORM_STATE && !filename)  {
		  if (paren_open)
		    fprintf(yyout, ") show\n");
		  fprintf(yyout, "reservefont (%s) show \nnormfont ", yytext);
		  if (paren_open)
		    fprintf(yyout, "(");
		} else
		  {newparen(); ECHO;}
		}
	YY_BREAK
case 247:
YY_USER_ACTION
# line 674 "psify.lex"
{
		newparen();
		ECHO;
		}
	YY_BREAK
case 248:
YY_USER_ACTION
# line 679 "psify.lex"
{newparen(); fprintf(yyout, "\\(");}
	YY_BREAK
case 249:
YY_USER_ACTION
# line 680 "psify.lex"
{newparen(); fprintf(yyout, "\\)");}
	YY_BREAK
case 250:
YY_USER_ACTION
# line 681 "psify.lex"
{newparen(); fprintf(yyout, "\\\\");}
	YY_BREAK
case 251:
YY_USER_ACTION
# line 682 "psify.lex"
{
		makenewpage();
		if (paren_open)  {
		  fprintf(yyout, ") show ");
		  paren_open = 0;
		}
		fprintf(yyout, " newline\n");
		if (++linenum >= page_lines)  {
		  fprintf(yyout, " showpage restore\n");
		  newpage = 1;
		}
		else if (linenum >= max_lines && !col2) {
		  fprintf(yyout, " restore\n");
		  newcol = 1;
		}
		}
	YY_BREAK
case 252:
YY_USER_ACTION
# line 698 "psify.lex"
{newparen(); ECHO;}
	YY_BREAK
case 253:
YY_USER_ACTION
# line 700 "psify.lex"
{
		  if (starting)  {
		    switch (type)  {
		      case C_FILE_TYPE:
			BEGIN C;
			break;
		      case CLU_FILE_TYPE:
			BEGIN CLU;
			break;
		      case SCHEME_FILE_TYPE:
			BEGIN SCHEME;
			break;
		      case ARGUS_FILE_TYPE:
			BEGIN ARG;
			break;
		      case PLAIN_FILE_TYPE:
		      default:
			BEGIN PLAIN;
			break;
		    }
		    starting = 0;
		    paren_open = 0;
		    filename = 0;
		    preproc = 0;
		    state = NORM_STATE;
		    newpage = 1;
		    newcol = 0;
		    pagenum = 0;
		  }
		  yyless(0);
		}
	YY_BREAK
case 254:
YY_USER_ACTION
# line 731 "psify.lex"
ECHO;
	YY_BREAK
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(C):
case YY_STATE_EOF(CLU):
case YY_STATE_EOF(PLAIN):
case YY_STATE_EOF(ARG):
case YY_STATE_EOF(SCHEME):
	yyterminate();

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = yy_hold_char;

		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed yyin at a new source and called
			 * yylex().  If so, then we have to assure
			 * consistency between yy_current_buffer and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			yy_n_chars = yy_current_buffer->yy_n_chars;
			yy_current_buffer->yy_input_file = yyin;
			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state();

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = yytext_ptr + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++yy_c_buf_p;
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
							yy_cp = yy_c_buf_p;
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer() )
			{
			case EOB_ACT_END_OF_FILE:
				{
				yy_did_buffer_switch_on_eof = 0;

				if ( yywrap() )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * yytext, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! yy_did_buffer_switch_on_eof )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				yy_c_buf_p =
					yytext_ptr + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				yy_c_buf_p =
				&yy_current_buffer->yy_ch_buf[yy_n_chars];

				yy_current_state = yy_get_previous_state();

				yy_cp = yy_c_buf_p;
				yy_bp = yytext_ptr + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
	} /* end of yylex */


/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
 */

static int yy_get_next_buffer()
	{
	register char *dest = yy_current_buffer->yy_ch_buf;
	register char *source = yytext_ptr - 1; /* copy prev. char, too */
	register int number_to_move, i;
	int ret_val;

	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( yy_current_buffer->yy_fill_buffer == 0 )
		{ /* Don't try to fill the buffer, so this is an EOF. */
		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
			{
			/* We matched a singled characater, the EOB, so
			 * treat this as a final EOF.
			 */
			return EOB_ACT_END_OF_FILE;
			}

		else
			{
			/* We matched some text prior to the EOB, first
			 * process it.
			 */
			return EOB_ACT_LAST_MATCH;
			}
		}

	/* Try to read more data. */

	/* First move last chars to start of buffer. */
	number_to_move = yy_c_buf_p - yytext_ptr;

	for ( i = 0; i < number_to_move; ++i )
		*(dest++) = *(source++);

	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
		/* don't do the read, it's not guaranteed to return an EOF,
		 * just force an EOF
		 */
		yy_n_chars = 0;

	else
		{
		int num_to_read =
			yy_current_buffer->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */
#ifdef YY_USES_REJECT
			YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
#else

			/* just a shorter name for the current buffer */
			YY_BUFFER_STATE b = yy_current_buffer;

			int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf;

			b->yy_buf_size *= 2;
			b->yy_ch_buf = (char *)
				yy_flex_realloc( (void *) b->yy_ch_buf,
						 b->yy_buf_size );

			if ( ! b->yy_ch_buf )
				YY_FATAL_ERROR(
				"fatal error - scanner input buffer overflow" );

			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = yy_current_buffer->yy_buf_size -
						number_to_move - 1;
#endif
			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

		/* Read in more data. */
		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
			yy_n_chars, num_to_read );
		}

	if ( yy_n_chars == 0 )
		{
		if ( number_to_move - YY_MORE_ADJ == 1 )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			yyrestart( yyin );
			}

		else
			{
			ret_val = EOB_ACT_LAST_MATCH;
			yy_current_buffer->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	yy_n_chars += number_to_move;
	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;

	/* yytext begins at the second character in yy_ch_buf; the first
	 * character is the one which preceded it before reading in the latest
	 * buffer; it needs to be kept around in case it's a newline, so
	 * yy_get_previous_state() will have with '^' rules active.
	 */

	yytext_ptr = &yy_current_buffer->yy_ch_buf[1];

	return ret_val;
	}


/* yy_get_previous_state - get the state just before the EOB char was reached */

static yy_state_type yy_get_previous_state()
	{
	register yy_state_type yy_current_state;
	register char *yy_cp;

	register char *yy_bp = yytext_ptr;

	yy_current_state = yy_start;
	if ( yy_bp[-1] == '\n' )
		++yy_current_state;

	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
		{
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		if ( yy_accept[yy_current_state] )
			{
			yy_last_accepting_state = yy_current_state;
			yy_last_accepting_cpos = yy_cp;
			}
		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
			{
			yy_current_state = (int) yy_def[yy_current_state];
			if ( yy_current_state >= 824 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		}

	return yy_current_state;
	}


/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
 *	next_state = yy_try_NUL_trans( current_state );
 */

#ifdef YY_USE_PROTOS
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
#else
static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state;
#endif
	{
	register int yy_is_jam;
	register char *yy_cp = yy_c_buf_p;

	register YY_CHAR yy_c = 1;
	if ( yy_accept[yy_current_state] )
		{
		yy_last_accepting_state = yy_current_state;
		yy_last_accepting_cpos = yy_cp;
		}
	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
		{
		yy_current_state = (int) yy_def[yy_current_state];
		if ( yy_current_state >= 824 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 823);

	return yy_is_jam ? 0 : yy_current_state;
	}


#ifdef YY_USE_PROTOS
static void yyunput( int c, register char *yy_bp )
#else
static void yyunput( c, yy_bp )
int c;
register char *yy_bp;
#endif
	{
	register char *yy_cp = yy_c_buf_p;

	/* undo effects of setting up yytext */
	*yy_cp = yy_hold_char;

	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
		{ /* need to shift things up to make room */
		/* +2 for EOB chars. */
		register int number_to_move = yy_n_chars + 2;
		register char *dest = &yy_current_buffer->yy_ch_buf[
					yy_current_buffer->yy_buf_size + 2];
		register char *source =
				&yy_current_buffer->yy_ch_buf[number_to_move];

		while ( source > yy_current_buffer->yy_ch_buf )
			*--dest = *--source;

		yy_cp += dest - source;
		yy_bp += dest - source;
		yy_n_chars = yy_current_buffer->yy_buf_size;

		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
			YY_FATAL_ERROR( "flex scanner push-back overflow" );
		}

	if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
		yy_cp[-2] = '\n';

	*--yy_cp = (char) c;


	/* Note: the formal parameter *must* be called "yy_bp" for this
	 * macro to now work correctly.
	 */
	YY_DO_BEFORE_ACTION; /* set up yytext again */
	}


#ifdef __cplusplus
static int yyinput()
#else
static int input()
#endif
	{
	int c;

	*yy_c_buf_p = yy_hold_char;

	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
		{
		/* yy_c_buf_p now points to the character we want to return.
		 * If this occurs *before* the EOB characters, then it's a
		 * valid NUL; if not, then we've hit the end of the buffer.
		 */
		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
			/* This was really a NUL. */
			*yy_c_buf_p = '\0';

		else
			{ /* need more input */
			yytext_ptr = yy_c_buf_p;
			++yy_c_buf_p;

			switch ( yy_get_next_buffer() )
				{
				case EOB_ACT_END_OF_FILE:
					{
					if ( yywrap() )
						{
						yy_c_buf_p =
						yytext_ptr + YY_MORE_ADJ;
						return EOF;
						}

					YY_NEW_FILE;
#ifdef __cplusplus
					return yyinput();
#else
					return input();
#endif
					}

				case EOB_ACT_CONTINUE_SCAN:
					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
					break;

				case EOB_ACT_LAST_MATCH:
#ifdef __cplusplus
					YY_FATAL_ERROR(
					"unexpected last match in yyinput()" );
#else
					YY_FATAL_ERROR(
					"unexpected last match in input()" );
#endif
				}
			}
		}

	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
	*yy_c_buf_p = '\0';	/* preserve yytext */
	yy_hold_char = *++yy_c_buf_p;

	return c;
	}


#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
#else
void yyrestart( input_file )
FILE *input_file;
#endif
	{
	if ( ! yy_current_buffer )
		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );

	yy_init_buffer( yy_current_buffer, input_file );
	yy_load_buffer_state();
	}


#ifdef YY_USE_PROTOS
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
#else
void yy_switch_to_buffer( new_buffer )
YY_BUFFER_STATE new_buffer;
#endif
	{
	if ( yy_current_buffer == new_buffer )
		return;

	if ( yy_current_buffer )
		{
		/* Flush out information for old buffer. */
		*yy_c_buf_p = yy_hold_char;
		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
		yy_current_buffer->yy_n_chars = yy_n_chars;
		}

	yy_current_buffer = new_buffer;
	yy_load_buffer_state();

	/* We don't actually know whether we did this switch during
	 * EOF (yywrap()) processing, but the only time this flag
	 * is looked at is after yywrap() is called, so it's safe
	 * to go ahead and always set it.
	 */
	yy_did_buffer_switch_on_eof = 1;
	}


#ifdef YY_USE_PROTOS
void yy_load_buffer_state( void )
#else
void yy_load_buffer_state()
#endif
	{
	yy_n_chars = yy_current_buffer->yy_n_chars;
	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
	yyin = yy_current_buffer->yy_input_file;
	yy_hold_char = *yy_c_buf_p;
	}


#ifdef YY_USE_PROTOS
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
#else
YY_BUFFER_STATE yy_create_buffer( file, size )
FILE *file;
int size;
#endif
	{
	YY_BUFFER_STATE b;

	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );

	if ( ! b )
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

	b->yy_buf_size = size;

	/* yy_ch_buf has to be 2 characters longer than the size given because
	 * we need to put in 2 end-of-buffer characters.
	 */
	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );

	if ( ! b->yy_ch_buf )
		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );

	yy_init_buffer( b, file );

	return b;
	}


#ifdef YY_USE_PROTOS
void yy_delete_buffer( YY_BUFFER_STATE b )
#else
void yy_delete_buffer( b )
YY_BUFFER_STATE b;
#endif
	{
	if ( b == yy_current_buffer )
		yy_current_buffer = (YY_BUFFER_STATE) 0;

	yy_flex_free( (void *) b->yy_ch_buf );
	yy_flex_free( (void *) b );
	}


#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
#else
void yy_init_buffer( b, file )
YY_BUFFER_STATE b;
FILE *file;
#endif
	{
	b->yy_input_file = file;

	/* We put in the '\n' and start reading from [1] so that an
	 * initial match-at-newline will be true.
	 */

	b->yy_ch_buf[0] = '\n';
	b->yy_n_chars = 1;

	/* We always need two end-of-buffer characters.  The first causes
	 * a transition to the end-of-buffer state.  The second causes
	 * a jam in that state.
	 */
	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
	b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;

	b->yy_buf_pos = &b->yy_ch_buf[1];

	b->yy_is_interactive = file ? isatty( fileno(file) ) : 0;

	b->yy_fill_buffer = 1;

	b->yy_buffer_status = YY_BUFFER_NEW;
	}


#ifdef YY_USE_PROTOS
static void yy_push_state( int new_state )
#else
static void yy_push_state( new_state )
int new_state;
#endif
	{
	if ( yy_start_stack_ptr >= yy_start_stack_depth )
		{
		int new_size;

		yy_start_stack_depth += YY_START_STACK_INCR;
		new_size = yy_start_stack_depth * sizeof( int );

		if ( ! yy_start_stack )
			yy_start_stack = (int *) yy_flex_alloc( new_size );

		else
			yy_start_stack = (int *) yy_flex_realloc(
					(void *) yy_start_stack, new_size );

		if ( ! yy_start_stack )
			YY_FATAL_ERROR(
			"out of memory expanding start-condition stack" );
		}

	yy_start_stack[yy_start_stack_ptr++] = YY_START;

	BEGIN(new_state);
	}


static void yy_pop_state()
	{
	if ( --yy_start_stack_ptr < 0 )
		YY_FATAL_ERROR( "start-condition stack underflow" );

	BEGIN(yy_start_stack[yy_start_stack_ptr]);
	}


static int yy_top_state()
	{
	return yy_start_stack[yy_start_stack_ptr - 1];
	}


#ifdef YY_USE_PROTOS
static void yy_fatal_error( const char msg[] )
#else
static void yy_fatal_error( msg )
char msg[];
#endif
	{
	(void) fprintf( stderr, "%s\n", msg );
	exit( 1 );
	}



/* Redefine yyless() so it works in section 3 code. */

#undef yyless
#define yyless(n) \
	do \
		{ \
		/* Undo effects of setting up yytext. */ \
		yytext[yyleng] = yy_hold_char; \
		yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
		yy_hold_char = *yy_c_buf_p; \
		*yy_c_buf_p = '\0'; \
		yyleng = n; \
		} \
	while ( 0 )


/* Internal utility routines. */

#ifndef yytext_ptr
#ifdef YY_USE_PROTOS
static void yy_flex_strncpy( char *s1, const char *s2, int n )
#else
static void yy_flex_strncpy( s1, s2, n )
char *s1;
const char *s2;
int n;
#endif
	{
	register int i;
	for ( i = 0; i < n; ++i )
		s1[i] = s2[i];
	}
#endif


#ifdef YY_USE_PROTOS
static void *yy_flex_alloc( unsigned int size )
#else
static void *yy_flex_alloc( size )
unsigned int size;
#endif
	{
	return (void *) malloc( size );
	}

#ifdef YY_USE_PROTOS
static void *yy_flex_realloc( void *ptr, unsigned int size )
#else
static void *yy_flex_realloc( ptr, size )
void *ptr;
unsigned int size;
#endif
	{
	return (void *) realloc( ptr, size );
	}

#ifdef YY_USE_PROTOS
static void yy_flex_free( void *ptr )
#else
static void yy_flex_free( ptr )
void *ptr;
#endif
	{
	free( ptr );
	}
# line 731 "psify.lex"

yywrap()
{
	if (paren_open)
	  fprintf(yyout, ") show\n");
	fprintf(yyout, " normfont\n");
	if (!newpage)
	  fprintf(yyout, "showpage restore\n");
	BEGIN 0;
	return(1);
}

newparen()
{
  makenewpage();
  if (!paren_open)  {
    fprintf(yyout, "(");
    paren_open = 1;
  }
}

makenewpage()
{
  if (newcol) {
    fprintf(yyout, "\n%%%%Page: %d %d  Col:2\n", pagenum, masterpagenum);
    fprintf(yyout, "save\n");
    fprintf(yyout, "topcol2\n");
    switch(state)  {
	case NORM_STATE:
	case QUOTE_STATE:
	case SQUOTE_STATE:
		fprintf(yyout, "normfont\n");
		break;
	case COMMENT_STATE:
		fprintf(yyout, "commentfont\n");
		break;
    }
    newcol = 0;
    col2 = 1;
  } 

  if (newpage)  {
    pagenum++;
    masterpagenum++;
    linenum = 0;
    fprintf(yyout, "\n%%%%Page: %d %d  Col:1\n", pagenum, masterpagenum);
    fprintf(yyout, "save 0 setlinewidth\n");
    fprintf(yyout, "%d (%s) (%s) makeheader\n", pagenum, name, date);
    switch(state)  {
	case NORM_STATE:
	case QUOTE_STATE:
	case SQUOTE_STATE:
		fprintf(yyout, "normfont\n");
		break;
	case COMMENT_STATE:
		fprintf(yyout, "commentfont\n");
		break;
    }
    newpage = 0;
    col2 = 0;
  }
}






