# include <stdio.h>
# include <stddef.h>
# include <locale.h>
# include <stdlib.h>
# define U(x) ((x)&0377)
# define NCH 256
# define NLSTATE yyprevious=YYNEWLINE
# define BEGIN yybgin = yysvec + 1 +
# define INITIAL 0
# define YYLERR yysvec
# define YYSTATE (yyestate-yysvec-1)
# define YYOPTIM 1
# define YYLMAX 200

#ifdef __cplusplus
int yylook(void);
extern "C" int yywrap(void), yyless(int), yyreject(void);
#endif /* __cplusplus */

#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
# include <iostream.h>
# define output(c) (*yyout) << ((unsigned char) c)
# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):yyin->get())==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define ECHO (*yyout) << yytext
istream *yyin = &cin;
ostream *yyout = &cout;
#else
# define output(c) putc(c,yyout)
# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
# define ECHO fprintf(yyout, "%S",yywtext)
FILE *yyin = NULL, *yyout = NULL;
#endif /* defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
# define yymore() (yymorfg=1)
# define REJECT { nstr = yyreject(); goto yyfussy;}
# define yysetlocale() setlocale(LC_ALL,"")
# define wreturn(r) return(yywreturn(r))
# define winput() yywinput()
# define wunput(c) yywunput(c)
# define woutput(c) yywoutput(c)
int yyleng; extern unsigned char yytext[];
int yywleng; extern wchar_t yywtext[];
int yymorfg;
int yymbcurmax = -1;
int __once_yylex = 1;
extern unsigned char *yysptr, yysbuf[];
int yytchar;
extern int yylineno;
struct yywork;
struct yysvf { 
	struct yywork *yystoff;
	struct yysvf *yyother;
	int *yystops;};
struct yysvf *yyestate;
extern struct yysvf yysvec[], *yybgin;
#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT)
/*
 * If you get an error on the line below when compiling, the problem
 * is probably that you are using "flex -l" instead of "flex".  You do
 * not need to give flex the "-l" argument in order to build this
 * file.  You can probably solve this problem by (a) deleting
 * lex.yy.c, (b) adding "LEX=flex" to the Imakefile, (c) rebuilding
 * the Makefile from the Imakefile (with "xmkmf" or whatever else you
 * used the first time), and (d) trying to compile again.
 */
int yylineno = 1;
#define YYLINE yylineno++
#undef yywrap
#else
#define YYLINE
#endif
int yyback(int *p, int m);
# if YYHSIZE
int yyhlook(int c, int v);
int yymlook(int c);
# endif /*YYHSIZE*/
# if YYXSIZE
int yyxlook (int c, int v);
#endif /*YYXSIZE*/
int yywinput();
void yywoutput(int c);
void yywunput(int c);
int yywreturn(int r);
int yyinput();
void yyoutput(int c);
void yyunput(int c);
int yymbinput();
void yymboutput(int c);
void yymbunput(int c);
int yymbreturn(int x);
# define YYNEWLINE 10
#ifdef __cplusplus
extern "C"
#endif /*__cplusplus */
int yylex(){
int nstr; extern int yyprevious;
                 yyin = Newsrcfp;
if (__once_yylex) {
      yysetlocale();
#if !(__cplusplus && _CPP_IOSTREAMS)
      if (yyin == NULL) yyin = stdin;
      if (yyout == NULL) yyout = stdout;
#endif /* !(__cplusplus && _CPP_IOSTREAMS) */
      __once_yylex = 0; }
if(yymbcurmax<=0) yymbcurmax=MB_CUR_MAX;
while((nstr = yylook()) >= 0)
yyfussy: switch(nstr){
case 0:
if(yywrap()) return(0); break;
case 1:
      YYLINE;
/*NOTREACHED*/ break;
case 2:
             {YYLINE; return(EOL); }
/*NOTREACHED*/ break;
case 3:
              return(DASH);
/*NOTREACHED*/ break;
case 4:
              return(COMMA);
/*NOTREACHED*/ break;
case 5:
            {yylval.character = yytext[0]; return(SEPARATOR); }
/*NOTREACHED*/ break;
case 6:
         {yylval.integer = atoi((char *) yytext); return(NUMBER); }
/*NOTREACHED*/ break;
case 7:
case 8:
     {
		    char c = yytext[yyleng - 1];
                    yytext[yyleng-1] = '\0';
                    yylval.string = XtNewString((char *) yytext);
		    unput(c);
                    return(NAME);
                  }
/*NOTREACHED*/ break;
case 9:
            ;
/*NOTREACHED*/ break;
case 10:
{
		    YYLINE;
                    optionsLine = XtNewString((char *) yytext);
                    optionsLine[utStrlen(optionsLine) - 1] = '\0';
                  }
/*NOTREACHED*/ break;
case -1:
break;
default:
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
(*yyout) << "bad switch yylook " << nstr;
#else
fprintf(yyout,"bad switch yylook %d",nstr);
#endif /* defined(__cplusplus) && defined(_CPP_IOSTREAMS)*/
} return(0); }
/* end of yylex */
/*
 * $Id: newsrc.l,v 1.6 1995/04/19 22:02:40 jik Exp $
 */

/*
 * xrn - an X-based NNTP news reader
 *
 * Copyright (c) 1988-1993, Ellen M. Sentovich and Rick L. Spickelmier.
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation for any purpose and without fee is hereby granted, provided
 * that the above copyright notice appear in all copies and that both that
 * copyright notice and this permission notice appear in supporting
 * documentation, and that the name of the University of California not
 * be used in advertising or publicity pertaining to distribution of 
 * the software without specific, written prior permission.  The University
 * of California makes no representations about the suitability of this
 * software for any purpose.  It is provided "as is" without express or
 * implied warranty.
 *
 * THE UNIVERSITY OF CALIFORNIA DISCLAIMS ALL WARRANTIES WITH REGARD TO 
 * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND 
 * FITNESS, IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR
 * ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

yywrap()
{
    return(1);
}

/*ARGSUSED*/
yyerror(s)
char *s;
{
    /* lint/kludge */
#ifdef lint
    (void) yyinput();
    (void) yyoutput(0);
    (void) yyunput(0);
#endif /* lint */
}

int yyvstop[] = {
0,

9,
0,

2,
0,

5,
0,

4,
0,

3,
0,

6,
0,

9,
0,

1,
2,
0,

5,
0,

4,
0,

3,
0,

6,
0,

8,
0,

1,
0,

8,
0,

7,
0,

7,
8,
0,

10,
0,
0};
# define YYTYPE unsigned char
struct yywork { YYTYPE verify, advance; } yycrank[] = {
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	1,3,	1,4,
	11,21,	11,22,	13,0,	13,0,
	14,0,	14,0,	15,0,	15,0,
	0,0,	16,0,	16,0,	0,0,
	18,0,	18,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	1,3,	1,5,	11,21,
	0,0,	13,0,	0,0,	14,0,
	0,0,	15,0,	20,0,	20,0,
	16,0,	1,6,	1,7,	18,0,
	0,0,	1,8,	1,8,	1,8,
	1,8,	1,8,	1,8,	1,8,
	1,8,	1,8,	1,8,	1,5,
	16,16,	0,0,	0,0,	0,0,
	0,0,	20,0,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	1,9,	1,9,	1,9,	1,9,
	2,10,	0,0,	0,0,	18,25,
	0,0,	0,0,	0,0,	0,0,
	2,11,	2,12,	8,8,	8,8,
	8,8,	8,8,	8,8,	8,8,
	8,8,	8,8,	8,8,	8,8,
	9,19,	0,0,	10,10,	0,0,
	0,0,	17,23,	19,0,	19,0,
	9,0,	9,0,	10,0,	10,0,
	2,13,	17,0,	17,0,	23,0,
	23,0,	24,0,	24,0,	25,0,
	25,0,	0,0,	0,0,	2,14,
	2,15,	0,0,	0,0,	2,16,
	0,0,	19,0,	19,26,	9,0,
	9,19,	10,0,	10,20,	0,0,
	17,0,	17,24,	23,0,	23,27,
	24,0,	24,27,	25,0,	25,27,
	2,17,	0,0,	0,0,	9,19,
	0,0,	10,10,	26,0,	26,0,
	17,23,	27,0,	27,0,	28,0,
	28,0,	29,0,	29,0,	30,0,
	30,0,	31,0,	31,0,	0,0,
	9,19,	0,0,	10,10,	0,0,
	0,0,	17,23,	32,0,	32,0,
	0,0,	26,0,	26,26,	0,0,
	27,0,	27,27,	28,0,	28,27,
	29,0,	29,27,	30,0,	30,27,
	31,0,	31,27,	0,0,	0,0,
	33,33,	0,0,	2,18,	0,0,
	0,0,	32,33,	32,27,	0,0,
	33,33,	33,34,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	33,33,	0,0,	0,0,	0,0,
	0,0,	0,0,	25,28,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	33,33,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	28,29,
	33,33,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	29,30,
	30,31,	0,0,	0,0,	0,0,
	0,0,	0,0,	0,0,	31,32,
	0,0};
struct yysvf yysvec[] = {
0,	0,	0,
yycrank+1,	0,		0,	
yycrank+-123,	0,		0,	
yycrank+0,	0,		yyvstop+1,
yycrank+0,	0,		yyvstop+3,
yycrank+0,	0,		yyvstop+5,
yycrank+0,	0,		yyvstop+7,
yycrank+0,	0,		yyvstop+9,
yycrank+86,	0,		yyvstop+11,
yycrank+-143,	0,		0,	
yycrank+-145,	0,		0,	
yycrank+3,	0,		yyvstop+13,
yycrank+0,	0,		yyvstop+15,
yycrank+-5,	yysvec+10,	yyvstop+18,
yycrank+-7,	yysvec+10,	yyvstop+20,
yycrank+-9,	yysvec+10,	yyvstop+22,
yycrank+-12,	yysvec+10,	yyvstop+24,
yycrank+-148,	0,		0,	
yycrank+-15,	yysvec+17,	0,	
yycrank+-141,	yysvec+9,	0,	
yycrank+-33,	yysvec+10,	yyvstop+26,
yycrank+0,	yysvec+11,	0,	
yycrank+0,	0,		yyvstop+28,
yycrank+-150,	yysvec+17,	0,	
yycrank+-152,	yysvec+17,	yyvstop+30,
yycrank+-154,	yysvec+17,	0,	
yycrank+-185,	yysvec+9,	yyvstop+32,
yycrank+-188,	yysvec+17,	yyvstop+34,
yycrank+-190,	yysvec+17,	0,	
yycrank+-192,	yysvec+17,	0,	
yycrank+-194,	yysvec+17,	0,	
yycrank+-196,	yysvec+17,	0,	
yycrank+-205,	yysvec+17,	0,	
yycrank+-231,	0,		0,	
yycrank+0,	0,		yyvstop+37,
0,	0,	0};
struct yywork *yytop = yycrank+311;
struct yysvf *yybgin = yysvec+1;
unsigned char yymatch[] = {
00  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,011 ,012 ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
011 ,'!' ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,
'0' ,'0' ,'!' ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
01  ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,
'A' ,'A' ,'A' ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
01  ,01  ,01  ,01  ,01  ,01  ,01  ,01  ,
0};
unsigned char yyextra[] = {
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0};
/* @(#)44 1.9.1.2 com/lib/l/ncform, libl, bos320, 9240320 9/28/92 09:13:13";*/
/*
 * COMPONENT_NAME: (LIBL) Lex Libraries
 *
 * FUNCTIONS: yylook, yyhlook, yyback, yyinput, yyoutput, yyunput,
 *            yymbinput, yymboutput, yymbunput, yymbreturn
 *            yywinput, yywoutput, yywunput, yywreturn
 *
 * ORIGINS: 03
 *
*/

int yylineno =1;

# define YYU(x)         x
# define NLSTATE        yyprevious=YYNEWLINE

# define YYCCLDOT       0x0001

unsigned char   yytext[YYLMAX];
wchar_t         yywtext[YYLMAX];
wchar_t         yywbuf[YYLMAX];

unsigned char   yytbuf[YYLMAX];
unsigned char   *yytbp;
int             yytbi;
wchar_t         yytwc;

struct yysvf    *yylstate [YYLMAX], **yylsp, **yyolsp;
unsigned char   yysbuf[YYLMAX];
unsigned char   *yysptr = yysbuf;
int             *yyfnd;
extern struct yysvf *yyestate;
int             yyprevious = YYNEWLINE;

# ifdef LEXDEBUG
int             debug;
#ifdef __cplusplus
#ifdef _CPP_IOSTREAMS
void            allprint(wchar_t);
void            sprint  (wchar_t *);
#else
extern "C" void allprint(wchar_t);
extern "C" void sprint  (wchar_t *);
#endif
#endif
# endif

yylook()
{
register struct yysvf *yystate, **lsp;
register struct yywork *yyt;
struct yysvf    *yyz;
int             yywch, yyfirst, yyw;
struct yywork   *yyr;
wchar_t         *yywlastch;
/*
 * start off machines
 */
# ifdef LEXDEBUG
    debug = 1;
# endif

    yyfirst=1;
    if (!yymorfg)
        yywlastch = yywtext;
    else
    {
        yymorfg=0;
        yywlastch = &(yywtext[yywleng]);
    }

    for(;;)
    {
        lsp = yylstate;
        yyestate = yystate = yybgin;
        if (yyprevious==YYNEWLINE)
            yystate++;
        for (;;)
        {
# ifdef LEXDEBUG
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
            if(debug) (*yyout) << "state " << yystate-yysvec-1 << endl;
#else
            if(debug) fprintf(yyout,"state %d\n",yystate-yysvec-1);
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
# endif
            yyt = yystate->yystoff;
            if(yyt == yycrank && !yyfirst)      /* may not be any transitions */
            {
                yyz = yystate->yyother;
                if(yyz == 0)
                    break;
                if(yyz->yystoff == yycrank)
                    break;
            }
            yywch = winput();
            *yywlastch++ = yywch;

            yyfirst=0;
        tryagain:
# ifdef LEXDEBUG
            if(debug)
            {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                (*yyout) << "char ";
                allprint (yywch);
                (*yyout) << endl;
#else
                fprintf(yyout,"char ");
                allprint(yywch);
                putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
            }
# endif
            yyr = yyt;
            if ( (int)yyt > (int)yycrank)
            {
                if (yywch < NCH)                /* 8-bit */
                {
                    yyt = yyr + yywch;
                    if (yyt <= yytop && yyt->verify+yysvec == yystate)
                    {
                        if(yyt->advance+yysvec == YYLERR) /* error transitions */
                        {
                            wunput(*--yywlastch);
                            break;
                        }
                        *lsp++ = yystate = yyt->advance+yysvec;
                        goto contin;
                    }
                }
# if YYHSIZE
                else                            /* wide */
                {
                    if (yyw = yyhlook(yywch,yystate-yysvec))
                    {
                        if (yywcrank[yyw].wadvance+yysvec==YYLERR)
                        {
                            wunput(*--yywlastch);
                            break;
                        }
                        *lsp++ = yystate = yywcrank[yyw].wadvance+yysvec;
                        goto contin;
                    }
                }
# endif /*YYHSIZE*/
            }
# ifdef YYOPTIM
            else if ((int)yyt < (int)yycrank)   /* r < yycrank */
            {
                yyt = yyr = yycrank+(yycrank-yyt);
# ifdef LEXDEBUG
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                if(debug) (*yyout) << "compressed state" << endl;
#else
                if(debug) fprintf(yyout,"compressed state\n");
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
# endif
                if (yywch < NCH)                /* 8-bit */
                {
                    yyt = yyt + yywch;
                    if(yyt <= yytop && yyt->verify+yysvec == yystate)
                    {
                        if(yyt->advance+yysvec == YYLERR) /* error transitions */
                        {
                            wunput(*--yywlastch);
                            break;
                        }
                        *lsp++ = yystate = yyt->advance+yysvec;
                        goto contin;
                    }
                    yyt = yyr + YYU(yymatch[yywch]);
# ifdef LEXDEBUG
                    if(debug)
                    {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                        (*yyout) << "try fall back character ";
                        allprint(YYU(yymatch[yywch]));
                        (*yyout) << endl;
#else
                        fprintf(yyout,"try fall back character ");
                        allprint(YYU(yymatch[yywch]));
                        putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
                    }
# endif
                    if(yyt <= yytop && yyt->verify+yysvec == yystate)
                    {
                        if(yyt->advance+yysvec == YYLERR) /* error transition */
                        {
                            wunput(*--yywlastch);
                            break;
                        }
                        *lsp++ = yystate = yyt->advance+yysvec;
                        goto contin;
                    }
                }
# if YYHSIZE
                else                            /* wide */
                {
                    if (yyw = yyhlook(yywch,yystate-yysvec))
                    {
                        if (yywcrank[yyw].wadvance+yysvec==YYLERR)
                        {
                            wunput(*--yywlastch);
                            break;
                        }
                        *lsp++ = yystate = yywcrank[yyw].wadvance+yysvec;
                        goto contin;
                    }
                    if (yyw = yymlook(yywch))   /* find the target char */
                    {
                        if (yyw = yyhlook(yyw,yystate-yysvec))
                        {
                            if (yywcrank[yyw].wadvance+yysvec == YYLERR)
                            {
                                wunput(*--yywlastch);
                                break;
                            }
                            *lsp++ = yystate = yywcrank[yyw].wadvance+yysvec;
                            goto contin;
                        }
                    }
                }
# endif /*YYHSIZE*/
# if YYXSIZE
# ifdef MFDEBUG
                if (debug)
                {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                    (*yyout) << "try extended ccl on char ";
                    allprint(YYU(yywch));
                    (*yyout) << '\n';
#else
                    fprintf (yyout, "try extended ccl on char ");
                    allprint(YYU(yywch));
                    putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
                }
# endif
                yyw = yyxlook(yywch,yystate-yysvec);
                if (yyw != -1)
                {
                    if (yyxccl[yyw].advance+yysvec == YYLERR)
                    {
                        wunput(*--yywlastch);
                        break;
                    }
                    *lsp++ = yystate = yyxccl[yyw].advance+yysvec;
                    goto contin;
                }
# endif /*YYXSIZE*/
            } /* r < yycrank */
            if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank)
            {
# ifdef LEXDEBUG
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                if(debug) (*yyout) << "fall back to state "
                                   << yystate-yysvec-1 << endl;
#else
                if(debug) fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
# endif
                goto tryagain;
            }
# endif /*YYOPTIM*/
            else
            {
                wunput(*--yywlastch);
                break;
            }
        contin:
# ifdef LEXDEBUG
            if(debug)
            {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                (*yyout) << "state " << yystate-yysvec-1 << " char ";
                allprint(yywch);
                (*yyout) << endl;
#else
                fprintf(yyout,"state %d char ",yystate-yysvec-1);
                allprint(yywch);
                putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
            }
# endif
            ; /* contin: */
        } /* for(;;) */
# ifdef LEXDEBUG
        if(debug)
        {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
            (*yyout) << "stopped at " << (int) (*(lsp-1)-yysvec-1) << " with ";
            allprint(yywch);
            (*yyout) << endl;
#else
            fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
            allprint(yywch);
            putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
        }
# endif
        while (lsp-- > yylstate)
        {
            *yywlastch-- = 0;
            if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0)
            {
                yyolsp = lsp;
                if(yyextra[*yyfnd])             /* must backup */
                {
                    while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate)
                    {
                        lsp--;
                        wunput(*yywlastch--);
                    }
                }
                yyprevious = YYU(*yywlastch);
                yylsp = lsp;
                yywleng = yywlastch-yywtext+1;
                yywtext[yywleng] = 0;
# ifdef LEXDEBUG
                if(debug)
                {
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
                    (*yyout) << "\nmatch ";
                    sprint(yywtext);
                    (*yyout) << " action " << *yyfnd << endl;
#else
                    fprintf(yyout,"\nmatch ");
                    sprint(yywtext);
                    fprintf(yyout," action %d\n",*yyfnd);
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
                }
# endif

                wreturn(*yyfnd++);
            }
            wunput(*yywlastch);
        }
        if (yywtext[0] == 0  /* && feof(yyin) */)
        {
            yysptr=yysbuf;
            wreturn(0);
        }
        yyprevious = yywtext[0] = winput();
        if (yyprevious>0)
            woutput(yyprevious);
        yywlastch=yywtext;
# ifdef LEXDEBUG
#if defined(__cplusplus) && defined(_CPP_IOSTREAMS)
        if(debug) cout << endl;
#else
        if(debug) putchar('\n');
#endif /* #if defined(__cplusplus) && defined(_CPP_IOSTREAMS) */
# endif
    } /* for (;;) */
    wreturn(0);
}
int yyback(int *p, int m)
{
    if (p==0) return(0);
    while (*p)
    {
        if (*p++ == m)
            return(1);
    }
    return(0);
}
# if YYHSIZE
/*
 * wide chars are hashed in yywcrank, return the index of the found element, or
 * zero
 */
int yyhlook(int c, int v)
{
int             n;

    n = (c % (YYHSIZE - 1)) + 1;
    for (;;)
    {
        if ((yywcrank[n].wch==c)&&(yywcrank[n].wverify==v))
            return(n);
        n = yywcrank[n].wnext;
        if (n==0)
            return(0);
    }
}
# endif /*YYHSIZE*/
# if YYHSIZE
/*
 * wide CCL chars are hashed in yywmatch, return the character to map to or
 * zero if there are none;  each char occurs only once in the match table.
 */
int
yymlook(int c)
{
# if YYMSIZE
int             n;

    n = (c % (YYMSIZE - 1)) + 1;

    while (n!=0)
    {
        if (yywmatch[n].wch == c)
            return(yywmatch[n].wmatch);
        n = yywmatch[n].wnext;
    }
# endif /*YYMSIZE*/

    return(0);
}
# endif /*YYHSIZE*/
# if YYXSIZE
/*
 * general CCLs are described in yyxccl; return the index of the first
 * acceptable CCL that matches verification, -1 if none found.
 */
int
yyxlook (int c, int v)
{
register int i;

    if (!c)                                     /* c==0 => EOF */
        return (-1);

    for (i = 0; (i < YYXSIZE) && (yyxccl[i].verify < v); i++)
        ; /*Empty*/

    for ( ; (i < YYXSIZE) && (yyxccl[i].verify == v); i++)
    {
        switch (yyxccl[i].type)
        {
        case YYCCLDOT:  return((c=='\n')?-1:i);
        }
    }
    return (-1);
}
#endif
/*
 * The following are the multi-byte renditions of input, unput, and
 * output.  They are referenced through the winput, wunput, and woutput macros
 * resepectively.
 *
 * A (-1) is returned if the character input is invalid.
 */
#ifdef __cplusplus
#include <mbstr.h>
#endif /*  __cplusplus */
int yywinput()
{
    yytbi=0;
    do
    {
        yytbuf[yytbi++]=input();
        yytbuf[yytbi]=0;
    } while(mbsinvalid((const char *) yytbuf)&&(yytbi<yymbcurmax));

    if (mbtowc(&yytwc,(const char *)yytbuf,yymbcurmax)<0)
        return (-1);

    return ((int)yytwc);
}

void yywoutput(int c)
{
    for (yytbi=wctomb((char *) yytbuf,(wchar_t)c),yytbp=yytbuf;yytbi>0;yytbi--)
        output(*yytbp++);
}
void yywunput(int c)
{
    for(yytbi=wctomb((char *)yytbuf,(wchar_t)c)-1;yytbi>=0;yytbi--)
        unput(yytbuf[yytbi]);
}
/*
 * Convert yywtext to yytext prior to returning from yylook.  It is referenced
 * through the wreturn macro.
 */
int yywreturn(int r)
{
    yyleng=wcstombs((char *)yytext,yywtext,YYLMAX);
    if(yyleng<0)
    {
        yyleng=0;
        yytext[0]=0;
    }
    return(r);
}
/*
 * the following are only used in the lex library
 */
int yyinput()
{
    return(input());
}
void yyoutput(int c)
{
    output(c);
}
void yyunput(int c)
{
    unput(c);
}
int yymbinput()
{
    return(winput());
}
void yymboutput(int c)
{
    woutput(c);
}
void yymbunput(int c)
{
    wunput(c);
}
int yymbreturn(int x)
{
    wreturn (x);
}
