summaryrefslogtreecommitdiffstats
path: root/private/os2/client/thunk/thunkcom/mtclex.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/os2/client/thunk/thunkcom/mtclex.c2115
1 files changed, 2115 insertions, 0 deletions
diff --git a/private/os2/client/thunk/thunkcom/mtclex.c b/private/os2/client/thunk/thunkcom/mtclex.c
new file mode 100644
index 000000000..2625681ee
--- /dev/null
+++ b/private/os2/client/thunk/thunkcom/mtclex.c
@@ -0,0 +1,2115 @@
+# include "stdio.h"
+# define U(x) x
+# 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
+# define output(c) putc(c,yyout)
+# define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar)
+# define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;}
+# define yymore() (yymorfg=1)
+# define ECHO fprintf(yyout, "%s",yytext)
+# define REJECT { nstr = yyreject(); goto yyfussy;}
+int yyleng; extern char yytext[];
+int yymorfg;
+extern char *yysptr, yysbuf[];
+int yytchar;
+FILE *yyin = {stdin}, *yyout = {stdout};
+extern int yylineno;
+struct yysvf {
+ struct yywork *yystoff;
+ struct yysvf *yyother;
+ int *yystops;};
+struct yysvf *yyestate;
+extern struct yysvf yysvec[], *yybgin;
+#include <stdlib.h>
+#include "types.h"
+#include "symtab.h"
+#include "mtcpars.h"
+#include "thunk.h"
+
+typedef struct _FR {
+ int LineNo;
+ FILE *pfhFile;
+ char *pszFileName;
+ struct _FR *pPreviousFile;
+} FileRecord;
+
+FileRecord *FileList = NULL;
+
+static iCommentNesting = 0;
+
+# define Normal 2
+# define EatComment 4
+# define LookFilename 6
+# define HexNum 8
+# define YYNEWLINE 10
+yylex(){
+int nstr; extern int yyprevious;
+while((nstr = yylook()) >= 0)
+yyfussy: switch(nstr){
+case 0:
+if(yywrap()) return(0); break;
+case 1:
+ return(syFar16);
+break;
+case 2:
+ return(syNear32);
+break;
+case 3:
+ return(syPtr);
+break;
+case 4:
+ return(syAPI16);
+break;
+case 5:
+ return(syAPI32);
+break;
+case 6:
+ return(syUnsigned);
+break;
+case 7:
+ return(sySigned);
+break;
+case 8:
+ return(syLong);
+break;
+case 9:
+ return(syShort);
+break;
+case 10:
+ return(syInt);
+break;
+case 11:
+ return(syTypeDef);
+break;
+case 12:
+ return(syMakeThunk);
+break;
+case 13:
+ return(sySizeOf);
+break;
+case 14:
+ return(syCountOf);
+break;
+case 15:
+ return(syInput);
+break;
+case 16:
+ return(syInOut);
+break;
+case 17:
+ return(syOutput);
+break;
+case 18:
+ return(syStruct);
+break;
+case 19:
+ return(syString);
+break;
+case 20:
+ return(syPassIfHiNull);
+break;
+case 21:
+ return(sySpecial);
+break;
+case 22:
+ return(syMapToRetval);
+break;
+case 23:
+ return(syReverseRC);
+break;
+case 24:
+ return(syLocalHeap);
+break;
+case 25:
+ return(syVoid);
+break;
+case 26:
+ return(syChar);
+break;
+case 27:
+ return(syNullType);
+break;
+case 28:
+ return(syNewElem);
+break;
+case 29:
+ return(syErrNoMem);
+break;
+case 30:
+ return(syErrBadParam);
+break;
+case 31:
+ return(syErrUnknown);
+break;
+case 32:
+ return(syTrue);
+break;
+case 33:
+ return(syFalse);
+break;
+case 34:
+ return(syStack);
+break;
+case 35:
+ return(syInline);
+break;
+case 36:
+ return(syTruncation);
+break;
+case 37:
+ return(syEnableMapDirect1632);
+break;
+case 38:
+ return(syUser);
+break;
+case 39:
+ return(syGdi);
+break;
+case 40:
+ return(syKernel);
+break;
+case 41:
+ return(sySysCall);
+break;
+case 42:
+ return(syConforming);
+break;
+case 43:
+ return(syByte);
+break;
+case 44:
+ return(syWord);
+break;
+case 45:
+ return(syDWord);
+break;
+case 46:
+ return(syAligned);
+break;
+case 47:
+ return(syDeleted);
+break;
+case 48:
+ return(syAllow);
+break;
+case 49:
+ return(syRestrict);
+break;
+case 50:
+ return(syMapDirect);
+break;
+case 51:
+ return(syEqual);
+break;
+case 52:
+ return(syLParen);
+break;
+case 53:
+ return(syRParen);
+break;
+case 54:
+ return(sySemi);
+break;
+case 55:
+ return(syPlus);
+break;
+case 56:
+ return(syMinus);
+break;
+case 57:
+ return(syDiv);
+break;
+case 58:
+ return(syComma);
+break;
+case 59:
+ return(syLBrace);
+break;
+case 60:
+ return(syRBrace);
+break;
+case 61:
+ return(syLBrack);
+break;
+case 62:
+ return(syRBrack);
+break;
+case 63:
+ {
+ BEGIN LookFilename;
+ }
+break;
+case 64:
+ {
+ yylval.ident = typ_DupString(yytext);
+ return(syIdent);
+ }
+break;
+case 65:
+ {
+ BEGIN HexNum;
+ }
+break;
+case 66:
+ {
+ sscanf(yytext,"%lx",&yylval.longval);
+ BEGIN Normal;
+ return(syNumber);
+ }
+break;
+case 67:
+ {
+ return(syError);
+ }
+break;
+case 68:
+ {
+ yylval.longval = atoi(yytext);
+ return(syNumber);
+ }
+break;
+case 69:
+ ;
+break;
+case 70:
+ {
+ iCommentNesting++;
+
+ BEGIN EatComment;
+ }
+break;
+case 71:
+ {
+ iCommentNesting++;
+
+
+ }
+break;
+case 72:
+ {
+ if(--iCommentNesting == 0) BEGIN Normal;
+ }
+break;
+case 73:
+ ;
+break;
+case 74:
+ ;
+break;
+case 75:
+{
+ PushInclude(yytext);
+ BEGIN Normal;
+ }
+break;
+case 76:
+{
+
+ }
+break;
+case -1:
+break;
+default:
+fprintf(yyout,"bad switch yylook %d",nstr);
+} return(0); }
+/* end of yylex */
+
+void PushInclude( char *yyFile)
+{
+ FILE *filePtr;
+ FileRecord *pTemp;
+
+ yyFile[yyleng-1] = '\0'; /* Remove Ending quote */
+ yyFile++; /* Skip first quote */
+
+
+ if(pTemp = (FileRecord *) malloc(sizeof(FileRecord))) {
+
+ pTemp->LineNo = yylineno;
+ pTemp->pfhFile = yyin;
+/*
+
+ if((pTemp->fhFile=dup(0)) < 0)
+ fatal("PushInclude: Out of file handles");
+*/
+
+ pTemp->pszFileName = yyinname;
+
+/*
+ if(close(0)) fatal("PushInclude close 0 failed");
+*/
+
+ pTemp->pPreviousFile = FileList;
+ FileList = pTemp;
+
+ } else {
+ fatal("PushInclude malloc failure");
+ }
+
+
+
+ filePtr = fopen(yyFile, "r");
+
+ if (filePtr == NULL) {
+ fatal("fopen(%s): Could not open file ",yyFile);
+ }
+ yyin = filePtr;
+
+ yylineno = 0;
+ yyinname = typ_DupString(yyFile);
+}
+
+
+
+void LookNormal( void)
+{
+ BEGIN Normal;
+}
+
+int yywrap( void)
+{
+ FileRecord *pTemp;
+
+ if(!FileList)
+ return 1;
+
+ /* Close current file */
+ if( fclose( yyin))
+ fatal( "yywrap close yyin failed");
+
+
+/*****
+ if(dup2(FileList->fhFile,0))
+ fatal( "yywrap dup failure");
+ if(close(FileList->fhFile))
+ fatal( "yywrap close %d failure", FileList->fhFile);
+*****/
+
+ yyin = FileList->pfhFile;
+
+ yylineno = FileList->LineNo;
+
+
+
+ yyinname = FileList->pszFileName;
+
+ pTemp= FileList;
+
+ FileList = FileList->pPreviousFile;
+
+ free( pTemp);
+
+ return 0;
+}
+int yyvstop[] = {
+0,
+
+69,
+0,
+
+52,
+0,
+
+53,
+0,
+
+3,
+0,
+
+55,
+0,
+
+58,
+0,
+
+56,
+0,
+
+57,
+0,
+
+68,
+0,
+
+68,
+0,
+
+54,
+0,
+
+51,
+0,
+
+64,
+0,
+
+64,
+0,
+
+61,
+0,
+
+62,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+59,
+0,
+
+60,
+0,
+
+74,
+0,
+
+73,
+74,
+0,
+
+73,
+0,
+
+74,
+0,
+
+74,
+0,
+
+67,
+0,
+
+66,
+67,
+0,
+
+70,
+0,
+
+65,
+0,
+
+50,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+72,
+0,
+
+71,
+0,
+
+75,
+0,
+
+76,
+0,
+
+66,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+39,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+10,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+43,
+64,
+0,
+
+26,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+8,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+32,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+38,
+64,
+0,
+
+25,
+64,
+0,
+
+44,
+64,
+0,
+
+4,
+64,
+0,
+
+5,
+64,
+0,
+
+64,
+0,
+
+48,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+45,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+33,
+64,
+0,
+
+1,
+64,
+0,
+
+64,
+0,
+
+16,
+64,
+0,
+
+15,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+9,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+34,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+12,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+35,
+64,
+0,
+
+40,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+2,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+17,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+7,
+64,
+0,
+
+13,
+64,
+0,
+
+64,
+0,
+
+19,
+64,
+0,
+
+18,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+46,
+64,
+0,
+
+64,
+0,
+
+14,
+64,
+0,
+
+47,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+28,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+21,
+64,
+0,
+
+41,
+64,
+0,
+
+64,
+0,
+
+11,
+64,
+0,
+
+64,
+0,
+
+63,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+29,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+27,
+64,
+0,
+
+64,
+0,
+
+49,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+6,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+24,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+23,
+64,
+0,
+
+64,
+0,
+
+42,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+31,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+36,
+64,
+0,
+
+64,
+0,
+
+30,
+64,
+0,
+
+22,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+20,
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+64,
+0,
+
+37,
+64,
+0,
+0};
+# define YYTYPE int
+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, 3,11, 3,11,
+10,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, 3,11, 0,0, 7,55,
+3,12, 0,0, 0,0, 0,0,
+0,0, 3,13, 3,14, 3,15,
+3,16, 3,17, 3,18, 19,60,
+3,19, 3,20, 3,21, 3,21,
+3,21, 3,21, 3,21, 3,21,
+3,21, 3,21, 3,21, 6,53,
+3,22, 7,56, 3,23, 0,0,
+6,54, 23,62, 3,24, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,25, 3,25, 3,25, 3,25,
+3,26, 25,25, 3,27, 53,95,
+3,25, 54,96, 3,28, 3,29,
+3,30, 3,31, 3,32, 3,33,
+3,34, 3,25, 3,35, 3,25,
+3,36, 3,37, 3,38, 3,39,
+3,40, 3,41, 3,25, 3,42,
+3,43, 3,44, 3,45, 3,46,
+3,47, 3,25, 3,25, 3,25,
+3,48, 5,50, 3,49, 9,57,
+12,59, 28,25, 40,25, 32,25,
+29,25, 5,51, 5,52, 9,57,
+9,0, 20,21, 20,21, 20,21,
+20,21, 20,21, 20,21, 20,21,
+20,21, 20,21, 20,21, 21,21,
+21,21, 21,21, 21,21, 21,21,
+21,21, 21,21, 21,21, 21,21,
+21,21, 28,64, 5,50, 30,25,
+9,57, 32,70, 33,25, 35,25,
+34,25, 32,71, 5,53, 40,80,
+38,25, 59,100, 100,144, 5,54,
+5,50, 29,65, 9,58, 31,25,
+114,25, 41,25, 118,25, 33,72,
+37,25, 46,25, 144,191, 30,66,
+34,73, 38,77, 5,50, 36,25,
+9,57, 5,50, 30,67, 9,58,
+42,25, 35,74, 41,81, 5,50,
+31,68, 9,57, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+36,75, 20,61, 47,25, 37,76,
+46,93, 42,82, 31,69, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,63, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 47,94, 149,25, 150,25,
+65,25, 24,25, 45,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 24,25, 24,25, 24,25,
+24,25, 39,25, 44,25, 43,25,
+45,91, 64,25, 63,101, 55,55,
+65,104, 45,92, 88,25, 67,25,
+56,56, 63,25, 66,25, 55,55,
+55,0, 70,25, 68,25, 69,25,
+56,56, 56,0, 39,78, 71,25,
+72,25, 79,25, 44,88, 43,83,
+43,84, 75,25, 64,102, 66,105,
+77,25, 64,103, 70,110, 43,85,
+44,89, 73,25, 39,79, 43,86,
+55,97, 67,106, 76,25, 44,90,
+43,87, 56,56, 68,108, 88,137,
+67,107, 83,25, 69,109, 84,25,
+72,112, 79,125, 55,55, 166,25,
+184,25, 71,111, 72,113, 56,56,
+81,25, 76,120, 73,114, 75,119,
+77,122, 90,25, 188,25, 189,25,
+55,55, 190,25, 191,231, 55,55,
+76,121, 56,98, 84,131, 80,25,
+56,56, 55,55, 74,25, 78,25,
+83,130, 82,25, 56,56, 58,99,
+58,99, 58,99, 58,99, 58,99,
+58,99, 58,99, 58,99, 58,99,
+58,99, 84,132, 85,25, 81,127,
+78,123, 90,139, 93,25, 92,25,
+58,99, 58,99, 58,99, 58,99,
+58,99, 58,99, 74,115, 86,25,
+87,25, 74,116, 74,117, 80,126,
+89,25, 91,25, 74,118, 85,133,
+82,128, 94,25, 78,124, 82,129,
+92,141, 102,25, 103,25, 93,142,
+86,134, 101,145, 104,25, 101,146,
+105,25, 107,25, 106,25, 109,25,
+58,99, 58,99, 58,99, 58,99,
+58,99, 58,99, 112,25, 108,25,
+110,25, 86,135, 115,25, 87,136,
+102,147, 111,25, 113,160, 104,149,
+91,140, 89,138, 116,25, 94,143,
+106,151, 103,148, 117,25, 119,25,
+101,25, 120,25, 110,155, 107,152,
+108,153, 121,25, 105,150, 111,156,
+122,25, 109,154, 125,25, 115,161,
+123,25, 124,25, 127,25, 126,25,
+128,25, 112,159, 120,165, 111,157,
+129,25, 113,25, 130,25, 131,25,
+132,25, 135,25, 111,158, 137,25,
+121,166, 119,164, 141,25, 116,162,
+133,25, 138,25, 124,169, 117,163,
+134,25, 148,25, 125,170, 136,25,
+139,25, 129,174, 140,25, 145,192,
+122,167, 132,177, 123,168, 126,171,
+142,25, 127,172, 135,180, 133,178,
+128,173, 131,176, 138,184, 134,179,
+130,175, 137,183, 136,182, 143,25,
+146,193, 139,186, 135,181, 138,185,
+141,188, 147,25, 151,25, 140,187,
+142,189, 145,25, 152,25, 153,25,
+154,25, 155,25, 156,25, 158,25,
+148,195, 157,25, 159,25, 143,190,
+161,25, 162,25, 163,25, 160,205,
+165,25, 167,25, 168,212, 170,25,
+171,25, 177,25, 146,25, 156,201,
+154,199, 164,25, 169,25, 147,194,
+172,25, 151,196, 173,25, 159,204,
+174,25, 155,200, 175,25, 176,25,
+178,25, 158,203, 152,197, 153,198,
+157,202, 160,25, 161,206, 180,25,
+165,210, 179,25, 164,209, 168,25,
+167,211, 162,207, 163,208, 182,25,
+177,221, 172,216, 169,213, 170,214,
+176,220, 171,215, 181,25, 183,25,
+185,25, 178,222, 186,25, 192,25,
+173,217, 187,25, 174,218, 193,25,
+182,226, 194,25, 175,219, 195,25,
+179,223, 180,224, 196,25, 197,25,
+198,25, 181,225, 199,25, 185,228,
+200,25, 202,25, 186,229, 201,25,
+203,25, 204,25, 183,227, 205,25,
+187,230, 207,25, 194,232, 206,25,
+208,25, 209,25, 210,25, 211,25,
+212,244, 198,235, 213,25, 214,25,
+215,25, 200,236, 216,25, 201,237,
+218,25, 217,25, 197,234, 219,25,
+196,233, 221,25, 202,238, 203,239,
+206,240, 220,25, 223,25, 222,25,
+225,25, 226,25, 210,242, 213,245,
+224,25, 209,241, 227,25, 229,25,
+216,248, 228,25, 212,25, 230,25,
+231,260, 211,243, 217,249, 221,252,
+222,253, 220,251, 232,25, 233,25,
+215,247, 234,25, 235,25, 218,250,
+214,246, 236,25, 228,257, 224,254,
+229,258, 226,256, 237,25, 238,25,
+240,25, 239,25, 241,25, 242,25,
+225,255, 243,25, 232,261, 244,25,
+245,25, 230,259, 235,264, 234,263,
+246,25, 247,25, 248,25, 249,25,
+233,262, 251,25, 250,25, 252,25,
+238,267, 253,25, 236,265, 254,25,
+242,269, 255,25, 243,270, 256,25,
+257,25, 258,25, 237,266, 239,268,
+259,25, 260,281, 249,274, 261,25,
+262,25, 245,271, 248,273, 250,275,
+263,25, 264,25, 265,25, 266,25,
+246,272, 267,25, 268,25, 270,25,
+269,25, 253,276, 271,25, 258,279,
+272,25, 259,280, 273,25, 256,277,
+274,25, 275,25, 276,25, 265,283,
+266,284, 262,282, 277,25, 278,25,
+257,278, 269,287, 279,25, 280,25,
+282,25, 283,25, 284,25, 285,25,
+286,25, 272,289, 267,285, 287,25,
+288,25, 268,286, 289,25, 273,290,
+290,25, 291,25, 293,25, 270,288,
+292,25, 294,25, 295,25, 280,294,
+278,293, 297,25, 298,25, 275,292,
+274,291, 299,25, 301,25, 296,25,
+302,25, 303,25, 282,295, 300,25,
+304,25, 283,296, 307,25, 292,302,
+284,297, 305,25, 297,306, 287,299,
+306,25, 295,304, 290,301, 286,298,
+308,25, 293,303, 288,300, 296,305,
+300,308, 309,25, 310,25, 311,25,
+298,307, 312,25, 313,25, 314,25,
+316,25, 315,25, 318,25, 303,310,
+317,25, 319,320, 305,311, 301,309,
+320,321, 323,25, 321,322, 322,323,
+0,0, 306,312, 0,0, 0,0,
+308,313, 0,0, 0,0, 0,0,
+0,0, 309,314, 315,317, 317,318,
+0,0, 0,0, 0,0, 314,316,
+0,0, 311,315, 0,0, 0,0,
+0,0, 0,0, 320,25, 0,0,
+319,25, 0,0, 318,319, 321,25,
+0,0, 322,25, 0,0, 0,0,
+0,0};
+struct yysvf yysvec[] = {
+0, 0, 0,
+yycrank+0, 0, 0,
+yycrank+0, 0, 0,
+yycrank+1, 0, 0,
+yycrank+0, yysvec+3, 0,
+yycrank+-124, 0, 0,
+yycrank+-17, yysvec+5, 0,
+yycrank+1, 0, 0,
+yycrank+0, yysvec+7, 0,
+yycrank+-126, 0, 0,
+yycrank+-2, yysvec+9, 0,
+yycrank+0, 0, yyvstop+1,
+yycrank+23, 0, 0,
+yycrank+0, 0, yyvstop+3,
+yycrank+0, 0, yyvstop+5,
+yycrank+0, 0, yyvstop+7,
+yycrank+0, 0, yyvstop+9,
+yycrank+0, 0, yyvstop+11,
+yycrank+0, 0, yyvstop+13,
+yycrank+5, 0, yyvstop+15,
+yycrank+89, 0, yyvstop+17,
+yycrank+99, 0, yyvstop+19,
+yycrank+0, 0, yyvstop+21,
+yycrank+3, 0, yyvstop+23,
+yycrank+150, 0, yyvstop+25,
+yycrank+13, yysvec+24, yyvstop+27,
+yycrank+0, 0, yyvstop+29,
+yycrank+0, 0, yyvstop+31,
+yycrank+49, yysvec+24, yyvstop+33,
+yycrank+52, yysvec+24, yyvstop+35,
+yycrank+79, yysvec+24, yyvstop+37,
+yycrank+95, yysvec+24, yyvstop+39,
+yycrank+51, yysvec+24, yyvstop+41,
+yycrank+82, yysvec+24, yyvstop+43,
+yycrank+84, yysvec+24, yyvstop+45,
+yycrank+83, yysvec+24, yyvstop+47,
+yycrank+107, yysvec+24, yyvstop+49,
+yycrank+100, yysvec+24, yyvstop+51,
+yycrank+88, yysvec+24, yyvstop+53,
+yycrank+193, yysvec+24, yyvstop+55,
+yycrank+50, yysvec+24, yyvstop+57,
+yycrank+97, yysvec+24, yyvstop+59,
+yycrank+112, yysvec+24, yyvstop+61,
+yycrank+195, yysvec+24, yyvstop+63,
+yycrank+194, yysvec+24, yyvstop+65,
+yycrank+166, yysvec+24, yyvstop+67,
+yycrank+101, yysvec+24, yyvstop+69,
+yycrank+130, yysvec+24, yyvstop+71,
+yycrank+0, 0, yyvstop+73,
+yycrank+0, 0, yyvstop+75,
+yycrank+0, 0, yyvstop+77,
+yycrank+0, 0, yyvstop+79,
+yycrank+0, 0, yyvstop+82,
+yycrank+48, 0, yyvstop+84,
+yycrank+55, 0, yyvstop+86,
+yycrank+-278, 0, 0,
+yycrank+-283, 0, 0,
+yycrank+0, 0, yyvstop+88,
+yycrank+307, 0, yyvstop+90,
+yycrank+59, 0, 0,
+yycrank+0, 0, yyvstop+93,
+yycrank+0, 0, yyvstop+95,
+yycrank+0, 0, yyvstop+97,
+yycrank+205, yysvec+24, yyvstop+99,
+yycrank+197, yysvec+24, yyvstop+101,
+yycrank+164, yysvec+24, yyvstop+103,
+yycrank+206, yysvec+24, yyvstop+105,
+yycrank+203, yysvec+24, yyvstop+107,
+yycrank+210, yysvec+24, yyvstop+109,
+yycrank+211, yysvec+24, yyvstop+111,
+yycrank+209, yysvec+24, yyvstop+113,
+yycrank+215, yysvec+24, yyvstop+115,
+yycrank+216, yysvec+24, yyvstop+117,
+yycrank+229, yysvec+24, yyvstop+119,
+yycrank+270, yysvec+24, yyvstop+121,
+yycrank+221, yysvec+24, yyvstop+123,
+yycrank+234, yysvec+24, yyvstop+125,
+yycrank+224, yysvec+24, yyvstop+127,
+yycrank+271, yysvec+24, yyvstop+129,
+yycrank+217, yysvec+24, yyvstop+131,
+yycrank+267, yysvec+24, yyvstop+133,
+yycrank+252, yysvec+24, yyvstop+135,
+yycrank+273, yysvec+24, yyvstop+137,
+yycrank+241, yysvec+24, yyvstop+139,
+yycrank+243, yysvec+24, yyvstop+141,
+yycrank+286, yysvec+24, yyvstop+143,
+yycrank+299, yysvec+24, yyvstop+145,
+yycrank+300, yysvec+24, yyvstop+147,
+yycrank+202, yysvec+24, yyvstop+149,
+yycrank+304, yysvec+24, yyvstop+151,
+yycrank+257, yysvec+24, yyvstop+153,
+yycrank+305, yysvec+24, yyvstop+155,
+yycrank+291, yysvec+24, yyvstop+157,
+yycrank+290, yysvec+24, yyvstop+159,
+yycrank+309, yysvec+24, yyvstop+161,
+yycrank+0, 0, yyvstop+163,
+yycrank+0, 0, yyvstop+165,
+yycrank+0, 0, yyvstop+167,
+yycrank+0, 0, yyvstop+169,
+yycrank+0, yysvec+58, yyvstop+171,
+yycrank+71, 0, 0,
+yycrank+348, yysvec+24, yyvstop+173,
+yycrank+313, yysvec+24, yyvstop+175,
+yycrank+314, yysvec+24, yyvstop+177,
+yycrank+318, yysvec+24, yyvstop+179,
+yycrank+320, yysvec+24, yyvstop+181,
+yycrank+322, yysvec+24, yyvstop+183,
+yycrank+321, yysvec+24, yyvstop+185,
+yycrank+331, yysvec+24, yyvstop+187,
+yycrank+323, yysvec+24, yyvstop+189,
+yycrank+332, yysvec+24, yyvstop+191,
+yycrank+337, yysvec+24, yyvstop+193,
+yycrank+330, yysvec+24, yyvstop+195,
+yycrank+369, yysvec+24, yyvstop+197,
+yycrank+96, yysvec+24, yyvstop+199,
+yycrank+334, yysvec+24, yyvstop+202,
+yycrank+342, yysvec+24, yyvstop+204,
+yycrank+346, yysvec+24, yyvstop+206,
+yycrank+98, yysvec+24, yyvstop+208,
+yycrank+347, yysvec+24, yyvstop+211,
+yycrank+349, yysvec+24, yyvstop+213,
+yycrank+353, yysvec+24, yyvstop+215,
+yycrank+356, yysvec+24, yyvstop+217,
+yycrank+360, yysvec+24, yyvstop+219,
+yycrank+361, yysvec+24, yyvstop+221,
+yycrank+358, yysvec+24, yyvstop+223,
+yycrank+363, yysvec+24, yyvstop+225,
+yycrank+362, yysvec+24, yyvstop+227,
+yycrank+364, yysvec+24, yyvstop+229,
+yycrank+368, yysvec+24, yyvstop+231,
+yycrank+370, yysvec+24, yyvstop+233,
+yycrank+371, yysvec+24, yyvstop+235,
+yycrank+372, yysvec+24, yyvstop+237,
+yycrank+380, yysvec+24, yyvstop+239,
+yycrank+384, yysvec+24, yyvstop+241,
+yycrank+373, yysvec+24, yyvstop+243,
+yycrank+387, yysvec+24, yyvstop+245,
+yycrank+375, yysvec+24, yyvstop+247,
+yycrank+381, yysvec+24, yyvstop+249,
+yycrank+388, yysvec+24, yyvstop+251,
+yycrank+390, yysvec+24, yyvstop+253,
+yycrank+378, yysvec+24, yyvstop+255,
+yycrank+396, yysvec+24, yyvstop+257,
+yycrank+407, yysvec+24, yyvstop+259,
+yycrank+74, 0, 0,
+yycrank+417, yysvec+24, yyvstop+261,
+yycrank+438, yysvec+24, yyvstop+263,
+yycrank+413, yysvec+24, yyvstop+265,
+yycrank+385, yysvec+24, yyvstop+267,
+yycrank+162, yysvec+24, yyvstop+269,
+yycrank+163, yysvec+24, yyvstop+272,
+yycrank+414, yysvec+24, yyvstop+275,
+yycrank+418, yysvec+24, yyvstop+277,
+yycrank+419, yysvec+24, yyvstop+279,
+yycrank+420, yysvec+24, yyvstop+281,
+yycrank+421, yysvec+24, yyvstop+283,
+yycrank+422, yysvec+24, yyvstop+285,
+yycrank+425, yysvec+24, yyvstop+287,
+yycrank+423, yysvec+24, yyvstop+289,
+yycrank+426, yysvec+24, yyvstop+291,
+yycrank+457, yysvec+24, yyvstop+293,
+yycrank+428, yysvec+24, yyvstop+295,
+yycrank+429, yysvec+24, yyvstop+297,
+yycrank+430, yysvec+24, yyvstop+299,
+yycrank+441, yysvec+24, yyvstop+301,
+yycrank+432, yysvec+24, yyvstop+303,
+yycrank+247, yysvec+24, yyvstop+305,
+yycrank+433, yysvec+24, yyvstop+308,
+yycrank+463, yysvec+24, yyvstop+310,
+yycrank+442, yysvec+24, yyvstop+312,
+yycrank+435, yysvec+24, yyvstop+314,
+yycrank+436, yysvec+24, yyvstop+316,
+yycrank+444, yysvec+24, yyvstop+318,
+yycrank+446, yysvec+24, yyvstop+320,
+yycrank+448, yysvec+24, yyvstop+322,
+yycrank+450, yysvec+24, yyvstop+324,
+yycrank+451, yysvec+24, yyvstop+326,
+yycrank+437, yysvec+24, yyvstop+328,
+yycrank+452, yysvec+24, yyvstop+330,
+yycrank+461, yysvec+24, yyvstop+332,
+yycrank+459, yysvec+24, yyvstop+334,
+yycrank+474, yysvec+24, yyvstop+336,
+yycrank+467, yysvec+24, yyvstop+338,
+yycrank+475, yysvec+24, yyvstop+340,
+yycrank+248, yysvec+24, yyvstop+342,
+yycrank+476, yysvec+24, yyvstop+345,
+yycrank+478, yysvec+24, yyvstop+347,
+yycrank+481, yysvec+24, yyvstop+349,
+yycrank+258, yysvec+24, yyvstop+351,
+yycrank+259, yysvec+24, yyvstop+354,
+yycrank+261, yysvec+24, yyvstop+357,
+yycrank+225, 0, 0,
+yycrank+479, yysvec+24, yyvstop+360,
+yycrank+483, yysvec+24, yyvstop+363,
+yycrank+485, yysvec+24, yyvstop+366,
+yycrank+487, yysvec+24, yyvstop+368,
+yycrank+490, yysvec+24, yyvstop+371,
+yycrank+491, yysvec+24, yyvstop+373,
+yycrank+492, yysvec+24, yyvstop+375,
+yycrank+494, yysvec+24, yyvstop+377,
+yycrank+496, yysvec+24, yyvstop+380,
+yycrank+499, yysvec+24, yyvstop+382,
+yycrank+497, yysvec+24, yyvstop+384,
+yycrank+500, yysvec+24, yyvstop+386,
+yycrank+501, yysvec+24, yyvstop+388,
+yycrank+503, yysvec+24, yyvstop+391,
+yycrank+507, yysvec+24, yyvstop+394,
+yycrank+505, yysvec+24, yyvstop+396,
+yycrank+508, yysvec+24, yyvstop+399,
+yycrank+509, yysvec+24, yyvstop+402,
+yycrank+510, yysvec+24, yyvstop+404,
+yycrank+511, yysvec+24, yyvstop+406,
+yycrank+542, yysvec+24, yyvstop+408,
+yycrank+514, yysvec+24, yyvstop+410,
+yycrank+515, yysvec+24, yyvstop+412,
+yycrank+516, yysvec+24, yyvstop+414,
+yycrank+518, yysvec+24, yyvstop+416,
+yycrank+521, yysvec+24, yyvstop+418,
+yycrank+520, yysvec+24, yyvstop+420,
+yycrank+523, yysvec+24, yyvstop+422,
+yycrank+529, yysvec+24, yyvstop+425,
+yycrank+525, yysvec+24, yyvstop+427,
+yycrank+531, yysvec+24, yyvstop+429,
+yycrank+530, yysvec+24, yyvstop+431,
+yycrank+536, yysvec+24, yyvstop+434,
+yycrank+532, yysvec+24, yyvstop+436,
+yycrank+533, yysvec+24, yyvstop+438,
+yycrank+538, yysvec+24, yyvstop+440,
+yycrank+541, yysvec+24, yyvstop+443,
+yycrank+539, yysvec+24, yyvstop+445,
+yycrank+543, yysvec+24, yyvstop+447,
+yycrank+524, 0, 0,
+yycrank+550, yysvec+24, yyvstop+449,
+yycrank+551, yysvec+24, yyvstop+451,
+yycrank+553, yysvec+24, yyvstop+453,
+yycrank+554, yysvec+24, yyvstop+455,
+yycrank+557, yysvec+24, yyvstop+457,
+yycrank+562, yysvec+24, yyvstop+459,
+yycrank+563, yysvec+24, yyvstop+461,
+yycrank+565, yysvec+24, yyvstop+463,
+yycrank+564, yysvec+24, yyvstop+465,
+yycrank+566, yysvec+24, yyvstop+468,
+yycrank+567, yysvec+24, yyvstop+471,
+yycrank+569, yysvec+24, yyvstop+473,
+yycrank+571, yysvec+24, yyvstop+475,
+yycrank+572, yysvec+24, yyvstop+478,
+yycrank+576, yysvec+24, yyvstop+480,
+yycrank+577, yysvec+24, yyvstop+482,
+yycrank+578, yysvec+24, yyvstop+485,
+yycrank+579, yysvec+24, yyvstop+487,
+yycrank+582, yysvec+24, yyvstop+489,
+yycrank+581, yysvec+24, yyvstop+491,
+yycrank+583, yysvec+24, yyvstop+494,
+yycrank+585, yysvec+24, yyvstop+497,
+yycrank+587, yysvec+24, yyvstop+499,
+yycrank+589, yysvec+24, yyvstop+502,
+yycrank+591, yysvec+24, yyvstop+505,
+yycrank+592, yysvec+24, yyvstop+507,
+yycrank+593, yysvec+24, yyvstop+509,
+yycrank+596, yysvec+24, yyvstop+511,
+yycrank+576, 0, 0,
+yycrank+599, yysvec+24, yyvstop+513,
+yycrank+600, yysvec+24, yyvstop+516,
+yycrank+604, yysvec+24, yyvstop+518,
+yycrank+605, yysvec+24, yyvstop+521,
+yycrank+606, yysvec+24, yyvstop+524,
+yycrank+607, yysvec+24, yyvstop+526,
+yycrank+609, yysvec+24, yyvstop+528,
+yycrank+610, yysvec+24, yyvstop+530,
+yycrank+612, yysvec+24, yyvstop+532,
+yycrank+611, yysvec+24, yyvstop+534,
+yycrank+614, yysvec+24, yyvstop+536,
+yycrank+616, yysvec+24, yyvstop+539,
+yycrank+618, yysvec+24, yyvstop+541,
+yycrank+620, yysvec+24, yyvstop+543,
+yycrank+621, yysvec+24, yyvstop+545,
+yycrank+622, yysvec+24, yyvstop+547,
+yycrank+626, yysvec+24, yyvstop+550,
+yycrank+627, yysvec+24, yyvstop+553,
+yycrank+630, yysvec+24, yyvstop+555,
+yycrank+631, yysvec+24, yyvstop+558,
+yycrank+0, 0, yyvstop+560,
+yycrank+632, yysvec+24, yyvstop+562,
+yycrank+633, yysvec+24, yyvstop+564,
+yycrank+634, yysvec+24, yyvstop+566,
+yycrank+635, yysvec+24, yyvstop+568,
+yycrank+636, yysvec+24, yyvstop+571,
+yycrank+639, yysvec+24, yyvstop+573,
+yycrank+640, yysvec+24, yyvstop+575,
+yycrank+642, yysvec+24, yyvstop+577,
+yycrank+644, yysvec+24, yyvstop+580,
+yycrank+645, yysvec+24, yyvstop+582,
+yycrank+648, yysvec+24, yyvstop+585,
+yycrank+646, yysvec+24, yyvstop+587,
+yycrank+649, yysvec+24, yyvstop+589,
+yycrank+650, yysvec+24, yyvstop+592,
+yycrank+659, yysvec+24, yyvstop+594,
+yycrank+653, yysvec+24, yyvstop+596,
+yycrank+654, yysvec+24, yyvstop+598,
+yycrank+657, yysvec+24, yyvstop+600,
+yycrank+663, yysvec+24, yyvstop+603,
+yycrank+658, yysvec+24, yyvstop+605,
+yycrank+660, yysvec+24, yyvstop+607,
+yycrank+661, yysvec+24, yyvstop+610,
+yycrank+664, yysvec+24, yyvstop+612,
+yycrank+669, yysvec+24, yyvstop+615,
+yycrank+672, yysvec+24, yyvstop+617,
+yycrank+666, yysvec+24, yyvstop+619,
+yycrank+676, yysvec+24, yyvstop+622,
+yycrank+681, yysvec+24, yyvstop+624,
+yycrank+682, yysvec+24, yyvstop+626,
+yycrank+683, yysvec+24, yyvstop+629,
+yycrank+685, yysvec+24, yyvstop+631,
+yycrank+686, yysvec+24, yyvstop+634,
+yycrank+687, yysvec+24, yyvstop+637,
+yycrank+689, yysvec+24, yyvstop+639,
+yycrank+688, yysvec+24, yyvstop+641,
+yycrank+692, yysvec+24, yyvstop+644,
+yycrank+690, yysvec+24, yyvstop+646,
+yycrank+724, yysvec+24, yyvstop+648,
+yycrank+722, yysvec+24, yyvstop+650,
+yycrank+727, yysvec+24, yyvstop+652,
+yycrank+729, yysvec+24, yyvstop+654,
+yycrank+697, yysvec+24, yyvstop+656,
+0, 0, 0};
+struct yywork *yytop = yycrank+809;
+struct yysvf *yybgin = yysvec+1;
+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' ,'G' ,
+'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
+'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
+'G' ,'G' ,'G' ,01 ,01 ,01 ,01 ,'G' ,
+01 ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'G' ,
+'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
+'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,'G' ,
+'G' ,'G' ,'G' ,01 ,01 ,01 ,01 ,01 ,
+0};
+char yyextra[] = {
+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,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};
+int yylineno =1;
+# define YYU(x) x
+# define NLSTATE yyprevious=YYNEWLINE
+char yytext[YYLMAX];
+struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp;
+char yysbuf[YYLMAX];
+char *yysptr = yysbuf;
+int *yyfnd;
+extern struct yysvf *yyestate;
+int yyprevious = YYNEWLINE;
+yylook(){
+ register struct yysvf *yystate, **lsp;
+ register struct yywork *yyt;
+ struct yysvf *yyz;
+ int yych;
+ struct yywork *yyr;
+# ifdef LEXDEBUG
+ int debug;
+# endif
+ char *yylastch;
+ /* start off machines */
+# ifdef LEXDEBUG
+ debug = 0;
+# endif
+ if (!yymorfg)
+ yylastch = yytext;
+ else {
+ yymorfg=0;
+ yylastch = yytext+yyleng;
+ }
+ for(;;){
+ lsp = yylstate;
+ yyestate = yystate = yybgin;
+ if (yyprevious==YYNEWLINE) yystate++;
+ for (;;){
+# ifdef LEXDEBUG
+ if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1);
+# endif
+ yyt = yystate->yystoff;
+ if(yyt == yycrank){ /* may not be any transitions */
+ yyz = yystate->yyother;
+ if(yyz == 0)break;
+ if(yyz->yystoff == yycrank)break;
+ }
+ *yylastch++ = yych = input();
+ tryagain:
+# ifdef LEXDEBUG
+ if(debug){
+ fprintf(yyout,"char ");
+ allprint(yych);
+ putchar('\n');
+ }
+# endif
+ yyr = yyt;
+ if ( (int)yyt > (int)yycrank){
+ yyt = yyr + yych;
+ if (yyt <= yytop && yyt->verify+yysvec == yystate){
+ if(yyt->advance+yysvec == YYLERR) /* error transitions */
+ {unput(*--yylastch);break;}
+ *lsp++ = yystate = yyt->advance+yysvec;
+ goto contin;
+ }
+ }
+# ifdef YYOPTIM
+ else if((int)yyt < (int)yycrank) { /* r < yycrank */
+ yyt = yyr = yycrank+(yycrank-yyt);
+# ifdef LEXDEBUG
+ if(debug)fprintf(yyout,"compressed state\n");
+# endif
+ yyt = yyt + yych;
+ if(yyt <= yytop && yyt->verify+yysvec == yystate){
+ if(yyt->advance+yysvec == YYLERR) /* error transitions */
+ {unput(*--yylastch);break;}
+ *lsp++ = yystate = yyt->advance+yysvec;
+ goto contin;
+ }
+ yyt = yyr + YYU(yymatch[yych]);
+# ifdef LEXDEBUG
+ if(debug){
+ fprintf(yyout,"try fall back character ");
+ allprint(YYU(yymatch[yych]));
+ putchar('\n');
+ }
+# endif
+ if(yyt <= yytop && yyt->verify+yysvec == yystate){
+ if(yyt->advance+yysvec == YYLERR) /* error transition */
+ {unput(*--yylastch);break;}
+ *lsp++ = yystate = yyt->advance+yysvec;
+ goto contin;
+ }
+ }
+ if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){
+# ifdef LEXDEBUG
+ if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1);
+# endif
+ goto tryagain;
+ }
+# endif
+ else
+ {unput(*--yylastch);break;}
+ contin:
+# ifdef LEXDEBUG
+ if(debug){
+ fprintf(yyout,"state %d char ",yystate-yysvec-1);
+ allprint(yych);
+ putchar('\n');
+ }
+# endif
+ ;
+ }
+# ifdef LEXDEBUG
+ if(debug){
+ fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1);
+ allprint(yych);
+ putchar('\n');
+ }
+# endif
+ while (lsp-- > yylstate){
+ *yylastch-- = 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--;
+ unput(*yylastch--);
+ }
+ }
+ yyprevious = YYU(*yylastch);
+ yylsp = lsp;
+ yyleng = yylastch-yytext+1;
+ yytext[yyleng] = 0;
+# ifdef LEXDEBUG
+ if(debug){
+ fprintf(yyout,"\nmatch ");
+ sprint(yytext);
+ fprintf(yyout," action %d\n",*yyfnd);
+ }
+# endif
+ return(*yyfnd++);
+ }
+ unput(*yylastch);
+ }
+ if (yytext[0] == 0 /* && feof(yyin) */)
+ {
+ yysptr=yysbuf;
+ return(0);
+ }
+ yyprevious = yytext[0] = input();
+ if (yyprevious>0)
+ output(yyprevious);
+ yylastch=yytext;
+# ifdef LEXDEBUG
+ if(debug)putchar('\n');
+# endif
+ }
+ }
+yyback( int *p, int m)
+{
+if (p==0) return(0);
+while (*p)
+ {
+ if (*p++ == m)
+ return(1);
+ }
+return(0);
+}
+ /* the following are only used in the lex library */
+yyinput(){
+ return input();
+ }
+void yyoutput(c)
+ int c; {
+ output(c);
+ }
+void yyunput(c)
+ int c; {
+ unput(c);
+ }