From d20548087f4b3f821726e5ea2ae506b134fcbdfe Mon Sep 17 00:00:00 2001 From: Hironobu Yamashita Date: Tue, 26 Jun 2018 02:37:10 +0000 Subject: opendetex-2.8.3 git-svn-id: svn://tug.org/texlive/trunk@48092 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/README | 5 +- Build/source/texk/detex/ChangeLog | 5 + Build/source/texk/detex/TLpatches/ChangeLog | 10 + Build/source/texk/detex/TLpatches/TL-Changes | 4 +- Build/source/texk/detex/TLpatches/patch-01-ANSI-C | 228 - .../source/texk/detex/TLpatches/patch-03-warnings | 124 - .../source/texk/detex/TLpatches/patch-04-kpathsea | 155 +- .../texk/detex/TLpatches/patch-05-kern-and-glue | 35 - .../detex/TLpatches/patch-06-never-interactive | 9 - Build/source/texk/detex/TLpatches/patch-07-rename | 48 - .../source/texk/detex/TLpatches/patch-08-kpathsea | 52 - Build/source/texk/detex/TLpatches/patch-09-binary | 28 - .../texk/detex/TLpatches/patch-10-ANSI-strings | 52 - .../source/texk/detex/TLpatches/patch-11-c_auto_h | 21 - Build/source/texk/detex/TLpatches/patch-12-typo | 12 - .../texk/detex/TLpatches/patch-13-typo-minipage | 12 + Build/source/texk/detex/detex-src/COPYRIGHT | 1 + Build/source/texk/detex/detex-src/ChangeLog | 178 + Build/source/texk/detex/detex-src/INSTALL | 13 + Build/source/texk/detex/detex-src/Makefile | 53 +- Build/source/texk/detex/detex-src/README | 190 +- Build/source/texk/detex/detex-src/detex.c | 3203 +++++----- Build/source/texk/detex/detex-src/detex.h | 5 +- Build/source/texk/detex/detex-src/detex.l | 220 +- Build/source/texk/detex/detex-src/detex.man | 18 +- Build/source/texk/detex/detex-src/lexout.c | 6234 -------------------- Build/source/texk/detex/detex-src/os2/README | 7 - Build/source/texk/detex/detex-src/os2/detex-32.def | 3 - Build/source/texk/detex/detex-src/os2/detex.def | 2 - Build/source/texk/detex/detex-src/os2/makefile.os2 | 96 - Build/source/texk/detex/detex-src/states.sed | 57 - Build/source/texk/detex/test.lout | 13 +- Build/source/texk/detex/test.tout | 16 +- 33 files changed, 2257 insertions(+), 8852 deletions(-) delete mode 100644 Build/source/texk/detex/TLpatches/patch-01-ANSI-C delete mode 100644 Build/source/texk/detex/TLpatches/patch-03-warnings delete mode 100644 Build/source/texk/detex/TLpatches/patch-05-kern-and-glue delete mode 100644 Build/source/texk/detex/TLpatches/patch-06-never-interactive delete mode 100644 Build/source/texk/detex/TLpatches/patch-07-rename delete mode 100644 Build/source/texk/detex/TLpatches/patch-08-kpathsea delete mode 100644 Build/source/texk/detex/TLpatches/patch-09-binary delete mode 100644 Build/source/texk/detex/TLpatches/patch-10-ANSI-strings delete mode 100644 Build/source/texk/detex/TLpatches/patch-11-c_auto_h delete mode 100644 Build/source/texk/detex/TLpatches/patch-12-typo create mode 100644 Build/source/texk/detex/TLpatches/patch-13-typo-minipage create mode 100644 Build/source/texk/detex/detex-src/ChangeLog create mode 100644 Build/source/texk/detex/detex-src/INSTALL delete mode 100644 Build/source/texk/detex/detex-src/lexout.c delete mode 100644 Build/source/texk/detex/detex-src/os2/README delete mode 100644 Build/source/texk/detex/detex-src/os2/detex-32.def delete mode 100644 Build/source/texk/detex/detex-src/os2/detex.def delete mode 100644 Build/source/texk/detex/detex-src/os2/makefile.os2 delete mode 100644 Build/source/texk/detex/detex-src/states.sed (limited to 'Build/source/texk') diff --git a/Build/source/texk/README b/Build/source/texk/README index 2bb8978251c..b6ade7b15a0 100644 --- a/Build/source/texk/README +++ b/Build/source/texk/README @@ -34,8 +34,9 @@ chktex 1.7.6 - checked 15sep16 cjkutils 4.8.4 - checked 18apr15 http://cjk.ffii.org/cjk-4.8.4.tar.gz -detex 2.8 - checked 10may12 - http://www.cs.purdue.edu/homes/trinkle/detex/ +detex 2.8.3 - checked 20jun18 + https://github.com/pkubowicz/opendetex + old info: http://www.cs.purdue.edu/homes/trinkle/detex/ dtl - ? diff --git a/Build/source/texk/detex/ChangeLog b/Build/source/texk/detex/ChangeLog index 796e3481bad..adc9e138b2b 100644 --- a/Build/source/texk/detex/ChangeLog +++ b/Build/source/texk/detex/ChangeLog @@ -1,3 +1,8 @@ +2018-06-20 Hironobu Yamashita + + * Import opendetex-2.8.3, TLpatches adapted. + * test.lout, test.tout: adjusted. + 2016-02-23 Akira Kakuto * Makefile.am, configure.ac: New convention. diff --git a/Build/source/texk/detex/TLpatches/ChangeLog b/Build/source/texk/detex/TLpatches/ChangeLog index 40a038a6f51..882556a27e2 100644 --- a/Build/source/texk/detex/TLpatches/ChangeLog +++ b/Build/source/texk/detex/TLpatches/ChangeLog @@ -1,3 +1,13 @@ +2018-06-20 Hironobu Yamashita + + Adapt to opendetex-2.8.3. + * patch-04-kpathsea: update. + * patch-01-ANSI-C, patch-03-warnings, patch-05-kern-and-glue, + patch-06-never-interactive, patch-07-rename, patch-08-kpathsea, + patch-09-binary, patch-10-ANSI-strings, patch-11-c_auto_h, + patch-12-typo: removed. + * patch-13-typo-minipage (new): Fix a typo. + 2014-08-20 Peter Breitenlohner * patch-12-typo (new): Fix a typo. diff --git a/Build/source/texk/detex/TLpatches/TL-Changes b/Build/source/texk/detex/TLpatches/TL-Changes index bc7475d4644..5c561ecbf20 100644 --- a/Build/source/texk/detex/TLpatches/TL-Changes +++ b/Build/source/texk/detex/TLpatches/TL-Changes @@ -1,5 +1,5 @@ -Changes applied to the detex-2.8 tree as obtained from: - http://www.cs.purdue.edu/homes/trinkle/detex/ +Changes applied to the opendetex-2.8.3 tree as obtained from: + https://github.com/pkubowicz/opendetex/releases Renamed: detex.1l -> detex.man diff --git a/Build/source/texk/detex/TLpatches/patch-01-ANSI-C b/Build/source/texk/detex/TLpatches/patch-01-ANSI-C deleted file mode 100644 index 22b9b553f9c..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-01-ANSI-C +++ /dev/null @@ -1,228 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2008-02-01 20:55:51.000000000 +0100 -+++ detex-2.8/detex.l 2010-06-11 23:12:06.648394135 +0200 -@@ -72,12 +72,26 @@ - #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 - #define CITE(x) if (fLatex && !fCite) KILLARGS(x) - --char *SafeMalloc(); -+void AddInclude(char *sbFile); -+void ErrorExit(char *sb1); -+void IncludeFile(char *sbFile); -+void InputFile(char *sbFile); -+void SetEnvIgnore(char *sbEnvList); -+void SetInputPaths(void); -+void Warning(char *sb1, char *sb2); -+int BeginEnv(char *sbEnv); -+int EndEnv(char *sbEnv); -+int InList(char *sbFile); -+int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); -+FILE *TexOpen(char *sbFile); -+char *SafeMalloc(int cch, char *sbMessage); -+char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); - #endif - #ifdef OS2 - void yyless(int); -+void OS2UsageExit(void); - #endif - - char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ -@@ -368,12 +382,10 @@ - ** If no input files are specified on the command line, process stdin. - ******/ - --main(cArgs,rgsbArgs) --int cArgs; --char *rgsbArgs[]; -+int -+main(int cArgs, char *rgsbArgs[]) - { - char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2]; -- FILE *TexOpen(); - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -@@ -477,7 +489,8 @@ - ** return the termination signal for lex. - ******/ - --yywrap() -+int -+yywrap(void) - { - (void)fclose(yyin); - #ifdef FLEX_SCANNER -@@ -501,8 +514,8 @@ - ** a yyless routine - ******/ - --void yyless(n) --int n; -+void -+yyless(int n) - { - int i = strlen(yytext); - -@@ -516,8 +529,8 @@ - ** sbEnvList. - ******/ - --SetEnvIgnore(sbEnvList) --char *sbEnvList; -+void -+SetEnvIgnore(char *sbEnvList) - { - char *sb; - -@@ -533,8 +546,8 @@ - ** is, sbCurrentEnv is set to sbEnv. - ******/ - --BeginEnv(sbEnv) --char *sbEnv; -+int -+BeginEnv(char *sbEnv) - { - int i; - -@@ -551,8 +564,8 @@ - ** EndEnv -- checks to see if sbEnv is the current environment being ignored. - ******/ - --EndEnv(sbEnv) --char *sbEnv; -+int -+EndEnv(char *sbEnv) - { - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) -@@ -565,11 +578,9 @@ - ** the sbFile is ignored. - ******/ - --InputFile(sbFile) --char *sbFile; -+void -+InputFile(char *sbFile) - { -- FILE *TexOpen(); -- - if (!fFollow) - return; - rgfp[cfp++] = yyin; -@@ -589,11 +600,9 @@ - ** and open sbFile. If the open fails, the sbFile is ignored. - ******/ - --IncludeFile(sbFile) --char *sbFile; -+void -+IncludeFile(char *sbFile) - { -- FILE *TexOpen(); -- - if (!fFollow) - return; - if (!InList(sbFile)) -@@ -615,8 +624,8 @@ - ** If the include list is too long, sbFile is ignored. - ******/ - --AddInclude(sbFile) --char *sbFile; -+void -+AddInclude(char *sbFile) - { - if (!fFollow) - return; -@@ -631,8 +640,8 @@ - ** no list, all files are assumed to be "in the list". - ******/ - --InList(sbFile) --char *sbFile; -+int -+InList(char *sbFile) - { - char *pch, sbBase[MAXPATHLEN]; - int i; -@@ -658,9 +667,10 @@ - ** routine does not honor the '//' construct (expand subdirs). - ******/ - --SetInputPaths() -+void -+SetInputPaths(void) - { -- char *sb, *sbPaths, *getenv(); -+ char *sb, *sbPaths; - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -@@ -698,9 +708,8 @@ - ** ERROR is returned if there are more than csbMax words. - ******/ - --SeparateList(sbList, rgsbList, chSep, csbMax) --char *sbList, *rgsbList[], chSep; --int csbMax; -+int -+SeparateList(char *sbList, char *rgsbList[], char chSep, int csbMax) - { - int csbList = 0; - -@@ -725,8 +734,7 @@ - ******/ - - FILE * --TexOpen(sbFile) --char *sbFile; -+TexOpen(char *sbFile) - { - char *pch, *sbNew; - FILE *fp; -@@ -784,9 +792,7 @@ - ******/ - - char * --SafeMalloc(cch, sbMessage) --int cch; --char *sbMessage; -+SafeMalloc(int cch, char *sbMessage) - { - char *sb; - -@@ -799,8 +805,8 @@ - ** Warning -- print a warning message preceded by the program name. - ******/ - --Warning(sb1, sb2) --char *sb1, *sb2; -+void -+Warning(char *sb1, char *sb2) - { - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); - } -@@ -810,8 +816,8 @@ - ** Stdout is flushed and detex exits. - ******/ - --ErrorExit(sb1) --char *sb1; -+void -+ErrorExit(char *sb1) - { - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); -@@ -823,7 +829,8 @@ - ** OS2UsageExit -- print OS/2 usage message and exit. - ******/ - --OS2UsageExit() -+void -+OS2UsageExit(void) - { - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", - sbProgName); diff --git a/Build/source/texk/detex/TLpatches/patch-03-warnings b/Build/source/texk/detex/TLpatches/patch-03-warnings deleted file mode 100644 index d3a9f93eab5..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-03-warnings +++ /dev/null @@ -1,124 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-11 23:12:06.000000000 +0200 -+++ detex-2.8/detex.l 2010-06-11 23:26:08.554783186 +0200 -@@ -73,18 +73,18 @@ - #define CITE(x) if (fLatex && !fCite) KILLARGS(x) - - void AddInclude(char *sbFile); --void ErrorExit(char *sb1); -+void ErrorExit(const char *sb1); - void IncludeFile(char *sbFile); - void InputFile(char *sbFile); --void SetEnvIgnore(char *sbEnvList); -+void SetEnvIgnore(const char *sbEnvList); - void SetInputPaths(void); --void Warning(char *sb1, char *sb2); --int BeginEnv(char *sbEnv); --int EndEnv(char *sbEnv); -+void Warning(const char *sb1, const char *sb2); -+int BeginEnv(const char *sbEnv); -+int EndEnv(const char *sbEnv); - int InList(char *sbFile); - int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); - FILE *TexOpen(char *sbFile); --char *SafeMalloc(int cch, char *sbMessage); -+char *SafeMalloc(int cch, const char *sbMessage); - char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); -@@ -385,7 +385,8 @@ - int - main(int cArgs, char *rgsbArgs[]) - { -- char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2]; -+ char *pch, sbBadOpt[2]; -+ const char *sbEnvList = DEFAULTENV; - int fSawFile = 0, iArgs = 1; - - /* get base name and decide what we are doing, detex or delatex */ -@@ -530,7 +531,7 @@ - ******/ - - void --SetEnvIgnore(char *sbEnvList) -+SetEnvIgnore(const char *sbEnvList) - { - char *sb; - -@@ -547,7 +548,7 @@ - ******/ - - int --BeginEnv(char *sbEnv) -+BeginEnv(const char *sbEnv) - { - int i; - -@@ -565,7 +566,7 @@ - ******/ - - int --EndEnv(char *sbEnv) -+EndEnv(const char *sbEnv) - { - if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) -@@ -670,7 +671,8 @@ - void - SetInputPaths(void) - { -- char *sb, *sbPaths; -+ const char *sb; -+ char *sbPaths; - int cchDefaults, cchPaths; - - cchDefaults = strlen(DEFAULTINPUTS); -@@ -715,7 +717,7 @@ - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; -- if (sbList = index(sbList, chSep)) -+ if ((sbList = index(sbList, chSep))) - *sbList++ = '\0'; - } - return(sbList && *sbList ? ERROR : csbList); -@@ -760,10 +762,12 @@ - /* If sbFile ends in .tex then it must be there */ - if ((pch = rindex(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) -+ { - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - else - continue; -+ } - - /* if . then try to open it. the '.' represents */ - /* the beginning of an extension if it is not the first */ -@@ -792,7 +796,7 @@ - ******/ - - char * --SafeMalloc(int cch, char *sbMessage) -+SafeMalloc(int cch, const char *sbMessage) - { - char *sb; - -@@ -806,7 +810,7 @@ - ******/ - - void --Warning(char *sb1, char *sb2) -+Warning(const char *sb1, const char *sb2) - { - (void)fprintf(stderr, "%s: warning: %s %s\n", sbProgName, sb1, sb2); - } -@@ -817,7 +821,7 @@ - ******/ - - void --ErrorExit(char *sb1) -+ErrorExit(const char *sb1) - { - (void)fflush(stdout); - (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); diff --git a/Build/source/texk/detex/TLpatches/patch-04-kpathsea b/Build/source/texk/detex/TLpatches/patch-04-kpathsea index f30d6f81d12..d0e3f52364a 100644 --- a/Build/source/texk/detex/TLpatches/patch-04-kpathsea +++ b/Build/source/texk/detex/TLpatches/patch-04-kpathsea @@ -1,31 +1,7 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-11 23:26:08.000000000 +0200 -+++ detex-2.8/detex.l 2010-06-12 00:15:05.785339097 +0200 -@@ -49,6 +49,23 @@ - */ - - #include "detex.h" -+ -+#ifdef KPATHSEA -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef HAVE_SYS_PARAM_H -+#include -+#endif -+ -+#else /* KPATHSEA */ -+ - #ifdef HAVE_STRING_H - #include - #define index strchr -@@ -59,10 +76,15 @@ +diff -ur opendetex-2.8.3.orig/detex.l opendetex-2.8.3/detex.l +--- opendetex-2.8.3.orig/detex.l 2018-02-11 18:42:05.000000000 +0900 ++++ opendetex-2.8.3/detex.l 2018-06-20 23:12:37.000000000 +0900 +@@ -73,6 +73,7 @@ #ifndef MAXPATHLEN #include #endif @@ -33,126 +9,3 @@ diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l #ifdef OS2 #include #endif - -+#endif /* KPATHSEA */ -+ -+#undef IGNORE -+ - #define LaBEGIN if (fLatex) BEGIN - #define IGNORE if (fSpace && !fWord) putchar(' ') - #define SPACE if (!fWord) putchar(' ') -@@ -77,7 +99,9 @@ - void IncludeFile(char *sbFile); - void InputFile(char *sbFile); - void SetEnvIgnore(const char *sbEnvList); -+#ifndef KPATHSEA - void SetInputPaths(void); -+#endif - void Warning(const char *sb1, const char *sb2); - int BeginEnv(const char *sbEnv); - int EndEnv(const char *sbEnv); -@@ -85,6 +109,7 @@ - int SeparateList(char *sbList, char *rgsbList[] ,char chSep, int csbMax); - FILE *TexOpen(char *sbFile); - char *SafeMalloc(int cch, const char *sbMessage); -+#ifndef KPATHSEA - char *getenv(); - #ifndef NO_MALLOC_DECL - char *malloc(); -@@ -93,12 +118,16 @@ - void yyless(int); - void OS2UsageExit(void); - #endif -+#endif /* KPATHSEA */ - - char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ - char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ - char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ - char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ - char *sbProgName; /* name we were invoked with */ -+#ifndef NOFILE /* might be defined in */ -+#define NOFILE 256 -+#endif - FILE *rgfp[NOFILE+1]; /* stack of input/include files */ - int cfp = 0; /* count of files in stack */ - int cOpenBrace = 0; /* count of `{' in and */ -@@ -400,6 +429,9 @@ - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); - #else -+#ifdef KPATHSEA -+ kpse_set_program_name (rgsbArgs[0], NULL); -+#endif - if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else -@@ -407,9 +439,11 @@ - #endif - if (strcmp("delatex",sbProgName) == 0) - fLatex = 1; -- -+ -+#ifndef KPATHSEA - /* set rgsbInputPaths for use with TexOpen() */ - SetInputPaths(); -+#endif - - /* process command line options */ - while (iArgs < cArgs && *(pch = rgsbArgs[iArgs]) == CHOPT) { -@@ -644,7 +678,7 @@ - int - InList(char *sbFile) - { -- char *pch, sbBase[MAXPATHLEN]; -+ char *pch, sbBase[PATH_MAX]; - int i; - - if (csbIncList == 0) /* no list */ -@@ -659,6 +693,7 @@ - return(0); - } - -+#ifndef KPATHSEA - /****** - ** SetInputPaths -- sets rgsbInputPaths to the values indicated by the - ** TEXINPUTS environment variable if set or else DEFAULTINPUTS. If -@@ -702,6 +737,7 @@ - ErrorExit("TEXINPUTS environment variable has too many paths"); - #endif - } -+#endif - - /****** - ** SeparateList -- takes a chSep separated list sbList, replaces the -@@ -738,10 +774,12 @@ - FILE * - TexOpen(char *sbFile) - { -- char *pch, *sbNew; -+ char *sbNew; -+#ifndef KPATHSEA -+ char *pch; - FILE *fp; - int iPath; -- static char sbFullPath[MAXPATHLEN]; -+ static char sbFullPath[PATH_MAX]; - - for (iPath = 0; iPath < csbInputPaths; iPath++) { - #ifdef OS2 -@@ -788,7 +826,15 @@ - if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); - } -- return((FILE *)NULL); -+ return NULL; -+#else -+ sbNew = kpse_find_file (sbFile, kpse_tex_format, false); -+ -+ if (sbNew == NULL) -+ return NULL; -+ -+ return fopen (sbNew, "r"); -+#endif - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue b/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue deleted file mode 100644 index 784ef2ff5a7..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-05-kern-and-glue +++ /dev/null @@ -1,35 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2010-06-12 00:15:05.000000000 +0200 -+++ detex-2.8/detex.l 2011-06-07 13:42:05.000000000 +0200 -@@ -157,7 +157,12 @@ - W [a-zA-Z]+ - N [+-]?(([0-9]+(\.[0-9]+)?)|(\.[0-9]+)) - U pt|pc|in|bp|cm|mm|dd|cc|sp --D {S}(({N}{S}{U})|(\\{W})){S} -+HU {U}|em -+HD {S}(({N}{S}{HU})|(\\{W})){S} -+HG {HD}(plus{HD})?(minus{HD})? -+VU {U}|ex -+VD {S}(({N}{S}{VU})|(\\{W})){S} -+VG {VD}(plus{VD})?(minus{VD})? - Z \*? - - %Start Define Display IncludeOnly Input Math Normal Control -@@ -212,11 +217,12 @@ - "\n" NEWLINE; - . ; - --"\\vskip"{D} ; --"\\vspace"{Z}{S}"{"{D}"}" ; --"\\hskip"{D} ; --"\\hspace"{Z}{S}"{"{D}"}" ; --"\\addvspace"{S}"{"{D}"}" ; -+"\\kern"{HD} ; -+"\\vskip"{VG} ; -+"\\vspace"{Z}{S}"{"{VG}"}" ; -+"\\hskip"{HG} ; -+"\\hspace"{Z}{S}"{"{HG}"}" ; -+"\\addvspace"{S}"{"{VG}"}" ; - - "\\newlength" { KILLARGS(1); } - "\\setlength" { KILLARGS(2); } diff --git a/Build/source/texk/detex/TLpatches/patch-06-never-interactive b/Build/source/texk/detex/TLpatches/patch-06-never-interactive deleted file mode 100644 index 9db44ace3ed..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-06-never-interactive +++ /dev/null @@ -1,9 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2011-06-07 13:42:05.000000000 +0200 -+++ detex-2.8/detex.l 2012-06-21 11:52:31.000000000 +0200 -@@ -1,3 +1,5 @@ -+%option never-interactive -+ - %{ - #ifndef lint - static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; diff --git a/Build/source/texk/detex/TLpatches/patch-07-rename b/Build/source/texk/detex/TLpatches/patch-07-rename deleted file mode 100644 index 4f8c1452d2a..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-07-rename +++ /dev/null @@ -1,48 +0,0 @@ -diff -ur detex-2.8.orig/detex.h detex-2.8/detex.h ---- detex-2.8.orig/detex.h 2008-02-01 20:55:51.000000000 +0100 -+++ detex-2.8/detex.h 2012-08-02 10:31:17.000000000 +0200 -@@ -78,4 +78,4 @@ - #define CHTEXOPT 't' - #define CHWORDOPT 'w' - --#define ERROR -1 -+#define my_ERROR -1 -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-06-21 11:52:31.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-02 10:31:20.000000000 +0200 -@@ -580,7 +580,7 @@ - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); -- if (csbEnvIgnore == ERROR) -+ if (csbEnvIgnore == my_ERROR) - ErrorExit("The environtment list contains too many environments"); - } - -@@ -738,7 +738,7 @@ - (void)strcat(sbPaths, DEFAULTINPUTS); - - csbInputPaths = SeparateList(sbPaths, rgsbInputPaths, CHPATHSEP, MAXINPUTPATHS); -- if (csbInputPaths == ERROR) -+ if (csbInputPaths == my_ERROR) - #ifdef OS2 - ErrorExit("TEXINPUT(S) environment variable has too many paths"); - #else -@@ -751,7 +751,7 @@ - ** SeparateList -- takes a chSep separated list sbList, replaces the - ** chSep's with NULLs and sets rgsbList[i] to the beginning of - ** the ith word in sbList. The number of words is returned. A --** ERROR is returned if there are more than csbMax words. -+** my_ERROR is returned if there are more than csbMax words. - ******/ - - int -@@ -764,7 +764,7 @@ - if ((sbList = index(sbList, chSep))) - *sbList++ = '\0'; - } -- return(sbList && *sbList ? ERROR : csbList); -+ return(sbList && *sbList ? my_ERROR : csbList); - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-08-kpathsea b/Build/source/texk/detex/TLpatches/patch-08-kpathsea deleted file mode 100644 index 2eacbf68bcc..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-08-kpathsea +++ /dev/null @@ -1,52 +0,0 @@ - Clarify that DEFAULTINPUTS and CHPATHSEP are not used with KPATHSEA - -diff -ur detex-2.8.orig/detex.h detex-2.8/detex.h ---- detex-2.8.orig/detex.h 2012-08-02 10:31:17.000000000 +0200 -+++ detex-2.8/detex.h 2012-08-24 10:23:29.000000000 +0200 -@@ -51,6 +51,7 @@ - - #define MAXINCLIST 40 - -+#ifndef KPATHSEA - #ifdef OS2 - #define DEFAULTINPUTS ".;/emtex/texinput" - #define CHPATHSEP ';' -@@ -58,6 +59,8 @@ - #define DEFAULTINPUTS ".:/usr/local/tex/inputs" - #define CHPATHSEP ':' - #endif -+#endif -+ - #define MAXINPUTPATHS 10 - - #define DEFAULTENV "array,eqnarray,equation,figure,mathmatica,picture,table,verbatim" - - With KPATHSEA use kpse_program_name. - Fixed a typo. - -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-02 10:31:20.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-24 10:37:03.000000000 +0200 -@@ -436,10 +436,10 @@ - #endif - _splitpath (rgsbArgs[0], drive, dir, fname, ext); - sbProgName = strlwr(fname); --#else --#ifdef KPATHSEA -+#elif defined(KPATHSEA) - kpse_set_program_name (rgsbArgs[0], NULL); --#endif -+ sbProgName = kpse_program_name; -+#else - if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else -@@ -462,7 +467,7 @@ - break; - case CHENVOPT: - if (++iArgs >= cArgs) { -- ErrorExit("-e option requires and argument"); -+ ErrorExit("-e option requires an argument"); - } - sbEnvList = rgsbArgs[iArgs]; - break; diff --git a/Build/source/texk/detex/TLpatches/patch-09-binary b/Build/source/texk/detex/TLpatches/patch-09-binary deleted file mode 100644 index 95d272030ad..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-09-binary +++ /dev/null @@ -1,28 +0,0 @@ - In TeX Live we use binary mode for all output files. - -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-24 10:37:03.000000000 +0200 -+++ detex-2.8/detex.l 2012-08-24 10:51:12.000000000 +0200 -@@ -83,6 +83,11 @@ - #include - #endif - -+#ifdef WIN32 -+#include -+#include -+#endif -+ - #endif /* KPATHSEA */ - - #undef IGNORE -@@ -494,6 +499,10 @@ - } - SetEnvIgnore(sbEnvList); - -+#ifdef WIN32 -+ _setmode(fileno(stdout), _O_BINARY); -+#endif -+ - /* process input files */ - for (; iArgs < cArgs; iArgs++) { - fSawFile++; diff --git a/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings b/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings deleted file mode 100644 index 8f03d7b26af..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-10-ANSI-strings +++ /dev/null @@ -1,52 +0,0 @@ -diff -ur detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2012-08-24 10:51:12.000000000 +0200 -+++ detex-2.8/detex.l 2013-06-27 18:49:05.000000000 +0200 -@@ -70,10 +70,10 @@ - - #ifdef HAVE_STRING_H - #include --#define index strchr --#define rindex strrchr - #else - #include -+#define strchr index -+#define strrchr rindex - #endif - #ifndef MAXPATHLEN - #include -@@ -445,7 +445,7 @@ - kpse_set_program_name (rgsbArgs[0], NULL); - sbProgName = kpse_program_name; - #else -- if ((sbProgName = rindex(rgsbArgs[0], '/')) != NULL) -+ if ((sbProgName = strrchr(rgsbArgs[0], '/')) != NULL) - sbProgName++; - else - sbProgName = rgsbArgs[0]; -@@ -701,7 +701,7 @@ - if (csbIncList == 0) /* no list */ - return(1); - (void)strcpy(sbBase, sbFile); -- if ((pch = rindex(sbBase, '.')) != NULL) -+ if ((pch = strrchr(sbBase, '.')) != NULL) - *pch = '\0'; - i = 0; - while ((i < csbIncList) && rgsbIncList[i]) -@@ -770,7 +770,7 @@ - - while (sbList && *sbList && csbList < csbMax) { - rgsbList[csbList++] = sbList; -- if ((sbList = index(sbList, chSep))) -+ if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; - } - return(sbList && *sbList ? my_ERROR : csbList); -@@ -815,7 +815,7 @@ - #endif - - /* If sbFile ends in .tex then it must be there */ -- if ((pch = rindex(sbFullPath, '.')) != NULL -+ if ((pch = strrchr(sbFullPath, '.')) != NULL - && (strcmp(pch, ".tex") == 0)) - { - if ((fp = fopen(sbFullPath, "r")) != NULL) diff --git a/Build/source/texk/detex/TLpatches/patch-11-c_auto_h b/Build/source/texk/detex/TLpatches/patch-11-c_auto_h deleted file mode 100644 index e88dad2ad37..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-11-c_auto_h +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur -x detex.c detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2013-06-27 18:49:05.000000000 +0200 -+++ detex-2.8/detex.l 2013-06-28 14:46:12.000000000 +0200 -@@ -1,6 +1,6 @@ - %option never-interactive - --%{ -+%top{ - #ifndef lint - static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; - #endif -@@ -89,7 +89,9 @@ - #endif - - #endif /* KPATHSEA */ -+} - -+%{ - #undef IGNORE - - #define LaBEGIN if (fLatex) BEGIN diff --git a/Build/source/texk/detex/TLpatches/patch-12-typo b/Build/source/texk/detex/TLpatches/patch-12-typo deleted file mode 100644 index 77087a7ccaa..00000000000 --- a/Build/source/texk/detex/TLpatches/patch-12-typo +++ /dev/null @@ -1,12 +0,0 @@ -diff -ur -x detex.c detex-2.8.orig/detex.l detex-2.8/detex.l ---- detex-2.8.orig/detex.l 2013-06-28 14:46:12.000000000 +0200 -+++ detex-2.8/detex.l 2014-08-20 09:56:40.115740053 +0200 -@@ -592,7 +592,7 @@ - (void) strcpy(sb, sbEnvList); - csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); - if (csbEnvIgnore == my_ERROR) -- ErrorExit("The environtment list contains too many environments"); -+ ErrorExit("The environment list contains too many environments"); - } - - /****** diff --git a/Build/source/texk/detex/TLpatches/patch-13-typo-minipage b/Build/source/texk/detex/TLpatches/patch-13-typo-minipage new file mode 100644 index 00000000000..0274ea378c4 --- /dev/null +++ b/Build/source/texk/detex/TLpatches/patch-13-typo-minipage @@ -0,0 +1,12 @@ +diff -ur opendetex-2.8.3.orig/detex.l opendetex-2.8.3/detex.l +--- opendetex-2.8.3.orig/detex.l 2018-02-11 18:42:05.000000000 +0900 ++++ opendetex-2.8.3/detex.l 2018-06-20 23:12:37.000000000 +0900 +@@ -203,7 +204,7 @@ + . ECHO; + + {S}"{"{S}"minipage"{S}"}" { KILLARGS(1); +- if (BeginEnv("minpage")) ++ if (BeginEnv("minipage")) + BEGIN LaEnv; + else + BEGIN LaMacro; /* Normal; */ diff --git a/Build/source/texk/detex/detex-src/COPYRIGHT b/Build/source/texk/detex/detex-src/COPYRIGHT index 33c5e6c5399..c7ac284794d 100644 --- a/Build/source/texk/detex/detex-src/COPYRIGHT +++ b/Build/source/texk/detex/detex-src/COPYRIGHT @@ -33,3 +33,4 @@ IN NO EVENT SHALL THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. + diff --git a/Build/source/texk/detex/detex-src/ChangeLog b/Build/source/texk/detex/detex-src/ChangeLog new file mode 100644 index 00000000000..8416c6f74eb --- /dev/null +++ b/Build/source/texk/detex/detex-src/ChangeLog @@ -0,0 +1,178 @@ +April 26, 1986 + +Modified -- June 4, 1986 +Changed so that it automatically recognizes LaTeX source and ignores several +environment modes such as array. + + +Modified (Version 2.0) -- June 30, 1984 +Now handles white space in sequences like "\begin { document }". Detex is not +as easily confused by such things as display mode ends and begins that don't +match up. + + +Modified -- September 19, 1986 +Added the "-e " option to ignore specified LaTeX +environments. + + +Modified -- June 30, 1987 +Added the "-n" no-follow option, to allow detex to ignore \input and \include +commands. Also changed the algorithm for locating the input files. It now +interprets the "." more reasonably (i.e. it is not always the beginning of an +extension). + + +Modified -- December 15, 1988 +Added handling of verbatim environment in LaTeX mode and added it to the list +of modes ignored by default. Because of limitations with lex, it was +necessary to shorten the names of some of the existing start states before +adding a new one (ugh). + + +Modified -- January 3, 1988 +Added ignore of \$ inside $$ (math) pair. + + +Modified (Version 2.2) -- June 25, 1990 +Control sequences are no longer replaced by space, but just removed. This +means accents no longer cause output words to be broken. The "-c" option was +added to show the arguments of \cite, \ref, and \pageref macros. This is +useful when using something like style on the output. + + +Modified (Version 2.3) -- September 7, 1990 +Fixed the handling of Ctl mode a little better and added an exception +for \index on suggestions from kcb@hss.caltech.edu (KC Border). Also +changed the value for DEFAULTINPUTS to coincide with a local change. + + +Modified -- February 10, 1991 +Added -t option to force TeX mode even when seeing the "\begin{document}" +string in the input. + + +Modified -- February 23, 1991 +Based on suggestions from pinard@iro.umontreal.ca (Francois Pinard), I +added support for the SysV string routines (-DUSG), added defines for +the flex lexical scanner (-DFLEX_SCANNER), changed NULL to '\0' when +using it as a character (his sys defined NULL as (void *)0), changed +the Makefile to use ${CC} instead of cc, and added comments about the +new compile time options. + + +Modified (Version 2.4) -- September 2, 1992 +Corrected the way CITEBEGIN worked. Due to serious braindeath I had +the condition wrong in the if test. It should be (fLatex && !fCite). +This solves the problem a couple people reported with amstex style +\ref entries. + +Added a preprocessing sed(1) command to replace all the long, easy to +read state names with short two letter state names (SA-S?) so that lex +won't overflow and I don't have to keep shortening the state names +every time I add one. If a state is added, it must also be added to +states.sed (order is important) along with its unique S? replacement. + +Added \pagestyle, \setcounter, and \verb handling from +K.Sattar@cs.exeter.ac.uk (Khalid Sattar). Also allows invocation as +"delatex" to force LaTeX mode. + +Applied patches from queinnec@cenatls.cena.dgac.fr (Philippe Queinnec) +to handle nested {}s in state (\bibitem, \cite, \index). + +Added special ligature handling (\aa, \ae, \oe, \l, \o, \i, \j, \ss) +at the suggestion of gwp@dido.caltech.edu (G. W. Pigman II). + +Cleaned up the comments on detex.h, added mathmatica to DEFAULTENV. + + +Modified (Version 2.5) -- January 28, 1993 +Leading spaces in macros are no longer stripped. This means +"foo\footnote{ bar}" comes out as "foo bar" instead of "foobar". + +Fixed special ligature handling so it works in cases line {\ss} instead of +just when followed by a space. + + +Modified (Version 2.6) -- July 30, 1993 +Added OS/2 port from hankedr@mail.auburn.edu (Darrel R Hankerson). + +Added handling of leading and trailing ':' in TEXINPUTS per the latest +TeX as suggested by jnp@tfl.dk (J|rgen N|rgaard). + +Changed the way the input path is constructed in SetInputPaths() so we +never try to modify a constant string. + +Changed the way the the ignore environment list is contructed in +SetEnvIgnore() so we never try to modify a constant string. + +Changed the USG define to HAVE_STRING_H. + +Fixed the states.sed script so it only replaces "Input" in the correct +places. I would like to use the \< \> word separator patterns but +they are not supported by all versions of sed. This as least works. + +Changed the detex.c target in the Makefile to use a temporary file +because I experienced problems (segmentation fault) with lex on +Solaris 2.1 when input was from stdin. + + +Modified (Version 2.7) -- September 10, 1997 +Removed line breaks in detex.l between a few patterns and actions. It +appears that flex is no longer able to handle this. Thanks to Anthony +Harris and Marty Leisner + for reporting this. + + +Porting notes -- March 30, 1992 +When using gcc, or compiling on a NeXT, you should compile with +-fwritable-strings. With the change to SetInputPaths() in 2.6 this +should no longer be necessary. + +On a NeXT, it has been reported that lex replaces the '\0' with NULL, +and then the compiler complains about it. I think this is an old bug +that is no longer applicable. + +July 30, 1993 +The flex scanner generator does not work because it does not handle +input buffering the same way as lex. I don't know of any reasonable +way to rewrite detex to get around this problem. + +May 25, 1995 +According to alain@ia1.u-strasbg.fr (Alain Ketterlin), using flex +allows 8-bit characters to be handled correctly. + +Modified (Version 2.8) -- January 1, 2008 +Added NCSA/University of Illinois Open Source License to facilitate +free redistribution. + +(Version 2.8.1) -- October 2, 2008 +First version of OpenDetex. +Making program compile on modern UNIX systems; many fixes in LaTeX +code handling (quotes, figure and table environments, headings and +many more). + +(Version 2.8.2) -- February, 2016 +Improved ANSI C compatibility. Used kpse_find_file() and +kpse_program_name(). Handle `\kern', allow `em/ex'for dimensions, +handle glue specs. Added the never-interactive option to prevent flex +from creating a problematic prototype for isatty(). Renamed +ERROR -> my_ERROR to avoid a conflict with WIN32 headers. Used binary +mode for output file (Peter Breitenlohner and Werner Lemberg) + +Insert a space in place of right curly brace (Eric Miotto). + +Provide 'make uninstall'. Install man page when running 'make install'. + +(Version 2.8.3) -- February, 2018 +Added -r option that replaces math environments with nouns and verbs in a way that keeps sentences readable. Thanks to Sophie Huiberts. + +Changed Makefile to fix a Mac OS X problem where frequently an empty output file was produced. + +Removed states.sed that modified detex.l to avoid Lex memory overrun - no longer needed on current machines. Added detex.c to the distributed package to allow compiling OpenDetex without having Flex. + +Removed 'mathmatica' from the default list of environments which contents are ignored - 'mathmatica' is not supported by TeX. Added more ignored environments: algorithm, align, smallmatrix and several more. + +Fixed compilation on Cygwin. + +Removed special files for OS/2 - they required compilers that no longer exist. OpenDetex should be able to be compiled using GCC for OS/2. diff --git a/Build/source/texk/detex/detex-src/INSTALL b/Build/source/texk/detex/detex-src/INSTALL new file mode 100644 index 00000000000..28a48174c02 --- /dev/null +++ b/Build/source/texk/detex/detex-src/INSTALL @@ -0,0 +1,13 @@ +To build the program, you need: +* 'make' program +* a C compiler (for example, Clang or GCC) +* 'lex' implementation (for example, flex) + +Debian/Ubuntu users can install those by executing: + sudo apt-get install make gcc flex + +To compile the program, simply execute + make + +To install the program, execute + sudo make install diff --git a/Build/source/texk/detex/detex-src/Makefile b/Build/source/texk/detex/detex-src/Makefile index e6a75b763a7..5358b291040 100644 --- a/Build/source/texk/detex/detex-src/Makefile +++ b/Build/source/texk/detex/detex-src/Makefile @@ -38,6 +38,8 @@ # # Detex is a program to remove TeX and LaTeX constructs from text source. +UNAME_S := $(shell uname -s) + # Installation directory # DESTDIR = /usr/local/bin @@ -69,25 +71,27 @@ DEFS = # #DEFS += ${DEFS} -DNO_MALLOC_DECL # -CFLAGS = -O ${DEFS} +CFLAGS = -O ${DEFS} -Wall # Use your favorite lexical scanner # -LEX = lex -#LEX = flex +#LEX = lex +LEX = flex #LFLAGS = -8 -C # scanner library # -LEXLIB = -ll -#LEXLIB = -lfl +LEXLIB = -lfl +ifeq ($(UNAME_S),Darwin) + LEXLIB = -ll +endif LPR = lpr -p # Program names # -PROGS = detex +PROGS = detex delatex # Header files # @@ -101,39 +105,56 @@ SRC = detex.l # D_OBJ = detex.o +VERSION = 2.8.3 + all: ${PROGS} detex: ${D_OBJ} ${CC} ${CFLAGS} -o $@ ${D_OBJ} ${LEXLIB} -detex.c: - sed -f states.sed detex.l > xxx.l - ${LEX} ${LFLAGS} xxx.l - rm -f xxx.l - mv lex.yy.c detex.c +delatex: detex + cp detex delatex -lexout.c: detex.c - mv detex.c lexout.c +detex.c: detex.l + ${LEX} ${LFLAGS} detex.l + mv lex.yy.c detex.c man-page: troff -man detex.1l # If you want detex available as delatex, uncomment the last two lines of # this target -install: detex +install: all rm -f ${DESTDIR}/detex - install -c -m 775 -o binary -g staff -s detex ${DESTDIR} + install -c -m 775 -g staff -s detex ${DESTDIR} + install detex.1l /usr/local/share/man/man1 # rm -f ${DESTDIR}/delatex # ln ${DESTDIR}/detex ${DESTDIR}/delatex +uninstall: + rm -f ${DESTDIR}/detex + rm -f ${DESTDIR}/delatex + rm -f /usr/local/share/man/man1/detex.* + clean: -rm -f a.out core *.s *.o ERRS errs .,* .emacs_[0-9]* - -rm -f ${PROGS} xxx.l lex.yy.c + -rm -f ${PROGS} xxx.l lex.yy.c detex.c + -rm -f *.tar.bz2 print: ${HDR} ${SRC} ${LPR} Makefile ${HDR} ${SRC} +test: all + ./test.pl + +run: delatex + ./delatex in > out.txt + +package: clean detex.c + tar cjfv opendetex-${VERSION}.tar.bz2 ChangeLog COPYRIGHT detex.* INSTALL Makefile README + # Dependencies # detex.c: detex.h detex.c: detex.l + diff --git a/Build/source/texk/detex/detex-src/README b/Build/source/texk/detex/detex-src/README index a310a7f3fd0..c7feeefbf0d 100644 --- a/Build/source/texk/detex/detex-src/README +++ b/Build/source/texk/detex/detex-src/README @@ -1,6 +1,6 @@ -Detex - Version 2.8 +OpenDetex - Version 2.8.3 -Detex is a program to remove TeX constructs from a text file. It recognizes +OpenDetex is a program to remove TeX constructs from a text file. It recognizes the \input command. This program assumes it is dealing with LaTeX input if it sees the string @@ -11,185 +11,35 @@ This directory contains the following files: README - you're looking at it. -COPYRIGHT - NCSA/University of Illinois Open Source License +ChangeLog - detailed history of changes done in different versions of the program -Makefile - makefile for generating detex on a 4.2BSD Unix system. +COPYRIGHT - information about program authors and license + +INSTALL - how to compile the program + +Makefile - makefile for generating detex detex.1l - troff source for the detex manual page. Assuming you have the -man macros, use "make man-page" to generate it. +detex.c - C code generated from detex.l distributed to allow + building from source without having Flex installed + detex.h - Various global definitions. These should be modified to suit the local installation. -detex.l - Lex and C source for the detex program. - -lexout.c - C code generated from detex.l using lex on a Sun (SunOS 4.1.1) - This can be useful for DOS, OS/2 or systems that don't have - lex. - -states.sed - sed(1) script to munge the state names in detex.l so that - reasonable names can be used in the source without causing - lex(1) to overflow. - -os2 - subdirectory containing support for compilation on - OS/2 and DOS systems +detex.l - Lex/Flex and C source for the detex program. This software package is distributed under the NCSA/University of -Illinois Open Source License. The latest version is available at -http://www.cs.purdue.edu/homes/trinkle/detex/ Send comments and fixes -to me via email. - -Daniel Trinkle -Department of Computer Sciences -Purdue University -West Lafayette, IN 47907-1398 - -April 26, 1986 - -Modified -- June 4, 1986 -Changed so that it automatically recognizes LaTeX source and ignores several -environment modes such as array. - - -Modified (Version 2.0) -- June 30, 1984 -Now handles white space in sequences like "\begin { document }". Detex is not -as easily confused by such things as display mode ends and begins that don't -match up. - - -Modified -- September 19, 1986 -Added the "-e " option to ignore specified LaTeX -environments. - - -Modified -- June 30, 1987 -Added the "-n" no-follow option, to allow detex to ignore \input and \include -commands. Also changed the algorithm for locating the input files. It now -interprets the "." more reasonably (i.e. it is not always the beginning of an -extension). - - -Modified -- December 15, 1988 -Added handling of verbatim environment in LaTeX mode and added it to the list -of modes ignored by default. Because of limitations with lex, it was -necessary to shorten the names of some of the existing start states before -adding a new one (ugh). - - -Modified -- January 3, 1988 -Added ignore of \$ inside $$ (math) pair. - - -Modified (Version 2.2) -- June 25, 1990 -Control sequences are no longer replaced by space, but just removed. This -means accents no longer cause output words to be broken. The "-c" option was -added to show the arguments of \cite, \ref, and \pageref macros. This is -useful when using something like style on the output. - - -Modified (Version 2.3) -- September 7, 1990 -Fixed the handling of Ctl mode a little better and added an exception -for \index on suggestions from kcb@hss.caltech.edu (KC Border). Also -changed the value for DEFAULTINPUTS to coincide with a local change. - - -Modified -- February 10, 1991 -Added -t option to force TeX mode even when seeing the "\begin{document}" -string in the input. - - -Modified -- February 23, 1991 -Based on suggestions from pinard@iro.umontreal.ca (Francois Pinard), I -added support for the SysV string routines (-DUSG), added defines for -the flex lexical scanner (-DFLEX_SCANNER), changed NULL to '\0' when -using it as a character (his sys defined NULL as (void *)0), changed -the Makefile to use ${CC} instead of cc, and added comments about the -new compile time options. - - -Modified (Version 2.4) -- September 2, 1992 -Corrected the way CITEBEGIN worked. Due to serious braindeath I had -the condition wrong in the if test. It should be (fLatex && !fCite). -This solves the problem a couple people reported with amstex style -\ref entries. - -Added a preprocessing sed(1) command to replace all the long, easy to -read state names with short two letter state names (SA-S?) so that lex -won't overflow and I don't have to keep shortening the state names -every time I add one. If a state is added, it must also be added to -states.sed (order is important) along with its unique S? replacement. - -Added \pagestyle, \setcounter, and \verb handling from -K.Sattar@cs.exeter.ac.uk (Khalid Sattar). Also allows invocation as -"delatex" to force LaTeX mode. - -Applied patches from queinnec@cenatls.cena.dgac.fr (Philippe Queinnec) -to handle nested {}s in state (\bibitem, \cite, \index). - -Added special ligature handling (\aa, \ae, \oe, \l, \o, \i, \j, \ss) -at the suggestion of gwp@dido.caltech.edu (G. W. Pigman II). - -Cleaned up the comments on detex.h, added mathmatica to DEFAULTENV. - - -Modified (Version 2.5) -- January 28, 1993 -Leading spaces in macros are no longer stripped. This means -"foo\footnote{ bar}" comes out as "foo bar" instead of "foobar". - -Fixed special ligature handling so it works in cases line {\ss} instead of -just when followed by a space. - - -Modified (Version 2.6) -- July 30, 1993 -Added OS/2 port from hankedr@mail.auburn.edu (Darrel R Hankerson). - -Added handling of leading and trailing ':' in TEXINPUTS per the latest -TeX as suggested by jnp@tfl.dk (J|rgen N|rgaard). - -Changed the way the input path is constructed in SetInputPaths() so we -never try to modify a constant string. - -Changed the way the the ignore environment list is contructed in -SetEnvIgnore() so we never try to modify a constant string. - -Changed the USG define to HAVE_STRING_H. - -Fixed the states.sed script so it only replaces "Input" in the correct -places. I would like to use the \< \> word separator patterns but -they are not supported by all versions of sed. This as least works. - -Changed the detex.c target in the Makefile to use a temporary file -because I experienced problems (segmentation fault) with lex on -Solaris 2.1 when input was from stdin. - - -Modified (Version 2.7) -- September 10, 1997 -Removed line breaks in detex.l between a few patterns and actions. It -appears that flex is no longer able to handle this. Thanks to Anthony -Harris and Marty Leisner - for reporting this. - - -Porting notes -- March 30, 1992 -When using gcc, or compiling on a NeXT, you should compile with --fwritable-strings. With the change to SetInputPaths() in 2.6 this -should no longer be necessary. - -On a NeXT, it has been reported that lex replaces the '\0' with NULL, -and then the compiler complains about it. I think this is an old bug -that is no longer applicable. - -July 30, 1993 -The flex scanner generator does not work because it does not handle -input buffering the same way as lex. I don't know of any reasonable -way to rewrite detex to get around this problem. +Illinois Open Source License. -May 25, 1995 -According to alain@ia1.u-strasbg.fr (Alain Ketterlin), using flex -allows 8-bit characters to be handled correctly. +OpenDetex was created by Piotr Kubowicz from version 2.8 of Detex +program by Daniel Trinkle, obtained from +http://www.cs.purdue.edu/homes/trinkle/detex/ -Modified (Version 2.8) -- January 1, 2008 -Added NCSA/University of Illinois Open Source License to facilitate -free redistribution. +Currently home of OpenDetex is GitHub: +https://github.com/pkubowicz/opendetex +You can check for latest version, submit bug reports or patches, or +ask for becoming team member there. diff --git a/Build/source/texk/detex/detex-src/detex.c b/Build/source/texk/detex/detex-src/detex.c index 171d81ac926..bd140ff191d 100644 --- a/Build/source/texk/detex/detex-src/detex.c +++ b/Build/source/texk/detex/detex-src/detex.c @@ -1,8 +1,3 @@ -#line 4 "../../../texk/detex/detex-src/detex.l" -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; -#endif - /* * Copyright (c) 1986-2007 Purdue University * All rights reserved. @@ -40,7 +35,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE SOFTWARE. */ - /* * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex] ] * @@ -70,7 +64,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #include #else #include -#define strchr index #define strrchr rindex #endif #ifndef MAXPATHLEN @@ -88,9 +81,7 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #endif /* KPATHSEA */ - - -#line 94 "../../../texk/detex/detex-src/detex.c" +#line 84 "lex.yy.c" #define YY_INT_ALIGNED short int @@ -99,7 +90,7 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 0 +#define YY_FLEX_SUBMINOR_VERSION 1 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -178,25 +169,13 @@ typedef unsigned int flex_uint32_t; #endif /* ! FLEXINT_H */ -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ @@ -257,7 +236,7 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t yyleng; +extern int yyleng; extern FILE *yyin, *yyout; @@ -296,12 +275,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -324,7 +303,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -352,7 +331,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -371,11 +350,11 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t yyleng; +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 char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ @@ -400,7 +379,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); void *yyalloc (yy_size_t ); void *yyrealloc (void *,yy_size_t ); @@ -434,7 +413,7 @@ void yyfree (void * ); typedef unsigned char YY_CHAR; -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; @@ -451,23 +430,20 @@ extern char *yytext; static yy_state_type yy_get_previous_state (void ); static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); static int yy_get_next_buffer (void ); -#if defined(__GNUC__) && __GNUC__ >= 3 -__attribute__((__noreturn__)) -#endif -static void yy_fatal_error (yyconst char msg[] ); +static void yynoreturn yy_fatal_error (yyconst 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 = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 142 -#define YY_END_OF_BUFFER 143 +#define YY_NUM_RULES 173 +#define YY_END_OF_BUFFER 174 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -475,125 +451,158 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[1067] = +static yyconst flex_int16_t yy_accept[1362] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 122, 122, 0, 0, 0, 0, + 0, 0, 0, 0, 144, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 135, 135, 0, 0, 0, 0, 0, 0, 118, 118, - 0, 0, 143, 142, 80, 79, 78, 92, 91, 92, - 103, 106, 105, 104, 108, 110, 109, 97, 95, 94, - 97, 129, 129, 93, 1, 128, 129, 124, 124, 126, - 123, 122, 121, 120, 123, 123, 122, 11, 11, 10, - 9, 11, 88, 87, 88, 18, 17, 15, 16, 14, - 13, 14, 84, 83, 84, 99, 101, 100, 133, 130, - - 131, 132, 135, 134, 139, 136, 137, 138, 141, 140, - 6, 6, 7, 118, 43, 42, 44, 90, 103, 108, - 96, 125, 89, 1, 128, 0, 127, 117, 115, 81, - 114, 114, 114, 114, 85, 116, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 122, 122, 120, 120, 0, 119, - 0, 0, 9, 0, 0, 0, 86, 15, 0, 82, - 99, 135, 6, 0, 43, 127, 114, 114, 112, 112, - 116, 0, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 0, 0, 0, 0, 111, 111, 0, 116, 114, - 114, 114, 114, 114, 77, 114, 65, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 71, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 0, 0, - 12, 0, 114, 114, 114, 114, 114, 114, 61, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 52, 114, 114, 114, 114, 114, 114, 32, 114, 114, - - 114, 114, 114, 114, 114, 114, 114, 114, 73, 114, - 114, 0, 0, 0, 0, 114, 114, 3, 114, 114, - 114, 46, 114, 114, 114, 114, 114, 114, 114, 114, - 66, 107, 0, 0, 0, 0, 0, 68, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 52, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 0, 0, - 0, 0, 114, 114, 0, 0, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 0, 0, 0, 0, 0, - 114, 114, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 19, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 36, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 34, 114, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 114, 114, 0, 0, 58, 114, 114, 114, - 114, 114, 114, 114, 114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 98, 0, 19, 19, 114, 114, 114, 114, 114, 114, - 69, 114, 114, 114, 114, 114, 114, 114, 33, 114, - 53, 114, 114, 114, 114, 114, 114, 114, 114, 114, - - 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 0, 0, 0, 0, 114, - 114, 0, 114, 60, 48, 114, 114, 114, 51, 67, - 0, 22, 22, 22, 22, 0, 0, 0, 0, 0, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 35, 114, 114, 114, 114, 37, 53, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 0, 20, 20, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 114, 0, 114, 114, 114, 114, 49, 0, 0, - 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 166, 166, 0, 0, 0, 0, 0, 0, + 139, 139, 0, 0, 174, 173, 92, 91, 90, 107, + 105, 107, 106, 107, 107, 119, 122, 121, 120, 128, + 130, 129, 113, 110, 109, 112, 113, 113, 158, 158, + 159, 158, 158, 108, 1, 158, 158, 158, 157, 158, + 146, 151, 154, 146, 155, 148, 145, 144, 142, 141, + 145, 145, 143, 12, 12, 173, 11, 12, 102, 100, + + 101, 102, 102, 18, 16, 17, 15, 14, 15, 97, + 95, 96, 97, 97, 115, 117, 116, 124, 126, 125, + 164, 161, 162, 163, 166, 165, 170, 167, 168, 169, + 172, 171, 6, 6, 7, 139, 44, 43, 46, 104, + 0, 0, 0, 0, 0, 0, 0, 119, 121, 128, + 129, 111, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 147, 103, 1, 152, 153, 149, 157, 0, 156, + 138, 136, 93, 135, 135, 135, 135, 98, 137, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 150, 0, 0, + + 0, 144, 143, 142, 141, 141, 0, 140, 0, 0, + 11, 0, 0, 0, 0, 0, 99, 0, 0, 0, + 0, 0, 0, 0, 16, 14, 0, 94, 0, 0, + 0, 0, 0, 0, 0, 115, 116, 124, 125, 163, + 166, 6, 0, 44, 0, 45, 0, 106, 0, 0, + 0, 0, 0, 0, 0, 112, 0, 0, 0, 0, + 0, 0, 0, 149, 156, 135, 135, 133, 133, 137, + 0, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, + 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 132, 132, 0, 137, 135, 135, 135, 135, 135, 135, + 89, 135, 71, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 78, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 114, 114, 113, 114, 114, 25, - 114, 50, 70, 56, 114, 114, 38, 40, 114, 26, - 114, 114, 114, 114, 114, 114, 47, 114, 0, 0, - 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 4, 0, 114, - 0, 0, 0, 114, 114, 114, 114, 0, 0, 22, - 22, 0, 0, 0, 0, 0, 23, 114, 114, 74, - 114, 31, 56, 39, 114, 38, 72, 30, 114, 28, - 54, 114, 114, 64, 0, 0, 20, 20, 0, 0, - 0, 0, 0, 21, 0, 27, 0, 0, 0, 0, - - 0, 0, 114, 45, 114, 114, 0, 0, 22, 22, - 0, 0, 0, 0, 114, 102, 114, 114, 29, 54, - 114, 114, 0, 0, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 59, 114, 114, 0, 0, 22, - 22, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 114, 75, 114, 57, 0, 0, 20, 20, 0, 0, + 0, 0, 0, 0, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 67, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 57, 135, + 135, 135, 135, 135, 135, 33, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 85, 135, 135, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 67, 135, 135, 135, + + 135, 3, 135, 135, 135, 135, 48, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 73, 127, 0, + 0, 0, 0, 0, 74, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 57, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 131, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 63, 62, 0, 0, 22, 0, + 0, 0, 0, 0, 106, 0, 112, 0, 135, 135, + 135, 135, 135, 0, 0, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + + 0, 135, 135, 135, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 37, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 35, 135, + 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, + 0, 101, 0, 96, 0, 0, 0, 0, 135, 135, + 135, 135, 135, 0, 0, 64, 135, 135, 58, 135, + 135, 135, 135, 135, 135, 135, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, + + 0, 135, 114, 0, 19, 19, 135, 75, 135, 135, + 135, 135, 135, 135, 76, 135, 135, 135, 135, 135, + 135, 135, 34, 135, 59, 135, 135, 135, 135, 135, + 135, 123, 135, 135, 135, 135, 135, 135, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 135, 135, 135, 135, 135, 0, 135, 66, + 58, 50, 135, 135, 135, 53, 83, 135, 0, 22, + 22, 22, 22, 0, 0, 0, 0, 0, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + + 36, 135, 135, 135, 135, 38, 59, 135, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 0, + 20, 20, 20, 20, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 135, 135, 135, 135, + 0, 135, 135, 135, 135, 51, 0, 84, 0, 0, + 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 135, 135, 135, 134, 135, 135, + 135, 26, 135, 52, 77, 62, 135, 135, 39, 41, + 135, 27, 135, 135, 135, 135, 135, 135, 135, 49, + 135, 135, 0, 0, 20, 20, 0, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 114, - 114, 55, 57, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 5, 0, 0, + 8, 9, 0, 4, 0, 135, 135, 135, 135, 0, + 0, 0, 135, 135, 135, 135, 0, 0, 0, 22, + 22, 0, 0, 0, 0, 0, 23, 72, 135, 135, + 0, 86, 81, 135, 32, 62, 40, 135, 39, 79, + 31, 135, 29, 135, 135, 60, 135, 135, 70, 0, + 0, 20, 20, 0, 0, 0, 0, 0, 21, 10, + 0, 135, 135, 135, 28, 0, 0, 0, 0, 0, + 0, 135, 47, 135, 135, 0, 0, 0, 22, 22, + 0, 0, 0, 0, 135, 118, 0, 135, 135, 30, + + 82, 135, 60, 135, 135, 0, 0, 20, 20, 0, + 0, 0, 0, 0, 135, 135, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 0, 22, 22, 22, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 76, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 20, 0, 20, 20, 20, 0, 0, + 65, 135, 135, 0, 0, 22, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 134, 135, 87, 63, + 135, 135, 0, 0, 20, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 135, 135, 0, 0, 0, + 0, 0, 24, 0, 69, 68, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 135, + + 135, 63, 61, 55, 0, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 5, 135, + 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, + 0, 135, 88, 61, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 0, 20, 20, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 56, + 0, 0, 0, 0, 0, 2, 0, 22, 22, 22, - 0, 2, 0, 22, 22, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 41, 0, 20, 20, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, + 0, 20, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 42, 42, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 41, 20, 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, 22, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 20, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, - 0, 20, 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, 22, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 20, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 } ; static yyconst YY_CHAR yy_ec[256] = @@ -603,15 +612,15 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 1, 1, 6, 7, 1, 8, 9, 10, 11, 12, 13, 14, 15, 1, 16, 16, 16, - 16, 16, 17, 17, 17, 17, 17, 1, 1, 1, - 18, 1, 5, 19, 20, 21, 21, 21, 22, 21, - 21, 21, 21, 21, 21, 23, 21, 21, 24, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 25, 26, 27, 1, 1, 28, 29, 30, 31, 32, - - 33, 34, 35, 36, 37, 23, 38, 39, 40, 41, - 42, 43, 21, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 1, 1, 1, 1, + 16, 16, 17, 17, 17, 17, 17, 1, 1, 18, + 19, 20, 5, 21, 22, 23, 23, 23, 24, 23, + 23, 23, 23, 23, 23, 25, 23, 23, 26, 23, + 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 27, 28, 29, 1, 1, 30, 31, 32, 33, 34, + + 35, 36, 37, 38, 39, 25, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 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, @@ -628,928 +637,1090 @@ static yyconst YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[57] = +static yyconst YY_CHAR yy_meta[60] = { 0, 1, 2, 3, 2, 1, 1, 1, 4, 1, 1, - 1, 1, 5, 6, 1, 6, 6, 6, 7, 8, - 8, 8, 8, 8, 1, 9, 10, 6, 8, 8, + 1, 1, 5, 6, 1, 6, 6, 1, 6, 1, + 7, 8, 8, 8, 8, 8, 1, 9, 10, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 11, 1, 12, 1 + 8, 8, 8, 8, 8, 11, 1, 12, 1 } ; -static yyconst flex_uint16_t yy_base[1116] = +static yyconst flex_uint16_t yy_base[1416] = { 0, - 0, 0, 0, 1, 2, 3, 8, 11, 14, 23, - 16, 17, 78, 0, 134, 0, 190, 0, 4, 25, - 246, 0, 26, 29, 30, 31, 301, 304, 307, 308, - 2540, 2539, 311, 312, 32, 33, 36, 42, 2549, 2548, - 17, 18, 2563, 2913, 2913, 2913, 2913, 2913, 2913, 2556, - 0, 2913, 2913, 2913, 0, 2913, 2913, 2913, 2913, 2913, - 2555, 2913, 2531, 2552, 0, 21, 2549, 367, 2913, 2913, - 2913, 317, 2913, 0, 310, 0, 2503, 2913, 422, 425, - 0, 428, 2913, 2913, 2528, 2913, 2913, 0, 2913, 2913, - 2913, 2521, 2913, 2913, 2543, 0, 2913, 2913, 2913, 2913, - - 2913, 2913, 0, 2913, 2913, 2913, 2913, 2913, 2913, 2913, - 0, 0, 2519, 2913, 0, 2913, 2913, 2913, 0, 0, - 2913, 2913, 2913, 0, 24, 2539, 2537, 2913, 2913, 2913, - 0, 24, 431, 434, 2913, 298, 284, 289, 283, 16, - 2503, 298, 2498, 438, 2509, 443, 2508, 448, 2511, 301, - 424, 2506, 2489, 32, 456, 2480, 0, 0, 327, 0, - 459, 462, 0, 480, 2495, 2498, 2913, 0, 2489, 2913, - 0, 0, 0, 2488, 0, 2520, 0, 488, 492, 2913, - 2502, 2499, 2493, 2489, 2493, 2476, 2482, 2485, 2487, 2485, - 2474, 302, 304, 442, 2471, 2484, 2472, 2463, 314, 2474, - - 463, 2464, 2461, 2466, 2478, 281, 418, 2455, 2471, 2459, - 308, 2461, 2457, 2468, 2467, 497, 2913, 2471, 2913, 2, - 2456, 468, 2458, 2448, 2452, 2441, 0, 2448, 2447, 2439, - 2443, 2450, 2439, 2444, 2429, 2434, 2441, 2440, 484, 2439, - 489, 2426, 2431, 2436, 2431, 2438, 2432, 2414, 2424, 2416, - 475, 2416, 2417, 2413, 481, 2428, 2420, 2427, 2418, 2424, - 2913, 523, 2411, 2406, 2409, 2403, 2411, 2401, 0, 2402, - 2404, 2404, 2397, 2401, 2395, 2392, 2403, 2386, 2382, 2385, - 575, 2387, 2395, 2382, 2382, 2389, 2392, 500, 2385, 2377, - 2407, 2384, 2383, 2366, 2362, 2366, 2381, 0, 2377, 2372, - - 2366, 2374, 2364, 483, 2376, 2369, 2356, 2368, 0, 2353, - 2364, 2351, 2364, 530, 534, 2353, 2344, 546, 2353, 2343, - 2333, 2353, 2349, 2348, 2336, 2346, 2336, 600, 2344, 2344, - 0, 0, 625, 524, 58, 650, 0, 0, 2331, 2333, - 2324, 2330, 2322, 2327, 2335, 2321, 2322, 2311, 2913, 2329, - 2327, 2326, 2323, 2322, 2312, 2323, 2306, 2300, 2305, 510, - 2314, 2314, 2299, 2300, 2291, 2309, 694, 2306, 2309, 2291, - 552, 2303, 2301, 2304, 558, 561, 2292, 2296, 2291, 2287, - 2297, 2286, 2292, 2291, 2273, 719, 551, 336, 744, 0, - 569, 2285, 569, 427, 471, 2274, 557, 2284, 2275, 2273, - - 2269, 550, 2265, 603, 2274, 2266, 2268, 2269, 2270, 2263, - 2267, 2249, 2270, 0, 2256, 2251, 2253, 2264, 2263, 2242, - 2249, 2249, 2248, 2253, 2250, 2248, 2243, 2233, 2233, 2248, - 2237, 0, 2237, 788, 593, 541, 813, 0, 621, 2235, - 2231, 2223, 2224, 2233, 616, 2220, 0, 2217, 2227, 2205, - 2212, 2207, 2210, 2219, 2217, 618, 553, 558, 2206, 590, - 2216, 2207, 2205, 2205, 567, 2201, 659, 641, 654, 857, - 435, 578, 666, 669, 2211, 2210, 2194, 2191, 2206, 2193, - 0, 2195, 2190, 2182, 2201, 2186, 2183, 2182, 0, 2173, - 2211, 2175, 2174, 2176, 2177, 2180, 2174, 2177, 2174, 2166, - - 2178, 660, 630, 633, 2163, 624, 2169, 2149, 2157, 2156, - 654, 2152, 701, 710, 713, 882, 2160, 2152, 2161, 2151, - 2152, 2153, 2154, 0, 0, 2143, 647, 2130, 0, 0, - 643, 722, 753, 769, 795, 0, 712, 672, 907, 0, - 2135, 2136, 2138, 2134, 2127, 2131, 2122, 2118, 2124, 2119, - 0, 2112, 2105, 2093, 2090, 0, 2913, 2106, 2102, 2086, - 2085, 2072, 2064, 2067, 2052, 2051, 2059, 702, 822, 837, - 864, 886, 0, 722, 726, 951, 0, 765, 776, 2064, - 2044, 748, 2037, 2039, 2029, 2030, 2022, 0, 2029, 2026, - 916, 929, 806, 737, 766, 2020, 709, 2020, 2008, 2006, - - 2005, 655, 1998, 958, 2008, 1997, 0, 2003, 1993, 0, - 1983, 0, 0, 2021, 1977, 1994, 2011, 0, 1977, 0, - 1984, 1979, 1977, 1971, 1965, 1978, 0, 1967, 1909, 1905, - 971, 975, 832, 769, 778, 1900, 779, 1909, 1887, 1895, - 1891, 787, 1886, 983, 910, 2913, 1000, 2913, 1882, 1891, - 889, 1054, 1886, 1889, 1880, 1893, 1870, 1879, 1869, 1003, - 1032, 791, 1038, 1045, 1049, 311, 2913, 1872, 1863, 0, - 1873, 0, 2913, 0, 1870, 2913, 0, 0, 1864, 0, - 1898, 1871, 1859, 0, 1857, 1849, 1058, 1080, 820, 1092, - 1105, 1109, 514, 2913, 1858, 0, 0, 900, 835, 1163, - - 0, 1857, 1837, 0, 1838, 1843, 1830, 1830, 1113, 1207, - 1837, 1833, 838, 402, 1835, 0, 1835, 1835, 0, 2913, - 1820, 1821, 1806, 1807, 1159, 1249, 1814, 1808, 841, 795, - 1805, 919, 838, 847, 1799, 890, 1809, 1778, 1786, 1781, - 856, 1776, 1134, 1777, 0, 1771, 1775, 1758, 1291, 1316, - 1188, 993, 889, 1341, 0, 1761, 1747, 904, 858, 1751, - 1742, 0, 1740, 1769, 1733, 1385, 1410, 1214, 1004, 911, - 1435, 0, 1736, 1721, 911, 926, 1126, 929, 1233, 1241, - 1297, 599, 2913, 1721, 0, 0, 1479, 0, 1237, 1012, - 973, 1504, 0, 1015, 976, 983, 1719, 985, 1729, 1717, - - 1708, 1708, 918, 1703, 1167, 1697, 1694, 1000, 1548, 1706, - 1690, 1722, 2913, 1584, 0, 1283, 1048, 1057, 1609, 0, - 1124, 1074, 1086, 1684, 993, 1693, 1674, 1673, 1662, 949, - 1654, 1180, 1633, 1633, 1022, 1653, 1183, 2913, 1627, 1614, - 1069, 1007, 1223, 0, 1127, 1102, 1105, 1591, 1093, 1595, - 1557, 1554, 1553, 1068, 1546, 1210, 1110, 1307, 1310, 1358, - 1530, 1689, 1714, 1351, 1243, 1134, 1739, 0, 1528, 0, - 2913, 0, 1252, 1138, 1156, 1518, 1128, 1527, 1490, 1474, - 1452, 1184, 1436, 1268, 1159, 1363, 1405, 1416, 1429, 1783, - 1808, 1430, 1353, 1181, 1833, 0, 1428, 1410, 1050, 1197, - - 1373, 2913, 1232, 1413, 1427, 1457, 1877, 0, 1444, 1425, - 1239, 1902, 0, 1447, 1266, 1274, 1406, 1284, 1391, 1381, - 1369, 1364, 1290, 1353, 1498, 1947, 1281, 1486, 1507, 1514, - 2002, 0, 1526, 1497, 1322, 2027, 0, 1507, 1332, 1347, - 1342, 1285, 1327, 1301, 1305, 1301, 1359, 1286, 1554, 1275, - 1259, 1290, 2071, 1568, 0, 1510, 1363, 1366, 1259, 1404, - 1247, 1234, 1221, 1206, 1412, 1189, 1529, 1376, 1574, 1588, - 1634, 0, 0, 1619, 0, 1587, 1438, 1460, 1186, 1508, - 1173, 1151, 1147, 1117, 1440, 1091, 1603, 1487, 1658, 1679, - 1683, 1086, 2107, 2132, 1692, 1601, 1526, 2157, 0, 1705, - - 1529, 1629, 1708, 1749, 1756, 1551, 1762, 1771, 1789, 2201, - 0, 1803, 1660, 1563, 2226, 0, 1798, 1566, 1603, 1036, - 1604, 1044, 989, 976, 957, 1599, 927, 1829, 2270, 1883, - 2309, 2006, 0, 1823, 1631, 1634, 900, 1632, 868, 831, - 835, 830, 1642, 814, 1852, 1683, 1857, 2022, 2052, 2348, - 2036, 2387, 2097, 1705, 2047, 2076, 2110, 2426, 2480, 2123, - 2101, 2113, 2126, 2534, 1897, 2913, 2589, 2601, 2613, 2625, - 2637, 2649, 2661, 2673, 2685, 2697, 2709, 2721, 2733, 2745, - 2757, 2769, 2781, 2791, 2801, 2810, 2818, 2827, 2829, 819, - 805, 2837, 2847, 2859, 2871, 2878, 2880, 2888, 803, 780, - - 762, 756, 750, 724, 722, 683, 676, 671, 623, 514, - 459, 23, 2900, 39, 323 + 0, 0, 0, 1, 2, 6, 14, 29, 11, 33, + 40, 45, 93, 0, 152, 0, 211, 0, 268, 271, + 319, 0, 16, 25, 376, 379, 381, 384, 387, 398, + 20, 378, 3307, 3306, 390, 403, 26, 37, 46, 49, + 3318, 3317, 23, 24, 3332, 3337, 3337, 3337, 3337, 3337, + 3337, 3325, 3337, 236, 3280, 0, 3337, 3326, 3337, 0, + 3337, 3325, 3337, 3337, 3337, 3337, 266, 3277, 3337, 3324, + 3337, 3297, 3294, 3317, 0, 3314, 3308, 3306, 22, 3311, + 461, 3288, 396, 3337, 3337, 3337, 3337, 519, 3314, 0, + 287, 0, 3260, 3337, 522, 525, 0, 528, 3337, 3337, + + 3337, 504, 3265, 3337, 0, 3337, 3337, 3311, 3278, 3337, + 3337, 3337, 410, 3262, 0, 3337, 3308, 0, 3337, 3307, + 3337, 3337, 3337, 3306, 0, 3337, 3337, 3337, 3337, 3337, + 3337, 3337, 0, 0, 3273, 3337, 0, 3337, 278, 3337, + 3272, 3263, 3270, 3273, 3268, 36, 3270, 0, 3298, 0, + 3297, 3337, 3264, 3255, 3262, 3265, 3260, 244, 3262, 3291, + 3259, 3337, 3337, 0, 3337, 3337, 3277, 45, 3281, 3268, + 3337, 3337, 3337, 0, 68, 532, 535, 3337, 265, 384, + 6, 274, 258, 3208, 267, 250, 546, 3215, 552, 390, + 559, 3218, 391, 564, 393, 3186, 36, 3337, 550, 416, + + 556, 572, 3167, 3203, 0, 0, 592, 0, 582, 605, + 0, 616, 3166, 3157, 3164, 3153, 3337, 3150, 3134, 3141, + 3142, 3137, 353, 3139, 0, 3157, 3107, 3337, 3114, 3099, + 3105, 3108, 2897, 405, 2899, 0, 2927, 0, 2926, 3337, + 0, 0, 2885, 0, 621, 627, 2881, 3337, 2880, 2880, + 2878, 2881, 265, 2874, 2875, 3337, 2874, 2874, 2872, 2874, + 384, 2867, 2875, 3337, 2905, 0, 630, 633, 3337, 2885, + 2882, 2876, 2872, 2876, 2876, 2857, 2864, 2868, 2869, 2867, + 2856, 514, 369, 2854, 535, 2851, 2865, 2853, 2853, 2842, + 413, 2854, 603, 2839, 2835, 2841, 2853, 408, 2852, 2847, + + 2849, 2827, 2836, 2839, 2826, 542, 599, 586, 2823, 2834, + 2827, 2837, 2821, 2821, 3337, 2820, 2820, 2818, 2821, 595, + 2814, 2827, 2813, 3337, 2812, 2812, 2810, 2813, 610, 2806, + 2819, 2804, 2803, 2802, 2814, 2800, 2799, 2797, 2809, 2794, + 646, 3337, 2813, 3337, 624, 2802, 503, 2795, 2804, 2794, + 2798, 2786, 0, 2790, 2788, 2779, 2778, 2787, 2794, 2789, + 2782, 2783, 2767, 2773, 2780, 2779, 2778, 628, 2777, 640, + 2763, 2769, 2774, 2769, 2776, 2771, 2752, 2763, 2753, 629, + 2753, 2755, 632, 2750, 2750, 621, 2765, 2757, 2764, 665, + 2736, 2743, 2753, 2750, 2758, 2740, 2739, 2738, 2750, 3337, + + 2736, 2735, 2734, 2746, 681, 2731, 2744, 2739, 2723, 2722, + 2735, 2734, 2719, 2732, 2722, 2717, 2716, 2711, 2715, 2708, + 2717, 2706, 2705, 0, 2706, 2709, 2709, 2706, 2711, 2700, + 2704, 2700, 2711, 2696, 2692, 2688, 2691, 736, 2698, 2706, + 2690, 2692, 2692, 2699, 2702, 646, 2694, 2686, 2718, 2693, + 2692, 2674, 2670, 2675, 2691, 0, 2687, 2678, 2671, 2679, + 2669, 2674, 2678, 2671, 2678, 388, 2671, 2658, 2658, 2670, + 0, 2655, 2666, 3337, 2651, 2652, 2661, 2664, 2645, 2658, + 2657, 2641, 2640, 2653, 2652, 2637, 693, 696, 2641, 2635, + 2634, 2647, 2637, 2627, 2625, 2638, 3337, 2629, 2628, 668, + + 2625, 703, 2634, 2624, 2609, 2627, 2629, 2625, 2624, 2611, + 2622, 2611, 2611, 763, 2619, 2605, 2618, 0, 0, 790, + 696, 670, 817, 0, 0, 2604, 2614, 666, 2597, 2604, + 2595, 2601, 2609, 2594, 2595, 2588, 3337, 2608, 2602, 2600, + 2597, 2596, 2586, 2597, 2584, 2577, 2579, 680, 0, 2577, + 2579, 2572, 2585, 2585, 2572, 2584, 2561, 2580, 864, 2577, + 2576, 2579, 718, 2559, 2563, 2557, 2556, 2569, 2559, 2553, + 2552, 2565, 721, 2564, 2559, 2546, 2556, 2544, 2540, 2539, + 2543, 2551, 2550, 725, 739, 2538, 2542, 2537, 2530, 2532, + 2542, 2531, 2541, 2541, 2536, 2521, 891, 718, 686, 918, + + 0, 752, 2534, 2532, 729, 714, 741, 2521, 684, 2531, + 2522, 2520, 2520, 610, 2516, 758, 2525, 2523, 2516, 2510, + 2512, 2513, 2514, 2507, 2511, 2492, 2514, 0, 2496, 2490, + 2493, 2504, 2502, 2480, 2487, 2487, 2481, 2486, 2487, 2486, + 2481, 2468, 2482, 2485, 2466, 2466, 2471, 2474, 0, 2467, + 965, 753, 766, 992, 0, 784, 795, 2469, 811, 808, + 2466, 2469, 2457, 2467, 2455, 2452, 2452, 2447, 2457, 2455, + 2440, 2446, 2455, 820, 2442, 0, 2438, 2442, 2465, 2419, + 2422, 2416, 2419, 2428, 2427, 2424, 810, 768, 773, 2412, + 767, 2421, 2408, 2406, 2406, 641, 2402, 840, 827, 834, + + 1039, 2394, 759, 800, 843, 868, 2411, 0, 2407, 2388, + 2383, 2380, 2396, 2383, 0, 2384, 2379, 2365, 2385, 2373, + 2370, 2368, 0, 2358, 2388, 2349, 2343, 2345, 2349, 2353, + 2335, 0, 2339, 2335, 2338, 2317, 2325, 2325, 858, 841, + 844, 2309, 806, 2319, 2299, 2304, 2296, 851, 2288, 884, + 908, 914, 1066, 928, 911, 2289, 921, 0, 2281, 2275, + 2274, 2278, 2266, 2270, 2261, 2265, 2266, 2266, 2267, 0, + 3337, 0, 2247, 856, 2234, 0, 0, 565, 847, 894, + 942, 971, 987, 0, 925, 885, 1093, 0, 2236, 2238, + 2234, 2226, 2221, 2228, 2215, 2220, 2207, 2147, 2158, 2153, + + 0, 2146, 2146, 2134, 2132, 0, 3337, 2149, 2140, 2128, + 2139, 34, 236, 268, 336, 431, 475, 492, 523, 911, + 1002, 1015, 1019, 1046, 0, 939, 942, 1140, 0, 1071, + 0, 1082, 559, 1100, 567, 577, 614, 615, 643, 996, + 665, 674, 692, 730, 725, 0, 0, 3337, 762, 787, + 1103, 1109, 986, 945, 955, 796, 943, 821, 835, 848, + 857, 916, 864, 1118, 892, 912, 906, 951, 949, 941, + 949, 0, 944, 0, 0, 1000, 959, 983, 1004, 0, + 973, 0, 992, 995, 997, 1001, 1007, 996, 996, 0, + 997, 1024, 1023, 1022, 1162, 1166, 1084, 1049, 1055, 1031, + + 1081, 1043, 1026, 1046, 1048, 1082, 1047, 1187, 1064, 1190, + 3337, 3337, 1193, 3337, 1067, 1069, 1069, 1084, 1086, 1196, + 1251, 1087, 1092, 1086, 1103, 1082, 1108, 1096, 1097, 1199, + 1216, 1133, 1231, 1235, 1267, 1139, 3337, 0, 1107, 1099, + 1145, 0, 0, 1120, 0, 3337, 0, 1124, 3337, 0, + 0, 1122, 0, 1130, 1136, 1172, 1145, 1132, 0, 1144, + 1156, 1279, 1288, 1193, 1292, 1296, 1300, 1173, 3337, 3337, + 1174, 1174, 1167, 1174, 0, 0, 1207, 1209, 1357, 0, + 1192, 1174, 0, 1182, 1190, 1180, 1190, 1194, 1353, 1404, + 1204, 1205, 1217, 1235, 1209, 0, 1221, 1222, 1225, 0, + + 0, 1224, 3337, 1228, 1234, 1228, 1236, 1367, 1448, 1247, + 1246, 1258, 1266, 1246, 1268, 1261, 0, 1298, 1294, 1301, + 1274, 1289, 1286, 1270, 1283, 1285, 1295, 1287, 1380, 1292, + 0, 1292, 1308, 1298, 1492, 1519, 1384, 1332, 1335, 1546, + 0, 1310, 1312, 1325, 1328, 1324, 3337, 1322, 0, 1355, + 1325, 1342, 1330, 1593, 1620, 1432, 1364, 1377, 1647, 0, + 1342, 1347, 1361, 1365, 1439, 1360, 1375, 1407, 1468, 1482, + 1499, 1389, 3337, 1365, 0, 0, 1694, 0, 1513, 1438, + 1423, 1721, 0, 1441, 1428, 1431, 1372, 1426, 1393, 1389, + 1390, 1395, 1433, 1416, 1476, 1417, 1421, 1444, 1768, 1440, + + 1426, 3337, 1470, 0, 1806, 0, 1526, 1472, 1482, 1833, + 0, 1536, 1495, 1526, 1446, 1472, 1466, 1466, 1482, 1490, + 1521, 1492, 1562, 1489, 1497, 1521, 1880, 1570, 3337, 1511, + 0, 1517, 1518, 1543, 1537, 1596, 0, 1586, 1567, 1573, + 1522, 1573, 1541, 1535, 1549, 1551, 1578, 1567, 1614, 1597, + 1627, 1636, 1663, 1571, 1918, 1945, 1642, 1626, 1609, 1972, + 0, 1572, 0, 3337, 0, 1640, 1636, 1642, 1588, 1628, + 1613, 1607, 1625, 1629, 1639, 1628, 1672, 1674, 1710, 1715, + 1725, 1629, 2019, 2046, 1731, 1715, 1677, 2073, 0, 0, + 1640, 1635, 1665, 1668, 1737, 1696, 1704, 1740, 1743, 1784, + + 2120, 0, 1788, 1733, 1742, 2147, 0, 1762, 1745, 1758, + 1656, 1760, 1669, 1684, 1708, 1723, 1748, 1723, 1796, 2195, + 1787, 1809, 1812, 1837, 2253, 0, 1856, 1827, 1789, 2280, + 0, 1836, 1808, 1812, 1749, 1814, 1767, 1764, 1776, 1789, + 1812, 1787, 1860, 1805, 1809, 1837, 2327, 1866, 1886, 0, + 1888, 1854, 1857, 1832, 1858, 1852, 1845, 1850, 1857, 1874, + 1861, 1907, 1896, 1913, 1922, 1939, 0, 0, 1935, 0, + 1935, 1928, 1937, 1882, 1898, 1895, 1903, 1915, 1921, 1933, + 1922, 1966, 1967, 1988, 1996, 2025, 1924, 2365, 2392, 1999, + 1978, 1992, 2419, 0, 2049, 1996, 2067, 2082, 2096, 2078, + + 1999, 2099, 2107, 2125, 2466, 0, 2258, 2077, 2002, 2493, + 0, 2126, 2009, 2023, 1934, 2023, 1952, 1943, 1967, 1990, + 2010, 1992, 2269, 2540, 2276, 2581, 2290, 0, 2129, 2056, + 2062, 1997, 2054, 2011, 2002, 2023, 2026, 2081, 2050, 2287, + 2100, 2304, 2333, 2347, 2622, 2355, 2663, 2368, 2136, 2361, + 2381, 2398, 2704, 2761, 2429, 2818, 2442, 2471, 2875, 2272, + 3337, 2933, 2945, 2957, 2969, 2981, 2993, 3005, 3017, 3029, + 3041, 3053, 3065, 3077, 3089, 3101, 3113, 3125, 3137, 3147, + 3157, 3166, 3174, 3183, 3185, 2096, 2105, 3193, 3203, 3213, + 3225, 3237, 3244, 3246, 3254, 2111, 2123, 2125, 2139, 2147, + + 2148, 2150, 3266, 2151, 2152, 2153, 2158, 2161, 2162, 2163, + 2164, 2165, 3278, 2166, 2167 } ; -static yyconst flex_int16_t yy_def[1116] = +static yyconst flex_int16_t yy_def[1416] = { 0, - 1067, 1067, 1068, 1068, 1069, 1069, 1070, 1070, 1071, 1071, - 1072, 1072, 1066, 13, 1066, 15, 1066, 17, 1073, 1073, - 1066, 21, 1074, 1074, 1075, 1075, 1076, 1076, 1077, 1077, - 1078, 1078, 1079, 1079, 1080, 1080, 1081, 1081, 1067, 1067, - 1082, 1082, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1083, 1066, 1066, 1066, 1084, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1085, 1066, 1086, 1066, 1066, 1066, - 1066, 1066, 1066, 1087, 1088, 1089, 1066, 1066, 1066, 1066, - 1090, 1066, 1066, 1066, 1066, 1066, 1066, 1091, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1092, 1066, 1066, 1066, 1066, - - 1066, 1066, 1093, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1094, 1094, 1066, 1066, 1095, 1066, 1066, 1066, 1083, 1084, - 1066, 1066, 1066, 1085, 1066, 1096, 1086, 1066, 1066, 1066, - 1097, 1097, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 1087, 1087, 1088, 1089, - 1066, 1066, 1090, 1066, 1066, 1066, 1066, 1091, 1066, 1066, - 1092, 1093, 1094, 1066, 1095, 1096, 1097, 1097, 1066, 1066, - 1066, 1098, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1066, 1066, 1066, 1066, 1066, 1066, 1098, 1066, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1066, 1066, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1066, 1066, 1066, 1066, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1066, 1066, 1066, 1066, 1099, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1066, 1066, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1066, 1066, 1066, 1066, 1100, - 1097, 1097, 336, 393, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1099, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1066, 1066, 1066, 1066, 1101, 1097, 1066, - 1066, 1066, 1097, 1097, 1066, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 389, 456, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1100, 1066, 1066, 1066, - 1097, 393, 1066, 1066, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - - 1097, 437, 502, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1101, 1066, 1066, 1066, 1066, 1066, 1066, 1097, - 1097, 1066, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 456, 1066, 1066, 1100, 1100, 470, 1066, 1066, 1066, 1102, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 502, 1066, 1066, - 1101, 1101, 516, 1066, 1066, 1066, 1103, 1066, 1066, 1066, - 1097, 1097, 1066, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1100, 1100, 539, 593, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1102, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1066, 1066, - 1101, 1101, 576, 633, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1103, 1066, 1066, 1066, 1066, 1066, 1097, - 1066, 1066, 1066, 1097, 1097, 1097, 1097, 1066, 1066, 1100, - 1100, 593, 1066, 1066, 1102, 665, 1066, 1097, 1097, 1097, - 1097, 1097, 1066, 1097, 1097, 1066, 1097, 1097, 1097, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 1101, 1101, 633, 1066, - 1066, 1103, 692, 1066, 1066, 1097, 652, 1066, 1066, 1066, - - 1104, 1066, 1097, 1097, 1097, 1097, 1066, 1066, 1100, 1100, - 1066, 1066, 665, 665, 1097, 1097, 1097, 1097, 1097, 1066, - 1097, 1097, 1066, 1066, 1101, 1101, 1066, 1066, 692, 692, - 1066, 700, 732, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1104, 1066, 1097, 1097, 1097, 1066, 1066, 710, - 749, 1066, 1066, 1066, 1105, 1066, 1066, 665, 665, 1097, - 1097, 1097, 1097, 1097, 1066, 1066, 726, 766, 1066, 1066, - 1066, 1106, 1066, 1066, 692, 692, 1066, 732, 1066, 1066, - 1104, 781, 1066, 1066, 1097, 1097, 1066, 749, 787, 1066, - 1066, 1066, 1107, 754, 794, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1066, 1105, 1066, 1066, 665, 665, 1097, - 1097, 1097, 1066, 1066, 766, 814, 1066, 1066, 1066, 1108, - 771, 821, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1106, 1066, 1066, 692, 692, 1066, 1066, 1066, 1066, - 781, 781, 1066, 787, 792, 845, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1107, 794, 1066, 1066, 1105, - 1066, 1066, 809, 862, 1066, 1066, 1066, 1109, 1097, 1097, - 1066, 814, 819, 873, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1108, 821, 1066, 1066, 1106, 1066, 1066, - 836, 890, 1066, 1066, 1066, 1110, 1066, 1066, 781, 781, - - 1066, 1066, 845, 1066, 1066, 1105, 1066, 862, 907, 1066, - 1066, 1066, 1111, 867, 914, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1109, 1066, 873, 1066, 1066, 1106, - 1066, 890, 931, 1066, 1066, 1066, 1112, 895, 938, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1110, 1066, - 1066, 781, 781, 1105, 907, 912, 956, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1111, 914, 1066, 1066, - 1109, 1113, 926, 1106, 931, 936, 976, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1112, 938, 1066, 1066, - 1110, 1066, 1066, 953, 993, 1066, 1066, 1066, 1114, 1105, - - 956, 1066, 1066, 1109, 1106, 976, 1066, 1066, 1110, 1066, - 993, 1010, 1066, 1066, 1066, 1115, 998, 1017, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1114, 1105, 1109, - 1106, 1110, 1010, 1015, 1034, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1115, 1017, 1066, 1066, 1114, 1066, - 1109, 1066, 1110, 1034, 1066, 1066, 1114, 1109, 1110, 1114, - 907, 931, 1114, 1114, 1012, 0, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066 + 1362, 1362, 1363, 1363, 1364, 1364, 1365, 1365, 1366, 1366, + 1367, 1367, 1361, 13, 1361, 15, 1361, 17, 1368, 1368, + 1361, 21, 1369, 1369, 1370, 1370, 1371, 1371, 1372, 1372, + 1373, 1373, 1374, 1374, 1375, 1375, 1376, 1376, 1377, 1377, + 1362, 1362, 1378, 1378, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1379, 1361, 1361, 1361, 1380, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1381, 1361, 1361, 1361, 1361, 1382, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1383, + 1384, 1385, 1361, 1361, 1361, 1361, 1386, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1387, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1388, 1361, 1361, 1389, 1361, 1361, + 1361, 1361, 1361, 1361, 1390, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1391, 1391, 1361, 1361, 1392, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1379, 1361, 1380, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1381, 1361, 1361, 1361, 1361, 1393, 1382, + 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1361, 1361, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1383, 1383, 1384, 1385, 1361, 1361, + 1386, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1387, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1388, 1361, 1389, 1361, 1361, + 1390, 1391, 1361, 1392, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1393, 1394, 1394, 1361, 1361, 1361, + 1395, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1395, 1361, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1361, 1396, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1361, + + 1397, 1394, 1394, 1394, 523, 605, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1396, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1361, 1361, 1361, 1361, 1398, 1394, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1394, 1394, + 1394, 1394, 1394, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 600, 687, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1397, 1361, 1361, + + 1361, 1394, 1394, 605, 1361, 1361, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 654, 739, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1398, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1399, 1361, 1361, + 1361, 1361, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 687, 1361, + 1361, 1397, 1397, 701, 1361, 1361, 1361, 1400, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + + 1394, 1394, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 739, + 1361, 1361, 1398, 1398, 753, 1361, 1361, 1361, 1401, 1361, + 1402, 1361, 1399, 1361, 1361, 1394, 1394, 1394, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1394, 1403, 1361, 1361, 1361, + 1397, 1397, 787, 853, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1400, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, + 1394, 1394, 1361, 1361, 1398, 1398, 828, 897, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1401, 1402, 1361, + 1361, 1361, 1361, 1361, 1361, 1394, 1394, 1394, 1394, 1361, + 1361, 1361, 1394, 1394, 1394, 1394, 1403, 1361, 1361, 1397, + 1397, 853, 1361, 1361, 1400, 935, 1361, 1394, 1394, 1394, + 1361, 1394, 1394, 1394, 1394, 1361, 1394, 1394, 1361, 1394, + 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1394, 1361, + 1361, 1398, 1398, 897, 1361, 1361, 1401, 967, 1361, 1361, + 1361, 1394, 1394, 1394, 1394, 921, 1361, 1361, 1361, 1404, + 1361, 1394, 1394, 1394, 1394, 1361, 1361, 1361, 1397, 1397, + 1361, 1361, 935, 935, 1394, 1394, 1361, 1394, 1394, 1394, + + 1394, 1394, 1361, 1394, 1394, 1361, 1361, 1398, 1398, 1361, + 1361, 967, 967, 1361, 1394, 1394, 1394, 979, 1018, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1404, 1361, + 1394, 1394, 1394, 1361, 1361, 990, 1035, 1361, 1361, 1361, + 1405, 1361, 1361, 935, 935, 1394, 1361, 1394, 1394, 1394, + 1394, 1394, 1361, 1361, 1009, 1054, 1361, 1361, 1361, 1406, + 1361, 1361, 967, 967, 1361, 1394, 1394, 1018, 1361, 1361, + 1404, 1071, 1361, 1361, 1394, 1394, 1361, 1035, 1077, 1361, + 1361, 1361, 1407, 1040, 1084, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1405, 1361, 1361, 935, 935, 1394, + + 1394, 1361, 1394, 1394, 1361, 1054, 1105, 1361, 1361, 1361, + 1408, 1059, 1112, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1406, 1361, 1361, 967, 967, 1361, 1361, 1394, + 1394, 1361, 1361, 1071, 1071, 1361, 1077, 1082, 1138, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1407, 1084, + 1361, 1361, 1405, 1361, 1361, 1099, 1155, 1361, 1361, 1361, + 1409, 1394, 1394, 1361, 1105, 1110, 1166, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1408, 1112, 1361, 1361, + 1406, 1361, 1361, 1127, 1183, 1361, 1361, 1361, 1410, 1394, + 1361, 1361, 1071, 1071, 1361, 1361, 1138, 1361, 1361, 1405, + + 1361, 1155, 1201, 1361, 1361, 1361, 1411, 1160, 1208, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1409, 1361, + 1166, 1361, 1361, 1406, 1361, 1183, 1225, 1361, 1361, 1361, + 1412, 1188, 1232, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1410, 1361, 1361, 1071, 1071, 1361, 1405, 1201, + 1206, 1251, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1411, 1208, 1361, 1361, 1409, 1413, 1220, 1406, 1225, + 1230, 1271, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1412, 1232, 1361, 1361, 1410, 1361, 1361, 1247, 1288, + 1361, 1361, 1361, 1414, 1405, 1251, 1361, 1361, 1409, 1406, + + 1271, 1361, 1361, 1410, 1361, 1288, 1305, 1361, 1361, 1361, + 1415, 1293, 1312, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1414, 1405, 1409, 1406, 1410, 1305, 1310, 1329, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1415, + 1312, 1361, 1361, 1414, 1361, 1409, 1361, 1410, 1329, 1361, + 1361, 1414, 1409, 1410, 1414, 1361, 1225, 1414, 1414, 1307, + 0, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361 } ; -static yyconst flex_uint16_t yy_nxt[2970] = +static yyconst flex_uint16_t yy_nxt[3397] = { 0, - 1066, 1066, 46, 46, 49, 49, 84, 50, 50, 52, - 53, 52, 52, 53, 52, 56, 57, 56, 59, 59, - 52, 60, 60, 52, 56, 57, 56, 84, 91, 85, - 987, 91, 94, 94, 44, 44, 125, 125, 112, 125, - 125, 61, 61, 178, 112, 178, 1028, 263, 188, 264, - 85, 92, 47, 47, 92, 95, 95, 189, 110, 110, - 52, 113, 54, 52, 210, 54, 56, 113, 56, 116, - 116, 117, 117, 393, 393, 56, 211, 56, 62, 62, - 62, 62, 63, 64, 65, 62, 62, 62, 62, 62, - 62, 62, 62, 66, 66, 62, 62, 67, 67, 67, - - 67, 67, 62, 68, 62, 62, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 69, 69, 69, 70, 71, 72, 73, 72, 71, 71, - 71, 74, 71, 71, 71, 71, 71, 74, 71, 75, - 75, 74, 75, 75, 75, 75, 75, 75, 71, 76, - 71, 74, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 77, 71, 71, 71, - 78, 79, 80, 79, 78, 78, 78, 78, 78, 78, - - 78, 78, 78, 78, 78, 78, 78, 78, 78, 81, - 81, 81, 81, 81, 78, 78, 78, 78, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 82, 78, 78, 78, 86, 86, 87, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 88, 88, 88, 88, 88, - 86, 86, 86, 86, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 86, 86, - - 89, 86, 97, 98, 97, 97, 98, 97, 181, 44, - 44, 250, 178, 44, 44, 183, 178, 158, 155, 186, - 155, 184, 182, 158, 187, 185, 251, 158, 191, 200, - 1045, 100, 100, 201, 158, 106, 106, 158, 229, 192, - 158, 231, 202, 230, 158, 257, 232, 604, 240, 714, - 258, 456, 456, 97, 158, 97, 97, 241, 97, 101, - 101, 102, 102, 107, 107, 108, 108, 128, 128, 156, - 129, 128, 128, 128, 128, 130, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 131, 132, 131, 131, 133, - 134, 135, 136, 128, 128, 137, 138, 139, 140, 141, - - 142, 131, 143, 144, 145, 146, 131, 147, 148, 149, - 150, 151, 152, 153, 154, 131, 131, 131, 131, 128, - 128, 128, 128, 161, 161, 161, 161, 161, 161, 164, - 164, 164, 179, 180, 179, 179, 180, 179, 604, 179, - 180, 179, 1066, 1066, 179, 180, 179, 252, 759, 179, - 180, 179, 203, 204, 205, 178, 206, 155, 253, 155, - 161, 161, 161, 164, 164, 164, 967, 165, 178, 541, - 207, 196, 233, 234, 162, 166, 542, 162, 194, 197, - 178, 164, 164, 164, 235, 180, 472, 472, 180, 216, - 217, 216, 180, 179, 180, 179, 243, 180, 216, 217, - - 216, 165, 180, 244, 266, 301, 267, 245, 156, 166, - 307, 162, 268, 302, 284, 361, 285, 289, 290, 165, - 303, 949, 286, 308, 314, 314, 314, 166, 287, 362, - 344, 314, 314, 314, 291, 371, 371, 371, 335, 336, - 336, 425, 217, 345, 346, 426, 180, 375, 375, 375, - 644, 217, 730, 371, 371, 371, 502, 502, 427, 375, - 375, 375, 445, 445, 445, 388, 389, 389, 1066, 1066, - 468, 468, 468, 531, 531, 315, 333, 333, 333, 469, - 473, 372, 315, 1066, 393, 393, 334, 473, 334, 335, - 336, 336, 446, 472, 472, 473, 473, 532, 376, 372, - - 337, 386, 386, 386, 474, 474, 474, 436, 437, 437, - 376, 387, 532, 387, 388, 389, 389, 445, 445, 445, - 532, 470, 514, 514, 514, 390, 333, 333, 333, 532, - 925, 515, 1066, 456, 456, 743, 334, 842, 334, 335, - 336, 336, 468, 468, 468, 1066, 1066, 446, 568, 568, - 337, 394, 394, 394, 569, 468, 468, 468, 531, 531, - 533, 533, 533, 569, 395, 336, 336, 474, 474, 474, - 474, 474, 474, 516, 1066, 502, 502, 586, 884, 396, - 397, 398, 399, 856, 569, 663, 400, 593, 593, 401, - 832, 587, 402, 470, 403, 434, 434, 434, 534, 569, - - 663, 535, 570, 570, 570, 435, 470, 435, 436, 437, - 437, 514, 514, 514, 514, 514, 514, 568, 568, 438, - 386, 386, 386, 533, 533, 533, 538, 539, 539, 805, - 387, 743, 387, 388, 389, 389, 575, 576, 576, 663, - 571, 633, 633, 572, 390, 457, 457, 457, 663, 651, - 651, 651, 1066, 1066, 533, 533, 533, 644, 458, 389, - 389, 589, 516, 604, 590, 516, 645, 645, 645, 513, - 533, 533, 533, 459, 460, 461, 462, 647, 647, 647, - 463, 662, 662, 464, 1066, 1066, 465, 467, 466, 434, - 434, 434, 589, 689, 689, 590, 533, 533, 533, 435, - - 652, 435, 436, 437, 437, 591, 662, 662, 534, 690, - 404, 535, 168, 438, 503, 503, 503, 690, 690, 646, - 1066, 593, 593, 570, 570, 570, 163, 504, 437, 437, - 648, 644, 690, 592, 534, 689, 689, 535, 570, 570, - 570, 776, 505, 506, 507, 508, 1066, 633, 633, 509, - 732, 732, 510, 1066, 1066, 511, 1055, 512, 536, 536, - 536, 629, 778, 778, 630, 570, 570, 570, 537, 1055, - 537, 538, 539, 539, 604, 1055, 629, 644, 758, 630, - 1055, 775, 540, 573, 573, 573, 779, 570, 570, 570, - 651, 651, 651, 574, 604, 574, 575, 576, 576, 1055, - - 631, 779, 809, 571, 794, 794, 572, 577, 594, 594, - 594, 645, 645, 645, 699, 700, 700, 533, 533, 533, - 779, 595, 539, 539, 632, 571, 821, 821, 572, 779, - 533, 533, 533, 1066, 732, 732, 596, 597, 598, 599, - 604, 652, 1055, 600, 778, 778, 601, 644, 858, 602, - 808, 603, 634, 634, 634, 534, 660, 835, 535, 664, - 664, 664, 644, 858, 646, 635, 576, 576, 534, 1047, - 836, 535, 570, 570, 570, 661, 570, 570, 570, 886, - 636, 637, 638, 639, 691, 691, 691, 640, 845, 845, - 641, 1066, 1066, 642, 886, 643, 1047, 665, 857, 857, - - 666, 647, 647, 647, 533, 533, 533, 753, 754, 754, - 571, 687, 667, 572, 571, 858, 1047, 572, 770, 771, - 771, 688, 692, 886, 858, 693, 791, 792, 792, 1066, - 794, 794, 886, 533, 533, 533, 604, 694, 1047, 664, - 664, 664, 534, 743, 863, 535, 664, 664, 664, 709, - 664, 664, 664, 900, 648, 697, 697, 697, 644, 570, - 570, 570, 818, 819, 819, 698, 891, 698, 699, 700, - 700, 534, 873, 873, 535, 1047, 710, 711, 1047, 701, - 712, 570, 570, 570, 711, 713, 743, 712, 665, 1066, - 1066, 666, 667, 691, 691, 691, 952, 571, 904, 667, - - 572, 885, 885, 667, 725, 743, 691, 691, 691, 899, - 691, 691, 691, 904, 533, 533, 533, 1066, 1066, 571, - 903, 903, 572, 904, 726, 857, 857, 837, 837, 837, - 1010, 727, 904, 1007, 728, 780, 780, 780, 1066, 821, - 821, 1066, 845, 845, 727, 729, 694, 728, 692, 914, - 914, 693, 534, 1066, 1066, 535, 1007, 750, 928, 694, - 570, 570, 570, 694, 733, 733, 733, 928, 859, 859, - 859, 927, 927, 781, 885, 885, 782, 734, 700, 700, - 838, 887, 887, 887, 837, 837, 837, 1007, 783, 751, - 751, 751, 735, 736, 737, 738, 938, 938, 571, 739, - - 1007, 572, 740, 767, 1007, 741, 860, 742, 751, 751, - 751, 905, 905, 905, 928, 768, 768, 768, 752, 888, - 752, 753, 754, 754, 901, 901, 901, 589, 1007, 928, - 590, 1002, 755, 743, 780, 780, 780, 838, 789, 789, - 789, 953, 780, 780, 780, 1002, 534, 903, 903, 535, - 768, 768, 768, 629, 956, 956, 630, 866, 867, 867, - 769, 1002, 769, 770, 771, 771, 1066, 873, 873, 929, - 929, 929, 839, 1002, 772, 840, 589, 902, 1002, 590, - 839, 1066, 1066, 840, 816, 816, 816, 783, 571, 968, - 968, 572, 788, 788, 788, 783, 927, 927, 780, 780, - - 780, 1002, 752, 993, 752, 753, 754, 754, 859, 859, - 859, 859, 859, 859, 969, 989, 755, 789, 789, 789, - 969, 992, 629, 969, 989, 630, 743, 790, 989, 790, - 791, 792, 792, 841, 994, 969, 781, 976, 976, 782, - 989, 793, 795, 795, 795, 989, 589, 1066, 1066, 589, - 989, 783, 864, 864, 864, 796, 754, 754, 989, 859, - 859, 859, 988, 988, 887, 887, 887, 894, 895, 895, - 797, 798, 799, 800, 901, 901, 901, 801, 1066, 1066, - 802, 1001, 1001, 803, 989, 804, 815, 815, 815, 989, - 711, 968, 968, 712, 906, 969, 769, 860, 769, 770, - - 771, 771, 629, 969, 989, 667, 887, 887, 887, 969, - 772, 816, 816, 816, 905, 905, 905, 887, 887, 887, - 969, 817, 969, 817, 818, 819, 819, 902, 905, 905, - 905, 892, 892, 892, 1002, 820, 822, 822, 822, 911, - 912, 912, 1002, 1002, 629, 909, 909, 909, 969, 823, - 771, 771, 930, 1066, 1066, 888, 951, 1002, 859, 859, - 859, 1066, 914, 914, 824, 825, 826, 827, 950, 727, - 1007, 828, 728, 931, 829, 1006, 1006, 830, 928, 831, - 844, 844, 844, 711, 694, 1007, 712, 929, 929, 929, - 790, 928, 790, 791, 792, 792, 860, 954, 667, 970, - - 970, 970, 988, 988, 793, 846, 846, 846, 929, 929, - 929, 935, 936, 936, 928, 887, 887, 887, 847, 792, - 792, 1066, 938, 938, 1066, 956, 956, 933, 933, 933, - 1003, 1003, 1003, 848, 849, 850, 851, 971, 1007, 928, - 852, 1017, 1017, 853, 1001, 1001, 854, 1007, 855, 864, - 864, 864, 667, 888, 974, 990, 990, 990, 928, 865, - 928, 865, 866, 867, 867, 727, 1006, 1006, 728, 859, - 859, 859, 926, 868, 907, 970, 970, 970, 1034, 1034, - 694, 1066, 1066, 667, 604, 872, 872, 872, 904, 970, - 970, 970, 904, 991, 904, 817, 904, 817, 818, 819, - - 819, 1066, 976, 976, 1008, 1008, 1008, 860, 694, 820, - 874, 874, 874, 711, 1000, 997, 998, 998, 1046, 1046, - 887, 887, 887, 875, 819, 819, 904, 711, 667, 1047, - 1003, 1003, 1003, 904, 1047, 970, 970, 970, 876, 877, - 878, 879, 667, 1047, 1047, 880, 1066, 1066, 881, 1054, - 1054, 882, 898, 883, 892, 892, 892, 694, 888, 990, - 990, 990, 1055, 897, 893, 1005, 893, 894, 895, 895, - 1004, 1055, 1055, 971, 1014, 1015, 1015, 890, 896, 889, - 990, 990, 990, 667, 990, 990, 990, 1055, 667, 644, - 908, 908, 908, 995, 995, 995, 886, 727, 1046, 1046, - - 865, 886, 865, 866, 867, 867, 859, 859, 859, 1003, - 1003, 1003, 694, 886, 868, 909, 909, 909, 727, 1009, - 1054, 1054, 991, 886, 886, 910, 886, 910, 911, 912, - 912, 839, 871, 694, 840, 870, 869, 694, 862, 913, - 915, 915, 915, 861, 860, 858, 783, 858, 858, 1029, - 970, 970, 970, 916, 867, 867, 858, 887, 887, 887, - 858, 858, 667, 1008, 1008, 1008, 843, 834, 917, 918, - 919, 920, 1008, 1008, 1008, 921, 833, 814, 922, 813, - 812, 923, 811, 924, 932, 932, 932, 810, 971, 1030, - 990, 990, 990, 807, 893, 888, 893, 894, 895, 895, - - 1031, 806, 787, 667, 1012, 1012, 1012, 786, 896, 933, - 933, 933, 1066, 1017, 1017, 785, 694, 784, 779, 934, - 779, 934, 935, 936, 936, 694, 779, 779, 991, 1032, - 1048, 1048, 1048, 937, 939, 939, 939, 1066, 1034, 1034, - 779, 779, 839, 694, 777, 840, 774, 940, 895, 895, - 773, 766, 765, 1056, 1056, 1056, 764, 783, 1048, 1048, - 1048, 763, 941, 942, 943, 944, 762, 761, 1049, 945, - 760, 757, 946, 756, 749, 947, 748, 948, 955, 955, - 955, 747, 746, 783, 970, 970, 970, 745, 910, 744, - 910, 911, 912, 912, 731, 724, 839, 723, 1065, 1065, - - 1065, 722, 913, 957, 957, 957, 783, 721, 720, 719, - 718, 783, 717, 716, 715, 708, 958, 912, 912, 707, - 706, 705, 971, 704, 703, 702, 696, 695, 690, 1051, - 690, 959, 960, 961, 962, 690, 690, 667, 963, 1066, - 690, 964, 690, 686, 965, 685, 966, 972, 972, 972, - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 972, 972, 972, 972, 972, 973, 973, 973, 973, 973, - 973, 972, 972, 972, 972, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, 973, 973, - 973, 973, 973, 973, 973, 973, 973, 973, 973, 684, - - 972, 972, 972, 975, 975, 975, 683, 990, 990, 990, - 682, 681, 680, 934, 679, 934, 935, 936, 936, 678, - 677, 676, 675, 1048, 1048, 1048, 674, 937, 977, 977, - 977, 673, 672, 671, 670, 669, 668, 970, 970, 970, - 663, 978, 936, 936, 663, 991, 663, 663, 1056, 1056, - 1056, 663, 1053, 1048, 1048, 1048, 979, 980, 981, 982, - 694, 839, 663, 983, 659, 658, 984, 657, 656, 985, - 655, 986, 995, 995, 995, 971, 783, 1056, 1056, 1056, - 1058, 654, 996, 653, 996, 997, 998, 998, 1057, 650, - 667, 1049, 649, 628, 627, 626, 999, 625, 990, 990, - - 990, 783, 1061, 1061, 1061, 624, 783, 743, 1011, 1011, - 1011, 1048, 1048, 1048, 1062, 1062, 1062, 623, 996, 622, - 996, 997, 998, 998, 1048, 1048, 1048, 1048, 1048, 1048, - 783, 621, 999, 1012, 1012, 1012, 991, 620, 619, 618, - 711, 1059, 617, 1013, 616, 1013, 1014, 1015, 1015, 1049, - 1060, 694, 727, 615, 614, 667, 613, 1016, 1018, 1018, - 1018, 612, 1049, 611, 783, 1049, 610, 694, 609, 1063, - 1064, 1019, 998, 998, 608, 607, 606, 783, 605, 588, - 783, 585, 584, 583, 582, 581, 1020, 1021, 1022, 1023, - 580, 579, 578, 1024, 569, 569, 1025, 569, 569, 1026, - - 569, 1027, 1033, 1033, 1033, 569, 567, 566, 565, 564, - 563, 562, 1013, 561, 1013, 1014, 1015, 1015, 560, 559, - 558, 557, 556, 555, 554, 553, 1016, 1035, 1035, 1035, - 552, 551, 550, 549, 548, 547, 546, 545, 544, 543, - 1036, 1015, 1015, 532, 532, 532, 532, 532, 532, 530, - 529, 528, 527, 526, 525, 1037, 1038, 1039, 1040, 524, - 523, 522, 1041, 521, 520, 1042, 519, 518, 1043, 517, - 1044, 1050, 1050, 1050, 501, 500, 499, 498, 497, 496, - 495, 790, 494, 790, 791, 792, 792, 493, 492, 491, - 490, 489, 488, 487, 486, 793, 485, 484, 483, 482, - - 481, 480, 479, 478, 477, 476, 475, 473, 473, 860, - 1052, 1052, 1052, 473, 473, 473, 473, 471, 455, 454, - 817, 453, 817, 818, 819, 819, 452, 451, 450, 449, - 448, 447, 444, 443, 820, 442, 441, 440, 439, 433, - 432, 431, 430, 429, 428, 424, 423, 422, 888, 1050, - 1050, 1050, 421, 420, 419, 418, 417, 416, 415, 790, - 414, 790, 791, 792, 792, 413, 412, 411, 410, 409, - 408, 407, 406, 793, 405, 392, 391, 385, 384, 383, - 382, 381, 380, 379, 378, 377, 374, 589, 1052, 1052, - 1052, 373, 370, 369, 368, 367, 366, 365, 817, 364, - - 817, 818, 819, 819, 363, 360, 359, 358, 357, 356, - 355, 354, 820, 353, 352, 351, 350, 349, 348, 347, - 343, 342, 341, 340, 339, 338, 629, 1061, 1061, 1061, - 332, 331, 330, 329, 328, 327, 326, 910, 325, 910, - 911, 912, 912, 324, 323, 322, 321, 320, 319, 318, - 317, 913, 316, 313, 312, 311, 310, 309, 306, 305, - 304, 300, 299, 298, 297, 971, 296, 295, 294, 293, - 292, 288, 283, 282, 281, 280, 279, 278, 277, 276, - 667, 1062, 1062, 1062, 275, 274, 273, 272, 271, 270, - 269, 934, 265, 934, 935, 936, 936, 219, 262, 261, - - 260, 259, 256, 255, 254, 937, 249, 248, 247, 246, - 242, 239, 238, 237, 236, 228, 227, 226, 225, 991, - 224, 223, 222, 221, 220, 219, 182, 1066, 215, 214, - 213, 212, 156, 209, 694, 1065, 1065, 1065, 208, 199, - 198, 195, 193, 190, 126, 1013, 126, 1013, 1014, 1015, - 1015, 174, 170, 169, 167, 156, 126, 123, 122, 1016, - 121, 118, 1066, 114, 114, 104, 104, 1066, 1066, 1066, - 1066, 1066, 1066, 1049, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 783, 44, - 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, - - 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 55, 58, - 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 83, 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 96, 96, 96, - - 96, 96, 96, 96, 96, 96, 96, 96, 96, 99, - 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, - 99, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 109, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 111, 115, - 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, 119, 1066, 1066, 119, 1066, 119, 119, 119, 119, - 119, 120, 1066, 1066, 120, 120, 120, 120, 120, 120, - - 120, 124, 124, 1066, 124, 124, 124, 124, 124, 124, - 124, 124, 124, 127, 1066, 1066, 1066, 127, 157, 1066, - 1066, 157, 157, 157, 157, 157, 157, 157, 1066, 157, - 159, 1066, 159, 159, 159, 160, 160, 171, 1066, 1066, - 171, 171, 171, 171, 171, 171, 171, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 1066, 172, 172, 173, - 173, 173, 173, 173, 173, 173, 173, 1066, 173, 173, - 173, 175, 175, 175, 175, 175, 175, 175, 175, 175, - 175, 176, 1066, 1066, 1066, 176, 177, 177, 218, 218, - 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, - - 972, 972, 972, 972, 972, 972, 972, 972, 972, 972, - 1066, 972, 43, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066 + 1361, 1361, 48, 48, 51, 1361, 1361, 52, 51, 1361, + 1361, 52, 61, 62, 61, 57, 58, 57, 108, 53, + 53, 53, 46, 53, 53, 53, 57, 108, 46, 54, + 57, 58, 57, 54, 61, 62, 61, 168, 168, 46, + 273, 57, 64, 109, 274, 65, 122, 64, 134, 55, + 65, 134, 109, 55, 132, 49, 49, 66, 66, 66, + 168, 168, 66, 66, 66, 132, 61, 67, 61, 57, + 305, 59, 67, 135, 252, 123, 135, 124, 138, 138, + 139, 139, 885, 306, 57, 253, 59, 68, 61, 267, + 61, 267, 68, 69, 70, 71, 72, 73, 74, 75, + + 76, 69, 69, 69, 69, 77, 78, 69, 79, 79, + 69, 69, 69, 69, 80, 80, 80, 80, 80, 69, + 81, 69, 82, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 83, 84, + 85, 86, 87, 88, 89, 88, 87, 87, 87, 90, + 87, 87, 87, 87, 87, 90, 87, 91, 91, 87, + 90, 87, 91, 91, 91, 91, 91, 91, 87, 92, + 87, 90, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + + 91, 91, 91, 91, 91, 91, 91, 93, 87, 87, + 87, 94, 95, 96, 95, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, + 94, 94, 97, 97, 97, 97, 97, 94, 94, 94, + 94, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 98, 94, 94, 94, + 100, 152, 141, 100, 142, 270, 143, 144, 145, 245, + 246, 245, 260, 146, 886, 101, 101, 101, 101, 101, + 101, 271, 278, 261, 206, 102, 333, 283, 102, 281, + + 206, 279, 153, 284, 154, 206, 155, 156, 157, 334, + 282, 275, 276, 158, 887, 103, 206, 277, 103, 104, + 104, 46, 104, 104, 104, 104, 104, 104, 104, 104, + 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, + 105, 105, 105, 105, 105, 104, 104, 104, 104, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, + 105, 105, 105, 105, 104, 104, 106, 104, 111, 888, + 46, 111, 116, 117, 116, 116, 117, 116, 119, 120, + 119, 319, 46, 112, 112, 112, 112, 112, 112, 119, + + 120, 119, 320, 113, 122, 46, 113, 199, 358, 199, + 200, 201, 201, 359, 267, 337, 128, 272, 267, 228, + 289, 292, 553, 114, 290, 293, 114, 302, 338, 128, + 303, 307, 307, 123, 294, 124, 116, 554, 116, 116, + 379, 116, 119, 328, 119, 129, 229, 130, 230, 369, + 231, 232, 233, 119, 329, 119, 380, 234, 129, 370, + 130, 171, 171, 889, 172, 171, 171, 171, 171, 173, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 174, 175, 174, 174, 176, 177, 178, 179, 171, + 171, 180, 181, 182, 183, 184, 185, 174, 186, 187, + + 188, 189, 174, 190, 191, 192, 174, 193, 194, 195, + 196, 197, 174, 174, 174, 174, 171, 171, 171, 171, + 202, 890, 202, 209, 209, 209, 209, 209, 209, 212, + 212, 212, 217, 268, 269, 268, 268, 269, 268, 891, + 218, 420, 219, 421, 220, 221, 222, 268, 269, 268, + 422, 223, 355, 268, 269, 268, 356, 357, 267, 892, + 268, 269, 268, 213, 200, 201, 201, 361, 362, 214, + 308, 201, 201, 202, 203, 202, 215, 210, 216, 363, + 210, 388, 287, 209, 209, 209, 389, 912, 285, 269, + 288, 847, 269, 267, 295, 296, 297, 915, 298, 206, + + 309, 390, 390, 269, 299, 206, 212, 212, 212, 269, + 206, 267, 300, 301, 307, 307, 269, 212, 212, 212, + 848, 206, 245, 246, 245, 916, 397, 203, 245, 246, + 245, 341, 342, 341, 268, 269, 268, 210, 372, 398, + 213, 402, 705, 309, 917, 373, 214, 341, 342, 341, + 374, 213, 469, 215, 403, 216, 415, 214, 705, 416, + 442, 459, 443, 918, 215, 470, 216, 464, 444, 460, + 447, 448, 417, 780, 418, 445, 465, 461, 532, 466, + 390, 390, 487, 487, 487, 605, 605, 342, 449, 780, + 269, 919, 533, 534, 487, 487, 487, 573, 573, 573, + + 581, 687, 687, 342, 584, 584, 584, 619, 582, 309, + 522, 523, 523, 639, 922, 620, 705, 640, 923, 659, + 659, 659, 573, 573, 573, 705, 584, 584, 584, 1361, + 1361, 641, 599, 600, 600, 924, 488, 520, 520, 520, + 674, 674, 674, 1361, 605, 605, 574, 521, 488, 521, + 522, 523, 523, 699, 699, 699, 704, 704, 585, 706, + 706, 706, 700, 524, 597, 597, 597, 653, 654, 654, + 925, 574, 675, 926, 598, 660, 598, 599, 600, 600, + 585, 739, 739, 1361, 1361, 751, 751, 751, 779, 779, + 601, 520, 520, 520, 752, 790, 754, 754, 754, 780, + + 928, 521, 791, 521, 522, 523, 523, 701, 780, 757, + 757, 757, 659, 659, 659, 704, 704, 524, 606, 606, + 606, 674, 674, 674, 1361, 687, 687, 929, 699, 699, + 699, 607, 523, 523, 758, 699, 699, 699, 821, 753, + 933, 781, 781, 781, 706, 706, 706, 821, 608, 609, + 610, 611, 755, 675, 933, 612, 1361, 1361, 613, 820, + 820, 614, 779, 779, 615, 651, 651, 651, 660, 706, + 706, 706, 1361, 739, 739, 652, 933, 652, 653, 654, + 654, 782, 701, 821, 783, 822, 822, 822, 844, 701, + 933, 655, 597, 597, 597, 781, 781, 781, 933, 821, + + 853, 853, 598, 845, 598, 599, 600, 600, 933, 751, + 751, 751, 830, 830, 830, 751, 751, 751, 601, 688, + 688, 688, 757, 757, 757, 823, 820, 820, 824, 754, + 754, 754, 689, 600, 600, 849, 938, 831, 850, 786, + 787, 787, 939, 781, 781, 781, 940, 758, 933, 690, + 691, 692, 693, 827, 828, 828, 694, 897, 897, 695, + 1361, 1361, 696, 753, 933, 697, 651, 651, 651, 753, + 932, 932, 781, 781, 781, 933, 652, 941, 652, 653, + 654, 654, 942, 849, 933, 755, 850, 943, 781, 781, + 781, 944, 655, 740, 740, 740, 945, 920, 920, 920, + + 1361, 853, 853, 822, 822, 822, 741, 654, 654, 851, + 946, 947, 782, 948, 949, 783, 822, 822, 822, 950, + 822, 822, 822, 742, 743, 744, 745, 852, 782, 951, + 746, 783, 952, 747, 953, 954, 748, 955, 956, 749, + 784, 784, 784, 893, 957, 958, 894, 822, 822, 822, + 785, 921, 785, 786, 787, 787, 893, 895, 959, 894, + 823, 960, 961, 824, 1361, 1361, 788, 825, 825, 825, + 964, 964, 830, 830, 830, 965, 965, 826, 965, 826, + 827, 828, 828, 910, 910, 910, 896, 823, 965, 965, + 824, 965, 970, 829, 854, 854, 854, 831, 1361, 897, + + 897, 913, 913, 913, 781, 781, 781, 855, 787, 787, + 781, 781, 781, 965, 965, 971, 972, 973, 974, 934, + 934, 934, 965, 975, 856, 857, 858, 859, 981, 982, + 965, 860, 983, 984, 861, 985, 986, 862, 987, 911, + 863, 898, 898, 898, 782, 930, 988, 783, 932, 932, + 782, 995, 996, 783, 899, 828, 828, 914, 931, 935, + 997, 998, 936, 822, 822, 822, 999, 822, 822, 822, + 1000, 900, 901, 902, 903, 937, 1001, 864, 904, 994, + 1002, 905, 1003, 1004, 906, 1005, 1006, 907, 966, 966, + 966, 910, 910, 910, 913, 913, 913, 920, 920, 920, + + 781, 781, 781, 823, 962, 1007, 824, 823, 964, 964, + 824, 908, 1014, 1013, 1015, 963, 1016, 781, 781, 781, + 1017, 978, 979, 979, 1018, 1018, 1030, 1031, 967, 1032, + 1033, 968, 934, 934, 934, 848, 934, 934, 934, 1034, + 782, 1035, 1042, 783, 969, 1043, 1046, 911, 989, 1047, + 914, 921, 976, 976, 976, 864, 1048, 782, 1049, 1044, + 783, 1050, 977, 990, 977, 978, 979, 979, 934, 934, + 934, 1051, 991, 864, 1052, 992, 991, 1053, 980, 992, + 822, 822, 822, 1054, 1045, 1061, 1062, 1065, 937, 822, + 822, 822, 937, 966, 966, 966, 908, 966, 966, 966, + + 1063, 966, 966, 966, 908, 993, 1066, 1067, 935, 1361, + 1361, 936, 1361, 1018, 1018, 1064, 1068, 1068, 1069, 1069, + 823, 1069, 1069, 824, 937, 1069, 1069, 1069, 1008, 823, + 1069, 1069, 824, 1010, 1074, 1009, 1011, 1010, 1012, 1075, + 1011, 967, 1076, 1069, 968, 1077, 1039, 1040, 1040, 969, + 1084, 1084, 1096, 969, 781, 781, 781, 969, 1019, 1019, + 1019, 1097, 1100, 864, 1101, 1102, 864, 1103, 822, 822, + 822, 1020, 979, 979, 1098, 1099, 1104, 1105, 1058, 1059, + 1059, 1070, 1070, 1070, 1124, 1037, 1037, 1037, 1021, 1022, + 1023, 1024, 1112, 1112, 782, 1025, 1125, 783, 1026, 908, + + 1036, 1027, 1130, 908, 1028, 1037, 1037, 1037, 823, 1131, + 1126, 824, 1127, 1136, 1055, 1038, 1151, 1038, 1039, 1040, + 1040, 1071, 1068, 1068, 1072, 849, 1151, 1029, 850, 1135, + 1151, 1041, 1151, 1056, 1056, 1056, 1151, 1073, 1138, 1138, + 1128, 1128, 1128, 1361, 1361, 782, 1150, 1150, 783, 1056, + 1056, 1056, 1081, 1082, 1082, 1361, 1084, 1084, 1151, 1057, + 1151, 1057, 1058, 1059, 1059, 1151, 1154, 1151, 1155, 1070, + 1070, 1070, 1162, 893, 1163, 1060, 894, 1152, 1152, 1152, + 1164, 1151, 864, 1070, 1070, 1070, 1109, 1110, 1110, 823, + 1179, 1156, 824, 1078, 1078, 1078, 1129, 1166, 1166, 1179, + + 1070, 1070, 1070, 1038, 1179, 1038, 1039, 1040, 1040, 1132, + 1361, 1361, 1133, 1179, 1079, 1079, 1079, 1153, 1179, 1041, + 1079, 1079, 1079, 1132, 1179, 1073, 1133, 1107, 1107, 1107, + 1080, 1179, 1080, 1081, 1082, 1082, 1179, 1134, 1182, 1073, + 1071, 1178, 1178, 1072, 1183, 1190, 1083, 1085, 1085, 1085, + 1361, 1112, 1112, 1179, 849, 1191, 1073, 850, 1192, 908, + 1086, 1040, 1040, 1180, 1180, 1180, 1198, 893, 1184, 1179, + 894, 1128, 1128, 1128, 1198, 1029, 1198, 1087, 1088, 1089, + 1090, 1029, 1361, 1361, 1091, 1193, 1194, 1092, 1197, 1197, + 1093, 1198, 1198, 1094, 1106, 1106, 1106, 1195, 1195, 1195, + + 1361, 1138, 1138, 1181, 1057, 1198, 1057, 1058, 1059, 1059, + 1198, 1198, 1150, 1150, 1198, 1199, 1199, 1199, 1201, 1220, + 1060, 1107, 1107, 1107, 1208, 1208, 1198, 1129, 1152, 1152, + 1152, 1108, 1222, 1108, 1109, 1110, 1110, 1152, 1152, 1152, + 1159, 1160, 1160, 1157, 1157, 1157, 1222, 1111, 1113, 1113, + 1113, 1361, 1361, 1196, 1361, 1166, 1166, 1221, 1221, 1222, + 1222, 1114, 1059, 1059, 1152, 1152, 1152, 1222, 849, 1222, + 1222, 1222, 1222, 1223, 1223, 1223, 1225, 849, 1115, 1116, + 1117, 1118, 1244, 991, 1245, 1119, 992, 1222, 1120, 1178, + 1178, 1121, 1232, 1232, 1122, 1137, 1137, 1137, 1248, 937, + + 1264, 1200, 1264, 1029, 1153, 1080, 1029, 1080, 1081, 1082, + 1082, 1180, 1180, 1180, 1246, 1247, 1180, 1180, 1180, 1197, + 1197, 1083, 1139, 1139, 1139, 1264, 1180, 1180, 1180, 1187, + 1188, 1188, 1185, 1185, 1185, 1140, 1082, 1082, 1195, 1195, + 1195, 1199, 1199, 1199, 1199, 1199, 1199, 1205, 1206, 1206, + 1264, 893, 1141, 1142, 1143, 1144, 893, 1251, 1251, 1145, + 1361, 1361, 1146, 1224, 1264, 1147, 1181, 1264, 1148, 1157, + 1157, 1157, 1010, 1263, 1263, 1011, 1361, 1208, 1208, 1158, + 1264, 1158, 1159, 1160, 1160, 1152, 1152, 1152, 969, 1203, + 1203, 1203, 1264, 1284, 1196, 1161, 1264, 1265, 1265, 1265, + + 1284, 1264, 1221, 1221, 1271, 1271, 864, 1165, 1165, 1165, + 1223, 1223, 1223, 1223, 1223, 1223, 1284, 1108, 1284, 1108, + 1109, 1110, 1110, 1361, 1361, 1153, 1249, 1283, 1283, 991, + 1284, 1284, 992, 1111, 1167, 1167, 1167, 1266, 1180, 1180, + 1180, 1229, 1230, 1230, 1284, 937, 1284, 1168, 1110, 1110, + 1361, 1232, 1232, 937, 1287, 1284, 1288, 1227, 1227, 1227, + 1284, 1285, 1285, 1285, 1169, 1170, 1171, 1172, 1248, 1361, + 1361, 1173, 1296, 1296, 1174, 1029, 1297, 1175, 1181, 1269, + 1176, 1185, 1185, 1185, 1289, 1297, 1297, 1152, 1152, 1152, + 1297, 1186, 1297, 1186, 1187, 1188, 1188, 1010, 1297, 1297, + + 1011, 1286, 1361, 1251, 1251, 1297, 1297, 1189, 1298, 1298, + 1298, 1263, 1263, 969, 1265, 1265, 1265, 969, 908, 1202, + 1202, 1202, 1297, 1265, 1265, 1265, 1302, 1153, 1302, 1158, + 1302, 1158, 1159, 1160, 1160, 1295, 1180, 1180, 1180, 1302, + 1265, 1265, 1265, 1361, 1361, 1161, 1203, 1203, 1203, 1361, + 1271, 1271, 1301, 1301, 991, 1302, 1204, 1302, 1204, 1205, + 1206, 1206, 1302, 991, 937, 1302, 1302, 1303, 1303, 1303, + 937, 1305, 1207, 1209, 1209, 1209, 1181, 1299, 1342, 937, + 1266, 1302, 1283, 1283, 1300, 1342, 1210, 1160, 1160, 1285, + 1285, 1285, 1292, 1293, 1293, 1342, 937, 1285, 1285, 1285, + + 1290, 1290, 1290, 1211, 1212, 1213, 1214, 1312, 1312, 1342, + 1215, 1296, 1296, 1216, 1301, 1301, 1217, 1329, 1329, 1218, + 1226, 1226, 1226, 969, 1361, 1361, 1285, 1285, 1285, 1010, + 1186, 1342, 1186, 1187, 1188, 1188, 1342, 1010, 1341, 1341, + 1132, 1350, 1342, 1133, 1350, 969, 1189, 1227, 1227, 1227, + 1152, 1152, 1152, 969, 1350, 1342, 1073, 1228, 1342, 1228, + 1229, 1230, 1230, 1304, 1342, 1350, 1286, 1350, 1298, 1298, + 1298, 1361, 1361, 1231, 1233, 1233, 1233, 1349, 1349, 1180, + 1180, 1180, 969, 1298, 1298, 1298, 1350, 1234, 1188, 1188, + 1153, 1309, 1310, 1310, 1350, 1350, 1324, 1265, 1265, 1265, + + 1303, 1303, 1303, 211, 1235, 1236, 1237, 1238, 1303, 1303, + 1303, 1239, 225, 1350, 1240, 1341, 1341, 1241, 616, 1181, + 1242, 1250, 1250, 1250, 937, 1326, 1285, 1285, 1285, 1350, + 698, 1204, 750, 1204, 1205, 1206, 1206, 1266, 1325, 937, + 1361, 1312, 1312, 1361, 1329, 1329, 833, 1207, 1252, 1252, + 1252, 1349, 1349, 937, 864, 908, 969, 909, 1029, 1095, + 1123, 1253, 1206, 1206, 969, 1149, 1286, 1327, 1177, 1219, + 1243, 1262, 1282, 1323, 1340, 884, 883, 882, 1254, 1255, + 1256, 1257, 969, 881, 880, 1258, 879, 878, 1259, 877, + 876, 1260, 875, 874, 1261, 1267, 1267, 1267, 1267, 1267, + + 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, + 1267, 1267, 1267, 1267, 1267, 1268, 1268, 1268, 1268, 1268, + 1268, 1267, 1267, 1267, 1267, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, + 873, 1267, 1267, 1267, 1270, 1270, 1270, 872, 871, 1307, + 1307, 1307, 870, 869, 1228, 868, 1228, 1229, 1230, 1230, + 1343, 1343, 1343, 1360, 1360, 1360, 867, 1265, 1265, 1265, + 1231, 1272, 1272, 1272, 866, 865, 846, 843, 1351, 1351, + 1351, 1285, 1285, 1285, 1273, 1230, 1230, 842, 841, 1132, + + 840, 839, 1133, 838, 837, 1343, 1343, 1343, 836, 835, + 1344, 1274, 1275, 1276, 1277, 1073, 1361, 1266, 1278, 324, + 315, 1279, 834, 832, 1280, 1346, 1073, 1281, 1290, 1290, + 1290, 1286, 821, 937, 1343, 1343, 1343, 821, 1291, 1348, + 1291, 1292, 1293, 1293, 1073, 1132, 821, 969, 1343, 1343, + 1343, 821, 821, 821, 1294, 819, 1265, 1265, 1265, 818, + 817, 1073, 1351, 1351, 1351, 1029, 1306, 1306, 1306, 1285, + 1285, 1285, 816, 815, 1132, 814, 1291, 813, 1291, 1292, + 1293, 1293, 1351, 1351, 1351, 1352, 812, 811, 1344, 810, + 1073, 809, 1294, 1307, 1307, 1307, 1266, 808, 807, 1343, + + 1343, 1343, 1353, 1308, 1073, 1308, 1309, 1310, 1310, 1286, + 806, 805, 937, 804, 803, 1354, 802, 801, 1073, 1311, + 1313, 1313, 1313, 800, 799, 969, 798, 797, 796, 795, + 1343, 1343, 1343, 1314, 1293, 1293, 794, 793, 1073, 1344, + 1355, 792, 789, 1357, 1357, 1357, 780, 780, 780, 780, + 1315, 1316, 1317, 1318, 780, 1073, 780, 1319, 778, 777, + 1320, 776, 775, 1321, 774, 773, 1322, 1328, 1328, 1328, + 1344, 772, 1343, 1343, 1343, 771, 770, 1308, 1358, 1308, + 1309, 1310, 1310, 1010, 769, 768, 1073, 767, 766, 765, + 764, 763, 256, 1311, 1330, 1330, 1330, 248, 762, 969, + + 324, 761, 315, 760, 759, 756, 738, 1331, 1310, 1310, + 737, 736, 1344, 735, 734, 733, 732, 731, 1359, 730, + 729, 728, 727, 726, 1332, 1333, 1334, 1335, 1073, 725, + 724, 1336, 723, 722, 1337, 721, 720, 1338, 719, 718, + 1339, 1345, 1345, 1345, 717, 716, 715, 714, 713, 712, + 711, 1080, 710, 1080, 1081, 1082, 1082, 709, 708, 707, + 705, 705, 705, 705, 705, 705, 703, 1083, 702, 686, + 685, 684, 683, 682, 681, 680, 679, 678, 677, 676, + 673, 1153, 1347, 1347, 1347, 672, 671, 670, 669, 256, + 668, 248, 1108, 667, 1108, 1109, 1110, 1110, 666, 665, + + 324, 664, 324, 663, 315, 662, 315, 661, 1111, 658, + 657, 656, 650, 649, 648, 647, 646, 645, 644, 643, + 642, 638, 1181, 1345, 1345, 1345, 637, 636, 635, 634, + 633, 632, 631, 1080, 630, 1080, 1081, 1082, 1082, 629, + 628, 627, 626, 625, 624, 623, 622, 621, 618, 1083, + 617, 604, 603, 602, 596, 595, 594, 593, 592, 591, + 590, 589, 588, 849, 1347, 1347, 1347, 587, 586, 583, + 580, 579, 578, 256, 1108, 577, 1108, 1109, 1110, 1110, + 256, 576, 248, 575, 248, 572, 571, 570, 569, 568, + 1111, 567, 566, 565, 564, 563, 562, 561, 560, 559, + + 558, 557, 556, 555, 893, 1356, 1356, 1356, 552, 551, + 550, 549, 548, 547, 546, 1204, 545, 1204, 1205, 1206, + 1206, 544, 543, 542, 541, 540, 539, 538, 537, 536, + 535, 1207, 531, 530, 529, 528, 527, 526, 525, 519, + 518, 517, 516, 515, 514, 1266, 513, 512, 511, 510, + 509, 508, 507, 506, 505, 504, 503, 502, 501, 500, + 499, 937, 1357, 1357, 1357, 498, 497, 496, 495, 494, + 493, 492, 1228, 491, 1228, 1229, 1230, 1230, 490, 489, + 486, 485, 484, 483, 482, 481, 480, 479, 1231, 478, + 477, 476, 475, 474, 473, 472, 471, 468, 467, 463, + + 462, 458, 1286, 457, 456, 455, 454, 453, 452, 451, + 450, 446, 441, 440, 439, 438, 437, 436, 969, 1356, + 1356, 1356, 435, 434, 433, 432, 431, 430, 429, 1204, + 428, 1204, 1205, 1206, 1206, 427, 426, 425, 424, 423, + 419, 344, 414, 413, 412, 1207, 411, 410, 409, 408, + 407, 406, 405, 404, 324, 324, 401, 324, 324, 991, + 400, 399, 315, 315, 396, 315, 315, 395, 394, 393, + 392, 391, 387, 386, 385, 937, 1360, 1360, 1360, 384, + 383, 382, 381, 378, 377, 376, 1308, 375, 1308, 1309, + 1310, 1310, 371, 368, 367, 366, 365, 364, 360, 354, + + 353, 352, 1311, 351, 350, 349, 348, 347, 346, 345, + 344, 271, 1361, 340, 339, 256, 1344, 256, 336, 256, + 256, 335, 248, 248, 332, 248, 248, 331, 239, 237, + 330, 327, 1073, 46, 46, 46, 46, 46, 46, 46, + 46, 46, 46, 46, 46, 47, 47, 47, 47, 47, + 47, 47, 47, 47, 47, 47, 47, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 56, + 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, + 56, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 63, 63, 63, 63, 63, 63, 63, + + 63, 63, 63, 63, 63, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 107, 107, 107, + 107, 107, 107, 107, 107, 107, 107, 107, 107, 110, + 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, + 110, 115, 115, 115, 115, 115, 115, 115, 115, 115, + 115, 115, 115, 118, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 121, 121, 121, 121, 121, + 121, 121, 121, 121, 121, 121, 121, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, + + 127, 131, 131, 131, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 133, 133, 133, 133, 133, 133, 133, + 133, 133, 133, 133, 133, 137, 137, 137, 137, 137, + 137, 137, 137, 137, 137, 137, 137, 148, 326, 325, + 148, 324, 148, 148, 148, 148, 148, 150, 323, 322, + 150, 150, 150, 150, 150, 150, 150, 164, 164, 226, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 170, + 321, 318, 317, 170, 205, 316, 315, 205, 205, 205, + 205, 205, 205, 205, 314, 205, 207, 313, 207, 207, + 207, 208, 208, 236, 312, 311, 236, 236, 236, 236, + + 236, 236, 236, 238, 310, 204, 238, 238, 238, 238, + 238, 238, 238, 241, 241, 241, 241, 241, 241, 241, + 241, 241, 203, 241, 241, 242, 242, 242, 242, 242, + 242, 242, 242, 304, 242, 242, 242, 244, 244, 244, + 244, 244, 244, 244, 244, 244, 244, 265, 291, 286, + 280, 265, 266, 266, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 927, 927, 927, 927, + 927, 927, 927, 927, 927, 169, 927, 927, 1267, 1267, + 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 169, 1267, + 264, 263, 160, 262, 259, 258, 257, 256, 255, 151, + + 149, 254, 251, 250, 249, 248, 247, 243, 240, 239, + 237, 235, 227, 226, 224, 203, 204, 198, 169, 167, + 166, 165, 163, 162, 161, 160, 159, 151, 149, 147, + 140, 1361, 136, 136, 126, 126, 45, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361 + } ; -static yyconst flex_int16_t yy_chk[2970] = +static yyconst flex_int16_t yy_chk[3397] = { 0, - 0, 0, 3, 4, 5, 6, 19, 5, 6, 7, - 7, 7, 8, 8, 8, 9, 9, 9, 11, 12, - 7, 11, 12, 8, 10, 10, 10, 20, 23, 19, - 1112, 24, 25, 26, 35, 36, 66, 66, 37, 125, - 125, 11, 12, 132, 38, 132, 1114, 220, 140, 220, - 20, 23, 3, 4, 24, 25, 26, 140, 35, 36, - 7, 37, 7, 8, 154, 8, 9, 38, 9, 41, - 42, 41, 42, 335, 335, 10, 154, 10, 13, 13, + 0, 0, 3, 4, 5, 0, 0, 5, 6, 0, + 0, 6, 9, 9, 9, 7, 7, 7, 23, 5, + 5, 5, 31, 6, 6, 6, 7, 24, 37, 5, + 8, 8, 8, 6, 10, 10, 10, 79, 79, 38, + 181, 8, 11, 23, 181, 11, 31, 12, 39, 5, + 12, 40, 24, 6, 37, 3, 4, 11, 11, 11, + 168, 168, 12, 12, 12, 38, 9, 11, 9, 7, + 197, 7, 12, 39, 146, 31, 40, 31, 43, 44, + 43, 44, 812, 197, 8, 146, 8, 11, 10, 175, + 10, 175, 12, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 15, 15, 15, 15, 15, 15, + 13, 13, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 21, 21, 21, 21, + 19, 67, 54, 20, 54, 179, 54, 54, 54, 139, + 139, 139, 158, 54, 813, 19, 19, 19, 20, 20, + 20, 179, 183, 158, 91, 19, 253, 186, 20, 185, + + 91, 183, 67, 186, 67, 91, 67, 67, 67, 253, + 185, 182, 182, 67, 814, 19, 91, 182, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 25, 815, + 32, 26, 27, 27, 27, 28, 28, 28, 29, 29, + 29, 223, 35, 25, 25, 25, 26, 26, 26, 30, + + 30, 30, 223, 25, 32, 36, 26, 83, 283, 83, + 83, 83, 83, 283, 180, 261, 35, 180, 180, 113, + 190, 193, 466, 25, 190, 193, 26, 195, 261, 36, + 195, 200, 200, 32, 193, 32, 27, 466, 27, 28, + 298, 28, 29, 234, 29, 35, 113, 35, 113, 291, + 113, 113, 113, 30, 234, 30, 298, 113, 36, 291, + 36, 81, 81, 816, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 88, 817, 88, 95, 95, 95, 96, 96, 96, 98, + 98, 98, 102, 176, 176, 176, 177, 177, 177, 818, + 102, 347, 102, 347, 102, 102, 102, 187, 187, 187, + 347, 102, 282, 189, 189, 189, 282, 282, 177, 819, + 191, 191, 191, 98, 199, 199, 199, 285, 285, 98, + 201, 201, 201, 202, 88, 202, 98, 95, 98, 285, + 96, 306, 189, 209, 209, 209, 306, 833, 187, 176, + 189, 778, 177, 191, 194, 194, 194, 835, 194, 207, + + 201, 308, 308, 187, 194, 207, 210, 210, 210, 189, + 207, 194, 194, 194, 307, 307, 191, 212, 212, 212, + 778, 207, 245, 245, 245, 836, 320, 202, 246, 246, + 246, 267, 267, 267, 268, 268, 268, 209, 293, 320, + 210, 329, 614, 307, 837, 293, 210, 341, 341, 341, + 293, 212, 386, 210, 329, 210, 345, 212, 614, 345, + 368, 380, 368, 838, 212, 386, 212, 383, 368, 380, + 370, 370, 345, 696, 345, 368, 383, 380, 446, 383, + 390, 390, 405, 405, 405, 522, 522, 267, 370, 696, + 268, 839, 446, 446, 487, 487, 487, 488, 488, 488, + + 500, 599, 599, 341, 502, 502, 502, 528, 500, 390, + 521, 521, 521, 548, 841, 528, 609, 548, 842, 563, + 563, 563, 573, 573, 573, 609, 584, 584, 584, 606, + 606, 548, 598, 598, 598, 843, 405, 438, 438, 438, + 585, 585, 585, 605, 605, 605, 488, 438, 487, 438, + 438, 438, 438, 602, 602, 602, 607, 607, 502, 616, + 616, 616, 602, 438, 514, 514, 514, 652, 652, 652, + 844, 573, 585, 845, 514, 563, 514, 514, 514, 514, + 584, 653, 653, 688, 688, 656, 656, 656, 689, 689, + 514, 520, 520, 520, 656, 703, 657, 657, 657, 691, + + 849, 520, 703, 520, 520, 520, 520, 602, 691, 660, + 660, 660, 659, 659, 659, 704, 704, 520, 523, 523, + 523, 674, 674, 674, 687, 687, 687, 850, 699, 699, + 699, 523, 523, 523, 660, 700, 700, 700, 743, 656, + 856, 698, 698, 698, 705, 705, 705, 743, 523, 523, + 523, 523, 657, 674, 858, 523, 740, 740, 523, 741, + 741, 523, 779, 779, 523, 559, 559, 559, 659, 706, + 706, 706, 739, 739, 739, 559, 859, 559, 559, 559, + 559, 698, 699, 748, 698, 750, 750, 750, 774, 700, + 860, 559, 597, 597, 597, 780, 780, 780, 861, 748, + + 786, 786, 597, 774, 597, 597, 597, 597, 863, 751, + 751, 751, 755, 755, 755, 752, 752, 752, 597, 600, + 600, 600, 757, 757, 757, 750, 820, 820, 750, 754, + 754, 754, 600, 600, 600, 780, 865, 755, 780, 785, + 785, 785, 866, 781, 781, 781, 867, 757, 862, 600, + 600, 600, 600, 826, 826, 826, 600, 827, 827, 600, + 854, 854, 600, 751, 862, 600, 651, 651, 651, 752, + 855, 855, 782, 782, 782, 857, 651, 868, 651, 651, + 651, 651, 869, 781, 857, 754, 781, 870, 783, 783, + 783, 871, 651, 654, 654, 654, 873, 840, 840, 840, + + 853, 853, 853, 821, 821, 821, 654, 654, 654, 782, + 876, 877, 782, 878, 879, 782, 822, 822, 822, 881, + 823, 823, 823, 654, 654, 654, 654, 783, 783, 883, + 654, 783, 884, 654, 885, 886, 654, 887, 888, 654, + 701, 701, 701, 821, 889, 891, 821, 824, 824, 824, + 701, 840, 701, 701, 701, 701, 822, 823, 892, 822, + 823, 893, 894, 823, 898, 898, 701, 753, 753, 753, + 899, 899, 830, 830, 830, 900, 902, 753, 903, 753, + 753, 753, 753, 832, 832, 832, 824, 824, 904, 905, + 824, 907, 909, 753, 787, 787, 787, 830, 897, 897, + + 897, 834, 834, 834, 851, 851, 851, 787, 787, 787, + 852, 852, 852, 901, 906, 915, 916, 917, 918, 864, + 864, 864, 901, 919, 787, 787, 787, 787, 922, 923, + 906, 787, 924, 925, 787, 926, 927, 787, 928, 832, + 787, 828, 828, 828, 851, 851, 929, 851, 932, 932, + 852, 939, 940, 852, 828, 828, 828, 834, 852, 864, + 941, 944, 864, 895, 895, 895, 948, 896, 896, 896, + 952, 828, 828, 828, 828, 864, 954, 936, 828, 936, + 955, 828, 956, 957, 828, 958, 960, 828, 908, 908, + 908, 910, 910, 910, 913, 913, 913, 920, 920, 920, + + 930, 930, 930, 895, 895, 961, 895, 896, 964, 964, + 896, 968, 971, 968, 972, 896, 973, 931, 931, 931, + 974, 977, 977, 977, 978, 978, 981, 982, 908, 984, + 985, 908, 933, 933, 933, 986, 934, 934, 934, 987, + 930, 988, 991, 930, 908, 992, 995, 910, 930, 997, + 913, 920, 921, 921, 921, 993, 998, 931, 999, 993, + 931, 1002, 921, 931, 921, 921, 921, 921, 935, 935, + 935, 1004, 933, 994, 1005, 933, 934, 1006, 921, 934, + 962, 962, 962, 1007, 994, 1010, 1011, 1014, 933, 963, + 963, 963, 934, 965, 965, 965, 1012, 966, 966, 966, + + 1012, 967, 967, 967, 1013, 935, 1015, 1016, 935, 1019, + 1019, 935, 1018, 1018, 1018, 1013, 1020, 1020, 1021, 1023, + 962, 1022, 1024, 962, 935, 1025, 1026, 1027, 962, 963, + 1022, 1028, 963, 965, 1030, 963, 965, 966, 967, 1032, + 966, 967, 1033, 1027, 967, 1034, 1038, 1038, 1038, 965, + 1039, 1039, 1042, 966, 989, 989, 989, 967, 979, 979, + 979, 1043, 1046, 1044, 1048, 1050, 1045, 1051, 1008, 1008, + 1008, 979, 979, 979, 1044, 1045, 1052, 1053, 1057, 1057, + 1057, 1029, 1029, 1029, 1061, 1037, 1037, 1037, 979, 979, + 979, 979, 1058, 1058, 989, 979, 1062, 989, 979, 1063, + + 989, 979, 1066, 1064, 979, 990, 990, 990, 1008, 1067, + 1063, 1008, 1064, 1074, 1008, 990, 1087, 990, 990, 990, + 990, 1029, 1068, 1068, 1029, 1037, 1089, 1072, 1037, 1072, + 1090, 990, 1091, 1056, 1056, 1056, 1092, 1029, 1081, 1081, + 1065, 1065, 1065, 1085, 1085, 990, 1086, 1086, 990, 1009, + 1009, 1009, 1080, 1080, 1080, 1084, 1084, 1084, 1088, 1009, + 1094, 1009, 1009, 1009, 1009, 1093, 1096, 1088, 1097, 1069, + 1069, 1069, 1100, 1056, 1101, 1009, 1056, 1095, 1095, 1095, + 1103, 1093, 1098, 1070, 1070, 1070, 1108, 1108, 1108, 1009, + 1115, 1098, 1009, 1035, 1035, 1035, 1065, 1109, 1109, 1117, + + 1071, 1071, 1071, 1035, 1116, 1035, 1035, 1035, 1035, 1069, + 1113, 1113, 1069, 1116, 1079, 1079, 1079, 1095, 1118, 1035, + 1036, 1036, 1036, 1070, 1119, 1069, 1070, 1107, 1107, 1107, + 1036, 1120, 1036, 1036, 1036, 1036, 1122, 1071, 1124, 1070, + 1071, 1114, 1114, 1071, 1125, 1130, 1036, 1040, 1040, 1040, + 1112, 1112, 1112, 1121, 1079, 1132, 1071, 1079, 1133, 1126, + 1040, 1040, 1040, 1123, 1123, 1123, 1141, 1107, 1126, 1121, + 1107, 1128, 1128, 1128, 1143, 1135, 1144, 1040, 1040, 1040, + 1040, 1134, 1139, 1139, 1040, 1134, 1135, 1040, 1140, 1140, + 1040, 1145, 1146, 1040, 1054, 1054, 1054, 1136, 1136, 1136, + + 1138, 1138, 1138, 1123, 1054, 1142, 1054, 1054, 1054, 1054, + 1147, 1148, 1150, 1150, 1142, 1149, 1149, 1149, 1154, 1162, + 1054, 1055, 1055, 1055, 1159, 1159, 1147, 1128, 1151, 1151, + 1151, 1055, 1169, 1055, 1055, 1055, 1055, 1152, 1152, 1152, + 1158, 1158, 1158, 1157, 1157, 1157, 1171, 1055, 1059, 1059, + 1059, 1167, 1167, 1136, 1166, 1166, 1166, 1168, 1168, 1172, + 1170, 1059, 1059, 1059, 1153, 1153, 1153, 1173, 1151, 1170, + 1174, 1175, 1176, 1177, 1177, 1177, 1182, 1152, 1059, 1059, + 1059, 1059, 1191, 1157, 1192, 1059, 1157, 1175, 1059, 1178, + 1178, 1059, 1187, 1187, 1059, 1077, 1077, 1077, 1196, 1157, + + 1211, 1153, 1213, 1193, 1153, 1077, 1194, 1077, 1077, 1077, + 1077, 1179, 1179, 1179, 1193, 1194, 1180, 1180, 1180, 1197, + 1197, 1077, 1082, 1082, 1082, 1214, 1181, 1181, 1181, 1186, + 1186, 1186, 1185, 1185, 1185, 1082, 1082, 1082, 1195, 1195, + 1195, 1198, 1198, 1198, 1199, 1199, 1199, 1204, 1204, 1204, + 1215, 1179, 1082, 1082, 1082, 1082, 1180, 1205, 1205, 1082, + 1209, 1209, 1082, 1181, 1216, 1082, 1181, 1218, 1082, 1099, + 1099, 1099, 1185, 1210, 1210, 1185, 1208, 1208, 1208, 1099, + 1217, 1099, 1099, 1099, 1099, 1200, 1200, 1200, 1185, 1203, + 1203, 1203, 1212, 1235, 1195, 1099, 1217, 1219, 1219, 1219, + + 1237, 1212, 1221, 1221, 1229, 1229, 1099, 1105, 1105, 1105, + 1222, 1222, 1222, 1223, 1223, 1223, 1238, 1105, 1239, 1105, + 1105, 1105, 1105, 1233, 1233, 1200, 1200, 1234, 1234, 1203, + 1240, 1242, 1203, 1105, 1110, 1110, 1110, 1219, 1224, 1224, + 1224, 1228, 1228, 1228, 1241, 1203, 1236, 1110, 1110, 1110, + 1232, 1232, 1232, 1219, 1244, 1236, 1245, 1227, 1227, 1227, + 1241, 1243, 1243, 1243, 1110, 1110, 1110, 1110, 1248, 1252, + 1252, 1110, 1253, 1253, 1110, 1246, 1254, 1110, 1224, 1224, + 1110, 1127, 1127, 1127, 1246, 1256, 1257, 1249, 1249, 1249, + 1255, 1127, 1258, 1127, 1127, 1127, 1127, 1227, 1259, 1255, + + 1227, 1243, 1251, 1251, 1251, 1261, 1260, 1127, 1262, 1262, + 1262, 1263, 1263, 1227, 1264, 1264, 1264, 1243, 1127, 1155, + 1155, 1155, 1260, 1265, 1265, 1265, 1274, 1249, 1276, 1155, + 1275, 1155, 1155, 1155, 1155, 1249, 1269, 1269, 1269, 1275, + 1266, 1266, 1266, 1272, 1272, 1155, 1156, 1156, 1156, 1271, + 1271, 1271, 1273, 1273, 1264, 1277, 1156, 1278, 1156, 1156, + 1156, 1156, 1279, 1265, 1262, 1280, 1281, 1282, 1282, 1282, + 1264, 1287, 1156, 1160, 1160, 1160, 1269, 1266, 1315, 1265, + 1266, 1280, 1283, 1283, 1269, 1317, 1160, 1160, 1160, 1284, + 1284, 1284, 1291, 1291, 1291, 1318, 1266, 1285, 1285, 1285, + + 1290, 1290, 1290, 1160, 1160, 1160, 1160, 1292, 1292, 1319, + 1160, 1296, 1296, 1160, 1301, 1301, 1160, 1309, 1309, 1160, + 1183, 1183, 1183, 1282, 1313, 1313, 1286, 1286, 1286, 1284, + 1183, 1320, 1183, 1183, 1183, 1183, 1322, 1285, 1314, 1314, + 1290, 1332, 1321, 1290, 1334, 1284, 1183, 1184, 1184, 1184, + 1295, 1295, 1295, 1285, 1335, 1316, 1290, 1184, 1321, 1184, + 1184, 1184, 1184, 1286, 1316, 1336, 1286, 1337, 1297, 1297, + 1297, 1330, 1330, 1184, 1188, 1188, 1188, 1331, 1331, 1300, + 1300, 1300, 1286, 1298, 1298, 1298, 1333, 1188, 1188, 1188, + 1295, 1308, 1308, 1308, 1339, 1333, 1295, 1299, 1299, 1299, + + 1302, 1302, 1302, 1386, 1188, 1188, 1188, 1188, 1303, 1303, + 1303, 1188, 1387, 1338, 1188, 1341, 1341, 1188, 1396, 1300, + 1188, 1201, 1201, 1201, 1297, 1300, 1304, 1304, 1304, 1338, + 1397, 1201, 1398, 1201, 1201, 1201, 1201, 1299, 1299, 1298, + 1312, 1312, 1312, 1329, 1329, 1329, 1399, 1201, 1206, 1206, + 1206, 1349, 1349, 1299, 1400, 1401, 1302, 1402, 1404, 1405, + 1406, 1206, 1206, 1206, 1303, 1407, 1304, 1304, 1408, 1409, + 1410, 1411, 1412, 1414, 1415, 811, 810, 809, 1206, 1206, + 1206, 1206, 1304, 808, 805, 1206, 804, 803, 1206, 802, + 800, 1206, 799, 798, 1206, 1220, 1220, 1220, 1220, 1220, + + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, + 797, 1220, 1220, 1220, 1225, 1225, 1225, 796, 795, 1307, + 1307, 1307, 794, 793, 1225, 792, 1225, 1225, 1225, 1225, + 1323, 1323, 1323, 1360, 1360, 1360, 791, 1325, 1325, 1325, + 1225, 1230, 1230, 1230, 790, 789, 775, 773, 1340, 1340, + 1340, 1327, 1327, 1327, 1230, 1230, 1230, 769, 768, 1307, + + 767, 766, 1307, 765, 764, 1342, 1342, 1342, 763, 762, + 1323, 1230, 1230, 1230, 1230, 1307, 1360, 1325, 1230, 761, + 760, 1230, 759, 756, 1230, 1325, 1323, 1230, 1247, 1247, + 1247, 1327, 749, 1325, 1343, 1343, 1343, 747, 1247, 1327, + 1247, 1247, 1247, 1247, 1340, 1342, 746, 1327, 1344, 1344, + 1344, 745, 744, 742, 1247, 738, 1346, 1346, 1346, 737, + 736, 1342, 1350, 1350, 1350, 1247, 1288, 1288, 1288, 1348, + 1348, 1348, 735, 734, 1343, 733, 1288, 731, 1288, 1288, + 1288, 1288, 1351, 1351, 1351, 1344, 730, 729, 1344, 728, + 1343, 727, 1288, 1289, 1289, 1289, 1346, 726, 725, 1352, + + 1352, 1352, 1346, 1289, 1344, 1289, 1289, 1289, 1289, 1348, + 724, 722, 1346, 721, 720, 1348, 719, 718, 1350, 1289, + 1293, 1293, 1293, 717, 716, 1348, 714, 713, 712, 711, + 1355, 1355, 1355, 1293, 1293, 1293, 710, 709, 1351, 1352, + 1352, 707, 702, 1357, 1357, 1357, 697, 695, 694, 693, + 1293, 1293, 1293, 1293, 692, 1352, 690, 1293, 686, 685, + 1293, 684, 683, 1293, 682, 681, 1293, 1305, 1305, 1305, + 1355, 680, 1358, 1358, 1358, 679, 678, 1305, 1355, 1305, + 1305, 1305, 1305, 1357, 677, 675, 1355, 673, 672, 671, + 670, 669, 668, 1305, 1310, 1310, 1310, 667, 666, 1357, + + 665, 664, 663, 662, 661, 658, 650, 1310, 1310, 1310, + 648, 647, 1358, 646, 645, 644, 643, 642, 1358, 641, + 640, 639, 638, 637, 1310, 1310, 1310, 1310, 1358, 636, + 635, 1310, 634, 633, 1310, 632, 631, 1310, 630, 629, + 1310, 1324, 1324, 1324, 627, 626, 625, 624, 623, 622, + 621, 1324, 620, 1324, 1324, 1324, 1324, 619, 618, 617, + 615, 613, 612, 611, 610, 608, 604, 1324, 603, 596, + 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, + 583, 1324, 1326, 1326, 1326, 582, 581, 580, 579, 578, + 577, 576, 1326, 575, 1326, 1326, 1326, 1326, 574, 572, + + 571, 570, 569, 568, 567, 566, 565, 564, 1326, 562, + 561, 560, 558, 557, 556, 555, 554, 553, 552, 551, + 550, 547, 1326, 1345, 1345, 1345, 546, 545, 544, 543, + 542, 541, 540, 1345, 539, 1345, 1345, 1345, 1345, 538, + 536, 535, 534, 533, 532, 531, 530, 529, 527, 1345, + 526, 517, 516, 515, 513, 512, 511, 510, 509, 508, + 507, 506, 505, 1345, 1347, 1347, 1347, 504, 503, 501, + 499, 498, 496, 495, 1347, 494, 1347, 1347, 1347, 1347, + 493, 492, 491, 490, 489, 486, 485, 484, 483, 482, + 1347, 481, 480, 479, 478, 477, 476, 475, 473, 472, + + 470, 469, 468, 467, 1347, 1353, 1353, 1353, 465, 464, + 463, 462, 461, 460, 459, 1353, 458, 1353, 1353, 1353, + 1353, 457, 455, 454, 453, 452, 451, 450, 449, 448, + 447, 1353, 445, 444, 443, 442, 441, 440, 439, 437, + 436, 435, 434, 433, 432, 1353, 431, 430, 429, 428, + 427, 426, 425, 423, 422, 421, 420, 419, 418, 417, + 416, 1353, 1354, 1354, 1354, 415, 414, 413, 412, 411, + 410, 409, 1354, 408, 1354, 1354, 1354, 1354, 407, 406, + 404, 403, 402, 401, 399, 398, 397, 396, 1354, 395, + 394, 393, 392, 391, 389, 388, 387, 385, 384, 382, + + 381, 379, 1354, 378, 377, 376, 375, 374, 373, 372, + 371, 369, 367, 366, 365, 364, 363, 362, 1354, 1356, + 1356, 1356, 361, 360, 359, 358, 357, 356, 355, 1356, + 354, 1356, 1356, 1356, 1356, 352, 351, 350, 349, 348, + 346, 343, 340, 339, 338, 1356, 337, 336, 335, 334, + 333, 332, 331, 330, 328, 327, 326, 325, 323, 1356, + 322, 321, 319, 318, 317, 316, 314, 313, 312, 311, + 310, 309, 305, 304, 303, 1356, 1359, 1359, 1359, 302, + 301, 300, 299, 297, 296, 295, 1359, 294, 1359, 1359, + 1359, 1359, 292, 290, 289, 288, 287, 286, 284, 281, + + 280, 279, 1359, 278, 277, 276, 275, 274, 273, 272, + 271, 270, 265, 263, 262, 260, 1359, 259, 258, 257, + 255, 254, 252, 251, 250, 249, 247, 243, 239, 237, + 235, 233, 1359, 1362, 1362, 1362, 1362, 1362, 1362, 1362, + 1362, 1362, 1362, 1362, 1362, 1363, 1363, 1363, 1363, 1363, + 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1365, + 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1365, + 1365, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1366, + 1366, 1366, 1366, 1367, 1367, 1367, 1367, 1367, 1367, 1367, + + 1367, 1367, 1367, 1367, 1367, 1368, 1368, 1368, 1368, 1368, + 1368, 1368, 1368, 1368, 1368, 1368, 1368, 1369, 1369, 1369, + 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1369, 1370, + 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, 1370, + 1370, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, 1371, + 1371, 1371, 1371, 1372, 1372, 1372, 1372, 1372, 1372, 1372, + 1372, 1372, 1372, 1372, 1372, 1373, 1373, 1373, 1373, 1373, + 1373, 1373, 1373, 1373, 1373, 1373, 1373, 1374, 1374, 1374, + 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1374, 1375, + 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, 1375, + + 1375, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1376, + 1376, 1376, 1376, 1377, 1377, 1377, 1377, 1377, 1377, 1377, + 1377, 1377, 1377, 1377, 1377, 1378, 1378, 1378, 1378, 1378, + 1378, 1378, 1378, 1378, 1378, 1378, 1378, 1379, 232, 231, + 1379, 230, 1379, 1379, 1379, 1379, 1379, 1380, 229, 227, + 1380, 1380, 1380, 1380, 1380, 1380, 1380, 1381, 1381, 226, + 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1381, 1382, + 224, 222, 221, 1382, 1383, 220, 219, 1383, 1383, 1383, + 1383, 1383, 1383, 1383, 218, 1383, 1384, 216, 1384, 1384, + 1384, 1385, 1385, 1388, 215, 214, 1388, 1388, 1388, 1388, + + 1388, 1388, 1388, 1389, 213, 204, 1389, 1389, 1389, 1389, + 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1390, + 1390, 1390, 203, 1390, 1390, 1391, 1391, 1391, 1391, 1391, + 1391, 1391, 1391, 196, 1391, 1391, 1391, 1392, 1392, 1392, + 1392, 1392, 1392, 1392, 1392, 1392, 1392, 1393, 192, 188, + 184, 1393, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395, + 1395, 1395, 1395, 1395, 1395, 1395, 1403, 1403, 1403, 1403, + 1403, 1403, 1403, 1403, 1403, 170, 1403, 1403, 1413, 1413, + 1413, 1413, 1413, 1413, 1413, 1413, 1413, 1413, 169, 1413, + 167, 161, 160, 159, 157, 156, 155, 154, 153, 151, + + 149, 147, 145, 144, 143, 142, 141, 135, 124, 120, + 117, 114, 109, 108, 103, 93, 89, 82, 80, 78, + 77, 76, 74, 73, 72, 70, 68, 62, 58, 55, + 52, 45, 42, 41, 34, 33, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, 1361, + 1361, 1361, 1361, 1361, 1361, 1361 - 21, 21, 27, 27, 27, 28, 28, 28, 136, 29, - 30, 206, 137, 33, 34, 137, 137, 75, 72, 139, - 72, 138, 136, 75, 139, 138, 206, 75, 142, 150, - 1115, 29, 30, 150, 159, 33, 34, 75, 192, 142, - 159, 193, 150, 192, 159, 211, 193, 666, 199, 666, - 211, 388, 388, 27, 159, 27, 28, 199, 28, 29, - 30, 29, 30, 33, 34, 33, 34, 68, 68, 72, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 79, 79, 79, 80, 80, 80, 82, - 82, 82, 133, 133, 133, 134, 134, 134, 714, 144, - 144, 144, 394, 394, 146, 146, 146, 207, 714, 148, - 148, 148, 151, 151, 151, 134, 151, 155, 207, 155, - 161, 161, 161, 162, 162, 162, 1111, 82, 151, 471, - 151, 146, 194, 194, 79, 82, 471, 80, 144, 146, - 148, 164, 164, 164, 194, 133, 395, 395, 134, 178, - 178, 178, 144, 179, 179, 179, 201, 146, 216, 216, - - 216, 162, 148, 201, 222, 251, 222, 201, 155, 162, - 255, 161, 222, 251, 239, 304, 239, 241, 241, 164, - 251, 1110, 239, 255, 262, 262, 262, 164, 239, 304, - 288, 314, 314, 314, 241, 315, 315, 315, 334, 334, - 334, 360, 178, 288, 288, 360, 179, 318, 318, 318, - 693, 216, 693, 371, 371, 371, 436, 436, 360, 375, - 375, 375, 376, 376, 376, 387, 387, 387, 457, 457, - 391, 391, 391, 458, 458, 262, 281, 281, 281, 391, - 402, 315, 314, 393, 393, 393, 281, 397, 281, 281, - 281, 281, 376, 472, 472, 402, 397, 465, 318, 371, - - 281, 328, 328, 328, 404, 404, 404, 435, 435, 435, - 375, 328, 465, 328, 328, 328, 328, 445, 445, 445, - 460, 391, 439, 439, 439, 328, 333, 333, 333, 460, - 1109, 439, 456, 456, 456, 782, 333, 782, 333, 333, - 333, 333, 468, 468, 468, 503, 503, 445, 504, 504, - 333, 336, 336, 336, 506, 469, 469, 469, 531, 531, - 467, 467, 467, 506, 336, 336, 336, 473, 473, 473, - 474, 474, 474, 439, 502, 502, 502, 527, 1108, 336, - 336, 336, 336, 1107, 511, 602, 336, 538, 538, 336, - 1106, 527, 336, 468, 336, 367, 367, 367, 467, 511, - - 602, 467, 513, 513, 513, 367, 469, 367, 367, 367, - 367, 514, 514, 514, 515, 515, 515, 568, 568, 367, - 386, 386, 386, 532, 532, 532, 537, 537, 537, 1105, - 386, 1104, 386, 386, 386, 386, 574, 574, 574, 597, - 513, 575, 575, 513, 386, 389, 389, 389, 597, 582, - 582, 582, 594, 594, 533, 533, 533, 1103, 389, 389, - 389, 532, 514, 1102, 532, 515, 578, 578, 578, 1101, - 534, 534, 534, 389, 389, 389, 389, 579, 579, 579, - 389, 595, 595, 389, 634, 634, 389, 1100, 389, 434, - 434, 434, 533, 635, 635, 533, 535, 535, 535, 434, - - 582, 434, 434, 434, 434, 534, 662, 662, 534, 637, - 1099, 534, 1091, 434, 437, 437, 437, 642, 637, 578, - 593, 593, 593, 569, 569, 569, 1090, 437, 437, 437, - 579, 730, 642, 535, 535, 689, 689, 535, 570, 570, - 570, 730, 437, 437, 437, 437, 633, 633, 633, 437, - 699, 699, 437, 733, 733, 437, 1044, 437, 470, 470, - 470, 569, 734, 734, 569, 571, 571, 571, 470, 1042, - 470, 470, 470, 470, 713, 1041, 570, 729, 713, 570, - 1040, 729, 470, 516, 516, 516, 741, 572, 572, 572, - 651, 651, 651, 516, 759, 516, 516, 516, 516, 1039, - - 571, 741, 759, 571, 753, 753, 571, 516, 539, 539, - 539, 645, 645, 645, 698, 698, 698, 591, 591, 591, - 736, 539, 539, 539, 572, 572, 770, 770, 572, 736, - 592, 592, 592, 732, 732, 732, 539, 539, 539, 539, - 758, 651, 1037, 539, 778, 778, 539, 775, 803, 539, - 758, 539, 576, 576, 576, 591, 591, 775, 591, 604, - 604, 604, 776, 803, 645, 576, 576, 576, 592, 1027, - 776, 592, 631, 631, 631, 592, 632, 632, 632, 830, - 576, 576, 576, 576, 644, 644, 644, 576, 791, 791, - 576, 795, 795, 576, 830, 576, 1025, 604, 796, 796, - - 604, 647, 647, 647, 660, 660, 660, 752, 752, 752, - 631, 631, 604, 631, 632, 798, 1024, 632, 769, 769, - 769, 632, 644, 825, 798, 644, 790, 790, 790, 794, - 794, 794, 825, 661, 661, 661, 808, 644, 1023, 663, - 663, 663, 660, 842, 808, 660, 664, 664, 664, 660, - 665, 665, 665, 842, 647, 652, 652, 652, 835, 687, - 687, 687, 817, 817, 817, 652, 835, 652, 652, 652, - 652, 661, 818, 818, 661, 1022, 661, 663, 1020, 652, - 663, 688, 688, 688, 664, 665, 899, 664, 665, 822, - 822, 665, 663, 690, 690, 690, 899, 687, 854, 664, - - 687, 823, 823, 665, 687, 841, 691, 691, 691, 841, - 692, 692, 692, 854, 709, 709, 709, 846, 846, 688, - 847, 847, 688, 849, 688, 857, 857, 777, 777, 777, - 992, 690, 849, 986, 690, 743, 743, 743, 821, 821, - 821, 845, 845, 845, 691, 692, 690, 691, 692, 866, - 866, 692, 709, 874, 874, 709, 984, 709, 877, 691, - 725, 725, 725, 692, 700, 700, 700, 877, 805, 805, - 805, 875, 875, 743, 885, 885, 743, 700, 700, 700, - 777, 832, 832, 832, 837, 837, 837, 983, 743, 751, - 751, 751, 700, 700, 700, 700, 894, 894, 725, 700, - - 982, 725, 700, 725, 981, 700, 805, 700, 710, 710, - 710, 856, 856, 856, 882, 768, 768, 768, 710, 832, - 710, 710, 710, 710, 843, 843, 843, 751, 979, 882, - 751, 966, 710, 900, 779, 779, 779, 837, 789, 789, - 789, 900, 780, 780, 780, 964, 710, 903, 903, 710, - 726, 726, 726, 768, 911, 911, 768, 865, 865, 865, - 726, 963, 726, 726, 726, 726, 873, 873, 873, 884, - 884, 884, 779, 962, 726, 779, 789, 843, 961, 789, - 780, 915, 915, 780, 816, 816, 816, 779, 726, 916, - 916, 726, 749, 749, 749, 780, 927, 927, 781, 781, - - 781, 959, 749, 951, 749, 749, 749, 749, 858, 858, - 858, 859, 859, 859, 918, 942, 749, 750, 750, 750, - 923, 950, 816, 918, 942, 816, 952, 750, 948, 750, - 750, 750, 750, 781, 952, 923, 781, 935, 935, 781, - 946, 750, 754, 754, 754, 945, 858, 939, 939, 859, - 944, 781, 864, 864, 864, 754, 754, 754, 943, 860, - 860, 860, 940, 940, 886, 886, 886, 893, 893, 893, - 754, 754, 754, 754, 901, 901, 901, 754, 957, 957, - 754, 958, 958, 754, 941, 754, 766, 766, 766, 947, - 864, 968, 968, 864, 860, 924, 766, 860, 766, 766, - - 766, 766, 886, 922, 947, 864, 887, 887, 887, 921, - 766, 767, 767, 767, 904, 904, 904, 888, 888, 888, - 920, 767, 919, 767, 767, 767, 767, 901, 905, 905, - 905, 892, 892, 892, 960, 767, 771, 771, 771, 910, - 910, 910, 965, 960, 887, 909, 909, 909, 917, 771, - 771, 771, 888, 977, 977, 888, 898, 965, 906, 906, - 906, 914, 914, 914, 771, 771, 771, 771, 897, 892, - 985, 771, 892, 889, 771, 978, 978, 771, 883, 771, - 787, 787, 787, 909, 892, 985, 909, 928, 928, 928, - 787, 881, 787, 787, 787, 787, 906, 906, 909, 925, - - 925, 925, 988, 988, 787, 792, 792, 792, 929, 929, - 929, 934, 934, 934, 880, 930, 930, 930, 792, 792, - 792, 938, 938, 938, 956, 956, 956, 933, 933, 933, - 967, 967, 967, 792, 792, 792, 792, 925, 980, 879, - 792, 997, 997, 792, 1001, 1001, 792, 980, 792, 809, - 809, 809, 925, 930, 930, 949, 949, 949, 878, 809, - 876, 809, 809, 809, 809, 933, 1006, 1006, 933, 954, - 954, 954, 869, 809, 861, 969, 969, 969, 1014, 1014, - 933, 1018, 1018, 967, 809, 814, 814, 814, 855, 970, - 970, 970, 853, 949, 852, 814, 851, 814, 814, 814, - - 814, 976, 976, 976, 987, 987, 987, 954, 949, 814, - 819, 819, 819, 969, 954, 996, 996, 996, 1019, 1019, - 974, 974, 974, 819, 819, 819, 850, 970, 969, 1026, - 1002, 1002, 1002, 848, 1021, 971, 971, 971, 819, 819, - 819, 819, 970, 1021, 1026, 819, 1035, 1035, 819, 1036, - 1036, 819, 840, 819, 836, 836, 836, 987, 974, 989, - 989, 989, 1038, 839, 836, 974, 836, 836, 836, 836, - 971, 1038, 1043, 971, 1013, 1013, 1013, 834, 836, 833, - 990, 990, 990, 1002, 991, 991, 991, 1043, 971, 836, - 862, 862, 862, 995, 995, 995, 831, 989, 1046, 1046, - - 862, 829, 862, 862, 862, 862, 1000, 1000, 1000, 1003, - 1003, 1003, 989, 828, 862, 863, 863, 863, 990, 991, - 1054, 1054, 991, 827, 826, 863, 824, 863, 863, 863, - 863, 995, 812, 990, 995, 811, 810, 991, 807, 863, - 867, 867, 867, 806, 1000, 804, 995, 802, 801, 1000, - 1004, 1004, 1004, 867, 867, 867, 800, 1005, 1005, 1005, - 799, 797, 1003, 1007, 1007, 1007, 784, 774, 867, 867, - 867, 867, 1008, 1008, 1008, 867, 773, 765, 867, 764, - 763, 867, 761, 867, 890, 890, 890, 760, 1004, 1004, - 1009, 1009, 1009, 757, 890, 1005, 890, 890, 890, 890, - - 1005, 756, 748, 1004, 1012, 1012, 1012, 747, 890, 891, - 891, 891, 1017, 1017, 1017, 746, 1007, 744, 742, 891, - 740, 891, 891, 891, 891, 1008, 739, 738, 1009, 1009, - 1028, 1028, 1028, 891, 895, 895, 895, 1034, 1034, 1034, - 737, 735, 1012, 1009, 731, 1012, 728, 895, 895, 895, - 727, 724, 723, 1045, 1045, 1045, 722, 1012, 1047, 1047, - 1047, 721, 895, 895, 895, 895, 718, 717, 1028, 895, - 715, 712, 895, 711, 708, 895, 707, 895, 907, 907, - 907, 706, 705, 1028, 1030, 1030, 1030, 703, 907, 702, - 907, 907, 907, 907, 695, 686, 1047, 685, 1065, 1065, - - 1065, 683, 907, 912, 912, 912, 1045, 682, 681, 679, - 675, 1047, 671, 669, 668, 659, 912, 912, 912, 658, - 657, 656, 1030, 655, 654, 653, 650, 649, 643, 1030, - 641, 912, 912, 912, 912, 640, 639, 1030, 912, 1065, - 638, 912, 636, 630, 912, 629, 912, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 926, - 926, 926, 926, 926, 926, 926, 926, 926, 926, 628, - - 926, 926, 926, 931, 931, 931, 626, 1032, 1032, 1032, - 625, 624, 623, 931, 622, 931, 931, 931, 931, 621, - 619, 617, 616, 1048, 1048, 1048, 615, 931, 936, 936, - 936, 614, 611, 609, 608, 606, 605, 1051, 1051, 1051, - 603, 936, 936, 936, 601, 1032, 600, 599, 1055, 1055, - 1055, 598, 1032, 1049, 1049, 1049, 936, 936, 936, 936, - 1032, 1048, 596, 936, 590, 589, 936, 587, 586, 936, - 585, 936, 953, 953, 953, 1051, 1048, 1056, 1056, 1056, - 1051, 584, 953, 583, 953, 953, 953, 953, 1049, 581, - 1051, 1049, 580, 567, 566, 565, 953, 564, 1053, 1053, - - 1053, 1055, 1061, 1061, 1061, 563, 1049, 953, 993, 993, - 993, 1057, 1057, 1057, 1062, 1062, 1062, 562, 993, 561, - 993, 993, 993, 993, 1060, 1060, 1060, 1063, 1063, 1063, - 1056, 560, 993, 994, 994, 994, 1053, 559, 558, 555, - 1061, 1053, 554, 994, 553, 994, 994, 994, 994, 1057, - 1057, 1053, 1062, 552, 550, 1061, 549, 994, 998, 998, - 998, 548, 1060, 547, 1057, 1063, 546, 1062, 545, 1060, - 1063, 998, 998, 998, 544, 543, 542, 1060, 541, 528, - 1063, 526, 523, 522, 521, 520, 998, 998, 998, 998, - 519, 518, 517, 998, 512, 510, 998, 509, 508, 998, - - 507, 998, 1010, 1010, 1010, 505, 501, 500, 499, 498, - 497, 496, 1010, 495, 1010, 1010, 1010, 1010, 494, 493, - 492, 491, 490, 488, 487, 486, 1010, 1015, 1015, 1015, - 485, 484, 483, 482, 480, 479, 478, 477, 476, 475, - 1015, 1015, 1015, 466, 464, 463, 462, 461, 459, 455, - 454, 453, 452, 451, 450, 1015, 1015, 1015, 1015, 449, - 448, 446, 1015, 444, 443, 1015, 442, 441, 1015, 440, - 1015, 1029, 1029, 1029, 433, 431, 430, 429, 428, 427, - 426, 1029, 425, 1029, 1029, 1029, 1029, 424, 423, 422, - 421, 420, 419, 418, 417, 1029, 416, 415, 413, 412, - - 411, 410, 409, 408, 407, 406, 405, 403, 401, 1029, - 1031, 1031, 1031, 400, 399, 398, 396, 392, 385, 384, - 1031, 383, 1031, 1031, 1031, 1031, 382, 381, 380, 379, - 378, 377, 374, 373, 1031, 372, 370, 369, 368, 366, - 365, 364, 363, 362, 361, 359, 358, 357, 1031, 1050, - 1050, 1050, 356, 355, 354, 353, 352, 351, 350, 1050, - 348, 1050, 1050, 1050, 1050, 347, 346, 345, 344, 343, - 342, 341, 340, 1050, 339, 330, 329, 327, 326, 325, - 324, 323, 322, 321, 320, 319, 317, 1050, 1052, 1052, - 1052, 316, 313, 312, 311, 310, 308, 307, 1052, 306, - - 1052, 1052, 1052, 1052, 305, 303, 302, 301, 300, 299, - 297, 296, 1052, 295, 294, 293, 292, 291, 290, 289, - 287, 286, 285, 284, 283, 282, 1052, 1058, 1058, 1058, - 280, 279, 278, 277, 276, 275, 274, 1058, 273, 1058, - 1058, 1058, 1058, 272, 271, 270, 268, 267, 266, 265, - 264, 1058, 263, 260, 259, 258, 257, 256, 254, 253, - 252, 250, 249, 248, 247, 1058, 246, 245, 244, 243, - 242, 240, 238, 237, 236, 235, 234, 233, 232, 231, - 1058, 1059, 1059, 1059, 230, 229, 228, 226, 225, 224, - 223, 1059, 221, 1059, 1059, 1059, 1059, 218, 215, 214, - - 213, 212, 210, 209, 208, 1059, 205, 204, 203, 202, - 200, 198, 197, 196, 195, 191, 190, 189, 188, 1059, - 187, 186, 185, 184, 183, 182, 181, 176, 174, 169, - 166, 165, 156, 153, 1059, 1064, 1064, 1064, 152, 149, - 147, 145, 143, 141, 127, 1064, 126, 1064, 1064, 1064, - 1064, 113, 95, 92, 85, 77, 67, 64, 63, 1064, - 61, 50, 43, 40, 39, 32, 31, 0, 0, 0, - 0, 0, 0, 1064, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1064, 1067, - 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, - - 1067, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, - 1068, 1068, 1068, 1069, 1069, 1069, 1069, 1069, 1069, 1069, - 1069, 1069, 1069, 1069, 1069, 1070, 1070, 1070, 1070, 1070, - 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1071, - 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1072, - 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, - 1072, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, - 1073, 1073, 1073, 1074, 1074, 1074, 1074, 1074, 1074, 1074, - 1074, 1074, 1074, 1074, 1074, 1075, 1075, 1075, 1075, 1075, - 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076, 1076, 1076, - - 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1077, - 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, - 1077, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, - 1078, 1078, 1078, 1079, 1079, 1079, 1079, 1079, 1079, 1079, - 1079, 1079, 1079, 1079, 1079, 1080, 1080, 1080, 1080, 1080, - 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1081, 1081, 1081, - 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1082, - 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, 1082, - 1082, 1083, 0, 0, 1083, 0, 1083, 1083, 1083, 1083, - 1083, 1084, 0, 0, 1084, 1084, 1084, 1084, 1084, 1084, - - 1084, 1085, 1085, 0, 1085, 1085, 1085, 1085, 1085, 1085, - 1085, 1085, 1085, 1086, 0, 0, 0, 1086, 1087, 0, - 0, 1087, 1087, 1087, 1087, 1087, 1087, 1087, 0, 1087, - 1088, 0, 1088, 1088, 1088, 1089, 1089, 1092, 0, 0, - 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1093, 1093, 1093, - 1093, 1093, 1093, 1093, 1093, 1093, 0, 1093, 1093, 1094, - 1094, 1094, 1094, 1094, 1094, 1094, 1094, 0, 1094, 1094, - 1094, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, 1095, - 1095, 1096, 0, 0, 0, 1096, 1097, 1097, 1098, 1098, - 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, 1098, - - 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, - 0, 1113, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, - 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066 } ; static yy_state_type yy_last_accepting_state; @@ -1566,13 +1737,15 @@ int yy_flex_debug = 0; #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; -#line 1 "../../../texk/detex/detex-src/detex.l" +#line 1 "detex.l" -#line 95 "../../../texk/detex/detex-src/detex.l" +#line 89 "detex.l" #undef IGNORE #define LaBEGIN if (fLatex) BEGIN #define IGNORE if (fSpace && !fWord) putchar(' ') +#define NOUN if (fSpace && !fWord && !fReplace) putchar(' '); else {if (fReplace) printf("noun");} +#define VERBNOUN if (fReplace) printf(" verbs noun"); /* puts a verb and a noun to make grammar checking work */ #define SPACE if (!fWord) putchar(' ') #define NEWLINE if (!fWord) putchar('\n') #define LATEX fLatex=!fForcetex @@ -1580,15 +1753,18 @@ char *yytext; #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 #define CITE(x) if (fLatex && !fCite) KILLARGS(x) +#define NO_MALLOC_DECL + void AddInclude(char *sbFile); void ErrorExit(const char *sb1); +void UsageExit(void); void IncludeFile(char *sbFile); void InputFile(char *sbFile); void SetEnvIgnore(const char *sbEnvList); #ifndef KPATHSEA void SetInputPaths(void); #endif -void Warning(const char *sb1, const char *sb2); +void Warning(const char *sb1, const char *sb2); int BeginEnv(const char *sbEnv); int EndEnv(const char *sbEnv); int InList(char *sbFile); @@ -1609,7 +1785,7 @@ void OS2UsageExit(void); char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ +char sbCurrentIgnoredEnv[CCHMAXENV]; /* current environment being ignored */ char *sbProgName; /* name we were invoked with */ #ifndef NOFILE /* might be defined in */ #define NOFILE 256 @@ -1627,6 +1803,11 @@ int fFollow = 1; /* flag to follow input/include */ int fCite = 0; /* flag to echo \cite and \ref args */ int fSpace = 0; /* flag to replace \cs with space */ int fForcetex = 0; /* flag to inhibit latex mode */ +int fShowPictures = 0; /* flag to show picture names */ +int fReplace = 0; /* flag to replace envirnments with "noun" */ + +int currBracesLevel = 0; +int footnoteLevel = -100; #ifdef FLEX_SCANNER /* flex has contexts for buffers that need to be switched when file changes @@ -1641,7 +1822,7 @@ int csb = 0; /* depth of flex context stack */ -#line 1645 "../../../texk/detex/detex-src/detex.c" +#line 1825 "lex.yy.c" #define INITIAL 0 #define Define 1 @@ -1657,13 +1838,14 @@ int csb = 0; /* depth of flex context stack */ #define LaEnv 11 #define LaFormula 12 #define LaInclude 13 -#define LaMacro 14 -#define LaOptArg 15 -#define LaMacro2 16 -#define LaOptArg2 17 -#define LaVerbatim 18 -#define LaBreak 19 -#define LaPicture 20 +#define LaSubfile 14 +#define LaMacro 15 +#define LaOptArg 16 +#define LaMacro2 17 +#define LaOptArg2 18 +#define LaVerbatim 19 +#define LaBreak 20 +#define LaPicture 21 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -1700,7 +1882,7 @@ FILE *yyget_out (void ); void yyset_out (FILE * _out_str ); -yy_size_t yyget_leng (void ); + int yyget_leng (void ); char *yyget_text (void ); @@ -1759,7 +1941,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -1783,7 +1965,7 @@ static int input (void ); else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ + while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -1879,9 +2061,9 @@ YY_DECL } { -#line 182 "../../../texk/detex/detex-src/detex.l" +#line 187 "detex.l" -#line 1885 "../../../texk/detex/detex-src/detex.c" +#line 2066 "lex.yy.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1908,13 +2090,13 @@ yy_match: 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 >= 1067 ) + if ( yy_current_state >= 1362 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; ++yy_cp; } - while ( yy_current_state != 1066 ); + while ( yy_current_state != 1361 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1936,25 +2118,25 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 183 "../../../texk/detex/detex-src/detex.l" +#line 188 "detex.l" /* ignore comments */ ; YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP -#line 185 "../../../texk/detex/detex-src/detex.l" +#line 190 "detex.l" {LATEX; IGNORE;} YY_BREAK case 3: YY_RULE_SETUP -#line 187 "../../../texk/detex/detex-src/detex.l" +#line 192 "detex.l" /* environment start */ {LaBEGIN LaBegin; IGNORE;} YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP -#line 189 "../../../texk/detex/detex-src/detex.l" -{ if (BeginEnv("verbatim")) +#line 194 "detex.l" +{ if (BeginEnv("verbatim")) BEGIN LaEnv; else BEGIN LaVerbatim; @@ -1964,705 +2146,895 @@ YY_RULE_SETUP case 5: /* rule 5 can match eol */ YY_RULE_SETUP -#line 196 "../../../texk/detex/detex-src/detex.l" +#line 201 "detex.l" /* verbatim mode */ {BEGIN Normal; IGNORE;} YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 197 "../../../texk/detex/detex-src/detex.l" +#line 202 "detex.l" ECHO; YY_BREAK case 7: YY_RULE_SETUP -#line 198 "../../../texk/detex/detex-src/detex.l" +#line 203 "detex.l" ECHO; YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 200 "../../../texk/detex/detex-src/detex.l" +#line 205 "detex.l" { KILLARGS(1); - if (BeginEnv("minpage")) + if (BeginEnv("minipage")) BEGIN LaEnv; else - BEGIN Normal; + BEGIN LaMacro; /* Normal; */ IGNORE; } YY_BREAK case 9: +/* rule 9 can match eol */ YY_RULE_SETUP -#line 208 "../../../texk/detex/detex-src/detex.l" -{ if (BeginEnv(yytext)) +#line 213 "detex.l" +{ + if (BeginEnv("table")) BEGIN LaEnv; - else + else BEGIN Normal; - IGNORE; + IGNORE; } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 214 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 221 "detex.l" +{ + if (BeginEnv("figure")) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } YY_BREAK case 11: YY_RULE_SETUP -#line 215 "../../../texk/detex/detex-src/detex.l" -; +#line 229 "detex.l" +{ if (BeginEnv(yytext)) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } YY_BREAK +/*"\n" NEWLINE;*/ case 12: YY_RULE_SETUP -#line 217 "../../../texk/detex/detex-src/detex.l" -/* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} +#line 236 "detex.l" +; YY_BREAK case 13: -/* rule 13 can match eol */ YY_RULE_SETUP -#line 218 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 238 "detex.l" +/* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} YY_BREAK case 14: +/* rule 14 can match eol */ YY_RULE_SETUP -#line 219 "../../../texk/detex/detex-src/detex.l" -; +#line 239 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 15: YY_RULE_SETUP -#line 221 "../../../texk/detex/detex-src/detex.l" +#line 240 "detex.l" +; + YY_BREAK +case 16: +YY_RULE_SETUP +#line 242 "detex.l" /* end environment */ { if (EndEnv(yytext)) BEGIN Normal; IGNORE; } YY_BREAK -case 16: -YY_RULE_SETUP -#line 225 "../../../texk/detex/detex-src/detex.l" -{BEGIN LaEnv; IGNORE;} - YY_BREAK case 17: -/* rule 17 can match eol */ YY_RULE_SETUP -#line 226 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 246 "detex.l" +{BEGIN LaEnv; IGNORE;} YY_BREAK +/*"\n" NEWLINE;*/ case 18: YY_RULE_SETUP -#line 227 "../../../texk/detex/detex-src/detex.l" +#line 248 "detex.l" ; YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP -#line 229 "../../../texk/detex/detex-src/detex.l" +#line 250 "detex.l" ; YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP -#line 230 "../../../texk/detex/detex-src/detex.l" +#line 251 "detex.l" ; YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP -#line 231 "../../../texk/detex/detex-src/detex.l" +#line 252 "detex.l" ; YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP -#line 232 "../../../texk/detex/detex-src/detex.l" +#line 253 "detex.l" ; YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP -#line 233 "../../../texk/detex/detex-src/detex.l" +#line 254 "detex.l" ; YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP -#line 234 "../../../texk/detex/detex-src/detex.l" +#line 255 "detex.l" ; YY_BREAK case 25: YY_RULE_SETUP -#line 236 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 256 "detex.l" +; /* hack to fix \begin{minipage}{300pt} */ YY_BREAK case 26: YY_RULE_SETUP -#line 237 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 258 "detex.l" +{ KILLARGS(1); } YY_BREAK case 27: YY_RULE_SETUP -#line 238 "../../../texk/detex/detex-src/detex.l" +#line 259 "detex.l" { KILLARGS(2); } YY_BREAK case 28: YY_RULE_SETUP -#line 239 "../../../texk/detex/detex-src/detex.l" +#line 260 "detex.l" { KILLARGS(2); } YY_BREAK case 29: YY_RULE_SETUP -#line 240 "../../../texk/detex/detex-src/detex.l" +#line 261 "detex.l" { KILLARGS(2); } YY_BREAK case 30: YY_RULE_SETUP -#line 241 "../../../texk/detex/detex-src/detex.l" +#line 262 "detex.l" { KILLARGS(2); } YY_BREAK case 31: YY_RULE_SETUP -#line 242 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 263 "detex.l" +{ KILLARGS(2); } YY_BREAK case 32: YY_RULE_SETUP -#line 243 "../../../texk/detex/detex-src/detex.l" +#line 264 "detex.l" { KILLARGS(1); } YY_BREAK case 33: YY_RULE_SETUP -#line 244 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 265 "detex.l" +{ KILLARGS(1); } YY_BREAK case 34: YY_RULE_SETUP -#line 245 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 266 "detex.l" +{ KILLARGS(2); } YY_BREAK case 35: YY_RULE_SETUP -#line 246 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(2); } +#line 267 "detex.l" +{ KILLARGS(1); } YY_BREAK case 36: YY_RULE_SETUP -#line 247 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 268 "detex.l" +{ STRIPARGS(2); } YY_BREAK case 37: YY_RULE_SETUP -#line 248 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(2); } +#line 269 "detex.l" +{ KILLARGS(1); } YY_BREAK case 38: YY_RULE_SETUP -#line 249 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 270 "detex.l" +{ STRIPARGS(2); } YY_BREAK case 39: YY_RULE_SETUP -#line 250 "../../../texk/detex/detex-src/detex.l" -; +#line 271 "detex.l" +{ KILLARGS(2); } YY_BREAK case 40: YY_RULE_SETUP -#line 251 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 272 "detex.l" +; YY_BREAK case 41: -/* rule 41 can match eol */ YY_RULE_SETUP -#line 252 "../../../texk/detex/detex-src/detex.l" -{ LaBEGIN LaPicture; } +#line 273 "detex.l" +{ KILLARGS(1); } YY_BREAK case 42: +/* rule 42 can match eol */ YY_RULE_SETUP -#line 254 "../../../texk/detex/detex-src/detex.l" -; +#line 274 "detex.l" +{ LaBEGIN LaPicture; } YY_BREAK case 43: -/* rule 43 can match eol */ YY_RULE_SETUP -#line 255 "../../../texk/detex/detex-src/detex.l" -{ printf("", yytext); } +#line 276 "detex.l" +; YY_BREAK case 44: +/* rule 44 can match eol */ YY_RULE_SETUP -#line 256 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 277 "detex.l" +{ if(fShowPictures) { printf("", yytext); } } YY_BREAK case 45: +/* rule 45 can match eol */ YY_RULE_SETUP -#line 258 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(3); } +#line 278 "detex.l" +BEGIN Normal; YY_BREAK case 46: YY_RULE_SETUP -#line 259 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 279 "detex.l" +BEGIN Normal; YY_BREAK case 47: YY_RULE_SETUP -#line 260 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 281 "detex.l" +{ KILLARGS(3); } YY_BREAK case 48: YY_RULE_SETUP -#line 261 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(2); } +#line 282 "detex.l" +{ KILLARGS(1); } YY_BREAK case 49: YY_RULE_SETUP -#line 262 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(3); } +#line 283 "detex.l" +{ KILLARGS(2); } YY_BREAK case 50: YY_RULE_SETUP -#line 263 "../../../texk/detex/detex-src/detex.l" -{ KILLARGS(1); } +#line 284 "detex.l" +{ KILLARGS(2); } YY_BREAK case 51: YY_RULE_SETUP -#line 264 "../../../texk/detex/detex-src/detex.l" -{ STRIPARGS(1); } +#line 285 "detex.l" +{ KILLARGS(3); } YY_BREAK case 52: YY_RULE_SETUP -#line 266 "../../../texk/detex/detex-src/detex.l" -; +#line 286 "detex.l" +{ KILLARGS(1); } YY_BREAK case 53: YY_RULE_SETUP -#line 267 "../../../texk/detex/detex-src/detex.l" -; +#line 287 "detex.l" +{ STRIPARGS(1); } YY_BREAK case 54: YY_RULE_SETUP -#line 268 "../../../texk/detex/detex-src/detex.l" -; +#line 288 "detex.l" +{ KILLARGS(1); } YY_BREAK case 55: YY_RULE_SETUP -#line 269 "../../../texk/detex/detex-src/detex.l" -; +#line 289 "detex.l" +{ KILLARGS(1); } YY_BREAK case 56: YY_RULE_SETUP -#line 270 "../../../texk/detex/detex-src/detex.l" -; +#line 290 "detex.l" +{ KILLARGS(3); } YY_BREAK case 57: YY_RULE_SETUP -#line 271 "../../../texk/detex/detex-src/detex.l" -; +#line 292 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 58: YY_RULE_SETUP -#line 273 "../../../texk/detex/detex-src/detex.l" -/* ignore args */ {KILLARGS(1); IGNORE;} +#line 293 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 59: YY_RULE_SETUP -#line 274 "../../../texk/detex/detex-src/detex.l" -/* of these \cs */ {KILLARGS(1); IGNORE;} +#line 294 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 60: YY_RULE_SETUP -#line 275 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 295 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 61: YY_RULE_SETUP -#line 276 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 296 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 62: YY_RULE_SETUP -#line 277 "../../../texk/detex/detex-src/detex.l" -{LATEX; KILLARGS(1); IGNORE;} +#line 297 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 63: YY_RULE_SETUP -#line 278 "../../../texk/detex/detex-src/detex.l" -{LATEX; KILLARGS(1); IGNORE;} +#line 298 "detex.l" +;/*NEWLINE;*/ YY_BREAK case 64: YY_RULE_SETUP -#line 279 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 300 "detex.l" +/* ignore args */ {KILLARGS(1); IGNORE;} YY_BREAK case 65: YY_RULE_SETUP -#line 280 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 301 "detex.l" +/* of these \cs */ {KILLARGS(1); IGNORE;} YY_BREAK case 66: YY_RULE_SETUP -#line 281 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); SPACE;} +#line 302 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 67: YY_RULE_SETUP -#line 282 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); SPACE;} +#line 303 "detex.l" +{KILLARGS(1);} /* kill space before */ YY_BREAK case 68: YY_RULE_SETUP -#line 283 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 304 "detex.l" +{LATEX; KILLARGS(1); IGNORE;} YY_BREAK case 69: YY_RULE_SETUP -#line 284 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 305 "detex.l" +{LATEX; KILLARGS(1); IGNORE;} YY_BREAK case 70: YY_RULE_SETUP -#line 285 "../../../texk/detex/detex-src/detex.l" +#line 306 "detex.l" {KILLARGS(1); IGNORE;} YY_BREAK case 71: YY_RULE_SETUP -#line 286 "../../../texk/detex/detex-src/detex.l" -{CITE(1); IGNORE;} +#line 307 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 72: YY_RULE_SETUP -#line 287 "../../../texk/detex/detex-src/detex.l" -{KILLARGS(1); IGNORE;} +#line 308 "detex.l" +{KILLARGS(1);} YY_BREAK case 73: YY_RULE_SETUP -#line 288 "../../../texk/detex/detex-src/detex.l" -/* ignore \verb... */ { if (fLatex) { - char verbchar, c; - verbchar = input(); - while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; - } - IGNORE; - } +#line 309 "detex.l" +{KILLARGS(1);} YY_BREAK +/*"\\footnote" {KILLARGS(1); SPACE;}*/ case 74: YY_RULE_SETUP -#line 298 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(2); } +#line 311 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 75: YY_RULE_SETUP -#line 299 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(2); } +#line 312 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 76: YY_RULE_SETUP -#line 300 "../../../texk/detex/detex-src/detex.l" -{ LATEX; KILLARGS(3); } +#line 313 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 77: YY_RULE_SETUP -#line 302 "../../../texk/detex/detex-src/detex.l" -/* ignore def begin */ {BEGIN Define; IGNORE;} +#line 314 "detex.l" +{KILLARGS(1); IGNORE;} YY_BREAK case 78: YY_RULE_SETUP -#line 303 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 315 "detex.l" +{CITE(1); IGNORE;} YY_BREAK case 79: -/* rule 79 can match eol */ YY_RULE_SETUP -#line 304 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 316 "detex.l" +{KILLARGS(2); IGNORE;} YY_BREAK case 80: YY_RULE_SETUP -#line 305 "../../../texk/detex/detex-src/detex.l" -; +#line 317 "detex.l" +{KILLARGS(2); IGNORE;} YY_BREAK case 81: YY_RULE_SETUP -#line 307 "../../../texk/detex/detex-src/detex.l" -/* formula mode */ {LaBEGIN LaFormula; IGNORE;} +#line 318 "detex.l" +{ KILLARGS(1); } YY_BREAK case 82: YY_RULE_SETUP -#line 308 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 319 "detex.l" +{ KILLARGS(2); } YY_BREAK case 83: -/* rule 83 can match eol */ YY_RULE_SETUP -#line 309 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 321 "detex.l" +{KILLARGS(1);} YY_BREAK case 84: +/* rule 84 can match eol */ YY_RULE_SETUP -#line 310 "../../../texk/detex/detex-src/detex.l" -; +#line 323 "detex.l" +{ + putchar('('); + footnoteLevel = currBracesLevel; + ++currBracesLevel; + } YY_BREAK case 85: YY_RULE_SETUP -#line 312 "../../../texk/detex/detex-src/detex.l" -/* display mode */ {LaBEGIN LaDisplay; IGNORE;} +#line 328 "detex.l" +/* ignore \verb... */ { if (fLatex) { + char verbchar, c; + verbchar = input(); + while ((c = input()) != verbchar) + /*if (c == '\n') + NEWLINE;*/ + putchar(c); + } + IGNORE; + } YY_BREAK case 86: YY_RULE_SETUP -#line 313 "../../../texk/detex/detex-src/detex.l" -BEGIN Normal; +#line 339 "detex.l" +{ LATEX; KILLARGS(2); } YY_BREAK case 87: -/* rule 87 can match eol */ YY_RULE_SETUP -#line 314 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 340 "detex.l" +{ LATEX; KILLARGS(2); } YY_BREAK case 88: YY_RULE_SETUP -#line 315 "../../../texk/detex/detex-src/detex.l" -; +#line 341 "detex.l" +{ LATEX; KILLARGS(3); } YY_BREAK case 89: YY_RULE_SETUP -#line 317 "../../../texk/detex/detex-src/detex.l" -/* display mode */ {BEGIN Display; IGNORE;} +#line 343 "detex.l" +/* ignore def begin */ {BEGIN Define; IGNORE;} YY_BREAK case 90: YY_RULE_SETUP -#line 318 "../../../texk/detex/detex-src/detex.l" +#line 344 "detex.l" BEGIN Normal; YY_BREAK case 91: /* rule 91 can match eol */ YY_RULE_SETUP -#line 319 "../../../texk/detex/detex-src/detex.l" +#line 345 "detex.l" NEWLINE; YY_BREAK case 92: YY_RULE_SETUP -#line 320 "../../../texk/detex/detex-src/detex.l" +#line 346 "detex.l" ; YY_BREAK case 93: YY_RULE_SETUP -#line 322 "../../../texk/detex/detex-src/detex.l" -/* math mode */ {BEGIN Math; IGNORE;} +#line 348 "detex.l" +/* formula mode */ {LaBEGIN LaFormula; NOUN;} YY_BREAK case 94: YY_RULE_SETUP -#line 323 "../../../texk/detex/detex-src/detex.l" +#line 349 "detex.l" BEGIN Normal; YY_BREAK case 95: /* rule 95 can match eol */ YY_RULE_SETUP -#line 324 "../../../texk/detex/detex-src/detex.l" +#line 350 "detex.l" NEWLINE; YY_BREAK case 96: YY_RULE_SETUP -#line 325 "../../../texk/detex/detex-src/detex.l" -; +#line 351 "detex.l" +VERBNOUN; YY_BREAK case 97: YY_RULE_SETUP -#line 326 "../../../texk/detex/detex-src/detex.l" +#line 352 "detex.l" ; YY_BREAK case 98: YY_RULE_SETUP -#line 328 "../../../texk/detex/detex-src/detex.l" -/* process files */ {LaBEGIN LaInclude; IGNORE;} +#line 354 "detex.l" +/* display mode */ {LaBEGIN LaDisplay; NOUN;} YY_BREAK case 99: YY_RULE_SETUP -#line 329 "../../../texk/detex/detex-src/detex.l" -{ IncludeFile(yytext); - BEGIN Normal; - } +#line 355 "detex.l" +BEGIN Normal; YY_BREAK case 100: /* rule 100 can match eol */ YY_RULE_SETUP -#line 332 "../../../texk/detex/detex-src/detex.l" +#line 356 "detex.l" NEWLINE; YY_BREAK case 101: YY_RULE_SETUP -#line 333 "../../../texk/detex/detex-src/detex.l" -; +#line 357 "detex.l" +VERBNOUN; YY_BREAK case 102: YY_RULE_SETUP -#line 335 "../../../texk/detex/detex-src/detex.l" -{BEGIN IncludeOnly; IGNORE;} +#line 358 "detex.l" +; YY_BREAK case 103: YY_RULE_SETUP -#line 336 "../../../texk/detex/detex-src/detex.l" -AddInclude(yytext); +#line 360 "detex.l" +/* display mode */ {BEGIN Display; NOUN;} YY_BREAK case 104: YY_RULE_SETUP -#line 337 "../../../texk/detex/detex-src/detex.l" -{ if (csbIncList == 0) - rgsbIncList[csbIncList++] = '\0'; - BEGIN Normal; - } +#line 361 "detex.l" +BEGIN Normal; YY_BREAK case 105: /* rule 105 can match eol */ YY_RULE_SETUP -#line 341 "../../../texk/detex/detex-src/detex.l" +#line 362 "detex.l" NEWLINE; YY_BREAK case 106: YY_RULE_SETUP -#line 342 "../../../texk/detex/detex-src/detex.l" -; +#line 363 "detex.l" +VERBNOUN; YY_BREAK case 107: YY_RULE_SETUP -#line 344 "../../../texk/detex/detex-src/detex.l" -{BEGIN Input; IGNORE;} +#line 364 "detex.l" +; YY_BREAK case 108: YY_RULE_SETUP -#line 345 "../../../texk/detex/detex-src/detex.l" -{ InputFile(yytext); - BEGIN Normal; - } +#line 366 "detex.l" +/* math mode */ {BEGIN Math; NOUN;} YY_BREAK case 109: -/* rule 109 can match eol */ YY_RULE_SETUP -#line 348 "../../../texk/detex/detex-src/detex.l" -NEWLINE; +#line 367 "detex.l" +BEGIN Normal; YY_BREAK case 110: +/* rule 110 can match eol */ YY_RULE_SETUP -#line 349 "../../../texk/detex/detex-src/detex.l" -; +#line 368 "detex.l" +NEWLINE; YY_BREAK case 111: -/* rule 111 can match eol */ YY_RULE_SETUP -#line 351 "../../../texk/detex/detex-src/detex.l" -/* handle ligatures */ {(void)printf("%.2s", yytext+1);} +#line 369 "detex.l" +; YY_BREAK case 112: -/* rule 112 can match eol */ YY_RULE_SETUP -#line 352 "../../../texk/detex/detex-src/detex.l" -{(void)printf("%.1s", yytext+1);} +#line 370 "detex.l" +VERBNOUN; YY_BREAK case 113: YY_RULE_SETUP -#line 353 "../../../texk/detex/detex-src/detex.l" -BEGIN LaBreak; +#line 371 "detex.l" +; YY_BREAK case 114: YY_RULE_SETUP -#line 355 "../../../texk/detex/detex-src/detex.l" -/* ignore other \cs */ {BEGIN Control; IGNORE;} +#line 373 "detex.l" +/* process files */ {LaBEGIN LaInclude; IGNORE;} YY_BREAK case 115: YY_RULE_SETUP -#line 356 "../../../texk/detex/detex-src/detex.l" -SPACE; +#line 374 "detex.l" +{ IncludeFile(yytext); + BEGIN Normal; + } YY_BREAK case 116: /* rule 116 can match eol */ YY_RULE_SETUP -#line 357 "../../../texk/detex/detex-src/detex.l" +#line 377 "detex.l" NEWLINE; YY_BREAK case 117: YY_RULE_SETUP -#line 358 "../../../texk/detex/detex-src/detex.l" -IGNORE; +#line 378 "detex.l" +; YY_BREAK case 118: YY_RULE_SETUP -#line 359 "../../../texk/detex/detex-src/detex.l" +#line 380 "detex.l" +{BEGIN IncludeOnly; IGNORE;} + YY_BREAK +case 119: +YY_RULE_SETUP +#line 381 "detex.l" +AddInclude(yytext); + YY_BREAK +case 120: +YY_RULE_SETUP +#line 382 "detex.l" +{ if (csbIncList == 0) + rgsbIncList[csbIncList++] = '\0'; + BEGIN Normal; + } + YY_BREAK +case 121: +/* rule 121 can match eol */ +YY_RULE_SETUP +#line 386 "detex.l" +NEWLINE; + YY_BREAK +case 122: +YY_RULE_SETUP +#line 387 "detex.l" +; + YY_BREAK +case 123: +YY_RULE_SETUP +#line 389 "detex.l" +/* process files */ {LaBEGIN LaSubfile; IGNORE;} + YY_BREAK +case 124: +YY_RULE_SETUP +#line 390 "detex.l" +{ IncludeFile(yytext); + BEGIN Normal; + } + YY_BREAK +case 125: +/* rule 125 can match eol */ +YY_RULE_SETUP +#line 393 "detex.l" +NEWLINE; + YY_BREAK +case 126: +YY_RULE_SETUP +#line 394 "detex.l" +; + YY_BREAK +case 127: +YY_RULE_SETUP +#line 396 "detex.l" +{BEGIN Input; IGNORE;} + YY_BREAK +case 128: +YY_RULE_SETUP +#line 397 "detex.l" +{ InputFile(yytext); + BEGIN Normal; + } + YY_BREAK +case 129: +/* rule 129 can match eol */ +YY_RULE_SETUP +#line 400 "detex.l" +NEWLINE; + YY_BREAK +case 130: +YY_RULE_SETUP +#line 401 "detex.l" +; + YY_BREAK +/* escaping commands */ +case 131: +YY_RULE_SETUP +#line 404 "detex.l" +putchar('/'); + YY_BREAK +case 132: +/* rule 132 can match eol */ +YY_RULE_SETUP +#line 406 "detex.l" +/* handle ligatures */ {(void)printf("%.2s", yytext+1);} + YY_BREAK +case 133: +/* rule 133 can match eol */ +YY_RULE_SETUP +#line 407 "detex.l" +{(void)printf("%.1s", yytext+1);} + YY_BREAK +case 134: +YY_RULE_SETUP +#line 408 "detex.l" +{NEWLINE;} /*BEGIN LaBreak;*/ + YY_BREAK +case 135: +YY_RULE_SETUP +#line 410 "detex.l" +/* ignore other \cs */ {BEGIN Control; IGNORE;} + YY_BREAK +case 136: +YY_RULE_SETUP +#line 411 "detex.l" +SPACE; + YY_BREAK +case 137: +/* rule 137 can match eol */ +YY_RULE_SETUP +#line 412 "detex.l" +NEWLINE; + YY_BREAK +case 138: +YY_RULE_SETUP +#line 413 "detex.l" +IGNORE; + YY_BREAK +case 139: +YY_RULE_SETUP +#line 414 "detex.l" { if (yytext==NULL || strlen(yytext)==0 - || atoi(yytext)==4) + || atoi(yytext)>=0) NEWLINE; BEGIN Normal; } YY_BREAK -case 119: +case 140: YY_RULE_SETUP -#line 365 "../../../texk/detex/detex-src/detex.l" +#line 420 "detex.l" IGNORE; YY_BREAK -case 120: +case 141: YY_RULE_SETUP -#line 366 "../../../texk/detex/detex-src/detex.l" +#line 421 "detex.l" IGNORE; YY_BREAK -case 121: -/* rule 121 can match eol */ +case 142: +/* rule 142 can match eol */ YY_RULE_SETUP -#line 367 "../../../texk/detex/detex-src/detex.l" -{BEGIN Normal; NEWLINE;} +#line 422 "detex.l" +{BEGIN Normal; /*NEWLINE;*/} YY_BREAK -case 122: +case 143: +YY_RULE_SETUP +#line 423 "detex.l" +{++currBracesLevel;BEGIN Normal; IGNORE;} + YY_BREAK +case 144: YY_RULE_SETUP -#line 368 "../../../texk/detex/detex-src/detex.l" +#line 424 "detex.l" {BEGIN Normal; IGNORE;} YY_BREAK -case 123: +case 145: YY_RULE_SETUP -#line 369 "../../../texk/detex/detex-src/detex.l" +#line 425 "detex.l" {yyless(0);BEGIN Normal;} YY_BREAK -case 124: +case 146: YY_RULE_SETUP -#line 371 "../../../texk/detex/detex-src/detex.l" +#line 427 "detex.l" /* special characters */ IGNORE; YY_BREAK -case 125: +case 147: YY_RULE_SETUP -#line 372 "../../../texk/detex/detex-src/detex.l" +#line 428 "detex.l" IGNORE; YY_BREAK -case 126: +case 148: YY_RULE_SETUP -#line 373 "../../../texk/detex/detex-src/detex.l" +#line 429 "detex.l" SPACE; YY_BREAK -case 127: +case 149: +YY_RULE_SETUP +#line 430 "detex.l" +putchar('-'); + YY_BREAK +case 150: +YY_RULE_SETUP +#line 431 "detex.l" +putchar('"'); + YY_BREAK +case 151: +YY_RULE_SETUP +#line 432 "detex.l" +putchar('\''); + YY_BREAK +case 152: YY_RULE_SETUP -#line 375 "../../../texk/detex/detex-src/detex.l" +#line 433 "detex.l" +putchar('"'); + YY_BREAK +case 153: +YY_RULE_SETUP +#line 434 "detex.l" +putchar('"'); + YY_BREAK +/* braces */ +case 154: +YY_RULE_SETUP +#line 437 "detex.l" +{ ++currBracesLevel; + } + YY_BREAK +case 155: +YY_RULE_SETUP +#line 439 "detex.l" +{ + --currBracesLevel; + if (currBracesLevel == footnoteLevel) { + putchar(')'); + footnoteLevel = -100; + } + SPACE;} + YY_BREAK +case 156: +YY_RULE_SETUP +#line 446 "detex.l" { if (fWord) (void)printf("%s\n", yytext); else ECHO; } YY_BREAK -case 128: +case 157: YY_RULE_SETUP -#line 380 "../../../texk/detex/detex-src/detex.l" +#line 451 "detex.l" if (!fWord) ECHO; YY_BREAK -case 129: -/* rule 129 can match eol */ +case 158: YY_RULE_SETUP -#line 381 "../../../texk/detex/detex-src/detex.l" +#line 452 "detex.l" if (!fWord) ECHO; YY_BREAK -case 130: +case 159: +/* rule 159 can match eol */ YY_RULE_SETUP -#line 383 "../../../texk/detex/detex-src/detex.l" +#line 453 "detex.l" +if (!fWord) NEWLINE; + YY_BREAK +case 160: +YY_RULE_SETUP +#line 454 "detex.l" +if (!fWord) putchar('\t'); + YY_BREAK +case 161: +YY_RULE_SETUP +#line 456 "detex.l" { BEGIN LaOptArg; } YY_BREAK -case 131: +case 162: YY_RULE_SETUP -#line 384 "../../../texk/detex/detex-src/detex.l" +#line 457 "detex.l" { cOpenBrace++; } YY_BREAK -case 132: +case 163: +/* rule 163 can match eol */ YY_RULE_SETUP -#line 385 "../../../texk/detex/detex-src/detex.l" +#line 458 "detex.l" { cOpenBrace--; if (cOpenBrace == 0) { @@ -2671,30 +3043,30 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 164: YY_RULE_SETUP -#line 392 "../../../texk/detex/detex-src/detex.l" +#line 465 "detex.l" ; YY_BREAK -case 134: +case 165: YY_RULE_SETUP -#line 393 "../../../texk/detex/detex-src/detex.l" +#line 466 "detex.l" BEGIN LaMacro; YY_BREAK -case 135: -/* rule 135 can match eol */ +case 166: +/* rule 166 can match eol */ YY_RULE_SETUP -#line 394 "../../../texk/detex/detex-src/detex.l" +#line 467 "detex.l" ; YY_BREAK -case 136: +case 167: YY_RULE_SETUP -#line 396 "../../../texk/detex/detex-src/detex.l" +#line 469 "detex.l" { BEGIN LaOptArg2; } YY_BREAK -case 137: +case 168: YY_RULE_SETUP -#line 397 "../../../texk/detex/detex-src/detex.l" +#line 470 "detex.l" { if (cOpenBrace == 0) { if (--cArgs==0) @@ -2706,32 +3078,32 @@ YY_RULE_SETUP cOpenBrace++; } YY_BREAK -case 138: +case 169: YY_RULE_SETUP -#line 407 "../../../texk/detex/detex-src/detex.l" +#line 480 "detex.l" { cOpenBrace--; } YY_BREAK -case 139: +case 170: YY_RULE_SETUP -#line 408 "../../../texk/detex/detex-src/detex.l" +#line 481 "detex.l" ; YY_BREAK -case 140: +case 171: YY_RULE_SETUP -#line 409 "../../../texk/detex/detex-src/detex.l" +#line 482 "detex.l" BEGIN LaMacro2; YY_BREAK -case 141: +case 172: YY_RULE_SETUP -#line 410 "../../../texk/detex/detex-src/detex.l" +#line 483 "detex.l" ; YY_BREAK -case 142: +case 173: YY_RULE_SETUP -#line 411 "../../../texk/detex/detex-src/detex.l" +#line 484 "detex.l" ECHO; YY_BREAK -#line 2735 "../../../texk/detex/detex-src/detex.c" +#line 3106 "lex.yy.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(Define): case YY_STATE_EOF(Display): @@ -2746,6 +3118,7 @@ case YY_STATE_EOF(LaEnd): case YY_STATE_EOF(LaEnv): case YY_STATE_EOF(LaFormula): case YY_STATE_EOF(LaInclude): +case YY_STATE_EOF(LaSubfile): case YY_STATE_EOF(LaMacro): case YY_STATE_EOF(LaOptArg): case YY_STATE_EOF(LaMacro2): @@ -2897,7 +3270,7 @@ static int yy_get_next_buffer (void) { char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; char *source = (yytext_ptr); - yy_size_t number_to_move, i; + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -2926,7 +3299,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -2939,7 +3312,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2953,7 +3326,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2966,7 +3339,7 @@ static int yy_get_next_buffer (void) } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -3008,9 +3381,9 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); @@ -3045,10 +3418,10 @@ static int yy_get_next_buffer (void) 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 >= 1067 ) + if ( yy_current_state >= 1362 ) yy_c = yy_meta[(unsigned int) yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; } return yy_current_state; @@ -3073,11 +3446,11 @@ static int yy_get_next_buffer (void) 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 >= 1067 ) + if ( yy_current_state >= 1362 ) 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 == 1066); + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_is_jam = (yy_current_state == 1361); return yy_is_jam ? 0 : yy_current_state; } @@ -3096,7 +3469,7 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - yy_size_t number_to_move = (yy_n_chars) + 2; + int number_to_move = (yy_n_chars) + 2; char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; char *source = @@ -3108,7 +3481,7 @@ static int yy_get_next_buffer (void) yy_cp += (int) (dest - source); yy_bp += (int) (dest - source); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) YY_FATAL_ERROR( "flex scanner push-back overflow" ); @@ -3147,7 +3520,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3171,7 +3544,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( yywrap( ) ) - return EOF; + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -3419,7 +3792,7 @@ void yypop_buffer_state (void) */ static void yyensure_buffer_stack (void) { - yy_size_t num_to_alloc; + int num_to_alloc; if (!(yy_buffer_stack)) { @@ -3427,15 +3800,15 @@ static void yyensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; // After all that talk, this was set to 1 anyways... + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); - + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -3464,7 +3837,7 @@ static void yyensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { @@ -3474,7 +3847,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) @@ -3483,7 +3856,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; @@ -3506,7 +3879,7 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) { - return yy_scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes(yystr,(int) strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to yylex() will @@ -3516,15 +3889,15 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; + n = (yy_size_t) (_yybytes_len + 2); buf = (char *) yyalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); @@ -3550,7 +3923,7 @@ YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (yyconst char* msg ) { (void) fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); @@ -3580,7 +3953,7 @@ static void yy_fatal_error (yyconst char* msg ) */ int yyget_lineno (void) { - + return yylineno; } @@ -3603,7 +3976,7 @@ FILE *yyget_out (void) /** Get the length of the current token. * */ -yy_size_t yyget_leng (void) +int yyget_leng (void) { return yyleng; } @@ -3659,10 +4032,10 @@ static int yy_init_globals (void) * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -3671,8 +4044,8 @@ static int yy_init_globals (void) yyin = stdin; yyout = stdout; #else - yyin = (FILE *) 0; - yyout = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by @@ -3730,7 +4103,7 @@ static int yy_flex_strlen (yyconst char * s ) void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } void *yyrealloc (void * ptr, yy_size_t size ) @@ -3743,7 +4116,7 @@ void *yyrealloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } void yyfree (void * ptr ) @@ -3753,7 +4126,8 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 411 "../../../texk/detex/detex-src/detex.l" +#line 484 "detex.l" + /****** @@ -3835,14 +4209,14 @@ main(int cArgs, char *rgsbArgs[]) case CHWORDOPT: fWord = 1; break; + case CHREPLACE: + fReplace = 1; + break; default: -#ifdef OS2 - OS2UsageExit(); -#else sbBadOpt[0] = *pch; sbBadOpt[1] = '\0'; Warning("unknown option ignored -", sbBadOpt); -#endif + UsageExit(); } iArgs++; } @@ -3934,9 +4308,10 @@ void SetEnvIgnore(const char *sbEnvList) { char *sb; - sb = SafeMalloc(strlen(sbEnvList) + 1, "malloc for SetEnvIgnore failed"); (void) strcpy(sb, sbEnvList); + + csbEnvIgnore = SeparateList(sb, rgsbEnvIgnore, CHENVSEP, MAXENVS); if (csbEnvIgnore == my_ERROR) ErrorExit("The environment list contains too many environments"); @@ -3944,7 +4319,7 @@ SetEnvIgnore(const char *sbEnvList) /****** ** BeginEnv -- checks to see if sbEnv is in the list rgsbEnvIgnore. If it -** is, sbCurrentEnv is set to sbEnv. +** is, sbCurrentIgnoredEnv is set to sbEnv. ******/ int @@ -3953,10 +4328,10 @@ BeginEnv(const char *sbEnv) int i; if (!fLatex) return(0); - for (i = 0; i < csbEnvIgnore; i++) + for (i = 0; i < csbEnvIgnore; ++i) if (strcmp(sbEnv, rgsbEnvIgnore[i]) == 0) { - (void)strcpy(sbCurrentEnv, sbEnv); - return(1); + (void)strcpy(sbCurrentIgnoredEnv, sbEnv); + return(1); } return(0); } @@ -3969,7 +4344,7 @@ int EndEnv(const char *sbEnv) { if (!fLatex) return(0); - if (strcmp(sbEnv, sbCurrentEnv) == 0) + if (strcmp(sbEnv, sbCurrentIgnoredEnv) == 0) return(1); return(0); } @@ -3982,6 +4357,8 @@ EndEnv(const char *sbEnv) void InputFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; rgfp[cfp++] = yyin; @@ -4004,6 +4381,8 @@ InputFile(char *sbFile) void IncludeFile(char *sbFile) { + FILE *TexOpen(); + if (!fFollow) return; if (!InList(sbFile)) @@ -4119,8 +4498,9 @@ SeparateList(char *sbList, char *rgsbList[], char chSep, int csbMax) while (sbList && *sbList && csbList < csbMax) { rgsbList[csbList++] = sbList; - if ((sbList = strchr(sbList, chSep))) - *sbList++ = '\0'; + if ((sbList = strchr(sbList, chSep))) { + *sbList++ = '\0'; + } } return(sbList && *sbList ? my_ERROR : csbList); } @@ -4178,19 +4558,23 @@ TexOpen(char *sbFile) /* character and it does not follow a '.' or a '/' */ if (pch != NULL && pch > &(sbFullPath[0]) && *(pch - 1) != '.' && *(pch - 1) != '/' - && (fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + && (fp = fopen(sbFullPath, "r")) != NULL) { + return(fp); + } /* just base name, add .tex to the name */ sbNew = SafeMalloc(strlen(sbFullPath) + 5, "malloc for TexOpen failed"); (void)strcpy(sbNew, sbFullPath); (void)strcat(sbNew, ".tex"); - if ((fp = fopen(sbNew, "r")) != NULL) - return(fp); + if ((fp = fopen(sbNew, "r")) != NULL) { + free(sbNew); + return(fp); + } + free(sbNew); /* try sbFile regardless */ if ((fp = fopen(sbFullPath, "r")) != NULL) - return(fp); + return(fp); } return NULL; #else @@ -4239,25 +4623,24 @@ ErrorExit(const char *sb1) (void)fprintf(stderr, "%s: error: %s\n", sbProgName, sb1); exit(1); } -#ifdef OS2 /****** -** OS2UsageExit -- print OS/2 usage message and exit. +** UsageExit -- print OS/2 usage message and exit. ******/ void -OS2UsageExit(void) +UsageExit(void) { - (void)printf("\n%s [ -clnstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", + (void)printf("\n%s [ -clnrstw ] [ -e environment-list ] [ filename[.tex] ... ]\n", sbProgName); puts(" -c echo LaTeX \\cite, \\ref, and \\pageref values\n \ -e list of LaTeX environments to ignore\n \ -l force latex mode\n \ --n do not follow \\input and \\include\n \ +-n do not follow \\input, \\include and \\subfile\n \ +-r replace math with \"noun\" and \"noun verbs noun\" to preserve grammar\n \ -s replace control sequences with space\n \ -t force tex mode\n \ -w word only output"); exit(0); } -#endif diff --git a/Build/source/texk/detex/detex-src/detex.h b/Build/source/texk/detex/detex-src/detex.h index ef0e65840a0..1067f9520ce 100644 --- a/Build/source/texk/detex/detex-src/detex.h +++ b/Build/source/texk/detex/detex-src/detex.h @@ -63,9 +63,9 @@ #define MAXINPUTPATHS 10 -#define DEFAULTENV "array,eqnarray,equation,figure,mathmatica,picture,table,verbatim" +#define DEFAULTENV "algorithm,align,array,bmatrix,displaymath,eqnarray,equation,floatfig,floating,longtable,picture,pmatrix,psfrags,pspicture,smallmatrix,smallpmatrix,tabular,tikzpicture,verbatim,vmatrix,wrapfigure" #define CHENVSEP ',' -#define MAXENVS 10 +#define MAXENVS 25 #define CCHMAXENV 100 /****** @@ -80,5 +80,6 @@ #define CHSPACEOPT 's' #define CHTEXOPT 't' #define CHWORDOPT 'w' +#define CHREPLACE 'r' #define my_ERROR -1 diff --git a/Build/source/texk/detex/detex-src/detex.l b/Build/source/texk/detex/detex-src/detex.l index 059a9cfd929..f869455277a 100644 --- a/Build/source/texk/detex/detex-src/detex.l +++ b/Build/source/texk/detex/detex-src/detex.l @@ -1,10 +1,6 @@ %option never-interactive %top{ -#ifndef lint -static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/03/01 20:22:01 trinkle Exp trinkle $"; -#endif - /* * Copyright (c) 1986-2007 Purdue University * All rights reserved. @@ -72,7 +68,6 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #include #else #include -#define strchr index #define strrchr rindex #endif #ifndef MAXPATHLEN @@ -96,6 +91,8 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define LaBEGIN if (fLatex) BEGIN #define IGNORE if (fSpace && !fWord) putchar(' ') +#define NOUN if (fSpace && !fWord && !fReplace) putchar(' '); else {if (fReplace) printf("noun");} +#define VERBNOUN if (fReplace) printf(" verbs noun"); /* puts a verb and a noun to make grammar checking work */ #define SPACE if (!fWord) putchar(' ') #define NEWLINE if (!fWord) putchar('\n') #define LATEX fLatex=!fForcetex @@ -103,15 +100,18 @@ static char rcsid[] = "$Header: /p/src/local/bin/detex/RCS/detex.l,v 2.22 2007/0 #define STRIPARGS(x) cArgs=x; LaBEGIN LaMacro2 #define CITE(x) if (fLatex && !fCite) KILLARGS(x) +#define NO_MALLOC_DECL + void AddInclude(char *sbFile); void ErrorExit(const char *sb1); +void UsageExit(void); void IncludeFile(char *sbFile); void InputFile(char *sbFile); void SetEnvIgnore(const char *sbEnvList); #ifndef KPATHSEA void SetInputPaths(void); #endif -void Warning(const char *sb1, const char *sb2); +void Warning(const char *sb1, const char *sb2); int BeginEnv(const char *sbEnv); int EndEnv(const char *sbEnv); int InList(char *sbFile); @@ -132,7 +132,7 @@ void OS2UsageExit(void); char *rgsbEnvIgnore[MAXENVS]; /* list of environments ignored */ char *rgsbIncList[MAXINCLIST]; /* list of includeonly files */ char *rgsbInputPaths[MAXINPUTPATHS]; /* list of input paths in order */ -char sbCurrentEnv[CCHMAXENV]; /* current environment being ignored */ +char sbCurrentIgnoredEnv[CCHMAXENV]; /* current environment being ignored */ char *sbProgName; /* name we were invoked with */ #ifndef NOFILE /* might be defined in */ #define NOFILE 256 @@ -150,6 +150,11 @@ int fFollow = 1; /* flag to follow input/include */ int fCite = 0; /* flag to echo \cite and \ref args */ int fSpace = 0; /* flag to replace \cs with space */ int fForcetex = 0; /* flag to inhibit latex mode */ +int fShowPictures = 0; /* flag to show picture names */ +int fReplace = 0; /* flag to replace envirnments with "noun" */ + +int currBracesLevel = 0; +int footnoteLevel = -100; #ifdef FLEX_SCANNER /* flex has contexts for buffers that need to be switched when file changes @@ -173,20 +178,21 @@ VU {U}|ex VD {S}(({N}{S}{VU})|(\\{W})){S} VG {VD}(plus{VD})?(minus{VD})? Z \*? +VERBSYMBOL =|\\leq|\\geq|\\in|>|<|\\subseteq|\subseteq|\\subset|\\supset|\\sim|\\neq|\\mapsto %Start Define Display IncludeOnly Input Math Normal Control -%Start LaBegin LaDisplay LaEnd LaEnv LaFormula LaInclude +%Start LaBegin LaDisplay LaEnd LaEnv LaFormula LaInclude LaSubfile %Start LaMacro LaOptArg LaMacro2 LaOptArg2 LaVerbatim %start LaBreak LaPicture %% "%".* /* ignore comments */ ; -"\\begin"{S}"{"{S}"document"{S}"}" {LATEX; IGNORE;} +"\\begin"{S}"{"{S}"document"{S}"}""\n"* {LATEX; IGNORE;} "\\begin" /* environment start */ {LaBEGIN LaBegin; IGNORE;} -{S}"{"{S}"verbatim"{S}"}" { if (BeginEnv("verbatim")) +{S}"{"{S}"verbatim"{S}"}" { if (BeginEnv("verbatim")) BEGIN LaEnv; else BEGIN LaVerbatim; @@ -198,24 +204,40 @@ Z \*? . ECHO; {S}"{"{S}"minipage"{S}"}" { KILLARGS(1); - if (BeginEnv("minpage")) + if (BeginEnv("minipage")) + BEGIN LaEnv; + else + BEGIN LaMacro; /* Normal; */ + IGNORE; + } + +{S}"{"{S}"table"{S}"}"{S}"["{W}"]" { + if (BeginEnv("table")) BEGIN LaEnv; else BEGIN Normal; IGNORE; } -{W} { if (BeginEnv(yytext)) +{S}"{"{S}"figure"{S}"}"{S}"["{W}"]" { + if (BeginEnv("figure")) + BEGIN LaEnv; + else + BEGIN Normal; + IGNORE; + } + +{W} { if (BeginEnv(yytext)) BEGIN LaEnv; else BEGIN Normal; IGNORE; } -"\n" NEWLINE; + /*"\n" NEWLINE;*/ . ; "\\end" /* absorb some environments */ {LaBEGIN LaEnd; IGNORE;} -"\n" NEWLINE; +"\n"+ ;/*NEWLINE;*/ . ; {W} /* end environment */ { if (EndEnv(yytext)) @@ -223,7 +245,7 @@ Z \*? IGNORE; } "}" {BEGIN LaEnv; IGNORE;} -"\n" NEWLINE; + /*"\n" NEWLINE;*/ . ; "\\kern"{HD} ; @@ -232,6 +254,7 @@ Z \*? "\\hskip"{HG} ; "\\hspace"{Z}{S}"{"{HG}"}" ; "\\addvspace"{S}"{"{VG}"}" ; +"{"{N}"pt}" ; /* hack to fix \begin{minipage}{300pt} */ "\\newlength" { KILLARGS(1); } "\\setlength" { KILLARGS(2); } @@ -252,7 +275,8 @@ Z \*? "\\includegraphics"[^{]* { LaBEGIN LaPicture; } "{" ; -[^{}]+ { printf("", yytext); } +[^{}]+ { if(fShowPictures) { printf("", yytext); } } +"\}"{S}"\n"+ BEGIN Normal; "\}" BEGIN Normal; "\\definecolor" { KILLARGS(3); } @@ -262,35 +286,53 @@ Z \*? "\\fcolorbox" { KILLARGS(3); } "\\pagecolor" { KILLARGS(1); } "\\foilhead" { STRIPARGS(1); } - -"\\part"{Z} ; -"\\section"{Z} ; -"\\subsection"{Z} ; -"\\subsubsection"{Z} ; -"\\paragraph"{Z} ; -"\\sunparagraph"{Z} ; +"\\addfontfeature" { KILLARGS(1); } +"\\thispagestyle" { KILLARGS(1); } +"\\addcontentsline" { KILLARGS(3); } + +"\\part"{Z} ;/*NEWLINE;*/ +"\\chapter"{Z} ;/*NEWLINE;*/ +"\\section"{Z} ;/*NEWLINE;*/ +"\\subsection"{Z} ;/*NEWLINE;*/ +"\\subsubsection"{Z} ;/*NEWLINE;*/ +"\\paragraph"{Z} ;/*NEWLINE;*/ +"\\subparagraph"{Z} ;/*NEWLINE;*/ "\\bibitem" /* ignore args */ {KILLARGS(1); IGNORE;} "\\bibliography" /* of these \cs */ {KILLARGS(1); IGNORE;} "\\bibstyle" {KILLARGS(1); IGNORE;} -"\\cite" {CITE(1); IGNORE;} +" "?"\\cite" {KILLARGS(1);} /* kill space before */ "\\documentstyle" {LATEX; KILLARGS(1); IGNORE;} "\\documentclass" {LATEX; KILLARGS(1); IGNORE;} "\\usepackage" {KILLARGS(1); IGNORE;} "\\end" {KILLARGS(1); IGNORE;} -"\\index" {KILLARGS(1); SPACE;} -"\\footnote" {KILLARGS(1); SPACE;} +"\\hypersetup" {KILLARGS(1);} +"\\index" {KILLARGS(1);} + /*"\\footnote" {KILLARGS(1); SPACE;}*/ "\\label" {KILLARGS(1); IGNORE;} +"\\nameref" {CITE(1); IGNORE;} "\\pageref" {CITE(1); IGNORE;} "\\pagestyle" {KILLARGS(1); IGNORE;} "\\ref" {CITE(1); IGNORE;} -"\\setcounter" {KILLARGS(1); IGNORE;} +"\\setcounter" {KILLARGS(2); IGNORE;} +"\\addtocounter" {KILLARGS(2); IGNORE;} +"\\newcounter" { KILLARGS(1); } +"\\stepcounter" { KILLARGS(2); } + +"\\fontspec" {KILLARGS(1);} + +"\\footnote"(\[([^\]])+\])?"{" { + putchar('('); + footnoteLevel = currBracesLevel; + ++currBracesLevel; + } "\\verb" /* ignore \verb... */ { if (fLatex) { char verbchar, c; verbchar = input(); while ((c = input()) != verbchar) - if (c == '\n') - NEWLINE; + /*if (c == '\n') + NEWLINE;*/ + putchar(c); } IGNORE; } @@ -304,32 +346,36 @@ Z \*? "\n" NEWLINE; . ; -"\\(" /* formula mode */ {LaBEGIN LaFormula; IGNORE;} +"\\(" /* formula mode */ {LaBEGIN LaFormula; NOUN;} "\\)" BEGIN Normal; "\n" NEWLINE; +{VERBSYMBOL} VERBNOUN; . ; -"\\[" /* display mode */ {LaBEGIN LaDisplay; IGNORE;} +"\\[" /* display mode */ {LaBEGIN LaDisplay; NOUN;} "\\]" BEGIN Normal; "\n" NEWLINE; +{VERBSYMBOL} VERBNOUN; . ; -"$$" /* display mode */ {BEGIN Display; IGNORE;} +"$$" /* display mode */ {BEGIN Display; NOUN;} "$$" BEGIN Normal; "\n" NEWLINE; +{VERBSYMBOL} VERBNOUN; . ; -"$" /* math mode */ {BEGIN Math; IGNORE;} +"$" /* math mode */ {BEGIN Math; NOUN;} "$" BEGIN Normal; "\n" NEWLINE; "\\$" ; +{VERBSYMBOL} VERBNOUN; . ; "\\include" /* process files */ {LaBEGIN LaInclude; IGNORE;} [^{ \t\n}]+ { IncludeFile(yytext); BEGIN Normal; } -"\n" NEWLINE; +"\n"+ NEWLINE; . ; "\\includeonly" {BEGIN IncludeOnly; IGNORE;} @@ -338,51 +384,79 @@ Z \*? rgsbIncList[csbIncList++] = '\0'; BEGIN Normal; } -"\n" NEWLINE; +"\n"+ NEWLINE; . ; +"\\subfile" /* process files */ {LaBEGIN LaSubfile; IGNORE;} +[^{ \t\n}]+ { IncludeFile(yytext); + BEGIN Normal; + } +"\n"+ NEWLINE; +. ; + "\\input" {BEGIN Input; IGNORE;}