aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2020-06-18 18:09:16 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2020-06-18 18:09:16 +0000
commit7e38239042df09edbbdc443ccb4825f9155c6bb7 (patch)
tree5d84ccc50978396d85587b8fd56f357cae18bacf
parentdf2fca7ba89976ad70dc4fb4ea022959efa67308 (diff)
parent764685116c0fe025bff5b18ead25c2364e5d07f9 (diff)
downloadsrc-7e38239042df09edbbdc443ccb4825f9155c6bb7.tar.gz
src-7e38239042df09edbbdc443ccb4825f9155c6bb7.zip
MFV: r362286
Merge flex 2.6.4.
Notes
Notes: svn path=/head/; revision=362333
-rw-r--r--contrib/flex/ChangeLog2772
-rw-r--r--contrib/flex/FlexLexer.h206
-rw-r--r--contrib/flex/NEWS234
-rw-r--r--contrib/flex/README79
-rw-r--r--contrib/flex/README.md109
-rw-r--r--contrib/flex/configure.ac184
-rw-r--r--contrib/flex/src/FlexLexer.h220
-rw-r--r--contrib/flex/src/buf.c (renamed from contrib/flex/buf.c)89
-rw-r--r--contrib/flex/src/ccl.c (renamed from contrib/flex/ccl.c)15
-rw-r--r--contrib/flex/src/dfa.c (renamed from contrib/flex/dfa.c)99
-rw-r--r--contrib/flex/src/ecs.c (renamed from contrib/flex/ecs.c)21
-rw-r--r--contrib/flex/src/filter.c (renamed from contrib/flex/filter.c)62
-rw-r--r--contrib/flex/src/flex.skl (renamed from contrib/flex/flex.skl)751
-rw-r--r--contrib/flex/src/flexdef.h (renamed from contrib/flex/flexdef.h)432
-rw-r--r--contrib/flex/src/flexint.h (renamed from contrib/flex/flexint.h)4
-rw-r--r--contrib/flex/src/gen.c (renamed from contrib/flex/gen.c)370
-rw-r--r--contrib/flex/src/libmain.c (renamed from contrib/flex/libmain.c)13
-rw-r--r--contrib/flex/src/libyywrap.c (renamed from contrib/flex/libyywrap.c)1
-rw-r--r--contrib/flex/src/main.c (renamed from contrib/flex/main.c)230
-rw-r--r--contrib/flex/src/misc.c (renamed from contrib/flex/misc.c)359
-rwxr-xr-xcontrib/flex/src/mkskel.sh (renamed from contrib/flex/mkskel.sh)39
-rw-r--r--contrib/flex/src/nfa.c (renamed from contrib/flex/nfa.c)72
-rw-r--r--contrib/flex/src/options.c (renamed from contrib/flex/options.c)9
-rw-r--r--contrib/flex/src/options.h (renamed from contrib/flex/options.h)6
-rw-r--r--contrib/flex/src/parse.y (renamed from contrib/flex/parse.y)87
-rw-r--r--contrib/flex/src/regex.c (renamed from contrib/flex/regex.c)33
-rw-r--r--contrib/flex/src/scan.l (renamed from contrib/flex/scan.l)370
-rw-r--r--contrib/flex/src/scanflags.c (renamed from contrib/flex/scanflags.c)12
-rw-r--r--contrib/flex/src/scanopt.c (renamed from contrib/flex/scanopt.c)165
-rw-r--r--contrib/flex/src/scanopt.h (renamed from contrib/flex/scanopt.h)19
-rw-r--r--contrib/flex/src/sym.c (renamed from contrib/flex/sym.c)71
-rw-r--r--contrib/flex/src/tables.c (renamed from contrib/flex/tables.c)74
-rw-r--r--contrib/flex/src/tables.h (renamed from contrib/flex/tables.h)2
-rw-r--r--contrib/flex/src/tables_shared.c (renamed from contrib/flex/tables_shared.c)6
-rw-r--r--contrib/flex/src/tables_shared.h (renamed from contrib/flex/tables_shared.h)0
-rw-r--r--contrib/flex/src/tblcmp.c (renamed from contrib/flex/tblcmp.c)72
-rw-r--r--contrib/flex/src/version.h (renamed from contrib/flex/version.h)0
-rw-r--r--contrib/flex/src/yylex.c (renamed from contrib/flex/yylex.c)31
-rw-r--r--usr.bin/lex/Makefile8
-rw-r--r--usr.bin/lex/config.h97
-rw-r--r--usr.bin/lex/initparse.c394
-rw-r--r--usr.bin/lex/initparse.h14
-rw-r--r--usr.bin/lex/initscan.c4580
-rw-r--r--usr.bin/lex/initskel.c1335
-rw-r--r--usr.bin/lex/lex.12
-rw-r--r--usr.bin/lex/lib/Makefile2
-rw-r--r--usr.bin/lex/version.awk4
47 files changed, 8519 insertions, 5235 deletions
diff --git a/contrib/flex/ChangeLog b/contrib/flex/ChangeLog
index 4d0c7595a7f7..cf9955428819 100644
--- a/contrib/flex/ChangeLog
+++ b/contrib/flex/ChangeLog
@@ -1,3 +1,2775 @@
+2017-05-06 Will Estes <westes575@gmail.com>
+
+ * po/ca.po, po/da.po, po/de.po, po/eo.po, po/es.po, po/fi.po,
+ po/fr.po, po/ga.po, po/hr.po, po/ko.po, po/nl.po, po/pl.po,
+ po/pt_BR.po, po/ro.po, po/ru.po, po/sr.po, po/sv.po, po/tr.po,
+ po/vi.po, po/zh_CN.po, po/zh_TW.po: gettext: pulled latest
+ translations; recompiled against current sources
+
+2017-05-06 Will Estes <westes575@gmail.com>
+
+ * NEWS: version 2.6.4 * NEWS: Record release date.
+
+2017-05-06 Will Estes <westes575@gmail.com>
+
+ * .prev-version: note previous version
+
+2017-05-06 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: update NEWS for upcoming release
+
+2017-05-04 viktor.shepel <shepelvictor@bigmir.net>
+
+ * doc/flex.texi: doc: Correct typo in C code sample in manual
+
+2017-05-04 Explorer09 <explorer09@gmail.com>
+
+ * src/flex.skl: scanner: Mention %# comments are removed when
+ building skel.c
+
+2017-05-02 Demi Obenour <demiobenour@gmail.com>
+
+ * src/flex.skl: Honor user definitions of yy_* macros The user may have defined the yy_* macros themselves. In that case,
+ don't clobber them.
+
+2017-05-02 Demi Obenour <demiobenour@gmail.com>
+
+ * src/flex.skl, src/main.c: Don't leak macro definitions into header
+ files This allowed unnamespaced definitions to leak into header files,
+ breaking client code. Fixes #142
+
+2017-05-03 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l: scanner: Check for 0 bracecount when EOL ends quoted
+ literal. This can happen in the case of // comments (which Flex doesn't
+ handle specially).
+
+2017-05-03 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l: scanner: when bracelevel is negative, treat as zero. This really should never happen, but this at least fixes the
+ breakage on Verilator.
+
+2017-04-02 Jeff Smith <whydoubt@gmail.com>
+
+ * tests/Makefile.am, tests/tableopts.am, tests/tableopts.sh: test:
+ enable more silent building of tests. When running 'make V=0 check', some compile and link steps are made
+ less verbose and some are not. This cleans up most steps that are
+ not. These have no effect if V=0 is not specified.
+
+2017-05-03 Demi Obenour <demiobenour@gmail.com>
+
+ * src/Makefile.am, src/misc.c, src/mkskel.sh: build: Delete comments
+ from skeleton file. Since the comments in flex.skl are, by hypothesis, not needed in
+ skel.c, we remove them. THis reduces the size of the resulting
+ executable somewhat.
+
+2017-05-03 Explorer09 <explorer09@gmail.com>
+
+ * Makefile.am, configure.ac, lib/Makefile.am: build: do not generate
+ lib/Makefile.in. Files in lib/ are picked up and built using makefile directives in
+ src/Makefile.am. Remove the need to generate lib/Makefile.in and the
+ stub lib/Makefile.am.
+
+2017-05-02 Will Estes <westes575@gmail.com>
+
+ * po/POTFILES.in: gettext: revert listing generated .c files
+
+2017-04-10 Jeff Smith <whydoubt@gmail.com>
+
+ * src/filter.c: FLEX_EXIT() is the preferred way to exit flex
+
+2017-04-11 Explorer09 <explorer09@gmail.com>
+
+ * src/misc.c: Fix myesc() 'sptr' conditionals * Don't call isascii() here. It's deprecated in POSIX and not needed for myesc's case. * The check of the character class and range here should match
+ what's defined as {ESCSEQ} in scan.l, so for [[:xdigit:]] we use
+ isxdigit(); for [0-7] we check '0' <= c <= '7' (not isdigit(c)
+ because isdigit is locale-dependant in standard's sense) * Add missing length limit for "\x<hex>" (<hex> is at most 2 digits)
+
+2017-04-11 Explorer09 <explorer09@gmail.com>
+
+ * src/flexdef.h, src/misc.c: Obsolete htoui() and otoui(); use
+ strtoul(). No sense to keep these two function when libc's strtoul() can do the
+ same job, but better.
+
+2017-04-12 Todd C. Miller <Todd.Miller@courtesan.com>
+
+ * src/flex.skl: scanner: update yy_buf_size after yyrealloc()
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * configure.ac: build: use lowest versions for gettext, automake.
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * po/Makevars, po/Rules-getpo, po/update_linguas.sh: gettext: more
+ recent makevars; new script to update po files. Previously, "make dist" and similar commands would cause the po
+ files to be updated, which is incorrect. The more recent version now
+ used should not do this. Replaced Rules-getpo by extra script to manually update and rebuild
+ all po files.
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * po/POTFILES.in: gettext: list generated files instead of flex,
+ bison sources in POTFILES.in. Listing the flex and bison sources -- as the gettext manual suggests
+ -- causes warnings. Listing the generated C files for the lexer and
+ parser removes the warnings. Since both files contain line
+ directives, any translator who needs to refer back to those files
+ should be able to find the context in which strings are needed.
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * autogen.sh: build: only touch ChangeLog if it does not exist
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * configure.ac, doc/Makefile.am: build: list earliest useable
+ versions for automake
+
+2017-05-02 Simon Sobisch <simonsobisch@web.de>
+
+ * autogen.sh: build: check for how to call libtoolize. Previously, we would call libtoolize and if that failed, we would
+ call glibtoolize since some platforms have the libtoolize program
+ under that name. Instead, we check to see if the environment variable LIBTOOLIZE is
+ set and use that if so. Otherwise, we try to find a program
+ "libtoolize" on the path and failing that glibtoolize. We alert the
+ user if no suitable program can be found.
+
+2017-01-06 Alastair Hughes <hobbitalastair@gmail.com>
+
+ * configure.ac, m4/ax_prog_cc_for_build.m4, src/Makefile.am: build:
+ support cross compiling. Check for cross compiling. If cross compiling, build stage1flex
+ using a custom link command. We also override LDADD since that adds
+ the replacement implementations that are cross compiled, and instead
+ always use the replacement library implementations. We don't use BUILD_OBJEXT and BUILD_EXEEXT since it seems that
+ automake does not support these. Fixes #78.
+
+2017-02-17 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, src/flexdef.h: build: Include <strings.h>; add
+ strcasecmp() check to configure. strings.h (not string.h) is the standard-defined include header for
+ strcasecmp(). Include <strings.h> for portability (even though glibc
+ exposes strcasecmp() declaration also in <string.h> by default).
+
+2017-02-17 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, src/flexdef.h: build: Let configure error if missing
+ required functions, headers.. `configure` will now error if a required header or function is not
+ found on the system. Also add comments on optional functions checks. Add sys/stats.h and sys/wait.h to list of required headers in
+ configure. This fixes issue #180.
+
+2017-02-12 Explorer09 <explorer09@gmail.com>
+
+ * src/dfa.c, src/flexdef.h: scanner: compute powers of two faster. Replace the naive "for" loop in determining power of two with a
+ clever bitwise solution. This code is around the Internet already
+ and is in Public Domain.
+
+2017-02-07 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, tests/Makefile.am, tests/pthread.l: test: skip
+ pthread test when needed files missing. "Unlisting" the pthread test when libpthread is not available is
+ never a good idea. Should let it compile into a stub program that
+ returns the "skip" status. configure.ac and tests/Makefile.am are edited so that pthread test
+ can be built anyway, but only works (not as the stub) when both
+ pthread.h and libpthread are detected on the system. Also fix a small typo in tests/pthread.l comments.
+
+2017-02-16 Will Estes <westes575@gmail.com>
+
+ * src/Makefile.am: build: mv scan.c when building dist. Revert change to copy scan.c when building the distribution archive.
+ Move it instead. This satisfies automake's notions of what should be
+ clean and ensures that the distribution archive contains a
+ just-built copy of scan.c. Fixes #186
+
+2017-02-06 Will Estes <westes575@gmail.com>
+
+ * src/Makefile.am: build: don't assume distdir/scan.c is writeable
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: Add dist-hook to force remake scan.c. This will ensure the flex scanner included in release tarball being
+ generated by exactly the flex version to be released. Here's one catch after this change: You may not run "make dist" or
+ "make distdir" if you configure the flex source to be
+ cross-compiled.
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: respect '--localedir' from configure. Makefile shouldn't overwrite the 'localedir' variable, because
+ that's what '--localedir' option in 'configure' is for.
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: Remove "-I$(top_srcdir)/intl" from
+ CPPFLAGS. Revert commit e02c3d27eeb6b53ec82532ab080c23ce26813fd4 ("include the intl/ subdirectory when searching for include files") Flex doesn't come with libintl source code, so inclusion of
+ $(top_srcdir)/intl subdirectory during compiling is unnecessary. This flag seems to be left after "remove intl from dist" (commit
+ 8f45da06adbd7dbcdfdbdd5c20ff4c47fc504f35) without someone cleaning
+ this up. Users who need to build with gettext functionality from libintl
+ would use the '--with-libintl-prefix' configure option.
+
+2017-02-03 Explorer09 <explorer09@gmail.com>
+
+ * src/regex.c: scanner: fix regcomp's error reporting, double
+ malloc. Fix unneeded double malloc - let regerror(). Write its message after
+ our "regcomp for (regex) failed: " string. Also, errbuf cannot be free()'d because of flexfatal containing a
+ longjmp.
+
+2017-01-03 Explorer09 <explorer09@gmail.com>
+
+ * tests/Makefile.am, tests/no_bison_stub.c: test: Skip bison tests
+ if bison is not available
+
+2017-01-03 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac: build: remove repeated bison detection from
+ configure. AC_PROG_YACC already detects the bison program. We can just use it,
+ and make notice if [ $YACC != 'bison -y' ] Remove unused AC_SUBST([BISON], ...). Add AM_CONDITIONAL([HAVE_BISON], ...) so that we can skip bison
+ tests in testsuite when bison is absent. We don't make any attempt to detect other yacc implementations since
+ flex is developed with bison. While it would be possible, the need
+ isn't there right now. It would be possible to add a --with-parser
+ option that defaulted to bison if such a need cropped up.
+
+2017-01-01 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: fix Makefile parse.h dependency clauses. The current clauses stating "main.c: parse.h" and "yylex.c: parse.h"
+ do not work as expected. Make did not try to build parse.h upon
+ building flex-main.o as it would think main.c exist already and
+ ignore the clause. Fix this by explicitly stating that the .o files
+ depend on parse.h instead. This dependency bug only happens if user builds flex from a
+ checked-out repository.
+
+2017-01-03 Explorer09 <explorer09@gmail.com>
+
+ * tests/Makefile.am: test: Remake *_scanner.c if *_scanner.h is
+ missing. If a ${foo}_scanner.c exists but the respective ${foo}_scanner.h is
+ missing, then 'make' can halt. Fix this by deleting the
+ ${foo}_scanner.c file and then remake it. This rule is the same as
+ the automake-generated rule for .c files that require LEX or YACC
+ (except automake will use ylwrap).
+
+2016-12-31 Explorer09 <explorer09@gmail.com>
+
+ * tests/Makefile.am: test: remove BUILT_SOURCES; add missing
+ dependencies. Without BUILT_SOURCES in Makefile, no test sources in tests/ will be
+ built when using the default "make all" target. This is desireable
+ for people who are just building flex but who do not want to run,
+ and therefore, build any part of the test suite. Also fix missing sources dependencies: bison_nr_scanner.$(OBJEXT): bison_nr_parser.h bison_yylloc_scanner.$(OBJEXT): bison_yylloc_parser.h bison_yylval_scanner.$(OBJEXT): bison_yylval_parser.h
+
+2017-01-19 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, lib/reallocarray.c, src/flexint.h, src/misc.c:
+ build: detect overflow for [re]allocate_array. Use reallocarray() when we have it (i.e. in OpenBSD system). When we
+ don't, use equivalent overflow detection for our allocate_array and
+ reallocate_array functions. Remove lib/reallocarray.c from our LIBOBJS as we no longer need it. Provide a fallback SIZE_MAX macro definition in flexint.h (not
+ preprocessor friendly, but enough for our reallocate_array use
+ case).
+
+2017-01-23 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: doc: v2.6.4
+
+2017-01-23 Thomas Klausner <wiz@NetBSD.org>
+
+ * src/Makefile.am: build: more BSD make and vpath build fixes. BSD make doesn't like $< with more than one source specified.
+ Additionally, make sure to specify srcdir when referring to source
+ files since vpath builds depend on this.
+
+2017-01-22 Thomas Klausner <wiz@NetBSD.org>
+
+ * src/Makefile.am: build: Fix skel.c generation with BSD make
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/flex.skl: Add more defines in the non-reentrant part. Fix the reentrant part; don't "#define yyfoo yyfoo" because it
+ breaks code that does #ifndef yywrap ..
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/flexdef.h: scanner: Add yyparse prototype
+
+2017-01-22 Thomas Klausner <wiz@NetBSD.org>
+
+ * src/flex.skl: scanner: move comment for consistency
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/misc.c: scanner: Use array instead of pointer
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/main.c: scanner: manage path to m4 better. Avoid alloca() for SSP; it is better anyway; since we don't need to
+ strdup the path.
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/gen.c: scanner: Avoid creating unused label
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/buf.c: Cast argument to avoid arithmetic on void *.
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/scan.l: scanner: Use strncpy
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/main.c: scanner: Use prefix when defining yywrap to avoid
+ redefinition. Fixes regression introduced in v2.6.3.
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/flexdef.h, src/misc.c: scanner: Include stdarg.h for va_list
+
+2017-01-22 Christos Zoulas <christos@zoulas.com>
+
+ * src/flexdef.h, src/main.c, src/parse.y: scanner: Rename warn to
+ lwarn. This avoids a naming conflict in NetBSD's libc.
+
+2017-01-01 Explorer09 <explorer09@gmail.com>
+
+ * tests/README: test: document automake convention for skipped exit
+ status.
+
+2017-01-03 Explorer09 <explorer09@gmail.com>
+
+ * tests/Makefile.am: test: let testwrapper scripts be run by
+ ${SHELL}. This allows user to use a different shell if /bin/sh has problems.
+ The use of $SHELL (variable) to run scripts is already an Automake
+ convention. All shell scripts in build-aux are run by $SHELL.
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * tests/options.cn, tests/tableopts.sh,
+ tests/testwrapper-direct.sh, tests/testwrapper.sh: test: Remove test
+ scripts bashisms. They now all work under a POSIX compliant sh. Specifically, 'dash'
+ can now be used for running "make check" tests. Note that none of these scripts has ever been using a pipe, so `set
+ -o pipefail` is unnecessary and removed.
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * tests/testwrapper.sh: test: exit on '-1' test non-zero status. If a '-1' test program returns a non-zero status, don't go further
+ and compare it's (numeric) output values. This allows a '-1' test to
+ indicate a "skip" status or an otherwise error. (Currently no such
+ '-1' test would skip like this, though.) Shell syntax note: `set -e` will not exit with the syntax like this
+ `test $(false) = $(false);`. The exit statuses of `false` in the
+ example will be ignored instead. But putting the output in a
+ variable, such as `VAR=$(false)`, DOES exit.
+
+2017-01-02 Explorer09 <explorer09@gmail.com>
+
+ * Makefile.am, src/Makefile.am: build: Fix 'make indent' target This 'make indent' target has not been working since the directories
+ reorganization in flex 2.6.0. Now make it work again. Note that the current indent profile breaks many styles of existing
+ code. The indent target should not be used until the .indent.pro
+ options are reviewed for desireability.
+
+2017-01-01 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac: build: Simplify indent program detection
+
+2017-01-12 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/filter.c: filter: Don't emit #line if %option noline set One place emitting a #line directive to the generated header was
+ missed in commit 647a92b9f4 when resolving #55. Fix it to respect
+ gen_line_dirs as well.
+
+2017-01-12 Will Estes <westes575@gmail.com>
+
+ * po/ca.po, po/da.po, po/de.po, po/eo.po, po/es.po, po/fi.po,
+ po/fr.po, po/ga.po, po/hr.po, po/ko.po, po/nl.po, po/pl.po,
+ po/pt_BR.po, po/ro.po, po/ru.po, po/sr.po, po/sv.po, po/tr.po,
+ po/vi.po, po/zh_CN.po, po/zh_TW.po: translation: refresh po files
+ from translation project
+
+2017-01-10 Harald van Dijk <harald@gigawatt.nl>
+
+ * src/flex.skl: c++: Fix yyrestart(NULL) SEGV. Binding a reference to a dereferenced null pointer is invalid and
+ compilers optimise away the &file == 0 check. We need a real stream. yyin is available already, and yyrestart(NULL) is only supported
+ when yyin will not be used, so there is no harm in just passing in
+ that. Since we now always have a valid stream, we can skip the null
+ check too. Fixes #98.
+
+2017-01-09 luistung <dongliang1986@gmail.com>
+
+ * src/scan.l: scanner: join symbol list. Removed a newline that caused a problem building the scanner in some
+ circumstances. Specifically: 'bad character' error when executing /bin/sh ../build-aux/ylwrap scan.l lex.yy.c scan.c -- flex
+
+2017-01-11 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: scanner: remove void cast before fprintf
+
+2016-12-30 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: update NEWS for 2.6.3 release
+
+2016-11-26 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, src/Makefile.am: build: New configure option
+ '--disable-bootstrap'. If configure is run with '--disable-bootstrap', then stage1flex
+ won't be built and stage1scan.c will be generated by sed'ing scan.c. This option is intended to workaround bootstrap bugs rather than to
+ fix the bootstrapping issues which are proving subtler and harder to
+ fix than anyone would like.
+
+2016-11-26 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: "make clean" deletes stage1scan.c,
+ stage1flex
+
+2016-11-26 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, src/Makefile.am: build: allow building libfl even
+ with --disable-libfl. For various reasons, we may wish to build libfl explicitly even when
+ configure has been run with the --disable-libfl option. This is
+ possible, now, via 'make -C src libfl.la'.
+
+2016-12-19 Alexis La Goutte <alexis.lagoutte@gmail.com>
+
+ * src/flex.skl: scanner: remove trailing whitespace in skeleton
+
+2016-12-01 Demi Obenour <demiobenour@gmail.com>
+
+ * src/buf.c, src/main.c, src/parse.y: scanner: Disallow, overquote
+ '[' and ']' in prefix
+
+2016-12-29 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * src/main.c: scanner: allocate correct buffer size for m4 path. Flex did not check the length of the m4 path which could lead to a
+ buffer overflow in some cases. Additionally, not all platforms
+ believe in PATH_MAX, so stop relying on it. Fixes #138
+
+2016-11-24 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: note no more libcompat in NEWS
+
+2016-11-24 Will Estes <westes575@gmail.com>
+
+ * lib/Makefile.am: build: explain empty lib/Makefile.am
+
+2016-11-20 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac: build: warn about cross compiling with *alloc
+
+2016-11-19 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, lib/Makefile.am, lib/lib.c, src/Makefile.am: build:
+ Link $(LIBOBJS) from src/ dir, remove libcompat.la. The libcompat.la library was small and less friendly to
+ bootstrapping and cross compilation. Now, we will simply link
+ individual object files as needed, which is simpler.
+
+2016-11-16 Explorer09 <explorer09@gmail.com>
+
+ * src/Makefile.am: build: Let stage1flex respect LFLAGS
+
+2016-11-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: describe --disable-libfl in NEWS
+
+2016-10-31 Explorer09 <explorer09@gmail.com>
+
+ * configure.ac, src/Makefile.am: build: Add --disable-libfl
+ configure option. Disabling libfl is useful when building flex for a cross-toolchain. Fixes: GH-99
+
+2016-11-09 Demi Obenour <demiobenour@gmail.com>
+
+ * src/flex.skl, tests/array_r.l: fix backwards incompatible changes
+ in 2.6.2. This patch addscompatibility `#defines` for all macros affected by
+ `%prefix`. Fixes #113.
+
+2016-11-08 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore: git: ignore quote_in_comment artifacts
+
+2016-11-08 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l, tests/Makefile.am, tests/quote_in_comment.l,
+ tests/quote_in_comment.txt: Fixes a major bug in Flex's own lexing
+ of literals. My changes caused Flex to mishandle string and character literals in
+ line comments. This commit fixes them. Fixes #113.
+
+2016-11-06 Thomas Klausner <wiz@NetBSD.org>
+
+ * configure.ac: Fix unportable test(1) operator. "==" is only supported by bash, "=" is the standard comparison
+ operator.
+
+2016-11-02 Demi Obenour <demiobenour@gmail.com>
+
+ * tests/quotes.l: Add more escaping tests
+
+2016-11-01 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l: Fix another escaping bug in non-indented verbatim section 2 code. I also did some reformatting.
+
+2016-10-28 Alastair Hughes <hobbitalastair@gmail.com>
+
+ * configure.ac: build: fix false negatives for help2man and texi2dvi HELP2MAN and TEXI2DVI (or the corresponding ac_prog variables) will
+ never be zero length as they fall back to the missing script; check
+ for the fall back and warn on that instead of always warning.
+
+2016-10-28 Explorer09 <explorer09@gmail.com>
+
+ * doc/Makefile.am: doc: Don't delete flex.1 during "make distclean". flex.1 is pre-generated in release tarball. If we delete it, the
+ next "configure and make" on the source directory will then require
+ help2man unnecessarily.
+
+2016-10-27 Alastair Hughes <hobbitalastair@gmail.com>
+
+ * NEWS, doc/Makefile.am: Only regenerate the man page when required. Make the flex binary an order-only prerequisite, and add back the
+ prerequisites from before 7cfb440. This prevents rebuilding the man
+ page whenever the flex binary is rebuilt, which causes problems if
+ help2man is not installed and will never work when cross compiling. Fixes #108.
+
+2016-10-26 Will Estes <westes575@gmail.com>
+
+ * NEWS, src/Makefile.am: build: no longer build PIC version of
+ libfl. The PIC version of libfl was not being built correctly. From the
+ lack of bug reports around this problem, we conclude that the PIC
+ version of libfl is not used and so we drop it from the build build
+ targets for flex.
+
+2016-10-25 Explorer09 <explorer09@gmail.com>
+
+ * README.md: doc: README.md formatting fixes * Wrap everything in the raw document in 72 char per line limit. * Proper casing for terms "Git" and "GitHub" (don't try to look
+ lazy). * Add unordered list marks when needed. * Say `configure && make && make install` and quoted for fixed-width font. Signed-off-by: Kang-Che Sung <explorer09@gmail.com>
+
+2016-10-25 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: build: version 2.6.3 begins
+
+2016-10-24 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: mark 2.6.2 release date
+
+2016-10-24 Will Estes <westes575@gmail.com>
+
+ * .gitignore, NEWS, configure.ac: build: switch xz to lzip
+
+2016-10-20 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l, tests/quotes.l: Fix M4 quotation in section 2 prologue
+ and refactor duplicated code
+
+2016-10-21 Alex Kennedy <alexzanderkennedy@gmail.com>
+
+ * doc/flex.texi: Update flex.texi: Removed repedative wording "Flex used to" was written twice at the beginning of Chapter 9,
+ paragraph 2.
+
+2016-09-27 Demi Obenour <demiobenour@gmail.com>
+
+ * src/dfa.c, src/gen.c, src/main.c, src/nfa.c, src/parse.y,
+ src/scan.l, tests/bison_yylval_scanner.l,
+ tests/include_by_push.direct.l: Improved M4 quotation This fixes M4 quotation of certain strings beginning with `yy` (in
+ section 3 of the input file only) and character literals. The new
+ quotation method is also less brittle and faster. Tests that relied on the old behavior were fixed. Also, `yyconst` is no longer defined; use `const` (which it
+ unconditionally was defined to) instead.
+
+2016-10-19 Will Estes <westes575@gmail.com>
+
+ * Makefile.am, configure.ac: build: for automake, flex is foreign
+
+2016-10-19 Will Estes <westes575@gmail.com>
+
+ * README, README.md: doc: mv README to README.md
+
+2016-10-19 Will Estes <westes575@gmail.com>
+
+ * README: doc: touch up README
+
+2016-10-19 Will Estes <westes575@gmail.com>
+
+ * README: doc: README no longer mentions sourceforge
+
+2016-10-06 Will Estes <westes575@gmail.com>
+
+ * NEWS: doc: update NEWS with more post-2.6.1 additions
+
+2016-09-27 Demi Obenour <demiobenour@gmail.com>
+
+ * src/filter.c, src/flexdef.h, src/main.c, src/misc.c,
+ src/options.c, src/options.h, src/scan.l, src/yylex.c,
+ tests/Makefile.am, tests/alloc_extra.l, tests/array_r.l,
+ tests/basic_r.l, tests/c_cxx_nr.lll, tests/c_cxx_r.lll,
+ tests/debug_r.l, tests/include_by_reentrant.direct.l,
+ tests/lineno_r.l, tests/mem_nr.l, tests/mem_r.l, tests/posix.l,
+ tests/posixly_correct.l, tests/pthread.l, tests/quotes.l,
+ tests/reject.l4, tests/rescan_nr.direct.l, tests/rescan_r.direct.l,
+ tests/string_nr.l, tests/string_r.l: Fix M4 quoting of section 3. This fixes M4 quoting of section 3 of the input file, including
+ escape sequences and character constants. Tests were added to verify the behavior in section 3 with respect to
+ quoting. Both escaping of quotes and quoting of potential
+ macro-start characters are tested. Existing tests were also fixed to
+ account for the new -- and now correct -- behavior. Many tests
+ relied on the old behavior of expanding M4 macros in section 3.
+ They needed to be updated for the new behavior.
+
+2016-10-03 Mightyjo <mightyjo@gmail.com>
+
+ * src/flex.skl, tests/.gitignore, tests/Makefile.am,
+ tests/cxx_restart.ll, tests/cxx_restart.txt: Fix yyrestart(NULL)
+ SEGV.
+
+2016-09-05 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l: scanner: M4 quoting fixes
+
+2016-09-05 Demi Obenour <demiobenour@gmail.com>
+
+ * src/Makefile.am: Support `make indent` for out of source builds
+
+2016-09-24 Demi Obenour <demiobenour@gmail.com>
+
+ * src/Makefile.am, src/mkskel.sh: Simplify some shell code
+
+2016-09-23 Demi Obenour <demiobenour@gmail.com>
+
+ * doc/flex.texi, src/flex.skl, src/flexdef.h, src/main.c,
+ src/options.c, src/options.h, src/scan.l, tests/.gitignore,
+ tests/Makefile.am, tests/noansi_nr.l, tests/noansi_nr.txt,
+ tests/noansi_r.l, tests/noansi_r.txt: no longer generate K&R C
+ scanners
+
+2016-09-04 Demi Obenour <demiobenour@gmail.com>
+
+ * src/scan.l: Fix escaping of `[[` and `]]` in strings Previously, `[[` and `]]` were not escaped in strings, which led to
+ bad interactions with m4. Also, don't break strings on newline, as GCC et al support
+ whitespace between a backslash and the subsequent newline.
+
+2016-06-20 Translation Project <coordinator@translationproject.org>
+
+ * NEWS, po/sv.po: new sv translation
+
+2016-05-23 Demetri Obenour <demiobenour@gmail.com>
+
+ * src/misc.c: Delete action_m4_define from misc.c This function was not used and always triggered a fatal error when
+ run.
+
+2016-05-20 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am, tests/testwrapper-direct.sh: test: run direct
+ tests from srcdir
+
+2016-01-11 Egor Pugin <egor.pugin@gmail.com>
+
+ * tests/include_by_buffer.direct.l, tests/include_by_push.direct.l,
+ tests/include_by_reentrant.direct.l: Exited with error code on some
+ conditions in include tests
+
+2016-05-20 Will Estes <westes575@gmail.com>
+
+ * tests/testwrapper.sh: test: drop .exe when making input file names
+
+2016-05-20 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: test: removed dependencies for include tests
+
+2016-04-28 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/scanflags.c: Avoid realloc on every call of sf_push() Currently, every call to sf_push() realloc()'s _sf_stack, even if
+ the maximum size _sf_max wasn't changed. As the indentation beneath
+ the "if" clause already indicates, the realloc() should only be
+ executed if _sf_max was increased. Found by compiling flex with the -Wmisleading-indentation flags of
+ gcc, which leads to the following warning: scanflags.c: In function ‘sf_push’: scanflags.c:42:5: warning:
+ this ‘if’ clause does not guard... [-Wmisleading-indentation] if
+ (_sf_top_ix + 1 >= _sf_max) ^~ scanflags.c:44:9: note: ...this
+ statement, but the latter is misleadingly indented as if it is
+ guarded by the ‘if’ _sf_stk = realloc(_sf_stk,
+ sizeof(scanflags_t) * _sf_max); ^~~~~~~
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * doc/Makefile.am: build: prettified command to build man page
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * doc/Makefile.am: build: added man page to DISTCLEANFILES
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * BUGS, TODO: remove unused TODO, BUGS files
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * to.do/README, to.do/Wilhelms.todo, to.do/Wish-List,
+ to.do/flex.rmail, to.do/streams.mail, to.do/unicode/FlexLexer.h,
+ to.do/unicode/ccl.c, to.do/unicode/changes.txt,
+ to.do/unicode/ecs.c, to.do/unicode/flex.1, to.do/unicode/flex.skl,
+ to.do/unicode/flexdef.h, to.do/unicode/gen.c, to.do/unicode/main.c,
+ to.do/unicode/misc.c, to.do/unicode/scan.l, to.do/unicode/tblcmp.c:
+ removed to.do/ directory
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * po/POTFILES.in: gettext: removed flex.skl from POTFILES.in file
+ list
+
+2016-03-31 rlar <rlar>
+
+ * src/Makefile.am: fix skel.c dependency (missing tables_shared.c)
+ and polish build rule Also remove references to srcdir since skel.c is no longer mentioned
+ in po/POTFILES.in.
+
+2016-03-31 rlar <rlar>
+
+ * doc/Makefile.am: fix flex.1 dependency git clean -fdx && ./autogen.sh && \ mkdir -p ../build && cd ../build && ../flex/configure && make -j10
+ && \ make dist failed with: > help2man: can't get `--help' info from ../../flex/src/flex Note: There is no dependency except for the flex binary.
+
+2016-03-31 rlar <rlar>
+
+ * src/Makefile.am: fix stage1scan.c and stage1scan.l dependency git clean -fdx && ./autogen.sh && \ mkdir -p ../build && cd ../build && ../flex/configure && make -j10 failed with: > ../src/stage1flex -o stage1scan.c stage1scan.l > stage1flex: can't
+ open stage1scan.l Note: stage1scan.c is not necessairy in the "make dist" generated tar.gz
+ file. stage1flex will be build from scan.c (which is
+ distributed), and this will then generate stage1scan.c from scan.l
+
+2016-03-31 Will Estes <westes575@gmail.com>
+
+ * po/POTFILES.in: gettext: list src/flex.skl in po/POTFILES.in
+
+2016-03-29 rlar <rlar>
+
+ * src/gen.c: warning in generated code, with -Ca warning: conversion to 'yy_state_type' from 'flex_uint32_t' may
+ change the sign of the result [-Wsign-conversion]
+
+2016-03-29 rlar <rlar>
+
+ * tests/Makefile.am: suppress `WARNINGFLAGS' for the almost obsolete
+ `noansi' test cases
+
+2016-03-29 rlar <rlar>
+
+ * configure.ac, src/Makefile.am, tests/Makefile.am: configure option
+ `--enable-warnings' and `WARNINGFLAGS' `WARNINGFLAGS' can be passed when invoking `configure' and when invoking `make' if configure switch `--enable-warnings' was given then default to something useful if we have `GCC' `WARNINGFLAGS' is not used when compiling `stage1flex' to avoid unnecessary clutter
+
+2016-03-31 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/main.c: Fix potential buffer overflow in strncat() When using clang/llvm 3.8 to compile flex, the following warning is
+ emitted: main.c:378:27: warning: the value of the size argument in 'strncat'
+ is too large, might lead to a buffer overflow [-Wstrncat-size]
+ strncat(m4_path, m4, sizeof(m4_path));
+ ^~~~~~~~~~~~~~~
+ main.c:378:27: note: change the argument to be the free space in the
+ destination buffer minus the terminating null byte strncat(m4_path,
+ m4, sizeof(m4_path)); ^~~~~~~~~~~~~~~
+ sizeof(m4_path) - strlen(m4_path) - 1Fix it up by using the solution proposed by the warning message.
+
+2016-03-29 Robert.Larice Robert Larice <Robert.Larice@t-online.de>
+
+ * src/Makefile.am: build: simplified dependency tracking so parallel
+ make runs succeed
+
+2016-03-20 rlar <rlar>
+
+ * src/flex.skl, src/gen.c, src/main.c: avoid warning in generated
+ code, with -Cf warning: conversion to 'unsigned int' from 'int' may change the sign
+ of the result [-Wsign-conversion]
+
+2016-03-18 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: mention v2.6.2; summarize changes since 2.6.1
+
+2016-03-18 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: doc: corrected example in manual, gh#67
+
+2016-03-16 rlar <rlar>
+
+ * tests/string_nr.l, tests/string_r.l, tests/yyextra.l: warning:
+ conversion to 'size_t' from 'int' may change the sign of the result
+ [-Wsign-conversion]
+
+2016-03-16 rlar <rlar>
+
+ * tests/mem_nr.l, tests/mem_r.l, tests/pthread.l: warning:
+ conversion to 'long unsigned int' from 'int' may change the sign of
+ the result [-Wsign-conversion]
+
+2016-03-16 rlar <rlar>
+
+ * src/flex.skl: warning: conversion to 'flex_uint32_t' from 'long
+ unsigned int' may alter its value [-Wconversion] struct yytbl_reader, member bread is of type flex_uint32_t
+
+2016-03-16 rlar <rlar>
+
+ * tests/alloc_extra.l, tests/bison_nr_main.c,
+ tests/bison_nr_parser.y, tests/bison_yylloc_parser.y: warning:
+ redundant redeclaration of '...' [-Wredundant-decls]
+
+2016-03-16 rlar <rlar>
+
+ * tests/bison_nr_parser.y, tests/bison_yylloc_parser.y,
+ tests/bison_yylval_parser.y, tests/pthread.l: warning: no previous
+ prototype for '...' [-Wmissing-prototypes]
+
+2016-03-16 rlar <rlar>
+
+ * tests/multiple_scanners_r_main.c: warning: unused variable 'fp'
+ [-Wunused-variable]
+
+2016-03-16 rlar <rlar>
+
+ * tests/pthread.l: main(), warning: redundant redeclaration of
+ 'main' [-Wredundant-decls]
+
+2016-03-16 rlar <rlar>
+
+ * tests/include_by_reentrant.direct.l, tests/lineno_nr.l,
+ tests/lineno_r.l, tests/lineno_trailing.l: main(), warning:
+ old-style function definition [-Wold-style-definition]
+
+2016-03-16 rlar <rlar>
+
+ * tests/alloc_extra.l, tests/array_nr.l, tests/array_r.l,
+ tests/basic_nr.l, tests/basic_r.l, tests/ccl.l, tests/debug_nr.l,
+ tests/debug_r.l, tests/extended.l, tests/mem_nr.l, tests/mem_r.l,
+ tests/noansi_r.l, tests/posix.l, tests/posixly_correct.l,
+ tests/prefix_nr.l, tests/prefix_r.l, tests/quotes.l,
+ tests/string_nr.l, tests/string_r.l, tests/yyextra.l: main(),
+ warning: old-style function definition [-Wold-style-definition]
+
+2016-03-01 rlar <rlar>
+
+ * src/ecs.c, src/tblcmp.c: Fix two more casts
+
+2016-03-14 Bastian Kcher <git@kchr.de>
+
+ * src/gen.c: Fixes yyl compare with unsigned warning
+
+2016-03-13 Robert Larice <Robert.Larice@t-online.de>
+
+ * configure.ac: Suppress portability warnings in Makefile generation
+
+2016-02-27 rlar <rlar>
+
+ * src/flex.skl: generated code, in yyensure_buffer_stack(), change
+ type of local `num_to_alloc' which is exclusively used in yy_size_t context
+
+2016-03-01 rlar <rlar>
+
+ * src/flex.skl: generated code, in yy_get_next_buffer(), change type
+ of local `number_to_move' suits better, because `yy_n_chars' and `yy_buf_size' are of type
+ `int'
+
+2016-02-27 rlar <rlar>
+
+ * src/flex.skl: generated code, `_yybytes_len' is of type `int', fix
+ code accordingly
+
+2016-02-28 rlar <rlar>
+
+ * src/gen.c: generated code, `max_size' seems to be of type `int',
+ fix casts accordingly
+
+2016-02-28 rlar <rlar>
+
+ * src/flex.skl: generated code, here `new_size' is of type `int',
+ fix casts accordingly
+
+2016-02-28 rlar <rlar>
+
+ * src/flex.skl: generated code, `yy_buf_size' is of type `int', fix
+ casts accordingly
+
+2016-02-28 rlar <rlar>
+
+ * src/flex.skl: generated code, `offset' is of type `int'
+
+2016-02-28 rlar <rlar>
+
+ * src/gen.c: generated code, `yy_more_len' is of type `int'
+
+2016-02-28 rlar <rlar>
+
+ * src/scan.l: scan.l, rewrite two loops to avoid unneccesairy
+ casting
+
+2016-03-01 rlar <rlar>
+
+ * src/regex.c, src/tables.c: improve readability
+
+2016-02-28 rlar <rlar>
+
+ * src/tblcmp.c: another cast in tblcmp.c to avoid warning
+
+2016-02-28 rlar <rlar>
+
+ * src/buf.c: casts in buf_append() to get rid of warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/dfa.c, src/gen.c: cast to suite type of flex_uint32_t td_lolen
+
+2016-02-28 rlar <rlar>
+
+ * src/main.c, src/misc.c, src/regex.c, src/scan.l, src/scanopt.c,
+ src/tables_shared.c: cast to get rid of warnings
+
+2016-03-01 rlar <rlar>
+
+ * src/buf.c, src/main.c: cast and fix usage of log10(), ceil to
+ prevent buffer overflow
+
+2016-03-01 rlar <rlar>
+
+ * src/tables.c: tables.c, sprinkle casts to get rid of warnings
+
+2016-03-01 rlar <rlar>
+
+ * src/tables.c: yytbl_data_compress(), change type of local newsz to
+ get rid of warnings
+
+2016-03-01 rlar <rlar>
+
+ * src/tables.c, src/tables.h: change type of struct
+ yytbl_writer.total_written to get rid of warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/tables.c: change argument type of yytbl_writen() to get rid of
+ warnings
+
+2016-03-01 rlar <rlar>
+
+ * src/tables.c: yytbl_write8/16/32(), change type of local variables
+ to get rid of warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h, src/misc.c, to.do/unicode/flexdef.h,
+ to.do/unicode/misc.c: change return type and rename int
+ htoi()/otoi() --> unsigned int htoui()/otoui()
+
+2016-03-01 Will Estes <westes575@gmail.com>
+
+ * NEWS: Mention 2.6.1 release date
+
+2016-02-28 rlar <rlar>
+
+ * src/gen.c: avoid warning, add (int) cast to the read() return
+ value For similiarity with the fread() case.
+
+2016-02-28 rlar <rlar>
+
+ * src/scan.l: avoid warning, POSIX says yyless() has an `int'
+ argument
+
+2016-02-29 rlar <rlar>
+
+ * src/filter.c: use type size_t in filter_tee_header() to avoid
+ warnings
+
+2016-02-29 rlar <rlar>
+
+ * src/filter.c, src/misc.c, src/scanopt.c, src/tables.c: add
+ (size_t) casts to malloc invocations to prevent warnings
+
+2016-02-29 rlar <rlar>
+
+ * src/buf.c, src/misc.c, src/scan.l, src/scanopt.c, src/tables.c:
+ add (int) casts to some strlen() invocations to prevent warnings
+
+2016-02-29 rlar <rlar>
+
+ * src/flexdef.h, src/scan.l, src/sym.c: ndlookup(), char *, to get
+ rid of casts and warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h, src/scan.l, src/sym.c: ndinstal(), char *, to get
+ rid of casts and warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h, src/scan.l, src/sym.c: cclinstal() and ccllookup(),
+ char *, to get rid of casts and warnings
+
+2016-02-28 rlar <rlar>
+
+ * src/gen.c: warning: redundant redeclaration of
+ ‘gen_next_state’ [-Wredundant-decls]
+
+2016-02-28 rlar <rlar>
+
+ * src/gen.c: warning: no previous prototype for ‘mkecstbl’
+ [-Wmissing-prototypes]
+
+2016-02-28 rlar <rlar>
+
+ * src/main.c: warning: suggest parentheses around assignment used as
+ truth value [-Wparentheses]
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h: warning: redundant redeclaration of ‘yywrap’
+ [-Wredundant-decls]
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h: warning: redundant redeclaration of ‘yylval’
+ [-Wredundant-decls]
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h: warning: redundant redeclaration of ‘yyin’
+ [-Wredundant-decls]
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h, src/main.c: warning: redundant redeclaration of
+ ‘yyparse’ [-Wredundant-decls]
+
+2016-02-28 rlar <rlar>
+
+ * src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l:
+ unification, rename some more rename these too for improved similiarity: OPTION_OP OPT_HEADER OPT_EXTRA_TYPE OPT_TABLES
+
+2016-02-28 rlar <rlar>
+
+ * src/parse.y, src/scan.l, src/yylex.c, to.do/unicode/scan.l: fix
+ name clash, OPT_OUTFILE from parse.y and from options.h these collide: OPT_OUTFILE OPT_PREFIX OPT_YYCLASS rename them TOK_... in the
+ parser
+
+2016-02-28 Will Estes <westes575@gmail.com>
+
+ * lib/reallocarray.c: Prototyped reallocarray implementation
+
+2016-02-28 Will Estes <westes575@gmail.com>
+
+ * src/scanopt.c: Removed custom strcasecmp() function
+
+2016-02-28 rlar <rlar>
+
+ * src/flex.skl: fwrite wants a size_t, yyleng is int per posix
+
+2016-02-28 rlar <rlar>
+
+ * src/scanopt.c: Remove some unneeded casts
+
+2016-02-28 rlar <rlar>
+
+ * src/flexdef.h: warning: negative integer implicitly converted to
+ unsigned type [-Wsign-conversion]
+
+2016-02-27 rlar <rlar>
+
+ * src/dfa.c, src/parse.y: dfa.c:157:24: warning: conversion to
+ 'size_t' from 'int' may change the sign of the result
+ [-Wsign-conversion] most certainly safe cast
+
+2016-02-27 rlar <rlar>
+
+ * src/ccl.c: ccl.c:86:19: warning: conversion to 'unsigned char'
+ from 'int' may alter its value [-Wconversion] ch seems to have been checked for proper range some lines above
+
+2016-02-27 rlar <rlar>
+
+ * tests/bison_nr_parser.y: warning: deprecated directive, use
+ '%pure-parser' [-Wdeprecated]
+
+2016-02-27 rlar <rlar>
+
+ * lib/lib.c: warning: no previous prototype for 'do_nothing'
+ [-Wmissing-prototypes]
+
+2016-02-27 rlar <rlar>
+
+ * src/libmain.c: included stdlib.h header
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * NEWS: Described more post v2.6.0 changes
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * configure.ac: build: Removed bzip2 distribiution archive
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * configure.ac: removed obsolete program check
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * configure.ac: Made some program checks more robust
+
+2016-02-27 rlar <rlar>
+
+ * src/flex.skl: Remove unneeded cast to int
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Fixed incorrect integer type
+
+2016-02-27 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Fix more integer types, resolves sf 184, 187
+
+2016-02-26 Robert Larice <Robert.Larice@t-online.de>
+
+ * src/flex.skl, src/gen.c: Removed some type conversion warnings
+
+2016-02-26 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Changed another buffer size to int; resolves gh#61
+
+2016-02-24 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Changed type of yy_n_chars to int; gh#53, sf#160. The variable yy_n_chars had been of type yy_size_t which is
+ incorrect given its use in read(). While it might be adviseable to
+ look at defining a yy_ssize_t, there might be some issues doing this
+ and so, for now, at least, we'll punt back to int.
+
+2016-02-24 Will Estes <westes575@gmail.com>
+
+ * src/buf.c: Fixed size of bufferallocation, resolved gh#54. The value of n_alloc was a count, not a size. Multiplying the value
+ by the element size was incorrect. That multiplication was already
+ being done and having it done twice was incorrect.
+
+2016-02-23 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/scan.l: Allow '%option noline' in flex input file, resolves
+ gh#56. Allow specifying '%option noline' in the input file, leading to the
+ same effect as calling flex with the command line option --noline. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
+
+2016-02-23 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/buf.c, src/main.c: Emit no #line directives if gen_line_dirs
+ is false, resolves igh#55. There are two instances in the code which will print a #line
+ directive to the resulting lexer, regardless of the value of
+ gen_line_dirs. Fix them, so they also respect gen_line_dirs. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
+
+2016-02-16 Tobias Klauser <tklauser@distanz.ch>
+
+ * lib/lib.c, src/gen.c, src/misc.c, src/scan.l: Converted K&R style
+ function definitions to ANSI C style Consistently make use of the ANSI C function definition style
+ instead of the K&R style.
+
+2016-01-29 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/flex.skl: Used NULL constant instead of plain integer for NULL
+ pointer. The sparse static checker warns about using plain integer 0 as NULL
+ pointers in the generated lexer code. Fix this by using NULL
+ consistently for pointers.
+
+2016-01-29 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/flex.skl: Marked declaration and definition of yy_fatal_error
+ as noreturn. Only the declaration of yy_fatal_error is marked with
+ __attribute__((__noreturn__)) in case GCC >= 3 is used, but not the
+ definition. This leads to the sparse static checker to complain
+ about function declaration mismatch. Fix it by defining a macro yynoreturn and using it for both the
+ declaration and the definition of yy_fatal_error.
+
+2016-01-27 Tobias Klauser <tklauser@distanz.ch>
+
+ * src/flex.skl: Fixed declaration mismatch in yy_fatal_error. The prototype declares yy_fatal_error parameter as "const char
+ msg[]" while the definition uses "const char* msg" (introduced by
+ commit e9d5fc713f61b) which causes the sparse static checkers to
+ produce an error. Fix this by adjusting the definition to use "const char* msg" as
+ well. Also change the C++ version accordingly so it matches the
+ declaration in FlexLexer.hpp.
+
+2016-01-23 Will Estes <westes575@gmail.com>
+
+ * CODE_OF_CONDUCT.md: flex is for flex #NCoC
+
+2016-01-18 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: Referred to github for issue tracking, no longer sf
+
+2016-01-10 Egor Pugin <egor.pugin@gmail.com>
+
+ * tests/reject.l4, tests/tableopts.l4: Opened files in binary mode
+ explicitly
+
+2016-01-08 OBATA Akio <obache@NetBSD.org>
+
+ * src/Makefile.am: Linked flex binary against libintl, not libfl. Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
+
+2016-01-08 Michael van Elst <mlelstv@NetBSD.org>
+
+ * src/filter.c: Improved pipe-stdin hack behavior; resolves sf#198. Signed-off-by: Thomas <Klausner wiz@NetBSD.org>
+
+2015-12-27 Will Estes <westes575@gmail.com>
+
+ * configure.ac, src/flexdef.h: Removed no longer needed header
+ checks
+
+2015-12-27 Will Estes <westes575@gmail.com>
+
+ * configure.ac: Checked for reallocarray() with AC_REPLACE_FUNCS
+
+2015-12-27 Will Estes <westes575@gmail.com>
+
+ * src/flexdef.h, src/main.c: include libgen.h from flexdef.h, not
+ main.c
+
+2015-12-25 Michael Reed <m.reed@mykolab.com>
+
+ * src/main.c: Replace basename2() with basename(3). Given the following program: \#include <libgen.h> \#include <stdio.h> /* extracts basename from path, optionally stripping the extension
+ "\.*" * (same concept as /bin/sh `basename`, but different handling
+ of extension). */ static char *basename2 (char *path) { char *b; for (b = path; *path; path++) if (*path == '/') b = path + 1; return b; } static void basename_compare(char *path) { printf("basename: %s\n", basename(path)); printf("basename2: %s\n\n", basename2(path)); } int main (int argc, char *argv[]) { // From http://pubs.opengroup.org/onlinepubs/9699919799/ // ``Sample Input and Output Strings'' basename_compare("/usr/lib"); basename_compare("/usr/"); basename_compare("/"); basename_compare("///"); basename_compare("//usr//lib//"); return 0; } ... and the program's output: basename: lib basename2: lib basename: usr basename2: basename: / basename2: basename: / basename2: basename: lib basename2: ... we can see that basename2() behaves the same as basename(3) in
+ the average use case, but messes up pretty severely in others.
+ Besides that, basename(3) is mandated by POSIX so should be present
+ on modern Unix-like systems, so we shouldn't define it ourselves. Some notes: - it doesn't appear to be mentioned in POSIX, but OpenBSD's
+ basename(3) returns NULL if the returned path componenet is >
+ PATH_MAX, so add a check for that - basename(3) shouldn't return an empty string, so remove the program_name[0] != '\0' check
+
+2015-12-25 Michael Reed <m.reed@mykolab.com>
+
+ * src/main.c: Simplify basename2(). It's only call site does not activate the `strip_ext` code path, so
+ the function can be simplified a lot. While here, remove a double
+ assignment.
+
+2015-12-25 Michael Reed <m.reed@mykolab.com>
+
+ * src/flex.skl, src/misc.c: Cleaned up __STDC__ #ifdefs. Assuming a compiler conforming to the ISO C standard is used, i.e.,
+ __STDC__ is defined to 1, YY_USE_CONST is always defined and can be
+ eliminated.
+
+2015-12-25 Michael Reed <m.reed@mykolab.com>
+
+ * src/flexdef.h, src/main.c, src/scanopt.c, src/scanopt.h,
+ src/sym.c: Remove remaining use of PROTO
+
+2015-12-21 Serguey Parkhomovsky <xindigo@gmail.com>
+
+ * src/buf.c: buf.c: use snprintf
+
+2015-12-19 Will Estes <westes575@gmail.com>
+
+ * configure.ac: build: reformatted AC_CHECK_FUNCS for readability
+
+2015-12-17 Will Estes <westes575@gmail.com>
+
+ * src/scanopt.c: correct function prototype
+
+2015-12-15 Michael Reed <m.reed@mykolab.com>
+
+ * src/main.c, src/scanopt.c, src/sym.c, src/tblcmp.c: Remove more
+ instances of PROTO
+
+2015-12-15 Michael Reed <m.reed@mykolab.com>
+
+ * src/main.c: Removed prototype for main(). It's not called anywhere else so the prototype is not needed. See
+ the C99 standard [1], section 5.1.2.2.1 for more info. [1]: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
+
+2015-12-13 Michael McConville <mmcco@mykolab.com>
+
+ * src/dfa.c, src/gen.c, src/nfa.c, to.do/unicode/main.c,
+ to.do/unicode/tblcmp.c: Removed more instances of PROTO, ansifying.
+
+2015-12-13 Will Estes <westes575@gmail.com>
+
+ * README: Noted github for issue tracking and pull requests
+
+2015-12-13 Michael McConville <mmcco@mykolab.com>
+
+ * README: Reformatted README; removed sf bug tracking link.
+
+2015-12-13 Michael McConville <mmcco@mykolab.com>
+
+ * src/gen.c, to.do/unicode/gen.c: Removed macros for indentation
+ level. Just increment or decrement the indentation counter. That's less to
+ remember and makes the code more readable. w# Please enter the commit message for your changes. Lines starting
+
+2015-12-12 Mike Frysinger <vapier@gentoo.org>
+
+ * tests/Makefile.am, tests/testwrapper.sh: tests: fixed paths to
+ input files. The current test wrapper works only when the inputs are specified
+ using relative paths. If they're specified with absolute paths, the
+ driver fails to detect the inputs because it always prepends the
+ input dir name which itself is a relative path: $ cd tests $
+ ./testwrapper.sh -d . -i $PWD/reject.txt -t ./reject_ver.table
+ <fails to open inputs> This normally doesn't show up because people run `./configure` or,
+ for out of tree builds, `../configure`. But if you happen to run
+ configure with an absolute path, then automake tends to generate
+ absolute paths as well leading to test failures. Fix all of this by dropping the implicit input directory prepending. - INPUT_NAME is often a list of files, not just a single one - the input directory is used to find the testname tables which are usually generated, so it's impossible to use files from both
+ source and build directories - most of the time, the full/correct path is already specified
+
+2015-12-12 Mike Frysinger <vapier@gentoo.org>
+
+ * configure.ac: configure: fixed realloc test. The [] characters are used for quoting in m4, so the attempt to use
+ them in place of `test` fails yielding the warning at build time: .../flex/configure: line 20222: no: command not found
+
+2015-12-12 Michael McConville <mmcco@mykolab.com>
+
+ * src/flexdef.h: Started removal of PROTO macro. The PROTO macro is no longer needed. Additionally, its usage is
+ inconsistent, so we began removing it.
+
+2015-12-12 Michael Reed <m.reed@mykolab.com>
+
+ * Makefile.am, src/main.c: Removed SHORT_FILE_NAMES preprocessor
+ symbol. As a relic of MS-DOS, we don't need this. It's never defined; see 13b5b214f53d1c3354a7ab910bd160c126df1331. Removed additional MSDOS ifdef.
+
+2015-12-11 Michael McConville <mmcco@mykolab.com>
+
+ * configure.ac, lib/reallocarray.c, src/flexdef.h: Added new
+ function reallocarray. This is taken from OpenSSH Portable, which in turn takes it from
+ OpenBSD. reallocarray wraps the stdlib's realloc function. It takes two size
+ arguments and checks for overflow, like calloc, but doesn't zero the
+ memory. Therefore, it allows us to do overflow-safe array
+ reallocations and overflow-safe unzeroed array allocations, which
+ the stdlib allocation functions don't. We have a bunch of specific array allocation macros, none of which
+ check for overflow. reallocarray should be able to replace them.
+
+2015-12-11 Michael McConville <mmcco@mykolab.com>
+
+ * src/flexdef.h: Removed MS-DOS, VMS macros. Given the age of the MS-DOS and VMS platforms, it's likely that no
+ one is building flex on them any more. Additionally, the preferred
+ approach is to test for particular platform features rather than to
+ test for particular platforms.
+
+2015-12-12 Will Estes <westes575@gmail.com>
+
+ * src/flexdef.h, src/main.c: Made search for m4 more explicit.
+
+2015-12-12 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Returned 0 from yywrap() instead of EOF
+
+2015-12-11 Will Estes <westes575@gmail.com>
+
+ * src/libmain.c: Changed end of main() in libmain to exit(0)
+
+2015-12-11 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: Mentioned v2.6.1; documented some changes
+ since v2.6.0
+
+2015-12-11 Will Estes <westes575@gmail.com>
+
+ * README: Updated build documentation; finished sf#155. Removed version numbers for build tools. Noted that version
+ requirements for build tools will be noted in configure.ac. Expanded
+ documentation of building texinfo based docs.
+
+2015-12-11 Will Estes <westes575@gmail.com>
+
+ * doc/Makefile.am: Removed flex.pdf from distribution; partially
+ fixed sf#155
+
+2015-12-11 Will Estes <westes575@gmail.com>
+
+ * src/flex.skl: Commented in C style in skeleton; fixed sf#195
+
+2015-12-10 Will Estes <westes575@gmail.com>
+
+ * .gitignore: Ignored autoscan files
+
+2015-12-09 Will Estes <westes575@gmail.com>
+
+ * configure.ac: Checked for ranlib and strdup() at configure time
+
+2015-12-09 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flexdef.h, src/misc.c, src/tblcmp.c, to.do/unicode/flexdef.h,
+ to.do/unicode/misc.c, to.do/unicode/tblcmp.c: Replace zero_out()
+ with stdlib's memset.
+
+2015-12-09 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flex.skl: Removed memory allocation casts.
+
+2015-12-09 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flexdef.h: Removed alloca() configuration. Since alloca() is dangerous, depricated, we remove it.
+
+2015-12-09 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flexdef.h: Removed implementation of isascii(). POSIX defines isascii(), so it's likely present on anything
+ weactually build flex on these days.
+
+2015-12-09 Michael McConville <mmcconville@mykolab.com>
+
+ * src/main.c, src/scanopt.c, src/tables.c: Removed NULL-checks
+ before free()
+
+2015-12-08 Michael McConville <mmcconville@mykolab.com>
+
+ * src/buf.c, src/dfa.c, src/flexdef.h, src/gen.c, src/scan.l,
+ to.do/unicode/flexdef.h, to.do/unicode/scan.l: Removed flex_free()i,
+ corrected buf_destroy logic. As with flex_alloc(), replace with direct calls to free(). The function buf_destroy is now null safe and the logic was
+ corrected to free() correctly.
+
+2015-12-08 Michael McConville <mmcconville@mykolab.com>
+
+ * src/filter.c, src/flexdef.h, src/misc.c, src/scan.l,
+ src/scanflags.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c,
+ to.do/unicode/scan.l: Removed flex_realloc(). As with flex_alloc(), replace calls to flex_realloc(), which was
+ just a wrapper around realloc().
+
+2015-12-08 Michael McConville <mmcconville@mykolab.com>
+
+ * src/buf.c, src/filter.c, src/flexdef.h, src/main.c, src/misc.c,
+ src/regex.c, src/scan.l, src/scanflags.c, src/sym.c,
+ to.do/unicode/flexdef.h, to.do/unicode/misc.c, to.do/unicode/scan.l:
+ Removed flex_alloc; cleaned up style. The function flex_alloc() was just a wrapper around malloc(). Since
+ this only added unclarity, and the flex_alloc() function is likely a
+ legacy of olden times, remove it in favor of calls to malloc()
+ directly. Style elements cleaned up: * superfluous spacing around parentheses * non-constant initialization in variable declarations * needless casts * almost all uses of assignments as subexpressions
+
+2015-12-07 Michael McConville <mmcconville@mykolab.com>
+
+ * src/dfa.c, src/flexdef.h, src/gen.c, src/main.c, src/scan.l,
+ src/scanopt.c, tests/bison_nr_scanner.l,
+ tests/bison_yylloc_scanner.l, tests/bison_yylval_scanner.l,
+ tests/mem_nr.l, tests/mem_r.l, tests/pthread.l, tests/string_nr.l,
+ tests/string_r.l, tests/yyextra.l, to.do/unicode/scan.l: Remove
+ allocation casts
+
+2015-12-07 Will Estes <westes575@gmail.com>
+
+ * src/.gitignore, src/Makefile.am: Built flex with itself. Changes in scan.l need to be built into flex with the same version
+ of flex in some cases. Since this build requirement is minimal, we
+ simply bootstrap flex unconditionally. We intentionally exclude from version control the bootstrap
+ artifacts as the extra copy of the lexer, the intermediate scanner
+ and the bootstrap executable are not of interest.
+
+2015-12-05 Michael McConville <mmcconville@mykolab.com>
+
+ * src/buf.c, src/dfa.c, src/main.c, src/nfa.c, src/parse.y,
+ src/scan.l, src/scanopt.c, src/sym.c, to.do/unicode/main.c,
+ to.do/unicode/scan.l: Use NULL rather than (type *) 0.
+
+2015-12-05 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flexdef.h, src/misc.c, src/sym.c, to.do/unicode/flexdef.h,
+ to.do/unicode/misc.c: Replace copy_unsigned_string() with xstrdup(). Like copy_string(), copy_unsigned_string() is just a clone of the
+ stlib's strdup(). We only use it twice. I'm pretty confident that
+ char signedness is irrelevant in this case.
+
+2015-12-04 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/FlexLexer.h: Cleaned up white space.
+
+2015-12-04 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/FlexLexer.h: Removed struct keyword before yy_buffer_state
+
+2015-12-04 Akim Demaille <akim@lrde.epita.fr>
+
+ * examples/testxxLexer.l, src/FlexLexer.h, src/flex.skl, src/main.c:
+ Replaced FLEX_STD macro with std::. The std:: construct exists as of C++98, so we can simply assume it
+ is supported.
+
+2015-12-04 Akim Demaille <akim@lrde.epita.fr>
+
+ * src/Makefile.am: Generated skel.c explicitly in srcdir. Rewrote the target for skel.c to explicitly mention the srcdir. This
+ should help when building flex from a directory outside the flex
+ tree. Spread the rule out over several lines to enhance readability.
+
+2015-12-04 Akim Demaille <akim@lrde.epita.fr>
+
+ * autogen.sh: Called glibtoolize if libtoolize run fails. On Mac OS X, libtoolize is known as glibtoolize. In cases where
+ libtoolize is not present, then calling glibtoolize when
+ bootstrapping the build system gives more folks a shot at getting
+ flex built from the ground up.
+
+2015-12-02 Mightyjo <mightyjo@gmail.com>
+
+ * configure.ac: Checked for (g)texi2dvi. Better bison, help2man
+ checks. Added test for presence of (g)texi2dvi program. Gave notice if
+ texi2dvi is unavailable and set TEXI2DVI=: to avoid giving users
+ headaches. Enhanced tests for bison and help2man with notices when the programs
+ aren't found. Set their program variables to use the missing script
+ in build-aux since it's compatible with them.
+
+2015-12-02 Michael McConville <mmcconville@mykolab.com>
+
+ * src/flexdef.h, src/misc.c, src/parse.y, src/scan.l, src/sym.c,
+ src/tables.c, to.do/unicode/flexdef.h, to.do/unicode/misc.c,
+ to.do/unicode/scan.l: Made string copying more standard. copy_string() was a clone of the stdlib's strdup(). For safety,
+ simplicity, and speed, we should use that instead. We introduce
+ xstrdup() which wraps strdup() in a failure upon memory allocation
+ errors.
+
+2015-11-30 Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com>
+
+ * src/scan.l: Error on unbalanced parentheses in rules section.
+
+2015-11-29 Will Estes <westes575@gmail.com>
+
+ * src/Makefile.am: Cleaned up BUILT_SOURCES list. Removed reference to skel.c as a built source since other make rules
+ cover this case.
+
+2015-11-29 Will Estes <westes575@gmail.com>
+
+ * src/Makefile.am: Sorted file names in flex_SOURCES
+
+2015-11-27 Mightyjo <mightyjo@gmail.com>
+
+ * src/ecs.c, src/flexdef.h, src/main.c, src/misc.c, src/scan.l,
+ src/scanopt.c, src/sym.c, src/tblcmp.c: Replaced CHAR macro with
+ unsigned char type. Thanks to Michael McConville for pointing out that the old Char
+ macro causes problems with static analysis. The macro has been
+ removed and replaced with 'unsigned char' throughout the flex
+ sources. The macro is not needed at best and was confusing at worst.
+ It was not used in any of the example files nor was it mentioned in
+ the manual at all.
+
+2015-11-21 Will Estes <westes575@gmail.com>
+
+ * configure.ac: updated syntax of AC_INIT call as per autoupdate
+
+2015-11-21 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: removed extra call to a _CPPFLAGS variable
+
+2015-05-14 Stefan Reinauer <stefan.reinauer@coreboot.org>
+
+ * src/buf.c, src/ccl.c, src/dfa.c, src/ecs.c, src/gen.c,
+ src/main.c, src/misc.c, src/nfa.c, src/parse.y, src/scan.l,
+ src/scanopt.c, src/sym.c, src/tblcmp.c: Switch function definitions
+ from mixed K&R to consistent ANSI C. flex was using K&R function definitions for some functions and ANSI
+ C style in others, sometimes even in the same file. Change the code
+ to consistently use ANSI C. Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
+
+2015-11-16 Mightyjo <mightyjo@gmail.com>
+
+ * tests/Makefile.am: Used in-tree header file for c++ tests.
+
+2015-11-17 Will Estes <westes575@gmail.com>
+
+ * configure.ac: Declared version 2.6.0
+
+2015-11-17 Will Estes <westes575@gmail.com>
+
+ * NEWS: Dated, described flex release 2.6.0
+
+2015-11-13 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: Declared version 2.6.0rc1
+
+2015-11-13 lukeallardyce <lukeallardyce@users.sourceforge.net>
+
+ * src/Makefile.am: Supplied versioning information in flex
+ libraries. Resolves sourceforge bug #182. On OSX, and possibly other platforms,
+ building the libfl libraries without versioning information caused a
+ build failures.
+
+2015-11-12 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: Cleaned up more precisely after make check. BUILT_SOURCES is now just the list of headers built as per the
+ automake manual. We provide the list of files to clean to make
+ rebuilding the test suite programs easier. We then use the
+ CLEANFILES list in a dist-hook to clean up the distribution that
+ automake gathers since not distributing flex generated files is
+ foreign to automake's mindset, but we need exactly that. Additionally, we locate inputs to the tables-related tests more
+ precisely. Some files are in srcdir and some are in builddir, which
+ the arguments to the log compiler are now made aware of.
+
+2015-11-11 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: Pulled out scripts in tests/Makefile.am
+
+2015-11-11 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: Added srcdir to tableopts.am include
+
+2015-11-11 Will Estes <westes575@gmail.com>
+
+ * doc/Makefile.am: Changed man page dependencies. The man page is just the --help output as reformatted by help2man.
+ The --help option is most likely to change when the flex skeleton
+ changes or one of the option parsing files changes or the
+ configure.ac script itself changes. The dependencies reflect this
+ now. It is still necessary, under some circumstances, to rebuild flex
+ explicitly before building the man page. In theory, it's possible to
+ have automake arrange to do this all the time, but doing so works
+ out to be fragile, given the rest of the build system.
+
+2015-11-10 Will Estes <westes575@gmail.com>
+
+ * autogen.sh: Called libtoolize directly because autoreconf fails to
+ pick up LT_INIT properly
+
+2015-11-10 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: Added tableopts.sh to EXTRA_DIST
+
+2015-11-08 Mightyjo <mightyjo@gmail.com>
+
+ * tests/Makefile.am: Made tests depend on the built flex binary.
+
+2015-11-08 Mightyjo <mightyjo@gmail.com>
+
+ * : commit cf6cb4dce791c26567cc506770ca96b4f4118024 Author: Mightyjo
+ <mightyjo@gmail.com> Date: Sat Nov 7 23:11:35 2015 -0800
+
+2015-11-04 Mightyjo <mightyjo@gmail.com>
+
+ * doc/flex.texi: Updated documentation to reflect the revisions to
+ FlexLexer.h
+
+2015-10-26 Mightyjo <mightyjo@gmail.com>
+
+ * src/FlexLexer.h, src/flex.skl: Changed several pointers to istream
+ (and ostream) to references in c++-only sections of the skeleton. Patched up a variety of expected errors caused by changing istream*
+ to istream&. Added a stray 'make' at line 545. Oops. Changed the buffer_state struct to store std::streambuf* instead of
+ std::istream* for C++ mode. Changed interfaces in FlexLexer.h to
+ take std::istream& instead of *. Backward compatibility temporarily
+ broken. Patched up backward compatibility with reasonable behavior in the
+ presence of null pointers. Re-added backward-compatible versions of the yyFlexLexer methods
+ that take iostream pointers. All tests passing.
+
+2015-09-29 Translation Project <coordinator@translationproject.org>
+
+ * po/zh_CN.po: new zh_CN translation from the translation project
+
+2015-07-27 Jaska Uimonen <jaska.uimonen@helsinki.fi>
+
+ * src/gen.c: fix possible resource leak with yynultrans_tbl
+
+2015-07-27 Jaska Uimonen <jaska.uimonen@helsinki.fi>
+
+ * src/dfa.c: fix possible uninitialized array values
+
+2015-08-05 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: add %{...%} block to example in manual
+
+2015-07-15 Will Estes <westes575@gmail.com>
+
+ * configure.ac: initialize libtool earlier in build system
+ generation
+
+2015-05-08 Translation Project <translation@translationproject.org>
+
+ * po/da.po: new da translation from the Translation Project
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/gen.c, src/scan.l, tests/bison_nr_parser.y,
+ tests/bison_yylloc_parser.y, tests/bison_yylval_parser.y,
+ tests/multiple_scanners_nr_main.c: Fix `label unused` warning
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/flex.skl: Fix two "signed/unsigned" warnings
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * tests/alloc_extra.l, tests/array_nr.l, tests/array_r.l,
+ tests/basic_nr.l, tests/basic_r.l, tests/bison_nr_scanner.l,
+ tests/bison_yylloc_scanner.l, tests/bison_yylval_scanner.l,
+ tests/ccl.l, tests/cxx_basic.ll, tests/debug_nr.l, tests/debug_r.l,
+ tests/extended.l, tests/header_nr_scanner.l,
+ tests/header_r_scanner.l, tests/include_by_buffer.direct.l,
+ tests/include_by_push.direct.l,
+ tests/include_by_reentrant.direct.l, tests/lineno_nr.l,
+ tests/lineno_r.l, tests/lineno_trailing.l, tests/mem_nr.l,
+ tests/mem_r.l, tests/multiple_scanners_nr_1.l,
+ tests/multiple_scanners_nr_2.l, tests/multiple_scanners_r_1.l,
+ tests/multiple_scanners_r_2.l, tests/noansi_nr.l, tests/noansi_r.l,
+ tests/posix.l, tests/posixly_correct.l, tests/prefix_nr.l,
+ tests/prefix_r.l, tests/pthread.l, tests/quotes.l, tests/reject.l4,
+ tests/rescan_nr.direct.l, tests/rescan_r.direct.l,
+ tests/string_nr.l, tests/string_r.l, tests/tableopts.l4,
+ tests/top.l, tests/yyextra.l: Fix `unused function` warnings in
+ tests
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * tests/bison_nr_parser.y, tests/bison_yylloc_parser.y,
+ tests/bison_yylval_parser.y: Fix `implicit function declaration`
+ warnings in tests
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * tests/header_r_main.c, tests/multiple_scanners_nr_main.c,
+ tests/reject.l4, tests/tableopts.l4, tests/top_main.c: Remove a few
+ `unused variable` warnings
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/filter.c: Remove unused variable from
+ src/filter.c:filter_fix_linedirs
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/scanopt.c: Remove unused argument and variable from
+ src/scanopt.c:scanopt_err
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/flex.skl, src/libmain.c, src/parse.y, tests/bison_nr_main.c,
+ tests/bison_yylloc_main.c, tests/bison_yylloc_parser.y,
+ tests/bison_yylval_main.c, tests/bison_yylval_parser.y,
+ tests/header_nr_main.c, tests/header_r_main.c, tests/lineno_nr.l,
+ tests/lineno_r.l, tests/lineno_trailing.l, tests/mem_r.l,
+ tests/multiple_scanners_nr_main.c,
+ tests/multiple_scanners_r_main.c, tests/pthread.l,
+ tests/rescan_nr.direct.l, tests/rescan_r.direct.l, tests/top_main.c:
+ Fix a few "unused parameter" warnings
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/main.c: Fix warning about redefined macro when multiple
+ scanners are used.
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * tests/bison_nr_parser.y: Avoid passing `const char*` argument as
+ `char*` in test-bison-nr
+
+2014-11-21 Alexis La Goutte <alexis.lagoutte@gmail.com>
+
+ * src/misc.c, src/regex.c, src/tables.c, src/tables_shared.c: Fix
+ -Wdocumentation warnings
+
+2014-11-16 Will Estes <westes575@gmail.com>
+
+ * tests/README: document new suite layout
+
+2014-11-16 Will Estes <westes575@gmail.com>
+
+ * tests/TEMPLATE/.gitignore, tests/TEMPLATE/Makefile.am,
+ tests/TEMPLATE/cvsignore, tests/TEMPLATE/parser.y,
+ tests/TEMPLATE/scanner.l, tests/TEMPLATE/test.input,
+ tests/create-test, tests/descriptions: remove unused files after
+ test suite refactor
+
+2014-11-14 Will Estes <westes575@gmail.com>
+
+ * .gitignore, doc/.gitignore: Ignore directories build-aux/, m4/ Since build-aux/ now contains a number of files previously at the
+ top level, we ignore build-aux/. Therefore, it's not necessary to
+ list any files that are now kept in it. Also, explicitly mark m4/ as
+ a directory to ignore.
+
+2014-11-14 Will Estes <westes575@gmail.com>
+
+ * configure.ac: added back call to AC_CONFIG_AUX_DIR. In an effort to reduce top level directory clutter, reintroduced the
+ call to AC_CONFIG_AUX_DIR. Moved the call to LT_INIT to after that
+ call so configure will be able to find its files.
+
+2014-07-18 Will Estes <westes575@gmail.com>
+
+ * tests/tableopts.sh, tests/testwrapper.sh: use unofficial bash
+ strict mode and cleanups in supporting bash scripts
+
+2014-07-18 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/tableopts.am,
+ tests/tableopts.l4, tests/tableopts.sh, tests/tableopts.txt,
+ tests/test-table-opts/.gitignore,
+ tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l,
+ tests/test-table-opts/test.input: split apart table options tests
+ into tests per threading, table option, serialization and
+ verification
+
+2014-07-17 Will Estes <westes575@gmail.com>
+
+ * tests/tableopts.sh: add tableopts.sh script
+
+2014-07-02 Will Estes <westes575@gmail.com>
+
+ * configure.ac, tests/Makefile.am: use automake conditional around
+ pthread test
+
+2014-07-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/lineno_trailing.l,
+ tests/lineno_trailing.one.txt,
+ tests/test-lineno-trailing/.gitignore,
+ tests/test-lineno-trailing/Makefile.am,
+ tests/test-lineno-trailing/scanner.l,
+ tests/test-lineno-trailing/test.input: refactor lineno_trailing test
+ for new test suite layout
+
+2014-07-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/lineno_r.l,
+ tests/lineno_r.one.txt, tests/test-lineno-r/.gitignore,
+ tests/test-lineno-r/Makefile.am, tests/test-lineno-r/scanner.l,
+ tests/test-lineno-r/test.input: refactor lineno_r test for new test
+ suite layout
+
+2014-07-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/lineno_nr.l,
+ tests/lineno_nr.one.txt, tests/test-lineno-nr/.gitignore,
+ tests/test-lineno-nr/Makefile.am, tests/test-lineno-nr/scanner.l,
+ tests/test-lineno-nr/test.input, tests/testwrapper.sh: refactor
+ lineno_nr test for new test suite layout
+
+2014-06-30 Will Estes <westes575@gmail.com>
+
+ * tests/test-linedir-r/.gitignore,
+ tests/test-linedir-r/Makefile.am,
+ tests/test-linedir-r/check-lines.awk, tests/test-linedir-r/main.c,
+ tests/test-linedir-r/scanner.l, tests/test-linedir-r/test.input:
+ Remove linedir_r test. The linedir_r test tested the implementation of line number
+ tracking, not its results.
+
+2014-06-24 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/pthread.l,
+ tests/pthread_1.txt, tests/pthread_2.txt, tests/pthread_3.txt,
+ tests/pthread_4.txt, tests/pthread_5.txt,
+ tests/test-pthread/.gitignore, tests/test-pthread/Makefile.am,
+ tests/test-pthread/scanner.l, tests/test-pthread/test-1.input,
+ tests/test-pthread/test-2.input, tests/test-pthread/test-3.input,
+ tests/test-pthread/test-4.input, tests/test-pthread/test-5.input:
+ refactor pthread test for new test suite layout
+
+2014-06-24 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: build reject_[vs]er tests explicitly to pass
+ proper compiler flags
+
+2014-06-24 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/cxx_yywrap.ll,
+ tests/cxx_yywrap.txt, tests/test-c++-yywrap/.gitignore,
+ tests/test-c++-yywrap/Makefile.am, tests/test-c++-yywrap/scanner.l,
+ tests/test-c++-yywrap/test.input, tests/testwrapper.sh: refactor
+ cxx_yywrap test for new test suite layout
+
+2014-06-17 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am, tests/options.cn,
+ tests/test-concatenated-options/.gitignore,
+ tests/test-concatenated-options/Makefile.am: refactor concatenated
+ options test for new test suite layout
+
+2014-06-17 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am,
+ tests/include_by_buffer.direct.l,
+ tests/include_by_buffer.direct.txt,
+ tests/include_by_buffer.direct_2.txt,
+ tests/include_by_buffer.direct_3.txt,
+ tests/include_by_push.direct.l, tests/include_by_push.direct.txt,
+ tests/include_by_push.direct_2.txt,
+ tests/include_by_push.direct_3.txt,
+ tests/include_by_reentrant.direct.l,
+ tests/include_by_reentrant.direct.txt,
+ tests/include_by_reentrant.direct_2.txt,
+ tests/include_by_reentrant.direct_3.txt,
+ tests/test-include-by-buffer/.gitignore,
+ tests/test-include-by-buffer/Makefile.am,
+ tests/test-include-by-buffer/scanner.l,
+ tests/test-include-by-buffer/test-1.input,
+ tests/test-include-by-buffer/test-2.input,
+ tests/test-include-by-buffer/test-3.input,
+ tests/test-include-by-push/.gitignore,
+ tests/test-include-by-push/Makefile.am,
+ tests/test-include-by-push/scanner.l,
+ tests/test-include-by-push/test-1.input,
+ tests/test-include-by-push/test-2.input,
+ tests/test-include-by-push/test-3.input,
+ tests/test-include-by-reentrant/.gitignore,
+ tests/test-include-by-reentrant/Makefile.am,
+ tests/test-include-by-reentrant/scanner.l,
+ tests/test-include-by-reentrant/test-1.input,
+ tests/test-include-by-reentrant/test-2.input,
+ tests/test-include-by-reentrant/test-3.input: refactor include_by_*
+ tests for new test suite layout
+
+2014-06-16 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/rescan_nr.direct.l,
+ tests/rescan_nr.direct.txt, tests/rescan_nr.l, tests/rescan_nr.txt,
+ tests/rescan_r.direct.l, tests/rescan_r.direct.txt,
+ tests/test-rescan-r/.gitignore, tests/test-rescan-r/Makefile.am,
+ tests/test-rescan-r/scanner.l, tests/test-rescan-r/test.input,
+ tests/testwrapper.sh: refactor rescan_r test for new test suite
+ layout
+
+2014-06-16 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/rescan_nr.l,
+ tests/rescan_nr.txt, tests/test-rescan-nr/.gitignore,
+ tests/test-rescan-nr/Makefile.am, tests/test-rescan-nr/scanner.l,
+ tests/test-rescan-nr/test.input, tests/testwrapper.sh: Refactor
+ rescan_nr test for new test suite layout. Also add -r option to testwrapper.sh to support passing input file
+ as a command line argument to the test scanner without using shell
+ redirection.
+
+2014-06-16 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: correct use of objext to OBJEXT
+
+2014-06-16 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/quotes.l,
+ tests/quotes.txt, tests/test-quotes/.gitignore,
+ tests/test-quotes/Makefile.am, tests/test-quotes/scanner.l,
+ tests/test-quotes/test.input: refactor quotes test for new test
+ suite layout
+
+2014-06-16 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/reject.l4,
+ tests/reject.txt, tests/test-reject/.gitignore,
+ tests/test-reject/Makefile.am, tests/test-reject/scanner.l,
+ tests/test-reject/test.input, tests/testwrapper.sh: Refactor reject
+ test for new test suite layout. Split out reject test into its constituant tests. Add .reject tests
+ and .table tests for automake test log generation. Rewrite
+ testwrapper.sh to handle running with a tables file and specifying
+ optional input using command line options rather than positional
+ parameters.
+
+2014-06-15 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am,
+ tests/multiple_scanners_r_1.l, tests/multiple_scanners_r_2.l,
+ tests/multiple_scanners_r_main.c,
+ tests/test-multiple-scanners-r/.gitignore,
+ tests/test-multiple-scanners-r/Makefile.am,
+ tests/test-multiple-scanners-r/main.c,
+ tests/test-multiple-scanners-r/scanner-1.l,
+ tests/test-multiple-scanners-r/scanner-2.l: Refactor
+ multiple_scanners_r test for new test suite layout. Also, remove the use of table files from this test as that tests two
+ features at once and we want to be as close to testing one feature
+ at a time as we can be.
+
+2014-06-15 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am,
+ tests/multiple_scanners_nr_1.l, tests/multiple_scanners_nr_2.l,
+ tests/multiple_scanners_nr_main.c,
+ tests/test-multiple-scanners-nr/.gitignore,
+ tests/test-multiple-scanners-nr/Makefile.am,
+ tests/test-multiple-scanners-nr/main.c,
+ tests/test-multiple-scanners-nr/scanner-1.l,
+ tests/test-multiple-scanners-nr/scanner-2.l: refactor
+ multiple_scanners_nr test for new test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am,
+ tests/cxx_multiple_scanners.txt, tests/cxx_multiple_scanners_1.ll,
+ tests/cxx_multiple_scanners_2.ll,
+ tests/cxx_multiple_scanners_main.cc,
+ tests/test-c++-multiple-scanners/.gitignore,
+ tests/test-c++-multiple-scanners/Makefile.am,
+ tests/test-c++-multiple-scanners/main.cpp,
+ tests/test-c++-multiple-scanners/scanner-1.l,
+ tests/test-c++-multiple-scanners/scanner-2.l,
+ tests/test-c++-multiple-scanners/test.input: refactor
+ cxx_multiple_scanners test for new test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/c_cxx_nr.lll,
+ tests/c_cxx_nr.txt, tests/c_cxx_r.lll, tests/c_cxx_r.txt,
+ tests/test-c-cpp-nr/.gitignore, tests/test-c-cpp-nr/Makefile.am,
+ tests/test-c-cpp-nr/scanner.l, tests/test-c-cpp-nr/test.input,
+ tests/test-c-cpp-r/.gitignore, tests/test-c-cpp-r/Makefile.am,
+ tests/test-c-cpp-r/scanner.l, tests/test-c-cpp-r/test.input:
+ refactor c_cxx_nr, c_cxx_r tests for new test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/cxx_basic.ll,
+ tests/cxx_basic.txt, tests/test-c++-basic/.gitignore,
+ tests/test-c++-basic/Makefile.am, tests/test-c++-basic/scanner.l,
+ tests/test-c++-basic/test.input: refactor cxx_basic test for new
+ test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/posixly_correct.l,
+ tests/test-posixly-correct/.gitignore,
+ tests/test-posixly-correct/Makefile.am,
+ tests/test-posixly-correct/scanner.l: refactor posixly_correct test
+ for new test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am,
+ tests/test-yyextra/.gitignore, tests/test-yyextra/Makefile.am,
+ tests/test-yyextra/scanner.l, tests/test-yyextra/test.input,
+ tests/yyextra.l, tests/yyextra.txt: refactor yyextra test for new
+ test suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/test-top/.gitignore,
+ tests/test-top/Makefile.am, tests/test-top/main.c,
+ tests/test-top/scanner.l, tests/test-top/test.input, tests/top.l,
+ tests/top.txt, tests/top_main.c: refactor top test for new test
+ suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/string_r.l,
+ tests/test-string-r/.gitignore, tests/test-string-r/Makefile.am,
+ tests/test-string-r/scanner.l: refactor string_r test for new test
+ suite layout
+
+2014-06-14 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/string_nr.l,
+ tests/test-string-nr/.gitignore, tests/test-string-nr/Makefile.am,
+ tests/test-string-nr/scanner.l: refactor string_nr test for new test
+ suite layout
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/prefix_r.l,
+ tests/prefix_r.txt, tests/test-prefix-r/.gitignore,
+ tests/test-prefix-r/Makefile.am, tests/test-prefix-r/README,
+ tests/test-prefix-r/scanner.l, tests/test-prefix-r/test.input:
+ refactor prefix_r test for new test suite layout
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/prefix_nr.l,
+ tests/prefix_nr.txt, tests/test-prefix-nr/.gitignore,
+ tests/test-prefix-nr/Makefile.am, tests/test-prefix-nr/README,
+ tests/test-prefix-nr/scanner.l, tests/test-prefix-nr/test.input:
+ refactor prefix_nr for new test suite layout
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/testwrapper.sh: Check if test input file exists. Not all tests have input files, so check if one exists and run the
+ test program accordingly.
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/posix.l,
+ tests/test-posix/.gitignore, tests/test-posix/Makefile.am,
+ tests/test-posix/scanner.l: refactor posix test for new test suite
+ layout
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/noansi_r.l,
+ tests/noansi_r.txt, tests/test-noansi-r/.gitignore,
+ tests/test-noansi-r/Makefile.am, tests/test-noansi-r/scanner.l,
+ tests/test-noansi-r/test.input: refactor noansi_r test for new test
+ suite layout
+
+2014-06-12 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/noansi_nr.l,
+ tests/noansi_nr.txt, tests/test-noansi-nr/.gitignore,
+ tests/test-noansi-nr/Makefile.am, tests/test-noansi-nr/scanner.l,
+ tests/test-noansi-nr/test.input: refactor noansi_nr for new test
+ suite layout
+
+2014-06-05 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/mem_r.l,
+ tests/mem_r.txt, tests/test-mem-r/.gitignore,
+ tests/test-mem-r/Makefile.am, tests/test-mem-r/scanner.l,
+ tests/test-mem-r/test.input: refactor mem_r test for new test suite
+ layout
+
+2014-06-05 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/mem_nr.l,
+ tests/mem_nr.txt, tests/test-mem-nr/.gitignore,
+ tests/test-mem-nr/Makefile.am, tests/test-mem-nr/scanner.l,
+ tests/test-mem-nr/test.input: refactor mem_nr test for new test
+ suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/header_r.txt,
+ tests/header_r_main.c, tests/header_r_scanner.l,
+ tests/test-header-r/.gitignore, tests/test-header-r/Makefile.am,
+ tests/test-header-r/main.c, tests/test-header-r/scanner.l,
+ tests/test-header-r/test.input: refactor header_r test for new test
+ suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/header_nr.txt,
+ tests/header_nr_main.c, tests/header_nr_scanner.l,
+ tests/test-header-nr/.gitignore, tests/test-header-nr/Makefile.am,
+ tests/test-header-nr/main.c, tests/test-header-nr/scanner.l,
+ tests/test-header-nr/test.input: refactor header_nr test for new
+ test suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/extended.l,
+ tests/extended.txt, tests/test-extended/.gitignore,
+ tests/test-extended/Makefile.am, tests/test-extended/scanner.l,
+ tests/test-extended/test.input: refactor extended test for new test
+ suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/debug_r.l,
+ tests/debug_r.txt, tests/test-debug-r/.gitignore,
+ tests/test-debug-r/Makefile.am, tests/test-debug-r/scanner.l,
+ tests/test-debug-r/test.input: refactor debug_r test for new test
+ suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/debug_nr.l,
+ tests/debug_nr.txt, tests/test-debug-nr/.gitignore,
+ tests/test-debug-nr/Makefile.am, tests/test-debug-nr/scanner.l,
+ tests/test-debug-nr/test.input: refactor debug_nr test for new test
+ suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/ccl.l, tests/ccl.txt,
+ tests/test-ccl/.gitignore, tests/test-ccl/Makefile.am,
+ tests/test-ccl/scanner.l, tests/test-ccl/test.input: refactor ccl
+ test for new test suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/alloc-extra.l,
+ tests/alloc-extra.txt, tests/alloc_extra.l, tests/alloc_extra.txt,
+ tests/array-nr.l, tests/array-nr.txt, tests/array-r.l,
+ tests/array-r.txt, tests/array_nr.l, tests/array_nr.txt,
+ tests/array_r.l, tests/array_r.txt, tests/basic-nr.l,
+ tests/basic-nr.txt, tests/basic-r.l, tests/basic-r.txt,
+ tests/basic_nr.l, tests/basic_nr.txt, tests/basic_r.l,
+ tests/basic_r.txt, tests/bison-nr-main.c, tests/bison-nr-parser.y,
+ tests/bison-nr-scanner.l, tests/bison-nr.txt,
+ tests/bison-yylloc-main.c, tests/bison-yylloc-parser.y,
+ tests/bison-yylloc-scanner.l, tests/bison-yylloc.txt,
+ tests/bison-yylval-main.c, tests/bison-yylval-parser.y,
+ tests/bison-yylval-scanner.l, tests/bison-yylval.txt,
+ tests/bison_nr.txt, tests/bison_nr_main.c, tests/bison_nr_parser.y,
+ tests/bison_nr_scanner.l, tests/bison_yylloc.txt,
+ tests/bison_yylloc_main.c, tests/bison_yylloc_parser.y,
+ tests/bison_yylloc_scanner.l, tests/bison_yylval.txt,
+ tests/bison_yylval_main.c, tests/bison_yylval_parser.y,
+ tests/bison_yylval_scanner.l: use underscores in test file names to
+ silence automake warnings
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * .gitignore, m4/.gitignore, m4/Makefile.am: do not track m4
+ subdirectory any more
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * .gitignore, configure.ac: upgrade automake version to 1.14.1 Unfortunately, automake 1.14.1 does not play nicely with
+ AC_CONFIG_AUX_DIR, so upgrading the used automake version required
+ removing the build-aux directory and letting autoconf's installed
+ helper files live more over the tree.
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * doc/.gitignore: ignore more files generated by texinfo
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * configure.ac: update gettext version to 0.19
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * configure.ac: call LT_INIT earlier in configure.ac
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/bison-yylval-main.c,
+ tests/bison-yylval-parser.y, tests/bison-yylval-scanner.l,
+ tests/bison-yylval.txt, tests/test-bison-yylval/.gitignore,
+ tests/test-bison-yylval/Makefile.am,
+ tests/test-bison-yylval/main.c, tests/test-bison-yylval/parser.y,
+ tests/test-bison-yylval/scanner.l,
+ tests/test-bison-yylval/test.input: refactor bison-yylval test for
+ new test suite layout
+
+2014-06-04 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/bison-yylloc-main.c,
+ tests/bison-yylloc-parser.y, tests/bison-yylloc-scanner.l,
+ tests/bison-yylloc.txt, tests/test-bison-yylloc/.gitignore,
+ tests/test-bison-yylloc/Makefile.am,
+ tests/test-bison-yylloc/main.c, tests/test-bison-yylloc/parser.y,
+ tests/test-bison-yylloc/scanner.l,
+ tests/test-bison-yylloc/test.input: refactor bison-yylloc test for
+ new test suite layout
+
+2014-06-03 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/bison-nr-main.c,
+ tests/bison-nr-parser.y, tests/bison-nr-scanner.l,
+ tests/bison-nr.txt, tests/test-bison-nr/.gitignore,
+ tests/test-bison-nr/Makefile.am, tests/test-bison-nr/main.c,
+ tests/test-bison-nr/parser.y, tests/test-bison-nr/scanner.l,
+ tests/test-bison-nr/test.input: refactor bison-nr test for new test
+ suite layout
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/array-r.l,
+ tests/array-r.txt, tests/test-array-r/.gitignore,
+ tests/test-array-r/Makefile.am, tests/test-array-r/scanner.l,
+ tests/test-array-r/test.input: refactor array-r test for new test
+ suite layout
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: list tests/README with other EXTRA_DIST files
+ in tests/
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/array-nr.l,
+ tests/array-nr.txt, tests/test-array-nr/.gitignore,
+ tests/test-array-nr/Makefile.am, tests/test-array-nr/scanner.l,
+ tests/test-array-nr/test.input: refactor array-nr test for new test
+ suite layout
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am, tests/testwrapper.sh: make tests/testwrapper.sh
+ more verbose; find input in srcdir Since output is redirected by the automake parallel test suite
+ driver, turn on both -v and -x in bash for the testwrapper.sh shell
+ script. This helps a ton in debugging problems with the test harness
+ itself. In general, the input files are in automake's srcdir and the name of
+ the test includes the relative path to it (even though that's
+ supposed to be ./). Therefore, pass srcdir in AM_LOG_FLAGS and
+ prepend that to the test name as part of constructing the input
+ file's name.
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: distribute tests/testwrapper.sh
+
+2014-06-01 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/alloc-extra.l,
+ tests/alloc-extra.txt, tests/test-alloc-extra/.gitignore,
+ tests/test-alloc-extra/Makefile.am,
+ tests/test-alloc-extra/scanner.l, tests/test-alloc-extra/test.input:
+ refacter alloc-extra for new test suite layout
+
+2014-05-29 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore, tests/Makefile.am, tests/basic-r.l,
+ tests/basic-r.txt, tests/test-basic-r/.gitignore,
+ tests/test-basic-r/Makefile.am, tests/test-basic-r/scanner.l,
+ tests/test-basic-r/test.input: refactor basic-r test for new test
+ suite layout
+
+2014-04-22 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am, tests/basic-nr.l, tests/basic-nr.txt,
+ tests/test-basic-nr/.gitignore, tests/test-basic-nr/Makefile.am,
+ tests/test-basic-nr/scanner.l, tests/test-basic-nr/test.input,
+ tests/testwrapper.sh: refactor basic-nr test for new test suite
+ layout
+
+2014-04-22 Will Estes <westes575@gmail.com>
+
+ * configure.ac: remove old tests/ subdirectories from build system
+
+2014-04-22 Will Estes <westes575@gmail.com>
+
+ * configure.ac: add parallel test suite option to build system
+
+2014-04-22 Will Estes <westes575@gmail.com>
+
+ * tests/.gitignore: ignore files for new test suite layout
+
+2014-04-22 Will Estes <westes575@gmail.com>
+
+ * tests/Makefile.am: use automake parallel test suite option to
+ build test suite
+
+2014-04-09 Manoj Srivastava <srivasta@golden-gryphon.com>
+
+ * tests/test-bison-yylloc/parser.y,
+ tests/test-bison-yylval/parser.y: Do not use obsolete bison
+ constructs in tests. In Bison 3.0, support for YYLEX_PARAM and YYPARSE_PARAM has been
+ removed (deprecated in Bison 1.875): use %lex-param, %parse-param,
+ or %param. This commit fixes the tests so they still work. Signed-off-by: Manoj Srivastava <srivasta@golden-gryphon.com>
+
+2014-10-31 Christos Zoulas <christos@zoulas.com>
+
+ * src/buf.c, src/filter.c, src/flex.skl, src/flexdef.h, src/gen.c,
+ src/libmain.c, src/libyywrap.c, src/main.c, src/misc.c, src/nfa.c,
+ src/scan.l, src/scanflags.c, src/scanopt.c, src/yylex.c: NetBSD
+ downstream patches. const fixes. -Wconversion fixes for the skeleton files. param namespace protection (add _ to inline function parameters). unused variable/code removal. rename warn to lwarn to avoid conflict with <err.h>. ctype.h function argument correction. merged the error functions lerrif and lerrsf -> lerr.
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/flexdef.h, src/misc.c, src/scanflags.c: Allow error reporting
+ routines to accept varying number of arguments in modern style
+
+2014-07-25 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/buf.c: Fix warning on assigning from `const char*` to `char*`
+
+2014-07-24 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/main.c: Add disambiguation braces in main.c
+
+2014-07-17 Yuri <yuri@tsoft.com>
+
+ * doc/flex.texi, examples/fastwc/mywc.c, src/ccl.c, src/dfa.c,
+ src/ecs.c, src/flex.skl, src/flexdef.h, src/gen.c, src/misc.c,
+ src/nfa.c, src/parse.y, src/scan.l, src/sym.c, src/tblcmp.c: Removed
+ deprecated 'register' storage class specifier. clang-3.5.0 now
+ complains about them: warning: 'register' storage class specifier is
+ deprecated [-Wdeprecated-register]
+
+2014-06-21 Mariusz Pluciński <mplucinski@mplucinski.com>
+
+ * src/flexdef.h, src/main.c, src/misc.c, src/options.c,
+ src/options.h, src/yylex.c: Change output formats from octal to
+ hexadecimal
+
+2014-06-11 Will Estes <westes575@gmail.com>
+
+ * NEWS, configure.ac: update version number to 2.6.0-pre
+
+2014-05-03 Will Estes <westes575@gmail.com>
+
+ * src/ecs.c: check limits before using array index cclp; resolves
+ sf-166
+
+2014-04-02 Sean McBride <sean@rogue-research.com>
+
+ * src/flex.skl: Suppress clang warning about empty @param paragraph;
+ resolves sf#158 Signed-off-by: Will Estes <westes575@gmail.com>
+
+2014-04-02 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: fix punction when talking about colon-bracket
+ delimiters; resolves sf#167
+
+2014-04-02 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: remove proofreading comment
+
+2014-04-02 Will Estes <westes575@gmail.com>
+
+ * doc/flex.texi: Put angle brackets around start condition name;
+ resolves bug #168.
+
+2014-04-02 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
+
+ * lib/Makefile.am, lib/realloc.c: Fix malloc/realloc replacement,
+ bug#151. Signed-off-by: Will Estes <westes575@gmail.com>
+
+2014-04-02 Will Estes <westes575@gmail.com>
+
+ * lib/malloc.c: change crlf line ending to lf
+
+2014-03-26 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention flex 2.5.39 release in NEWS file
+
+2014-03-26 Will Estes <westes575@gmail.com>
+
+ * control.ac: initial default control file for shipper
+
+2014-03-05 Cyril Brulebois <kibi@debian.org>
+
+ * src/flex.skl: Adjust buffer sizes on ia64. From the debian change entry: > Finish fixing the ia64 buffer issue. Previous commits increased
+ YY_READ_BUF_SIZE (where __ia64__ is defined) but left YY_BUF_SIZE
+ unchanged, so that didn't fix the problem in the end. In the general
+ case, the latter is twice the former. Therefore set it to the same
+ ratio in the ia64 case. In general, this sort of architecture specific fix is not the path
+ we want to take, but the cleanup should be done in a more organized
+ way in the future and getting it working would be preferrable now.
+
+2014-02-18 Will Estes <westes575@gmail.com>
+
+ * Makefile.am, src/Makefile.am: move m4 make variable to
+ src/Makefile.am. This prevents an error when building skel.c caused by the $(m4) make
+ variable not being defined. Particularly nasty since skel.c would
+ still be created, thus causing make to think skel.c was up to date.
+
+2014-02-18 Will Estes <westes575@gmail.com>
+
+ * devel/00EXTRACT-ALL-SYMS.sh, devel/README, devel/dump-tables.pl,
+ devel/tables.pl: remove unused devel/ subdirectory from codebase
+
+2014-02-15 Will Estes <westes575@gmail.com>
+
+ * po/Rules-getpo: Add make rule to rsync latest .po files from
+ translation project. The rule assumes that rsync is on the path and that there is exactly
+ one domain listed in the DOMAIN make variable. The intent is that
+ the rule will work with vpath builds.
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * .gitignore: git ignore directories of the form flex-*
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * po/POTFILES.in: list source files for translation as now being in
+ src/
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * Makefile.am, configure.ac, tools/Makefile.am: Add tools/
+ directory. Since tools/git2cl is a dependency of ChangeLog, not distributing
+ tools/git2cl with flex causes the "make dist" target to fail in the
+ distributed tar ball.
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * Makefile.am: removes extraneous files from EXTRA_DIST as automake
+ picks them up better without mentioning them
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention version 2.6.0 in release news
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * .gitignore, FlexLexer.h, Makefile.am, buf.c, ccl.c, configure.ac,
+ dfa.c, doc/.gitignore, doc/Makefile.am, ecs.c, filter.c, flex.skl,
+ flexdef.h, flexint.h, gen.c, gettext.h, lib/.gitignore, libmain.c,
+ libyywrap.c, main.c, misc.c, mkskel.sh, nfa.c, options.c,
+ options.h, parse.y, regex.c, scan.l, scanflags.c, scanopt.c,
+ scanopt.h, src/.gitignore, src/FlexLexer.h, src/Makefile.am,
+ src/buf.c, src/ccl.c, src/dfa.c, src/ecs.c, src/filter.c,
+ src/flex.skl, src/flexdef.h, src/flexint.h, src/gen.c,
+ src/gettext.h, src/libmain.c, src/libyywrap.c, src/main.c,
+ src/misc.c, src/mkskel.sh, src/nfa.c, src/options.c, src/options.h,
+ src/parse.y, src/regex.c, src/scan.l, src/scanflags.c,
+ src/scanopt.c, src/scanopt.h, src/sym.c, src/tables.c,
+ src/tables.h, src/tables_shared.c, src/tables_shared.h,
+ src/tblcmp.c, src/version.h, src/yylex.c, sym.c, tables.c,
+ tables.h, tables_shared.c, tables_shared.h, tblcmp.c, version.h,
+ yylex.c: move flex program sources into src/ directory The *.[chly] sources are now in the src directory. This implies a
+ bunch of changes in Makefile.am and friends to account for the new
+ location. The .gitignore files are now more local to places where
+ various object files and generated source files occur.
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * configure.ac: increment flex version to 2.6.0
+
+2014-02-16 Translation Project <coordinator@translationproject.org>
+
+ * po/ru.po: update ru translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated da translation in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/da.po: update da translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated es translation in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/es.po: update es translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated ko translation in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/ko.po: update ko translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated ro translation in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/ro.po: update ro translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated ru translation in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/ru.po: update ru translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated sv translation in news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/sv.po: update sv translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated tr translation in news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/tr.po: update tr translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated zh_CN in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/zh_CN.po: update zh_CN translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS, po/LINGUAS, po/zh_TW.po, po/zh_tw.po: rename zh_tw
+ translation to its proper zh_TW name
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * NEWS: mention updated nl, vi translations in release news
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/vi.po: update vi translation from the translation project
+
+2014-02-14 Translation Project <coordinator@translationproject.org>
+
+ * po/nl.po: update nl translation from the translation project
+
+2014-02-14 Will Estes <westes575@gmail.com>
+
+ * TODO: remove some unneeded entries from the todo list
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * doc/Makefile.am: list more generated files in CLEANFILES
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * doc/flex.xml: remove unmaintained xml documentation
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * configure.ac: bump AM_GNU_GETTEXT_VERSION to 0.18.1
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * README: list new location of flex git repo
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * po/.gitignore: git ignore generated files from english quoting
+ variant translations
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: name english quoting variants correctly
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * Makefile.am, configure.ac, tools/Makefile.am: removed tools/
+ subdirectory from distribution Since it is not possible to rebuild the ChangeLog file without being
+ in a git working directory of flex, distributing the tools directory
+ is misleading. In particular, git2cl will always fail.
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: removed unneeded blank line from translation list
+
+2014-02-13 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: added en quoting variants to translation list
+
+2014-02-11 Will Estes <westes575@gmail.com>
+
+ * configure.ac: use gnu automake option instead of gnits option
+
+2014-02-11 Will Estes <westes575@gmail.com>
+
+ * README-alpha: remove README_alpha file since it is no longer
+ needed
+
+2014-02-10 Will Estes <westes575@gmail.com>
+
+ * configure.ac: increment version to 2.5.38
+
+2013-11-27 Will Estes <westes575@gmail.com>
+
+ * NEWS: flesh out internationalization section of NEWS file; mention
+ pt_BR translation
+
+2013-11-27 Translation Project <coordinator@translationproject.org>
+
+ * po/pt_BR.po: update pt_BR translation from the translation project
+
+2013-10-31 Will Estes <westes575@gmail.com>
+
+ * NEWS: begin listing 2.5.38 version in NEWS; list new sr
+ translation
+
+2013-10-31 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: list new sr translation in list of translations
+
+2013-10-31 Will Estes <westes575@gmail.com>
+
+ * po/sr.po: add sr translation from the translation project
+
+2013-07-02 Till Varoquaux <till.varoquaux@gmail.com>
+
+ * configure.ac, flex.skl, nfa.c, tests/Makefile.am,
+ tests/test-lineno-trailing/.gitignore,
+ tests/test-lineno-trailing/Makefile.am,
+ tests/test-lineno-trailing/scanner.l,
+ tests/test-lineno-trailing/test.input: Adjust yylineno properly when
+ rewinding trailing contexts.
+
+2013-05-28 Will Estes <westes575@gmail.com>
+
+ * Makefile.am: Remove incorrect / in install-exec-hook target
+
+2013-02-16 Translation Project <coordinators@translationproject.org>
+
+ * po/LINGUAS, po/zh_tw.po: add zh_tw translation from the
+ translation project
+
+2012-12-06 Christoph Junghans <ottxor@gentoo.org>
+
+ * Makefile.am, configure.ac: add version information to shared
+ library Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-12-04 Christoph Junghans <ottxor@gentoo.org>
+
+ * .gitignore, Makefile.am, configure.ac, lib/Makefile.am: Build
+ libfl and libcompat using libtool; resolves #3586814 Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-12-04 Translation Project <coordinator@translationproject.org>
+
+ * po/ca.po: update ca translation
+
+2012-10-31 Hugh Sasse <hgs@dmu.ac.uk>
+
+ * tests/test-extended/Makefile.am, tests/test-quotes/Makefile.am:
+ use cmp instead of diff in some tests for portability reasons Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-10-31 Dennis Clarke <dclarke@blastwave.org>
+
+ * tests/TEMPLATE/Makefile.am, tests/test-alloc-extra/Makefile.am,
+ tests/test-array-nr/Makefile.am, tests/test-array-r/Makefile.am,
+ tests/test-basic-nr/Makefile.am, tests/test-basic-r/Makefile.am,
+ tests/test-bison-nr/Makefile.am,
+ tests/test-bison-yylloc/Makefile.am,
+ tests/test-bison-yylval/Makefile.am,
+ tests/test-c++-basic/Makefile.am,
+ tests/test-c++-multiple-scanners/Makefile.am,
+ tests/test-c++-yywrap/Makefile.am, tests/test-c-cpp-nr/Makefile.am,
+ tests/test-c-cpp-r/Makefile.am, tests/test-ccl/Makefile.am,
+ tests/test-debug-nr/Makefile.am, tests/test-debug-r/Makefile.am,
+ tests/test-extended/Makefile.am, tests/test-header-nr/Makefile.am,
+ tests/test-header-r/Makefile.am,
+ tests/test-include-by-buffer/Makefile.am,
+ tests/test-include-by-push/Makefile.am,
+ tests/test-include-by-reentrant/Makefile.am,
+ tests/test-linedir-r/Makefile.am, tests/test-lineno-nr/Makefile.am,
+ tests/test-lineno-r/Makefile.am, tests/test-mem-nr/Makefile.am,
+ tests/test-mem-r/Makefile.am,
+ tests/test-multiple-scanners-nr/Makefile.am,
+ tests/test-multiple-scanners-r/Makefile.am,
+ tests/test-noansi-nr/Makefile.am, tests/test-noansi-r/Makefile.am,
+ tests/test-posix/Makefile.am,
+ tests/test-posixly-correct/Makefile.am,
+ tests/test-prefix-nr/Makefile.am, tests/test-prefix-r/Makefile.am,
+ tests/test-pthread/Makefile.am, tests/test-quotes/Makefile.am,
+ tests/test-reject/Makefile.am, tests/test-rescan-nr/Makefile.am,
+ tests/test-rescan-r/Makefile.am, tests/test-string-nr/Makefile.am,
+ tests/test-string-r/Makefile.am, tests/test-table-opts/Makefile.am,
+ tests/test-top/Makefile.am, tests/test-yyextra/Makefile.am: add
+ CFLAGS and CXXFLAGS options as appropriate to testsuite Makefile.am
+ files Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-10-25 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: add hr to list of translations
+
+2012-10-25 Translation Project <coordinator@translationproject.org>
+
+ * po/hr.po: add hr translation from the translation project
+
+2012-10-25 Translation Project <coordinator@translationproject.org>
+
+ * po/fr.po: new fr translation project from the translation project
+
+2012-09-08 Will Estes <westes575@gmail.com>
+
+ * po/LINGUAS: update languages list to include esperanto translation
+
+2012-09-08 Translation Project <coordinator@translationproject.org>
+
+ * po/eo.po: add eo translation from the translation project
+
+2012-08-26 Will Estes <westes575@gmail.com>
+
+ * configure.ac: add dist-xz to automake options; resolves #3561837
+
+2012-08-26 Will Estes <westes575@gmail.com>
+
+ * autogen.sh, configure.ac: require gettext 0.18; force autoreconf
+ in autogen.sh; resolves #3561759 Autoconf had trouble finding the shared libraries for gettext. Using
+ gettext 0.18 fixes that. When updating the gettext version number, autoreconf could fail to
+ update files, since autopoint would assume the gettext-related files
+ had been locally modified. Passing --force prevents that from
+ happening.
+
+2012-08-15 Will Estes <westes575@gmail.com>
+
+ * Makefile.am: remove README.cvs from dist_doc_DATA in Makefile.am
+
+2012-08-13 Will Estes <westes575@gmail.com>
+
+ * : commit 9256a268e2a1000cb410766e95487912a7d66d61 Author: Will
+ Estes <westes575@gmail.com> Date: Mon Aug 13 16:23:35 2012 -0400
+
+2012-08-08 Will Estes <westes575@gmail.com>
+
+ * README, README.cvs: append README.cvs contents to README
+
+2012-08-08 Will Estes <westes575@gmail.com>
+
+ * gen.c: fix m4 error when useecs and nultrans are true; resolves
+ #1816878
+
+2012-08-08 Robert Minsk <rminsk@users.sourceforge.net>
+
+ * flex.skl: put user code after yyguts init; resolves #1744516 Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-08-08 Robert Minsk <rminsk@users.sourceforge.net>
+
+ * flex.skl, main.c: do not output yy_nxt to header with %option
+ full; resolves #1739922 Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-08-07 Will Estes <westes575@gmail.com>
+
+ * main.c: let flex decide if yymore and reject are needed in lex
+ compatible mode This resolves bug #3510440.
+
+2012-08-06 Translation Project <coordinator@translationproject.org>
+
+ * po/vi.po: new vi translation from the translation project
+
+2012-08-06 Will Estes <westes575@gmail.com>
+
+ * .gitignore: add more patterns to .gitignore Undersome circumstances, the build process will generate conf.in~,
+ which we want to ignore. Also, some patch files will apply but not
+ cleanly and *.orig and *.rej files are generated. We want to ignore
+ them as well.
+
+2012-08-06 Will Estes <westes575@gmail.com>
+
+ * configure.ac, configure.in: rename configure.in to configure.ac to
+ prep for upcoming automake changes
+
+2012-08-06 Elias Pipping <pipping@users.sourceforge.net>
+
+ * tests/test-bison-yylloc/main.c, tests/test-bison-yylloc/parser.y,
+ tests/test-bison-yylval/main.c, tests/test-bison-yylval/parser.y:
+ Fix two tests to pass under bison 2.6 Given that bison is moving forward with the %parse-param instead of
+ YYPARSE_PARAM syntax, it makes sense to switch over to using the new
+ style declaration. In particular, this means that flex scanners that
+ use bison features will now require bison 2.6 or higher. Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-08-04 Will Estes <westes575@gmail.com>
+
+ * po/nl.po: new nl translation from the translation project
+
+2012-08-04 Mike Frysinger <vapier@gentoo.org>
+
+ * flexdef.h: add prototype for lerrsf_fatal to flexdef.h Signed-off-by: Will Estes <westes575@gmail.com>
+
+2012-08-04 nomis52 <nomis52@users.sourceforge.net>
+
+ * flex.skl, gen.c: Change variable types to silence compiler
+ warnings; resolves #3552806 Signed-off-by: Will Estes <westes575@gmail.com>
+
2012-08-03 Will Estes <westes575@gmail.com>
* NEWS: update NEWS to reflect changes in 2.5.37
diff --git a/contrib/flex/FlexLexer.h b/contrib/flex/FlexLexer.h
deleted file mode 100644
index bad4ce03fb65..000000000000
--- a/contrib/flex/FlexLexer.h
+++ /dev/null
@@ -1,206 +0,0 @@
-// -*-C++-*-
-// FlexLexer.h -- define interfaces for lexical analyzer classes generated
-// by flex
-
-// Copyright (c) 1993 The Regents of the University of California.
-// All rights reserved.
-//
-// This code is derived from software contributed to Berkeley by
-// Kent Williams and Tom Epperly.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-
-// 1. Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// 2. Redistributions in binary form must reproduce the above copyright
-// notice, this list of conditions and the following disclaimer in the
-// documentation and/or other materials provided with the distribution.
-
-// Neither the name of the University nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-
-// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-// PURPOSE.
-
-// This file defines FlexLexer, an abstract class which specifies the
-// external interface provided to flex C++ lexer objects, and yyFlexLexer,
-// which defines a particular lexer class.
-//
-// If you want to create multiple lexer classes, you use the -P flag
-// to rename each yyFlexLexer to some other xxFlexLexer. You then
-// include <FlexLexer.h> in your other sources once per lexer class:
-//
-// #undef yyFlexLexer
-// #define yyFlexLexer xxFlexLexer
-// #include <FlexLexer.h>
-//
-// #undef yyFlexLexer
-// #define yyFlexLexer zzFlexLexer
-// #include <FlexLexer.h>
-// ...
-
-#ifndef __FLEX_LEXER_H
-// Never included before - need to define base class.
-#define __FLEX_LEXER_H
-
-#include <iostream>
-# ifndef FLEX_STD
-# define FLEX_STD std::
-# endif
-
-extern "C++" {
-
-struct yy_buffer_state;
-typedef int yy_state_type;
-
-class FlexLexer {
-public:
- virtual ~FlexLexer() { }
-
- const char* YYText() const { return yytext; }
- int YYLeng() const { return yyleng; }
-
- virtual void
- yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
- virtual struct yy_buffer_state*
- yy_create_buffer( FLEX_STD istream* s, int size ) = 0;
- virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
- virtual void yyrestart( FLEX_STD istream* s ) = 0;
-
- virtual int yylex() = 0;
-
- // Call yylex with new input/output sources.
- int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 )
- {
- switch_streams( new_in, new_out );
- return yylex();
- }
-
- // Switch to new input/output streams. A nil stream pointer
- // indicates "keep the current one".
- virtual void switch_streams( FLEX_STD istream* new_in = 0,
- FLEX_STD ostream* new_out = 0 ) = 0;
-
- int lineno() const { return yylineno; }
-
- int debug() const { return yy_flex_debug; }
- void set_debug( int flag ) { yy_flex_debug = flag; }
-
-protected:
- char* yytext;
- int yyleng;
- int yylineno; // only maintained if you use %option yylineno
- int yy_flex_debug; // only has effect with -d or "%option debug"
-};
-
-}
-#endif // FLEXLEXER_H
-
-#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
-// Either this is the first time through (yyFlexLexerOnce not defined),
-// or this is a repeated include to define a different flavor of
-// yyFlexLexer, as discussed in the flex manual.
-#define yyFlexLexerOnce
-
-extern "C++" {
-
-class yyFlexLexer : public FlexLexer {
-public:
- // arg_yyin and arg_yyout default to the cin and cout, but we
- // only make that assignment when initializing in yylex().
- yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );
-
- virtual ~yyFlexLexer();
-
- void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
- struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );
- void yy_delete_buffer( struct yy_buffer_state* b );
- void yyrestart( FLEX_STD istream* s );
-
- void yypush_buffer_state( struct yy_buffer_state* new_buffer );
- void yypop_buffer_state();
-
- virtual int yylex();
- virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 );
- virtual int yywrap();
-
-protected:
- virtual int LexerInput( char* buf, int max_size );
- virtual void LexerOutput( const char* buf, int size );
- virtual void LexerError( const char* msg );
-
- void yyunput( int c, char* buf_ptr );
- int yyinput();
-
- void yy_load_buffer_state();
- void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s );
- void yy_flush_buffer( struct yy_buffer_state* b );
-
- int yy_start_stack_ptr;
- int yy_start_stack_depth;
- int* yy_start_stack;
-
- void yy_push_state( int new_state );
- void yy_pop_state();
- int yy_top_state();
-
- yy_state_type yy_get_previous_state();
- yy_state_type yy_try_NUL_trans( yy_state_type current_state );
- int yy_get_next_buffer();
-
- FLEX_STD istream* yyin; // input source for default LexerInput
- FLEX_STD ostream* yyout; // output sink for default LexerOutput
-
- // yy_hold_char holds the character lost when yytext is formed.
- char yy_hold_char;
-
- // Number of characters read into yy_ch_buf.
- int yy_n_chars;
-
- // Points to current character in buffer.
- char* yy_c_buf_p;
-
- int yy_init; // whether we need to initialize
- int yy_start; // start state number
-
- // Flag which is used to allow yywrap()'s to do buffer switches
- // instead of setting up a fresh yyin. A bit of a hack ...
- int yy_did_buffer_switch_on_eof;
-
-
- size_t yy_buffer_stack_top; /**< index of top of stack. */
- size_t yy_buffer_stack_max; /**< capacity of stack. */
- struct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
- void yyensure_buffer_stack(void);
-
- // The following are not always needed, but may be depending
- // on use of certain flex features (like REJECT or yymore()).
-
- yy_state_type yy_last_accepting_state;
- char* yy_last_accepting_cpos;
-
- yy_state_type* yy_state_buf;
- yy_state_type* yy_state_ptr;
-
- char* yy_full_match;
- int* yy_full_state;
- int yy_full_lp;
-
- int yy_lp;
- int yy_looking_for_trail_begin;
-
- int yy_more_flag;
- int yy_more_len;
- int yy_more_offset;
- int yy_prev_more_offset;
-};
-
-}
-
-#endif // yyFlexLexer || ! yyFlexLexerOnce
-
diff --git a/contrib/flex/NEWS b/contrib/flex/NEWS
index 62d260d2c14c..85d900b5362c 100644
--- a/contrib/flex/NEWS
+++ b/contrib/flex/NEWS
@@ -1,7 +1,233 @@
-This is the file NEWS for the flex package. It records user -visible
-changes between releases of flex.
+flex NEWS
-See the file COPYING for copying conditions.
+* Noteworthy changes in release 2.6.4 (2017-05-06) [stable]
+
+** build
+
+*** The indent target now knows about flex's new (as of 2.6.0)
+ layout. The indent rules it would apply are not correct and do
+ need to be fixed.
+
+*** The files included in the flex distribution are now built by the
+ version of flex that is included in the distribution.
+
+*** The configure script has a better idea of which headers are
+ required to build flex. It will also error when missing functions
+ are detected.
+
+*** We have lowered the versions of automake and gettext that
+ configure.ac lists as required for building flex. In autogen.sh,
+ we now check for how to call libtoolize and use what we find in
+ the rest of the script.
+
+*** Since files in lib/ are picked up as needed by src/, we no longer
+ generate a Makefile for that directory.
+
+*** Flex can be cross compiled.
+
+** documentation
+
+*** Some typos were removed from the manual.
+
+** scanner
+
+*** Some minor performance enhancements.
+
+*** We honor user defined yy_* macros again. We are also more careful
+ to not leak macro definitions into header files.
+
+*** A number of portability fixes were introduced so building flex is
+ more reliable on more platforms. Additionally, outdated function
+ calls were removed.
+
+*** When building the flex executable itself, %# comments from
+ flex.skl are removed when generating the C source code array. This
+ reduces the size of flex.
+
+** test suite
+
+*** All scripts in the test suite are now run by $(SHELL) and the
+ needed portability fixes have been included.
+
+*** Test suite dependencies are handled much better. This only matters
+ if you are actively developing flex or its test suite.
+
+*** Tests that depend on platform dependent features now properly skip
+ when those platforms are not present.
+
+*** When running "make check", you can now pas V=0 to silence more of
+ the build. This is useful when you're less connncerned about the
+ details of building and linking the test programs themselves.
+
+* Noteworthy changes in release 2.6.3 (2016-12-30) [stable]
+
+** scanner
+
+*** several bug fixes resolved problems introduced in recent flex
+ versions regarding processing of comments, literals and various
+ quoting scenarios.
+
+*** If the path to m4 was sufficiently long, a buffer overflow could
+ occur. This has been resolved. The fix also removes dependence on
+ the constant PATH_MAX.
+
+** build
+
+*** A new configure option --disable-bootstrap changes the behavior of
+ the build system when building flex. The default
+ "--enable-bootstrap" behavior is to build flex, then to use that
+ flex to build flex again. With --disable-bootstrap, the scanner is
+ simply built by sedding the scanner source. This is friendlier to
+ cross compilation.
+
+*** The compatibility functions in lib/ are no longer built as a
+ library. Instead, they are built as $(LIBOBJ) objects. This is
+ simpler and friendlier to cross compilation.
+
+*** It is now possible to build flex without building the accompanying
+ libfl. This is friendlier to cross compilation. See the
+ --disable-libfl option to configure. Resolves #99.
+
+*** the PIC version of libfl was not correctly built. It is no longer
+ included in the build/installation targets of flex since it was
+ unused.
+
+*** the distributed man page is only rebuilt when the relevant source
+ files change or when the binary doesn't exist. In particular, this
+ is friendlier to cross compilation. Resolves #108
+
+** test
+
+*** the shell scripts in the test suite are more portable across different shell implementations.
+
+* version 2.6.2 released 2016-10-24
+
+** flex internals
+
+*** a segfalt involving yyrestart(NULL) has been fixed
+
+*** flex should now handle quoting when mixed with m4 processing correctly
+
+*** flex handles `[[' and `]]' correctly
+
+*** flex no longer generates non-ANSI code
+
+*** more compilation warnings were squashed in generated scanners
+
+*** prevented a buffer overflow that could occur when input buffers were the exact wrong size
+
+** test suite
+
+*** input filenames on MSWindows are now calculated correctly
+
+*** general code cleanups in a number of tests now make the test suite compile much more cleanly
+
+** build system
+
+*** the xz archive has been replaced with an lzip archive
+
+*** a new option to configure --enable-warnings to encapsulate passing
+ of warning-related flags which is useful in testing flex
+
+*** make indent now works for out of source builds
+
+*** Portability warnings when generating Makefile.in files are now suppressed; they were just noise and the use of GNU extensions in Makefile.{am,in,} was intentional and well known.
+
+** bugs
+
+*** resolved gh#67
+
+** new sv translation from the translation project
+
+* version 2.6.1 released 2016-03-01
+
+** flex resources
+
+*** The flex project is now hosted at github. Consider this a "period of transition". In particular, you should start at https://github.com/westes/flex for the flex codebase, issue tracking and pull requests.
+
+*** New releases of flex are to be found at https://github.com/westes/flex/releases.
+
+** flex internals
+
+*** Flex now uses more modern and more standard names for variable types. There's more work to be done on that front yet, though.
+
+*** A number of compiler warnings have been remedied.
+
+*** Line directives should now work as expected and be absent when that is expected.
+
+** test suite
+
+*** When running the test suite, c++ files are compiled with the c++ header inside the flex distribution, rather than relying on the build system's flex header , which might not be installed yet or which might be out of date with respect to what flex tests expect.
+
+*** Some portability fixes in the test suite such as opening files for reading in binary mode
+
+** Building flex
+
+*** The file src/scan.c asdistributed with flex source is now built with the current version of flex. Occasionally this had to be done manually to pick up new flex features. It's now just a part of flex's build system.
+
+*** The pdf version of the manual is no longer distributed with flex, although if you have the texinfo package installed, you can still build it.
+
+*** lots of general build system cleanup
+
+*** the build system tries a bit harder to find libtoolize and texi2dvi.
+
+*** When help2man and texi2dvi are missing, the error messages are now much more helpful.
+
+** bug fixes
+
+*** resolved github issues #53, #54, #55, #61.
+
+*** Resolved sf bugs #128, #129, #155, #160, #184, #187, #195.
+
+* version 2.6.0 released 2015-11-17
+
+** User Visible Changes
+
+*** C++ scanners now use references instead of pointers. See the manual for details.
+
+*** A number of compiler warnings were addressed, so flex generated scanners should be quieter under compiler warning scenarios.
+
+*** Allow error reporting routines to accept varying number of arguments
+
+*** Removed deprecated 'register' storage class specifier
+
+*** Changeed output formats from octal to hexadecimal
+
+*** check limits before using array index cclp; resolves sf-166
+
+*** Suppress clang warning about empty @param paragraph; resolves sf#158
+
+*** Fixed malloc/realloc replacement, resolves sf bug#151.
+
+*** Adjusted buffer sizes on ia64.
+
+*** various documentation and code clean up fixes: resolves sf bugs #167, #168, among other patches.
+
+** Flex Internals
+
+*** flex is now organized into subdirectories. This keeps the tree neater at the top level and puts like things near each other and unlike things away from each other.
+
+*** The test suite has been reorganized and is now run with the parallel test suite harness from automake.
+
+*** Cleaned up the automake parts of the build system to better reflect what automake does on its own. Also added a call to libtoolize in autogen.sh because autoreconf gets confused without a prior run of libtoolize.
+
+*** po/Makefile now includes a rule to fetch the latest translations from the translation project. "make -f po/Makefile getpo" from the top level of the flex tree will fetch the files.
+
+*** New da translation from the translation project
+
+* flex version 2.5.39 released 2014-03-26
+
+** no user visible changes in this release
+
+* version 2.5.38 released 2014-02-14
+
+** internationalization
+
+*** add sr translation from the translation project
+
+*** update da, es, ko, nl, pt_BR, ro, ru, sv, tr, vi, zh_CN translations from the translation project
+
+*** rename zh_tw to its proper zh_TW name
* version 2.5.37 released 2012-08-03
@@ -512,6 +738,8 @@ But the inverse is still true
See the file ONEWS for changes in earlier releases.
+See the file COPYING for copying conditions.
+
Local Variables:
mode: text
mode: outline-minor
diff --git a/contrib/flex/README b/contrib/flex/README
deleted file mode 100644
index 0a6a70c1a021..000000000000
--- a/contrib/flex/README
+++ /dev/null
@@ -1,79 +0,0 @@
-This is flex, the fast lexical analyzer generator.
-
-flex is a tool for generating scanners: programs which recognize
-lexical patterns in text.
-
-More information about flex as well as the latest official release of
-flex can be found at:
-
-http://flex.sourceforge.net/
-
-Bug reports should be submitted using the SourceForge Bug Tracker
-facilities which can be found from flex's SourceForge project page at:
-
-http://sourceforge.net/projects/flex
-
-There are several mailing lists available as well:
-
-flex-announce@lists.sourceforge.net - where posts will be made
-announcing new releases of flex.
-
-flex-help@lists.sourceforge.net - where you can post questions about
-using flex
-
-flex-devel@lists.sourceforge.net - where you can discuss development of
-flex itself
-
-Note that flex is distributed under a copyright very similar to that of
-BSD Unix, and not under the GNU General Public License (GPL).
-
-This file is part of flex.
-
-This code is derived from software contributed to Berkeley by
-Vern Paxson.
-
-The United States Government has rights in this work pursuant
-to contract no. DE-AC03-76SF00098 between the United States
-Department of Energy and the University of California.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
-Neither the name of the University nor the names of its contributors
-may be used to endorse or promote products derived from this software
-without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.
-
-The flex distribution contains the following files which may be of interest:
-
-README - This file.
-
-NEWS - current version number and list of user-visible changes.
-
-INSTALL - basic installation information.
-
-ABOUT-NLS - description of internationalization support in flex.
-
-COPYING - flex's copyright and license.
-
-doc/ - user documentation.
-
-examples/ - containing examples of some possible flex scanners and a
-few other things. See the file examples/README for more details.
-
-TODO - outstanding bug reports, desired features, etc.
-
-tests/ - regression tests. See TESTS/README for details.
-
-po/ - internationalization support files.
diff --git a/contrib/flex/README.md b/contrib/flex/README.md
new file mode 100644
index 000000000000..b979b01062c1
--- /dev/null
+++ b/contrib/flex/README.md
@@ -0,0 +1,109 @@
+This is flex, the fast lexical analyzer generator.
+
+flex is a tool for generating scanners: programs which recognize
+lexical patterns in text.
+
+The flex codebase is kept in
+[Git on GitHub.](https://github.com/westes/flex)
+
+Use GitHub's [issues](https://github.com/westes/flex/issues) and
+[pull request](https://github.com/westes/flex) features to file bugs
+and submit patches.
+
+There are several mailing lists available as well:
+
+* flex-announce@lists.sourceforge.net - where posts will be made
+ announcing new releases of flex.
+* flex-help@lists.sourceforge.net - where you can post questions about
+ using flex
+* flex-devel@lists.sourceforge.net - where you can discuss development
+ of flex itself
+
+Find information on subscribing to the mailing lists at:
+
+http://sourceforge.net/mail/?group_id=97492
+
+The flex distribution contains the following files which may be of
+interest:
+
+* README - This file.
+* NEWS - current version number and list of user-visible changes.
+* INSTALL - basic installation information.
+* ABOUT-NLS - description of internationalization support in flex.
+* COPYING - flex's copyright and license.
+* doc/ - user documentation.
+* examples/ - containing examples of some possible flex scanners and a
+ few other things. See the file examples/README for more
+ details.
+* tests/ - regression tests. See TESTS/README for details.
+* po/ - internationalization support files.
+
+You need the following tools to build flex from the maintainer's
+repository:
+
+* compiler suite - flex is built with gcc
+* bash, or a good Bourne-style shell
+* m4 - m4 -p needs to work; GNU m4 and a few others are suitable
+* GNU bison; to generate parse.c from parse.y
+* autoconf; for handling the build system
+* automake; for Makefile generation
+* gettext; for i18n support
+* help2man; to generate the flex man page
+* tar, gzip, lzip, etc.; for packaging of the source distribution
+* GNU texinfo; to build and test the flex manual. Note that if you want
+ to build the dvi/ps/pdf versions of the documentation you will need
+ texi2dvi and related programs, along with a sufficiently powerful
+ implementation of TeX to process them. See your operating system
+ documentation for how to achieve this. The printable versions of the
+ manual are not built unless specifically requested, but the targets
+ are included by automake.
+* GNU indent; for indenting the flex source the way we want it done
+
+In cases where the versions of the above tools matter, the file
+configure.ac will specify the minimum required versions.
+
+Once you have all the necessary tools installed, life becomes
+simple. To prepare the flex tree for building, run the script:
+
+```bash
+./autogen.sh
+```
+
+in the top level of the flex source tree.
+
+This script calls the various tools needed to get flex ready for the
+GNU-style configure script to be able to work.
+
+From this point on, building flex follows the usual routine:
+
+```bash
+configure && make && make install
+```
+
+This file is part of flex.
+
+This code is derived from software contributed to Berkeley by
+Vern Paxson.
+
+The United States Government has rights in this work pursuant
+to contract no. DE-AC03-76SF00098 between the United States
+Department of Energy and the University of California.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+Neither the name of the University nor the names of its contributors
+may be used to endorse or promote products derived from this software
+without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.
diff --git a/contrib/flex/configure.ac b/contrib/flex/configure.ac
new file mode 100644
index 000000000000..55e774b014be
--- /dev/null
+++ b/contrib/flex/configure.ac
@@ -0,0 +1,184 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+# This file is part of flex.
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+
+# Neither the name of the University nor the names of its contributors
+# may be used to endorse or promote products derived from this software
+# without specific prior written permission.
+
+# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE.
+
+# autoconf requirements and initialization
+
+AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex])
+AC_CONFIG_SRCDIR([src/scan.l])
+AC_CONFIG_AUX_DIR([build-aux])
+LT_INIT
+AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects])
+AC_CONFIG_HEADER([src/config.h])
+AC_CONFIG_LIBOBJ_DIR([lib])
+AC_CONFIG_MACRO_DIR([m4])
+SHARED_VERSION_INFO="2:0:0"
+AC_SUBST(SHARED_VERSION_INFO)
+
+# checks for programs
+
+AM_GNU_GETTEXT([external])
+AM_GNU_GETTEXT_VERSION([0.18])
+AC_PROG_YACC
+AS_IF([test "$YACC" != 'bison -y'], [
+ YACC="\${top_srcdir}/build-aux/missing bison -y"
+ AC_MSG_NOTICE(no bison program found: only required for maintainers)
+ ])
+AM_CONDITIONAL([HAVE_BISON], [test "$YACC" = 'bison -y'])
+AM_PROG_LEX
+AC_PROG_CC
+AX_PROG_CC_FOR_BUILD
+AC_PROG_CXX
+AM_PROG_CC_C_O
+AC_PROG_LN_S
+AC_PROG_AWK
+AC_PROG_INSTALL
+
+# allow passing a variable `WARNINGFLAGS',
+# either when invoking `configure', or when invoking `make'
+# default to something useful if GCC was detected
+
+AC_ARG_ENABLE([warnings],
+ [AS_HELP_STRING([--enable-warnings],
+ [enable a bunch of compiler warning flags (defaults to GCC warning flags).])],
+ [AS_IF([test "x$GCC" = xyes],
+ [ : ${WARNINGFLAGS="-Wall -Wextra -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs -Wold-style-definition -Wredundant-decls -Wconversion -Wno-unused-but-set-variable"} ])])
+
+AC_SUBST([WARNINGFLAGS])
+
+AC_ARG_ENABLE([libfl],
+ [AS_HELP_STRING([--disable-libfl],
+ [do not build -lfl runtime support library])],
+ [], [enable_libfl=yes])
+AM_CONDITIONAL([ENABLE_LIBFL], [test "x$enable_libfl" = xyes])
+
+# --disable-bootstrap is intended only to workaround problems with bootstrap
+# (e.g. when cross-compiling flex or when bootstrapping has bugs).
+# Ideally we should be able to bootstrap even when cross-compiling.
+AC_ARG_ENABLE([bootstrap],
+ [AS_HELP_STRING([--disable-bootstrap],
+ [don't perform a bootstrap when building flex])],
+ [], [enable_bootstrap=yes])
+AM_CONDITIONAL([ENABLE_BOOTSTRAP], [test "x$enable_bootstrap" = xyes])
+
+AM_CONDITIONAL([CROSS], [test "x$cross_compiling" = xyes])
+
+AC_PATH_PROG([HELP2MAN], help2man, [\${top_srcdir}/build-aux/missing help2man])
+ AS_IF([test "$HELP2MAN" = "\${top_srcdir}/build-aux/missing help2man"],
+ AC_MSG_WARN(help2man: program not found: building man page will not work)
+ )
+
+AC_PATH_PROGS([TEXI2DVI], [gtexi2dvi texi2dvi], [\${top_srcdir}/build-aux/missing texi2dvi])
+ AS_IF([test "$TEXI2DVI" = "\${top_srcdir}/build-aux/missing texi2dvi"],
+ AC_MSG_WARN(texi2dvi: program not found: building pdf version of manual will not work)
+ )
+
+# Check for a m4 that supports -P
+
+AC_CACHE_CHECK([for m4 that supports -P], [ac_cv_path_M4],
+[AC_PATH_PROGS_FEATURE_CHECK([M4], [gm4 gnum4 m4],
+ [[m4out=`echo 'm''4_divnum' | $ac_path_M4 -P`]
+ [test "x$m4out" = x0 \
+ && ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
+ [AC_MSG_ERROR([could not find m4 that supports -P])])])
+AC_SUBST([M4], [$ac_cv_path_M4])
+AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the m4 executable name.])
+
+AC_PATH_PROG([INDENT], indent, [\${top_srcdir}/build-aux/missing indent])
+ AC_MSG_CHECKING(if $INDENT is GNU indent)
+ AS_IF([$INDENT --version 2>/dev/null | head -n 1 | grep "GNU indent" >/dev/null],
+ [AC_MSG_RESULT(yes)],
+ [AC_MSG_RESULT(no)
+ AC_MSG_WARN($INDENT does not appear to be GNU indent; 'make indent' may not function properly)
+ ])
+
+# checks for headers
+
+AC_CHECK_HEADERS([regex.h strings.h sys/stat.h sys/wait.h unistd.h], [],
+ [AC_MSG_ERROR(required header not found on your system)])
+
+AC_CHECK_HEADERS([inttypes.h libintl.h limits.h locale.h malloc.h netinet/in.h])
+
+# checks for libraries
+
+# The test test-pthread uses libpthread, so we check for it here, but
+# all we need is the preprocessor symbol defined since we don't need
+# LIBS to include libpthread for building flex.
+
+LIBPTHREAD=''
+AC_CHECK_LIB(pthread, pthread_mutex_lock,
+ [AC_CHECK_HEADERS([pthread.h], [LIBPTHREAD=-lpthread],
+ [AC_MSG_WARN([pthread tests will be skipped])])],
+ [AC_MSG_WARN([pthread tests will be skipped])])
+AC_SUBST([LIBPTHREAD])
+
+AC_CHECK_LIB(m, log10)
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+AC_HEADER_STDBOOL
+AC_C_CONST
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+
+AC_FUNC_ALLOCA
+AC_FUNC_FORK
+dnl Autoconf bug: AC_FUNC_MALLOC and AC_FUNC_REALLOC might not warn of cross
+dnl compilation. Workaround this.
+AC_FUNC_MALLOC
+AS_IF([test "$cross_compiling" = yes],
+ AC_MSG_WARN([result $ac_cv_func_malloc_0_nonnull guessed because of cross compilation]))
+AC_FUNC_REALLOC
+AS_IF([test "$cross_compiling" = yes],
+ AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation]))
+
+AC_CHECK_FUNCS([dup2 dnl
+memset dnl
+regcomp dnl
+strcasecmp dnl
+strchr dnl
+strdup dnl
+strtol dnl
+], [], [AC_MSG_ERROR(required library function not found on your system)])
+
+# Optional library functions
+AC_CHECK_FUNCS([dnl
+pow dnl Used only by "examples/manual/expr"
+setlocale dnl Needed only if NLS is enabled
+reallocarray dnl OpenBSD function. We have replacement if not available.
+])
+
+AC_CONFIG_FILES(
+Makefile
+doc/Makefile
+examples/Makefile
+examples/fastwc/Makefile
+examples/manual/Makefile
+po/Makefile.in
+src/Makefile
+tools/Makefile
+tests/Makefile
+)
+
+AC_OUTPUT
diff --git a/contrib/flex/src/FlexLexer.h b/contrib/flex/src/FlexLexer.h
new file mode 100644
index 000000000000..c4dad2b1421d
--- /dev/null
+++ b/contrib/flex/src/FlexLexer.h
@@ -0,0 +1,220 @@
+// -*-C++-*-
+// FlexLexer.h -- define interfaces for lexical analyzer classes generated
+// by flex
+
+// Copyright (c) 1993 The Regents of the University of California.
+// All rights reserved.
+//
+// This code is derived from software contributed to Berkeley by
+// Kent Williams and Tom Epperly.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions
+// are met:
+
+// 1. Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright
+// notice, this list of conditions and the following disclaimer in the
+// documentation and/or other materials provided with the distribution.
+
+// Neither the name of the University nor the names of its contributors
+// may be used to endorse or promote products derived from this software
+// without specific prior written permission.
+
+// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+// IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+// PURPOSE.
+
+// This file defines FlexLexer, an abstract class which specifies the
+// external interface provided to flex C++ lexer objects, and yyFlexLexer,
+// which defines a particular lexer class.
+//
+// If you want to create multiple lexer classes, you use the -P flag
+// to rename each yyFlexLexer to some other xxFlexLexer. You then
+// include <FlexLexer.h> in your other sources once per lexer class:
+//
+// #undef yyFlexLexer
+// #define yyFlexLexer xxFlexLexer
+// #include <FlexLexer.h>
+//
+// #undef yyFlexLexer
+// #define yyFlexLexer zzFlexLexer
+// #include <FlexLexer.h>
+// ...
+
+#ifndef __FLEX_LEXER_H
+// Never included before - need to define base class.
+#define __FLEX_LEXER_H
+
+#include <iostream>
+
+extern "C++" {
+
+struct yy_buffer_state;
+typedef int yy_state_type;
+
+class FlexLexer
+{
+public:
+ virtual ~FlexLexer() { }
+
+ const char* YYText() const { return yytext; }
+ int YYLeng() const { return yyleng; }
+
+ virtual void
+ yy_switch_to_buffer( yy_buffer_state* new_buffer ) = 0;
+ virtual yy_buffer_state* yy_create_buffer( std::istream* s, int size ) = 0;
+ virtual yy_buffer_state* yy_create_buffer( std::istream& s, int size ) = 0;
+ virtual void yy_delete_buffer( yy_buffer_state* b ) = 0;
+ virtual void yyrestart( std::istream* s ) = 0;
+ virtual void yyrestart( std::istream& s ) = 0;
+
+ virtual int yylex() = 0;
+
+ // Call yylex with new input/output sources.
+ int yylex( std::istream& new_in, std::ostream& new_out )
+ {
+ switch_streams( new_in, new_out );
+ return yylex();
+ }
+
+ int yylex( std::istream* new_in, std::ostream* new_out = 0)
+ {
+ switch_streams( new_in, new_out );
+ return yylex();
+ }
+
+ // Switch to new input/output streams. A nil stream pointer
+ // indicates "keep the current one".
+ virtual void switch_streams( std::istream* new_in,
+ std::ostream* new_out ) = 0;
+ virtual void switch_streams( std::istream& new_in,
+ std::ostream& new_out ) = 0;
+
+ int lineno() const { return yylineno; }
+
+ int debug() const { return yy_flex_debug; }
+ void set_debug( int flag ) { yy_flex_debug = flag; }
+
+protected:
+ char* yytext;
+ int yyleng;
+ int yylineno; // only maintained if you use %option yylineno
+ int yy_flex_debug; // only has effect with -d or "%option debug"
+};
+
+}
+#endif // FLEXLEXER_H
+
+#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
+// Either this is the first time through (yyFlexLexerOnce not defined),
+// or this is a repeated include to define a different flavor of
+// yyFlexLexer, as discussed in the flex manual.
+# define yyFlexLexerOnce
+
+extern "C++" {
+
+class yyFlexLexer : public FlexLexer {
+public:
+ // arg_yyin and arg_yyout default to the cin and cout, but we
+ // only make that assignment when initializing in yylex().
+ yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout );
+ yyFlexLexer( std::istream* arg_yyin = 0, std::ostream* arg_yyout = 0 );
+private:
+ void ctor_common();
+
+public:
+
+ virtual ~yyFlexLexer();
+
+ void yy_switch_to_buffer( yy_buffer_state* new_buffer );
+ yy_buffer_state* yy_create_buffer( std::istream* s, int size );
+ yy_buffer_state* yy_create_buffer( std::istream& s, int size );
+ void yy_delete_buffer( yy_buffer_state* b );
+ void yyrestart( std::istream* s );
+ void yyrestart( std::istream& s );
+
+ void yypush_buffer_state( yy_buffer_state* new_buffer );
+ void yypop_buffer_state();
+
+ virtual int yylex();
+ virtual void switch_streams( std::istream& new_in, std::ostream& new_out );
+ virtual void switch_streams( std::istream* new_in = 0, std::ostream* new_out = 0 );
+ virtual int yywrap();
+
+protected:
+ virtual int LexerInput( char* buf, int max_size );
+ virtual void LexerOutput( const char* buf, int size );
+ virtual void LexerError( const char* msg );
+
+ void yyunput( int c, char* buf_ptr );
+ int yyinput();
+
+ void yy_load_buffer_state();
+ void yy_init_buffer( yy_buffer_state* b, std::istream& s );
+ void yy_flush_buffer( yy_buffer_state* b );
+
+ int yy_start_stack_ptr;
+ int yy_start_stack_depth;
+ int* yy_start_stack;
+
+ void yy_push_state( int new_state );
+ void yy_pop_state();
+ int yy_top_state();
+
+ yy_state_type yy_get_previous_state();
+ yy_state_type yy_try_NUL_trans( yy_state_type current_state );
+ int yy_get_next_buffer();
+
+ std::istream yyin; // input source for default LexerInput
+ std::ostream yyout; // output sink for default LexerOutput
+
+ // yy_hold_char holds the character lost when yytext is formed.
+ char yy_hold_char;
+
+ // Number of characters read into yy_ch_buf.
+ int yy_n_chars;
+
+ // Points to current character in buffer.
+ char* yy_c_buf_p;
+
+ int yy_init; // whether we need to initialize
+ int yy_start; // start state number
+
+ // Flag which is used to allow yywrap()'s to do buffer switches
+ // instead of setting up a fresh yyin. A bit of a hack ...
+ int yy_did_buffer_switch_on_eof;
+
+
+ size_t yy_buffer_stack_top; /**< index of top of stack. */
+ size_t yy_buffer_stack_max; /**< capacity of stack. */
+ yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */
+ void yyensure_buffer_stack(void);
+
+ // The following are not always needed, but may be depending
+ // on use of certain flex features (like REJECT or yymore()).
+
+ yy_state_type yy_last_accepting_state;
+ char* yy_last_accepting_cpos;
+
+ yy_state_type* yy_state_buf;
+ yy_state_type* yy_state_ptr;
+
+ char* yy_full_match;
+ int* yy_full_state;
+ int yy_full_lp;
+
+ int yy_lp;
+ int yy_looking_for_trail_begin;
+
+ int yy_more_flag;
+ int yy_more_len;
+ int yy_more_offset;
+ int yy_prev_more_offset;
+};
+
+}
+
+#endif // yyFlexLexer || ! yyFlexLexerOnce
diff --git a/contrib/flex/buf.c b/contrib/flex/src/buf.c
index d6efdacee7bf..4deb0b7b14b7 100644
--- a/contrib/flex/buf.c
+++ b/contrib/flex/src/buf.c
@@ -73,12 +73,13 @@ struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
char *t;
size_t tsz;
- t = flex_alloc (tsz = strlen (fmt) + strlen (s) + 1);
+ tsz = strlen(fmt) + strlen(s) + 1;
+ t = malloc(tsz);
if (!t)
flexfatal (_("Allocation of buffer to print string failed"));
snprintf (t, tsz, fmt, s);
buf = buf_strappend (buf, t);
- flex_free (t);
+ free(t);
return buf;
}
@@ -92,21 +93,26 @@ struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno)
{
char *dst, *t;
const char *src;
+ size_t tsz;
- t = flex_alloc (strlen ("#line \"\"\n") + /* constant parts */
- 2 * strlen (filename) + /* filename with possibly all backslashes escaped */
- NUMCHARLINES + /* line number */
- 1); /* NUL */
+ if (gen_line_dirs)
+ return buf;
+
+ tsz = strlen("#line \"\"\n") + /* constant parts */
+ 2 * strlen (filename) + /* filename with possibly all backslashes escaped */
+ NUMCHARLINES + /* line number */
+ 1; /* NUL */
+ t = malloc(tsz);
if (!t)
flexfatal (_("Allocation of buffer for line directive failed"));
- for (dst = t + sprintf (t, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++)
+ for (dst = t + snprintf (t, tsz, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++)
if (*src == '\\') /* escape backslashes */
*dst++ = '\\';
*dst++ = '"';
*dst++ = '\n';
*dst = '\0';
buf = buf_strappend (buf, t);
- flex_free (t);
+ free(t);
return buf;
}
@@ -124,10 +130,7 @@ struct Buf *buf_concat(struct Buf* dest, const struct Buf* src)
/* Appends n characters in str to buf. */
-struct Buf *buf_strnappend (buf, str, n)
- struct Buf *buf;
- const char *str;
- int n;
+struct Buf *buf_strnappend (struct Buf *buf, const char *str, int n)
{
buf_append (buf, str, n + 1);
@@ -138,18 +141,13 @@ struct Buf *buf_strnappend (buf, str, n)
}
/* Appends characters in str to buf. */
-struct Buf *buf_strappend (buf, str)
- struct Buf *buf;
- const char *str;
+struct Buf *buf_strappend (struct Buf *buf, const char *str)
{
- return buf_strnappend (buf, str, strlen (str));
+ return buf_strnappend (buf, str, (int) strlen (str));
}
/* appends "#define str def\n" */
-struct Buf *buf_strdefine (buf, str, def)
- struct Buf *buf;
- const char *str;
- const char *def;
+struct Buf *buf_strdefine (struct Buf *buf, const char *str, const char *def)
{
buf_strappend (buf, "#define ");
buf_strappend (buf, " ");
@@ -168,12 +166,13 @@ struct Buf *buf_strdefine (buf, str, def)
*/
struct Buf *buf_m4_define (struct Buf *buf, const char* def, const char* val)
{
- const char * fmt = "m4_define( [[%s]], [[%s]])m4_dnl\n";
+ const char * fmt = "m4_define( [[%s]], [[[[%s]]]])m4_dnl\n";
char * str;
size_t strsz;
val = val?val:"";
- str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + strlen(val) + 2);
+ strsz = strlen(fmt) + strlen(def) + strlen(val) + 2;
+ str = malloc(strsz);
if (!str)
flexfatal (_("Allocation of buffer for m4 def failed"));
@@ -193,7 +192,8 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def)
char * str;
size_t strsz;
- str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + 2);
+ strsz = strlen(fmt) + strlen(def) + 2;
+ str = malloc(strsz);
if (!str)
flexfatal (_("Allocation of buffer for m4 undef failed"));
@@ -203,23 +203,21 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def)
}
/* create buf with 0 elements, each of size elem_size. */
-void buf_init (buf, elem_size)
- struct Buf *buf;
- size_t elem_size;
+void buf_init (struct Buf *buf, size_t elem_size)
{
- buf->elts = (void *) 0;
+ buf->elts = NULL;
buf->nelts = 0;
buf->elt_size = elem_size;
buf->nmax = 0;
}
/* frees memory */
-void buf_destroy (buf)
- struct Buf *buf;
+void buf_destroy (struct Buf *buf)
{
- if (buf && buf->elts)
- flex_free (buf->elts);
- buf->elts = (void *) 0;
+ if (buf) {
+ free(buf->elts);
+ buf->elts = NULL;
+ }
}
@@ -229,10 +227,7 @@ void buf_destroy (buf)
* We grow by mod(512) boundaries.
*/
-struct Buf *buf_append (buf, ptr, n_elem)
- struct Buf *buf;
- const void *ptr;
- int n_elem;
+struct Buf *buf_append (struct Buf *buf, const void *ptr, int n_elem)
{
int n_alloc = 0;
@@ -242,30 +237,30 @@ struct Buf *buf_append (buf, ptr, n_elem)
/* May need to alloc more. */
if (n_elem + buf->nelts > buf->nmax) {
- /* exact amount needed... */
- n_alloc = (n_elem + buf->nelts) * buf->elt_size;
+ /* exact count needed... */
+ n_alloc = n_elem + buf->nelts;
/* ...plus some extra */
- if (((n_alloc * buf->elt_size) % 512) != 0
+ if ((((size_t) n_alloc * buf->elt_size) % 512) != 0
&& buf->elt_size < 512)
- n_alloc +=
- (512 -
- ((n_alloc * buf->elt_size) % 512)) /
- buf->elt_size;
+ n_alloc += (int)
+ ((512 -
+ (((size_t) n_alloc * buf->elt_size) % 512)) /
+ buf->elt_size);
if (!buf->elts)
buf->elts =
- allocate_array (n_alloc, buf->elt_size);
+ allocate_array ((int) n_alloc, buf->elt_size);
else
buf->elts =
- reallocate_array (buf->elts, n_alloc,
+ reallocate_array (buf->elts, (int) n_alloc,
buf->elt_size);
buf->nmax = n_alloc;
}
- memcpy ((char *) buf->elts + buf->nelts * buf->elt_size, ptr,
- n_elem * buf->elt_size);
+ memcpy ((char *) buf->elts + (size_t) buf->nelts * buf->elt_size, ptr,
+ (size_t) n_elem * buf->elt_size);
buf->nelts += n_elem;
return buf;
diff --git a/contrib/flex/ccl.c b/contrib/flex/src/ccl.c
index 7b134af08273..ff9a2134ee33 100644
--- a/contrib/flex/ccl.c
+++ b/contrib/flex/src/ccl.c
@@ -52,9 +52,7 @@ ccl_contains (const int cclp, const int ch)
/* ccladd - add a single character to a ccl */
-void ccladd (cclp, ch)
- int cclp;
- int ch;
+void ccladd (int cclp, int ch)
{
int ind, len, newpos, i;
@@ -85,7 +83,7 @@ void ccladd (cclp, ch)
}
ccllen[cclp] = len + 1;
- ccltbl[newpos] = ch;
+ ccltbl[newpos] = (unsigned char) ch;
}
/* dump_cclp - same thing as list_character_set, but for cclps. */
@@ -185,7 +183,7 @@ ccl_set_union (int a, int b)
/* cclinit - return an empty ccl */
-int cclinit ()
+int cclinit (void)
{
if (++lastccl >= current_maxccls) {
current_maxccls += MAX_CCLS_INCREMENT;
@@ -225,8 +223,7 @@ int cclinit ()
/* cclnegate - negate the given ccl */
-void cclnegate (cclp)
- int cclp;
+void cclnegate (int cclp)
{
cclng[cclp] = 1;
ccl_has_nl[cclp] = !ccl_has_nl[cclp];
@@ -240,9 +237,7 @@ void cclnegate (cclp)
* has a non-zero value in the cset array.
*/
-void list_character_set (file, cset)
- FILE *file;
- int cset[];
+void list_character_set (FILE *file, int cset[])
{
int i;
diff --git a/contrib/flex/dfa.c b/contrib/flex/src/dfa.c
index addd99514a30..ab103143c0f0 100644
--- a/contrib/flex/dfa.c
+++ b/contrib/flex/src/dfa.c
@@ -34,10 +34,10 @@
/* declare functions that have forward references */
-void dump_associated_rules PROTO ((FILE *, int));
-void dump_transitions PROTO ((FILE *, int[]));
-void sympartition PROTO ((int[], int, int[], int[]));
-int symfollowset PROTO ((int[], int, int, int[]));
+void dump_associated_rules(FILE *, int);
+void dump_transitions(FILE *, int[]);
+void sympartition(int[], int, int[], int[]);
+int symfollowset(int[], int, int, int[]);
/* check_for_backing_up - check a DFA state for backing up
@@ -49,9 +49,7 @@ int symfollowset PROTO ((int[], int, int, int[]));
* indexed by equivalence class.
*/
-void check_for_backing_up (ds, state)
- int ds;
- int state[];
+void check_for_backing_up (int ds, int state[])
{
if ((reject && !dfaacc[ds].dfaacc_set) || (!reject && !dfaacc[ds].dfaacc_state)) { /* state is non-accepting */
++num_backing_up;
@@ -96,10 +94,7 @@ void check_for_backing_up (ds, state)
* accset[1 .. nacc] is the list of accepting numbers for the DFA state.
*/
-void check_trailing_context (nfa_states, num_states, accset, nacc)
- int *nfa_states, num_states;
- int *accset;
- int nacc;
+void check_trailing_context (int *nfa_states, int num_states, int *accset, int nacc)
{
int i, j;
@@ -137,15 +132,13 @@ void check_trailing_context (nfa_states, num_states, accset, nacc)
* and writes a report to the given file.
*/
-void dump_associated_rules (file, ds)
- FILE *file;
- int ds;
+void dump_associated_rules (FILE *file, int ds)
{
int i, j;
int num_associated_rules = 0;
- int rule_set[MAX_ASSOC_RULES + 1];
- int *dset = dss[ds];
- int size = dfasiz[ds];
+ int rule_set[MAX_ASSOC_RULES + 1];
+ int *dset = dss[ds];
+ int size = dfasiz[ds];
for (i = 1; i <= size; ++i) {
int rule_num = rule_linenum[assoc_rule[dset[i]]];
@@ -161,7 +154,7 @@ void dump_associated_rules (file, ds)
}
}
- qsort (&rule_set [1], num_associated_rules, sizeof (rule_set [1]), intcmp);
+ qsort (&rule_set [1], (size_t) num_associated_rules, sizeof (rule_set [1]), intcmp);
fprintf (file, _(" associated rule line numbers:"));
@@ -187,12 +180,10 @@ void dump_associated_rules (file, ds)
* is done to the given file.
*/
-void dump_transitions (file, state)
- FILE *file;
- int state[];
+void dump_transitions (FILE *file, int state[])
{
int i, ec;
- int out_char_set[CSIZE];
+ int out_char_set[CSIZE];
for (i = 0; i < csize; ++i) {
ec = ABS (ecgroup[i]);
@@ -235,10 +226,9 @@ void dump_transitions (file, state)
* hashval is the hash value for the dfa corresponding to the state set.
*/
-int *epsclosure (t, ns_addr, accset, nacc_addr, hv_addr)
- int *t, *ns_addr, accset[], *nacc_addr, *hv_addr;
+int *epsclosure (int *t, int *ns_addr, int accset[], int *nacc_addr, int *hv_addr)
{
- int stkpos, ns, tsp;
+ int stkpos, ns, tsp;
int numstates = *ns_addr, nacc, hashval, transsym, nfaccnum;
int stkend, nstate;
static int did_stk_init = false, *stk;
@@ -351,7 +341,7 @@ ADD_STATE(state); \
/* increase_max_dfas - increase the maximum number of DFAs */
-void increase_max_dfas ()
+void increase_max_dfas (void)
{
current_max_dfas += MAX_DFAS_INCREMENT;
@@ -378,7 +368,7 @@ void increase_max_dfas ()
* dfa starts out in state #1.
*/
-void ntod ()
+void ntod (void)
{
int *accset, ds, nacc, newds;
int sym, hashval, numstates, dsize;
@@ -400,7 +390,7 @@ void ntod ()
* from 1 to CSIZE, so their size must be CSIZE + 1.
*/
int duplist[CSIZE + 1], state[CSIZE + 1];
- int targfreq[CSIZE + 1], targstate[CSIZE + 1];
+ int targfreq[CSIZE + 1] = {0}, targstate[CSIZE + 1];
/* accset needs to be large enough to hold all of the rules present
* in the input, *plus* their YY_TRAILING_HEAD_MASK variants.
@@ -473,14 +463,9 @@ void ntod ()
/* We still may want to use the table if numecs
* is a power of 2.
*/
- int power_of_two;
-
- for (power_of_two = 1; power_of_two <= csize;
- power_of_two *= 2)
- if (numecs == power_of_two) {
- use_NUL_table = true;
- break;
- }
+ if (numecs <= csize && is_power_of_2(numecs)) {
+ use_NUL_table = true;
+ }
}
if (use_NUL_table)
@@ -521,15 +506,13 @@ void ntod ()
* So we'll have to realloc() on the way...
* we'll wait until we can calculate yynxt_tbl->td_hilen.
*/
- yynxt_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct
- yytbl_data));
+ yynxt_tbl = calloc(1, sizeof (struct yytbl_data));
+
yytbl_data_init (yynxt_tbl, YYTD_ID_NXT);
yynxt_tbl->td_hilen = 1;
- yynxt_tbl->td_lolen = num_full_table_rows;
+ yynxt_tbl->td_lolen = (flex_uint32_t) num_full_table_rows;
yynxt_tbl->td_data = yynxt_data =
- (flex_int32_t *) calloc (yynxt_tbl->td_lolen *
+ calloc(yynxt_tbl->td_lolen *
yynxt_tbl->td_hilen,
sizeof (flex_int32_t));
yynxt_curr = 0;
@@ -543,12 +526,12 @@ void ntod ()
*/
if (gentables)
out_str_dec
- ("static yyconst %s yy_nxt[][%d] =\n {\n",
+ ("static const %s yy_nxt[][%d] =\n {\n",
long_align ? "flex_int32_t" : "flex_int16_t",
num_full_table_rows);
else {
out_dec ("#undef YY_NXT_LOLEN\n#define YY_NXT_LOLEN (%d)\n", num_full_table_rows);
- out_str ("static yyconst %s *yy_nxt =0;\n",
+ out_str ("static const %s *yy_nxt =0;\n",
long_align ? "flex_int32_t" : "flex_int16_t");
}
@@ -713,7 +696,7 @@ void ntod ()
/* Each time we hit here, it's another td_hilen, so we realloc. */
yynxt_tbl->td_hilen++;
yynxt_tbl->td_data = yynxt_data =
- (flex_int32_t *) realloc (yynxt_data,
+ realloc (yynxt_data,
yynxt_tbl->td_hilen *
yynxt_tbl->td_lolen *
sizeof (flex_int32_t));
@@ -805,8 +788,8 @@ void ntod ()
mkdeftbl ();
}
- flex_free ((void *) accset);
- flex_free ((void *) nset);
+ free(accset);
+ free(nset);
}
@@ -820,12 +803,11 @@ void ntod ()
* On return, the dfa state number is in newds.
*/
-int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
- int sns[], numstates, accset[], nacc, hashval, *newds_addr;
+int snstods (int sns[], int numstates, int accset[], int nacc, int hashval, int *newds_addr)
{
- int didsort = 0;
+ int didsort = 0;
int i, j;
- int newds, *oldsns;
+ int newds, *oldsns;
for (i = 1; i <= lastdfa; ++i)
if (hashval == dhash[i]) {
@@ -836,7 +818,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
/* We sort the states in sns so we
* can compare it to oldsns quickly.
*/
- qsort (&sns [1], numstates, sizeof (sns [1]), intcmp);
+ qsort (&sns [1], (size_t) numstates, sizeof (sns [1]), intcmp);
didsort = 1;
}
@@ -871,7 +853,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
*/
if (!didsort)
- qsort (&sns [1], numstates, sizeof (sns [1]), intcmp);
+ qsort (&sns [1], (size_t) numstates, sizeof (sns [1]), intcmp);
for (i = 1; i <= numstates; ++i)
dss[newds][i] = sns[i];
@@ -881,7 +863,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
if (nacc == 0) {
if (reject)
- dfaacc[newds].dfaacc_set = (int *) 0;
+ dfaacc[newds].dfaacc_set = NULL;
else
dfaacc[newds].dfaacc_state = 0;
@@ -894,7 +876,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
* match in the event of ties will work.
*/
- qsort (&accset [1], nacc, sizeof (accset [1]), intcmp);
+ qsort (&accset [1], (size_t) nacc, sizeof (accset [1]), intcmp);
dfaacc[newds].dfaacc_set =
allocate_integer_array (nacc + 1);
@@ -942,8 +924,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
* int transsym, int nset[current_max_dfa_size] );
*/
-int symfollowset (ds, dsize, transsym, nset)
- int ds[], dsize, transsym, nset[];
+int symfollowset (int ds[], int dsize, int transsym, int nset[])
{
int ns, tsp, sym, i, j, lenccl, ch, numstates, ccllist;
@@ -1020,9 +1001,7 @@ int symfollowset (ds, dsize, transsym, nset)
* int symlist[numecs], int duplist[numecs] );
*/
-void sympartition (ds, numstates, symlist, duplist)
- int ds[], numstates;
- int symlist[], duplist[];
+void sympartition (int ds[], int numstates, int symlist[], int duplist[])
{
int tch, i, j, k, ns, dupfwd[CSIZE + 1], lenccl, cclp, ich;
diff --git a/contrib/flex/ecs.c b/contrib/flex/src/ecs.c
index 05c97ed6d28f..dc68360d7292 100644
--- a/contrib/flex/ecs.c
+++ b/contrib/flex/src/ecs.c
@@ -36,7 +36,7 @@
/* ccl2ecl - convert character classes to set of equivalence classes */
-void ccl2ecl ()
+void ccl2ecl (void)
{
int i, ich, newlen, cclp, ccls, cclmec;
@@ -56,7 +56,8 @@ void ccl2ecl ()
cclmec = ecgroup[ich];
if (cclmec > 0) {
- ccltbl[cclp + newlen] = cclmec;
+ /* Note: range 1..256 is mapped to 1..255,0 */
+ ccltbl[cclp + newlen] = (unsigned char) cclmec;
++newlen;
}
}
@@ -74,8 +75,7 @@ void ccl2ecl ()
* Returned is the number of classes.
*/
-int cre8ecs (fwd, bck, num)
- int fwd[], bck[], num;
+int cre8ecs (int fwd[], int bck[], int num)
{
int i, j, numcl;
@@ -100,9 +100,9 @@ int cre8ecs (fwd, bck, num)
/* mkeccl - update equivalence classes based on character class xtions
*
* synopsis
- * Char ccls[];
+ * unsigned char ccls[];
* int lenccl, fwd[llsiz], bck[llsiz], llsiz, NUL_mapping;
- * void mkeccl( Char ccls[], int lenccl, int fwd[llsiz], int bck[llsiz],
+ * void mkeccl( unsigned char ccls[], int lenccl, int fwd[llsiz], int bck[llsiz],
* int llsiz, int NUL_mapping );
*
* ccls contains the elements of the character class, lenccl is the
@@ -112,9 +112,7 @@ int cre8ecs (fwd, bck, num)
* NUL_mapping is the value which NUL (0) should be mapped to.
*/
-void mkeccl (ccls, lenccl, fwd, bck, llsiz, NUL_mapping)
- Char ccls[];
- int lenccl, fwd[], bck[], llsiz, NUL_mapping;
+void mkeccl (unsigned char ccls[], int lenccl, int fwd[], int bck[], int llsiz, int NUL_mapping)
{
int cclp, oldec, newec;
int cclm, i, j;
@@ -191,7 +189,7 @@ void mkeccl (ccls, lenccl, fwd, bck, llsiz, NUL_mapping)
/* Find next ccl member to process. */
- for (++cclp; cclflags[cclp] && cclp < lenccl; ++cclp) {
+ for (++cclp; cclp < lenccl && cclflags[cclp]; ++cclp) {
/* Reset "doesn't need processing" flag. */
cclflags[cclp] = 0;
}
@@ -201,8 +199,7 @@ void mkeccl (ccls, lenccl, fwd, bck, llsiz, NUL_mapping)
/* mkechar - create equivalence class for single character */
-void mkechar (tch, fwd, bck)
- int tch, fwd[], bck[];
+void mkechar (int tch, int fwd[], int bck[])
{
/* If until now the character has been a proper subset of
* an equivalence class, break it away to create a new ec
diff --git a/contrib/flex/filter.c b/contrib/flex/src/filter.c
index b874e10cd063..71f3635fe520 100644
--- a/contrib/flex/filter.c
+++ b/contrib/flex/src/filter.c
@@ -47,9 +47,9 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
va_list ap;
/* allocate and initialize new filter */
- f = (struct filter *) flex_alloc (sizeof (struct filter));
+ f = malloc(sizeof(struct filter));
if (!f)
- flexerror (_("flex_alloc failed (f) in filter_create_ext"));
+ flexerror(_("malloc failed (f) in filter_create_ext"));
memset (f, 0, sizeof (*f));
f->filter_func = NULL;
f->extra = NULL;
@@ -66,23 +66,16 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
/* allocate argv, and populate it with the argument list. */
max_args = 8;
- f->argv =
- (const char **) flex_alloc (sizeof (char *) *
- (max_args + 1));
+ f->argv = malloc(sizeof(char *) * (size_t) (max_args + 1));
if (!f->argv)
- flexerror (_("flex_alloc failed (f->argv) in filter_create_ext"));
+ flexerror(_("malloc failed (f->argv) in filter_create_ext"));
f->argv[f->argc++] = cmd;
va_start (ap, cmd);
while ((s = va_arg (ap, const char *)) != NULL) {
if (f->argc >= max_args) {
max_args += 8;
- f->argv =
- (const char **) flex_realloc (f->argv,
- sizeof (char
- *) *
- (max_args +
- 1));
+ f->argv = realloc(f->argv, sizeof(char*) * (size_t) (max_args + 1));
}
f->argv[f->argc++] = s;
}
@@ -107,9 +100,9 @@ struct filter *filter_create_int (struct filter *chain,
struct filter *f;
/* allocate and initialize new filter */
- f = (struct filter *) flex_alloc (sizeof (struct filter));
+ f = malloc(sizeof(struct filter));
if (!f)
- flexerror (_("flex_alloc failed in filter_create_int"));
+ flexerror(_("malloc failed in filter_create_int"));
memset (f, 0, sizeof (*f));
f->next = NULL;
f->argc = 0;
@@ -174,6 +167,8 @@ clearerr(stdin);
flexfatal (_("dup2(pipes[0],0)"));
close (pipes[0]);
fseek (stdin, 0, SEEK_CUR);
+ ungetc(' ', stdin); /* still an evil hack, but one that works better */
+ (void)fgetc(stdin); /* on NetBSD than the fseek attempt does */
/* run as a filter, either internally or by exec */
if (chain->filter_func) {
@@ -181,16 +176,16 @@ clearerr(stdin);
if ((r = chain->filter_func (chain)) == -1)
flexfatal (_("filter_func failed"));
- exit (0);
+ FLEX_EXIT (0);
}
else {
execvp (chain->argv[0],
(char **const) (chain->argv));
- lerrsf_fatal ( _("exec of %s failed"),
+ lerr_fatal ( _("exec of %s failed"),
chain->argv[0]);
}
- exit (1);
+ FLEX_EXIT (1);
}
/* Parent */
@@ -288,9 +283,9 @@ int filter_tee_header (struct filter *chain)
fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
outfilename ? outfilename : "<stdout>");
- buf = (char *) flex_alloc (readsz);
+ buf = malloc((size_t) readsz);
if (!buf)
- flexerror (_("flex_alloc failed in filter_tee_header"));
+ flexerror(_("malloc failed in filter_tee_header"));
while (fgets (buf, readsz, stdin)) {
fputs (buf, to_c);
if (write_header)
@@ -301,7 +296,8 @@ int filter_tee_header (struct filter *chain)
fprintf (to_h, "\n");
/* write a fake line number. It will get fixed by the linedir filter. */
- fprintf (to_h, "#line 4000 \"M4_YY_OUTFILE_NAME\"\n");
+ if (gen_line_dirs)
+ fprintf (to_h, "#line 4000 \"M4_YY_OUTFILE_NAME\"\n");
fprintf (to_h, "#undef %sIN_HEADER\n", prefix);
fprintf (to_h, "#endif /* %sHEADER_H */\n", prefix);
@@ -309,26 +305,26 @@ int filter_tee_header (struct filter *chain)
fflush (to_h);
if (ferror (to_h))
- lerrsf (_("error writing output file %s"),
+ lerr (_("error writing output file %s"),
(char *) chain->extra);
else if (fclose (to_h))
- lerrsf (_("error closing output file %s"),
+ lerr (_("error closing output file %s"),
(char *) chain->extra);
}
fflush (to_c);
if (ferror (to_c))
- lerrsf (_("error writing output file %s"),
+ lerr (_("error writing output file %s"),
outfilename ? outfilename : "<stdout>");
else if (fclose (to_c))
- lerrsf (_("error closing output file %s"),
+ lerr (_("error closing output file %s"),
outfilename ? outfilename : "<stdout>");
while (wait (0) > 0) ;
- exit (0);
+ FLEX_EXIT (0);
return 0;
}
@@ -341,7 +337,7 @@ int filter_tee_header (struct filter *chain)
int filter_fix_linedirs (struct filter *chain)
{
char *buf;
- const int readsz = 512;
+ const size_t readsz = 512;
int lineno = 1;
bool in_gen = true; /* in generated code */
bool last_was_blank = false;
@@ -349,11 +345,11 @@ int filter_fix_linedirs (struct filter *chain)
if (!chain)
return 0;
- buf = (char *) flex_alloc (readsz);
+ buf = malloc(readsz);
if (!buf)
- flexerror (_("flex_alloc failed in filter_fix_linedirs"));
+ flexerror(_("malloc failed in filter_fix_linedirs"));
- while (fgets (buf, readsz, stdin)) {
+ while (fgets (buf, (int) readsz, stdin)) {
regmatch_t m[10];
@@ -361,11 +357,9 @@ int filter_fix_linedirs (struct filter *chain)
if (buf[0] == '#'
&& regexec (&regex_linedir, buf, 3, m, 0) == 0) {
- int num;
char *fname;
/* extract the line number and filename */
- num = regmatch_strtol (&m[1], buf, NULL, 0);
fname = regmatch_dup (&m[2], buf);
if (strcmp (fname,
@@ -397,7 +391,7 @@ int filter_fix_linedirs (struct filter *chain)
/* Adjust the line directives. */
in_gen = true;
snprintf (buf, readsz, "#line %d \"%s\"\n",
- lineno + 1, filename);
+ lineno, filename);
}
else {
/* it's a #line directive for code we didn't write */
@@ -428,11 +422,11 @@ int filter_fix_linedirs (struct filter *chain)
}
fflush (stdout);
if (ferror (stdout))
- lerrsf (_("error writing output file %s"),
+ lerr (_("error writing output file %s"),
outfilename ? outfilename : "<stdout>");
else if (fclose (stdout))
- lerrsf (_("error closing output file %s"),
+ lerr (_("error closing output file %s"),
outfilename ? outfilename : "<stdout>");
return 0;
diff --git a/contrib/flex/flex.skl b/contrib/flex/src/flex.skl
index d06471fdcfa5..242645f53245 100644
--- a/contrib/flex/flex.skl
+++ b/contrib/flex/src/flex.skl
@@ -6,17 +6,18 @@
%# pre-compilation stage of flex. Only macros starting
%# with `m4preproc_' are processed, and quoting is normal.
%#
-%# 2. The preprocessed skeleton is translated verbatim into a
-%# C array, saved as "skel.c" and compiled into the flex binary.
+%# 2. The preprocessed skeleton is translated into a C array, saved
+%# as "skel.c" and compiled into the flex binary. The %# comment
+%# lines are removed.
%#
%# 3. At runtime, the skeleton is generated and filtered (again)
%# through m4. Macros beginning with `m4_' will be processed.
%# The quoting is "[[" and "]]" so we don't interfere with
%# user code.
-%#
+%#
%# All generate macros for the m4 stage contain the text "m4" or "M4"
%# in them. This is to distinguish them from CPP macros.
-%# The exception to this rule is YY_G, which is an m4 macro,
+%# The exception to this rule is YY_G, which is an m4 macro,
%# but it needs to be remain short because it is used everywhere.
%#
/* A lexical scanner generated by flex */
@@ -29,7 +30,7 @@ m4_changecom
m4_changequote
m4_changequote([[, ]])
-%#
+%#
%# Lines in this skeleton starting with a "%" character are "control lines"
%# and affect the generation of the scanner. The possible control codes are
%# listed and processed in misc.c.
@@ -61,11 +62,17 @@ m4_changequote([[, ]])
m4_ifelse(M4_YY_PREFIX,yy,,
#define yy_create_buffer M4_YY_PREFIX[[_create_buffer]]
#define yy_delete_buffer M4_YY_PREFIX[[_delete_buffer]]
-#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]]
+#define yy_scan_buffer M4_YY_PREFIX[[_scan_buffer]]
+#define yy_scan_string M4_YY_PREFIX[[_scan_string]]
+#define yy_scan_bytes M4_YY_PREFIX[[_scan_bytes]]
#define yy_init_buffer M4_YY_PREFIX[[_init_buffer]]
#define yy_flush_buffer M4_YY_PREFIX[[_flush_buffer]]
#define yy_load_buffer_state M4_YY_PREFIX[[_load_buffer_state]]
#define yy_switch_to_buffer M4_YY_PREFIX[[_switch_to_buffer]]
+#define yypush_buffer_state M4_YY_PREFIX[[push_buffer_state]]
+#define yypop_buffer_state M4_YY_PREFIX[[pop_buffer_state]]
+#define yyensure_buffer_stack M4_YY_PREFIX[[ensure_buffer_stack]]
+#define yy_flex_debug M4_YY_PREFIX[[_flex_debug]]
#define yyin M4_YY_PREFIX[[in]]
#define yyleng M4_YY_PREFIX[[leng]]
#define yylex M4_YY_PREFIX[[lex]]
@@ -105,8 +112,16 @@ m4_ifdef( [[M4_YY_REENTRANT]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])
m4_ifdef( [[M4_YY_PREFIX]],, [[m4_define([[M4_YY_PREFIX]], [[yy]])]])
-m4preproc_define(`M4_GEN_PREFIX',
- ``m4_define(yy[[$1]], [[M4_YY_PREFIX[[$1]]m4_ifelse($'`#,0,,[[($'`@)]])]])'')
+m4preproc_define(`M4_GEN_PREFIX',``
+[[#ifdef yy$1
+#define ]]M4_YY_PREFIX[[$1_ALREADY_DEFINED
+#else
+#define yy$1 ]]M4_YY_PREFIX[[$1
+#endif]]
+'m4preproc_divert(1)`
+[[#ifndef ]]M4_YY_PREFIX[[$1_ALREADY_DEFINED
+#undef yy$1
+#endif]]'m4preproc_divert(0)')
%if-c++-only
/* The c++ scanner is a mess. The FlexLexer.h header file relies on the
@@ -119,6 +134,7 @@ m4preproc_define(`M4_GEN_PREFIX',
%endif
%if-c-only
+m4_ifelse(M4_YY_PREFIX,yy,,
M4_GEN_PREFIX(`_create_buffer')
M4_GEN_PREFIX(`_delete_buffer')
M4_GEN_PREFIX(`_scan_buffer')
@@ -154,6 +170,7 @@ m4preproc_define(`M4_GEN_PREFIX',
M4_GEN_PREFIX(`set_column')
]])
M4_GEN_PREFIX(`wrap')
+)
%endif
m4_ifdef( [[M4_YY_BISON_LVAL]],
@@ -169,11 +186,14 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
]])
+m4_ifelse(M4_YY_PREFIX,yy,,
M4_GEN_PREFIX(`alloc')
M4_GEN_PREFIX(`realloc')
M4_GEN_PREFIX(`free')
+)
%if-c-only
+m4_ifelse(M4_YY_PREFIX,yy,,
m4_ifdef( [[M4_YY_NOT_REENTRANT]],
[[
M4_GEN_PREFIX(`text')
@@ -183,6 +203,7 @@ m4_ifdef( [[M4_YY_NOT_REENTRANT]],
M4_GEN_PREFIX(`_flex_debug')
M4_GEN_PREFIX(`lineno')
]])
+)
%endif
@@ -196,11 +217,7 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
/* First, we deal with platform-specific or compiler-specific issues. */
#if defined(__FreeBSD__)
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS
-#endif
#include <sys/cdefs.h>
-#include <stdint.h>
#else
#define __dead2
#endif
@@ -223,9 +240,9 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
m4preproc_include(`flexint.h')
%endif
-%if-c++-only
/* begin standard C++ headers. */
-#include <iostream>
+%if-c++-only
+#include <iostream>
#include <errno.h>
#include <cstdlib>
#include <cstdio>
@@ -233,58 +250,25 @@ m4preproc_include(`flexint.h')
/* end standard C++ headers. */
%endif
-#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
-%# For compilers that can not handle prototypes.
-%# e.g.,
-%# The function prototype
-%# int foo(int x, char* y);
-%#
-%# ...should be written as
-%# int foo M4_YY_PARAMS(int x, char* y);
-%#
-%# ...which could possibly generate
-%# int foo ();
-%#
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_PROTOS]],
-[[
- m4_define( [[M4_YY_PARAMS]], [[()]])
-]],
-[[
- m4_define( [[M4_YY_PARAMS]], [[($*)]])
-]])
-
%not-for-header
/* Returned upon end-of-file. */
#define YY_NULL 0
%ok-for-header
%not-for-header
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
+/* Promotes a possibly negative, possibly signed char to an
+ * integer in range [0..255] for use as an array index.
*/
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
%ok-for-header
@@ -308,16 +292,8 @@ m4_define( [[YY_G]], [[yyg->$1]])
m4_define( [[M4_YY_PROTO_LAST_ARG]], [[, yyscan_t yyscanner]])
m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[yyscan_t yyscanner]])
-%# For use in function definitions to append the additional argument.
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
-[[
- m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscanner]])
- m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscanner]])
-]],
-[[
- m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscan_t yyscanner]])
- m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscan_t yyscanner]])
-]])
+m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscan_t yyscanner]])
+m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscan_t yyscanner]])
m4_define( [[M4_YY_DECL_LAST_ARG]], [[yyscan_t yyscanner;]])
%# For use in function calls to pass the additional argument.
@@ -339,7 +315,7 @@ m4_define( [[M4_YY_DOC_PARAM]], [[@param yyscanner The scanner object.]])
#define yy_flex_debug YY_G(yy_flex_debug_r)
m4_define( [[M4_YY_INCR_LINENO]],
-[[
+[[
do{ yylineno++;
yycolumn=0;
}while(0)
@@ -352,7 +328,7 @@ m4_define( [[M4_YY_INCR_LINENO]],
%if-not-reentrant
m4_define( [[M4_YY_INCR_LINENO]],
-[[
+[[
yylineno++;
]])
@@ -364,60 +340,19 @@ m4_define( [[M4_YY_PROTO_LAST_ARG]])
m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])
m4_define( [[M4_YY_DEF_LAST_ARG]])
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
-[[
- m4_define( [[M4_YY_DEF_ONLY_ARG]])
-]],
-[[
- m4_define( [[M4_YY_DEF_ONLY_ARG]], [[void]])
-]])
+m4_define( [[M4_YY_DEF_ONLY_ARG]], [[void]])
m4_define([[M4_YY_DECL_LAST_ARG]])
m4_define([[M4_YY_CALL_LAST_ARG]])
m4_define([[M4_YY_CALL_ONLY_ARG]])
-m4_define( [[M4_YY_DOC_PARAM]], [[]])
+m4_define( [[M4_YY_DOC_PARAM]], )
%endif
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
-[[
-%# For compilers that need traditional function definitions.
-%# e.g.,
-%# The function prototype taking 2 arguments
-%# int foo (int x, char* y)
-%#
-%# ...should be written as
-%# int foo YYFARGS2(int,x, char*,y)
-%#
-%# ...which could possibly generate
-%# int foo (x,y,yyscanner)
-%# int x;
-%# char * y;
-%# yyscan_t yyscanner;
-%#
-%# Generate traditional function defs
- m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG) [[\]]
- M4_YY_DECL_LAST_ARG]])
- m4_define( [[YYFARGS1]], [[($2 M4_YY_DEF_LAST_ARG) [[\]]
- $1 $2; [[\]]
- M4_YY_DECL_LAST_ARG]])
- m4_define( [[YYFARGS2]], [[($2,$4 M4_YY_DEF_LAST_ARG) [[\]]
- $1 $2; [[\]]
- $3 $4; [[\]]
- M4_YY_DECL_LAST_ARG]])
- m4_define( [[YYFARGS3]], [[($2,$4,$6 M4_YY_DEF_LAST_ARG) [[\]]
- $1 $2; [[\]]
- $3 $4; [[\]]
- $5 $6; [[\]]
- M4_YY_DECL_LAST_ARG]])
-]],
-[[
%# Generate C99 function defs.
- m4_define( [[YYFARGS0]], [[(M4_YY_DEF_ONLY_ARG)]])
- m4_define( [[YYFARGS1]], [[($1 $2 M4_YY_DEF_LAST_ARG)]])
- m4_define( [[YYFARGS2]], [[($1 $2, $3 $4 M4_YY_DEF_LAST_ARG)]])
- m4_define( [[YYFARGS3]], [[($1 $2, $3 $4, $5 $6 M4_YY_DEF_LAST_ARG)]])
-]])
+m4_define( [[YYFARGS1]], [[($1 $2 M4_YY_DEF_LAST_ARG)]])
+m4_define( [[YYFARGS2]], [[($1 $2, $3 $4 M4_YY_DEF_LAST_ARG)]])
+m4_define( [[YYFARGS3]], [[($1 $2, $3 $4, $5 $6 M4_YY_DEF_LAST_ARG)]])
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
@@ -426,38 +361,30 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
* definition of BEGIN.
*/
#define BEGIN YY_G(yy_start) = 1 + 2 *
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state. The YYSTATE alias is for lex
* compatibility.
*/
#define YY_START ((YY_G(yy_start) - 1) / 2)
#define YYSTATE YY_START
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Special action meaning "start processing a new file". */
#define YY_NEW_FILE yyrestart( yyin M4_YY_CALL_LAST_ARG )
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
#define YY_END_OF_BUFFER_CHAR 0
]])
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
#define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
#endif
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
@@ -479,7 +406,7 @@ typedef size_t yy_size_t;
#endif
%if-not-reentrant
-extern yy_size_t yyleng;
+extern int yyleng;
%endif
%if-c-only
@@ -493,15 +420,11 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
m4_ifdef( [[M4_YY_USE_LINENO]],
[[
/* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
* access to the local variable yy_act. Since yyless() is a macro, it would break
- * existing scanners that call yyless() from OUTSIDE yylex.
+ * existing scanners that call yyless() from OUTSIDE yylex.
* One obvious solution it to make yy_act a global. I tried that, and saw
* a 5% performance hit in a non-yylineno scanner, because yy_act is
* normally declared as a register variable-- so it is not worth it.
@@ -513,14 +436,18 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
if ( yytext[yyl] == '\n' )\
--yylineno;\
}while(0)
+ #define YY_LINENO_REWIND_TO(dst) \
+ do {\
+ const char *p;\
+ for ( p = yy_cp-1; p >= (dst); --p)\
+ if ( *p == '\n' )\
+ --yylineno;\
+ }while(0)
]],
[[
#define YY_LESS_LINENO(n)
+ #define YY_LINENO_REWIND_TO(ptr)
]])
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
@@ -534,10 +461,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
while ( 0 )
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
#define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )
]])
@@ -550,7 +473,7 @@ struct yy_buffer_state
%endif
%if-c++-only
- std::istream* yy_input_file;
+ std::streambuf* yy_input_file;
%endif
@@ -560,12 +483,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
@@ -588,7 +511,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.
@@ -622,7 +545,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
/* 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. */
%endif
%ok-for-header
%endif
@@ -639,10 +562,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
? YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)] \
: NULL)
#define yy_current_buffer YY_CURRENT_BUFFER
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Same as previous macro, but useful when we know that the buffer stack is not
* NULL or when we need an lvalue. For internal use only.
*/
@@ -655,11 +574,11 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
%not-for-header
/* 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 */
@@ -670,43 +589,35 @@ static int yy_did_buffer_switch_on_eof;
%ok-for-header
%endif
-void yyrestart M4_YY_PARAMS( FILE *input_file M4_YY_PROTO_LAST_ARG );
-void yy_switch_to_buffer M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
-YY_BUFFER_STATE yy_create_buffer M4_YY_PARAMS( FILE *file, int size M4_YY_PROTO_LAST_ARG );
-void yy_delete_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
-void yy_flush_buffer M4_YY_PARAMS( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
-void yypush_buffer_state M4_YY_PARAMS( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
-void yypop_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
-static void yyensure_buffer_stack M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
-static void yy_load_buffer_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
-static void yy_init_buffer M4_YY_PARAMS( YY_BUFFER_STATE b, FILE *file M4_YY_PROTO_LAST_ARG );
-]])
+void yyrestart ( FILE *input_file M4_YY_PROTO_LAST_ARG );
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size M4_YY_PROTO_LAST_ARG );
+void yy_delete_buffer ( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
+void yy_flush_buffer ( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
+void yypop_buffer_state ( M4_YY_PROTO_ONLY_ARG );
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
+static void yyensure_buffer_stack ( M4_YY_PROTO_ONLY_ARG );
+static void yy_load_buffer_state ( M4_YY_PROTO_ONLY_ARG );
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file M4_YY_PROTO_LAST_ARG );
#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG)
]])
-YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );
-YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );
-YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, yy_size_t len M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str M4_YY_PROTO_LAST_ARG );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len M4_YY_PROTO_LAST_ARG );
%endif
-void *yyalloc M4_YY_PARAMS( yy_size_t M4_YY_PROTO_LAST_ARG );
-void *yyrealloc M4_YY_PARAMS( void *, yy_size_t M4_YY_PROTO_LAST_ARG );
-void yyfree M4_YY_PARAMS( void * M4_YY_PROTO_LAST_ARG );
+void *yyalloc ( yy_size_t M4_YY_PROTO_LAST_ARG );
+void *yyrealloc ( void *, yy_size_t M4_YY_PROTO_LAST_ARG );
+void yyfree ( void * M4_YY_PROTO_LAST_ARG );
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
#define yy_new_buffer yy_create_buffer
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
#define yy_set_interactive(is_interactive) \
{ \
if ( ! YY_CURRENT_BUFFER ){ \
@@ -716,10 +627,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
} \
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
#define yy_set_bol(at_bol) \
{ \
if ( ! YY_CURRENT_BUFFER ){\
@@ -729,10 +636,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
} \
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
]])
@@ -747,10 +650,10 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
-static yy_state_type yy_get_previous_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
-static yy_state_type yy_try_NUL_trans M4_YY_PARAMS( yy_state_type current_state M4_YY_PROTO_LAST_ARG);
-static int yy_get_next_buffer M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
-static void yy_fatal_error M4_YY_PARAMS( yyconst char msg[] M4_YY_PROTO_LAST_ARG ) __dead2;
+static yy_state_type yy_get_previous_state ( M4_YY_PROTO_ONLY_ARG );
+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state M4_YY_PROTO_LAST_ARG);
+static int yy_get_next_buffer ( M4_YY_PROTO_ONLY_ARG );
+static void yynoreturn yy_fatal_error ( const char* msg M4_YY_PROTO_LAST_ARG ) __dead2;
]])
%endif
@@ -767,10 +670,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
*yy_cp = '\0'; \
%% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \
YY_G(yy_c_buf_p) = yy_cp;
-]])
-
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
%% [4.0] data tables for the DFA and the user's section 1 definitions go here
]])
@@ -823,8 +722,8 @@ struct yyguts_t
size_t yy_buffer_stack_max; /**< capacity of stack. */
YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
char yy_hold_char;
- yy_size_t yy_n_chars;
- yy_size_t yyleng_r;
+ int yy_n_chars;
+ int yyleng_r;
char *yy_c_buf_p;
int yy_init;
int yy_start;
@@ -882,7 +781,7 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
%if-c-only
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
-static int yy_init_globals M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static int yy_init_globals ( M4_YY_PROTO_ONLY_ARG );
]])
%endif
@@ -903,9 +802,9 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
]])
]])
-int yylex_init M4_YY_PARAMS(yyscan_t* scanner);
+int yylex_init (yyscan_t* scanner);
-int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
+int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
%endif
@@ -916,74 +815,74 @@ int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner
m4_ifdef( [[M4_YY_NO_DESTROY]],,
[[
-int yylex_destroy M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+int yylex_destroy ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,
[[
-int yyget_debug M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+int yyget_debug ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,
[[
-void yyset_debug M4_YY_PARAMS( int debug_flag M4_YY_PROTO_LAST_ARG );
+void yyset_debug ( int debug_flag M4_YY_PROTO_LAST_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,
[[
-YY_EXTRA_TYPE yyget_extra M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+YY_EXTRA_TYPE yyget_extra ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_EXTRA]],,
[[
-void yyset_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined M4_YY_PROTO_LAST_ARG );
+void yyset_extra ( YY_EXTRA_TYPE user_defined M4_YY_PROTO_LAST_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_IN]],,
[[
-FILE *yyget_in M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+FILE *yyget_in ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_IN]],,
[[
-void yyset_in M4_YY_PARAMS( FILE * in_str M4_YY_PROTO_LAST_ARG );
+void yyset_in ( FILE * _in_str M4_YY_PROTO_LAST_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_OUT]],,
[[
-FILE *yyget_out M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+FILE *yyget_out ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_OUT]],,
[[
-void yyset_out M4_YY_PARAMS( FILE * out_str M4_YY_PROTO_LAST_ARG );
+void yyset_out ( FILE * _out_str M4_YY_PROTO_LAST_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_LENG]],,
[[
-yy_size_t yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ int yyget_leng ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_TEXT]],,
[[
-char *yyget_text M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+char *yyget_text ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_GET_LINENO]],,
[[
-int yyget_lineno M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+int yyget_lineno ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
[[
-void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
+void yyset_lineno ( int _line_number M4_YY_PROTO_LAST_ARG );
]])
m4_ifdef( [[M4_YY_REENTRANT]],
[[
m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
[[
-int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+int yyget_column ( M4_YY_PROTO_ONLY_ARG );
]])
]])
@@ -991,28 +890,28 @@ m4_ifdef( [[M4_YY_REENTRANT]],
[[
m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
[[
-void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );
+void yyset_column ( int _column_no M4_YY_PROTO_LAST_ARG );
]])
]])
%if-bison-bridge
m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
[[
-YYSTYPE * yyget_lval M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+YYSTYPE * yyget_lval ( M4_YY_PROTO_ONLY_ARG );
]])
-void yyset_lval M4_YY_PARAMS( YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG );
+void yyset_lval ( YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG );
m4_ifdef( [[<M4_YY_BISON_LLOC>]],
[[
m4_ifdef( [[M4_YY_NO_GET_LLOC]],,
[[
- YYLTYPE *yyget_lloc M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ YYLTYPE *yyget_lloc ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_SET_LLOC]],,
[[
- void yyset_lloc M4_YY_PARAMS( YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG );
+ void yyset_lloc ( YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG );
]])
]])
%endif
@@ -1023,37 +922,37 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
-extern "C" int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+extern "C" int yywrap ( M4_YY_PROTO_ONLY_ARG );
#else
-extern int yywrap M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+extern int yywrap ( M4_YY_PROTO_ONLY_ARG );
#endif
#endif
%not-for-header
+#ifndef YY_NO_UNPUT
m4_ifdef( [[M4_YY_NO_UNPUT]],,
[[
-#ifndef YY_NO_UNPUT
- static void yyunput M4_YY_PARAMS( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG);
-#endif
+ static void yyunput ( int c, char *buf_ptr M4_YY_PROTO_LAST_ARG);
]])
+#endif
%ok-for-header
%endif
#ifndef yytext_ptr
-static void yy_flex_strncpy M4_YY_PARAMS( char *, yyconst char *, int M4_YY_PROTO_LAST_ARG);
+static void yy_flex_strncpy ( char *, const char *, int M4_YY_PROTO_LAST_ARG);
#endif
#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen M4_YY_PARAMS( yyconst char * M4_YY_PROTO_LAST_ARG);
+static int yy_flex_strlen ( const char * M4_YY_PROTO_LAST_ARG);
#endif
#ifndef YY_NO_INPUT
%if-c-only Standard (non-C++) definition
%not-for-header
#ifdef __cplusplus
-static int yyinput M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static int yyinput ( M4_YY_PROTO_ONLY_ARG );
#else
-static int input M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+static int input ( M4_YY_PROTO_ONLY_ARG );
#endif
%ok-for-header
%endif
@@ -1079,15 +978,15 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
[[
- static void yy_push_state M4_YY_PARAMS( int new_state M4_YY_PROTO_LAST_ARG);
+ static void yy_push_state ( int _new_state M4_YY_PROTO_LAST_ARG);
]])
m4_ifdef( [[M4_YY_NO_POP_STATE]],,
[[
- static void yy_pop_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ static void yy_pop_state ( M4_YY_PROTO_ONLY_ARG );
]])
m4_ifdef( [[M4_YY_NO_TOP_STATE]],,
[[
- static int yy_top_state M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
+ static int yy_top_state ( M4_YY_PROTO_ONLY_ARG );
]])
]])
@@ -1101,7 +1000,12 @@ m4_define( [[M4_YY_NO_TOP_STATE]])
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
#define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
#endif
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
@@ -1112,7 +1016,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
/* 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
%if-c++-only C++ definition
#define ECHO LexerOutput( yytext, yyleng )
@@ -1130,7 +1034,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
%% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \
\
%if-c++-only C++ definition \
- if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
+ if ( (int)(result = LexerInput( (char *) buf, max_size )) < 0 ) \
YY_FATAL_ERROR( "input in flex scanner failed" );
%endif
@@ -1170,15 +1074,15 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
m4preproc_include(`tables_shared.h')
/* Load the DFA tables from the given stream. */
-int yytables_fload M4_YY_PARAMS(FILE * fp M4_YY_PROTO_LAST_ARG);
+int yytables_fload (FILE * fp M4_YY_PROTO_LAST_ARG);
/* Unload the tables from memory. */
-int yytables_destroy M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG);
+int yytables_destroy (M4_YY_PROTO_ONLY_ARG);
%not-for-header
/** Describes a mapping from a serialized table id to its deserialized state in
* this scanner. This is the bridge between our "generic" deserialization code
- * and the specifics of this scanner.
+ * and the specifics of this scanner.
*/
struct yytbl_dmap {
enum yytbl_id dm_id;/**< table identifier */
@@ -1212,8 +1116,8 @@ struct yytbl_reader {
%if-c-only Standard (non-C++) definition
-m4_define( [[M4_YY_LEX_PROTO]], [[M4_YY_PARAMS(M4_YY_PROTO_ONLY_ARG)]])
-m4_define( [[M4_YY_LEX_DECLARATION]], [[YYFARGS0(void)]])
+m4_define( [[M4_YY_LEX_PROTO]], [[(M4_YY_PROTO_ONLY_ARG)]])
+m4_define( [[M4_YY_LEX_DECLARATION]], [[(M4_YY_DEF_ONLY_ARG)]])
m4_ifdef( [[M4_YY_BISON_LVAL]],
[[
@@ -1221,7 +1125,7 @@ m4_ifdef( [[M4_YY_BISON_LVAL]],
m4_dnl accept the lval parameter.
m4_define( [[M4_YY_LEX_PROTO]], [[\]]
- [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
+ [[(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
[[YYFARGS1(YYSTYPE *,yylval_param)]])
]])
@@ -1231,7 +1135,7 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
m4_dnl Locations are used. yylex should also accept the ylloc parameter.
m4_define( [[M4_YY_LEX_PROTO]], [[\]]
- [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
+ [[(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
[[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])
]])
@@ -1259,7 +1163,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
/* Code executed at the end of each rule. */
#ifndef YY_BREAK
-#define YY_BREAK break;
+#define YY_BREAK /*LINTED*/break;
#endif
]])
@@ -1290,8 +1194,6 @@ m4_ifdef( [[M4_YY_NOT_REENTRANT]],
]])
]])
-%% [7.0] user's declarations go here
-
m4_ifdef( [[M4_YY_BISON_LVAL]],
[[
yylval = yylval_param;
@@ -1327,7 +1229,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
yyin = stdin;
%endif
%if-c++-only
- yyin = & std::cin;
+ yyin.rdbuf(std::cin.rdbuf());
%endif
if ( ! yyout )
@@ -1335,7 +1237,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
yyout = stdout;
%endif
%if-c++-only
- yyout = & std::cout;
+ yyout.rdbuf(std::cout.rdbuf());
%endif
if ( ! YY_CURRENT_BUFFER ) {
@@ -1347,7 +1249,10 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
}
- while ( 1 ) /* loops until end-of-file is reached */
+ {
+%% [7.0] user's declarations go here
+
+ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
%% [8.0] yymore()-related code goes here
yy_cp = YY_G(yy_c_buf_p);
@@ -1398,7 +1303,12 @@ do_action: /* This label is used only to access EOF actions. */
* back-up) that will match for the new input source.
*/
YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+%if-c-only
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+%endif
+%if-c++-only
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf();
+%endif
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
}
@@ -1504,17 +1414,36 @@ do_action: /* This label is used only to access EOF actions. */
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
+ } /* end of user's declarations */
} /* end of yylex */
%ok-for-header
%if-c++-only
%not-for-header
/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ * This constructor simply maintains backward compatibility.
+ * DEPRECATED
+ */
+yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout ):
+ yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()),
+ yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf())
+{
+ ctor_common();
+}
+
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
*/
-yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
+yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ):
+ yyin(arg_yyin.rdbuf()),
+ yyout(arg_yyout.rdbuf())
+{
+ ctor_common();
+}
+
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
+void yyFlexLexer::ctor_common()
{
- yyin = arg_yyin;
- yyout = arg_yyout;
yy_c_buf_p = 0;
yy_init = 0;
yy_start = 0;
@@ -1531,7 +1460,7 @@ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
yy_start_stack_ptr = yy_start_stack_depth = 0;
yy_start_stack = NULL;
- yy_buffer_stack = 0;
+ yy_buffer_stack = NULL;
yy_buffer_stack_top = 0;
yy_buffer_stack_max = 0;
@@ -1557,16 +1486,29 @@ yyFlexLexer::~yyFlexLexer()
/* The contents of this function are C++ specific, so the YY_G macro is not used.
*/
+void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out )
+{
+ // was if( new_in )
+ yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
+ yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);
+
+ // was if( new_out )
+ yyout.rdbuf(new_out.rdbuf());
+}
+
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
{
- if ( new_in )
- {
- yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
- yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);
- }
+ if( ! new_in ) {
+ new_in = &yyin;
+ }
- if ( new_out )
- yyout = new_out;
+ if ( ! new_out ) {
+ new_out = &yyout;
+ }
+
+ switch_streams(*new_in, *new_out);
}
#ifdef YY_INTERACTIVE
@@ -1575,33 +1517,33 @@ int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
int yyFlexLexer::LexerInput( char* buf, int max_size )
#endif
{
- if ( yyin->eof() || yyin->fail() )
+ if ( yyin.eof() || yyin.fail() )
return 0;
#ifdef YY_INTERACTIVE
- yyin->get( buf[0] );
+ yyin.get( buf[0] );
- if ( yyin->eof() )
+ if ( yyin.eof() )
return 0;
- if ( yyin->bad() )
+ if ( yyin.bad() )
return -1;
return 1;
#else
- (void) yyin->read( buf, max_size );
+ (void) yyin.read( buf, max_size );
- if ( yyin->bad() )
+ if ( yyin.bad() )
return -1;
else
- return yyin->gcount();
+ return yyin.gcount();
#endif
}
void yyFlexLexer::LexerOutput( const char* buf, int size )
{
- (void) yyout->write( buf, size );
+ (void) yyout.write( buf, size );
}
%ok-for-header
%endif
@@ -1616,7 +1558,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
* EOB_ACT_END_OF_FILE - end of file
*/
%if-c-only
-static int yy_get_next_buffer YYFARGS0(void)
+static int yy_get_next_buffer (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
int yyFlexLexer::yy_get_next_buffer()
@@ -1654,7 +1596,7 @@ int yyFlexLexer::yy_get_next_buffer()
/* Try to read more data. */
/* First move last chars to start of buffer. */
- number_to_move = (int) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr)) - 1;
+ number_to_move = (int) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr) - 1);
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
@@ -1667,7 +1609,7 @@ int yyFlexLexer::yy_get_next_buffer()
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 )
@@ -1686,7 +1628,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
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;
@@ -1696,11 +1638,11 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
b->yy_ch_buf = (char *)
/* Include room in for 2 EOB chars. */
yyrealloc( (void *) b->yy_ch_buf,
- b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );
+ (yy_size_t) (b->yy_buf_size + 2) M4_YY_CALL_LAST_ARG );
}
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(
@@ -1742,13 +1684,15 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
else
ret_val = EOB_ACT_CONTINUE_SCAN;
- if ((yy_size_t) (YY_G(yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ if ((YY_G(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_G(yy_n_chars) + number_to_move + (YY_G(yy_n_chars) >> 1);
+ int new_size = YY_G(yy_n_chars) + number_to_move + (YY_G(yy_n_chars) >> 1);
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
- (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, new_size M4_YY_CALL_LAST_ARG );
+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size M4_YY_CALL_LAST_ARG );
if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+ /* "- 2" to take care of EOB's */
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
}
YY_G(yy_n_chars) += number_to_move;
@@ -1765,7 +1709,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
%if-c-only
%not-for-header
- static yy_state_type yy_get_previous_state YYFARGS0(void)
+ static yy_state_type yy_get_previous_state (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
yy_state_type yyFlexLexer::yy_get_previous_state()
@@ -1807,14 +1751,13 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
}
+#ifndef YY_NO_UNPUT
%if-c-only
m4_ifdef( [[M4_YY_NO_UNPUT]],,
[[
-#ifndef YY_NO_UNPUT
static void yyunput YYFARGS2( int,c, char *,yy_bp)
%endif
%if-c++-only
-#ifndef YY_NO_UNPUT
void yyFlexLexer::yyunput( int c, char* yy_bp)
%endif
{
@@ -1829,7 +1772,7 @@ m4_ifdef( [[M4_YY_NO_UNPUT]],,
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_G(yy_n_chars) + 2;
+ int number_to_move = YY_G(yy_n_chars) + 2;
char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
char *source =
@@ -1841,7 +1784,7 @@ m4_ifdef( [[M4_YY_NO_UNPUT]],,
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
- YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+ YY_G(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" );
@@ -1861,17 +1804,17 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
YY_G(yy_hold_char) = *yy_cp;
YY_G(yy_c_buf_p) = yy_cp;
}
-#endif /* ifndef YY_NO_UNPUT */
%if-c-only
]])
%endif
+#endif
%if-c-only
#ifndef YY_NO_INPUT
#ifdef __cplusplus
- static int yyinput YYFARGS0(void)
+ static int yyinput (M4_YY_DEF_ONLY_ARG)
#else
- static int input YYFARGS0(void)
+ static int input (M4_YY_DEF_ONLY_ARG)
#endif
%endif
@@ -1896,7 +1839,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
else
{ /* need more input */
- yy_size_t offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);
+ int offset = (int) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr));
++YY_G(yy_c_buf_p);
switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )
@@ -1920,7 +1863,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
case EOB_ACT_END_OF_FILE:
{
if ( yywrap( M4_YY_CALL_ONLY_ARG ) )
- return EOF;
+ return 0;
if ( ! YY_G(yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
@@ -1959,7 +1902,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
void yyrestart YYFARGS1( FILE *,input_file)
%endif
%if-c++-only
- void yyFlexLexer::yyrestart( std::istream* input_file )
+ void yyFlexLexer::yyrestart( std::istream& input_file )
%endif
{
M4_YY_DECL_GUTS_VAR();
@@ -1974,6 +1917,21 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
}
+%if-c++-only
+/** Delegate to the new version that takes an istream reference.
+ * @param input_file A readable stream.
+ * M4_YY_DOC_PARAM
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+void yyFlexLexer::yyrestart( std::istream* input_file )
+{
+ if( ! input_file ) {
+ input_file = &yyin;
+ }
+ yyrestart( *input_file );
+}
+%endif
+
/** Switch to a different input buffer.
* @param new_buffer The new input buffer.
* M4_YY_DOC_PARAM
@@ -2017,7 +1975,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
%if-c-only
-static void yy_load_buffer_state YYFARGS0(void)
+static void yy_load_buffer_state (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
void yyFlexLexer::yy_load_buffer_state()
@@ -2026,7 +1984,12 @@ static void yy_load_buffer_state YYFARGS0(void)
M4_YY_DECL_GUTS_VAR();
YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
YY_G(yytext_ptr) = YY_G(yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+%if-c-only
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+%endif
+%if-c++-only
+ yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file);
+%endif
YY_G(yy_hold_char) = *YY_G(yy_c_buf_p);
}
@@ -2040,7 +2003,7 @@ static void yy_load_buffer_state YYFARGS0(void)
YY_BUFFER_STATE yy_create_buffer YYFARGS2( FILE *,file, int ,size)
%endif
%if-c++-only
- YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size )
%endif
{
YY_BUFFER_STATE b;
@@ -2055,7 +2018,7 @@ static void yy_load_buffer_state YYFARGS0(void)
/* yy_ch_buf has to be 2 characters longer than the size given because
* we need to put in 2 end-of-buffer characters.
*/
- b->yy_ch_buf = (char *) yyalloc( b->yy_buf_size + 2 M4_YY_CALL_LAST_ARG );
+ b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) M4_YY_CALL_LAST_ARG );
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
@@ -2066,6 +2029,19 @@ static void yy_load_buffer_state YYFARGS0(void)
return b;
}
+%if-c++-only
+/** Delegate creation of buffers to the new version that takes an istream reference.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ * M4_YY_DOC_PARAM
+ * @return the allocated buffer state.
+ */
+ YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
+{
+ return yy_create_buffer( *file, size );
+}
+%endif
+
/** Destroy the buffer.
* @param b a buffer created with yy_create_buffer()
* M4_YY_DOC_PARAM
@@ -2100,7 +2076,7 @@ static void yy_load_buffer_state YYFARGS0(void)
static void yy_init_buffer YYFARGS2( YY_BUFFER_STATE ,b, FILE *,file)
%endif
%if-c++-only
- void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
+ void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file )
%endif
{
@@ -2109,7 +2085,12 @@ static void yy_load_buffer_state YYFARGS0(void)
yy_flush_buffer( b M4_YY_CALL_LAST_ARG);
+%if-c-only
b->yy_input_file = file;
+%endif
+%if-c++-only
+ b->yy_input_file = file.rdbuf();
+%endif
b->yy_fill_buffer = 1;
/* If b is the current buffer, then yy_init_buffer was _probably_
@@ -2222,7 +2203,7 @@ void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
* M4_YY_DOC_PARAM
*/
%if-c-only
-void yypop_buffer_state YYFARGS0(void)
+void yypop_buffer_state (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
void yyFlexLexer::yypop_buffer_state (void)
@@ -2250,7 +2231,7 @@ void yyFlexLexer::yypop_buffer_state (void)
* Guarantees space for at least one push.
*/
%if-c-only
-static void yyensure_buffer_stack YYFARGS0(void)
+static void yyensure_buffer_stack (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
void yyFlexLexer::yyensure_buffer_stack(void)
@@ -2265,16 +2246,16 @@ void yyFlexLexer::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;
+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
(num_to_alloc * sizeof(struct yy_buffer_state*)
M4_YY_CALL_LAST_ARG);
if ( ! YY_G(yy_buffer_stack) )
YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-
-
+
+
memset(YY_G(yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-
+
YY_G(yy_buffer_stack_max) = num_to_alloc;
YY_G(yy_buffer_stack_top) = 0;
return;
@@ -2283,7 +2264,7 @@ void yyFlexLexer::yyensure_buffer_stack(void)
if (YY_G(yy_buffer_stack_top) >= (YY_G(yy_buffer_stack_max)) - 1){
/* Increase the buffer to prepare for a possible push. */
- int grow_size = 8 /* arbitrary grow size */;
+ yy_size_t grow_size = 8 /* arbitrary grow size */;
num_to_alloc = YY_G(yy_buffer_stack_max) + grow_size;
YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
@@ -2310,7 +2291,7 @@ m4_ifdef( [[M4_YY_NO_SCAN_BUFFER]],,
* @param base the character buffer
* @param size the size in bytes of the character buffer
* M4_YY_DOC_PARAM
- * @return the newly allocated buffer state object.
+ * @return the newly allocated buffer state object.
*/
YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)
{
@@ -2321,16 +2302,16 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( 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 ) M4_YY_CALL_LAST_ARG );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
+ b->yy_buf_size = (int) (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;
@@ -2356,11 +2337,11 @@ m4_ifdef( [[M4_YY_NO_SCAN_STRING]],,
* @note If you want to scan bytes that may contain NUL values, then use
* yy_scan_bytes() instead.
*/
-YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *, yystr)
+YY_BUFFER_STATE yy_scan_string YYFARGS1( const char *, yystr)
{
m4_dnl M4_YY_DECL_GUTS_VAR();
- return yy_scan_bytes( yystr, strlen(yystr) M4_YY_CALL_LAST_ARG);
+ return yy_scan_bytes( yystr, (int) strlen(yystr) M4_YY_CALL_LAST_ARG);
}
%endif
]])
@@ -2376,16 +2357,16 @@ m4_ifdef( [[M4_YY_NO_SCAN_BYTES]],,
* M4_YY_DOC_PARAM
* @return the newly allocated buffer state object.
*/
-YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yybytes_len)
+YY_BUFFER_STATE yy_scan_bytes YYFARGS2( const char *,yybytes, int ,_yybytes_len)
{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
- yy_size_t i;
+ int i;
m4_dnl M4_YY_DECL_GUTS_VAR();
/* 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 M4_YY_CALL_LAST_ARG );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
@@ -2413,10 +2394,10 @@ YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yyb
m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
[[
%if-c-only
- static void yy_push_state YYFARGS1( int ,new_state)
+ static void yy_push_state YYFARGS1( int ,_new_state)
%endif
%if-c++-only
- void yyFlexLexer::yy_push_state( int new_state )
+ void yyFlexLexer::yy_push_state( int _new_state )
%endif
{
M4_YY_DECL_GUTS_VAR();
@@ -2425,7 +2406,7 @@ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
yy_size_t new_size;
YY_G(yy_start_stack_depth) += YY_START_STACK_INCR;
- new_size = YY_G(yy_start_stack_depth) * sizeof( int );
+ new_size = (yy_size_t) YY_G(yy_start_stack_depth) * sizeof( int );
if ( ! YY_G(yy_start_stack) )
YY_G(yy_start_stack) = (int *) yyalloc( new_size M4_YY_CALL_LAST_ARG );
@@ -2440,7 +2421,7 @@ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;
- BEGIN(new_state);
+ BEGIN(_new_state);
}
]])
@@ -2448,7 +2429,7 @@ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
m4_ifdef( [[M4_YY_NO_POP_STATE]],,
[[
%if-c-only
- static void yy_pop_state YYFARGS0(void)
+ static void yy_pop_state (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
void yyFlexLexer::yy_pop_state()
@@ -2466,7 +2447,7 @@ m4_ifdef( [[M4_YY_NO_POP_STATE]],,
m4_ifdef( [[M4_YY_NO_TOP_STATE]],,
[[
%if-c-only
- static int yy_top_state YYFARGS0(void)
+ static int yy_top_state (M4_YY_DEF_ONLY_ARG)
%endif
%if-c++-only
int yyFlexLexer::yy_top_state()
@@ -2482,15 +2463,16 @@ m4_ifdef( [[M4_YY_NO_TOP_STATE]],,
#endif
%if-c-only
-static void yy_fatal_error YYFARGS1(yyconst char*, msg)
+static void yynoreturn yy_fatal_error YYFARGS1(const char*, msg)
{
- m4_dnl M4_YY_DECL_GUTS_VAR();
- (void) fprintf( stderr, "%s\n", msg );
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
+ fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
}
%endif
%if-c++-only
-void yyFlexLexer::LexerError( yyconst char msg[] )
+void yyFlexLexer::LexerError( const char* msg )
{
M4_YY_DECL_GUTS_VAR();
std::cerr << msg << std::endl;
@@ -2526,7 +2508,7 @@ m4_ifdef( [[M4_YY_NO_GET_EXTRA]],,
/** Get the user-defined data for this scanner.
* M4_YY_DOC_PARAM
*/
-YY_EXTRA_TYPE yyget_extra YYFARGS0(void)
+YY_EXTRA_TYPE yyget_extra (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yyextra;
@@ -2539,10 +2521,10 @@ m4_ifdef( [[M4_YY_NO_GET_LINENO]],,
/** Get the current line number.
* M4_YY_DOC_PARAM
*/
-int yyget_lineno YYFARGS0(void)
+int yyget_lineno (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
-
+
m4_ifdef( [[M4_YY_REENTRANT]],
[[
if (! YY_CURRENT_BUFFER)
@@ -2559,10 +2541,10 @@ m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
/** Get the current column number.
* M4_YY_DOC_PARAM
*/
-int yyget_column YYFARGS0(void)
+int yyget_column (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
-
+
m4_ifdef( [[M4_YY_REENTRANT]],
[[
if (! YY_CURRENT_BUFFER)
@@ -2578,7 +2560,7 @@ m4_ifdef( [[M4_YY_NO_GET_IN]],,
/** Get the input stream.
* M4_YY_DOC_PARAM
*/
-FILE *yyget_in YYFARGS0(void)
+FILE *yyget_in (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yyin;
@@ -2590,7 +2572,7 @@ m4_ifdef( [[M4_YY_NO_GET_OUT]],,
/** Get the output stream.
* M4_YY_DOC_PARAM
*/
-FILE *yyget_out YYFARGS0(void)
+FILE *yyget_out (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yyout;
@@ -2602,7 +2584,7 @@ m4_ifdef( [[M4_YY_NO_GET_LENG]],,
/** Get the length of the current token.
* M4_YY_DOC_PARAM
*/
-yy_size_t yyget_leng YYFARGS0(void)
+int yyget_leng (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yyleng;
@@ -2614,7 +2596,7 @@ yy_size_t yyget_leng YYFARGS0(void)
*/
m4_ifdef( [[M4_YY_NO_GET_TEXT]],,
[[
-char *yyget_text YYFARGS0(void)
+char *yyget_text (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yytext;
@@ -2639,10 +2621,10 @@ void yyset_extra YYFARGS1( YY_EXTRA_TYPE ,user_defined)
m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
[[
/** Set the current line number.
- * @param line_number
+ * @param _line_number line number
* M4_YY_DOC_PARAM
*/
-void yyset_lineno YYFARGS1( int ,line_number)
+void yyset_lineno YYFARGS1( int ,_line_number)
{
M4_YY_DECL_GUTS_VAR();
@@ -2652,7 +2634,7 @@ void yyset_lineno YYFARGS1( int ,line_number)
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
]])
- yylineno = line_number;
+ yylineno = _line_number;
}
]])
@@ -2661,10 +2643,10 @@ m4_ifdef( [[M4_YY_REENTRANT]],
m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
[[
/** Set the current column.
- * @param line_number
+ * @param _column_no column number
* M4_YY_DOC_PARAM
*/
-void yyset_column YYFARGS1( int , column_no)
+void yyset_column YYFARGS1( int , _column_no)
{
M4_YY_DECL_GUTS_VAR();
@@ -2674,7 +2656,7 @@ void yyset_column YYFARGS1( int , column_no)
if (! YY_CURRENT_BUFFER )
YY_FATAL_ERROR( "yyset_column called with no buffer" );
]])
- yycolumn = column_no;
+ yycolumn = _column_no;
}
]])
]])
@@ -2684,30 +2666,30 @@ m4_ifdef( [[M4_YY_NO_SET_IN]],,
[[
/** Set the input stream. This does not discard the current
* input buffer.
- * @param in_str A readable stream.
+ * @param _in_str A readable stream.
* M4_YY_DOC_PARAM
* @see yy_switch_to_buffer
*/
-void yyset_in YYFARGS1( FILE * ,in_str)
+void yyset_in YYFARGS1( FILE * ,_in_str)
{
M4_YY_DECL_GUTS_VAR();
- yyin = in_str ;
+ yyin = _in_str ;
}
]])
m4_ifdef( [[M4_YY_NO_SET_OUT]],,
[[
-void yyset_out YYFARGS1( FILE * ,out_str)
+void yyset_out YYFARGS1( FILE * ,_out_str)
{
M4_YY_DECL_GUTS_VAR();
- yyout = out_str ;
+ yyout = _out_str ;
}
]])
m4_ifdef( [[M4_YY_NO_GET_DEBUG]],,
[[
-int yyget_debug YYFARGS0(void)
+int yyget_debug (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yy_flex_debug;
@@ -2716,10 +2698,10 @@ int yyget_debug YYFARGS0(void)
m4_ifdef( [[M4_YY_NO_SET_DEBUG]],,
[[
-void yyset_debug YYFARGS1( int ,bdebug)
+void yyset_debug YYFARGS1( int ,_bdebug)
{
M4_YY_DECL_GUTS_VAR();
- yy_flex_debug = bdebug ;
+ yy_flex_debug = _bdebug ;
}
]])
%endif
@@ -2730,7 +2712,7 @@ void yyset_debug YYFARGS1( int ,bdebug)
%if-bison-bridge
m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
[[
-YYSTYPE * yyget_lval YYFARGS0(void)
+YYSTYPE * yyget_lval (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yylval;
@@ -2750,7 +2732,7 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
[[
m4_ifdef( [[M4_YY_NO_GET_LLOC]],,
[[
-YYLTYPE *yyget_lloc YYFARGS0(void)
+YYLTYPE *yyget_lloc (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
return yylloc;
@@ -2776,14 +2758,7 @@ void yyset_lloc YYFARGS1( YYLTYPE * ,yylloc_param)
* the ONLY reentrant function that doesn't take the scanner as the last argument.
* That's why we explicitly handle the declaration, instead of using our macros.
*/
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
-[[
-int yylex_init( ptr_yy_globals )
- yyscan_t* ptr_yy_globals;
-]],
-[[
int yylex_init(yyscan_t* ptr_yy_globals)
-]])
{
if (ptr_yy_globals == NULL){
errno = EINVAL;
@@ -2811,15 +2786,7 @@ int yylex_init(yyscan_t* ptr_yy_globals)
* The user defined value in the first argument will be available to yyalloc in
* the yyextra field.
*/
-m4_ifdef( [[M4_YY_NO_ANSI_FUNC_DEFS]],
-[[
-int yylex_init_extra( yy_user_defined, ptr_yy_globals )
- YY_EXTRA_TYPE yy_user_defined;
- yyscan_t* ptr_yy_globals;
-]],
-[[
int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
-]])
{
struct yyguts_t dummy_yyguts;
@@ -2829,28 +2796,28 @@ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
errno = EINVAL;
return 1;
}
-
+
*ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
-
+
if (*ptr_yy_globals == NULL){
errno = ENOMEM;
return 1;
}
-
+
/* By setting to 0xAA, we expose bugs in
yy_init_globals. Leave at 0x00 for releases. */
memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
-
+
yyset_extra (yy_user_defined, *ptr_yy_globals);
-
+
return yy_init_globals ( *ptr_yy_globals );
}
%endif if-c-only
-
+%# Actually, that ended an if-rentrant section
%if-c-only
-static int yy_init_globals YYFARGS0(void)
+static int yy_init_globals (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
/* Initialization is the same as for the non-reentrant scanner.
@@ -2865,10 +2832,10 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
yylineno = 1;
]])
]])
- YY_G(yy_buffer_stack) = 0;
+ YY_G(yy_buffer_stack) = NULL;
YY_G(yy_buffer_stack_top) = 0;
YY_G(yy_buffer_stack_max) = 0;
- YY_G(yy_c_buf_p) = (char *) 0;
+ YY_G(yy_c_buf_p) = NULL;
YY_G(yy_init) = 0;
YY_G(yy_start) = 0;
@@ -2899,8 +2866,8 @@ m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
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
@@ -2913,7 +2880,7 @@ m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
%if-c-only SNIP! this currently causes conflicts with the c++ scanner
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy YYFARGS0(void)
+int yylex_destroy (M4_YY_DEF_ONLY_ARG)
{
M4_YY_DECL_GUTS_VAR();
@@ -2965,8 +2932,11 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
#ifndef yytext_ptr
-static void yy_flex_strncpy YYFARGS3( char*,s1, yyconst char *,s2, int,n)
+static void yy_flex_strncpy YYFARGS3( char*,s1, const char *,s2, int,n)
{
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
+
int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
@@ -2977,7 +2947,7 @@ static void yy_flex_strncpy YYFARGS3( char*,s1, yyconst char *,s2, int,n)
m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
[[
#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YYFARGS1( yyconst char *,s)
+static int yy_flex_strlen YYFARGS1( const char *,s)
{
int n;
for ( n = 0; s[n]; ++n )
@@ -2992,7 +2962,9 @@ m4_ifdef( [[M4_YY_NO_FLEX_ALLOC]],,
[[
void *yyalloc YYFARGS1( yy_size_t ,size)
{
- return (void *) malloc( size );
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
+ return malloc(size);
}
]])
@@ -3000,6 +2972,9 @@ m4_ifdef( [[M4_YY_NO_FLEX_REALLOC]],,
[[
void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size)
{
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
+
/* The cast to (char *) in the following accommodates both
* implementations that use char* generic pointers, and those
* that use void* generic pointers. It works with the latter
@@ -3007,7 +2982,7 @@ void *yyrealloc YYFARGS2( 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);
}
]])
@@ -3015,6 +2990,8 @@ m4_ifdef( [[M4_YY_NO_FLEX_FREE]],,
[[
void yyfree YYFARGS1( void *,ptr)
{
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
}
]])
@@ -3029,7 +3006,7 @@ static int yytbl_read8 (void *v, struct yytbl_reader * rd)
errno = EIO;
return -1;
}
- rd->bread += sizeof(flex_uint8_t);
+ rd->bread += (flex_uint32_t) sizeof(flex_uint8_t);
return 0;
}
@@ -3041,7 +3018,7 @@ static int yytbl_read16 (void *v, struct yytbl_reader * rd)
return -1;
}
*((flex_uint16_t *) v) = ntohs (*((flex_uint16_t *) v));
- rd->bread += sizeof(flex_uint16_t);
+ rd->bread += (flex_uint32_t) sizeof(flex_uint16_t);
return 0;
}
@@ -3053,14 +3030,14 @@ static int yytbl_read32 (void *v, struct yytbl_reader * rd)
return -1;
}
*((flex_uint32_t *) v) = ntohl (*((flex_uint32_t *) v));
- rd->bread += sizeof(flex_uint32_t);
+ rd->bread += (flex_uint32_t) sizeof(flex_uint32_t);
return 0;
}
/** Read the header */
static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *, rd)
{
- int bytes;
+ size_t bytes;
memset (th, 0, sizeof (struct yytbl_hdr));
if (yytbl_read32 (&(th->th_magic), rd) != 0)
@@ -3096,7 +3073,7 @@ static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *
return -1;
}
else
- rd->bread += bytes;
+ rd->bread += (flex_uint32_t) bytes;
th->th_name = th->th_version + strlen (th->th_version) + 1;
return 0;
@@ -3109,15 +3086,18 @@ static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *
static struct yytbl_dmap *yytbl_dmap_lookup YYFARGS2(struct yytbl_dmap *, dmap,
int, id)
{
+ M4_YY_DECL_GUTS_VAR();
+ M4_YY_NOOP_GUTS_VAR();
+
while (dmap->dm_id)
- if (dmap->dm_id == id)
+ if ((int)(dmap->dm_id) == id)
return dmap;
else
dmap++;
return NULL;
}
-/** Read a table while mapping its contents to the local array.
+/** Read a table while mapping its contents to the local array.
* @param dmap used to performing mapping
* @return 0 on success
*/
@@ -3162,7 +3142,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
if(M4_YY_TABLES_VERIFY)
/* We point to the array itself */
- p = dmap->dm_arr;
+ p = dmap->dm_arr;
else
/* We point to the address of a pointer. */
*dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG);
@@ -3209,7 +3189,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
rv = yytbl_read8 (&t8, rd);
t32 = t8;
break;
- default:
+ default:
YY_FATAL_ERROR( "invalid td_flags" ); /* TODO: not fatal. */
return -1;
}
@@ -3266,7 +3246,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
YY_FATAL_ERROR( "transition table not found" ); /* TODO: not fatal. */
return -1;
}
-
+
if( M4_YY_TABLES_VERIFY)
v = &(((struct yy_trans_info *) (transdmap->dm_arr))[t32]);
else
@@ -3277,7 +3257,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
YY_FATAL_ERROR( "tables verification failed at YYTD_PTRANS" );
}else
((struct yy_trans_info **) p)[0] = v;
-
+
/* increment p */
p = (struct yy_trans_info **) p + 1;
}
@@ -3392,8 +3372,8 @@ int yytables_fload YYFARGS1(FILE *, fp)
}
/** Destroy the loaded tables, freeing memory, etc.. */
-int yytables_destroy YYFARGS0(void)
-{
+int yytables_destroy (M4_YY_DEF_ONLY_ARG)
+{
struct yytbl_dmap *dmap=0;
if(!M4_YY_TABLES_VERIFY){
@@ -3416,7 +3396,7 @@ int yytables_destroy YYFARGS0(void)
m4_ifdef([[M4_YY_MAIN]], [[
-int main M4_YY_PARAMS(void);
+int main (void);
int main ()
{
@@ -3450,4 +3430,5 @@ m4_ifdef( [[M4_YY_IN_HEADER]],
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
+m4preproc_undivert(1)
]])
diff --git a/contrib/flex/flexdef.h b/contrib/flex/src/flexdef.h
index d37a50929aee..fb7a7df29186 100644
--- a/contrib/flex/flexdef.h
+++ b/contrib/flex/src/flexdef.h
@@ -39,29 +39,14 @@
#include <config.h>
#endif
-/* AIX requires this to be the first thing in the file. */
-#ifndef __GNUC__
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef _AIX
- #pragma alloca
-# else
-# ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-# endif
-# endif
-# endif
-#endif
-
-#ifdef STDC_HEADERS
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <setjmp.h>
#include <ctype.h>
+#include <libgen.h> /* for XPG version of basename(3) */
#include <string.h>
-#endif
+
#ifdef HAVE_ASSERT_H
#include <assert.h>
#else
@@ -71,28 +56,24 @@ char *alloca ();
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
-#ifdef HAVE_UNISTD_H
+/* Required: dup() and dup2() in <unistd.h> */
#include <unistd.h>
-#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_SYS_PARAMS_H
#include <sys/params.h>
#endif
-#ifdef HAVE_SYS_WAIT_H
+/* Required: stat() in <sys/stat.h> */
+#include <sys/stat.h>
+/* Required: wait() in <sys/wait.h> */
#include <sys/wait.h>
-#endif
-#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
-#else
-#define bool int
-#define true 1
-#define false 0
-#endif
-#ifdef HAVE_REGEX_H
+#include <stdarg.h>
+/* Required: regcomp(), regexec() and regerror() in <regex.h> */
#include <regex.h>
-#endif
+/* Required: strcasecmp() in <strings.h> */
+#include <strings.h>
#include "flexint.h"
/* We use gettext. So, when we write strings which should be translated, we mark them with _() */
@@ -108,33 +89,12 @@ char *alloca ();
/* Always be prepared to generate an 8-bit scanner. */
#define CSIZE 256
-#define Char unsigned char
/* Size of input alphabet - should be size of ASCII set. */
#ifndef DEFAULT_CSIZE
#define DEFAULT_CSIZE 128
#endif
-#ifndef PROTO
-#if defined(__STDC__)
-#define PROTO(proto) proto
-#else
-#define PROTO(proto) ()
-#endif
-#endif
-
-#ifdef VMS
-#ifndef __VMS_POSIX
-#define unlink remove
-#define SHORT_FILE_NAMES
-#endif
-#endif
-
-#ifdef MS_DOS
-#define SHORT_FILE_NAMES
-#endif
-
-
/* Maximum line length we'll have to deal with. */
#define MAXLINE 2048
@@ -148,11 +108,8 @@ char *alloca ();
#define ABS(x) ((x) < 0 ? -(x) : (x))
#endif
-
-/* ANSI C does not guarantee that isascii() is defined */
-#ifndef isascii
-#define isascii(c) ((c) <= 0177)
-#endif
+/* Whether an integer is a power of two */
+#define is_power_of_2(n) ((n) > 0 && ((n) & ((n) - 1)) == 0)
#define unspecified -1
@@ -382,7 +339,7 @@ char *alloca ();
* use_read - if true (-f, -F, or -Cr) then use read() for scanner input;
* otherwise, use fread().
* yytext_is_array - if true (i.e., %array directive), then declare
- * yytext as an array instead of a character pointer. Nice and inefficient.
+ * yytext as a array instead of a character pointer. Nice and inefficient.
* do_yywrap - do yywrap() processing on EOF. If false, EOF treated as
* "no more files".
* csize - size of character set for the scanner we're generating;
@@ -397,6 +354,7 @@ char *alloca ();
* yymore_really_used - whether to treat yymore() as really used, regardless
* of what we think based on references to it in the user's actions.
* reject_really_used - same for REJECT
+ * trace_hex - use hexadecimal numbers in trace/debug outputs instead of octals
*/
extern int printstats, syntaxerror, eofseen, ddebug, trace, nowarn,
@@ -405,13 +363,12 @@ extern int interactive, lex_compat, posix_compat, do_yylineno;
extern int useecs, fulltbl, usemecs, fullspd;
extern int gen_line_dirs, performance_report, backing_up_report;
extern int reentrant, bison_bridge_lval, bison_bridge_lloc;
-extern bool ansi_func_defs, ansi_func_protos;
extern int C_plus_plus, long_align, use_read, yytext_is_array, do_yywrap;
extern int csize;
extern int yymore_used, reject, real_reject, continued_action, in_rule;
extern int yymore_really_used, reject_really_used;
-
+extern int trace_hex;
/* Variables used in the flex input routines:
* datapos - characters on current output line
@@ -446,7 +403,7 @@ extern int yymore_really_used, reject_really_used;
*/
extern int datapos, dataline, linenum;
-extern FILE *skelfile, *yyin, *backing_up_file;
+extern FILE *skelfile, *backing_up_file;
extern const char *skel[];
extern int skel_ind;
extern char *infilename, *outfilename, *headerfilename;
@@ -648,7 +605,7 @@ extern int end_of_buffer_state;
extern int lastccl, *cclmap, *ccllen, *cclng, cclreuse;
extern int current_maxccls, current_max_ccl_tbl_size;
-extern Char *ccltbl;
+extern unsigned char *ccltbl;
/* Variables for miscellaneous information:
@@ -676,62 +633,54 @@ extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
extern int num_backing_up, bol_needed;
-void *allocate_array PROTO ((int, size_t));
-void *reallocate_array PROTO ((void *, int, size_t));
+#ifndef HAVE_REALLOCARRAY
+void *reallocarray(void *, size_t, size_t);
+#endif
-void *flex_alloc PROTO ((size_t));
-void *flex_realloc PROTO ((void *, size_t));
-void flex_free PROTO ((void *));
+void *allocate_array(int, size_t);
+void *reallocate_array(void *, int, size_t);
#define allocate_integer_array(size) \
- (int *) allocate_array( size, sizeof( int ) )
+ allocate_array(size, sizeof(int))
#define reallocate_integer_array(array,size) \
- (int *) reallocate_array( (void *) array, size, sizeof( int ) )
+ reallocate_array((void *) array, size, sizeof(int))
#define allocate_bool_array(size) \
- (bool *) allocate_array( size, sizeof( bool ) )
+ allocate_array(size, sizeof(bool))
#define reallocate_bool_array(array,size) \
- (bool *) reallocate_array( (void *) array, size, sizeof( bool ) )
+ reallocate_array((void *) array, size, sizeof(bool))
#define allocate_int_ptr_array(size) \
- (int **) allocate_array( size, sizeof( int * ) )
+ allocate_array(size, sizeof(int *))
#define allocate_char_ptr_array(size) \
- (char **) allocate_array( size, sizeof( char * ) )
+ allocate_array(size, sizeof(char *))
#define allocate_dfaacc_union(size) \
- (union dfaacc_union *) \
- allocate_array( size, sizeof( union dfaacc_union ) )
+ allocate_array(size, sizeof(union dfaacc_union))
#define reallocate_int_ptr_array(array,size) \
- (int **) reallocate_array( (void *) array, size, sizeof( int * ) )
+ reallocate_array((void *) array, size, sizeof(int *))
#define reallocate_char_ptr_array(array,size) \
- (char **) reallocate_array( (void *) array, size, sizeof( char * ) )
+ reallocate_array((void *) array, size, sizeof(char *))
#define reallocate_dfaacc_union(array, size) \
- (union dfaacc_union *) \
- reallocate_array( (void *) array, size, sizeof( union dfaacc_union ) )
+ reallocate_array((void *) array, size, sizeof(union dfaacc_union))
#define allocate_character_array(size) \
- (char *) allocate_array( size, sizeof( char ) )
+ allocate_array( size, sizeof(char))
#define reallocate_character_array(array,size) \
- (char *) reallocate_array( (void *) array, size, sizeof( char ) )
+ reallocate_array((void *) array, size, sizeof(char))
#define allocate_Character_array(size) \
- (Char *) allocate_array( size, sizeof( Char ) )
+ allocate_array(size, sizeof(unsigned char))
#define reallocate_Character_array(array,size) \
- (Char *) reallocate_array( (void *) array, size, sizeof( Char ) )
-
-
-/* Used to communicate between scanner and parser. The type should really
- * be YYSTYPE, but we can't easily get our hands on it.
- */
-extern int yylval;
+ reallocate_array((void *) array, size, sizeof(unsigned char))
/* External functions that are cross-referenced among the flex source files. */
@@ -739,146 +688,143 @@ extern int yylval;
/* from file ccl.c */
-extern void ccladd PROTO ((int, int)); /* add a single character to a ccl */
-extern int cclinit PROTO ((void)); /* make an empty ccl */
-extern void cclnegate PROTO ((int)); /* negate a ccl */
+extern void ccladd(int, int); /* add a single character to a ccl */
+extern int cclinit(void); /* make an empty ccl */
+extern void cclnegate(int); /* negate a ccl */
extern int ccl_set_diff (int a, int b); /* set difference of two ccls. */
extern int ccl_set_union (int a, int b); /* set union of two ccls. */
/* List the members of a set of characters in CCL form. */
-extern void list_character_set PROTO ((FILE *, int[]));
+extern void list_character_set(FILE *, int[]);
/* from file dfa.c */
/* Check a DFA state for backing up. */
-extern void check_for_backing_up PROTO ((int, int[]));
+extern void check_for_backing_up(int, int[]);
/* Check to see if NFA state set constitutes "dangerous" trailing context. */
-extern void check_trailing_context PROTO ((int *, int, int *, int));
+extern void check_trailing_context(int *, int, int *, int);
/* Construct the epsilon closure of a set of ndfa states. */
-extern int *epsclosure PROTO ((int *, int *, int[], int *, int *));
+extern int *epsclosure(int *, int *, int[], int *, int *);
/* Increase the maximum number of dfas. */
-extern void increase_max_dfas PROTO ((void));
+extern void increase_max_dfas(void);
-extern void ntod PROTO ((void)); /* convert a ndfa to a dfa */
+extern void ntod(void); /* convert a ndfa to a dfa */
/* Converts a set of ndfa states into a dfa state. */
-extern int snstods PROTO ((int[], int, int[], int, int, int *));
+extern int snstods(int[], int, int[], int, int, int *);
/* from file ecs.c */
/* Convert character classes to set of equivalence classes. */
-extern void ccl2ecl PROTO ((void));
+extern void ccl2ecl(void);
/* Associate equivalence class numbers with class members. */
-extern int cre8ecs PROTO ((int[], int[], int));
+extern int cre8ecs(int[], int[], int);
/* Update equivalence classes based on character class transitions. */
-extern void mkeccl PROTO ((Char[], int, int[], int[], int, int));
+extern void mkeccl(unsigned char[], int, int[], int[], int, int);
/* Create equivalence class for single character. */
-extern void mkechar PROTO ((int, int[], int[]));
+extern void mkechar(int, int[], int[]);
/* from file gen.c */
-extern void do_indent PROTO ((void)); /* indent to the current level */
+extern void do_indent(void); /* indent to the current level */
/* Generate the code to keep backing-up information. */
-extern void gen_backing_up PROTO ((void));
+extern void gen_backing_up(void);
/* Generate the code to perform the backing up. */
-extern void gen_bu_action PROTO ((void));
+extern void gen_bu_action(void);
/* Generate full speed compressed transition table. */
-extern void genctbl PROTO ((void));
+extern void genctbl(void);
/* Generate the code to find the action number. */
-extern void gen_find_action PROTO ((void));
+extern void gen_find_action(void);
-extern void genftbl PROTO ((void)); /* generate full transition table */
+extern void genftbl(void); /* generate full transition table */
/* Generate the code to find the next compressed-table state. */
-extern void gen_next_compressed_state PROTO ((char *));
+extern void gen_next_compressed_state(char *);
/* Generate the code to find the next match. */
-extern void gen_next_match PROTO ((void));
+extern void gen_next_match(void);
/* Generate the code to find the next state. */
-extern void gen_next_state PROTO ((int));
+extern void gen_next_state(int);
/* Generate the code to make a NUL transition. */
-extern void gen_NUL_trans PROTO ((void));
+extern void gen_NUL_trans(void);
/* Generate the code to find the start state. */
-extern void gen_start_state PROTO ((void));
+extern void gen_start_state(void);
/* Generate data statements for the transition tables. */
-extern void gentabs PROTO ((void));
+extern void gentabs(void);
/* Write out a formatted string at the current indentation level. */
-extern void indent_put2s PROTO ((const char *, const char *));
+extern void indent_put2s(const char *, const char *);
/* Write out a string + newline at the current indentation level. */
-extern void indent_puts PROTO ((const char *));
+extern void indent_puts(const char *);
-extern void make_tables PROTO ((void)); /* generate transition tables */
+extern void make_tables(void); /* generate transition tables */
/* from file main.c */
-extern void check_options PROTO ((void));
-extern void flexend PROTO ((int));
-extern void usage PROTO ((void));
+extern void check_options(void);
+extern void flexend(int);
+extern void usage(void);
/* from file misc.c */
/* Add a #define to the action file. */
-extern void action_define PROTO ((const char *defname, int value));
+extern void action_define(const char *defname, int value);
/* Add the given text to the stored actions. */
-extern void add_action PROTO ((const char *new_text));
+extern void add_action(const char *new_text);
/* True if a string is all lower case. */
-extern int all_lower PROTO ((char *));
+extern int all_lower(char *);
/* True if a string is all upper case. */
-extern int all_upper PROTO ((char *));
+extern int all_upper(char *);
/* Compare two integers for use by qsort. */
-extern int intcmp PROTO ((const void *, const void *));
+extern int intcmp(const void *, const void *);
/* Check a character to make sure it's in the expected range. */
-extern void check_char PROTO ((int c));
+extern void check_char(int c);
/* Replace upper-case letter to lower-case. */
-extern Char clower PROTO ((int));
+extern unsigned char clower(int);
-/* Returns a dynamically allocated copy of a string. */
-extern char *copy_string PROTO ((const char *));
-
-/* Returns a dynamically allocated copy of a (potentially) unsigned string. */
-extern Char *copy_unsigned_string PROTO ((Char *));
+/* strdup() that fails fatally on allocation failures. */
+extern char *xstrdup(const char *);
/* Compare two characters for use by qsort with '\0' sorting last. */
-extern int cclcmp PROTO ((const void *, const void *));
+extern int cclcmp(const void *, const void *);
/* Finish up a block of data declarations. */
-extern void dataend PROTO ((void));
+extern void dataend(void);
/* Flush generated data statements. */
-extern void dataflush PROTO ((void));
+extern void dataflush(void);
/* Report an error message and terminate. */
-extern void flexerror PROTO ((const char *));
+extern void flexerror(const char *);
/* Report a fatal error message and terminate. */
-extern void flexfatal PROTO ((const char *));
+extern void flexfatal(const char *);
/* Report a fatal error with a pinpoint, and terminate */
#if HAVE_DECL___FUNC__
@@ -901,203 +847,195 @@ extern void flexfatal PROTO ((const char *));
}while(0)
#endif /* ! HAVE_DECL___func__ */
-/* Convert a hexadecimal digit string to an integer value. */
-extern int htoi PROTO ((Char[]));
-
-/* Report an error message formatted with one integer argument. */
-extern void lerrif PROTO ((const char *, int));
-
-/* Report an error message formatted with one string argument. */
-extern void lerrsf PROTO ((const char *, const char *));
+/* Report an error message formatted */
+extern void lerr(const char *, ...)
+#if defined(__GNUC__) && __GNUC__ >= 3
+ __attribute__((__format__(__printf__, 1, 2)))
+#endif
+;
-/* Like lerrsf, but also exit after displaying message. */
-extern void lerrsf_fatal PROTO ((const char *, const char *));
+/* Like lerr, but also exit after displaying message. */
+extern void lerr_fatal(const char *, ...)
+#if defined(__GNUC__) && __GNUC__ >= 3
+ __attribute__((__format__(__printf__, 1, 2)))
+#endif
+;
/* Spit out a "#line" statement. */
-extern void line_directive_out PROTO ((FILE *, int));
+extern void line_directive_out(FILE *, int);
/* Mark the current position in the action array as the end of the section 1
* user defs.
*/
-extern void mark_defs1 PROTO ((void));
+extern void mark_defs1(void);
/* Mark the current position in the action array as the end of the prolog. */
-extern void mark_prolog PROTO ((void));
+extern void mark_prolog(void);
-/* Generate a data statement for a two-dimensional array. */
-extern void mk2data PROTO ((int));
+/* Generate a data statment for a two-dimensional array. */
+extern void mk2data(int);
-extern void mkdata PROTO ((int)); /* generate a data statement */
+extern void mkdata(int); /* generate a data statement */
/* Return the integer represented by a string of digits. */
-extern int myctoi PROTO ((const char *));
+extern int myctoi(const char *);
/* Return character corresponding to escape sequence. */
-extern Char myesc PROTO ((Char[]));
-
-/* Convert an octal digit string to an integer value. */
-extern int otoi PROTO ((Char[]));
+extern unsigned char myesc(unsigned char[]);
/* Output a (possibly-formatted) string to the generated scanner. */
-extern void out PROTO ((const char *));
-extern void out_dec PROTO ((const char *, int));
-extern void out_dec2 PROTO ((const char *, int, int));
-extern void out_hex PROTO ((const char *, unsigned int));
-extern void out_str PROTO ((const char *, const char *));
-extern void out_str3
-PROTO ((const char *, const char *, const char *, const char *));
-extern void out_str_dec PROTO ((const char *, const char *, int));
-extern void outc PROTO ((int));
-extern void outn PROTO ((const char *));
-extern void out_m4_define (const char* def, const char* val);
+extern void out(const char *);
+extern void out_dec(const char *, int);
+extern void out_dec2(const char *, int, int);
+extern void out_hex(const char *, unsigned int);
+extern void out_str(const char *, const char *);
+extern void out_str3(const char *, const char *, const char *, const char *);
+extern void out_str_dec(const char *, const char *, int);
+extern void outc(int);
+extern void outn(const char *);
+extern void out_m4_define(const char* def, const char* val);
/* Return a printable version of the given character, which might be
* 8-bit.
*/
-extern char *readable_form PROTO ((int));
+extern char *readable_form(int);
/* Write out one section of the skeleton file. */
-extern void skelout PROTO ((void));
+extern void skelout(void);
/* Output a yy_trans_info structure. */
-extern void transition_struct_out PROTO ((int, int));
+extern void transition_struct_out(int, int);
/* Only needed when using certain broken versions of bison to build parse.c. */
-extern void *yy_flex_xmalloc PROTO ((int));
-
-/* Set a region of memory to 0. */
-extern void zero_out PROTO ((char *, size_t));
+extern void *yy_flex_xmalloc(int);
/* from file nfa.c */
/* Add an accepting state to a machine. */
-extern void add_accept PROTO ((int, int));
+extern void add_accept(int, int);
/* Make a given number of copies of a singleton machine. */
-extern int copysingl PROTO ((int, int));
+extern int copysingl(int, int);
/* Debugging routine to write out an nfa. */
-extern void dumpnfa PROTO ((int));
+extern void dumpnfa(int);
/* Finish up the processing for a rule. */
-extern void finish_rule PROTO ((int, int, int, int, int));
+extern void finish_rule(int, int, int, int, int);
/* Connect two machines together. */
-extern int link_machines PROTO ((int, int));
+extern int link_machines(int, int);
/* Mark each "beginning" state in a machine as being a "normal" (i.e.,
* not trailing context associated) state.
*/
-extern void mark_beginning_as_normal PROTO ((int));
+extern void mark_beginning_as_normal(int);
/* Make a machine that branches to two machines. */
-extern int mkbranch PROTO ((int, int));
+extern int mkbranch(int, int);
-extern int mkclos PROTO ((int)); /* convert a machine into a closure */
-extern int mkopt PROTO ((int)); /* make a machine optional */
+extern int mkclos(int); /* convert a machine into a closure */
+extern int mkopt(int); /* make a machine optional */
/* Make a machine that matches either one of two machines. */
-extern int mkor PROTO ((int, int));
+extern int mkor(int, int);
/* Convert a machine into a positive closure. */
-extern int mkposcl PROTO ((int));
+extern int mkposcl(int);
-extern int mkrep PROTO ((int, int, int)); /* make a replicated machine */
+extern int mkrep(int, int, int); /* make a replicated machine */
/* Create a state with a transition on a given symbol. */
-extern int mkstate PROTO ((int));
+extern int mkstate(int);
-extern void new_rule PROTO ((void)); /* initialize for a new rule */
+extern void new_rule(void); /* initialize for a new rule */
/* from file parse.y */
/* Build the "<<EOF>>" action for the active start conditions. */
-extern void build_eof_action PROTO ((void));
+extern void build_eof_action(void);
/* Write out a message formatted with one string, pinpointing its location. */
-extern void format_pinpoint_message PROTO ((const char *, const char *));
+extern void format_pinpoint_message(const char *, const char *);
/* Write out a message, pinpointing its location. */
-extern void pinpoint_message PROTO ((const char *));
+extern void pinpoint_message(const char *);
/* Write out a warning, pinpointing it at the given line. */
-extern void line_warning PROTO ((const char *, int));
+extern void line_warning(const char *, int);
/* Write out a message, pinpointing it at the given line. */
-extern void line_pinpoint PROTO ((const char *, int));
+extern void line_pinpoint(const char *, int);
/* Report a formatted syntax error. */
-extern void format_synerr PROTO ((const char *, const char *));
-extern void synerr PROTO ((const char *)); /* report a syntax error */
-extern void format_warn PROTO ((const char *, const char *));
-extern void warn PROTO ((const char *)); /* report a warning */
-extern void yyerror PROTO ((const char *)); /* report a parse error */
-extern int yyparse PROTO ((void)); /* the YACC parser */
+extern void format_synerr(const char *, const char *);
+extern void synerr(const char *); /* report a syntax error */
+extern void format_warn(const char *, const char *);
+extern void lwarn(const char *); /* report a warning */
+extern void yyerror(const char *); /* report a parse error */
+extern int yyparse(void); /* the YACC parser */
/* from file scan.l */
/* The Flex-generated scanner for flex. */
-extern int flexscan PROTO ((void));
+extern int flexscan(void);
/* Open the given file (if NULL, stdin) for scanning. */
-extern void set_input_file PROTO ((char *));
-
-/* Wrapup a file in the lexical analyzer. */
-extern int yywrap PROTO ((void));
+extern void set_input_file(char *);
/* from file sym.c */
/* Save the text of a character class. */
-extern void cclinstal PROTO ((Char[], int));
+extern void cclinstal(char[], int);
/* Lookup the number associated with character class. */
-extern int ccllookup PROTO ((Char[]));
+extern int ccllookup(char[]);
-extern void ndinstal PROTO ((const char *, Char[])); /* install a name definition */
-extern Char *ndlookup PROTO ((const char *)); /* lookup a name definition */
+extern void ndinstal(const char *, char[]); /* install a name definition */
+extern char *ndlookup(const char *); /* lookup a name definition */
/* Increase maximum number of SC's. */
-extern void scextend PROTO ((void));
-extern void scinstal PROTO ((const char *, int)); /* make a start condition */
+extern void scextend(void);
+extern void scinstal(const char *, int); /* make a start condition */
/* Lookup the number associated with a start condition. */
-extern int sclookup PROTO ((const char *));
+extern int sclookup(const char *);
/* from file tblcmp.c */
/* Build table entries for dfa state. */
-extern void bldtbl PROTO ((int[], int, int, int, int));
+extern void bldtbl(int[], int, int, int, int);
-extern void cmptmps PROTO ((void)); /* compress template table entries */
-extern void expand_nxt_chk PROTO ((void)); /* increase nxt/chk arrays */
+extern void cmptmps(void); /* compress template table entries */
+extern void expand_nxt_chk(void); /* increase nxt/chk arrays */
/* Finds a space in the table for a state to be placed. */
-extern int find_table_space PROTO ((int *, int));
-extern void inittbl PROTO ((void)); /* initialize transition tables */
+extern int find_table_space(int *, int);
+extern void inittbl(void); /* initialize transition tables */
/* Make the default, "jam" table entries. */
-extern void mkdeftbl PROTO ((void));
+extern void mkdeftbl(void);
/* Create table entries for a state (or state fragment) which has
* only one out-transition.
*/
-extern void mk1tbl PROTO ((int, int, int, int));
+extern void mk1tbl(int, int, int, int);
/* Place a state into full speed transition table. */
-extern void place_state PROTO ((int *, int, int));
+extern void place_state(int *, int, int);
/* Save states with only one out-transition to be processed later. */
-extern void stack1 PROTO ((int, int, int, int));
+extern void stack1(int, int, int, int);
/* from file yylex.c */
-extern int yylex PROTO ((void));
+extern int yylex(void);
/* A growable array. See buf.c. */
struct Buf {
@@ -1107,30 +1045,28 @@ struct Buf {
int nmax; /* max capacity of elements. */
};
-extern void buf_init PROTO ((struct Buf * buf, size_t elem_size));
-extern void buf_destroy PROTO ((struct Buf * buf));
-extern struct Buf *buf_append
-PROTO ((struct Buf * buf, const void *ptr, int n_elem));
-extern struct Buf *buf_concat PROTO((struct Buf* dest, const struct Buf* src));
-extern struct Buf *buf_strappend PROTO ((struct Buf *, const char *str));
-extern struct Buf *buf_strnappend
-PROTO ((struct Buf *, const char *str, int nchars));
-extern struct Buf *buf_strdefine
-PROTO ((struct Buf * buf, const char *str, const char *def));
-extern struct Buf *buf_prints PROTO((struct Buf *buf, const char *fmt, const char* s));
-extern struct Buf *buf_m4_define PROTO((struct Buf *buf, const char* def, const char* val));
-extern struct Buf *buf_m4_undefine PROTO((struct Buf *buf, const char* def));
-extern struct Buf *buf_print_strings PROTO((struct Buf * buf, FILE* out));
-extern struct Buf *buf_linedir PROTO((struct Buf *buf, const char* filename, int lineno));
+extern void buf_init(struct Buf * buf, size_t elem_size);
+extern void buf_destroy(struct Buf * buf);
+extern struct Buf *buf_append(struct Buf * buf, const void *ptr, int n_elem);
+extern struct Buf *buf_concat(struct Buf* dest, const struct Buf* src);
+extern struct Buf *buf_strappend(struct Buf *, const char *str);
+extern struct Buf *buf_strnappend(struct Buf *, const char *str, int nchars);
+extern struct Buf *buf_strdefine(struct Buf * buf, const char *str, const char *def);
+extern struct Buf *buf_prints(struct Buf *buf, const char *fmt, const char* s);
+extern struct Buf *buf_m4_define(struct Buf *buf, const char* def, const char* val);
+extern struct Buf *buf_m4_undefine(struct Buf *buf, const char* def);
+extern struct Buf *buf_print_strings(struct Buf * buf, FILE* out);
+extern struct Buf *buf_linedir(struct Buf *buf, const char* filename, int lineno);
extern struct Buf userdef_buf; /* a string buffer for #define's generated by user-options on cmd line. */
extern struct Buf defs_buf; /* a char* buffer to save #define'd some symbols generated by flex. */
extern struct Buf yydmap_buf; /* a string buffer to hold yydmap elements */
extern struct Buf m4defs_buf; /* Holds m4 definitions. */
extern struct Buf top_buf; /* contains %top code. String buffer. */
+extern bool no_section3_escape; /* True if the undocumented option --unsafe-no-m4-sect3-escape was passed */
/* For blocking out code from the header file. */
-#define OUT_BEGIN_CODE() outn("m4_ifdef( [[M4_YY_IN_HEADER]],,[[")
+#define OUT_BEGIN_CODE() outn("m4_ifdef( [[M4_YY_IN_HEADER]],,[[m4_dnl")
#define OUT_END_CODE() outn("]])")
/* For setjmp/longjmp (instead of calling exit(2)). Linkage in main.c */
@@ -1183,14 +1119,14 @@ struct filter {
/* output filter chain */
extern struct filter * output_chain;
-extern struct filter *filter_create_ext PROTO((struct filter * chain, const char *cmd, ...));
-struct filter *filter_create_int PROTO((struct filter *chain,
+extern struct filter *filter_create_ext (struct filter * chain, const char *cmd, ...);
+struct filter *filter_create_int(struct filter *chain,
int (*filter_func) (struct filter *),
- void *extra));
-extern bool filter_apply_chain PROTO((struct filter * chain));
-extern int filter_truncate (struct filter * chain, int max_len);
-extern int filter_tee_header PROTO((struct filter *chain));
-extern int filter_fix_linedirs PROTO((struct filter *chain));
+ void *extra);
+extern bool filter_apply_chain(struct filter * chain);
+extern int filter_truncate(struct filter * chain, int max_len);
+extern int filter_tee_header(struct filter *chain);
+extern int filter_fix_linedirs(struct filter *chain);
/*
@@ -1210,9 +1146,9 @@ bool regmatch_empty (regmatch_t * m);
typedef unsigned int scanflags_t;
extern scanflags_t* _sf_stk;
extern size_t _sf_top_ix, _sf_max; /**< stack of scanner flags. */
-#define _SF_CASE_INS 0x0001
-#define _SF_DOT_ALL 0x0002
-#define _SF_SKIP_WS 0x0004
+#define _SF_CASE_INS ((scanflags_t) 0x0001)
+#define _SF_DOT_ALL ((scanflags_t) 0x0002)
+#define _SF_SKIP_WS ((scanflags_t) 0x0004)
#define sf_top() (_sf_stk[_sf_top_ix])
#define sf_case_ins() (sf_top() & _SF_CASE_INS)
#define sf_dot_all() (sf_top() & _SF_DOT_ALL)
diff --git a/contrib/flex/flexint.h b/contrib/flex/src/flexint.h
index c5502662ca3b..29d59c273012 100644
--- a/contrib/flex/flexint.h
+++ b/contrib/flex/src/flexint.h
@@ -59,6 +59,10 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
+#ifndef SIZE_MAX
+#define SIZE_MAX (~(size_t)0)
+#endif
+
#endif /* ! C99 */
#endif /* ! FLEXINT_H */
diff --git a/contrib/flex/gen.c b/contrib/flex/src/gen.c
index 1e554d4d5ee5..590e5d8d1cc7 100644
--- a/contrib/flex/gen.c
+++ b/contrib/flex/src/gen.c
@@ -37,16 +37,11 @@
/* declare functions that have forward references */
-void gen_next_state PROTO ((int));
-void genecs PROTO ((void));
-void indent_put2s PROTO ((const char *, const char *));
-void indent_puts PROTO ((const char *));
+void genecs(void);
static int indent_level = 0; /* each level is 8 spaces */
-#define indent_up() (++indent_level)
-#define indent_down() (--indent_level)
#define set_indent(indent_val) indent_level = indent_val
/* Almost everything is done in terms of arrays starting at 1, so provide
@@ -58,28 +53,35 @@ static int indent_level = 0; /* each level is 8 spaces */
static const char *get_int16_decl (void)
{
return (gentables)
- ? "static yyconst flex_int16_t %s[%d] =\n { 0,\n"
- : "static yyconst flex_int16_t * %s = 0;\n";
+ ? "static const flex_int16_t %s[%d] =\n { 0,\n"
+ : "static const flex_int16_t * %s = 0;\n";
}
static const char *get_int32_decl (void)
{
return (gentables)
- ? "static yyconst flex_int32_t %s[%d] =\n { 0,\n"
- : "static yyconst flex_int32_t * %s = 0;\n";
+ ? "static const flex_int32_t %s[%d] =\n { 0,\n"
+ : "static const flex_int32_t * %s = 0;\n";
}
static const char *get_state_decl (void)
{
return (gentables)
- ? "static yyconst yy_state_type %s[%d] =\n { 0,\n"
- : "static yyconst yy_state_type * %s = 0;\n";
+ ? "static const yy_state_type %s[%d] =\n { 0,\n"
+ : "static const yy_state_type * %s = 0;\n";
+}
+
+static const char *get_yy_char_decl (void)
+{
+ return (gentables)
+ ? "static const YY_CHAR %s[%d] =\n { 0,\n"
+ : "static const YY_CHAR * %s = 0;\n";
}
/* Indent to the current level. */
-void do_indent ()
+void do_indent (void)
{
int i = indent_level * 8;
@@ -104,12 +106,12 @@ static struct yytbl_data *mkeoltbl (void)
flex_int8_t *tdata = 0;
struct yytbl_data *tbl;
- tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data));
+ tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_RULE_CAN_MATCH_EOL);
tbl->td_flags = YYTD_DATA8;
- tbl->td_lolen = num_rules + 1;
+ tbl->td_lolen = (flex_uint32_t) (num_rules + 1);
tbl->td_data = tdata =
- (flex_int8_t *) calloc (tbl->td_lolen, sizeof (flex_int8_t));
+ calloc(tbl->td_lolen, sizeof (flex_int8_t));
for (i = 1; i <= num_rules; i++)
tdata[i] = rule_has_nl[i] ? 1 : 0;
@@ -145,7 +147,7 @@ static void geneoltbl (void)
/* Generate the code to keep backing-up information. */
-void gen_backing_up ()
+void gen_backing_up (void)
{
if (reject || num_backing_up == 0)
return;
@@ -155,18 +157,18 @@ void gen_backing_up ()
else
indent_puts ("if ( yy_accept[yy_current_state] )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("YY_G(yy_last_accepting_state) = yy_current_state;");
indent_puts ("YY_G(yy_last_accepting_cpos) = yy_cp;");
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
/* Generate the code to perform the backing up. */
-void gen_bu_action ()
+void gen_bu_action (void)
{
if (reject || num_backing_up == 0)
return;
@@ -211,14 +213,14 @@ static struct yytbl_data *mkctbl (void)
((tblend + numecs + 1) >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
- tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data));
+ tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_TRANSITION);
tbl->td_flags = YYTD_DATA32 | YYTD_STRUCT;
tbl->td_hilen = 0;
- tbl->td_lolen = tblend + numecs + 1; /* number of structs */
+ tbl->td_lolen = (flex_uint32_t) (tblend + numecs + 1); /* number of structs */
tbl->td_data = tdata =
- (flex_int32_t *) calloc (tbl->td_lolen * 2, sizeof (flex_int32_t));
+ calloc(tbl->td_lolen * 2, sizeof (flex_int32_t));
/* We want the transition to be represented as the offset to the
* next state, not the actual state number, which is what it currently
@@ -307,14 +309,14 @@ static struct yytbl_data *mkssltbl (void)
flex_int32_t *tdata = 0;
flex_int32_t i;
- tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data));
+ tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_START_STATE_LIST);
tbl->td_flags = YYTD_DATA32 | YYTD_PTRANS;
tbl->td_hilen = 0;
- tbl->td_lolen = lastsc * 2 + 1;
+ tbl->td_lolen = (flex_uint32_t) (lastsc * 2 + 1);
tbl->td_data = tdata =
- (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(tbl->td_lolen, sizeof (flex_int32_t));
for (i = 0; i <= lastsc * 2; ++i)
tdata[i] = base[i];
@@ -330,16 +332,16 @@ static struct yytbl_data *mkssltbl (void)
/* genctbl - generates full speed compressed transition table */
-void genctbl ()
+void genctbl (void)
{
int i;
int end_of_buffer_action = num_rules + 1;
/* Table of verify for transition and offset to next state. */
if (gentables)
- out_dec ("static yyconst struct yy_trans_info yy_transition[%d] =\n {\n", tblend + numecs + 1);
+ out_dec ("static const struct yy_trans_info yy_transition[%d] =\n {\n", tblend + numecs + 1);
else
- outn ("static yyconst struct yy_trans_info *yy_transition = 0;");
+ outn ("static const struct yy_trans_info *yy_transition = 0;");
/* We want the transition to be represented as the offset to the
* next state, not the actual state number, which is what it currently
@@ -411,9 +413,9 @@ void genctbl ()
/* Table of pointers to start states. */
if (gentables)
- out_dec ("static yyconst struct yy_trans_info *yy_start_state_list[%d] =\n", lastsc * 2 + 1);
+ out_dec ("static const struct yy_trans_info *yy_start_state_list[%d] =\n", lastsc * 2 + 1);
else
- outn ("static yyconst struct yy_trans_info **yy_start_state_list =0;");
+ outn ("static const struct yy_trans_info **yy_start_state_list =0;");
if (gentables) {
outn (" {");
@@ -437,14 +439,14 @@ static struct yytbl_data *mkecstbl (void)
struct yytbl_data *tbl = 0;
flex_int32_t *tdata = 0;
- tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data));
+ tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_EC);
tbl->td_flags |= YYTD_DATA32;
tbl->td_hilen = 0;
- tbl->td_lolen = csize;
+ tbl->td_lolen = (flex_uint32_t) csize;
tbl->td_data = tdata =
- (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i < csize; ++i) {
ecgroup[i] = ABS (ecgroup[i]);
@@ -453,19 +455,19 @@ static struct yytbl_data *mkecstbl (void)
buf_prints (&yydmap_buf,
"\t{YYTD_ID_EC, (void**)&yy_ec, sizeof(%s)},\n",
- "flex_int32_t");
+ "YY_CHAR");
return tbl;
}
/* Generate equivalence-class tables. */
-void genecs ()
+void genecs (void)
{
int i, j;
int numrows;
- out_str_dec (get_int32_decl (), "yy_ec", csize);
+ out_str_dec (get_yy_char_decl (), "yy_ec", csize);
for (i = 1; i < csize; ++i) {
ecgroup[i] = ABS (ecgroup[i]);
@@ -495,7 +497,7 @@ void genecs ()
/* Generate the code to find the action number. */
-void gen_find_action ()
+void gen_find_action (void)
{
if (fullspd)
indent_puts ("yy_act = yy_current_state[-1].yy_nxt;");
@@ -507,19 +509,23 @@ void gen_find_action ()
indent_puts ("yy_current_state = *--YY_G(yy_state_ptr);");
indent_puts ("YY_G(yy_lp) = yy_accept[yy_current_state];");
- outn ("goto find_rule; /* avoid `defined but not used' warning */");
- outn ("find_rule: /* we branch to this label when backing up */");
+ if (!variable_trailing_context_rules)
+ outn ("m4_ifdef( [[M4_YY_USES_REJECT]],\n[[");
+ if(reject_really_used)
+ outn ("find_rule: /* we branch to this label when backing up */");
+ if (!variable_trailing_context_rules)
+ outn ("]])\n");
indent_puts
("for ( ; ; ) /* until we find what rule we matched */");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts
("if ( YY_G(yy_lp) && YY_G(yy_lp) < yy_accept[yy_current_state + 1] )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("yy_act = yy_acclist[YY_G(yy_lp)];");
@@ -527,25 +533,25 @@ void gen_find_action ()
indent_puts
("if ( yy_act & YY_TRAILING_HEAD_MASK ||");
indent_puts (" YY_G(yy_looking_for_trail_begin) )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts
("if ( yy_act == YY_G(yy_looking_for_trail_begin) )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("YY_G(yy_looking_for_trail_begin) = 0;");
indent_puts ("yy_act &= ~YY_TRAILING_HEAD_MASK;");
indent_puts ("break;");
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts
("else if ( yy_act & YY_TRAILING_MASK )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts
("YY_G(yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;");
@@ -564,10 +570,10 @@ void gen_find_action ()
}
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts ("else");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("YY_G(yy_full_match) = yy_cp;");
indent_puts
@@ -575,7 +581,7 @@ void gen_find_action ()
indent_puts ("YY_G(yy_full_lp) = YY_G(yy_lp);");
indent_puts ("break;");
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts ("++YY_G(yy_lp);");
indent_puts ("goto find_rule;");
@@ -585,16 +591,16 @@ void gen_find_action ()
/* Remember matched text in case we back up due to
* trailing context plus REJECT.
*/
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("YY_G(yy_full_match) = yy_cp;");
indent_puts ("break;");
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts ("--yy_cp;");
@@ -607,7 +613,7 @@ void gen_find_action ()
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
else { /* compressed */
@@ -618,7 +624,7 @@ void gen_find_action ()
* the match.
*/
indent_puts ("if ( yy_act == 0 )");
- indent_up ();
+ ++indent_level;
indent_puts ("{ /* have to back up */");
indent_puts
("yy_cp = YY_G(yy_last_accepting_cpos);");
@@ -627,7 +633,7 @@ void gen_find_action ()
indent_puts
("yy_act = yy_accept[yy_current_state];");
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
}
}
@@ -643,14 +649,14 @@ struct yytbl_data *mkftbl (void)
struct yytbl_data *tbl;
flex_int32_t *tdata = 0;
- tbl = (struct yytbl_data *) calloc (1, sizeof (struct yytbl_data));
+ tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (tbl, YYTD_ID_ACCEPT);
tbl->td_flags |= YYTD_DATA32;
tbl->td_hilen = 0; /* it's a one-dimensional array */
- tbl->td_lolen = lastdfa + 1;
+ tbl->td_lolen = (flex_uint32_t) (lastdfa + 1);
tbl->td_data = tdata =
- (flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(tbl->td_lolen, sizeof (flex_int32_t));
dfaacc[end_of_buffer_state].dfaacc_state = end_of_buffer_action;
@@ -673,7 +679,7 @@ struct yytbl_data *mkftbl (void)
/* genftbl - generate full transition table */
-void genftbl ()
+void genftbl (void)
{
int i;
int end_of_buffer_action = num_rules + 1;
@@ -706,8 +712,7 @@ void genftbl ()
/* Generate the code to find the next compressed-table state. */
-void gen_next_compressed_state (char_map)
- char *char_map;
+void gen_next_compressed_state (char *char_map)
{
indent_put2s ("YY_CHAR yy_c = %s;", char_map);
@@ -719,7 +724,7 @@ void gen_next_compressed_state (char_map)
indent_puts
("while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("yy_current_state = (int) yy_def[yy_current_state];");
@@ -736,22 +741,22 @@ void gen_next_compressed_state (char_map)
/* lastdfa + 2 is the beginning of the templates */
out_dec ("if ( yy_current_state >= %d )\n", lastdfa + 2);
- indent_up ();
- indent_puts ("yy_c = yy_meta[(unsigned int) yy_c];");
- indent_down ();
+ ++indent_level;
+ indent_puts ("yy_c = yy_meta[yy_c];");
+ --indent_level;
}
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts
- ("yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];");
+ ("yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];");
}
/* Generate the code to find the next match. */
-void gen_next_match ()
+void gen_next_match (void)
{
/* NOTE - changes in here should be reflected in gen_next_state() and
* gen_NUL_trans().
@@ -772,7 +777,7 @@ void gen_next_match ()
("while ( (yy_current_state = yy_nxt[yy_current_state*YY_NXT_LOLEN + %s ]) > 0 )",
char_map);
- indent_up ();
+ ++indent_level;
if (num_backing_up > 0) {
indent_puts ("{");
@@ -786,7 +791,7 @@ void gen_next_match ()
indent_puts ("}");
- indent_down ();
+ --indent_level;
outc ('\n');
indent_puts ("yy_current_state = -yy_current_state;");
@@ -795,15 +800,15 @@ void gen_next_match ()
else if (fullspd) {
indent_puts ("{");
indent_puts
- ("yyconst struct yy_trans_info *yy_trans_info;\n");
+ ("const struct yy_trans_info *yy_trans_info;\n");
indent_puts ("YY_CHAR yy_c;\n");
indent_put2s ("for ( yy_c = %s;", char_map);
indent_puts
- (" (yy_trans_info = &yy_current_state[(unsigned int) yy_c])->");
+ (" (yy_trans_info = &yy_current_state[yy_c])->");
indent_puts ("yy_verify == yy_c;");
indent_put2s (" yy_c = %s )", char_map_2);
- indent_up ();
+ ++indent_level;
if (num_backing_up > 0)
indent_puts ("{");
@@ -816,14 +821,14 @@ void gen_next_match ()
indent_puts ("}");
}
- indent_down ();
+ --indent_level;
indent_puts ("}");
}
else { /* compressed */
indent_puts ("do");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
gen_next_state (false);
@@ -832,7 +837,7 @@ void gen_next_match ()
indent_puts ("}");
- indent_down ();
+ --indent_level;
do_indent ();
@@ -857,8 +862,7 @@ void gen_next_match ()
/* Generate the code to find the next state. */
-void gen_next_state (worry_about_NULs)
- int worry_about_NULs;
+void gen_next_state (int worry_about_NULs)
{ /* NOTE - changes in here should be reflected in gen_next_match() */
char char_map[256];
@@ -884,7 +888,7 @@ void gen_next_state (worry_about_NULs)
gen_backing_up ();
indent_puts ("if ( *yy_cp )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
}
@@ -910,12 +914,12 @@ void gen_next_state (worry_about_NULs)
if (worry_about_NULs && nultrans) {
indent_puts ("}");
- indent_down ();
+ --indent_level;
indent_puts ("else");
- indent_up ();
+ ++indent_level;
indent_puts
("yy_current_state = yy_NUL_trans[yy_current_state];");
- indent_down ();
+ --indent_level;
}
if (fullspd || fulltbl)
@@ -928,7 +932,7 @@ void gen_next_state (worry_about_NULs)
/* Generate the code to make a NUL transition. */
-void gen_NUL_trans ()
+void gen_NUL_trans (void)
{ /* NOTE - changes in here should be reflected in gen_next_match() */
/* Only generate a definition for "yy_cp" if we'll generate code
* that uses it. Otherwise lint and the like complain.
@@ -963,7 +967,7 @@ void gen_NUL_trans ()
out_dec ("int yy_c = %d;\n", NUL_ec);
indent_puts
- ("yyconst struct yy_trans_info *yy_trans_info;\n");
+ ("const struct yy_trans_info *yy_trans_info;\n");
indent_puts
("yy_trans_info = &yy_current_state[(unsigned int) yy_c];");
indent_puts ("yy_current_state += yy_trans_info->yy_nxt;");
@@ -988,10 +992,10 @@ void gen_NUL_trans ()
* the state stack and yy_c_buf_p get out of sync.
*/
indent_puts ("if ( ! yy_is_jam )");
- indent_up ();
+ ++indent_level;
indent_puts
("*YY_G(yy_state_ptr)++ = yy_current_state;");
- indent_down ();
+ --indent_level;
}
}
@@ -1002,18 +1006,18 @@ void gen_NUL_trans ()
if (need_backing_up && (fullspd || fulltbl)) {
outc ('\n');
indent_puts ("if ( ! yy_is_jam )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
gen_backing_up ();
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
}
/* Generate the code to find the start state. */
-void gen_start_state ()
+void gen_start_state (void)
{
if (fullspd) {
if (bol_needed) {
@@ -1046,7 +1050,7 @@ void gen_start_state ()
/* gentabs - generate data statements for the transition tables */
-void gentabs ()
+void gentabs (void)
{
int i, j, k, *accset, nacc, *acc_array, total_states;
int end_of_buffer_action = num_rules + 1;
@@ -1090,11 +1094,11 @@ void gentabs ()
"\t{YYTD_ID_ACCLIST, (void**)&yy_acclist, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
- yyacclist_tbl = (struct yytbl_data*)calloc(1,sizeof(struct yytbl_data));
+ yyacclist_tbl = calloc(1,sizeof(struct yytbl_data));
yytbl_data_init (yyacclist_tbl, YYTD_ID_ACCLIST);
- yyacclist_tbl->td_lolen = MAX(numas,1) + 1;
+ yyacclist_tbl->td_lolen = (flex_uint32_t) (MAX(numas,1) + 1);
yyacclist_tbl->td_data = yyacclist_data =
- (flex_int32_t *) calloc (yyacclist_tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(yyacclist_tbl->td_lolen, sizeof (flex_int32_t));
yyacclist_curr = 1;
j = 1; /* index into "yy_acclist" array */
@@ -1199,13 +1203,11 @@ void gentabs ()
"\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n",
long_align ? "flex_int32_t" : "flex_int16_t");
- yyacc_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct yytbl_data));
+ yyacc_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yyacc_tbl, YYTD_ID_ACCEPT);
- yyacc_tbl->td_lolen = k;
+ yyacc_tbl->td_lolen = (flex_uint32_t) k;
yyacc_tbl->td_data = yyacc_data =
- (flex_int32_t *) calloc (yyacc_tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(yyacc_tbl->td_lolen, sizeof (flex_int32_t));
yyacc_curr=1;
for (i = 1; i <= lastdfa; ++i) {
@@ -1258,24 +1260,21 @@ void gentabs ()
* templates with).
*/
flex_int32_t *yymecs_data = 0;
- yymeta_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct
- yytbl_data));
+ yymeta_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yymeta_tbl, YYTD_ID_META);
- yymeta_tbl->td_lolen = numecs + 1;
+ yymeta_tbl->td_lolen = (flex_uint32_t) (numecs + 1);
yymeta_tbl->td_data = yymecs_data =
- (flex_int32_t *) calloc (yymeta_tbl->td_lolen,
+ calloc(yymeta_tbl->td_lolen,
sizeof (flex_int32_t));
if (trace)
fputs (_("\n\nMeta-Equivalence Classes:\n"),
stderr);
- out_str_dec (get_int32_decl (), "yy_meta", numecs + 1);
+ out_str_dec (get_yy_char_decl (), "yy_meta", numecs + 1);
buf_prints (&yydmap_buf,
"\t{YYTD_ID_META, (void**)&yy_meta, sizeof(%s)},\n",
- "flex_int32_t");
+ "YY_CHAR");
for (i = 1; i <= numecs; ++i) {
if (trace)
@@ -1309,13 +1308,11 @@ void gentabs ()
"\t{YYTD_ID_BASE, (void**)&yy_base, sizeof(%s)},\n",
(tblend >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
- yybase_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct yytbl_data));
+ yybase_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yybase_tbl, YYTD_ID_BASE);
- yybase_tbl->td_lolen = total_states + 1;
+ yybase_tbl->td_lolen = (flex_uint32_t) (total_states + 1);
yybase_tbl->td_data = yybase_data =
- (flex_int32_t *) calloc (yybase_tbl->td_lolen,
+ calloc(yybase_tbl->td_lolen,
sizeof (flex_int32_t));
yybase_curr = 1;
@@ -1369,13 +1366,11 @@ void gentabs ()
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
- yydef_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct yytbl_data));
+ yydef_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yydef_tbl, YYTD_ID_DEF);
- yydef_tbl->td_lolen = total_states + 1;
+ yydef_tbl->td_lolen = (flex_uint32_t) (total_states + 1);
yydef_tbl->td_data = yydef_data =
- (flex_int32_t *) calloc (yydef_tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(yydef_tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i <= total_states; ++i) {
mkdata (def[i]);
@@ -1403,13 +1398,11 @@ void gentabs ()
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
- yynxt_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct yytbl_data));
+ yynxt_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yynxt_tbl, YYTD_ID_NXT);
- yynxt_tbl->td_lolen = tblend + 1;
+ yynxt_tbl->td_lolen = (flex_uint32_t) (tblend + 1);
yynxt_tbl->td_data = yynxt_data =
- (flex_int32_t *) calloc (yynxt_tbl->td_lolen, sizeof (flex_int32_t));
+ calloc (yynxt_tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i <= tblend; ++i) {
/* Note, the order of the following test is important.
@@ -1442,13 +1435,11 @@ void gentabs ()
(total_states >= INT16_MAX
|| long_align) ? "flex_int32_t" : "flex_int16_t");
- yychk_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct yytbl_data));
+ yychk_tbl = calloc (1, sizeof (struct yytbl_data));
yytbl_data_init (yychk_tbl, YYTD_ID_CHK);
- yychk_tbl->td_lolen = tblend + 1;
+ yychk_tbl->td_lolen = (flex_uint32_t) (tblend + 1);
yychk_tbl->td_data = yychk_data =
- (flex_int32_t *) calloc (yychk_tbl->td_lolen, sizeof (flex_int32_t));
+ calloc(yychk_tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i <= tblend; ++i) {
if (chk[i] == 0)
@@ -1468,7 +1459,7 @@ void gentabs ()
}
/* End generating yy_chk */
- flex_free ((void *) acc_array);
+ free(acc_array);
}
@@ -1476,8 +1467,7 @@ void gentabs ()
* current indentation level, adding a final newline.
*/
-void indent_put2s (fmt, arg)
- const char *fmt, *arg;
+void indent_put2s (const char *fmt, const char *arg)
{
do_indent ();
out_str (fmt, arg);
@@ -1489,8 +1479,7 @@ void indent_put2s (fmt, arg)
* newline.
*/
-void indent_puts (str)
- const char *str;
+void indent_puts (const char *str)
{
do_indent ();
outn (str);
@@ -1500,11 +1489,11 @@ void indent_puts (str)
/* make_tables - generate transition tables and finishes generating output file
*/
-void make_tables ()
+void make_tables (void)
{
int i;
- int did_eof_rule = false;
- struct yytbl_data *yynultrans_tbl;
+ int did_eof_rule = false;
+ struct yytbl_data *yynultrans_tbl = NULL;
skelout (); /* %% [2.0] - break point in skel */
@@ -1517,11 +1506,11 @@ void make_tables ()
if (yymore_used && !yytext_is_array) {
indent_puts ("YY_G(yytext_ptr) -= YY_G(yy_more_len); \\");
indent_puts
- ("yyleng = (size_t) (yy_cp - YY_G(yytext_ptr)); \\");
+ ("yyleng = (int) (yy_cp - YY_G(yytext_ptr)); \\");
}
else
- indent_puts ("yyleng = (size_t) (yy_cp - yy_bp); \\");
+ indent_puts ("yyleng = (int) (yy_cp - yy_bp); \\");
/* Now also deal with copying yytext_ptr to yytext if needed. */
skelout (); /* %% [3.0] - break point in skel */
@@ -1532,10 +1521,10 @@ void make_tables ()
else
indent_puts ("if ( yyleng >= YYLMAX ) \\");
- indent_up ();
+ ++indent_level;
indent_puts
("YY_FATAL_ERROR( \"token too large, exceeds YYLMAX\" ); \\");
- indent_down ();
+ --indent_level;
if (yymore_used) {
indent_puts
@@ -1572,7 +1561,7 @@ void make_tables ()
set_indent (0);
indent_puts ("struct yy_trans_info");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
/* We require that yy_verify and yy_nxt must be of the same size int. */
@@ -1588,7 +1577,7 @@ void make_tables ()
indent_put2s ("%s yy_nxt;", trans_offset_type);
indent_puts ("};");
- indent_down ();
+ --indent_level;
}
else {
/* We generate a bogus 'struct yy_trans_info' data type
@@ -1600,12 +1589,12 @@ void make_tables ()
("/* This struct is not used in this scanner,");
indent_puts (" but its presence is necessary. */");
indent_puts ("struct yy_trans_info");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("flex_int32_t yy_verify;");
indent_puts ("flex_int32_t yy_nxt;");
indent_puts ("};");
- indent_down ();
+ --indent_level;
}
if (fullspd) {
@@ -1703,16 +1692,13 @@ void make_tables ()
(fullspd) ? "struct yy_trans_info*" :
"flex_int32_t");
- yynultrans_tbl =
- (struct yytbl_data *) calloc (1,
- sizeof (struct
- yytbl_data));
+ yynultrans_tbl = calloc(1, sizeof (struct yytbl_data));
yytbl_data_init (yynultrans_tbl, YYTD_ID_NUL_TRANS);
if (fullspd)
yynultrans_tbl->td_flags |= YYTD_PTRANS;
- yynultrans_tbl->td_lolen = lastdfa + 1;
+ yynultrans_tbl->td_lolen = (flex_uint32_t) (lastdfa + 1);
yynultrans_tbl->td_data = yynultrans_data =
- (flex_int32_t *) calloc (yynultrans_tbl->td_lolen,
+ calloc(yynultrans_tbl->td_lolen,
sizeof (flex_int32_t));
for (i = 1; i <= lastdfa; ++i) {
@@ -1734,9 +1720,13 @@ void make_tables ()
0)
flexerror (_
("Could not write yynultrans_tbl"));
+ }
+
+ if (yynultrans_tbl != NULL) {
yytbl_data_destroy (yynultrans_tbl);
yynultrans_tbl = NULL;
- }
+ }
+
/* End generating yy_NUL_trans */
}
@@ -1825,13 +1815,13 @@ void make_tables ()
indent_puts ("#define YY_MORE_ADJ 0");
indent_puts
("#define YY_RESTORE_YY_MORE_OFFSET \\");
- indent_up ();
+ ++indent_level;
indent_puts ("{ \\");
indent_puts
("YY_G(yy_more_offset) = YY_G(yy_prev_more_offset); \\");
indent_puts ("yyleng -= YY_G(yy_more_offset); \\");
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
else {
indent_puts
@@ -1875,7 +1865,7 @@ void make_tables ()
if (!C_plus_plus) {
if (use_read) {
outn ("\terrno=0; \\");
- outn ("\twhile ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \\");
+ outn ("\twhile ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \\");
outn ("\t{ \\");
outn ("\t\tif( errno != EINTR) \\");
outn ("\t\t{ \\");
@@ -1891,7 +1881,7 @@ void make_tables ()
outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
outn ("\t\t{ \\");
outn ("\t\tint c = '*'; \\");
- outn ("\t\tsize_t n; \\");
+ outn ("\t\tint n; \\");
outn ("\t\tfor ( n = 0; n < max_size && \\");
outn ("\t\t\t (c = getc( yyin )) != EOF && c != '\\n'; ++n ) \\");
outn ("\t\t\tbuf[n] = (char) c; \\");
@@ -1904,7 +1894,7 @@ void make_tables ()
outn ("\telse \\");
outn ("\t\t{ \\");
outn ("\t\terrno=0; \\");
- outn ("\t\twhile ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \\");
+ outn ("\t\twhile ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \\");
outn ("\t\t\t{ \\");
outn ("\t\t\tif( errno != EINTR) \\");
outn ("\t\t\t\t{ \\");
@@ -1921,16 +1911,16 @@ void make_tables ()
skelout (); /* %% [6.0] - break point in skel */
indent_puts ("#define YY_RULE_SETUP \\");
- indent_up ();
+ ++indent_level;
if (bol_needed) {
indent_puts ("if ( yyleng > 0 ) \\");
- indent_up ();
+ ++indent_level;
indent_puts ("YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \\");
indent_puts ("\t\t(yytext[yyleng - 1] == '\\n'); \\");
- indent_down ();
+ --indent_level;
}
indent_puts ("YY_USER_ACTION");
- indent_down ();
+ --indent_level;
skelout (); /* %% [7.0] - break point in skel */
@@ -1946,13 +1936,13 @@ void make_tables ()
if (yymore_used && !yytext_is_array) {
indent_puts ("YY_G(yy_more_len) = 0;");
indent_puts ("if ( YY_G(yy_more_flag) )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts
- ("YY_G(yy_more_len) = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);");
+ ("YY_G(yy_more_len) = (int) (YY_G(yy_c_buf_p) - YY_G(yytext_ptr));");
indent_puts ("YY_G(yy_more_flag) = 0;");
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
skelout (); /* %% [9.0] - break point in skel */
@@ -1971,39 +1961,39 @@ void make_tables ()
outn ("m4_ifdef( [[M4_YY_USE_LINENO]],[[");
indent_puts
("if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
- indent_puts ("yy_size_t yyl;");
+ indent_puts ("int yyl;");
do_indent ();
out_str ("for ( yyl = %s; yyl < yyleng; ++yyl )\n",
yymore_used ? (yytext_is_array ? "YY_G(yy_prev_more_offset)" :
"YY_G(yy_more_len)") : "0");
- indent_up ();
+ ++indent_level;
indent_puts ("if ( yytext[yyl] == '\\n' )");
- indent_up ();
+ ++indent_level;
indent_puts ("M4_YY_INCR_LINENO();");
- indent_down ();
- indent_down ();
+ --indent_level;
+ --indent_level;
indent_puts ("}");
- indent_down ();
+ --indent_level;
outn ("]])");
skelout (); /* %% [12.0] - break point in skel */
if (ddebug) {
indent_puts ("if ( yy_flex_debug )");
- indent_up ();
+ ++indent_level;
indent_puts ("{");
indent_puts ("if ( yy_act == 0 )");
- indent_up ();
+ ++indent_level;
indent_puts (C_plus_plus ?
"std::cerr << \"--scanner backing up\\n\";" :
"fprintf( stderr, \"--scanner backing up\\n\" );");
- indent_down ();
+ --indent_level;
do_indent ();
out_dec ("else if ( yy_act < %d )\n", num_rules);
- indent_up ();
+ ++indent_level;
if (C_plus_plus) {
indent_puts
@@ -2019,11 +2009,11 @@ void make_tables ()
(" (long)yy_rule_linenum[yy_act], yytext );");
}
- indent_down ();
+ --indent_level;
do_indent ();
out_dec ("else if ( yy_act == %d )\n", num_rules);
- indent_up ();
+ ++indent_level;
if (C_plus_plus) {
indent_puts
@@ -2035,21 +2025,21 @@ void make_tables ()
indent_puts (" yytext );");
}
- indent_down ();
+ --indent_level;
do_indent ();
out_dec ("else if ( yy_act == %d )\n", num_rules + 1);
- indent_up ();
+ ++indent_level;
indent_puts (C_plus_plus ?
"std::cerr << \"--(end of buffer or a NUL)\\n\";" :
"fprintf( stderr, \"--(end of buffer or a NUL)\\n\" );");
- indent_down ();
+ --indent_level;
do_indent ();
outn ("else");
- indent_up ();
+ ++indent_level;
if (C_plus_plus) {
indent_puts
@@ -2060,15 +2050,15 @@ void make_tables ()
("fprintf( stderr, \"--EOF (start condition %d)\\n\", YY_START );");
}
- indent_down ();
+ --indent_level;
indent_puts ("}");
- indent_down ();
+ --indent_level;
}
/* Copy actions to output file. */
skelout (); /* %% [13.0] - break point in skel */
- indent_up ();
+ ++indent_level;
gen_bu_action ();
out (&action_array[action_offset]);
@@ -2083,9 +2073,9 @@ void make_tables ()
}
if (did_eof_rule) {
- indent_up ();
+ ++indent_level;
indent_puts ("yyterminate();");
- indent_down ();
+ --indent_level;
}
@@ -2143,17 +2133,17 @@ void make_tables ()
if (do_yylineno) {
indent_puts
("if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )");
- indent_up ();
+ ++indent_level;
indent_puts ("M4_YY_INCR_LINENO();");
- indent_down ();
+ --indent_level;
}
}
else if (do_yylineno) {
indent_puts ("if ( c == '\\n' )");
- indent_up ();
+ ++indent_level;
indent_puts ("M4_YY_INCR_LINENO();");
- indent_down ();
+ --indent_level;
}
skelout ();
@@ -2164,7 +2154,11 @@ void make_tables ()
if (sectnum == 3) {
OUT_BEGIN_CODE ();
+ if (!no_section3_escape)
+ fputs("[[", stdout);
(void) flexscan (); /* copy remainder of input to output */
+ if (!no_section3_escape)
+ fputs("]]", stdout);
OUT_END_CODE ();
}
}
diff --git a/contrib/flex/libmain.c b/contrib/flex/src/libmain.c
index 49262e462bb0..bb2fe35a5f98 100644
--- a/contrib/flex/libmain.c
+++ b/contrib/flex/src/libmain.c
@@ -21,13 +21,16 @@
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
-extern int yylex ();
+#include <stdlib.h>
-int main (argc, argv)
- int argc;
- char *argv[];
+extern int yylex (void);
+
+int main (int argc, char *argv[])
{
+ (void)argc;
+ (void)argv;
+
while (yylex () != 0) ;
- return 0;
+ exit(0);
}
diff --git a/contrib/flex/libyywrap.c b/contrib/flex/src/libyywrap.c
index 7661e9121917..b0427c479733 100644
--- a/contrib/flex/libyywrap.c
+++ b/contrib/flex/src/libyywrap.c
@@ -22,6 +22,7 @@
/* PURPOSE. */
int yywrap (void);
+
int yywrap (void)
{
return 1;
diff --git a/contrib/flex/main.c b/contrib/flex/src/main.c
index 728e42b1245d..711e387b1b51 100644
--- a/contrib/flex/main.c
+++ b/contrib/flex/src/main.c
@@ -36,15 +36,15 @@
#include "version.h"
#include "options.h"
#include "tables.h"
+#include "parse.h"
static char flex_version[] = FLEX_VERSION;
/* declare functions that have forward references */
-void flexinit PROTO ((int, char **));
-void readin PROTO ((void));
-void set_up_initial_allocations PROTO ((void));
-static char *basename2 PROTO ((char *path, int should_strip_ext));
+void flexinit(int, char **);
+void readin(void);
+void set_up_initial_allocations(void);
/* these globals are all defined and commented in flexdef.h */
@@ -57,6 +57,7 @@ int C_plus_plus, long_align, use_read, yytext_is_array, do_yywrap,
int reentrant, bison_bridge_lval, bison_bridge_lloc;
int yymore_used, reject, real_reject, continued_action, in_rule;
int yymore_really_used, reject_really_used;
+int trace_hex = 0;
int datapos, dataline, linenum;
FILE *skelfile = NULL;
int skel_ind = 0;
@@ -93,7 +94,7 @@ int *accsiz, *dhash, numas;
int numsnpairs, jambase, jamstate;
int lastccl, *cclmap, *ccllen, *cclng, cclreuse;
int current_maxccls, current_max_ccl_tbl_size;
-Char *ccltbl;
+unsigned char *ccltbl;
char nmstr[MAXLINE];
int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
@@ -105,7 +106,6 @@ int num_input_files;
jmp_buf flex_main_jmp_buf;
bool *rule_has_nl, *ccl_has_nl;
int nlch = '\n';
-bool ansi_func_defs, ansi_func_protos;
bool tablesext, tablesverify, gentables;
char *tablesfilename=0,*tablesname=0;
@@ -116,19 +116,9 @@ struct yytbl_writer tableswr;
*/
char *program_name = "flex";
-#ifndef SHORT_FILE_NAMES
-static char *outfile_template = "lex.%s.%s";
-static char *backing_name = "lex.backup";
-static char *tablesfile_template = "lex.%s.tables";
-#else
-static char *outfile_template = "lex%s.%s";
-static char *backing_name = "lex.bck";
-static char *tablesfile_template = "lex%s.tbl";
-#endif
-
-#ifdef MS_DOS
-extern unsigned _stklen = 16384;
-#endif
+static const char outfile_template[] = "lex.%s.%s";
+static const char backing_name[] = "lex.backup";
+static const char tablesfile_template[] = "lex.%s.tables";
/* From scan.l */
extern FILE* yyout;
@@ -137,18 +127,15 @@ static char outfile_path[MAXLINE];
static int outfile_created = 0;
static char *skelname = NULL;
static int _stdout_closed = 0; /* flag to prevent double-fclose() on stdout. */
-const char *escaped_qstart = "[[]]M4_YY_NOOP[M4_YY_NOOP[M4_YY_NOOP[[]]";
-const char *escaped_qend = "[[]]M4_YY_NOOP]M4_YY_NOOP]M4_YY_NOOP[[]]";
+const char *escaped_qstart = "]]M4_YY_NOOP[M4_YY_NOOP[M4_YY_NOOP[[";
+const char *escaped_qend = "]]M4_YY_NOOP]M4_YY_NOOP]M4_YY_NOOP[[";
/* For debugging. The max number of filters to apply to skeleton. */
static int preproc_level = 1000;
-int flex_main PROTO ((int argc, char *argv[]));
-int main PROTO ((int argc, char *argv[]));
+int flex_main (int argc, char *argv[]);
-int flex_main (argc, argv)
- int argc;
- char *argv[];
+int flex_main (int argc, char *argv[])
{
int i, exit_status, child_status;
@@ -208,9 +195,7 @@ int flex_main (argc, argv)
}
/* Wrapper around flex_main, so flex_main can be built as a library. */
-int main (argc, argv)
- int argc;
- char *argv[];
+int main (int argc, char *argv[])
{
#if ENABLE_NLS
#if HAVE_LOCALE_H
@@ -226,7 +211,7 @@ int main (argc, argv)
/* check_options - check user-specified options */
-void check_options ()
+void check_options (void)
{
int i;
const char * m4 = NULL;
@@ -291,7 +276,7 @@ void check_options ()
flexerror (_("Can't use -+ with -CF option"));
if (C_plus_plus && yytext_is_array) {
- warn (_("%array incompatible with -+ option"));
+ lwarn (_("%array incompatible with -+ option"));
yytext_is_array = false;
}
@@ -325,14 +310,8 @@ void check_options ()
}
}
- if (!ansi_func_defs)
- buf_m4_define( &m4defs_buf, "M4_YY_NO_ANSI_FUNC_DEFS", NULL);
-
- if (!ansi_func_protos)
- buf_m4_define( &m4defs_buf, "M4_YY_NO_ANSI_FUNC_PROTOS", NULL);
-
- if (extra_type)
- buf_m4_define( &m4defs_buf, "M4_EXTRA_TYPE_DEFS", extra_type);
+ if (extra_type)
+ buf_m4_define( &m4defs_buf, "M4_EXTRA_TYPE_DEFS", extra_type);
if (!use_stdout) {
FILE *prev_stdout;
@@ -354,7 +333,7 @@ void check_options ()
prev_stdout = freopen (outfilename, "w+", stdout);
if (prev_stdout == NULL)
- lerrsf (_("could not create %s"), outfilename);
+ lerr (_("could not create %s"), outfilename);
outfile_created = 1;
}
@@ -362,9 +341,46 @@ void check_options ()
/* Setup the filter chain. */
output_chain = filter_create_int(NULL, filter_tee_header, headerfilename);
- if ( !(m4 = getenv("M4")))
- m4 = M4;
- filter_create_ext(output_chain, m4, "-gP", NULL);
+ if ( !(m4 = getenv("M4"))) {
+ char *slash;
+ m4 = M4;
+ if ((slash = strrchr(M4, '/')) != NULL) {
+ m4 = slash+1;
+ /* break up $PATH */
+ const char *path = getenv("PATH");
+ if (!path) {
+ m4 = M4;
+ } else {
+ int m4_length = strlen(m4);
+ do {
+ size_t length = strlen(path);
+ struct stat sbuf;
+
+ const char *endOfDir = strchr(path, ':');
+ if (!endOfDir)
+ endOfDir = path+length;
+
+ {
+ char *m4_path = calloc(endOfDir-path + 1 + m4_length + 1, 1);
+
+ memcpy(m4_path, path, endOfDir-path);
+ m4_path[endOfDir-path] = '/';
+ memcpy(m4_path + (endOfDir-path) + 1, m4, m4_length + 1);
+ if (stat(m4_path, &sbuf) == 0 &&
+ (S_ISREG(sbuf.st_mode)) && sbuf.st_mode & S_IXUSR) {
+ m4 = m4_path;
+ break;
+ }
+ free(m4_path);
+ }
+ path = endOfDir+1;
+ } while (path[0]);
+ if (!path[0])
+ m4 = M4;
+ }
+ }
+ }
+ filter_create_ext(output_chain, m4, "-gP", 0);
filter_create_int(output_chain, filter_fix_linedirs, NULL);
/* For debugging, only run the requested number of filters. */
@@ -389,26 +405,25 @@ void check_options ()
FILE *tablesout;
struct yytbl_hdr hdr;
char *pname = 0;
- int nbytes = 0;
+ size_t nbytes = 0;
buf_m4_define (&m4defs_buf, "M4_YY_TABLES_EXTERNAL", NULL);
if (!tablesfilename) {
nbytes = strlen (prefix) + strlen (tablesfile_template) + 2;
- tablesfilename = pname = (char *) calloc (nbytes, 1);
+ tablesfilename = pname = calloc(nbytes, 1);
snprintf (pname, nbytes, tablesfile_template, prefix);
}
if ((tablesout = fopen (tablesfilename, "w")) == NULL)
- lerrsf (_("could not create %s"), tablesfilename);
- if (pname)
- free (pname);
+ lerr (_("could not create %s"), tablesfilename);
+ free(pname);
tablesfilename = 0;
yytbl_writer_init (&tableswr, tablesout);
nbytes = strlen (prefix) + strlen ("tables") + 2;
- tablesname = (char *) calloc (nbytes, 1);
+ tablesname = calloc(nbytes, 1);
snprintf (tablesname, nbytes, "%stables", prefix);
yytbl_hdr_init (&hdr, flex_version, tablesname);
@@ -417,7 +432,7 @@ void check_options ()
}
if (skelname && (skelfile = fopen (skelname, "r")) == NULL)
- lerrsf (_("can't open skeleton file %s"), skelname);
+ lerr (_("can't open skeleton file %s"), skelname);
if (reentrant) {
buf_m4_define (&m4defs_buf, "M4_YY_REENTRANT", NULL);
@@ -431,6 +446,8 @@ void check_options ()
if ( bison_bridge_lloc)
buf_m4_define (&m4defs_buf, "<M4_YY_BISON_LLOC>", NULL);
+ if (strchr(prefix, '[') || strchr(prefix, ']'))
+ flexerror(_("Prefix cannot include '[' or ']'"));
buf_m4_define(&m4defs_buf, "M4_YY_PREFIX", prefix);
if (did_outfilename)
@@ -451,7 +468,8 @@ void check_options ()
char *str, *fmt = "#define %s %d\n";
size_t strsz;
- str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(scname[i]) + NUMCHARLINES + 2);
+ strsz = strlen(fmt) + strlen(scname[i]) + NUMCHARLINES + 2;
+ str = malloc(strsz);
if (!str)
flexfatal(_("allocation of macro definition failed"));
snprintf(str, strsz, fmt, scname[i], i - 1);
@@ -473,7 +491,8 @@ void check_options ()
m4defs_buf.nelts = 0; /* memory leak here. */
/* Place a bogus line directive, it will be fixed in the filter. */
- outn("#line 0 \"M4_YY_OUTFILE_NAME\"\n");
+ if (gen_line_dirs)
+ outn("#line 0 \"M4_YY_OUTFILE_NAME\"\n");
/* Dump the user defined preproc directives. */
if (userdef_buf.elts)
@@ -489,9 +508,7 @@ void check_options ()
* This routine does not return.
*/
-void flexend (exit_status)
- int exit_status;
-
+void flexend (int exit_status)
{
static int called_before = -1; /* prevent infinite recursion. */
int tblsiz;
@@ -501,11 +518,11 @@ void flexend (exit_status)
if (skelfile != NULL) {
if (ferror (skelfile))
- lerrsf (_("input error reading skeleton file %s"),
+ lerr (_("input error reading skeleton file %s"),
skelname);
else if (fclose (skelfile))
- lerrsf (_("error closing skeleton file %s"),
+ lerr (_("error closing skeleton file %s"),
skelname);
}
@@ -538,7 +555,6 @@ void flexend (exit_status)
"EOB_ACT_END_OF_FILE",
"EOB_ACT_LAST_MATCH",
"FLEX_SCANNER",
- "FLEX_STD",
"REJECT",
"YYFARGS0",
"YYFARGS1",
@@ -625,7 +641,7 @@ void flexend (exit_status)
"yypop_buffer_state",
"yyensure_buffer_stack",
"yyalloc",
- "yyconst",
+ "const",
"yyextra",
"yyfree",
"yyget_debug",
@@ -690,7 +706,7 @@ void flexend (exit_status)
fprintf (header_out, "#endif /* %sHEADER_H */\n", prefix);
if (ferror (header_out))
- lerrsf (_("error creating header file %s"),
+ lerr (_("error creating header file %s"),
headerfilename);
fflush (header_out);
fclose (header_out);
@@ -698,15 +714,15 @@ void flexend (exit_status)
if (exit_status != 0 && outfile_created) {
if (ferror (stdout))
- lerrsf (_("error writing output file %s"),
+ lerr (_("error writing output file %s"),
outfilename);
else if ((_stdout_closed = 1) && fclose (stdout))
- lerrsf (_("error closing output file %s"),
+ lerr (_("error closing output file %s"),
outfilename);
else if (unlink (outfilename))
- lerrsf (_("error deleting output file %s"),
+ lerr (_("error deleting output file %s"),
outfilename);
}
@@ -724,11 +740,11 @@ void flexend (exit_status)
_("Compressed tables always back up.\n"));
if (ferror (backing_up_file))
- lerrsf (_("error writing backup file %s"),
+ lerr (_("error writing backup file %s"),
backing_name);
else if (fclose (backing_up_file))
- lerrsf (_("error closing backup file %s"),
+ lerr (_("error closing backup file %s"),
backing_name);
}
@@ -925,9 +941,7 @@ void flexend (exit_status)
/* flexinit - initialize flex */
-void flexinit (argc, argv)
- int argc;
- char **argv;
+void flexinit (int argc, char **argv)
{
int i, sawcmpflag, rv, optind;
char *arg;
@@ -952,7 +966,6 @@ void flexinit (argc, argv)
tablesext = tablesverify = false;
gentables = true;
tablesfilename = tablesname = NULL;
- ansi_func_defs = ansi_func_protos = true;
sawcmpflag = false;
@@ -981,9 +994,9 @@ void flexinit (argc, argv)
flex_init_regex();
/* Enable C++ if program name ends with '+'. */
- program_name = basename2 (argv[0], 0);
+ program_name = basename (argv[0]);
- if (program_name[0] != '\0' &&
+ if (program_name != NULL &&
program_name[strlen (program_name) - 1] == '+')
C_plus_plus = true;
@@ -1058,9 +1071,9 @@ void flexinit (argc, argv)
break;
default:
- lerrif (_
+ lerr (_
("unknown -C option '%c'"),
- (int) arg[i]);
+ arg[i]);
break;
}
break;
@@ -1104,7 +1117,7 @@ void flexinit (argc, argv)
break;
case OPT_PREPROC_LEVEL:
- preproc_level = strtol(arg,NULL,0);
+ preproc_level = (int) strtol(arg,NULL,0);
break;
case OPT_MAIN:
@@ -1267,7 +1280,7 @@ void flexinit (argc, argv)
}
else {
buf_strnappend (&userdef_buf, arg,
- def - arg);
+ (int) (def - arg));
buf_strappend (&userdef_buf, " ");
buf_strappend (&userdef_buf,
def + 1);
@@ -1329,14 +1342,6 @@ void flexinit (argc, argv)
reject_really_used = false;
break;
- case OPT_NO_ANSI_FUNC_DEFS:
- ansi_func_defs = false;
- break;
-
- case OPT_NO_ANSI_FUNC_PROTOS:
- ansi_func_protos = false;
- break;
-
case OPT_NO_YY_PUSH_STATE:
//buf_strdefine (&userdef_buf, "YY_NO_PUSH_STATE", "1");
buf_m4_define( &m4defs_buf, "M4_YY_NO_PUSH_STATE",0);
@@ -1421,7 +1426,12 @@ void flexinit (argc, argv)
//buf_strdefine (&userdef_buf, "YY_NO_SET_LLOC", "1");
buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LLOC",0);
break;
-
+ case OPT_HEX:
+ trace_hex = 1;
+ break;
+ case OPT_NO_SECT3_ESCAPE:
+ no_section3_escape = true;
+ break;
} /* switch */
} /* while scanopt() */
@@ -1454,13 +1464,13 @@ void flexinit (argc, argv)
/* readin - read in the rules section of the input file(s) */
-void readin ()
+void readin (void)
{
static char yy_stdinit[] = "FILE *yyin = stdin, *yyout = stdout;";
static char yy_nostdinit[] =
- "FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;";
+ "FILE *yyin = NULL, *yyout = NULL;";
- line_directive_out ((FILE *) 0, 1);
+ line_directive_out(NULL, 1);
if (yyparse ()) {
pinpoint_message (_("fatal parse error"));
@@ -1494,7 +1504,7 @@ void readin ()
if (backing_up_report) {
backing_up_file = fopen (backing_name, "w");
if (backing_up_file == NULL)
- lerrsf (_
+ lerr (_
("could not create backing-up info file %s"),
backing_name);
}
@@ -1577,9 +1587,9 @@ void readin ()
if (!do_yywrap) {
if (!C_plus_plus) {
if (reentrant)
- outn ("\n#define yywrap(yyscanner) 1");
+ out_str ("\n#define %swrap(yyscanner) (/*CONSTCOND*/1)\n", prefix);
else
- outn ("\n#define yywrap() 1");
+ out_str ("\n#define %swrap() (/*CONSTCOND*/1)\n", prefix);
}
outn ("#define YY_SKIP_YYWRAP");
}
@@ -1588,10 +1598,7 @@ void readin ()
outn ("\n#define FLEX_DEBUG");
OUT_BEGIN_CODE ();
- if (csize == 256)
- outn ("typedef unsigned char YY_CHAR;");
- else
- outn ("typedef char YY_CHAR;");
+ outn ("typedef flex_uint8_t YY_CHAR;");
OUT_END_CODE ();
if (C_plus_plus) {
@@ -1635,7 +1642,7 @@ void readin ()
OUT_BEGIN_CODE ();
if (fullspd)
- outn ("typedef yyconst struct yy_trans_info *yy_state_type;");
+ outn ("typedef const struct yy_trans_info *yy_state_type;");
else if (!C_plus_plus)
outn ("typedef int yy_state_type;");
OUT_END_CODE ();
@@ -1684,6 +1691,10 @@ void readin ()
}
else {
outn ("extern char *yytext;");
+
+ outn("#ifdef yytext_ptr");
+ outn("#undef yytext_ptr");
+ outn("#endif");
outn ("#define yytext_ptr yytext");
}
}
@@ -1709,7 +1720,7 @@ void readin ()
/* set_up_initial_allocations - allocate memory for internal tables */
-void set_up_initial_allocations ()
+void set_up_initial_allocations (void)
{
maximum_mns = (long_align ? MAXIMUM_MNS_LONG : MAXIMUM_MNS);
current_mns = INITIAL_MNS;
@@ -1763,31 +1774,11 @@ void set_up_initial_allocations ()
dss = allocate_int_ptr_array (current_max_dfas);
dfaacc = allocate_dfaacc_union (current_max_dfas);
- nultrans = (int *) 0;
+ nultrans = NULL;
}
-/* extracts basename from path, optionally stripping the extension "\.*"
- * (same concept as /bin/sh `basename`, but different handling of extension). */
-static char *basename2 (path, strip_ext)
- char *path;
- int strip_ext; /* boolean */
-{
- char *b, *e = 0;
-
- b = path;
- for (b = path; *path; path++)
- if (*path == '/')
- b = path + 1;
- else if (*path == '.')
- e = path;
-
- if (strip_ext && e && e > b)
- *e = '\0';
- return b;
-}
-
-void usage ()
+void usage (void)
{
FILE *f = stdout;
@@ -1819,6 +1810,7 @@ void usage ()
" -T, --trace %s should run in trace mode\n"
" -w, --nowarn do not generate warnings\n"
" -v, --verbose write summary of scanner statistics to stdout\n"
+ " --hex use hexadecimal numbers instead of octal in debug outputs\n"
"\n" "Files:\n"
" -o, --outfile=FILE specify output filename\n"
" -S, --skel=FILE specify skeleton file\n"
@@ -1844,8 +1836,6 @@ void usage ()
" --bison-bridge scanner for bison pure parser.\n"
" --bison-locations include yylloc support.\n"
" --stdinit initialize yyin/yyout to stdin/stdout\n"
- " --noansi-definitions old-style function definitions\n"
- " --noansi-prototypes empty parameter list in prototypes\n"
" --nounistd do not include <unistd.h>\n"
" --noFUNCTION do not generate a particular FUNCTION\n"
"\n" "Miscellaneous:\n"
diff --git a/contrib/flex/misc.c b/contrib/flex/src/misc.c
index f9cb3775e7ad..ef27833c3ea7 100644
--- a/contrib/flex/misc.c
+++ b/contrib/flex/src/misc.c
@@ -30,7 +30,6 @@
/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
-
#include "flexdef.h"
#include "tables.h"
@@ -60,14 +59,15 @@ static void sko_push(bool dc)
{
if(!sko_stack){
sko_sz = 1;
- sko_stack = (struct sko_state*)flex_alloc(sizeof(struct sko_state)*sko_sz);
+ sko_stack = malloc(sizeof(struct sko_state) * (size_t) sko_sz);
if (!sko_stack)
flexfatal(_("allocation of sko_stack failed"));
sko_len = 0;
}
if(sko_len >= sko_sz){
sko_sz *= 2;
- sko_stack = (struct sko_state*)flex_realloc(sko_stack,sizeof(struct sko_state)*sko_sz);
+ sko_stack = realloc(sko_stack,
+ sizeof(struct sko_state) * (size_t) sko_sz);
}
/* initialize to zero and push */
@@ -90,9 +90,7 @@ static void sko_pop(bool* dc)
}
/* Append "#define defname value\n" to the running buffer. */
-void action_define (defname, value)
- const char *defname;
- int value;
+void action_define (const char *defname, int value)
{
char buf[MAXLINE];
char *cpy;
@@ -108,39 +106,14 @@ void action_define (defname, value)
add_action (buf);
/* track #defines so we can undef them when we're done. */
- cpy = copy_string (defname);
+ cpy = xstrdup(defname);
buf_append (&defs_buf, &cpy, 1);
}
-
-#ifdef notdef
-/** Append "m4_define([[defname]],[[value]])m4_dnl\n" to the running buffer.
- * @param defname The macro name.
- * @param value The macro value, can be NULL, which is the same as the empty string.
- */
-void action_m4_define (const char *defname, const char * value)
-{
- char buf[MAXLINE];
-
- flexfatal ("DO NOT USE THIS FUNCTION!");
-
- if ((int) strlen (defname) > MAXLINE / 2) {
- format_pinpoint_message (_
- ("name \"%s\" ridiculously long"),
- defname);
- return;
- }
-
- snprintf (buf, sizeof(buf), "m4_define([[%s]],[[%s]])m4_dnl\n", defname, value?value:"");
- add_action (buf);
-}
-#endif
-
/* Append "new_text" to the running buffer. */
-void add_action (new_text)
- const char *new_text;
+void add_action (const char *new_text)
{
- int len = strlen (new_text);
+ int len = (int) strlen (new_text);
while (len + action_index >= action_size - 10 /* slop */ ) {
int new_size = action_size * 2;
@@ -166,14 +139,17 @@ void add_action (new_text)
/* allocate_array - allocate memory for an integer array of the given size */
-void *allocate_array (size, element_size)
- int size;
- size_t element_size;
+void *allocate_array (int size, size_t element_size)
{
void *mem;
- size_t num_bytes = element_size * size;
-
- mem = flex_alloc (num_bytes);
+#if HAVE_REALLOCARRAY
+ /* reallocarray has built-in overflow detection */
+ mem = reallocarray(NULL, (size_t) size, element_size);
+#else
+ size_t num_bytes = (size_t) size * element_size;
+ mem = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
+ malloc(num_bytes);
+#endif
if (!mem)
flexfatal (_
("memory allocation failed in allocate_array()"));
@@ -184,11 +160,10 @@ void *allocate_array (size, element_size)
/* all_lower - true if a string is all lower-case */
-int all_lower (str)
- char *str;
+int all_lower (char *str)
{
while (*str) {
- if (!isascii ((Char) * str) || !islower ((Char) * str))
+ if (!isascii ((unsigned char) * str) || !islower ((unsigned char) * str))
return 0;
++str;
}
@@ -199,11 +174,10 @@ int all_lower (str)
/* all_upper - true if a string is all upper-case */
-int all_upper (str)
- char *str;
+int all_upper (char *str)
{
while (*str) {
- if (!isascii ((Char) * str) || !isupper ((Char) * str))
+ if (!isascii ((unsigned char) * str) || !isupper ((unsigned char) * str))
return 0;
++str;
}
@@ -225,15 +199,14 @@ int intcmp (const void *a, const void *b)
* and exits.
*/
-void check_char (c)
- int c;
+void check_char (int c)
{
if (c >= CSIZE)
- lerrsf (_("bad character '%s' detected in check_char()"),
+ lerr (_("bad character '%s' detected in check_char()"),
readable_form (c));
if (c >= csize)
- lerrsf (_
+ lerr (_
("scanner requires -8 flag to use the character %s"),
readable_form (c));
}
@@ -242,57 +215,20 @@ void check_char (c)
/* clower - replace upper-case letter to lower-case */
-Char clower (c)
- int c;
+unsigned char clower (int c)
{
- return (Char) ((isascii (c) && isupper (c)) ? tolower (c) : c);
+ return (unsigned char) ((isascii (c) && isupper (c)) ? tolower (c) : c);
}
-/* copy_string - returns a dynamically allocated copy of a string */
-
-char *copy_string (str)
- const char *str;
+char *xstrdup(const char *s)
{
- const char *c1;
- char *c2;
- char *copy;
- unsigned int size;
+ char *s2;
- /* find length */
- for (c1 = str; *c1; ++c1) ;
+ if ((s2 = strdup(s)) == NULL)
+ flexfatal (_("memory allocation failure in xstrdup()"));
- size = (c1 - str + 1) * sizeof (char);
-
- copy = (char *) flex_alloc (size);
-
- if (copy == NULL)
- flexfatal (_("dynamic memory failure in copy_string()"));
-
- for (c2 = copy; (*c2++ = *str++) != 0;) ;
-
- return copy;
-}
-
-
-/* copy_unsigned_string -
- * returns a dynamically allocated copy of a (potentially) unsigned string
- */
-
-Char *copy_unsigned_string (str)
- Char *str;
-{
- Char *c;
- Char *copy;
-
- /* find length */
- for (c = str; *c; ++c) ;
-
- copy = allocate_Character_array (c - str + 1);
-
- for (c = copy; (*c++ = *str++) != 0;) ;
-
- return copy;
+ return s2;
}
@@ -300,19 +236,19 @@ Char *copy_unsigned_string (str)
int cclcmp (const void *a, const void *b)
{
- if (!*(const Char *) a)
+ if (!*(const unsigned char *) a)
return 1;
else
- if (!*(const Char *) b)
+ if (!*(const unsigned char *) b)
return - 1;
else
- return *(const Char *) a - *(const Char *) b;
+ return *(const unsigned char *) a - *(const unsigned char *) b;
}
/* dataend - finish up a block of data declarations */
-void dataend ()
+void dataend (void)
{
/* short circuit any output */
if (gentables) {
@@ -330,7 +266,7 @@ void dataend ()
/* dataflush - flush generated data statements */
-void dataflush ()
+void dataflush (void)
{
/* short circuit any output */
if (!gentables)
@@ -353,8 +289,7 @@ void dataflush ()
/* flexerror - report an error message and terminate */
-void flexerror (msg)
- const char *msg;
+void flexerror (const char *msg)
{
fprintf (stderr, "%s: %s\n", program_name, msg);
flexend (1);
@@ -363,8 +298,7 @@ void flexerror (msg)
/* flexfatal - report a fatal error message and terminate */
-void flexfatal (msg)
- const char *msg;
+void flexfatal (const char *msg)
{
fprintf (stderr, _("%s: fatal internal error, %s\n"),
program_name, msg);
@@ -372,67 +306,41 @@ void flexfatal (msg)
}
-/* htoi - convert a hexadecimal digit string to an integer value */
-
-int htoi (str)
- Char str[];
-{
- unsigned int result;
-
- (void) sscanf ((char *) str, "%x", &result);
-
- return result;
-}
-
-
-/* lerrif - report an error message formatted with one integer argument */
+/* lerr - report an error message */
-void lerrif (msg, arg)
- const char *msg;
- int arg;
+void lerr (const char *msg, ...)
{
char errmsg[MAXLINE];
+ va_list args;
- snprintf (errmsg, sizeof(errmsg), msg, arg);
+ va_start(args, msg);
+ vsnprintf (errmsg, sizeof(errmsg), msg, args);
+ va_end(args);
flexerror (errmsg);
}
-/* lerrsf - report an error message formatted with one string argument */
+/* lerr_fatal - as lerr, but call flexfatal */
-void lerrsf (msg, arg)
- const char *msg, arg[];
+void lerr_fatal (const char *msg, ...)
{
char errmsg[MAXLINE];
+ va_list args;
+ va_start(args, msg);
- snprintf (errmsg, sizeof(errmsg)-1, msg, arg);
- errmsg[sizeof(errmsg)-1] = 0; /* ensure NULL termination */
- flexerror (errmsg);
-}
-
-
-/* lerrsf_fatal - as lerrsf, but call flexfatal */
-
-void lerrsf_fatal (msg, arg)
- const char *msg, arg[];
-{
- char errmsg[MAXLINE];
-
- snprintf (errmsg, sizeof(errmsg)-1, msg, arg);
- errmsg[sizeof(errmsg)-1] = 0; /* ensure NULL termination */
+ vsnprintf (errmsg, sizeof(errmsg), msg, args);
+ va_end(args);
flexfatal (errmsg);
}
/* line_directive_out - spit out a "#line" statement */
-void line_directive_out (output_file, do_infile)
- FILE *output_file;
- int do_infile;
+void line_directive_out (FILE *output_file, int do_infile)
{
char directive[MAXLINE], filename[MAXLINE];
char *s1, *s2, *s3;
- static const char *line_fmt = "#line %d \"%s\"\n";
+ static const char line_fmt[] = "#line %d \"%s\"\n";
if (!gen_line_dirs)
return;
@@ -446,8 +354,8 @@ void line_directive_out (output_file, do_infile)
s3 = &filename[sizeof (filename) - 2];
while (s2 < s3 && *s1) {
- if (*s1 == '\\')
- /* Escape the '\' */
+ if (*s1 == '\\' || *s1 == '"')
+ /* Escape the '\' or '"' */
*s2++ = '\\';
*s2++ = *s1++;
@@ -476,7 +384,7 @@ void line_directive_out (output_file, do_infile)
* representing where the user's section 1 definitions end
* and the prolog begins
*/
-void mark_defs1 ()
+void mark_defs1 (void)
{
defs1_offset = 0;
action_array[action_index++] = '\0';
@@ -488,7 +396,7 @@ void mark_defs1 ()
/* mark_prolog - mark the current position in the action array as
* representing the end of the action prolog
*/
-void mark_prolog ()
+void mark_prolog (void)
{
action_array[action_index++] = '\0';
action_offset = action_index;
@@ -500,8 +408,7 @@ void mark_prolog ()
*
* Generates a data statement initializing the current 2-D array to "value".
*/
-void mk2data (value)
- int value;
+void mk2data (int value)
{
/* short circuit any output */
if (!gentables)
@@ -530,8 +437,7 @@ void mk2data (value)
* Generates a data statement initializing the current array element to
* "value".
*/
-void mkdata (value)
- int value;
+void mkdata (int value)
{
/* short circuit any output */
if (!gentables)
@@ -556,8 +462,7 @@ void mkdata (value)
/* myctoi - return the integer represented by a string of digits */
-int myctoi (array)
- const char *array;
+int myctoi (const char *array)
{
int val = 0;
@@ -569,10 +474,9 @@ int myctoi (array)
/* myesc - return character corresponding to escape sequence */
-Char myesc (array)
- Char array[];
+unsigned char myesc (unsigned char array[])
{
- Char c, esc_char;
+ unsigned char c, esc_char;
switch (array[1]) {
case 'b':
@@ -585,19 +489,10 @@ Char myesc (array)
return '\r';
case 't':
return '\t';
-
-#if defined (__STDC__)
case 'a':
return '\a';
case 'v':
return '\v';
-#else
- case 'a':
- return '\007';
- case 'v':
- return '\013';
-#endif
-
case '0':
case '1':
case '2':
@@ -609,18 +504,15 @@ Char myesc (array)
{ /* \<octal> */
int sptr = 1;
- while (isascii (array[sptr]) &&
- isdigit (array[sptr]))
- /* Don't increment inside loop control
- * because if isdigit() is a macro it might
- * expand into multiple increments ...
- */
+ while (sptr <= 3 &&
+ array[sptr] >= '0' && array[sptr] <= '7') {
++sptr;
+ }
c = array[sptr];
array[sptr] = '\0';
- esc_char = otoi (array + 1);
+ esc_char = (unsigned char) strtoul (array + 1, NULL, 8);
array[sptr] = c;
@@ -631,18 +523,18 @@ Char myesc (array)
{ /* \x<hex> */
int sptr = 2;
- while (isascii (array[sptr]) &&
- isxdigit (array[sptr]))
+ while (sptr <= 3 && isxdigit (array[sptr])) {
/* Don't increment inside loop control
- * because if isdigit() is a macro it might
+ * because if isxdigit() is a macro it might
* expand into multiple increments ...
*/
++sptr;
+ }
c = array[sptr];
array[sptr] = '\0';
- esc_char = htoi (array + 2);
+ esc_char = (unsigned char) strtoul (array + 2, NULL, 16);
array[sptr] = c;
@@ -655,76 +547,51 @@ Char myesc (array)
}
-/* otoi - convert an octal digit string to an integer value */
-
-int otoi (str)
- Char str[];
-{
- unsigned int result;
-
- (void) sscanf ((char *) str, "%o", &result);
- return result;
-}
-
-
/* out - various flavors of outputing a (possibly formatted) string for the
* generated scanner, keeping track of the line count.
*/
-void out (str)
- const char *str;
+void out (const char *str)
{
fputs (str, stdout);
}
-void out_dec (fmt, n)
- const char *fmt;
- int n;
+void out_dec (const char *fmt, int n)
{
fprintf (stdout, fmt, n);
}
-void out_dec2 (fmt, n1, n2)
- const char *fmt;
- int n1, n2;
+void out_dec2 (const char *fmt, int n1, int n2)
{
fprintf (stdout, fmt, n1, n2);
}
-void out_hex (fmt, x)
- const char *fmt;
- unsigned int x;
+void out_hex (const char *fmt, unsigned int x)
{
fprintf (stdout, fmt, x);
}
-void out_str (fmt, str)
- const char *fmt, str[];
+void out_str (const char *fmt, const char str[])
{
fprintf (stdout,fmt, str);
}
-void out_str3 (fmt, s1, s2, s3)
- const char *fmt, s1[], s2[], s3[];
+void out_str3 (const char *fmt, const char s1[], const char s2[], const char s3[])
{
fprintf (stdout,fmt, s1, s2, s3);
}
-void out_str_dec (fmt, str, n)
- const char *fmt, str[];
- int n;
+void out_str_dec (const char *fmt, const char str[], int n)
{
fprintf (stdout,fmt, str, n);
}
-void outc (c)
- int c;
+void outc (int c)
{
fputc (c, stdout);
}
-void outn (str)
- const char *str;
+void outn (const char *str)
{
fputs (str,stdout);
fputc('\n',stdout);
@@ -733,7 +600,6 @@ void outn (str)
/** Print "m4_define( [[def]], [[val]])m4_dnl\n".
* @param def The m4 symbol to define.
* @param val The definition; may be NULL.
- * @return buf
*/
void out_m4_define (const char* def, const char* val)
{
@@ -742,15 +608,14 @@ void out_m4_define (const char* def, const char* val)
}
-/* readable_form - return the human-readable form of a character
+/* readable_form - return the the human-readable form of a character
*
* The returned string is in static storage.
*/
-char *readable_form (c)
- int c;
+char *readable_form (int c)
{
- static char rform[10];
+ static char rform[20];
if ((c >= 0 && c < 32) || c >= 127) {
switch (c) {
@@ -764,16 +629,15 @@ char *readable_form (c)
return "\\r";
case '\t':
return "\\t";
-
-#if defined (__STDC__)
case '\a':
return "\\a";
case '\v':
return "\\v";
-#endif
-
default:
- snprintf (rform, sizeof(rform), "\\%.3o", (unsigned int) c);
+ if(trace_hex)
+ snprintf (rform, sizeof(rform), "\\x%.2x", (unsigned int) c);
+ else
+ snprintf (rform, sizeof(rform), "\\%.3o", (unsigned int) c);
return rform;
}
}
@@ -782,7 +646,7 @@ char *readable_form (c)
return "' '";
else {
- rform[0] = c;
+ rform[0] = (char) c;
rform[1] = '\0';
return rform;
@@ -792,15 +656,17 @@ char *readable_form (c)
/* reallocate_array - increase the size of a dynamic array */
-void *reallocate_array (array, size, element_size)
- void *array;
- int size;
- size_t element_size;
+void *reallocate_array (void *array, int size, size_t element_size)
{
void *new_array;
- size_t num_bytes = element_size * size;
-
- new_array = flex_realloc (array, num_bytes);
+#if HAVE_REALLOCARRAY
+ /* reallocarray has built-in overflow detection */
+ new_array = reallocarray(array, (size_t) size, element_size);
+#else
+ size_t num_bytes = (size_t) size * element_size;
+ new_array = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
+ realloc(array, num_bytes);
+#endif
if (!new_array)
flexfatal (_("attempt to increase array size failed"));
@@ -814,7 +680,7 @@ void *reallocate_array (array, size, element_size)
* Copies skelfile or skel array to stdout until a line beginning with
* "%%" or EOF is found.
*/
-void skelout ()
+void skelout (void)
{
char buf_storage[MAXLINE];
char *buf = buf_storage;
@@ -925,9 +791,6 @@ void skelout ()
/* %e end linkage-only code. */
OUT_END_CODE ();
}
- else if (buf[1] == '#') {
- /* %# a comment in the skel. ignore. */
- }
else {
flexfatal (_("bad line in skeleton file"));
}
@@ -945,8 +808,7 @@ void skelout ()
* element_n. Formats the output with spaces and carriage returns.
*/
-void transition_struct_out (element_v, element_n)
- int element_v, element_n;
+void transition_struct_out (int element_v, int element_n)
{
/* short circuit any output */
@@ -970,12 +832,14 @@ void transition_struct_out (element_v, element_n)
/* The following is only needed when building flex's parser using certain
* broken versions of bison.
+ *
+ * XXX: this is should go soon
*/
-void *yy_flex_xmalloc (size)
- int size;
+void *yy_flex_xmalloc (int size)
{
- void *result = flex_alloc ((size_t) size);
+ void *result;
+ result = malloc((size_t) size);
if (!result)
flexfatal (_
("memory allocation failed in yy_flex_xmalloc()"));
@@ -984,29 +848,10 @@ void *yy_flex_xmalloc (size)
}
-/* zero_out - set a region of memory to 0
- *
- * Sets region_ptr[0] through region_ptr[size_in_bytes - 1] to zero.
- */
-
-void zero_out (region_ptr, size_in_bytes)
- char *region_ptr;
- size_t size_in_bytes;
-{
- char *rp, *rp_end;
-
- rp = region_ptr;
- rp_end = region_ptr + size_in_bytes;
-
- while (rp < rp_end)
- *rp++ = 0;
-}
-
/* Remove all '\n' and '\r' characters, if any, from the end of str.
* str can be any null-terminated string, or NULL.
* returns str. */
-char *chomp (str)
- char *str;
+char *chomp (char *str)
{
char *p = str;
diff --git a/contrib/flex/mkskel.sh b/contrib/flex/src/mkskel.sh
index 02c397a81c96..1aa59e1a0e6b 100755
--- a/contrib/flex/mkskel.sh
+++ b/contrib/flex/src/mkskel.sh
@@ -21,17 +21,34 @@
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-cat <<!
-/* File created from flex.skl via mkskel.sh */
+if test ! $# = 3; then
+ echo 'Usage: mkskel.sh srcdir m4 version' >&2
+ exit 1
+fi
+echo '/* File created from flex.skl via mkskel.sh */
#include "flexdef.h"
-const char *skel[] = {
-!
-
-sed 's/\\/&&/g' | sed 's/"/\\"/g' | sed 's/.*/ "&",/'
-
-cat <<!
- 0
-};
-!
+const char *skel[] = {'
+srcdir=$1
+m4=$2
+VERSION=$3
+case $VERSION in
+ *[!0-9.]*) echo 'Invalid version number' >&2; exit 1;;
+esac
+IFS=.
+set $VERSION
+sed 's/4_/a4_/g
+s/m4preproc_/m4_/g
+' "$srcdir/flex.skl" |
+"$m4" -P -I "$srcdir" "-DFLEX_MAJOR_VERSION=$1" \
+ "-DFLEX_MINOR_VERSION=$2" \
+ "-DFLEX_SUBMINOR_VERSION=$3" |
+sed '/^%#/d
+s/m4_/m4preproc_/g
+s/a4_/4_/g
+s/[\\"]/\\&/g
+s/.*/ "&",/'
+
+echo ' 0
+};'
diff --git a/contrib/flex/nfa.c b/contrib/flex/src/nfa.c
index f06bfdc79851..9143cf6649c9 100644
--- a/contrib/flex/nfa.c
+++ b/contrib/flex/src/nfa.c
@@ -36,8 +36,8 @@
/* declare functions that have forward references */
-int dupmachine PROTO ((int));
-void mkxtion PROTO ((int, int));
+int dupmachine(int);
+void mkxtion(int, int);
/* add_accept - add an accepting state to a machine
@@ -45,8 +45,7 @@ void mkxtion PROTO ((int, int));
* accepting_number becomes mach's accepting number.
*/
-void add_accept (mach, accepting_number)
- int mach, accepting_number;
+void add_accept (int mach, int accepting_number)
{
/* Hang the accepting number off an epsilon state. if it is associated
* with a state that has a non-epsilon out-transition, then the state
@@ -77,8 +76,7 @@ void add_accept (mach, accepting_number)
* num - the number of copies of singl to be present in newsng
*/
-int copysingl (singl, num)
- int singl, num;
+int copysingl (int singl, int num)
{
int copy, i;
@@ -93,9 +91,7 @@ int copysingl (singl, num)
/* dumpnfa - debugging routine to write out an nfa */
-void dumpnfa (state1)
- int state1;
-
+void dumpnfa (int state1)
{
int sym, tsp1, tsp2, anum, ns;
@@ -148,8 +144,7 @@ void dumpnfa (state1)
* states accessible by the arrays firstst and lastst
*/
-int dupmachine (mach)
- int mach;
+int dupmachine (int mach)
{
int i, init, state_offset;
int state = 0;
@@ -196,9 +191,8 @@ int dupmachine (mach)
* context has variable length.
*/
-void finish_rule (mach, variable_trail_rule, headcnt, trailcnt,
- pcont_act)
- int mach, variable_trail_rule, headcnt, trailcnt, pcont_act;
+void finish_rule (int mach, int variable_trail_rule, int headcnt, int trailcnt,
+ int pcont_act)
{
char action_text[MAXLINE];
@@ -257,12 +251,23 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt,
("*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */\n");
if (headcnt > 0) {
+ if (rule_has_nl[num_rules]) {
+ snprintf (action_text, sizeof(action_text),
+ "YY_LINENO_REWIND_TO(%s + %d);\n", scanner_bp, headcnt);
+ add_action (action_text);
+ }
snprintf (action_text, sizeof(action_text), "%s = %s + %d;\n",
scanner_cp, scanner_bp, headcnt);
add_action (action_text);
}
else {
+ if (rule_has_nl[num_rules]) {
+ snprintf (action_text, sizeof(action_text),
+ "YY_LINENO_REWIND_TO(yy_cp - %d);\n", trailcnt);
+ add_action (action_text);
+ }
+
snprintf (action_text, sizeof(action_text), "%s -= %d;\n",
scanner_cp, trailcnt);
add_action (action_text);
@@ -281,7 +286,8 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt,
if (!continued_action)
add_action ("YY_RULE_SETUP\n");
- line_directive_out ((FILE *) 0, 1);
+ line_directive_out(NULL, 1);
+ add_action("[[");
}
@@ -301,8 +307,7 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt,
* FIRST is set to new by the operation. last is unmolested.
*/
-int link_machines (first, last)
- int first, last;
+int link_machines (int first, int last)
{
if (first == NIL)
return last;
@@ -328,8 +333,7 @@ int link_machines (first, last)
* The "beginning" states are the epsilon closure of the first state
*/
-void mark_beginning_as_normal (mach)
- int mach;
+void mark_beginning_as_normal (int mach)
{
switch (state_type[mach]) {
case STATE_NORMAL:
@@ -370,8 +374,7 @@ void mark_beginning_as_normal (mach)
* more mkbranch's. Compare with mkor()
*/
-int mkbranch (first, second)
- int first, second;
+int mkbranch (int first, int second)
{
int eps;
@@ -398,8 +401,7 @@ int mkbranch (first, second)
* new - a new state which matches the closure of "state"
*/
-int mkclos (state)
- int state;
+int mkclos (int state)
{
return mkopt (mkposcl (state));
}
@@ -419,8 +421,7 @@ int mkclos (state)
* 2. mach is destroyed by the call
*/
-int mkopt (mach)
- int mach;
+int mkopt (int mach)
{
int eps;
@@ -456,8 +457,7 @@ int mkopt (mach)
* the number of epsilon states needed
*/
-int mkor (first, second)
- int first, second;
+int mkor (int first, int second)
{
int eps, orend;
@@ -512,8 +512,7 @@ int mkor (first, second)
* new - a machine matching the positive closure of "state"
*/
-int mkposcl (state)
- int state;
+int mkposcl (int state)
{
int eps;
@@ -542,8 +541,7 @@ int mkposcl (state)
* if "ub" is INFINITE_REPEAT then "new" matches "lb" or more occurrences of "mach"
*/
-int mkrep (mach, lb, ub)
- int mach, lb, ub;
+int mkrep (int mach, int lb, int ub)
{
int base_mach, tail, copy, i;
@@ -589,12 +587,11 @@ int mkrep (mach, lb, ub)
* that it admittedly is)
*/
-int mkstate (sym)
- int sym;
+int mkstate (int sym)
{
if (++lastnfa >= current_mns) {
if ((current_mns += MNS_INCREMENT) >= maximum_mns)
- lerrif (_
+ lerr(_
("input rules are too complicated (>= %d NFA states)"),
current_mns);
@@ -666,8 +663,7 @@ current_mns);
* stateto - the state to which the transition is to be made
*/
-void mkxtion (statefrom, stateto)
- int statefrom, stateto;
+void mkxtion (int statefrom, int stateto)
{
if (trans1[statefrom] == NO_TRANSITION)
trans1[statefrom] = stateto;
@@ -684,7 +680,7 @@ void mkxtion (statefrom, stateto)
/* new_rule - initialize for a new rule */
-void new_rule ()
+void new_rule (void)
{
if (++num_rules >= current_max_rules) {
++num_reallocs;
@@ -700,7 +696,7 @@ void new_rule ()
}
if (num_rules > MAX_RULE)
- lerrif (_("too many rules (> %d)!"), MAX_RULE);
+ lerr (_("too many rules (> %d)!"), MAX_RULE);
rule_linenum[num_rules] = linenum;
rule_useful[num_rules] = false;
diff --git a/contrib/flex/options.c b/contrib/flex/src/options.c
index c6731738a19b..366bc2e566c6 100644
--- a/contrib/flex/options.c
+++ b/contrib/flex/src/options.c
@@ -117,6 +117,8 @@ optspec_t flexopts[] = {
,
{"--help", OPT_HELP, 0}
, /* Produce this help message. */
+ {"--hex", OPT_HEX, 0}
+ , /* Use hexadecimals in debug/trace outputs */
{"-I", OPT_INTERACTIVE, 0}
,
{"--interactive", OPT_INTERACTIVE, 0}
@@ -211,10 +213,6 @@ optspec_t flexopts[] = {
,
{"--nowarn", OPT_NO_WARN, 0}
, /* Suppress warning messages. */
- {"--noansi-definitions", OPT_NO_ANSI_FUNC_DEFS, 0}
- ,
- {"--noansi-prototypes", OPT_NO_ANSI_FUNC_PROTOS, 0}
- ,
{"--yyclass=NAME", OPT_YYCLASS, 0}
,
{"--yylineno", OPT_YYLINENO, 0}
@@ -273,7 +271,8 @@ optspec_t flexopts[] = {
,
{"--noyyset_lloc", OPT_NO_YYSET_LLOC, 0}
,
-
+ {"--unsafe-no-m4-sect3-escape", OPT_NO_SECT3_ESCAPE, 0}
+ ,
{0, 0, 0} /* required final NULL entry. */
};
diff --git a/contrib/flex/options.h b/contrib/flex/src/options.h
index 1f3925b9e94d..5b51c23816a1 100644
--- a/contrib/flex/options.h
+++ b/contrib/flex/src/options.h
@@ -60,6 +60,7 @@ enum flexopt_flag_t {
OPT_FULL,
OPT_HEADER_FILE,
OPT_HELP,
+ OPT_HEX,
OPT_INTERACTIVE,
OPT_LEX_COMPAT,
OPT_POSIX_COMPAT,
@@ -67,8 +68,6 @@ enum flexopt_flag_t {
OPT_META_ECS,
OPT_NEVER_INTERACTIVE,
OPT_NO_ALIGN,
- OPT_NO_ANSI_FUNC_DEFS,
- OPT_NO_ANSI_FUNC_PROTOS,
OPT_NO_DEBUG,
OPT_NO_DEFAULT,
OPT_NO_ECS,
@@ -126,7 +125,8 @@ enum flexopt_flag_t {
OPT_YYCLASS,
OPT_YYLINENO,
OPT_YYMORE,
- OPT_YYWRAP
+ OPT_YYWRAP,
+ OPT_NO_SECT3_ESCAPE,
};
#endif
diff --git a/contrib/flex/parse.y b/contrib/flex/src/parse.y
index d0cc706889cd..5a0732066874 100644
--- a/contrib/flex/parse.y
+++ b/contrib/flex/src/parse.y
@@ -1,8 +1,8 @@
/* parse.y - parser for flex input */
%token CHAR NUMBER SECTEND SCDECL XSCDECL NAME PREVCCL EOF_OP
-%token OPTION_OP OPT_OUTFILE OPT_PREFIX OPT_YYCLASS OPT_HEADER OPT_EXTRA_TYPE
-%token OPT_TABLES
+%token TOK_OPTION TOK_OUTFILE TOK_PREFIX TOK_YYCLASS TOK_HEADER_FILE TOK_EXTRA_TYPE
+%token TOK_TABLES_FILE
%token CCE_ALNUM CCE_ALPHA CCE_BLANK CCE_CNTRL CCE_DIGIT CCE_GRAPH
%token CCE_LOWER CCE_PRINT CCE_PUNCT CCE_SPACE CCE_UPPER CCE_XDIGIT
@@ -80,7 +80,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
do{ \
char fw3_msg[MAXLINE];\
snprintf( fw3_msg, MAXLINE,(fmt), (a1), (a2) );\
- warn( fw3_msg );\
+ lwarn( fw3_msg );\
}while(0)
/* Expand a POSIX character class expression. */
@@ -140,7 +140,7 @@ goal : initlex sect1 sect1end sect2 initforrule
else
add_action( "ECHO" );
- add_action( ";\n\tYY_BREAK\n" );
+ add_action( ";\n\tYY_BREAK]]\n" );
}
;
@@ -184,28 +184,30 @@ namelist1 : namelist1 NAME
{ synerr( _("bad start condition list") ); }
;
-options : OPTION_OP optionlist
+options : TOK_OPTION optionlist
;
optionlist : optionlist option
|
;
-option : OPT_OUTFILE '=' NAME
+option : TOK_OUTFILE '=' NAME
{
- outfilename = copy_string( nmstr );
+ outfilename = xstrdup(nmstr);
did_outfilename = 1;
}
- | OPT_EXTRA_TYPE '=' NAME
- { extra_type = copy_string( nmstr ); }
- | OPT_PREFIX '=' NAME
- { prefix = copy_string( nmstr ); }
- | OPT_YYCLASS '=' NAME
- { yyclass = copy_string( nmstr ); }
- | OPT_HEADER '=' NAME
- { headerfilename = copy_string( nmstr ); }
- | OPT_TABLES '=' NAME
- { tablesext = true; tablesfilename = copy_string( nmstr ); }
+ | TOK_EXTRA_TYPE '=' NAME
+ { extra_type = xstrdup(nmstr); }
+ | TOK_PREFIX '=' NAME
+ { prefix = xstrdup(nmstr);
+ if (strchr(prefix, '[') || strchr(prefix, ']'))
+ flexerror(_("Prefix must not contain [ or ]")); }
+ | TOK_YYCLASS '=' NAME
+ { yyclass = xstrdup(nmstr); }
+ | TOK_HEADER_FILE '=' NAME
+ { headerfilename = xstrdup(nmstr); }
+ | TOK_TABLES_FILE '=' NAME
+ { tablesext = true; tablesfilename = xstrdup(nmstr); }
;
sect2 : sect2 scon initforrule flexrule '\n'
@@ -303,7 +305,7 @@ flexrule : '^' rule
scon_stk[++scon_stk_ptr] = i;
if ( scon_stk_ptr == 0 )
- warn(
+ lwarn(
"all start conditions already have <<EOF>> rules" );
else
@@ -398,7 +400,7 @@ rule : re2 re
* erroneously.
*/
if ( ! varlength || headcnt != 0 )
- warn(
+ lwarn(
"trailing context made variable due to preceding '|' action" );
/* Mark as variable. */
@@ -453,7 +455,7 @@ rule : re2 re
/* See the comment in the rule for "re2 re"
* above.
*/
- warn(
+ lwarn(
"trailing context made variable due to preceding '|' action" );
varlength = true;
@@ -725,7 +727,7 @@ singleton : singleton '*'
{
/* Sort characters for fast searching.
*/
- qsort( ccltbl + cclmap[$1], ccllen[$1], sizeof (*ccltbl), cclcmp );
+ qsort( ccltbl + cclmap[$1], (size_t) ccllen[$1], sizeof (*ccltbl), cclcmp );
if ( useecs )
mkeccl( ccltbl + cclmap[$1], ccllen[$1],
@@ -913,13 +915,13 @@ ccl_expr:
| CCE_NEG_XDIGIT { CCL_NEG_EXPR(isxdigit); }
| CCE_NEG_LOWER {
if ( sf_case_ins() )
- warn(_("[:^lower:] is ambiguous in case insensitive scanner"));
+ lwarn(_("[:^lower:] is ambiguous in case insensitive scanner"));
else
CCL_NEG_EXPR(islower);
}
| CCE_NEG_UPPER {
if ( sf_case_ins() )
- warn(_("[:^upper:] ambiguous in case insensitive scanner"));
+ lwarn(_("[:^upper:] ambiguous in case insensitive scanner"));
else
CCL_NEG_EXPR(isupper);
}
@@ -951,7 +953,7 @@ string : string CHAR
* conditions
*/
-void build_eof_action()
+void build_eof_action(void)
{
int i;
char action_text[MAXLINE];
@@ -976,7 +978,8 @@ void build_eof_action()
}
}
- line_directive_out( (FILE *) 0, 1 );
+ line_directive_out(NULL, 1);
+ add_action("[[");
/* This isn't a normal rule after all - don't count it as
* such, so we don't have any holes in the rule numbering
@@ -990,8 +993,7 @@ void build_eof_action()
/* format_synerr - write out formatted syntax error */
-void format_synerr( msg, arg )
-const char *msg, arg[];
+void format_synerr( const char *msg, const char arg[] )
{
char errmsg[MAXLINE];
@@ -1002,8 +1004,7 @@ const char *msg, arg[];
/* synerr - report a syntax error */
-void synerr( str )
-const char *str;
+void synerr( const char *str )
{
syntaxerror = true;
pinpoint_message( str );
@@ -1012,20 +1013,18 @@ const char *str;
/* format_warn - write out formatted warning */
-void format_warn( msg, arg )
-const char *msg, arg[];
+void format_warn( const char *msg, const char arg[] )
{
char warn_msg[MAXLINE];
snprintf( warn_msg, sizeof(warn_msg), msg, arg );
- warn( warn_msg );
+ lwarn( warn_msg );
}
-/* warn - report a warning, unless -w was given */
+/* lwarn - report a warning, unless -w was given */
-void warn( str )
-const char *str;
+void lwarn( const char *str )
{
line_warning( str, linenum );
}
@@ -1034,8 +1033,7 @@ const char *str;
* pinpointing its location
*/
-void format_pinpoint_message( msg, arg )
-const char *msg, arg[];
+void format_pinpoint_message( const char *msg, const char arg[] )
{
char errmsg[MAXLINE];
@@ -1046,8 +1044,7 @@ const char *msg, arg[];
/* pinpoint_message - write out a message, pinpointing its location */
-void pinpoint_message( str )
-const char *str;
+void pinpoint_message( const char *str )
{
line_pinpoint( str, linenum );
}
@@ -1055,9 +1052,7 @@ const char *str;
/* line_warning - report a warning at a given line, unless -w was given */
-void line_warning( str, line )
-const char *str;
-int line;
+void line_warning( const char *str, int line )
{
char warning[MAXLINE];
@@ -1071,9 +1066,7 @@ int line;
/* line_pinpoint - write out a message, pinpointing it at the given line */
-void line_pinpoint( str, line )
-const char *str;
-int line;
+void line_pinpoint( const char *str, int line )
{
fprintf( stderr, "%s:%d: %s\n", infilename, line, str );
}
@@ -1083,7 +1076,7 @@ int line;
* currently, messages are ignore
*/
-void yyerror( msg )
-const char *msg;
+void yyerror( const char *msg )
{
+ (void)msg;
}
diff --git a/contrib/flex/regex.c b/contrib/flex/src/regex.c
index e12cf6501819..38e658bdf231 100644
--- a/contrib/flex/regex.c
+++ b/contrib/flex/src/regex.c
@@ -54,21 +54,17 @@ void flex_regcomp(regex_t *preg, const char *regex, int cflags)
memset (preg, 0, sizeof (regex_t));
if ((err = regcomp (preg, regex, cflags)) != 0) {
- const int errbuf_sz = 200;
- char *errbuf, *rxerr;
+ const size_t errbuf_sz = 200;
+ char *errbuf;
+ int n;
- errbuf = (char*)flex_alloc(errbuf_sz *sizeof(char));
+ errbuf = malloc(errbuf_sz * sizeof(char));
if (!errbuf)
flexfatal(_("Unable to allocate buffer to report regcomp"));
- rxerr = (char*)flex_alloc(errbuf_sz *sizeof(char));
- if (!rxerr)
- flexfatal(_("Unable to allocate buffer for regerror"));
- regerror (err, preg, rxerr, errbuf_sz);
- snprintf (errbuf, errbuf_sz, "regcomp for \"%s\" failed: %s", regex, rxerr);
-
- flexfatal (errbuf);
- free(errbuf);
- free(rxerr);
+ n = snprintf(errbuf, errbuf_sz, "regcomp for \"%s\" failed: ", regex);
+ regerror(err, preg, errbuf+n, errbuf_sz-(size_t)n);
+
+ flexfatal (errbuf); /* never returns - no need to free(errbuf) */
}
}
@@ -80,12 +76,12 @@ void flex_regcomp(regex_t *preg, const char *regex, int cflags)
char *regmatch_dup (regmatch_t * m, const char *src)
{
char *str;
- int len;
+ size_t len;
- if (m == NULL || m->rm_so < 0)
+ if (m == NULL || m->rm_so < 0 || m->rm_eo < m->rm_so)
return NULL;
- len = m->rm_eo - m->rm_so;
- str = (char *) flex_alloc ((len + 1) * sizeof (char));
+ len = (size_t) (m->rm_eo - m->rm_so);
+ str = malloc((len + 1) * sizeof(char));
if (!str)
flexfatal(_("Unable to allocate a copy of the match"));
strncpy (str, src + m->rm_so, len);
@@ -107,13 +103,12 @@ char *regmatch_cpy (regmatch_t * m, char *dest, const char *src)
return dest;
}
- snprintf (dest, regmatch_len(m), "%s", src + m->rm_so);
+ snprintf (dest, (size_t) regmatch_len(m), "%s", src + m->rm_so);
return dest;
}
/** Get the length in characters of the match.
* @param m A match as returned by regexec().
- * @param src The source string that was passed to regexec().
* @return The length of the match.
*/
int regmatch_len (regmatch_t * m)
@@ -151,7 +146,7 @@ int regmatch_strtol (regmatch_t * m, const char *src, char **endptr,
else
s = regmatch_dup (m, src);
- n = strtol (s, endptr, base);
+ n = (int) strtol (s, endptr, base);
if (s != buf)
free (s);
diff --git a/contrib/flex/scan.l b/contrib/flex/src/scan.l
index 5a15400b8373..1570f505b342 100644
--- a/contrib/flex/scan.l
+++ b/contrib/flex/src/scan.l
@@ -37,6 +37,13 @@
extern bool tablesverify, tablesext;
extern int trlcontxt; /* Set in parse.y for each rule. */
extern const char *escaped_qstart, *escaped_qend;
+extern int yylval;
+
+#define M4QSTART "[""["
+#define M4QEND "]""]"
+
+#define ESCAPED_QSTART "[" M4QEND M4QSTART "[" M4QEND M4QSTART
+#define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART
#define ACTION_ECHO add_action( yytext )
#define ACTION_IFDEF(def, should_define) \
@@ -45,8 +52,8 @@ extern const char *escaped_qstart, *escaped_qend;
action_define( def, 1 ); \
}
-#define ACTION_ECHO_QSTART add_action (escaped_qstart)
-#define ACTION_ECHO_QEND add_action (escaped_qend)
+#define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART)
+#define ACTION_ECHO_QEND add_action (ESCAPED_QEND)
#define ACTION_M4_IFDEF(def, should_define) \
do{ \
@@ -59,7 +66,7 @@ extern const char *escaped_qstart, *escaped_qend;
#define MARK_END_OF_PROLOG mark_prolog();
#define YY_DECL \
- int flexscan()
+ int flexscan(void)
#define RETURNCHAR \
yylval = (unsigned char) yytext[0]; \
@@ -68,18 +75,20 @@ extern const char *escaped_qstart, *escaped_qend;
#define RETURNNAME \
if(yyleng < MAXLINE) \
{ \
- strcpy( nmstr, yytext ); \
+ strncpy( nmstr, yytext, sizeof(nmstr) ); \
+ return NAME; \
} \
else \
- { \
+ do { \
synerr(_("Input line too long\n")); \
FLEX_EXIT(EXIT_FAILURE); \
- } \
- return NAME;
+ } while (0)
#define PUT_BACK_STRING(str, start) \
- for ( i = strlen( str ) - 1; i >= start; --i ) \
- unput((str)[i])
+ { size_t i = strlen( str ); \
+ while ( i > start ) \
+ unput((str)[--i]); \
+ }
#define CHECK_REJECT(str) \
if ( all_upper( str ) ) \
@@ -93,9 +102,26 @@ extern const char *escaped_qstart, *escaped_qend;
if ( getenv("POSIXLY_CORRECT") ) \
posix_compat = true;
+#define START_CODEBLOCK(x) do { \
+ /* Emit the needed line directive... */\
+ if (indented_code == false) { \
+ linenum++; \
+ line_directive_out(NULL, 1); \
+ } \
+ add_action(M4QSTART); \
+ yy_push_state(CODEBLOCK); \
+ if ((indented_code = x)) ACTION_ECHO; \
+} while(0)
+
+#define END_CODEBLOCK do { \
+ yy_pop_state();\
+ add_action(M4QEND); \
+ if (!indented_code) line_directive_out(NULL, 0);\
+} while (0)
+
%}
-%option caseless nodefault stack noyy_top_state
+%option caseless nodefault noreject stack noyy_top_state
%option nostdinit
%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE
@@ -104,7 +130,9 @@ extern const char *escaped_qstart, *escaped_qend;
%x GROUP_WITH_PARAMS
%x GROUP_MINUS_PARAMS
%x EXTENDED_COMMENT
-%x COMMENT_DISCARD
+%x COMMENT_DISCARD CODE_COMMENT
+%x SECT3_NOESCAPE
+%x CHARACTER_CONSTANT
WS [[:blank:]]+
OPTWS [[:blank:]]*
@@ -125,8 +153,8 @@ CCL_EXPR ("[:"^?[[:alpha:]]+":]")
LEXOPT [aceknopr]
-M4QSTART "[["
-M4QEND "]]"
+M4QSTART "[""["
+M4QEND "]""]"
%%
static int bracelevel, didadef, indented_code;
@@ -134,22 +162,17 @@ M4QEND "]]"
static int option_sense;
int doing_codeblock = false;
- int i, brace_depth=0, brace_start_line=0;
- Char nmdef[MAXLINE];
+ int brace_depth=0, brace_start_line=0;
+ char nmdef[MAXLINE];
<INITIAL>{
- ^{WS} indented_code = true; BEGIN(CODEBLOCK);
- ^"/*" ACTION_ECHO; yy_push_state( COMMENT );
+ ^{WS} START_CODEBLOCK(true);
+ ^"/*" add_action("/*[""["); yy_push_state( COMMENT );
^#{OPTWS}line{WS} yy_push_state( LINEDIR );
^"%s"{NAME}? return SCDECL;
^"%x"{NAME}? return XSCDECL;
- ^"%{".*{NL} {
- ++linenum;
- line_directive_out( (FILE *) 0, 1 );
- indented_code = false;
- BEGIN(CODEBLOCK);
- }
+ ^"%{".*{NL} START_CODEBLOCK(false);
^"%top"[[:blank:]]*"{"[[:blank:]]*{NL} {
brace_start_line = linenum;
++linenum;
@@ -166,7 +189,7 @@ M4QEND "]]"
sectnum = 2;
bracelevel = 0;
mark_defs1();
- line_directive_out( (FILE *) 0, 1 );
+ line_directive_out(NULL, 1);
BEGIN(SECT2PROLOG);
return SECTEND;
}
@@ -174,7 +197,7 @@ M4QEND "]]"
^"%pointer".*{NL} yytext_is_array = false; ++linenum;
^"%array".*{NL} yytext_is_array = true; ++linenum;
- ^"%option" BEGIN(OPTION); return OPTION_OP;
+ ^"%option" BEGIN(OPTION); return TOK_OPTION;
^"%"{LEXOPT}{OPTWS}[[:digit:]]*{OPTWS}{NL} ++linenum; /* ignore */
^"%"{LEXOPT}{WS}.*{NL} ++linenum; /* ignore */
@@ -185,7 +208,7 @@ M4QEND "]]"
^{NAME} {
if(yyleng < MAXLINE)
{
- strcpy( nmstr, yytext );
+ strncpy( nmstr, yytext, sizeof(nmstr) );
}
else
{
@@ -203,14 +226,18 @@ M4QEND "]]"
}
-<COMMENT>{
- "*/" ACTION_ECHO; yy_pop_state();
- "*" ACTION_ECHO;
- {M4QSTART} ACTION_ECHO_QSTART;
- {M4QEND} ACTION_ECHO_QEND;
- [^*\n] ACTION_ECHO;
+<COMMENT,CODE_COMMENT>{ /* */
+ [^\[\]\*\n]* ACTION_ECHO;
+ . ACTION_ECHO;
+
{NL} ++linenum; ACTION_ECHO;
}
+<COMMENT>{
+ "*/" add_action("*/]""]"); yy_pop_state();
+}
+<CODE_COMMENT>{
+ "*/" ACTION_ECHO; yy_pop_state();
+}
<COMMENT_DISCARD>{
/* This is the same as COMMENT, but is discarded rather than output. */
@@ -223,7 +250,7 @@ M4QEND "]]"
<EXTENDED_COMMENT>{
")" yy_pop_state();
[^\n\)]+ ;
- {NL} ++linenum;
+ {NL} ++linenum;
}
<LINEDIR>{
@@ -231,25 +258,25 @@ M4QEND "]]"
[[:digit:]]+ linenum = myctoi( yytext );
\"[^"\n]*\" {
- flex_free( (void *) infilename );
- infilename = copy_string( yytext + 1 );
+ free(infilename);
+ infilename = xstrdup(yytext + 1);
infilename[strlen( infilename ) - 1] = '\0';
}
. /* ignore spurious characters */
}
+<ACTION,CODEBLOCK,ACTION_STRING,PERCENT_BRACE_ACTION,CHARACTER_CONSTANT,COMMENT,CODE_COMMENT>{
+ {M4QSTART} ACTION_ECHO_QSTART;
+ {M4QEND} ACTION_ECHO_QEND;
+}
<CODEBLOCK>{
- ^"%}".*{NL} ++linenum; BEGIN(INITIAL);
-
- {M4QSTART} ACTION_ECHO_QSTART;
- {M4QEND} ACTION_ECHO_QEND;
- . ACTION_ECHO;
-
+ ^"%}".*{NL} ++linenum; END_CODEBLOCK;
+ [^\n%\[\]]* ACTION_ECHO;
+ . ACTION_ECHO;
{NL} {
++linenum;
ACTION_ECHO;
- if ( indented_code )
- BEGIN(INITIAL);
+ if ( indented_code ) END_CODEBLOCK;
}
}
@@ -272,12 +299,11 @@ M4QEND "]]"
buf_strnappend(&top_buf, yytext, yyleng);
}
- {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, strlen(escaped_qstart));
- {M4QEND} buf_strnappend(&top_buf, escaped_qend, strlen(escaped_qend));
-
- [^{}\r\n] {
- buf_strnappend(&top_buf, yytext, yyleng);
- }
+ {M4QSTART} buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart));
+ {M4QEND} buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend));
+ ([^{}\r\n\[\]]+)|[^{}\r\n] {
+ buf_strnappend(&top_buf, yytext, yyleng);
+ }
<<EOF>> {
linenum = brace_start_line;
@@ -293,7 +319,7 @@ M4QEND "]]"
{NOT_WS}[^\r\n]* {
if(yyleng < MAXLINE)
{
- strcpy( (char *) nmdef, yytext );
+ strncpy( nmdef, yytext, sizeof(nmdef) );
}
else
{
@@ -301,12 +327,12 @@ M4QEND "]]"
FLEX_EXIT(EXIT_FAILURE);
}
/* Skip trailing whitespace. */
- for ( i = strlen( (char *) nmdef ) - 1;
- i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t');
- --i )
- ;
-
- nmdef[i + 1] = '\0';
+ {
+ size_t i = strlen( nmdef );
+ while (i > 0 && (nmdef[i-1] == ' ' || nmdef[i-1] == '\t'))
+ --i;
+ nmdef[i] = '\0';
+ }
ndinstal( nmstr, nmdef );
didadef = true;
@@ -338,8 +364,6 @@ M4QEND "]]"
interactive = option_sense;
}
array yytext_is_array = option_sense;
- ansi-definitions ansi_func_defs = option_sense;
- ansi-prototypes ansi_func_protos = option_sense;
backup backing_up_report = option_sense;
batch interactive = ! option_sense;
bison-bridge bison_bridge_lval = option_sense;
@@ -364,6 +388,7 @@ M4QEND "]]"
interactive interactive = option_sense;
lex-compat lex_compat = option_sense;
posix-compat posix_compat = option_sense;
+ line gen_line_dirs = option_sense;
main {
ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
/* Override yywrap */
@@ -420,12 +445,12 @@ M4QEND "]]"
yyget_lloc ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense);
yyset_lloc ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense);
- extra-type return OPT_EXTRA_TYPE;
- outfile return OPT_OUTFILE;
- prefix return OPT_PREFIX;
- yyclass return OPT_YYCLASS;
- header(-file)? return OPT_HEADER;
- tables-file return OPT_TABLES;
+ extra-type return TOK_EXTRA_TYPE;
+ outfile return TOK_OUTFILE;
+ prefix return TOK_PREFIX;
+ yyclass return TOK_YYCLASS;
+ header(-file)? return TOK_HEADER_FILE;
+ tables-file return TOK_TABLES_FILE;
tables-verify {
tablesverify = option_sense;
if(!tablesext && option_sense)
@@ -436,7 +461,7 @@ M4QEND "]]"
\"[^"\n]*\" {
if(yyleng-1 < MAXLINE)
{
- strcpy( nmstr, yytext + 1 );
+ strncpy( nmstr, yytext + 1, sizeof(nmstr) );
}
else
{
@@ -461,19 +486,20 @@ M4QEND "]]"
^"%{".* ++bracelevel; yyless( 2 ); /* eat only %{ */
^"%}".* --bracelevel; yyless( 2 ); /* eat only %} */
- ^{WS}.* ACTION_ECHO; /* indented code in prolog */
-
- ^{NOT_WS}.* { /* non-indented code */
- if ( bracelevel <= 0 )
- { /* not in %{ ... %} */
- yyless( 0 ); /* put it all back */
- yy_set_bol( 1 );
- mark_prolog();
- BEGIN(SECT2);
- }
- else
- ACTION_ECHO;
- }
+ ^{WS} START_CODEBLOCK(true); /* indented code in prolog */
+
+ ^{NOT_WS}.* {
+ /* non-indented code */
+ if ( bracelevel <= 0 ) {
+ /* not in %{ ... %} */
+ yyless( 0 ); /* put it all back */
+ yy_set_bol( 1 );
+ mark_prolog();
+ BEGIN(SECT2);
+ } else {
+ START_CODEBLOCK(true);
+ }
+ }
. ACTION_ECHO;
{NL} ++linenum; ACTION_ECHO;
@@ -527,11 +553,11 @@ M4QEND "]]"
if (sf_skip_ws()){
/* We're in the middle of a (?x: ) pattern. */
/* Push back everything starting at the "|" */
- size_t amt;
- amt = strchr (yytext, '|') - yytext;
+ int amt = (int) (strchr (yytext, '|') - yytext);
yyless(amt);
}
else {
+ add_action("]""]");
continued_action = true;
++linenum;
return '\n';
@@ -601,9 +627,10 @@ M4QEND "]]"
^"%%".* {
sectnum = 3;
- BEGIN(SECT3);
+ BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
outn("/* Begin user sect3 */");
yyterminate(); /* to stop the parser */
+
}
"["({FIRST_CCL_CHAR}|{CCL_EXPR})({CCL_CHAR}|{CCL_EXPR})* {
@@ -611,7 +638,7 @@ M4QEND "]]"
if(yyleng < MAXLINE)
{
- strcpy( nmstr, yytext );
+ strncpy( nmstr, yytext, sizeof(nmstr) );
}
else
{
@@ -627,7 +654,7 @@ M4QEND "]]"
* The reason it was disabled is so yacc/bison can parse
* ccl operations, such as ccl difference and union.
*/
- && (cclval = ccllookup( (Char *) nmstr )) != 0 )
+ && (cclval = ccllookup( nmstr )) != 0 )
{
if ( input() != ']' )
synerr( _( "bad character class" ) );
@@ -641,7 +668,7 @@ M4QEND "]]"
/* We fudge a bit. We know that this ccl will
* soon be numbered as lastccl + 1 by cclinit.
*/
- cclinstal( (Char *) nmstr, lastccl + 1 );
+ cclinstal( nmstr, lastccl + 1 );
/* Push back everything but the leading bracket
* so the ccl can be rescanned.
@@ -661,7 +688,7 @@ M4QEND "]]"
* context.
*/
"{"{NAME}"}"[[:space:]]? {
- Char *nmdefptr;
+ char *nmdefptr;
int end_is_ws, end_ch;
end_ch = yytext[yyleng-1];
@@ -669,7 +696,7 @@ M4QEND "]]"
if(yyleng-1 < MAXLINE)
{
- strcpy( nmstr, yytext + 1 );
+ strncpy( nmstr, yytext + 1, sizeof(nmstr) );
}
else
{
@@ -685,7 +712,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
else
{ /* push back name surrounded by ()'s */
- int len = strlen( (char *) nmdefptr );
+ size_t len = strlen( nmdefptr );
if (end_is_ws)
unput(end_ch);
@@ -693,7 +720,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
(len > 0 && nmdefptr[len - 1] == '$')
|| (end_is_ws && trlcontxt && !sf_skip_ws()))
{ /* don't use ()'s after all */
- PUT_BACK_STRING((char *) nmdefptr, 0);
+ PUT_BACK_STRING(nmdefptr, 0);
if ( nmdefptr[0] == '^' )
BEGIN(CARETISBOL);
@@ -702,7 +729,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
else
{
unput(')');
- PUT_BACK_STRING((char *) nmdefptr, 0);
+ PUT_BACK_STRING(nmdefptr, 0);
unput('(');
}
}
@@ -738,7 +765,13 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
return '(';
}
"(" sf_push(); return '(';
- ")" sf_pop(); return ')';
+ ")" {
+ if (_sf_top_ix > 0) {
+ sf_pop();
+ return ')';
+ } else
+ synerr(_("unbalanced parenthesis"));
+ }
[/|*+?.(){}] return (unsigned char) yytext[0];
. RETURNCHAR;
@@ -870,35 +903,31 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<PERCENT_BRACE_ACTION>{
{OPTWS}"%}".* bracelevel = 0;
- <ACTION>"/*" ACTION_ECHO; yy_push_state( COMMENT );
+ <ACTION>"/*" ACTION_ECHO; yy_push_state( CODE_COMMENT );
<CODEBLOCK,ACTION>{
- "reject" {
- ACTION_ECHO;
- CHECK_REJECT(yytext);
- }
- "yymore" {
- ACTION_ECHO;
- CHECK_YYMORE(yytext);
- }
+ "reject" {
+ ACTION_ECHO;
+ CHECK_REJECT(yytext);
+ }
+ "yymore" {
+ ACTION_ECHO;
+ CHECK_YYMORE(yytext);
+ }
}
- {M4QSTART} ACTION_ECHO_QSTART;
- {M4QEND} ACTION_ECHO_QEND;
- . ACTION_ECHO;
- {NL} {
- ++linenum;
- ACTION_ECHO;
- if ( bracelevel == 0 ||
- (doing_codeblock && indented_code) )
- {
- if ( doing_rule_action )
- add_action( "\tYY_BREAK\n" );
-
- doing_rule_action = doing_codeblock = false;
- BEGIN(SECT2);
- }
- }
+ . ACTION_ECHO;
+ {NL} {
+ ++linenum;
+ ACTION_ECHO;
+ if (bracelevel <= 0 || (doing_codeblock && indented_code)) {
+ if ( doing_rule_action )
+ add_action( "\tYY_BREAK]""]\n" );
+
+ doing_rule_action = doing_codeblock = false;
+ BEGIN(SECT2);
+ }
+ }
}
@@ -906,37 +935,41 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<ACTION>{
"{" ACTION_ECHO; ++bracelevel;
"}" ACTION_ECHO; --bracelevel;
- {M4QSTART} ACTION_ECHO_QSTART;
- {M4QEND} ACTION_ECHO_QEND;
- [^[:alpha:]_{}"'/\n\[\]]+ ACTION_ECHO;
- [\[\]] ACTION_ECHO;
- {NAME} ACTION_ECHO;
- "'"([^'\\\n]|\\.)*"'" ACTION_ECHO; /* character constant */
+ [^[:alpha:]_{}\"'/\n\[\]]+ ACTION_ECHO;
+ {NAME} ACTION_ECHO;
+ "'"([^\'\\\n]|\\.)"'" ACTION_ECHO; /* character constant */
+ "'" ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
\" ACTION_ECHO; BEGIN(ACTION_STRING);
- {NL} {
- ++linenum;
- ACTION_ECHO;
- if ( bracelevel == 0 )
- {
- if ( doing_rule_action )
- add_action( "\tYY_BREAK\n" );
+ {NL} {
+ ++linenum;
+ ACTION_ECHO;
+ if (bracelevel <= 0) {
+ if ( doing_rule_action )
+ add_action( "\tYY_BREAK]""]\n" );
- doing_rule_action = false;
- BEGIN(SECT2);
- }
- }
- . ACTION_ECHO;
+ doing_rule_action = false;
+ BEGIN(SECT2);
+ }
+ }
+ . ACTION_ECHO;
}
<ACTION_STRING>{
- [^"\\\n]+ ACTION_ECHO;
- \\. ACTION_ECHO;
- {NL} ++linenum; ACTION_ECHO; BEGIN(ACTION);
+ [^\[\]\"\\\n]+ ACTION_ECHO;
\" ACTION_ECHO; BEGIN(ACTION);
- . ACTION_ECHO;
+}
+<CHARACTER_CONSTANT>{
+ [^\[\]\'\\\n]+ ACTION_ECHO;
+ \' ACTION_ECHO; BEGIN(ACTION);
+}
+<ACTION_STRING,CHARACTER_CONSTANT>{
+ (\\\n)* ACTION_ECHO;
+ \\(\\\n)*. ACTION_ECHO;
+ {NL} ++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); } else { BEGIN(ACTION); }
+ . ACTION_ECHO;
}
-<COMMENT,COMMENT_DISCARD,ACTION,ACTION_STRING><<EOF>> {
+<COMMENT,CODE_COMMENT,COMMENT_DISCARD,ACTION,ACTION_STRING,CHARACTER_CONSTANT><<EOF>> {
synerr( _( "EOF encountered inside an action" ) );
yyterminate();
}
@@ -947,7 +980,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
<SECT2,QUOTE,FIRSTCCL,CCL>{ESCSEQ} {
- yylval = myesc( (Char *) yytext );
+ yylval = myesc( (unsigned char *) yytext );
if ( YY_START == FIRSTCCL )
BEGIN(CCL);
@@ -955,21 +988,32 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
return CHAR;
}
-
<SECT3>{
- {M4QSTART} fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout);
- {M4QEND} fwrite (escaped_qend, 1, strlen(escaped_qend), yyout);
- [^\[\]\n]*(\n?) ECHO;
- (.|\n) ECHO;
- <<EOF>> sectnum = 0; yyterminate();
+ {M4QSTART} fputs(escaped_qstart, yyout);
+ {M4QEND} fputs(escaped_qend, yyout);
+ [^\[\]]* ECHO;
+ [][] ECHO;
+ <<EOF>> {
+ sectnum = 0;
+ yyterminate();
+ }
+}
+<SECT3_NOESCAPE>{
+ {M4QSTART} fprintf(yyout, "[""[%s]""]", escaped_qstart);
+ {M4QEND} fprintf(yyout, "[""[%s]""]", escaped_qend);
+ [^][]* ECHO;
+ [][] ECHO;
+ <<EOF>> {
+ sectnum = 0;
+ yyterminate();
+ }
}
-
<*>.|\n format_synerr( _( "bad character: %s" ), yytext );
%%
-int yywrap()
+int yywrap(void)
{
if ( --num_input_files > 0 )
{
@@ -984,46 +1028,22 @@ int yywrap()
/* set_input_file - open the given file (if NULL, stdin) for scanning */
-void set_input_file( file )
-char *file;
+void set_input_file( char *file )
{
if ( file && strcmp( file, "-" ) )
{
- infilename = copy_string( file );
+ infilename = xstrdup(file);
yyin = fopen( infilename, "r" );
if ( yyin == NULL )
- lerrsf( _( "can't open %s" ), file );
+ lerr( _( "can't open %s" ), file );
}
else
{
yyin = stdin;
- infilename = copy_string( "<stdin>" );
+ infilename = xstrdup("<stdin>");
}
linenum = 1;
}
-
-
-/* Wrapper routines for accessing the scanner's malloc routines. */
-
-void *flex_alloc( size )
-size_t size;
- {
- return (void *) malloc( size );
- }
-
-void *flex_realloc( ptr, size )
-void *ptr;
-size_t size;
- {
- return (void *) realloc( ptr, size );
- }
-
-void flex_free( ptr )
-void *ptr;
- {
- if ( ptr )
- free( ptr );
- }
diff --git a/contrib/flex/scanflags.c b/contrib/flex/src/scanflags.c
index 2c715e619b46..9699a31ccee2 100644
--- a/contrib/flex/scanflags.c
+++ b/contrib/flex/src/scanflags.c
@@ -39,8 +39,10 @@ size_t _sf_top_ix=0, _sf_max=0;
void
sf_push (void)
{
- if (_sf_top_ix + 1 >= _sf_max)
- _sf_stk = (scanflags_t*) flex_realloc ( (void*) _sf_stk, sizeof(scanflags_t) * (_sf_max += 32));
+ if (_sf_top_ix + 1 >= _sf_max) {
+ _sf_max += 32;
+ _sf_stk = realloc(_sf_stk, sizeof(scanflags_t) * _sf_max);
+ }
// copy the top element
_sf_stk[_sf_top_ix + 1] = _sf_stk[_sf_top_ix];
@@ -59,10 +61,10 @@ void
sf_init (void)
{
assert(_sf_stk == NULL);
- _sf_stk = (scanflags_t*) flex_alloc ( sizeof(scanflags_t) * (_sf_max = 32));
+ _sf_max = 32;
+ _sf_stk = malloc(sizeof(scanflags_t) * _sf_max);
if (!_sf_stk)
- lerrsf_fatal(_("Unable to allocate %ld of stack"),
- (void *)(uintptr_t)sizeof(scanflags_t));
+ lerr_fatal(_("Unable to allocate %zu of stack"), sizeof(scanflags_t));
_sf_stk[_sf_top_ix] = 0;
}
diff --git a/contrib/flex/scanopt.c b/contrib/flex/src/scanopt.c
index f76ecd34dac0..a475b6f6e89a 100644
--- a/contrib/flex/scanopt.c
+++ b/contrib/flex/src/scanopt.c
@@ -37,20 +37,6 @@
/* Internal structures */
-#ifdef HAVE_STRCASECMP
-#define STRCASECMP(a,b) strcasecmp(a,b)
-#else
-static int STRCASECMP PROTO ((const char *, const char *));
-
-static int STRCASECMP (a, b)
- const char *a;
- const char *b;
-{
- while (tolower (*a++) == tolower (*b++)) ;
- return b - a;
-}
-#endif
-
#define ARG_NONE 0x01
#define ARG_REQ 0x02
#define ARG_OPT 0x04
@@ -77,56 +63,45 @@ struct _scanopt_t {
};
/* Accessor functions. These WOULD be one-liners, but portability calls. */
-static const char *NAME PROTO ((struct _scanopt_t *, int));
-static int PRINTLEN PROTO ((struct _scanopt_t *, int));
-static int RVAL PROTO ((struct _scanopt_t *, int));
-static int FLAGS PROTO ((struct _scanopt_t *, int));
-static const char *DESC PROTO ((struct _scanopt_t *, int));
-static int scanopt_err PROTO ((struct _scanopt_t *, int, int, int));
-static int matchlongopt PROTO ((char *, char **, int *, char **, int *));
-static int find_opt
-PROTO ((struct _scanopt_t *, int, char *, int, int *, int *opt_offset));
-
-static const char *NAME (s, i)
- struct _scanopt_t *s;
- int i;
+static const char *NAME(struct _scanopt_t *, int);
+static int PRINTLEN(struct _scanopt_t *, int);
+static int RVAL(struct _scanopt_t *, int);
+static int FLAGS(struct _scanopt_t *, int);
+static const char *DESC(struct _scanopt_t *, int);
+static int scanopt_err(struct _scanopt_t *, int, int);
+static int matchlongopt(char *, char **, int *, char **, int *);
+static int find_opt(struct _scanopt_t *, int, char *, int, int *, int *opt_offset);
+
+static const char *NAME (struct _scanopt_t *s, int i)
{
return s->options[i].opt_fmt +
((s->aux[i].flags & IS_LONG) ? 2 : 1);
}
-static int PRINTLEN (s, i)
- struct _scanopt_t *s;
- int i;
+static int PRINTLEN (struct _scanopt_t *s, int i)
{
return s->aux[i].printlen;
}
-static int RVAL (s, i)
- struct _scanopt_t *s;
- int i;
+static int RVAL (struct _scanopt_t *s, int i)
{
return s->options[i].r_val;
}
-static int FLAGS (s, i)
- struct _scanopt_t *s;
- int i;
+static int FLAGS (struct _scanopt_t *s, int i)
{
return s->aux[i].flags;
}
-static const char *DESC (s, i)
- struct _scanopt_t *s;
- int i;
+static const char *DESC (struct _scanopt_t *s, int i)
{
return s->options[i].desc ? s->options[i].desc : "";
}
#ifndef NO_SCANOPT_USAGE
-static int get_cols PROTO ((void));
+static int get_cols (void);
-static int get_cols ()
+static int get_cols (void)
{
char *env;
int cols = 80; /* default */
@@ -159,15 +134,11 @@ static int get_cols ()
(s)->subscript= 0; \
}while(0)
-scanopt_t *scanopt_init (options, argc, argv, flags)
- const optspec_t *options;
- int argc;
- char **argv;
- int flags;
+scanopt_t *scanopt_init (const optspec_t *options, int argc, char **argv, int flags)
{
int i;
struct _scanopt_t *s;
- s = (struct _scanopt_t *) malloc (sizeof (struct _scanopt_t));
+ s = malloc(sizeof (struct _scanopt_t));
s->options = options;
s->optc = 0;
@@ -186,10 +157,10 @@ scanopt_t *scanopt_init (options, argc, argv, flags)
s->optc++;
/* Build auxiliary data */
- s->aux = (struct _aux *) malloc (s->optc * sizeof (struct _aux));
+ s->aux = malloc((size_t) s->optc * sizeof (struct _aux));
for (i = 0; i < s->optc; i++) {
- const Char *p, *pname;
+ const unsigned char *p, *pname;
const struct optspec_t *opt;
struct _aux *aux;
@@ -200,36 +171,36 @@ scanopt_t *scanopt_init (options, argc, argv, flags)
if (opt->opt_fmt[0] == '-' && opt->opt_fmt[1] == '-') {
aux->flags |= IS_LONG;
- pname = (const Char *)(opt->opt_fmt + 2);
+ pname = (const unsigned char *)(opt->opt_fmt + 2);
s->has_long = 1;
}
else {
- pname = (const Char *)(opt->opt_fmt + 1);
+ pname = (const unsigned char *)(opt->opt_fmt + 1);
s->has_short = 1;
}
- aux->printlen = strlen (opt->opt_fmt);
+ aux->printlen = (int) strlen (opt->opt_fmt);
aux->namelen = 0;
for (p = pname + 1; *p; p++) {
/* detect required arg */
- if (*p == '=' || isspace (*p)
+ if (*p == '=' || isspace ((unsigned char)*p)
|| !(aux->flags & IS_LONG)) {
if (aux->namelen == 0)
- aux->namelen = p - pname;
+ aux->namelen = (int) (p - pname);
aux->flags |= ARG_REQ;
aux->flags &= ~ARG_NONE;
}
/* detect optional arg. This overrides required arg. */
if (*p == '[') {
if (aux->namelen == 0)
- aux->namelen = p - pname;
+ aux->namelen = (int) (p - pname);
aux->flags &= ~(ARG_REQ | ARG_NONE);
aux->flags |= ARG_OPT;
break;
}
}
if (aux->namelen == 0)
- aux->namelen = p - pname;
+ aux->namelen = (int) (p - pname);
}
return (scanopt_t *) s;
}
@@ -255,10 +226,7 @@ typedef struct usg_elem usg_elem;
[indent][option, alias1, alias2...][indent][description line1
description line2...]
*/
-int scanopt_usage (scanner, fp, usage)
- scanopt_t *scanner;
- FILE *fp;
- const char *usage;
+int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
{
struct _scanopt_t *s;
int i, columns, indent = 2;
@@ -293,7 +261,7 @@ int scanopt_usage (scanner, fp, usage)
fprintf (fp, "\n");
/* Sort by r_val and string. Yes, this is O(n*n), but n is small. */
- store = (usg_elem *) malloc (s->optc * sizeof (usg_elem));
+ store = malloc((size_t) s->optc * sizeof (usg_elem));
for (i = 0; i < s->optc; i++) {
/* grab the next preallocate node. */
@@ -319,7 +287,7 @@ int scanopt_usage (scanner, fp, usage)
}
if (!ptr_if_no_alias
&&
- STRCASECMP (NAME (s, (*ue_curr)->idx),
+ strcasecmp (NAME (s, (*ue_curr)->idx),
NAME (s, ue->idx)) > 0) {
ptr_if_no_alias = ue_curr;
}
@@ -391,7 +359,7 @@ int scanopt_usage (scanner, fp, usage)
maxlen[0] = len;
/* It's much easier to calculate length for description column! */
- len = strlen (DESC (s, ue->idx));
+ len = (int) strlen (DESC (s, ue->idx));
if (len > maxlen[1])
maxlen[1] = len;
}
@@ -481,7 +449,7 @@ int scanopt_usage (scanner, fp, usage)
while (*p && n < maxlen[1]
&& *p != '\n') {
- if (isspace ((Char)(*p))
+ if (isspace ((unsigned char)(*p))
|| *p == '-') lastws =
p;
n++;
@@ -529,18 +497,10 @@ int scanopt_usage (scanner, fp, usage)
#endif /* no scanopt_usage */
-static int scanopt_err (s, opt_offset, is_short, err)
- struct _scanopt_t *s;
- int opt_offset;
- int is_short;
- int err;
+static int scanopt_err (struct _scanopt_t *s, int is_short, int err)
{
const char *optname = "";
char optchar[2];
- const optspec_t *opt = NULL;
-
- if (opt_offset >= 0)
- opt = s->options + opt_offset;
if (!s->no_err_msg) {
@@ -592,16 +552,11 @@ static int scanopt_err (s, opt_offset, is_short, err)
* optname will point to str + 2
*
*/
-static int matchlongopt (str, optname, optlen, arg, arglen)
- char *str;
- char **optname;
- int *optlen;
- char **arg;
- int *arglen;
+static int matchlongopt (char *str, char **optname, int *optlen, char **arg, int *arglen)
{
char *p;
- *optname = *arg = (char *) 0;
+ *optname = *arg = NULL;
*optlen = *arglen = 0;
/* Match regex /--./ */
@@ -610,13 +565,13 @@ static int matchlongopt (str, optname, optlen, arg, arglen)
return 0;
p += 2;
- *optname = (char *) p;
+ *optname = p;
/* find the end of optname */
while (*p && *p != '=')
++p;
- *optlen = p - *optname;
+ *optlen = (int) (p - *optname);
if (!*p)
/* an option with no '=...' part. */
@@ -628,7 +583,7 @@ static int matchlongopt (str, optname, optlen, arg, arglen)
*arg = p;
while (*p)
++p;
- *arglen = p - *arg;
+ *arglen = (int) (p - *arg);
return 1;
}
@@ -639,13 +594,8 @@ static int matchlongopt (str, optname, optlen, arg, arglen)
* Short options must be exact.
* Return boolean true if found and no error.
* Error stored in err_code or zero if no error. */
-static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset)
- struct _scanopt_t *s;
- int lookup_long;
- char *optstart;
- int len;
- int *err_code;
- int *opt_offset;
+static int find_opt (struct _scanopt_t *s, int lookup_long, char *optstart, int
+ len, int *err_code, int *opt_offset)
{
int nmatch = 0, lastr_val = 0, i;
@@ -656,17 +606,15 @@ static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset)
return 0;
for (i = 0; i < s->optc; i++) {
- char *optname;
+ const char *optname;
- optname =
- (char *) (s->options[i].opt_fmt +
- (lookup_long ? 2 : 1));
+ optname = s->options[i].opt_fmt + (lookup_long ? 2 : 1);
if (lookup_long && (s->aux[i].flags & IS_LONG)) {
if (len > s->aux[i].namelen)
continue;
- if (strncmp (optname, optstart, len) == 0) {
+ if (strncmp (optname, optstart, (size_t) len) == 0) {
nmatch++;
*opt_offset = i;
@@ -704,10 +652,7 @@ static int find_opt (s, lookup_long, optstart, len, err_code, opt_offset)
}
-int scanopt (svoid, arg, optindex)
- scanopt_t *svoid;
- char **arg;
- int *optindex;
+int scanopt (scanopt_t *svoid, char **arg, int *optindex)
{
char *optname = NULL, *optarg = NULL, *pstart;
int namelen = 0, arglen = 0;
@@ -749,7 +694,7 @@ int scanopt (svoid, arg, optindex)
if (!find_opt
(s, 1, optname, namelen, &errcode,
&opt_offset)) {
- scanopt_err (s, opt_offset, 0, errcode);
+ scanopt_err (s, 0, errcode);
return errcode;
}
/* We handle this below. */
@@ -784,7 +729,7 @@ int scanopt (svoid, arg, optindex)
if (!find_opt
(s, 0, pstart, namelen, &errcode, &opt_offset)) {
- return scanopt_err (s, opt_offset, 1, errcode);
+ return scanopt_err (s, 1, errcode);
}
optarg = pstart + 1;
@@ -793,7 +738,7 @@ int scanopt (svoid, arg, optindex)
arglen = 0;
}
else
- arglen = strlen (optarg);
+ arglen = (int) strlen (optarg);
}
/* At this point, we have a long or short option matched at opt_offset into
@@ -812,8 +757,7 @@ int scanopt (svoid, arg, optindex)
/* case: no args allowed */
if (auxp->flags & ARG_NONE) {
if (optarg && !is_short) {
- scanopt_err (s, opt_offset, is_short, errcode =
- SCANOPT_ERR_ARG_NOT_ALLOWED);
+ scanopt_err (s, is_short, errcode = SCANOPT_ERR_ARG_NOT_ALLOWED);
INC_INDEX (s, 1);
return errcode;
}
@@ -827,8 +771,7 @@ int scanopt (svoid, arg, optindex)
/* case: required */
if (auxp->flags & ARG_REQ) {
if (!optarg && !has_next)
- return scanopt_err (s, opt_offset, is_short,
- SCANOPT_ERR_ARG_NOT_FOUND);
+ return scanopt_err (s, is_short, SCANOPT_ERR_ARG_NOT_FOUND);
if (!optarg) {
/* Let the next argv element become the argument. */
@@ -855,16 +798,14 @@ int scanopt (svoid, arg, optindex)
}
-int scanopt_destroy (svoid)
- scanopt_t *svoid;
+int scanopt_destroy (scanopt_t *svoid)
{
struct _scanopt_t *s;
s = (struct _scanopt_t *) svoid;
- if (s) {
- if (s->aux)
- free (s->aux);
- free (s);
+ if (s != NULL) {
+ free(s->aux);
+ free(s);
}
return 0;
}
diff --git a/contrib/flex/scanopt.h b/contrib/flex/src/scanopt.h
index 359a18a8b467..c6e7dec3619e 100644
--- a/contrib/flex/scanopt.h
+++ b/contrib/flex/src/scanopt.h
@@ -47,9 +47,6 @@
#ifdef __cplusplus
extern "C" {
#endif
-#ifndef PROTO
-#define PROTO(args) args
-#endif
/* Error codes. */ enum scanopt_err_t {
SCANOPT_ERR_OPT_UNRECOGNIZED = -1, /* Unrecognized option. */
SCANOPT_ERR_OPT_AMBIGUOUS = -2, /* It matched more than one option name. */
@@ -85,12 +82,12 @@ extern "C" {
* flags - Control behavior.
* Return: A malloc'd pointer .
*/
- scanopt_t *scanopt_init PROTO ((const optspec_t * options,
- int argc, char **argv, int flags));
+ scanopt_t *scanopt_init (const optspec_t * options, int argc,
+ char **argv, int flags);
/* Frees memory used by scanner.
* Always returns 0. */
- int scanopt_destroy PROTO ((scanopt_t * scanner));
+ int scanopt_destroy (scanopt_t * scanner);
#ifndef NO_SCANOPT_USAGE
/* Prints a usage message based on contents of optlist.
@@ -100,10 +97,7 @@ extern "C" {
* usage - Text to be prepended to option list. May be NULL.
* Return: Always returns 0 (zero).
*/
- int scanopt_usage
- PROTO (
- (scanopt_t * scanner, FILE * fp,
- const char *usage));
+ int scanopt_usage (scanopt_t * scanner, FILE * fp, const char *usage);
#endif
/* Scans command-line options in argv[].
@@ -120,10 +114,7 @@ extern "C" {
* < 0 on error (return value is an error code).
*
*/
- int scanopt
- PROTO (
- (scanopt_t * scanner, char **optarg,
- int *optindex));
+ int scanopt (scanopt_t * scanner, char **optarg, int *optindex);
#ifdef __cplusplus
}
diff --git a/contrib/flex/sym.c b/contrib/flex/src/sym.c
index 56450ce9039d..14fb161ad245 100644
--- a/contrib/flex/sym.c
+++ b/contrib/flex/src/sym.c
@@ -59,12 +59,10 @@ static struct hash_entry *ccltab[CCL_HASH_SIZE];
/* declare functions that have forward references */
-static int addsym PROTO ((char[], char *, int, hash_table, int));
-static struct hash_entry *findsym PROTO ((const char *sym,
- hash_table table,
-
- int table_size));
-static int hashfunct PROTO ((const char *, int));
+static int addsym(char[], char *, int, hash_table, int);
+static struct hash_entry *findsym (const char *sym, hash_table table,
+ int table_size);
+static int hashfunct(const char *, int);
/* addsym - add symbol and definitions to symbol table
@@ -72,14 +70,9 @@ static int hashfunct PROTO ((const char *, int));
* -1 is returned if the symbol already exists, and the change not made.
*/
-static int addsym (sym, str_def, int_def, table, table_size)
- char sym[];
- char *str_def;
- int int_def;
- hash_table table;
- int table_size;
+static int addsym (char sym[], char *str_def, int int_def, hash_table table, int table_size)
{
- int hash_val = hashfunct (sym, table_size);
+ int hash_val = hashfunct (sym, table_size);
struct hash_entry *sym_entry = table[hash_val];
struct hash_entry *new_entry;
struct hash_entry *successor;
@@ -93,8 +86,7 @@ static int addsym (sym, str_def, int_def, table, table_size)
}
/* create new entry */
- new_entry = (struct hash_entry *)
- flex_alloc (sizeof (struct hash_entry));
+ new_entry = malloc(sizeof(struct hash_entry));
if (new_entry == NULL)
flexfatal (_("symbol table memory allocation failed"));
@@ -119,15 +111,13 @@ static int addsym (sym, str_def, int_def, table, table_size)
/* cclinstal - save the text of a character class */
-void cclinstal (ccltxt, cclnum)
- Char ccltxt[];
- int cclnum;
+void cclinstal (char ccltxt[], int cclnum)
{
/* We don't bother checking the return status because we are not
* called unless the symbol is new.
*/
- (void) addsym ((char *) copy_unsigned_string (ccltxt),
+ (void) addsym (xstrdup(ccltxt),
(char *) 0, cclnum, ccltab, CCL_HASH_SIZE);
}
@@ -137,23 +127,18 @@ void cclinstal (ccltxt, cclnum)
* Returns 0 if there's no CCL associated with the text.
*/
-int ccllookup (ccltxt)
- Char ccltxt[];
+int ccllookup (char ccltxt[])
{
- return findsym ((char *) ccltxt, ccltab, CCL_HASH_SIZE)->int_val;
+ return findsym (ccltxt, ccltab, CCL_HASH_SIZE)->int_val;
}
/* findsym - find symbol in symbol table */
-static struct hash_entry *findsym (sym, table, table_size)
- const char *sym;
- hash_table table;
- int table_size;
+static struct hash_entry *findsym (const char *sym, hash_table table, int table_size)
{
static struct hash_entry empty_entry = {
- (struct hash_entry *) 0, (struct hash_entry *) 0,
- (char *) 0, (char *) 0, 0,
+ NULL, NULL, NULL, NULL, 0,
};
struct hash_entry *sym_entry =
@@ -170,9 +155,7 @@ static struct hash_entry *findsym (sym, table, table_size)
/* hashfunct - compute the hash value for "str" and hash size "hash_size" */
-static int hashfunct (str, hash_size)
- const char *str;
- int hash_size;
+static int hashfunct (const char *str, int hash_size)
{
int hashval;
int locstr;
@@ -191,13 +174,11 @@ static int hashfunct (str, hash_size)
/* ndinstal - install a name definition */
-void ndinstal (name, definition)
- const char *name;
- Char definition[];
+void ndinstal (const char *name, char definition[])
{
- if (addsym (copy_string (name),
- (char *) copy_unsigned_string (definition), 0,
+ if (addsym (xstrdup(name),
+ xstrdup(definition), 0,
ndtbl, NAME_TABLE_HASH_SIZE))
synerr (_("name defined twice"));
}
@@ -208,16 +189,15 @@ void ndinstal (name, definition)
* Returns a nil pointer if the name definition does not exist.
*/
-Char *ndlookup (nd)
- const char *nd;
+char *ndlookup (const char *nd)
{
- return (Char *) findsym (nd, ndtbl, NAME_TABLE_HASH_SIZE)->str_val;
+ return findsym (nd, ndtbl, NAME_TABLE_HASH_SIZE)->str_val;
}
/* scextend - increase the maximum number of start conditions */
-void scextend ()
+void scextend (void)
{
current_max_scs += MAX_SCS_INCREMENT;
@@ -237,17 +217,15 @@ void scextend ()
* The start condition is "exclusive" if xcluflg is true.
*/
-void scinstal (str, xcluflg)
- const char *str;
- int xcluflg;
+void scinstal (const char *str, int xcluflg)
{
if (++lastsc >= current_max_scs)
scextend ();
- scname[lastsc] = copy_string (str);
+ scname[lastsc] = xstrdup(str);
- if (addsym (scname[lastsc], (char *) 0, lastsc,
+ if (addsym(scname[lastsc], NULL, lastsc,
sctbl, START_COND_HASH_SIZE))
format_pinpoint_message (_
("start condition %s declared twice"),
@@ -265,8 +243,7 @@ str);
* Returns 0 if no such start condition.
*/
-int sclookup (str)
- const char *str;
+int sclookup (const char *str)
{
return findsym (str, sctbl, START_COND_HASH_SIZE)->int_val;
}
diff --git a/contrib/flex/tables.c b/contrib/flex/src/tables.c
index f3f056faedac..980d2e96f86e 100644
--- a/contrib/flex/tables.c
+++ b/contrib/flex/src/tables.c
@@ -55,7 +55,7 @@
int yytbl_write32 (struct yytbl_writer *wr, flex_uint32_t v);
int yytbl_write16 (struct yytbl_writer *wr, flex_uint16_t v);
int yytbl_write8 (struct yytbl_writer *wr, flex_uint8_t v);
-int yytbl_writen (struct yytbl_writer *wr, void *v, flex_int32_t len);
+int yytbl_writen (struct yytbl_writer *wr, void *v, int len);
static flex_int32_t yytbl_data_geti (const struct yytbl_data *tbl, int i);
/* XXX Not used
static flex_int32_t yytbl_data_getijk (const struct yytbl_data *tbl, int i,
@@ -65,7 +65,7 @@ static flex_int32_t yytbl_data_getijk (const struct yytbl_data *tbl, int i,
/** Initialize the table writer.
* @param wr an uninitialized writer
- * @param the output file
+ * @param out the output file
* @return 0 on success
*/
int yytbl_writer_init (struct yytbl_writer *wr, FILE * out)
@@ -86,17 +86,17 @@ int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str,
memset (th, 0, sizeof (struct yytbl_hdr));
th->th_magic = YYTBL_MAGIC;
- th->th_hsize = 14 + strlen (version_str) + 1 + strlen (name) + 1;
+ th->th_hsize = (flex_uint32_t) (14 + strlen (version_str) + 1 + strlen (name) + 1);
th->th_hsize += yypad64 (th->th_hsize);
th->th_ssize = 0; // Not known at this point.
th->th_flags = 0;
- th->th_version = copy_string (version_str);
- th->th_name = copy_string (name);
+ th->th_version = xstrdup(version_str);
+ th->th_name = xstrdup(name);
return 0;
}
/** Allocate and initialize a table data structure.
- * @param tbl a pointer to an uninitialized table
+ * @param td a pointer to an uninitialized table
* @param id the table identifier
* @return 0 on success
*/
@@ -115,8 +115,7 @@ int yytbl_data_init (struct yytbl_data *td, enum yytbl_id id)
*/
int yytbl_data_destroy (struct yytbl_data *td)
{
- if (td->td_data)
- free (td->td_data);
+ free(td->td_data);
td->td_data = 0;
free (td);
return 0;
@@ -137,7 +136,7 @@ static int yytbl_write_pad64 (struct yytbl_writer *wr)
}
/** write the header.
- * @param out the output stream
+ * @param wr the output stream
* @param th table header to be written
* @return -1 on error, or bytes written on success.
*/
@@ -159,12 +158,12 @@ int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th)
flex_die (_("th_ssize|th_flags write failed"));
bwritten += 6;
- sz = strlen (th->th_version) + 1;
+ sz = (int) strlen (th->th_version) + 1;
if ((rv = yytbl_writen (wr, th->th_version, sz)) != sz)
flex_die (_("th_version writen failed"));
bwritten += rv;
- sz = strlen (th->th_name) + 1;
+ sz = (int) strlen (th->th_name) + 1;
if ((rv = yytbl_writen (wr, th->th_name, sz)) != sz)
flex_die (_("th_name writen failed"));
bwritten += rv;
@@ -183,7 +182,7 @@ int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th)
/** Write this table.
- * @param out the file writer
+ * @param wr the file writer
* @param td table data to be written
* @return -1 on error, or bytes written on success.
*/
@@ -214,13 +213,13 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
for (i = 0; i < total_len; i++) {
switch (YYTDFLAGS2BYTES (td->td_flags)) {
case sizeof (flex_int8_t):
- rv = yytbl_write8 (wr, yytbl_data_geti (td, i));
+ rv = yytbl_write8 (wr, (flex_uint8_t) yytbl_data_geti (td, i));
break;
case sizeof (flex_int16_t):
- rv = yytbl_write16 (wr, yytbl_data_geti (td, i));
+ rv = yytbl_write16 (wr, (flex_uint16_t) yytbl_data_geti (td, i));
break;
case sizeof (flex_int32_t):
- rv = yytbl_write32 (wr, yytbl_data_geti (td, i));
+ rv = yytbl_write32 (wr, (flex_uint32_t) yytbl_data_geti (td, i));
break;
default:
flex_die (_("invalid td_flags detected"));
@@ -233,7 +232,7 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
}
/* Sanity check */
- if (bwritten != (int) (12 + total_len * YYTDFLAGS2BYTES (td->td_flags))) {
+ if (bwritten != (12 + total_len * (int) YYTDFLAGS2BYTES (td->td_flags))) {
flex_die (_("insanity detected"));
return -1;
}
@@ -248,14 +247,14 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
/* Now go back and update the th_hsize member */
if (fgetpos (wr->out, &pos) != 0
|| fsetpos (wr->out, &(wr->th_ssize_pos)) != 0
- || yytbl_write32 (wr, wr->total_written) < 0
+ || yytbl_write32 (wr, (flex_uint32_t) wr->total_written) < 0
|| fsetpos (wr->out, &pos)) {
flex_die (_("get|set|fwrite32 failed"));
return -1;
}
else
/* Don't count the int we just wrote. */
- wr->total_written -= sizeof (flex_int32_t);
+ wr->total_written -= (int) sizeof (flex_int32_t);
return bwritten;
}
@@ -265,11 +264,11 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
* @param len number of bytes
* @return -1 on error. number of bytes written on success.
*/
-int yytbl_writen (struct yytbl_writer *wr, void *v, flex_int32_t len)
+int yytbl_writen (struct yytbl_writer *wr, void *v, int len)
{
int rv;
- rv = fwrite (v, 1, len, wr->out);
+ rv = (int) fwrite (v, 1, (size_t) len, wr->out);
if (rv != len)
return -1;
wr->total_written += len;
@@ -284,11 +283,11 @@ int yytbl_writen (struct yytbl_writer *wr, void *v, flex_int32_t len)
int yytbl_write32 (struct yytbl_writer *wr, flex_uint32_t v)
{
flex_uint32_t vnet;
- size_t bytes, rv;
+ int bytes, rv;
vnet = htonl (v);
- bytes = sizeof (flex_uint32_t);
- rv = fwrite (&vnet, bytes, 1, wr->out);
+ bytes = (int) sizeof (flex_uint32_t);
+ rv = (int) fwrite (&vnet, (size_t) bytes, 1, wr->out);
if (rv != 1)
return -1;
wr->total_written += bytes;
@@ -303,11 +302,11 @@ int yytbl_write32 (struct yytbl_writer *wr, flex_uint32_t v)
int yytbl_write16 (struct yytbl_writer *wr, flex_uint16_t v)
{
flex_uint16_t vnet;
- size_t bytes, rv;
+ int bytes, rv;
vnet = htons (v);
- bytes = sizeof (flex_uint16_t);
- rv = fwrite (&vnet, bytes, 1, wr->out);
+ bytes = (int) sizeof (flex_uint16_t);
+ rv = (int) fwrite (&vnet, (size_t) bytes, 1, wr->out);
if (rv != 1)
return -1;
wr->total_written += bytes;
@@ -321,10 +320,10 @@ int yytbl_write16 (struct yytbl_writer *wr, flex_uint16_t v)
*/
int yytbl_write8 (struct yytbl_writer *wr, flex_uint8_t v)
{
- size_t bytes, rv;
+ int bytes, rv;
- bytes = sizeof (flex_uint8_t);
- rv = fwrite (&v, bytes, 1, wr->out);
+ bytes = (int) sizeof (flex_uint8_t);
+ rv = (int) fwrite (&v, (size_t) bytes, 1, wr->out);
if (rv != 1)
return -1;
wr->total_written += bytes;
@@ -428,7 +427,7 @@ static void yytbl_data_seti (const struct yytbl_data *tbl, int i,
*/
static size_t min_int_size (struct yytbl_data *tbl)
{
- flex_uint32_t i, total_len;
+ flex_int32_t i, total_len;
flex_int32_t max = 0;
total_len = yytbl_calc_total_len (tbl);
@@ -438,7 +437,7 @@ static size_t min_int_size (struct yytbl_data *tbl)
n = abs (yytbl_data_geti (tbl, i));
- if (n > max)
+ if (max < n)
max = n;
}
@@ -461,7 +460,8 @@ static size_t min_int_size (struct yytbl_data *tbl)
*/
void yytbl_data_compress (struct yytbl_data *tbl)
{
- flex_int32_t i, newsz, total_len;
+ flex_int32_t i, total_len;
+ size_t newsz;
struct yytbl_data newtbl;
yytbl_data_init (&newtbl, tbl->td_id);
@@ -472,19 +472,19 @@ void yytbl_data_compress (struct yytbl_data *tbl)
newsz = min_int_size (tbl);
- if (newsz == (int) YYTDFLAGS2BYTES (tbl->td_flags))
+ if (newsz == YYTDFLAGS2BYTES (tbl->td_flags))
/* No change in this table needed. */
return;
- if (newsz > (int) YYTDFLAGS2BYTES (tbl->td_flags)) {
+ if (newsz > YYTDFLAGS2BYTES (tbl->td_flags)) {
flex_die (_("detected negative compression"));
return;
}
total_len = yytbl_calc_total_len (tbl);
- newtbl.td_data = calloc (total_len, newsz);
- newtbl.td_flags =
- TFLAGS_CLRDATA (newtbl.td_flags) | BYTES2TFLAG (newsz);
+ newtbl.td_data = calloc ((size_t) total_len, newsz);
+ newtbl.td_flags = (flex_uint16_t)
+ (TFLAGS_CLRDATA (newtbl.td_flags) | BYTES2TFLAG (newsz));
for (i = 0; i < total_len; i++) {
flex_int32_t g;
diff --git a/contrib/flex/tables.h b/contrib/flex/src/tables.h
index 2e4afe5505c7..b8c2bbef3168 100644
--- a/contrib/flex/tables.h
+++ b/contrib/flex/src/tables.h
@@ -45,7 +45,7 @@ extern "C" {
#include "tables_shared.h"
struct yytbl_writer {
FILE *out;
- flex_uint32_t total_written;
+ int total_written;
/**< bytes written so far */
fpos_t th_ssize_pos;
/**< position of th_ssize */
diff --git a/contrib/flex/tables_shared.c b/contrib/flex/src/tables_shared.c
index b962666c8c8c..fca04388a588 100644
--- a/contrib/flex/tables_shared.c
+++ b/contrib/flex/src/tables_shared.c
@@ -52,12 +52,12 @@ dnl
/** Get the number of integers in this table. This is NOT the
* same thing as the number of elements.
- * @param td the table
+ * @param tbl the table
* @return the number of integers in the table
*/
yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl)
{
- flex_int32_t n;
+ flex_uint32_t n;
/* total number of ints */
n = tbl->td_lolen;
@@ -66,5 +66,5 @@ yyskel_static flex_int32_t yytbl_calc_total_len (const struct yytbl_data *tbl)
if (tbl->td_id == YYTD_ID_TRANSITION)
n *= 2;
- return n;
+ return (flex_int32_t) n;
}
diff --git a/contrib/flex/tables_shared.h b/contrib/flex/src/tables_shared.h
index bbf9910a96aa..bbf9910a96aa 100644
--- a/contrib/flex/tables_shared.h
+++ b/contrib/flex/src/tables_shared.h
diff --git a/contrib/flex/tblcmp.c b/contrib/flex/src/tblcmp.c
index 64f44c48fc60..81dfbc199651 100644
--- a/contrib/flex/tblcmp.c
+++ b/contrib/flex/src/tblcmp.c
@@ -36,11 +36,11 @@
/* declarations for functions that have forward references */
-void mkentry PROTO ((int *, int, int, int, int));
-void mkprot PROTO ((int[], int, int));
-void mktemplate PROTO ((int[], int, int));
-void mv2front PROTO ((int));
-int tbldiff PROTO ((int[], int, int[]));
+void mkentry(int *, int, int, int, int);
+void mkprot(int[], int, int);
+void mktemplate(int[], int, int);
+void mv2front(int);
+int tbldiff(int[], int, int[]);
/* bldtbl - build table entries for dfa state
@@ -78,8 +78,7 @@ int tbldiff PROTO ((int[], int, int[]));
* cost only one difference.
*/
-void bldtbl (state, statenum, totaltrans, comstate, comfreq)
- int state[], statenum, totaltrans, comstate, comfreq;
+void bldtbl (int state[], int statenum, int totaltrans, int comstate, int comfreq)
{
int extptr, extrct[2][CSIZE + 1];
int mindiff, minprot, i, d;
@@ -221,11 +220,11 @@ void bldtbl (state, statenum, totaltrans, comstate, comfreq)
* classes.
*/
-void cmptmps ()
+void cmptmps (void)
{
- int tmpstorage[CSIZE + 1];
+ int tmpstorage[CSIZE + 1];
int *tmp = tmpstorage, i, j;
- int totaltrans, trans;
+ int totaltrans, trans;
peakpairs = numtemps * numecs + tblend;
@@ -289,7 +288,7 @@ void cmptmps ()
/* expand_nxt_chk - expand the next check arrays */
-void expand_nxt_chk ()
+void expand_nxt_chk (void)
{
int old_max = current_max_xpairs;
@@ -300,8 +299,7 @@ void expand_nxt_chk ()
nxt = reallocate_integer_array (nxt, current_max_xpairs);
chk = reallocate_integer_array (chk, current_max_xpairs);
- zero_out ((char *) (chk + old_max),
- (size_t) (MAX_XPAIRS_INCREMENT * sizeof (int)));
+ memset(chk + old_max, 0, MAX_XPAIRS_INCREMENT * sizeof(int));
}
@@ -324,8 +322,7 @@ void expand_nxt_chk ()
* and an action number will be added in [-1].
*/
-int find_table_space (state, numtrans)
- int *state, numtrans;
+int find_table_space (int *state, int numtrans)
{
/* Firstfree is the position of the first possible occurrence of two
* consecutive unused records in the chk and nxt arrays.
@@ -419,13 +416,11 @@ int find_table_space (state, numtrans)
* Initializes "firstfree" to be one beyond the end of the table. Initializes
* all "chk" entries to be zero.
*/
-void inittbl ()
+void inittbl (void)
{
int i;
- zero_out ((char *) chk,
-
- (size_t) (current_max_xpairs * sizeof (int)));
+ memset(chk, 0, (size_t) current_max_xpairs * sizeof(int));
tblend = 0;
firstfree = tblend + 1;
@@ -451,7 +446,7 @@ void inittbl ()
/* mkdeftbl - make the default, "jam" table entries */
-void mkdeftbl ()
+void mkdeftbl (void)
{
int i;
@@ -494,18 +489,17 @@ void mkdeftbl ()
* (i.e., jam entries) into the table. It is assumed that by linking to
* "JAMSTATE" they will be taken care of. In any case, entries in "state"
* marking transitions to "SAME_TRANS" are treated as though they will be
- * taken care of by wherever "deflink" points. "totaltrans" is the total
+ * taken care of by whereever "deflink" points. "totaltrans" is the total
* number of transitions out of the state. If it is below a certain threshold,
* the tables are searched for an interior spot that will accommodate the
* state array.
*/
-void mkentry (state, numchars, statenum, deflink, totaltrans)
- int *state;
- int numchars, statenum, deflink, totaltrans;
+void mkentry (int *state, int numchars, int statenum, int deflink,
+ int totaltrans)
{
int minec, maxec, i, baseaddr;
- int tblbase, tbllast;
+ int tblbase, tbllast;
if (totaltrans == 0) { /* there are no out-transitions */
if (deflink == JAMSTATE)
@@ -616,8 +610,7 @@ void mkentry (state, numchars, statenum, deflink, totaltrans)
* has only one out-transition
*/
-void mk1tbl (state, sym, onenxt, onedef)
- int state, sym, onenxt, onedef;
+void mk1tbl (int state, int sym, int onenxt, int onedef)
{
if (firstfree < sym)
firstfree = sym;
@@ -642,8 +635,7 @@ void mk1tbl (state, sym, onenxt, onedef)
/* mkprot - create new proto entry */
-void mkprot (state, statenum, comstate)
- int state[], statenum, comstate;
+void mkprot (int state[], int statenum, int comstate)
{
int i, slot, tblbase;
@@ -680,11 +672,10 @@ void mkprot (state, statenum, comstate)
* to it
*/
-void mktemplate (state, statenum, comstate)
- int state[], statenum, comstate;
+void mktemplate (int state[], int statenum, int comstate)
{
int i, numdiff, tmpbase, tmp[CSIZE + 1];
- Char transset[CSIZE + 1];
+ unsigned char transset[CSIZE + 1];
int tsptr;
++numtemps;
@@ -712,7 +703,8 @@ void mktemplate (state, statenum, comstate)
if (state[i] == 0)
tnxt[tmpbase + i] = 0;
else {
- transset[tsptr++] = i;
+ /* Note: range 1..256 is mapped to 1..255,0 */
+ transset[tsptr++] = (unsigned char) i;
tnxt[tmpbase + i] = comstate;
}
@@ -732,8 +724,7 @@ void mktemplate (state, statenum, comstate)
/* mv2front - move proto queue element to front of queue */
-void mv2front (qelm)
- int qelm;
+void mv2front (int qelm)
{
if (firstprot != qelm) {
if (qelm == lastprot)
@@ -759,12 +750,11 @@ void mv2front (qelm)
* Transnum is the number of out-transitions for the state.
*/
-void place_state (state, statenum, transnum)
- int *state, statenum, transnum;
+void place_state (int *state, int statenum, int transnum)
{
int i;
int *state_ptr;
- int position = find_table_space (state, transnum);
+ int position = find_table_space (state, transnum);
/* "base" is the table of start positions. */
base[statenum] = position;
@@ -802,8 +792,7 @@ void place_state (state, statenum, transnum)
* no room, we process the sucker right now.
*/
-void stack1 (statenum, sym, nextstate, deflink)
- int statenum, sym, nextstate, deflink;
+void stack1 (int statenum, int sym, int nextstate, int deflink)
{
if (onesp >= ONE_STACK_SIZE - 1)
mk1tbl (statenum, sym, nextstate, deflink);
@@ -832,8 +821,7 @@ void stack1 (statenum, sym, nextstate, deflink)
* number is "numecs" minus the number of "SAME_TRANS" entries in "ext".
*/
-int tbldiff (state, pr, ext)
- int state[], pr, ext[];
+int tbldiff (int state[], int pr, int ext[])
{
int i, *sp = state, *ep = ext, *protp;
int numdiff = 0;
diff --git a/contrib/flex/version.h b/contrib/flex/src/version.h
index b9e5d6c23307..b9e5d6c23307 100644
--- a/contrib/flex/version.h
+++ b/contrib/flex/src/version.h
diff --git a/contrib/flex/yylex.c b/contrib/flex/src/yylex.c
index f06e5e6a2659..43e3ccd94f7e 100644
--- a/contrib/flex/yylex.c
+++ b/contrib/flex/src/yylex.c
@@ -37,18 +37,20 @@
/* yylex - scan for a regular expression token */
-
-int yylex ()
+extern char *yytext;
+extern FILE *yyout;
+extern int yylval;
+bool no_section3_escape = false;
+int yylex (void)
{
int toktype;
static int beglin = false;
- extern char *yytext;
- if (eofseen)
+ if (eofseen) {
toktype = EOF;
- else
+ } else {
toktype = flexscan ();
-
+ }
if (toktype == EOF || toktype == 0) {
eofseen = 1;
@@ -150,11 +152,12 @@ int yylex ()
break;
default:
- if (!isascii (yylval) || !isprint (yylval))
- fprintf (stderr,
- "\\%.3o",
- (unsigned int) yylval);
- else
+ if (!isascii (yylval) || !isprint (yylval)) {
+ if(trace_hex)
+ fprintf (stderr, "\\x%02x", (unsigned int) yylval);
+ else
+ fprintf (stderr, "\\%.3o", (unsigned int) yylval);
+ } else
(void) putc (yylval, stderr);
break;
}
@@ -173,12 +176,12 @@ int yylex ()
fprintf (stderr, "<<EOF>>");
break;
- case OPTION_OP:
+ case TOK_OPTION:
fprintf (stderr, "%s ", yytext);
break;
- case OPT_OUTFILE:
- case OPT_PREFIX:
+ case TOK_OUTFILE:
+ case TOK_PREFIX:
case CCE_ALNUM:
case CCE_ALPHA:
case CCE_BLANK:
diff --git a/usr.bin/lex/Makefile b/usr.bin/lex/Makefile
index 473b08928681..3459d8815620 100644
--- a/usr.bin/lex/Makefile
+++ b/usr.bin/lex/Makefile
@@ -14,7 +14,7 @@ LINKS+= ${BINDIR}/lex ${BINDIR}/lex++
LINKS+= ${BINDIR}/lex ${BINDIR}/flex
LINKS+= ${BINDIR}/lex ${BINDIR}/flex++
-FLEXDIR= ${SRCTOP}/contrib/flex
+FLEXDIR= ${SRCTOP}/contrib/flex/src
.PATH: ${FLEXDIR}
@@ -42,11 +42,7 @@ SUBDIR= lib
FLEX_VERSION= `awk -f ${.CURDIR}/version.awk ${.CURDIR}/config.h`
skel.c: config.h mkskel.sh flex.skl version.awk
- sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' \
- ${FLEXDIR}/flex.skl | \
- m4 -I${FLEXDIR} -P ${FLEX_VERSION} | \
- sed 's/m4postproc_/m4_/g' | \
- sh ${FLEXDIR}/mkskel.sh > ${.TARGET}
+ sh ${FLEXDIR}/mkskel.sh ${FLEXDIR} m4 ${FLEX_VERSION} > ${.TARGET}
bootstrap: ${GENFILES:S/^/init/g}
.for _f in ${GENFILES}
diff --git a/usr.bin/lex/config.h b/usr.bin/lex/config.h
index 88361dfb93df..525a1cbf4eee 100644
--- a/usr.bin/lex/config.h
+++ b/usr.bin/lex/config.h
@@ -1,5 +1,5 @@
-/* config.h. Generated from conf.in by configure. */
-/* conf.in. Generated from configure.in by autoheader. */
+/* src/config.h. Generated from config.h.in by configure. */
+/* src/config.h.in. Generated from configure.ac by autoheader. */
/* $FreeBSD$ */
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
@@ -21,27 +21,59 @@
*/
/* #undef HAVE_ALLOCA_H */
+/* Define to 1 if you have the `available.' function. */
+/* #undef HAVE_AVAILABLE_ */
+
+/* Define to 1 if you have the `by' function. */
+/* #undef HAVE_BY */
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+/* #undef HAVE_CFLOCALECOPYCURRENT */
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
+
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
/* #undef HAVE_DCGETTEXT */
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the `dnl' function. */
+/* #undef HAVE_DNL */
+
/* Define to 1 if you have the `dup2' function. */
#define HAVE_DUP2 1
+/* Define to 1 if you have the `enabled' function. */
+/* #undef HAVE_ENABLED */
+
/* Define to 1 if you have the `fork' function. */
#define HAVE_FORK 1
+/* Define to 1 if you have the `function.' function. */
+/* #undef HAVE_FUNCTION_ */
+
/* Define if the GNU gettext() function is already present or preinstalled. */
/* #undef HAVE_GETTEXT */
-/* Define if you have the iconv() function. */
+/* Define to 1 if you have the `have' function. */
+/* #undef HAVE_HAVE */
+
+/* Define if you have the iconv() function and it works. */
/* #undef HAVE_ICONV */
+/* Define to 1 if you have the `if' function. */
+/* #undef HAVE_IF */
+
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
-/* Define to 1 if you have the `isascii' function. */
-#define HAVE_ISASCII 1
+/* Define to 1 if you have the `is' function. */
+/* #undef HAVE_IS */
/* Define to 1 if you have the <libintl.h> header file. */
/* #undef HAVE_LIBINTL_H */
@@ -49,9 +81,6 @@
/* Define to 1 if you have the `m' library (-lm). */
#define HAVE_LIBM 1
-/* pthread library */
-#define HAVE_LIBPTHREAD 1
-
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
@@ -63,7 +92,7 @@
#define HAVE_MALLOC 1
/* Define to 1 if you have the <malloc.h> header file. */
-/* #undef HAVE_MALLOC_H */
+#define HAVE_MALLOC_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
@@ -71,9 +100,24 @@
/* Define to 1 if you have the `memset' function. */
#define HAVE_MEMSET 1
+/* Define to 1 if you have the `Needed' function. */
+/* #undef HAVE_NEEDED */
+
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
+/* Define to 1 if you have the `NLS' function. */
+/* #undef HAVE_NLS */
+
+/* Define to 1 if you have the `not' function. */
+/* #undef HAVE_NOT */
+
+/* Define to 1 if you have the `only' function. */
+/* #undef HAVE_ONLY */
+
+/* Define to 1 if you have the `OpenBSD' function. */
+/* #undef HAVE_OPENBSD */
+
/* Define to 1 if you have the `pow' function. */
#define HAVE_POW 1
@@ -84,30 +128,39 @@
and to 0 otherwise. */
#define HAVE_REALLOC 1
+/* Define to 1 if you have the `reallocarray' function. */
+#define HAVE_REALLOCARRAY 1
+
/* Define to 1 if you have the `regcomp' function. */
#define HAVE_REGCOMP 1
/* Define to 1 if you have the <regex.h> header file. */
#define HAVE_REGEX_H 1
+/* Define to 1 if you have the `replacement' function. */
+/* #undef HAVE_REPLACEMENT */
+
/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
/* Define to 1 if stdbool.h conforms to C99. */
#define HAVE_STDBOOL_H 1
-/* Define to 1 if you have the <stddef.h> header file. */
-#define HAVE_STDDEF_H 1
-
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
+/* Define to 1 if you have the `strcasecmp' function. */
+#define HAVE_STRCASECMP 1
+
/* Define to 1 if you have the `strchr' function. */
#define HAVE_STRCHR 1
+/* Define to 1 if you have the `strdup' function. */
+#define HAVE_STRDUP 1
+
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
@@ -123,18 +176,24 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
-/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* Define to 1 if you have the <sys/wait.h> header file. */
#define HAVE_SYS_WAIT_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
+/* Define to 1 if you have the `Used' function. */
+/* #undef HAVE_USED */
+
/* Define to 1 if you have the `vfork' function. */
#define HAVE_VFORK 1
/* Define to 1 if you have the <vfork.h> header file. */
/* #undef HAVE_VFORK_H */
+/* Define to 1 if you have the `We' function. */
+/* #undef HAVE_WE */
+
/* Define to 1 if `fork' works. */
#define HAVE_WORKING_FORK 1
@@ -144,12 +203,12 @@
/* Define to 1 if the system has the type `_Bool'. */
#define HAVE__BOOL 1
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
/* Define to the m4 executable name. */
#define M4 "m4"
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
/* Name of package */
#define PACKAGE "flex"
@@ -160,7 +219,7 @@
#define PACKAGE_NAME "the fast lexical analyser generator"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "the fast lexical analyser generator 2.5.37"
+#define PACKAGE_STRING "the fast lexical analyser generator 2.6.4"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "flex"
@@ -169,7 +228,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "2.5.37"
+#define PACKAGE_VERSION "2.6.4"
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
@@ -183,7 +242,7 @@
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "2.5.37"
+#define VERSION "2.6.4"
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
`char[]'. */
diff --git a/usr.bin/lex/initparse.c b/usr.bin/lex/initparse.c
index a5ac139fd0cb..c723c5b45c40 100644
--- a/usr.bin/lex/initparse.c
+++ b/usr.bin/lex/initparse.c
@@ -1,17 +1,19 @@
/* $FreeBSD$ */
-#ifndef lint
-static const char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";
-#endif
+/* original parser id follows */
+/* yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93" */
+/* (use YYMAJOR/YYMINOR for ifdefs dependent on parser version) */
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
+#define YYPATCH 20170430
#define YYEMPTY (-1)
#define yyclearin (yychar = YYEMPTY)
#define yyerrok (yyerrflag = 0)
#define YYRECOVERING() (yyerrflag != 0)
-
+#define YYENOMEM (-2)
+#define YYEOF 0
#define YYPREFIX "yy"
#define YYPURE 0
@@ -67,7 +69,7 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
do{ \
char fw3_msg[MAXLINE];\
snprintf( fw3_msg, MAXLINE,(fmt), (a1), (a2) );\
- warn( fw3_msg );\
+ lwarn( fw3_msg );\
}while(0)
/* Expand a POSIX character class expression. */
@@ -99,10 +101,12 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
*/
#define YYSTYPE int
-#line 99 "parse.c"
+#line 102 "parse.c"
-#ifndef YYSTYPE
+#if ! defined(YYSTYPE) && ! defined(YYSTYPE_IS_DECLARED)
+/* Default: YYSTYPE is the semantic value type. */
typedef int YYSTYPE;
+# define YYSTYPE_IS_DECLARED 1
#endif
/* compatibility with bison */
@@ -144,13 +148,13 @@ extern int YYPARSE_DECL();
#define NAME 262
#define PREVCCL 263
#define EOF_OP 264
-#define OPTION_OP 265
-#define OPT_OUTFILE 266
-#define OPT_PREFIX 267
-#define OPT_YYCLASS 268
-#define OPT_HEADER 269
-#define OPT_EXTRA_TYPE 270
-#define OPT_TABLES 271
+#define TOK_OPTION 265
+#define TOK_OUTFILE 266
+#define TOK_PREFIX 267
+#define TOK_YYCLASS 268
+#define TOK_HEADER_FILE 269
+#define TOK_EXTRA_TYPE 270
+#define TOK_TABLES_FILE 271
#define CCE_ALNUM 272
#define CCE_ALPHA 273
#define CCE_BLANK 274
@@ -182,7 +186,8 @@ extern int YYPARSE_DECL();
#define BEGIN_REPEAT_FLEX 300
#define END_REPEAT_FLEX 301
#define YYERRCODE 256
-static const short yylhs[] = { -1,
+typedef int YYINT;
+static const YYINT yylhs[] = { -1,
0, 1, 2, 2, 2, 2, 3, 6, 6, 7,
7, 7, 8, 9, 9, 10, 10, 10, 10, 10,
10, 4, 4, 4, 5, 12, 12, 12, 12, 14,
@@ -194,7 +199,7 @@ static const short yylhs[] = { -1,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 22, 22,
};
-static const short yylen[] = { 2,
+static const YYINT yylen[] = { 2,
5, 0, 3, 2, 0, 1, 1, 1, 1, 2,
1, 1, 2, 2, 0, 3, 3, 3, 3, 3,
3, 5, 5, 0, 0, 2, 1, 1, 1, 0,
@@ -206,7 +211,7 @@ static const short yylen[] = { 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 0,
};
-static const short yydefred[] = { 2,
+static const YYINT yydefred[] = { 2,
0, 0, 6, 0, 7, 8, 9, 15, 24, 0,
4, 0, 0, 12, 11, 0, 0, 0, 0, 0,
0, 0, 14, 0, 1, 0, 10, 0, 0, 0,
@@ -222,12 +227,12 @@ static const short yydefred[] = { 2,
0, 0, 0, 62, 63, 66, 0, 49, 0, 55,
0, 67, 0, 48, 0, 54, 47, 53,
};
-static const short yydgoto[] = { 1,
+static const YYINT yydgoto[] = { 1,
2, 4, 9, 13, 25, 10, 16, 11, 12, 23,
26, 59, 60, 35, 47, 48, 61, 62, 63, 64,
65, 71, 66, 74, 119,
};
-static const short yysindex[] = { 0,
+static const YYINT yysindex[] = { 0,
0, -222, 0, -155, 0, 0, 0, 0, 0, -215,
0, -123, 6, 0, 0, -193, 10, 21, 26, 31,
35, 37, 0, 59, 0, -44, 0, -147, -145, -140,
@@ -243,7 +248,7 @@ static const short yysindex[] = { 0,
-30, -36, -39, 0, 0, 0, -104, 0, -219, 0,
-238, 0, -144, 0, -143, 0, 0, 0,
};
-static const short yyrindex[] = { 0,
+static const YYINT yyrindex[] = { 0,
0, -141, 0, 0, 0, 0, 0, 0, 0, 0,
0, -134, 9, 0, 0, -125, 0, 0, 0, 0,
0, 0, 0, -178, 0, 22, 0, 0, 0, 0,
@@ -259,13 +264,13 @@ static const short yyrindex[] = { 0,
50, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
-static const short yygindex[] = { 0,
+static const YYINT yygindex[] = { 0,
0, 0, 0, 121, 133, 0, 0, 0, 0, 0,
0, 0, 106, 0, 0, 93, 0, 32, 84, -45,
0, 0, 25, 90, 0,
};
#define YYTABLESIZE 419
-static const short yytable[] = { 57,
+static const YYINT yytable[] = { 57,
83, 84, 90, 56, 131, 118, 91, 129, 25, 57,
120, 24, 33, 46, 56, 55, 56, 81, 33, 135,
57, 85, 57, 57, 33, 57, 55, 45, 55, 57,
@@ -309,7 +314,7 @@ static const short yytable[] = { 57,
68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
68, 68, 68, 68, 68, 68, 68, 68, 68,
};
-static const short yycheck[] = { 10,
+static const YYINT yycheck[] = { 10,
42, 43, 34, 34, 44, 93, 41, 44, 0, 40,
36, 60, 34, 10, 34, 46, 34, 63, 40, 258,
40, 63, 40, 34, 46, 36, 46, 10, 46, 40,
@@ -358,8 +363,10 @@ static const short yycheck[] = { 10,
#define YYDEBUG 0
#endif
#define YYMAXTOKEN 301
+#define YYUNDFTOKEN 329
+#define YYTRANSLATE(a) ((a) > YYMAXTOKEN ? YYUNDFTOKEN : (a))
#if YYDEBUG
-static const char *yyname[] = {
+static const char *const yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,"'\\n'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,"'\"'",0,"'$'",0,0,0,"'('","')'","'*'","'+'","','","'-'","'.'","'/'",0,0,
@@ -369,16 +376,17 @@ static const char *yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,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,"CHAR","NUMBER","SECTEND",
-"SCDECL","XSCDECL","NAME","PREVCCL","EOF_OP","OPTION_OP","OPT_OUTFILE",
-"OPT_PREFIX","OPT_YYCLASS","OPT_HEADER","OPT_EXTRA_TYPE","OPT_TABLES",
+"SCDECL","XSCDECL","NAME","PREVCCL","EOF_OP","TOK_OPTION","TOK_OUTFILE",
+"TOK_PREFIX","TOK_YYCLASS","TOK_HEADER_FILE","TOK_EXTRA_TYPE","TOK_TABLES_FILE",
"CCE_ALNUM","CCE_ALPHA","CCE_BLANK","CCE_CNTRL","CCE_DIGIT","CCE_GRAPH",
"CCE_LOWER","CCE_PRINT","CCE_PUNCT","CCE_SPACE","CCE_UPPER","CCE_XDIGIT",
"CCE_NEG_ALNUM","CCE_NEG_ALPHA","CCE_NEG_BLANK","CCE_NEG_CNTRL","CCE_NEG_DIGIT",
"CCE_NEG_GRAPH","CCE_NEG_LOWER","CCE_NEG_PRINT","CCE_NEG_PUNCT","CCE_NEG_SPACE",
"CCE_NEG_UPPER","CCE_NEG_XDIGIT","CCL_OP_DIFF","CCL_OP_UNION",
-"BEGIN_REPEAT_POSIX","END_REPEAT_POSIX","BEGIN_REPEAT_FLEX","END_REPEAT_FLEX",
+"BEGIN_REPEAT_POSIX","END_REPEAT_POSIX","BEGIN_REPEAT_FLEX","END_REPEAT_FLEX",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,"illegal-symbol",
};
-static const char *yyrule[] = {
+static const char *const yyrule[] = {
"$accept : goal",
"goal : initlex sect1 sect1end sect2 initforrule",
"initlex :",
@@ -392,15 +400,15 @@ static const char *yyrule[] = {
"namelist1 : namelist1 NAME",
"namelist1 : NAME",
"namelist1 : error",
-"options : OPTION_OP optionlist",
+"options : TOK_OPTION optionlist",
"optionlist : optionlist option",
"optionlist :",
-"option : OPT_OUTFILE '=' NAME",
-"option : OPT_EXTRA_TYPE '=' NAME",
-"option : OPT_PREFIX '=' NAME",
-"option : OPT_YYCLASS '=' NAME",
-"option : OPT_HEADER '=' NAME",
-"option : OPT_TABLES '=' NAME",
+"option : TOK_OUTFILE '=' NAME",
+"option : TOK_EXTRA_TYPE '=' NAME",
+"option : TOK_PREFIX '=' NAME",
+"option : TOK_YYCLASS '=' NAME",
+"option : TOK_HEADER_FILE '=' NAME",
+"option : TOK_TABLES_FILE '=' NAME",
"sect2 : sect2 scon initforrule flexrule '\\n'",
"sect2 : sect2 scon '{' sect2 '}'",
"sect2 :",
@@ -496,31 +504,31 @@ YYSTYPE yylval;
#ifdef YYMAXDEPTH
#define YYSTACKSIZE YYMAXDEPTH
#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
+#define YYSTACKSIZE 10000
+#define YYMAXDEPTH 10000
#endif
#endif
-#define YYINITSTACKSIZE 500
+#define YYINITSTACKSIZE 200
typedef struct {
unsigned stacksize;
- short *s_base;
- short *s_mark;
- short *s_last;
+ YYINT *s_base;
+ YYINT *s_mark;
+ YYINT *s_last;
YYSTYPE *l_base;
YYSTYPE *l_mark;
} YYSTACKDATA;
/* variables for the parser stack */
static YYSTACKDATA yystack;
-#line 948 "parse.y"
+#line 950 "parse.y"
/* build_eof_action - build the "<<EOF>>" action for the active start
* conditions
*/
-void build_eof_action()
+void build_eof_action(void)
{
int i;
char action_text[MAXLINE];
@@ -545,7 +553,8 @@ void build_eof_action()
}
}
- line_directive_out( (FILE *) 0, 1 );
+ line_directive_out(NULL, 1);
+ add_action("[[");
/* This isn't a normal rule after all - don't count it as
* such, so we don't have any holes in the rule numbering
@@ -559,8 +568,7 @@ void build_eof_action()
/* format_synerr - write out formatted syntax error */
-void format_synerr( msg, arg )
-const char *msg, arg[];
+void format_synerr( const char *msg, const char arg[] )
{
char errmsg[MAXLINE];
@@ -571,8 +579,7 @@ const char *msg, arg[];
/* synerr - report a syntax error */
-void synerr( str )
-const char *str;
+void synerr( const char *str )
{
syntaxerror = true;
pinpoint_message( str );
@@ -581,20 +588,18 @@ const char *str;
/* format_warn - write out formatted warning */
-void format_warn( msg, arg )
-const char *msg, arg[];
+void format_warn( const char *msg, const char arg[] )
{
char warn_msg[MAXLINE];
snprintf( warn_msg, sizeof(warn_msg), msg, arg );
- warn( warn_msg );
+ lwarn( warn_msg );
}
-/* warn - report a warning, unless -w was given */
+/* lwarn - report a warning, unless -w was given */
-void warn( str )
-const char *str;
+void lwarn( const char *str )
{
line_warning( str, linenum );
}
@@ -603,8 +608,7 @@ const char *str;
* pinpointing its location
*/
-void format_pinpoint_message( msg, arg )
-const char *msg, arg[];
+void format_pinpoint_message( const char *msg, const char arg[] )
{
char errmsg[MAXLINE];
@@ -615,8 +619,7 @@ const char *msg, arg[];
/* pinpoint_message - write out a message, pinpointing its location */
-void pinpoint_message( str )
-const char *str;
+void pinpoint_message( const char *str )
{
line_pinpoint( str, linenum );
}
@@ -624,9 +627,7 @@ const char *str;
/* line_warning - report a warning at a given line, unless -w was given */
-void line_warning( str, line )
-const char *str;
-int line;
+void line_warning( const char *str, int line )
{
char warning[MAXLINE];
@@ -640,9 +641,7 @@ int line;
/* line_pinpoint - write out a message, pinpointing it at the given line */
-void line_pinpoint( str, line )
-const char *str;
-int line;
+void line_pinpoint( const char *str, int line )
{
fprintf( stderr, "%s:%d: %s\n", infilename, line, str );
}
@@ -652,14 +651,14 @@ int line;
* currently, messages are ignore
*/
-void yyerror( msg )
-const char *msg;
+void yyerror( const char *msg )
{
+ (void)msg;
}
#line 656 "parse.c"
#if YYDEBUG
-#include <stdio.h> /* needed for printf */
+#include <stdio.h> /* needed for printf */
#endif
#include <stdlib.h> /* needed for malloc, etc */
@@ -670,27 +669,27 @@ static int yygrowstack(YYSTACKDATA *data)
{
int i;
unsigned newsize;
- short *newss;
+ YYINT *newss;
YYSTYPE *newvs;
if ((newsize = data->stacksize) == 0)
newsize = YYINITSTACKSIZE;
else if (newsize >= YYMAXDEPTH)
- return -1;
+ return YYENOMEM;
else if ((newsize *= 2) > YYMAXDEPTH)
newsize = YYMAXDEPTH;
- i = data->s_mark - data->s_base;
- newss = (short *)realloc(data->s_base, newsize * sizeof(*newss));
+ i = (int) (data->s_mark - data->s_base);
+ newss = (YYINT *)realloc(data->s_base, newsize * sizeof(*newss));
if (newss == NULL)
- return -1;
+ return YYENOMEM;
data->s_base = newss;
data->s_mark = newss + i;
newvs = (YYSTYPE *)realloc(data->l_base, newsize * sizeof(*newvs));
if (newvs == NULL)
- return -1;
+ return YYENOMEM;
data->l_base = newvs;
data->l_mark = newvs + i;
@@ -731,6 +730,8 @@ YYPARSE_DECL()
}
#endif
+ yym = 0;
+ yyn = 0;
yynerrs = 0;
yyerrflag = 0;
yychar = YYEMPTY;
@@ -740,7 +741,7 @@ YYPARSE_DECL()
memset(&yystack, 0, sizeof(yystack));
#endif
- if (yystack.s_base == NULL && yygrowstack(&yystack)) goto yyoverflow;
+ if (yystack.s_base == NULL && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
yystack.s_mark = yystack.s_base;
yystack.l_mark = yystack.l_base;
yystate = 0;
@@ -750,30 +751,26 @@ yyloop:
if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
if (yychar < 0)
{
- if ((yychar = YYLEX) < 0) yychar = 0;
+ yychar = YYLEX;
+ if (yychar < 0) yychar = YYEOF;
#if YYDEBUG
if (yydebug)
{
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
}
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX, yystate, yytable[yyn]);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
- {
- goto yyoverflow;
- }
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
yystate = yytable[yyn];
*++yystack.s_mark = yytable[yyn];
*++yystack.l_mark = yylval;
@@ -781,18 +778,17 @@ yyloop:
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
- if (yyerrflag) goto yyinrecovery;
+ if (yyerrflag != 0) goto yyinrecovery;
- yyerror("syntax error");
-
- goto yyerrlab;
+ YYERROR_CALL("syntax error");
+ goto yyerrlab; /* redundant goto avoids 'unused label' warning */
yyerrlab:
++yynerrs;
@@ -802,18 +798,15 @@ yyinrecovery:
yyerrflag = 3;
for (;;)
{
- if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
+ if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
- {
- goto yyoverflow;
- }
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
yystate = yytable[yyn];
*++yystack.s_mark = yytable[yyn];
*++yystack.l_mark = yylval;
@@ -834,13 +827,11 @@ yyinrecovery:
}
else
{
- if (yychar == 0) goto yyabort;
+ if (yychar == YYEOF) goto yyabort;
#if YYDEBUG
if (yydebug)
{
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@@ -856,10 +847,11 @@ yyreduce:
YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
- if (yym)
+ if (yym > 0)
yyval = yystack.l_mark[1-yym];
else
memset(&yyval, 0, sizeof yyval);
+
switch (yyn)
{
case 1:
@@ -888,7 +880,7 @@ case 1:
else
add_action( "ECHO" );
- add_action( ";\n\tYY_BREAK\n" );
+ add_action( ";\n\tYY_BREAK]]\n" );
}
break;
case 2:
@@ -934,40 +926,42 @@ break;
case 16:
#line 195 "parse.y"
{
- outfilename = copy_string( nmstr );
+ outfilename = xstrdup(nmstr);
did_outfilename = 1;
}
break;
case 17:
#line 200 "parse.y"
- { extra_type = copy_string( nmstr ); }
+ { extra_type = xstrdup(nmstr); }
break;
case 18:
#line 202 "parse.y"
- { prefix = copy_string( nmstr ); }
+ { prefix = xstrdup(nmstr);
+ if (strchr(prefix, '[') || strchr(prefix, ']'))
+ flexerror(_("Prefix must not contain [ or ]")); }
break;
case 19:
-#line 204 "parse.y"
- { yyclass = copy_string( nmstr ); }
+#line 206 "parse.y"
+ { yyclass = xstrdup(nmstr); }
break;
case 20:
-#line 206 "parse.y"
- { headerfilename = copy_string( nmstr ); }
+#line 208 "parse.y"
+ { headerfilename = xstrdup(nmstr); }
break;
case 21:
-#line 208 "parse.y"
- { tablesext = true; tablesfilename = copy_string( nmstr ); }
+#line 210 "parse.y"
+ { tablesext = true; tablesfilename = xstrdup(nmstr); }
break;
case 22:
-#line 212 "parse.y"
+#line 214 "parse.y"
{ scon_stk_ptr = yystack.l_mark[-3]; }
break;
case 23:
-#line 214 "parse.y"
+#line 216 "parse.y"
{ scon_stk_ptr = yystack.l_mark[-3]; }
break;
case 25:
-#line 219 "parse.y"
+#line 221 "parse.y"
{
/* Initialize for a parse of one rule. */
trlcontxt = variable_trail_rule = varlength = false;
@@ -980,7 +974,7 @@ case 25:
}
break;
case 26:
-#line 232 "parse.y"
+#line 234 "parse.y"
{
pat = yystack.l_mark[0];
finish_rule( pat, variable_trail_rule,
@@ -1017,7 +1011,7 @@ case 26:
}
break;
case 27:
-#line 268 "parse.y"
+#line 270 "parse.y"
{
pat = yystack.l_mark[0];
finish_rule( pat, variable_trail_rule,
@@ -1042,7 +1036,7 @@ case 27:
}
break;
case 28:
-#line 292 "parse.y"
+#line 294 "parse.y"
{
if ( scon_stk_ptr > 0 )
build_eof_action();
@@ -1057,7 +1051,7 @@ case 28:
scon_stk[++scon_stk_ptr] = i;
if ( scon_stk_ptr == 0 )
- warn(
+ lwarn(
"all start conditions already have <<EOF>> rules" );
else
@@ -1066,19 +1060,19 @@ case 28:
}
break;
case 29:
-#line 315 "parse.y"
+#line 317 "parse.y"
{ synerr( _("unrecognized rule") ); }
break;
case 30:
-#line 319 "parse.y"
+#line 321 "parse.y"
{ yyval = scon_stk_ptr; }
break;
case 31:
-#line 323 "parse.y"
+#line 325 "parse.y"
{ yyval = yystack.l_mark[-2]; }
break;
case 32:
-#line 326 "parse.y"
+#line 328 "parse.y"
{
yyval = scon_stk_ptr;
@@ -1096,15 +1090,15 @@ case 32:
}
break;
case 33:
-#line 343 "parse.y"
+#line 345 "parse.y"
{ yyval = scon_stk_ptr; }
break;
case 36:
-#line 351 "parse.y"
+#line 353 "parse.y"
{ synerr( _("bad start condition list") ); }
break;
case 37:
-#line 355 "parse.y"
+#line 357 "parse.y"
{
if ( (scnum = sclookup( nmstr )) == 0 )
format_pinpoint_message(
@@ -1127,7 +1121,7 @@ case 37:
}
break;
case 38:
-#line 378 "parse.y"
+#line 380 "parse.y"
{
if ( transchar[lastst[yystack.l_mark[0]]] != SYM_EPSILON )
/* Provide final transition \now/ so it
@@ -1151,7 +1145,7 @@ case 38:
* erroneously.
*/
if ( ! varlength || headcnt != 0 )
- warn(
+ lwarn(
"trailing context made variable due to preceding '|' action" );
/* Mark as variable. */
@@ -1184,11 +1178,11 @@ case 38:
}
break;
case 39:
-#line 434 "parse.y"
+#line 436 "parse.y"
{ synerr( _("trailing context used twice") ); }
break;
case 40:
-#line 437 "parse.y"
+#line 439 "parse.y"
{
headcnt = 0;
trailcnt = 1;
@@ -1208,7 +1202,7 @@ case 40:
/* See the comment in the rule for "re2 re"
* above.
*/
- warn(
+ lwarn(
"trailing context made variable due to preceding '|' action" );
varlength = true;
@@ -1232,7 +1226,7 @@ case 40:
}
break;
case 41:
-#line 480 "parse.y"
+#line 482 "parse.y"
{
yyval = yystack.l_mark[0];
@@ -1249,18 +1243,18 @@ case 41:
}
break;
case 42:
-#line 498 "parse.y"
+#line 500 "parse.y"
{
varlength = true;
yyval = mkor( yystack.l_mark[-2], yystack.l_mark[0] );
}
break;
case 43:
-#line 504 "parse.y"
+#line 506 "parse.y"
{ yyval = yystack.l_mark[0]; }
break;
case 44:
-#line 509 "parse.y"
+#line 511 "parse.y"
{
/* This rule is written separately so the
* reduction will occur before the trailing
@@ -1287,7 +1281,7 @@ case 44:
}
break;
case 45:
-#line 536 "parse.y"
+#line 538 "parse.y"
{
/* This is where concatenation of adjacent patterns
* gets done.
@@ -1296,11 +1290,11 @@ case 45:
}
break;
case 46:
-#line 544 "parse.y"
+#line 546 "parse.y"
{ yyval = yystack.l_mark[0]; }
break;
case 47:
-#line 547 "parse.y"
+#line 549 "parse.y"
{
varlength = true;
@@ -1329,7 +1323,7 @@ case 47:
}
break;
case 48:
-#line 575 "parse.y"
+#line 577 "parse.y"
{
varlength = true;
@@ -1344,7 +1338,7 @@ case 48:
}
break;
case 49:
-#line 589 "parse.y"
+#line 591 "parse.y"
{
/* The series could be something like "(foo)",
* in which case we have no idea what its length
@@ -1365,7 +1359,7 @@ case 49:
}
break;
case 50:
-#line 611 "parse.y"
+#line 613 "parse.y"
{
varlength = true;
@@ -1373,21 +1367,21 @@ case 50:
}
break;
case 51:
-#line 618 "parse.y"
+#line 620 "parse.y"
{
varlength = true;
yyval = mkposcl( yystack.l_mark[-1] );
}
break;
case 52:
-#line 624 "parse.y"
+#line 626 "parse.y"
{
varlength = true;
yyval = mkopt( yystack.l_mark[-1] );
}
break;
case 53:
-#line 630 "parse.y"
+#line 632 "parse.y"
{
varlength = true;
@@ -1416,7 +1410,7 @@ case 53:
}
break;
case 54:
-#line 658 "parse.y"
+#line 660 "parse.y"
{
varlength = true;
@@ -1431,7 +1425,7 @@ case 54:
}
break;
case 55:
-#line 672 "parse.y"
+#line 674 "parse.y"
{
/* The singleton could be something like "(foo)",
* in which case we have no idea what its length
@@ -1451,7 +1445,7 @@ case 55:
}
break;
case 56:
-#line 691 "parse.y"
+#line 693 "parse.y"
{
if ( ! madeany )
{
@@ -1486,11 +1480,11 @@ case 56:
}
break;
case 57:
-#line 725 "parse.y"
+#line 727 "parse.y"
{
/* Sort characters for fast searching.
*/
- qsort( ccltbl + cclmap[yystack.l_mark[0]], ccllen[yystack.l_mark[0]], sizeof (*ccltbl), cclcmp );
+ qsort( ccltbl + cclmap[yystack.l_mark[0]], (size_t) ccllen[yystack.l_mark[0]], sizeof (*ccltbl), cclcmp );
if ( useecs )
mkeccl( ccltbl + cclmap[yystack.l_mark[0]], ccllen[yystack.l_mark[0]],
@@ -1505,7 +1499,7 @@ case 57:
}
break;
case 58:
-#line 743 "parse.y"
+#line 745 "parse.y"
{
++rulelen;
@@ -1516,15 +1510,15 @@ case 58:
}
break;
case 59:
-#line 753 "parse.y"
+#line 755 "parse.y"
{ yyval = yystack.l_mark[-1]; }
break;
case 60:
-#line 756 "parse.y"
+#line 758 "parse.y"
{ yyval = yystack.l_mark[-1]; }
break;
case 61:
-#line 759 "parse.y"
+#line 761 "parse.y"
{
++rulelen;
@@ -1539,26 +1533,26 @@ case 61:
}
break;
case 62:
-#line 773 "parse.y"
+#line 775 "parse.y"
{ yyval = ccl_set_diff (yystack.l_mark[-2], yystack.l_mark[0]); }
break;
case 63:
-#line 774 "parse.y"
+#line 776 "parse.y"
{ yyval = ccl_set_union (yystack.l_mark[-2], yystack.l_mark[0]); }
break;
case 65:
-#line 780 "parse.y"
+#line 782 "parse.y"
{ yyval = yystack.l_mark[-1]; }
break;
case 66:
-#line 783 "parse.y"
+#line 785 "parse.y"
{
cclnegate( yystack.l_mark[-1] );
yyval = yystack.l_mark[-1];
}
break;
case 67:
-#line 790 "parse.y"
+#line 792 "parse.y"
{
if (sf_case_ins())
@@ -1619,7 +1613,7 @@ case 67:
}
break;
case 68:
-#line 850 "parse.y"
+#line 852 "parse.y"
{
ccladd( yystack.l_mark[-1], yystack.l_mark[0] );
cclsorted = cclsorted && (yystack.l_mark[0] > lastchar);
@@ -1638,7 +1632,7 @@ case 68:
}
break;
case 69:
-#line 868 "parse.y"
+#line 870 "parse.y"
{
/* Too hard to properly maintain cclsorted. */
cclsorted = false;
@@ -1646,7 +1640,7 @@ case 69:
}
break;
case 70:
-#line 875 "parse.y"
+#line 877 "parse.y"
{
cclsorted = true;
lastchar = 0;
@@ -1654,31 +1648,31 @@ case 70:
}
break;
case 71:
-#line 883 "parse.y"
+#line 885 "parse.y"
{ CCL_EXPR(isalnum); }
break;
case 72:
-#line 884 "parse.y"
+#line 886 "parse.y"
{ CCL_EXPR(isalpha); }
break;
case 73:
-#line 885 "parse.y"
+#line 887 "parse.y"
{ CCL_EXPR(IS_BLANK); }
break;
case 74:
-#line 886 "parse.y"
+#line 888 "parse.y"
{ CCL_EXPR(iscntrl); }
break;
case 75:
-#line 887 "parse.y"
+#line 889 "parse.y"
{ CCL_EXPR(isdigit); }
break;
case 76:
-#line 888 "parse.y"
+#line 890 "parse.y"
{ CCL_EXPR(isgraph); }
break;
case 77:
-#line 889 "parse.y"
+#line 891 "parse.y"
{
CCL_EXPR(islower);
if (sf_case_ins())
@@ -1686,23 +1680,23 @@ case 77:
}
break;
case 78:
-#line 894 "parse.y"
+#line 896 "parse.y"
{ CCL_EXPR(isprint); }
break;
case 79:
-#line 895 "parse.y"
+#line 897 "parse.y"
{ CCL_EXPR(ispunct); }
break;
case 80:
-#line 896 "parse.y"
+#line 898 "parse.y"
{ CCL_EXPR(isspace); }
break;
case 81:
-#line 897 "parse.y"
+#line 899 "parse.y"
{ CCL_EXPR(isxdigit); }
break;
case 82:
-#line 898 "parse.y"
+#line 900 "parse.y"
{
CCL_EXPR(isupper);
if (sf_case_ins())
@@ -1710,65 +1704,65 @@ case 82:
}
break;
case 83:
-#line 904 "parse.y"
+#line 906 "parse.y"
{ CCL_NEG_EXPR(isalnum); }
break;
case 84:
-#line 905 "parse.y"
+#line 907 "parse.y"
{ CCL_NEG_EXPR(isalpha); }
break;
case 85:
-#line 906 "parse.y"
+#line 908 "parse.y"
{ CCL_NEG_EXPR(IS_BLANK); }
break;
case 86:
-#line 907 "parse.y"
+#line 909 "parse.y"
{ CCL_NEG_EXPR(iscntrl); }
break;
case 87:
-#line 908 "parse.y"
+#line 910 "parse.y"
{ CCL_NEG_EXPR(isdigit); }
break;
case 88:
-#line 909 "parse.y"
+#line 911 "parse.y"
{ CCL_NEG_EXPR(isgraph); }
break;
case 89:
-#line 910 "parse.y"
+#line 912 "parse.y"
{ CCL_NEG_EXPR(isprint); }
break;
case 90:
-#line 911 "parse.y"
+#line 913 "parse.y"
{ CCL_NEG_EXPR(ispunct); }
break;
case 91:
-#line 912 "parse.y"
+#line 914 "parse.y"
{ CCL_NEG_EXPR(isspace); }
break;
case 92:
-#line 913 "parse.y"
+#line 915 "parse.y"
{ CCL_NEG_EXPR(isxdigit); }
break;
case 93:
-#line 914 "parse.y"
+#line 916 "parse.y"
{
if ( sf_case_ins() )
- warn(_("[:^lower:] is ambiguous in case insensitive scanner"));
+ lwarn(_("[:^lower:] is ambiguous in case insensitive scanner"));
else
CCL_NEG_EXPR(islower);
}
break;
case 94:
-#line 920 "parse.y"
+#line 922 "parse.y"
{
if ( sf_case_ins() )
- warn(_("[:^upper:] ambiguous in case insensitive scanner"));
+ lwarn(_("[:^upper:] ambiguous in case insensitive scanner"));
else
CCL_NEG_EXPR(isupper);
}
break;
case 95:
-#line 929 "parse.y"
+#line 931 "parse.y"
{
if ( yystack.l_mark[0] == nlch )
rule_has_nl[num_rules] = true;
@@ -1784,10 +1778,10 @@ case 95:
}
break;
case 96:
-#line 944 "parse.y"
+#line 946 "parse.y"
{ yyval = mkstate( SYM_EPSILON ); }
break;
-#line 1787 "parse.c"
+#line 1782 "parse.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@@ -1805,23 +1799,22 @@ break;
*++yystack.l_mark = yyval;
if (yychar < 0)
{
- if ((yychar = YYLEX) < 0) yychar = 0;
+ yychar = YYLEX;
+ if (yychar < 0) yychar = YYEOF;
#if YYDEBUG
if (yydebug)
{
- yys = 0;
- if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
- if (!yys) yys = "illegal-symbol";
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}
#endif
}
- if (yychar == 0) goto yyaccept;
+ if (yychar == YYEOF) goto yyaccept;
goto yyloop;
}
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+ if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
@@ -1830,16 +1823,13 @@ break;
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack))
- {
- goto yyoverflow;
- }
- *++yystack.s_mark = (short) yystate;
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
+ *++yystack.s_mark = (YYINT) yystate;
*++yystack.l_mark = yyval;
goto yyloop;
yyoverflow:
- yyerror("yacc stack overflow");
+ YYERROR_CALL("yacc stack overflow");
yyabort:
yyfreestack(&yystack);
diff --git a/usr.bin/lex/initparse.h b/usr.bin/lex/initparse.h
index 6ede604579b5..fb0742445d55 100644
--- a/usr.bin/lex/initparse.h
+++ b/usr.bin/lex/initparse.h
@@ -7,13 +7,13 @@
#define NAME 262
#define PREVCCL 263
#define EOF_OP 264
-#define OPTION_OP 265
-#define OPT_OUTFILE 266
-#define OPT_PREFIX 267
-#define OPT_YYCLASS 268
-#define OPT_HEADER 269
-#define OPT_EXTRA_TYPE 270
-#define OPT_TABLES 271
+#define TOK_OPTION 265
+#define TOK_OUTFILE 266
+#define TOK_PREFIX 267
+#define TOK_YYCLASS 268
+#define TOK_HEADER_FILE 269
+#define TOK_EXTRA_TYPE 270
+#define TOK_TABLES_FILE 271
#define CCE_ALNUM 272
#define CCE_ALPHA 273
#define CCE_BLANK 274
diff --git a/usr.bin/lex/initscan.c b/usr.bin/lex/initscan.c
index 58de7ebaa880..46070a4c6dc5 100644
--- a/usr.bin/lex/initscan.c
+++ b/usr.bin/lex/initscan.c
@@ -1,6 +1,6 @@
/* $FreeBSD$ */
-#line 3 "<stdout>"
+#line 2 "<stdout>"
#define YY_INT_ALIGNED short int
@@ -8,8 +8,8 @@
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 37
+#define YY_FLEX_MINOR_VERSION 6
+#define YY_FLEX_SUBMINOR_VERSION 4
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -17,11 +17,7 @@
/* First, we deal with platform-specific or compiler-specific issues. */
#if defined(__FreeBSD__)
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS
-#endif
#include <sys/cdefs.h>
-#include <stdint.h>
#else
#define __dead2
#endif
@@ -95,65 +91,61 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
+#ifndef SIZE_MAX
+#define SIZE_MAX (~(size_t)0)
+#endif
+
#endif /* ! C99 */
#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__)
+/* begin standard C++ headers. */
-#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. */
#define YY_NULL 0
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index. If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
+/* Promotes a possibly negative, possibly signed char to an
+ * integer in range [0..255] for use as an array index.
*/
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
/* Enter a start condition. This macro really ought to take a parameter,
* but we do it the disgusting crufty way forced on us by the ()-less
* definition of BEGIN.
*/
#define BEGIN (yy_start) = 1 + 2 *
-
/* Translate the current start state into a value that can be later handed
* to BEGIN to return to the state. The YYSTATE alias is for lex
* compatibility.
*/
#define YY_START (((yy_start) - 1) / 2)
#define YYSTATE YY_START
-
/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
/* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart(yyin )
-
+#define YY_NEW_FILE yyrestart( yyin )
#define YY_END_OF_BUFFER_CHAR 0
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
#define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
#endif
/* The state buf must be large enough to hold one state per character in the main buffer.
@@ -170,15 +162,16 @@ 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;
#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2
-
+
#define YY_LESS_LINENO(n)
+ #define YY_LINENO_REWIND_TO(ptr)
/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
@@ -193,7 +186,6 @@ extern FILE *yyin, *yyout;
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
while ( 0 )
-
#define unput(c) yyunput( c, (yytext_ptr) )
#ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -208,12 +200,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
@@ -236,7 +228,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.
*/
@@ -264,7 +256,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
@@ -276,7 +268,6 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
? (yy_buffer_stack)[(yy_buffer_stack_top)] \
: NULL)
#define yy_current_buffer YY_CURRENT_BUFFER
-
/* Same as previous macro, but useful when we know that the buffer stack is not
* NULL or when we need an lvalue. For internal use only.
*/
@@ -284,11 +275,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 */
@@ -297,85 +288,80 @@ static int yy_start = 0; /* start state number */
*/
static int yy_did_buffer_switch_on_eof;
-void yyrestart (FILE *input_file );
-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
-void yy_delete_buffer (YY_BUFFER_STATE b );
-void yy_flush_buffer (YY_BUFFER_STATE b );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
-void yypop_buffer_state (void );
-
-static void yyensure_buffer_stack (void );
-static void yy_load_buffer_state (void );
-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
+void yyrestart ( FILE *input_file );
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
+void yy_delete_buffer ( YY_BUFFER_STATE b );
+void yy_flush_buffer ( YY_BUFFER_STATE b );
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
+void yypop_buffer_state ( void );
-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+static void yyensure_buffer_stack ( void );
+static void yy_load_buffer_state ( void );
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
-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_buffer ( char *base, yy_size_t size );
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
-void *yyalloc (yy_size_t );
-void *yyrealloc (void *,yy_size_t );
-void yyfree (void * );
+void *yyalloc ( yy_size_t );
+void *yyrealloc ( void *, yy_size_t );
+void yyfree ( void * );
#define yy_new_buffer yy_create_buffer
-
#define yy_set_interactive(is_interactive) \
{ \
if ( ! YY_CURRENT_BUFFER ){ \
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
-
#define yy_set_bol(at_bol) \
{ \
if ( ! YY_CURRENT_BUFFER ){\
yyensure_buffer_stack (); \
YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ yy_create_buffer( yyin, YY_BUF_SIZE ); \
} \
YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
-
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
/* Begin user sect3 */
+typedef flex_uint8_t YY_CHAR;
-typedef unsigned char YY_CHAR;
-
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
+FILE *yyin = NULL, *yyout = NULL;
typedef int yy_state_type;
extern int yylineno;
-
int yylineno = 1;
extern char *yytext;
+#ifdef yytext_ptr
+#undef yytext_ptr
+#endif
#define yytext_ptr 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 );
-static void yy_fatal_error (yyconst char msg[] ) __dead2;
+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 );
+static void yynoreturn yy_fatal_error ( const char* msg ) __dead2;
/* 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; \
- (yytext_ptr) -= (yy_more_len); \
- yyleng = (size_t) (yy_cp - (yytext_ptr)); \
+ yyleng = (int) (yy_cp - yy_bp); \
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-
-#define YY_NUM_RULES 251
-#define YY_END_OF_BUFFER 252
+#define YY_NUM_RULES 253
+#define YY_END_OF_BUFFER 254
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -383,272 +369,134 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_acclist[1223] =
- { 0,
- 248, 248, 252, 250, 251, 9, 250, 251, 20, 250,
- 251, 250, 251, 18, 250, 251, 1, 9, 250, 251,
- 19, 20, 250, 251, 250, 251, 250, 251, 250, 251,
- 250, 251, 17, 18, 250, 251, 164, 250, 251, 149,
- 164, 250, 251, 150, 250, 251, 164, 250, 251, 142,
- 164, 250, 251, 164, 250, 251, 161, 163, 164, 250,
- 251, 162, 163, 164, 250, 251, 163, 164, 250, 251,
- 163, 164, 250, 251, 164, 250, 251, 164, 250, 251,
- 164, 250, 251, 163, 164, 250, 251, 148, 149, 164,
- 250, 251, 138, 150, 250, 251, 164, 250, 251, 164,
-
- 250, 251, 140, 164, 250, 251, 141, 164, 250, 251,
- 136, 250, 251, 137, 250, 251, 136, 250, 251, 135,
- 136, 250, 251, 134, 136, 250, 251, 135, 136, 250,
- 251, 248, 249, 250, 251, 248, 249, 250, 251, 249,
- 250, 251, 249, 250, 251, 41, 250, 251, 42, 250,
- 251, 41, 250, 251, 41, 250, 251, 41, 250, 251,
- 41, 250, 251, 41, 250, 251, 41, 250, 251, 50,
- 250, 251, 49, 250, 251, 51, 250, 251, 250, 251,
- 170, 250, 251, 170, 250, 251, 165, 250, 251, 170,
- 250, 251, 166, 170, 250, 251, 167, 170, 250, 251,
-
- 169, 170, 250, 251, 171, 250, 251, 219, 250, 251,
- 220, 250, 251, 219, 250, 251, 217, 219, 250, 251,
- 216, 219, 250, 251, 218, 219, 250, 251, 172, 250,
- 251, 174, 250, 251, 172, 250, 251, 173, 250, 251,
- 172, 250, 251, 186, 250, 251, 186, 250, 251, 186,
- 250, 251, 186, 250, 251, 188, 190, 250, 251, 190,
- 250, 251, 188, 190, 250, 251, 188, 190, 250, 251,
- 188, 190, 250, 251, 188, 190, 250, 251, 189, 190,
- 250, 251, 233, 239, 250, 251, 238, 250, 251, 233,
- 239, 250, 251, 237, 239, 250, 251, 239, 250, 251,
-
- 239, 250, 251, 235, 239, 250, 251, 235, 239, 250,
- 251, 235, 239, 250, 251, 234, 239, 250, 251, 234,
- 239, 250, 251, 229, 239, 250, 251, 230, 239, 250,
- 251, 250, 251, 131, 250, 251, 250, 251, 25, 250,
- 251, 26, 250, 251, 25, 250, 251, 22, 250, 251,
- 25, 250, 251, 25, 250, 251, 240, 244, 250, 251,
- 242, 250, 251, 240, 244, 250, 251, 243, 244, 250,
- 251, 244, 250, 251, 227, 250, 251, 227, 250, 251,
- 228, 250, 251, 227, 250, 251, 227, 250, 251, 227,
- 250, 251, 227, 250, 251, 227, 250, 251, 227, 250,
-
- 251, 227, 250, 251, 130, 250, 251, 53, 130, 250,
- 251, 52, 250, 251, 130, 250, 251, 130, 250, 251,
- 130, 250, 251, 130, 250, 251, 54, 130, 250, 251,
- 130, 250, 251, 130, 250, 251, 130, 250, 251, 130,
- 250, 251, 130, 250, 251, 130, 250, 251, 130, 250,
- 251, 130, 250, 251, 130, 250, 251, 130, 250, 251,
- 130, 250, 251, 130, 250, 251, 130, 250, 251, 130,
- 250, 251, 130, 250, 251, 130, 250, 251, 130, 250,
- 251, 130, 250, 251, 130, 250, 251, 130, 250, 251,
- 130, 250, 251, 37, 250, 251, 34, 250, 251, 37,
-
- 250, 251, 35, 37, 250, 251, 48, 250, 251, 45,
- 250, 251, 250, 251, 48, 250, 251, 48, 250, 251,
- 44, 250, 251, 43, 250, 251, 176, 250, 251, 175,
- 250, 251, 177, 250, 251, 178, 250, 251, 179, 250,
- 251, 180, 250, 251, 181, 250, 251, 182, 250, 251,
- 183, 250, 251, 32, 250, 251, 33, 250, 251, 32,
- 250, 251, 31, 250, 251, 29, 250, 251, 30, 250,
- 251, 29, 250, 251, 28, 250, 251, 9, 20, 18,
- 1, 9, 19, 20, 16, 10, 16, 4, 16, 5,
- 2, 17, 18, 149, 150, 144, 160, 158, 154, 154,
-
- 245, 245, 245, 143, 148, 149, 138, 150, 140, 141,
- 153, 139, 137, 135, 134, 134, 132, 135, 133, 135,
- 248, 248, 246, 247, 42, 39, 40, 50, 49, 51,
- 165, 165, 168, 169, 220, 216, 174, 184, 185, 190,
- 187, 233, 238, 236, 222, 235, 235, 235, 231, 232,
- 131, 26, 21, 23, 24, 240, 242, 241, 228, 221,
- 225, 226, 53, 52, 129, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 55, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 36, 35, 45,
-
- 46, 47, 32, 33, 30, 27, 16, 10, 16, 14,
- 4, 16, 5, 6, 145, 146, 159, 154, 154, 154,
- 154, 154, 245, 245, 156, 155, 157, 139, 145, 147,
- 153, 132, 135, 133, 135, 38, 235, 235, 221, 130,
- 130, 130, 130, 130, 130, 130, 67, 130, 130, 130,
- 130, 72, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 14, 15, 4,
- 8, 16, 5, 154, 154, 154, 154, 154, 154, 154,
-
- 245, 157, 235, 235, 56, 57, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 130, 73, 130, 74,
- 130, 130, 130, 130, 130, 79, 130, 130, 130, 130,
- 130, 130, 130, 130, 84, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 93, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 15, 8, 16, 8,
- 16, 8, 16, 154, 154, 154, 154, 154, 154, 154,
- 215, 235, 235, 58, 130, 130, 130, 60, 130, 130,
- 64, 130, 130, 130, 130, 130, 70, 130, 130, 130,
- 130, 75, 130, 130, 130, 130, 130, 130, 130, 130,
-
- 130, 130, 130, 130, 87, 130, 130, 130, 130, 130,
- 91, 130, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 3, 8, 16, 7, 8, 16, 154, 154,
- 154, 223, 224, 223, 235, 224, 235, 130, 130, 130,
- 63, 130, 130, 130, 130, 130, 130, 130, 130, 126,
- 130, 130, 130, 130, 130, 130, 130, 130, 130, 124,
- 130, 130, 86, 130, 130, 89, 130, 130, 90, 130,
- 130, 130, 130, 105, 130, 130, 95, 130, 130, 96,
- 130, 12, 13, 152, 151, 152, 130, 130, 130, 130,
- 130, 130, 130, 68, 130, 130, 71, 130, 130, 130,
-
- 130, 130, 130, 130, 123, 130, 130, 83, 130, 130,
- 130, 88, 130, 130, 92, 130, 103, 130, 125, 130,
- 130, 130, 151, 130, 130, 130, 130, 130, 130, 130,
- 69, 130, 130, 130, 130, 130, 80, 130, 130, 130,
- 130, 130, 130, 130, 114, 94, 130, 130, 115, 11,
- 191, 215, 192, 215, 193, 215, 194, 215, 195, 215,
- 196, 215, 197, 215, 198, 215, 199, 215, 200, 215,
- 201, 215, 130, 130, 130, 130, 130, 130, 130, 130,
- 130, 130, 130, 130, 130, 130, 85, 130, 130, 130,
- 116, 104, 130, 117, 202, 215, 203, 215, 204, 215,
-
- 205, 215, 206, 215, 207, 215, 208, 215, 209, 215,
- 210, 215, 211, 215, 212, 215, 213, 215, 130, 130,
- 130, 130, 130, 130, 130, 122, 130, 130, 130, 77,
- 130, 130, 130, 130, 130, 130, 110, 120, 118, 111,
- 121, 119, 214, 215, 130, 130, 130, 130, 130, 130,
- 130, 126, 130, 76, 130, 130, 82, 130, 130, 127,
- 130, 130, 106, 108, 107, 109, 130, 130, 130, 65,
- 130, 130, 130, 130, 130, 78, 130, 130, 112, 113,
- 98, 99, 130, 130, 130, 130, 130, 130, 130, 128,
- 130, 97, 101, 130, 130, 130, 130, 130, 68, 130,
-
- 130, 100, 102, 130, 130, 62, 130, 66, 130, 130,
- 130, 130, 61, 130, 69, 130, 130, 130, 81, 130,
- 59, 130
- } ;
-
-static yyconst flex_int16_t yy_accept[1108] =
+static const flex_int16_t yy_accept[1114] =
{ 0,
- 1, 1, 1, 1, 1, 1, 1, 2, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
- 6, 9, 12, 14, 17, 21, 25, 27, 29, 31,
- 33, 37, 40, 44, 47, 50, 54, 57, 62, 67,
- 71, 75, 78, 81, 84, 88, 93, 97, 100, 103,
- 107, 111, 114, 117, 120, 124, 128, 132, 136, 140,
- 143, 146, 149, 152, 155, 158, 161, 164, 167, 170,
-
- 173, 176, 179, 181, 184, 187, 190, 193, 197, 201,
- 205, 208, 211, 214, 217, 221, 225, 229, 232, 235,
- 238, 241, 244, 247, 250, 253, 256, 260, 263, 267,
- 271, 275, 279, 283, 287, 290, 294, 298, 301, 304,
- 308, 312, 316, 320, 324, 328, 332, 334, 337, 339,
- 342, 345, 348, 351, 354, 357, 361, 364, 368, 372,
- 375, 378, 381, 384, 387, 390, 393, 396, 399, 402,
- 405, 408, 412, 415, 418, 421, 424, 427, 431, 434,
- 437, 440, 443, 446, 449, 452, 455, 458, 461, 464,
- 467, 470, 473, 476, 479, 482, 485, 488, 491, 494,
-
- 497, 500, 503, 507, 510, 513, 515, 518, 521, 524,
- 527, 530, 533, 536, 539, 542, 545, 548, 551, 554,
- 557, 560, 563, 566, 569, 572, 575, 578, 579, 580,
- 580, 581, 583, 585, 585, 585, 585, 586, 588, 588,
- 588, 588, 588, 589, 590, 591, 591, 592, 594, 595,
- 596, 596, 596, 596, 597, 597, 598, 599, 599, 600,
- 601, 601, 602, 603, 604, 604, 604, 605, 605, 607,
- 609, 609, 609, 609, 610, 611, 612, 613, 613, 614,
- 615, 616, 617, 619, 621, 622, 623, 624, 625, 626,
- 626, 626, 627, 628, 628, 629, 630, 631, 631, 632,
-
- 632, 633, 634, 635, 636, 637, 638, 638, 639, 640,
- 641, 642, 643, 644, 644, 645, 645, 646, 647, 648,
- 649, 650, 651, 651, 652, 652, 653, 654, 655, 656,
- 657, 658, 659, 659, 659, 660, 661, 662, 663, 664,
- 665, 665, 666, 666, 666, 667, 668, 669, 670, 671,
- 672, 673, 674, 675, 676, 677, 678, 679, 680, 681,
- 682, 683, 684, 685, 686, 687, 688, 689, 690, 691,
- 692, 693, 694, 695, 696, 697, 698, 698, 699, 700,
- 701, 702, 703, 704, 705, 706, 707, 707, 708, 710,
- 710, 711, 711, 711, 711, 711, 711, 712, 713, 714,
-
- 714, 715, 715, 716, 716, 717, 717, 718, 718, 719,
- 720, 720, 721, 722, 723, 724, 725, 726, 727, 727,
- 728, 730, 731, 731, 732, 732, 734, 736, 736, 736,
- 736, 737, 737, 737, 737, 737, 737, 737, 737, 737,
- 737, 737, 737, 737, 737, 738, 739, 740, 740, 740,
- 741, 742, 743, 744, 745, 746, 747, 749, 750, 751,
- 752, 754, 755, 756, 757, 758, 759, 760, 761, 762,
- 763, 764, 765, 766, 767, 768, 769, 770, 771, 772,
- 773, 774, 775, 776, 777, 778, 779, 780, 781, 782,
- 783, 784, 785, 786, 787, 788, 788, 788, 788, 788,
-
- 790, 790, 790, 790, 790, 790, 790, 791, 793, 794,
- 794, 795, 796, 797, 798, 799, 800, 801, 802, 803,
- 803, 803, 803, 803, 803, 803, 803, 803, 803, 803,
- 803, 803, 803, 803, 803, 803, 803, 803, 803, 803,
- 803, 803, 803, 803, 803, 803, 804, 805, 806, 807,
- 808, 809, 810, 811, 812, 813, 814, 815, 816, 817,
- 818, 820, 822, 823, 824, 825, 826, 828, 829, 830,
- 831, 832, 833, 834, 835, 837, 838, 839, 840, 841,
- 842, 843, 844, 845, 846, 848, 849, 850, 851, 852,
- 853, 854, 855, 856, 857, 857, 857, 857, 857, 858,
-
- 858, 858, 858, 858, 858, 860, 862, 864, 864, 865,
- 866, 867, 868, 869, 870, 871, 871, 871, 871, 871,
- 872, 872, 872, 872, 872, 872, 872, 872, 872, 872,
- 872, 872, 872, 872, 872, 872, 872, 872, 872, 872,
- 872, 872, 872, 872, 873, 874, 876, 877, 878, 880,
- 881, 883, 884, 885, 886, 887, 889, 890, 891, 892,
- 894, 895, 896, 897, 898, 899, 900, 901, 902, 903,
- 904, 905, 907, 908, 909, 910, 911, 913, 914, 915,
- 916, 917, 918, 919, 920, 921, 922, 923, 923, 923,
- 923, 923, 924, 924, 924, 924, 926, 927, 929, 929,
-
- 930, 931, 932, 932, 932, 933, 934, 934, 934, 934,
- 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
- 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
- 934, 936, 938, 939, 940, 941, 943, 944, 945, 946,
- 947, 948, 949, 950, 952, 953, 954, 955, 956, 957,
- 958, 959, 960, 962, 963, 965, 966, 968, 969, 971,
- 972, 973, 974, 976, 976, 977, 979, 980, 980, 982,
- 982, 982, 982, 982, 982, 983, 983, 984, 984, 985,
- 985, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
-
- 987, 987, 987, 987, 987, 987, 988, 989, 990, 991,
- 992, 993, 994, 996, 997, 999, 1000, 1001, 1002, 1003,
- 1004, 1005, 1007, 1008, 1010, 1011, 1012, 1014, 1015, 1017,
- 1019, 1021, 1021, 1021, 1021, 1021, 1021, 1021, 1022, 1023,
- 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
- 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
- 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
- 1024, 1024, 1024, 1024, 1024, 1025, 1026, 1027, 1028, 1029,
- 1030, 1031, 1033, 1034, 1035, 1036, 1037, 1039, 1040, 1041,
- 1042, 1043, 1044, 1045, 1045, 1045, 1046, 1046, 1046, 1046,
-
- 1046, 1046, 1046, 1048, 1049, 1049, 1049, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1051, 1051, 1053,
- 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073,
- 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073,
- 1073, 1073, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
- 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1090, 1091,
- 1091, 1091, 1091, 1091, 1091, 1091, 1092, 1092, 1094, 1094,
- 1094, 1094, 1094, 1094, 1095, 1095, 1095, 1095, 1095, 1095,
- 1097, 1099, 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115,
- 1117, 1119, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126,
-
- 1128, 1129, 1130, 1132, 1133, 1134, 1135, 1136, 1137, 1137,
- 1137, 1138, 1138, 1139, 1140, 1141, 1141, 1141, 1141, 1142,
- 1143, 1143, 1143, 1143, 1143, 1143, 1143, 1145, 1146, 1147,
- 1148, 1149, 1150, 1151, 1152, 1154, 1156, 1157, 1159, 1160,
- 1162, 1163, 1164, 1165, 1165, 1166, 1167, 1167, 1167, 1167,
- 1167, 1167, 1167, 1167, 1168, 1169, 1170, 1172, 1173, 1174,
- 1175, 1176, 1178, 1179, 1180, 1181, 1182, 1182, 1182, 1182,
- 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1192,
- 1193, 1193, 1194, 1194, 1195, 1196, 1197, 1198, 1199, 1201,
- 1202, 1203, 1204, 1205, 1206, 1208, 1210, 1211, 1212, 1213,
-
- 1215, 1217, 1218, 1219, 1221, 1223, 1223
+ 0, 0, 0, 0, 0, 0, 246, 246, 40, 40,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 21,
+ 239, 239, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 21, 21,
+ 250, 250, 239, 239, 254, 252, 9, 20, 252, 18,
+ 1, 19, 252, 252, 252, 252, 17, 163, 148, 149,
+ 163, 141, 163, 160, 161, 162, 162, 163, 163, 163,
+ 162, 147, 137, 163, 163, 139, 140, 135, 136, 135,
+ 134, 133, 134, 246, 247, 247, 40, 42, 40, 41,
+
+ 40, 40, 41, 41, 41, 50, 49, 51, 252, 169,
+ 169, 164, 169, 165, 166, 168, 170, 218, 219, 218,
+ 216, 215, 217, 171, 173, 171, 172, 171, 185, 185,
+ 185, 185, 187, 189, 187, 187, 187, 187, 188, 228,
+ 233, 228, 232, 231, 234, 229, 229, 229, 234, 234,
+ 226, 227, 252, 130, 252, 21, 23, 21, 22, 22,
+ 22, 235, 241, 235, 236, 242, 242, 242, 224, 224,
+ 225, 224, 224, 224, 224, 224, 224, 224, 129, 53,
+ 52, 129, 129, 129, 129, 54, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+
+ 129, 129, 129, 129, 129, 129, 129, 36, 33, 36,
+ 34, 48, 45, 252, 48, 48, 44, 43, 175, 174,
+ 176, 177, 178, 179, 180, 181, 182, 31, 32, 31,
+ 30, 28, 29, 28, 27, 22, 250, 251, 251, 237,
+ 237, 238, 9, 20, 0, 18, 1, 19, 0, 0,
+ 0, 16, 10, 0, 0, 0, 0, 4, 16, 5,
+ 0, 2, 17, 148, 149, 0, 0, 0, 143, 0,
+ 159, 157, 0, 153, 153, 0, 243, 243, 243, 0,
+ 0, 142, 0, 147, 137, 0, 0, 0, 139, 140,
+ 152, 138, 0, 136, 134, 133, 131, 132, 246, 244,
+
+ 245, 40, 42, 40, 40, 37, 38, 0, 50, 49,
+ 51, 0, 164, 0, 164, 167, 168, 219, 215, 173,
+ 0, 183, 184, 189, 186, 228, 233, 0, 0, 221,
+ 229, 229, 229, 0, 130, 0, 21, 23, 24, 235,
+ 241, 240, 239, 240, 0, 0, 225, 220, 0, 0,
+ 53, 52, 0, 128, 0, 0, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 55, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 0, 35,
+ 34, 48, 45, 46, 47, 31, 32, 29, 26, 25,
+
+ 250, 248, 249, 237, 0, 16, 10, 0, 14, 0,
+ 0, 0, 0, 0, 4, 16, 5, 0, 6, 0,
+ 144, 0, 145, 0, 158, 0, 153, 153, 0, 153,
+ 153, 153, 243, 243, 155, 154, 0, 156, 138, 146,
+ 0, 152, 0, 131, 132, 40, 40, 0, 39, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 230, 229, 229, 0, 0, 220, 0, 0,
+ 0, 0, 129, 129, 129, 129, 129, 129, 65, 129,
+ 129, 129, 70, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 0, 0,
+ 0, 0, 14, 0, 0, 0, 0, 0, 0, 4,
+ 8, 5, 0, 153, 153, 153, 153, 153, 153, 153,
+ 243, 156, 0, 0, 40, 40, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 229, 229,
+ 0, 0, 56, 57, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 71, 72, 129, 129, 129, 129,
+ 77, 78, 129, 129, 129, 129, 129, 129, 129, 83,
+
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 92,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 0,
+ 0, 0, 0, 15, 0, 0, 0, 0, 0, 8,
+ 8, 8, 0, 153, 153, 153, 153, 153, 153, 153,
+ 0, 0, 40, 40, 214, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 229, 229,
+ 0, 0, 58, 129, 60, 129, 62, 129, 129, 129,
+ 129, 68, 129, 129, 129, 73, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 86, 129, 129,
+
+ 129, 129, 90, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 0, 0, 0, 0, 3, 0, 0,
+ 0, 8, 7, 8, 0, 153, 153, 153, 0, 0,
+ 40, 40, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 222, 223, 222, 223,
+ 129, 61, 129, 129, 129, 129, 129, 129, 129, 125,
+ 129, 129, 129, 129, 129, 129, 129, 129, 123, 129,
+ 85, 129, 88, 129, 89, 129, 129, 129, 104, 0,
+ 129, 94, 129, 0, 95, 0, 0, 0, 0, 0,
+
+ 12, 0, 13, 0, 151, 0, 150, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 129, 129, 129, 129, 129, 66, 129, 69, 129,
+ 129, 129, 129, 129, 129, 122, 129, 82, 129, 129,
+ 87, 129, 91, 102, 124, 0, 0, 0, 0, 0,
+ 0, 129, 129, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 150, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 129, 129,
+
+ 129, 129, 129, 67, 129, 129, 129, 129, 79, 129,
+ 129, 129, 129, 129, 129, 0, 0, 113, 0, 0,
+ 0, 0, 0, 0, 93, 129, 0, 0, 114, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
+ 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
+ 200, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 84, 129, 129, 0,
+ 0, 0, 0, 0, 0, 115, 0, 103, 0, 0,
+ 0, 0, 0, 116, 0, 0, 0, 0, 0, 201,
+
+ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
+ 212, 0, 129, 129, 129, 129, 129, 121, 129, 129,
+ 75, 129, 129, 129, 129, 129, 0, 0, 109, 0,
+ 119, 117, 110, 0, 0, 0, 120, 118, 0, 0,
+ 0, 0, 0, 0, 213, 129, 129, 129, 129, 129,
+ 125, 74, 129, 81, 129, 126, 129, 105, 107, 0,
+ 106, 108, 0, 0, 0, 0, 0, 0, 0, 129,
+ 63, 129, 129, 129, 129, 76, 129, 111, 112, 97,
+ 0, 0, 0, 0, 98, 129, 129, 129, 129, 129,
+ 127, 96, 0, 100, 0, 129, 129, 129, 66, 129,
+
+ 99, 101, 129, 64, 129, 129, 129, 67, 129, 129,
+ 80, 59, 0
} ;
-static yyconst flex_int32_t yy_ec[256] =
+static const YY_CHAR yy_ec[256] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
@@ -680,742 +528,806 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[85] =
+static const YY_CHAR yy_meta[85] =
{ 0,
- 1, 1, 2, 1, 3, 4, 1, 1, 1, 5,
- 1, 6, 1, 7, 1, 8, 1, 5, 9, 9,
- 9, 9, 10, 1, 1, 1, 1, 11, 11, 11,
- 11, 11, 11, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 13, 14, 15, 1, 16, 11, 11, 11,
- 11, 11, 11, 12, 12, 12, 12, 12, 12, 12,
- 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
- 12, 5, 1, 17
+ 1, 1, 2, 1, 3, 4, 1, 1, 5, 6,
+ 1, 7, 8, 9, 1, 10, 1, 11, 12, 12,
+ 12, 12, 13, 1, 1, 1, 1, 14, 14, 14,
+ 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 16, 17, 18, 1, 19, 14, 14, 14,
+ 14, 14, 14, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 20, 1, 21
} ;
-static yyconst flex_int16_t yy_base[1201] =
+static const flex_int16_t yy_base[1221] =
{ 0,
- 0, 84, 167, 250, 171, 184, 174, 179, 192, 233,
- 196, 200, 334, 0, 3343, 3340, 203, 416, 206, 211,
- 187, 216, 276, 417, 500, 0, 210, 223, 421, 427,
- 436, 440, 583, 588, 669, 0, 277, 299, 584, 751,
- 579, 580, 576, 732, 279, 305, 310, 444, 3378, 3975,
- 228, 3975, 3371, 0, 322, 3975, 3358, 423, 827, 3328,
- 0, 3975, 755, 3975, 3337, 3975, 448, 3312, 3975, 3975,
- 3323, 3291, 222, 408, 444, 764, 3975, 3311, 230, 3289,
- 3975, 3975, 3975, 3306, 0, 3306, 164, 3304, 3975, 3236,
- 3217, 3975, 3975, 3266, 239, 119, 3215, 3212, 3180, 0,
-
- 3248, 3975, 3243, 3975, 476, 3227, 3222, 3975, 3168, 0,
- 3975, 3975, 3975, 3203, 3975, 464, 3975, 3975, 3975, 3186,
- 3975, 742, 3975, 3161, 751, 180, 3975, 3975, 3171, 0,
- 3149, 757, 3975, 0, 3975, 3149, 3975, 200, 3138, 0,
- 429, 241, 3097, 3092, 3975, 3975, 306, 3975, 323, 3975,
- 3975, 3126, 3108, 3072, 3069, 0, 3975, 3115, 3975, 0,
- 3975, 446, 3975, 3114, 3031, 3098, 435, 371, 3045, 3026,
- 3975, 3076, 3975, 3074, 3070, 439, 440, 3975, 578, 751,
- 586, 562, 735, 752, 0, 572, 577, 588, 786, 749,
- 396, 809, 727, 582, 747, 753, 764, 769, 580, 3975,
-
- 3975, 3067, 588, 3975, 3975, 3053, 3002, 2996, 3975, 3975,
- 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 0,
- 3975, 3046, 3975, 3975, 3975, 3018, 2986, 837, 3975, 2998,
- 0, 847, 3975, 2997, 817, 777, 0, 0, 891, 903,
- 912, 924, 0, 774, 0, 451, 3975, 0, 858, 3975,
- 2996, 2914, 472, 3975, 2974, 2953, 3975, 791, 236, 822,
- 899, 3975, 275, 0, 2873, 2872, 3975, 2871, 949, 3975,
- 2949, 2850, 2918, 2906, 3975, 0, 3975, 796, 3975, 0,
- 0, 2925, 0, 0, 2597, 3975, 3975, 3975, 3975, 795,
- 794, 3975, 3975, 484, 0, 2597, 3975, 877, 2596, 2594,
-
- 2594, 3975, 0, 3975, 918, 3975, 1005, 3975, 3975, 3975,
- 3975, 0, 3975, 611, 3975, 0, 3975, 0, 853, 851,
- 3975, 3975, 490, 3975, 608, 3975, 3975, 3975, 3975, 0,
- 3975, 3975, 596, 2510, 3975, 0, 3975, 3975, 2588, 3975,
- 2581, 3975, 894, 906, 0, 911, 717, 727, 923, 728,
- 2571, 882, 930, 889, 902, 916, 917, 940, 928, 923,
- 940, 933, 0, 932, 3975, 935, 939, 951, 956, 1059,
- 964, 965, 1052, 955, 957, 1099, 2578, 3975, 1078, 3975,
- 3975, 3975, 0, 3975, 3975, 3975, 987, 0, 0, 1087,
- 3975, 2576, 1132, 985, 1046, 1058, 0, 1058, 0, 1009,
-
- 3975, 1016, 3975, 1057, 3975, 1099, 3975, 1068, 731, 1088,
- 1095, 1178, 1244, 1280, 988, 0, 3975, 3975, 2492, 1162,
- 3975, 3975, 1081, 0, 1086, 0, 0, 1098, 1105, 1100,
- 3975, 1167, 1245, 1246, 1247, 1250, 2539, 1248, 1249, 1258,
- 1244, 1251, 1259, 1321, 1233, 1224, 0, 1072, 1228, 1243,
- 1261, 1287, 1298, 1289, 1298, 1287, 0, 1299, 1228, 1308,
- 0, 1280, 1298, 1307, 1316, 1314, 1316, 2532, 1322, 1337,
- 1338, 1340, 1342, 1342, 1348, 1353, 1356, 1347, 1357, 1362,
- 1366, 1358, 1353, 1356, 1377, 1366, 1370, 1371, 1367, 1383,
- 1384, 1379, 1391, 1392, 1381, 1388, 1397, 1275, 1455, 3975,
-
- 1439, 1463, 1444, 1415, 1412, 1415, 0, 1409, 0, 1429,
- 1492, 1558, 1594, 1524, 2449, 1564, 1639, 3975, 3975, 1537,
- 1556, 1560, 1407, 2427, 1558, 1563, 1559, 1564, 1572, 1584,
- 1574, 1562, 1615, 1619, 1609, 1625, 1626, 1643, 1614, 1651,
- 1662, 1658, 1664, 1665, 1616, 1616, 1637, 3975, 3975, 1638,
- 1631, 2352, 1634, 1641, 1655, 1650, 1677, 1679, 1671, 1689,
- 0, 0, 1690, 1677, 1681, 1697, 0, 2348, 1684, 1694,
- 2274, 1686, 1685, 1695, 0, 1692, 1711, 1704, 1703, 1701,
- 1713, 1703, 1704, 1712, 0, 1717, 1731, 1731, 1719, 1723,
- 1722, 1741, 1726, 1742, 1734, 1747, 1741, 2241, 3975, 1464,
-
- 1485, 1729, 1743, 1740, 0, 1721, 1591, 2173, 1585, 2139,
- 1771, 1807, 1417, 962, 1426, 1755, 2049, 1745, 1769, 3975,
- 1774, 1782, 1789, 1775, 1796, 1791, 1810, 1800, 1820, 1822,
- 1821, 1823, 1832, 1831, 1838, 1840, 1853, 1856, 1854, 1855,
- 1863, 1865, 1861, 1846, 1862, 0, 1853, 1864, 0, 1857,
- 0, 2008, 1866, 1862, 1869, 0, 1874, 1893, 1870, 0,
- 1888, 1875, 1886, 1882, 1880, 1878, 1897, 1876, 1882, 1889,
- 1889, 0, 1904, 1895, 1899, 1919, 0, 1907, 1909, 1908,
- 1923, 1791, 1924, 1925, 1919, 1747, 1917, 1918, 1918, 1938,
- 1924, 1726, 1599, 1927, 1937, 1970, 3975, 1702, 1652, 1923,
-
- 1755, 1941, 1625, 1618, 3975, 3975, 1961, 1977, 1966, 1969,
- 1956, 1979, 1983, 1986, 1989, 1984, 1992, 1987, 1994, 1990,
- 1988, 1995, 2007, 2004, 2016, 2022, 1996, 2028, 2018, 2026,
- 0, 0, 1620, 1990, 2009, 0, 2035, 2020, 2035, 2029,
- 2024, 2025, 2029, 1589, 2049, 2041, 2052, 2048, 2053, 2054,
- 2044, 2057, 0, 2064, 0, 2048, 0, 1576, 0, 2064,
- 2070, 2056, 0, 2096, 2062, 0, 2067, 2108, 0, 1531,
- 2072, 2078, 1438, 1853, 3975, 2105, 3975, 2068, 3975, 1463,
- 3975, 1407, 1402, 1348, 1345, 1314, 1307, 1269, 1260, 1256,
- 1210, 1158, 2106, 2111, 2097, 2118, 2122, 2129, 2125, 2140,
-
- 2131, 2136, 2141, 2143, 2156, 2131, 2138, 2147, 2101, 2151,
- 2138, 2153, 0, 2141, 0, 2144, 2165, 2153, 2159, 2158,
- 2165, 0, 2165, 0, 2167, 2169, 0, 2178, 0, 0,
- 0, 2183, 2167, 2179, 2210, 2178, 2189, 2188, 2189, 2202,
- 2186, 2194, 2218, 2196, 2202, 1119, 1114, 2206, 2118, 3975,
- 1106, 1100, 1081, 1068, 1065, 1061, 1057, 972, 968, 965,
- 914, 925, 893, 881, 874, 869, 865, 861, 854, 843,
- 807, 802, 776, 2235, 2212, 2226, 2221, 2227, 2239, 2238,
- 2228, 0, 2228, 2239, 2242, 2252, 0, 2238, 2244, 2249,
- 2244, 2258, 2263, 2269, 2255, 3975, 2263, 2265, 2265, 2281,
-
- 2265, 2262, 0, 2285, 2288, 2274, 3975, 2277, 2280, 2295,
- 2279, 2280, 2283, 2303, 2283, 2330, 3975, 2335, 3975, 3975,
- 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 735,
- 612, 608, 598, 441, 374, 261, 245, 202, 152, 149,
- 137, 165, 2296, 2303, 2304, 2320, 2326, 2316, 2324, 2329,
- 2324, 2316, 2319, 2335, 2324, 2327, 0, 2332, 2328, 2327,
- 2332, 2345, 2348, 2352, 2344, 3975, 2338, 0, 2338, 2343,
- 2357, 2362, 2357, 3975, 2371, 2356, 2359, 2358, 2380, 3975,
- 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975, 3975,
- 3975, 128, 2384, 2382, 2373, 2387, 2376, 2378, 2378, 0,
-
- 2395, 2396, 0, 2385, 2384, 2405, 2403, 2401, 2405, 2413,
- 3975, 2401, 3975, 3975, 3975, 2409, 2416, 2404, 3975, 3975,
- 2400, 2422, 2422, 2414, 2417, 2417, 3975, 2421, 2421, 2418,
- 2424, 2441, 2442, 2443, 0, 0, 2453, 0, 2436, 0,
- 2451, 3975, 3975, 2445, 3975, 3975, 2446, 2457, 2445, 2461,
- 2464, 2462, 2468, 2473, 2466, 2460, 0, 2462, 2459, 2461,
- 2483, 0, 2463, 3975, 3975, 3975, 2484, 2488, 2476, 2482,
- 3975, 2495, 2485, 2497, 2495, 2501, 2506, 2493, 0, 3975,
- 2496, 3975, 2508, 2498, 2506, 2503, 2506, 2505, 0, 2520,
- 3975, 3975, 2522, 2514, 0, 0, 2529, 2514, 2515, 0,
-
- 0, 2533, 2539, 0, 0, 3975, 2601, 2618, 2635, 2652,
- 2669, 2686, 2703, 2720, 2737, 2754, 2771, 2788, 2805, 2822,
- 2839, 2856, 2873, 2890, 2907, 2917, 2933, 2942, 2958, 2975,
- 2986, 3002, 3019, 3036, 3053, 3063, 3079, 3096, 3113, 3127,
- 3137, 3153, 3170, 3187, 3204, 3215, 2009, 3227, 3244, 3254,
- 3270, 3287, 3294, 3300, 3316, 3326, 3342, 3359, 3376, 2564,
- 3386, 3403, 3420, 3437, 3454, 3471, 3488, 3505, 3522, 3532,
- 3548, 3562, 3572, 3588, 3605, 3622, 3639, 3650, 3662, 3679,
- 3696, 3713, 3730, 3740, 3749, 3765, 3782, 3799, 2571, 3809,
- 3826, 3843, 3860, 3877, 3885, 3890, 3906, 3923, 3940, 3957
-
+ 0, 84, 167, 250, 171, 184, 135, 142, 220, 231,
+ 196, 200, 334, 0, 3627, 3625, 211, 416, 203, 212,
+ 189, 225, 266, 417, 500, 0, 207, 208, 234, 421,
+ 424, 436, 583, 588, 669, 0, 294, 304, 584, 751,
+ 579, 580, 417, 576, 287, 306, 241, 441, 595, 608,
+ 169, 238, 440, 754, 3680, 4511, 325, 4511, 3676, 0,
+ 446, 4511, 3673, 430, 827, 3661, 0, 4511, 758, 4511,
+ 3650, 4511, 453, 3621, 4511, 4511, 3619, 3584, 129, 746,
+ 445, 766, 4511, 3604, 198, 3582, 4511, 4511, 4511, 3600,
+ 0, 3599, 214, 0, 3506, 3483, 0, 4511, 3532, 4511,
+
+ 420, 119, 3481, 3478, 3446, 0, 3526, 4511, 3520, 4511,
+ 482, 3520, 3518, 4511, 3455, 0, 4511, 4511, 4511, 3504,
+ 4511, 598, 4511, 4511, 4511, 3499, 4511, 754, 4511, 3477,
+ 759, 180, 4511, 4511, 3467, 0, 3442, 762, 4511, 0,
+ 4511, 3459, 4511, 3406, 3434, 0, 562, 167, 3393, 3370,
+ 4511, 4511, 326, 4511, 420, 0, 4511, 3418, 3402, 3366,
+ 3342, 0, 4511, 3368, 4511, 3317, 444, 3314, 4511, 471,
+ 4511, 3354, 3271, 3337, 572, 189, 3295, 3285, 4511, 3332,
+ 4511, 3307, 3303, 585, 594, 4511, 746, 734, 744, 754,
+ 763, 770, 0, 755, 748, 763, 818, 789, 240, 822,
+
+ 762, 381, 802, 791, 813, 824, 577, 4511, 4511, 3302,
+ 871, 0, 4511, 3302, 3250, 3231, 4511, 4511, 4511, 4511,
+ 4511, 4511, 4511, 4511, 4511, 4511, 4511, 0, 4511, 3279,
+ 4511, 4511, 4511, 3276, 3260, 3259, 0, 3221, 3214, 0,
+ 3264, 4511, 835, 4511, 3262, 0, 903, 4511, 3257, 842,
+ 817, 0, 0, 910, 914, 918, 922, 0, 814, 0,
+ 457, 4511, 0, 943, 4511, 3241, 3141, 483, 4511, 3217,
+ 3212, 4511, 826, 556, 903, 930, 4511, 757, 0, 3134,
+ 3131, 4511, 3129, 964, 4511, 3190, 3110, 3174, 3161, 4511,
+ 0, 4511, 896, 4511, 0, 3172, 0, 0, 0, 4511,
+
+ 4511, 0, 4511, 910, 913, 4511, 4511, 602, 0, 3169,
+ 4511, 957, 3164, 3161, 3127, 4511, 0, 4511, 976, 4511,
+ 1020, 4511, 4511, 4511, 4511, 0, 4511, 3116, 0, 4511,
+ 0, 926, 930, 644, 4511, 662, 0, 4511, 4511, 0,
+ 4511, 4511, 3071, 3121, 794, 3037, 4511, 0, 934, 932,
+ 3117, 4511, 3091, 4511, 938, 939, 0, 940, 738, 956,
+ 802, 3059, 876, 978, 933, 933, 939, 948, 964, 1030,
+ 938, 958, 976, 968, 0, 996, 4511, 999, 1057, 1068,
+ 981, 1079, 1077, 1080, 1074, 1068, 1070, 1120, 3062, 4511,
+ 1014, 0, 4511, 4511, 4511, 0, 4511, 4511, 4511, 4511,
+
+ 0, 4511, 4511, 0, 1078, 0, 0, 1153, 4511, 3063,
+ 1166, 1077, 1076, 1091, 0, 1089, 0, 1018, 4511, 1022,
+ 4511, 1025, 4511, 1035, 4511, 1091, 1067, 1138, 1162, 1242,
+ 1177, 1308, 1105, 0, 4511, 4511, 2954, 1198, 4511, 4511,
+ 1144, 0, 1137, 0, 0, 1161, 1156, 1123, 4511, 1202,
+ 1308, 1309, 1310, 1319, 3013, 1312, 1311, 1327, 1320, 1321,
+ 1323, 1382, 4511, 1172, 1166, 2589, 2537, 0, 1178, 1169,
+ 1169, 1298, 1315, 1324, 1330, 1321, 1330, 1323, 0, 1341,
+ 1332, 1348, 0, 1346, 1350, 1348, 1361, 1350, 1367, 2573,
+ 1370, 1366, 1380, 1382, 1382, 1385, 1378, 1387, 1391, 1400,
+
+ 1393, 1403, 1406, 1414, 1400, 1401, 1404, 1429, 1419, 1424,
+ 1428, 1425, 1436, 1435, 1430, 1441, 1442, 1432, 1432, 1450,
+ 1209, 1508, 4511, 1215, 1512, 1219, 1461, 1455, 1451, 0,
+ 1143, 0, 1461, 1534, 1600, 1636, 204, 2525, 1606, 1681,
+ 4511, 4511, 1453, 1463, 1591, 1442, 2524, 1599, 1604, 1600,
+ 1607, 1605, 1611, 1608, 1650, 1620, 1606, 1614, 1613, 1654,
+ 1663, 1652, 1661, 1666, 1682, 1664, 1693, 1694, 1655, 1674,
+ 1662, 1675, 4511, 4511, 1683, 1676, 1677, 1683, 1697, 1692,
+ 1731, 1711, 1702, 1718, 0, 0, 1719, 1706, 1716, 1735,
+ 0, 0, 2553, 1722, 1732, 2540, 1725, 1722, 1733, 0,
+
+ 1727, 1747, 1740, 1739, 1735, 1752, 1739, 1740, 1746, 0,
+ 1750, 1763, 1760, 1750, 1752, 1759, 1777, 1762, 1778, 1769,
+ 1783, 1778, 2514, 4511, 1224, 1230, 1772, 1783, 1780, 0,
+ 1507, 1234, 2364, 732, 2273, 1809, 1845, 1430, 1076, 1585,
+ 1797, 2286, 1785, 1807, 4511, 1811, 1814, 1829, 1835, 1821,
+ 1808, 1822, 1845, 1859, 1860, 1862, 1868, 1869, 1870, 1825,
+ 1888, 1890, 1876, 1891, 1874, 1902, 1894, 1898, 1795, 1891,
+ 1882, 1899, 0, 1887, 0, 1892, 0, 2260, 1900, 1891,
+ 1909, 0, 1904, 2253, 1902, 0, 1916, 1907, 1918, 2227,
+ 1912, 1909, 1924, 2201, 1908, 1918, 1922, 0, 1934, 1925,
+
+ 1931, 1947, 0, 1936, 1942, 1941, 1953, 2103, 1957, 1958,
+ 1952, 2085, 1950, 1951, 1950, 1969, 1956, 2133, 1515, 1961,
+ 1971, 2002, 4511, 2117, 2038, 1981, 1592, 1842, 2025, 1983,
+ 0, 0, 1972, 1990, 1999, 1987, 1994, 2008, 2005, 2007,
+ 2015, 2023, 2016, 2021, 2017, 2024, 2022, 2026, 2030, 2029,
+ 2037, 2035, 2045, 2051, 2054, 2061, 0, 0, 4511, 4511,
+ 1922, 0, 2049, 2039, 2050, 2053, 2051, 2051, 2054, 1831,
+ 2073, 2064, 2077, 2073, 2081, 2082, 2072, 2085, 0, 2091,
+ 0, 2074, 0, 1824, 0, 2091, 2094, 2082, 0, 2116,
+ 2088, 0, 2092, 2133, 0, 1728, 2097, 2095, 1714, 1678,
+
+ 4511, 2135, 4511, 2096, 4511, 1726, 4511, 1703, 1612, 1601,
+ 1514, 1500, 1477, 1377, 1373, 1333, 1274, 1203, 2133, 2128,
+ 2148, 2151, 2144, 2150, 2156, 2158, 2161, 2163, 2184, 2167,
+ 2164, 2157, 2151, 2159, 2158, 2173, 0, 2165, 0, 2166,
+ 2182, 2173, 2179, 2178, 2186, 0, 2185, 0, 2187, 2193,
+ 0, 2202, 0, 0, 0, 2204, 2187, 2201, 2224, 2200,
+ 2222, 2213, 2219, 2230, 2199, 2227, 2239, 2222, 2225, 1162,
+ 1158, 2228, 2278, 4511, 1112, 1109, 1081, 1063, 1057, 984,
+ 976, 969, 923, 913, 910, 931, 895, 891, 887, 881,
+ 874, 856, 848, 843, 840, 804, 788, 2259, 2248, 2258,
+
+ 2265, 2264, 2241, 0, 2254, 2265, 2268, 2279, 0, 2262,
+ 2268, 2271, 2266, 2278, 2283, 2289, 2273, 4511, 2280, 2281,
+ 2281, 2300, 2283, 2281, 0, 2303, 2307, 2292, 4511, 2302,
+ 2304, 2319, 2303, 2307, 2309, 2328, 2309, 2357, 4511, 2362,
+ 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
+ 4511, 746, 725, 597, 577, 441, 426, 420, 267, 253,
+ 247, 230, 183, 181, 2317, 2338, 2342, 2330, 2336, 2343,
+ 2339, 2331, 2334, 2350, 2341, 2345, 0, 2350, 2346, 2344,
+ 2349, 2361, 2364, 2367, 2359, 4511, 2357, 0, 2358, 2362,
+ 2379, 2383, 2375, 4511, 2388, 2375, 2382, 2377, 2389, 4511,
+
+ 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
+ 4511, 122, 2399, 2398, 2382, 2391, 2391, 0, 2407, 2408,
+ 0, 2397, 2398, 2420, 2417, 2414, 2418, 2426, 4511, 2414,
+ 4511, 4511, 4511, 2422, 2429, 2419, 4511, 4511, 2417, 2437,
+ 2435, 2425, 2428, 2428, 4511, 2431, 2445, 2445, 2447, 2452,
+ 0, 0, 2461, 0, 2444, 0, 2459, 4511, 4511, 2452,
+ 4511, 4511, 2454, 2465, 2452, 2467, 2471, 2470, 2476, 2481,
+ 0, 2468, 2465, 2465, 2485, 0, 2465, 4511, 4511, 4511,
+ 2489, 2491, 2479, 2488, 4511, 2501, 2491, 2498, 2503, 2490,
+ 0, 4511, 2497, 4511, 2510, 2500, 2502, 2500, 0, 2514,
+
+ 4511, 4511, 2516, 0, 2523, 2508, 2509, 0, 2528, 2531,
+ 0, 0, 4511, 2593, 2614, 2635, 2656, 2677, 2698, 2719,
+ 2740, 2761, 2782, 2803, 2824, 2845, 2866, 2887, 2908, 2929,
+ 2950, 2971, 2992, 3013, 3025, 3044, 3055, 3074, 3095, 3108,
+ 3127, 3148, 3169, 3190, 3202, 3221, 3242, 3263, 3280, 3292,
+ 3311, 3332, 3353, 3374, 3395, 3408, 2553, 3423, 3444, 3463,
+ 3484, 3505, 3517, 3536, 3557, 2569, 3057, 3578, 3590, 3609,
+ 3630, 3651, 2558, 3663, 3684, 3705, 3726, 3747, 3768, 3789,
+ 3810, 3831, 3843, 3862, 3879, 3891, 3910, 3931, 3952, 3973,
+ 3994, 4007, 4022, 4043, 4062, 4083, 4104, 4125, 4146, 4167,
+
+ 4179, 4189, 4208, 4229, 4250, 2561, 4262, 4283, 4304, 4325,
+ 4346, 4367, 3028, 4379, 4398, 4419, 4432, 4447, 4468, 4489
} ;
-static yyconst flex_int16_t yy_def[1201] =
+static const flex_int16_t yy_def[1221] =
{ 0,
- 1106, 1106, 1107, 1107, 1108, 1109, 1110, 1110, 1111, 1111,
- 1112, 1112, 1106, 13, 1113, 1113, 1114, 1114, 1115, 1115,
- 1116, 1116, 1117, 1117, 1106, 25, 1118, 1118, 1119, 1119,
- 1120, 1120, 1121, 1121, 1106, 35, 1122, 1122, 1123, 1123,
- 1113, 1113, 1113, 1113, 1124, 1124, 1125, 1125, 1106, 1106,
- 1106, 1106, 1106, 1126, 1106, 1106, 1106, 1106, 1127, 1106,
- 1128, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1129, 1130, 1131, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1132, 1133, 1132, 1134, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1135,
-
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1136,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1130, 1106, 1106, 1130, 1137, 1106, 1106, 1106, 1138,
- 1106, 1130, 1106, 1139, 1106, 1139, 1106, 1140, 1106, 1141,
- 1141, 1141, 1106, 1106, 1106, 1106, 1142, 1106, 1142, 1106,
- 1106, 1106, 1106, 1106, 1106, 1143, 1106, 1143, 1106, 1144,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1145, 1106, 1106, 1106, 1146, 1146,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1147,
- 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1106,
-
- 1106, 1148, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1149,
- 1106, 1149, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1150, 1106, 1106, 1106, 1106, 1106, 1151, 1152, 1106, 1106,
- 1106, 1106, 1153, 1151, 1154, 1155, 1106, 1156, 1106, 1106,
- 1106, 1106, 1157, 1106, 1106, 1106, 1106, 1106, 1158, 1158,
- 1159, 1106, 1106, 1160, 1106, 1106, 1106, 1161, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1162, 1106, 1106, 1106, 1163,
- 1164, 1164, 1165, 1166, 1167, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1168, 1169, 1106, 1106, 1106, 1106, 1106,
-
- 1106, 1106, 1170, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1171, 1106, 1172, 1106, 1172, 1106, 1173, 1173, 1173,
- 1106, 1106, 1174, 1106, 1174, 1106, 1106, 1106, 1106, 1175,
- 1106, 1106, 1106, 1106, 1106, 1176, 1106, 1106, 1106, 1106,
- 1177, 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1106, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1106, 1106, 1106,
- 1106, 1106, 1180, 1106, 1106, 1106, 1106, 1181, 1182, 1183,
- 1106, 1106, 1106, 1106, 1106, 1106, 1184, 1181, 1185, 1186,
-
- 1106, 1186, 1106, 1187, 1106, 1187, 1106, 1106, 1188, 1188,
- 1188, 1106, 1188, 1188, 1106, 1189, 1106, 1106, 1190, 1106,
- 1106, 1106, 1106, 1191, 1106, 1192, 1193, 1106, 1106, 1194,
- 1106, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1196, 1196, 1197, 1106, 1106, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1106, 1106, 1183, 1183, 1106,
-
- 1183, 1183, 1106, 1106, 1106, 1106, 1184, 1198, 1185, 1106,
- 1106, 1188, 414, 412, 412, 1188, 414, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1196, 1196, 1106, 1106, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1183,
-
- 1183, 1106, 1106, 1106, 1198, 1198, 1198, 1106, 511, 511,
- 1188, 414, 1188, 1188, 1188, 1106, 1106, 1106, 1106, 1106,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1196, 1196, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, 1106, 1106,
- 1106, 1106, 1199, 1106, 1106, 1198, 1106, 1198, 1106, 1188,
-
- 1188, 1188, 1106, 1106, 1106, 1106, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1196, 1196, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1106, 1178, 1178, 1178, 1106, 1178, 1106,
- 1106, 1106, 1106, 1199, 1106, 1199, 1106, 1106, 1106, 1106,
- 1106, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1113, 1113, 1114, 1114, 1115, 1116, 1117, 1117, 1118, 1118,
+ 1119, 1119, 1113, 13, 1120, 1120, 1121, 1121, 1122, 1122,
+ 1123, 1123, 1124, 1124, 1113, 25, 1125, 1125, 1126, 1126,
+ 1127, 1127, 1128, 1128, 1113, 35, 1129, 1129, 1130, 1130,
+ 1120, 1120, 1120, 1120, 1131, 1131, 1132, 1132, 1126, 1126,
+ 1133, 1133, 1134, 1134, 1113, 1113, 1113, 1113, 1113, 1135,
+ 1113, 1113, 1113, 1113, 1136, 1113, 1137, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1138, 1139,
+ 1140, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1141, 1113, 1141, 1142, 1113, 1113, 1143, 1113, 1143, 1113,
+
+ 1143, 1143, 1113, 1113, 1113, 1144, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1145, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1139, 1113, 1113,
+ 1139, 1146, 1113, 1113, 1113, 1147, 1113, 1139, 1113, 1148,
+ 1113, 1148, 1113, 1149, 1113, 1150, 1150, 1150, 1113, 1113,
+ 1113, 1113, 1151, 1113, 1151, 1152, 1113, 1152, 1113, 1113,
+ 1113, 1153, 1113, 1153, 1113, 1113, 1154, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1155, 1113, 1113, 1113, 1156, 1156, 1156, 1156,
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1156, 1156,
+
+ 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1113, 1113, 1158,
+ 1113, 1159, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1160, 1113, 1160,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1161, 1113, 1113, 1162,
+ 1162, 1113, 1113, 1113, 1113, 1163, 1113, 1113, 1113, 1113,
+ 1113, 1164, 1165, 1113, 1113, 1113, 1113, 1166, 1164, 1167,
+ 1168, 1113, 1169, 1113, 1113, 1113, 1113, 1170, 1113, 1113,
+ 1113, 1113, 1113, 1171, 1171, 1172, 1113, 1113, 1173, 1113,
+ 1113, 1113, 1174, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1175, 1113, 1113, 1113, 1176, 1113, 1177, 1178, 1179, 1113,
+
+ 1113, 1180, 1113, 1180, 1180, 1113, 1113, 1181, 1182, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1183, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1184, 1113, 1113, 1185, 1113,
+ 1186, 1186, 1186, 1187, 1113, 1187, 1188, 1113, 1113, 1189,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1190, 1113, 1113,
+ 1113, 1113, 1191, 1113, 1113, 1113, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1113, 1192, 1192, 1192,
+ 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1113,
+ 1113, 1194, 1113, 1113, 1113, 1195, 1113, 1113, 1113, 1113,
+
+ 1196, 1113, 1113, 1197, 1113, 1198, 1199, 1200, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1201, 1198, 1202, 1203, 1113, 1203,
+ 1113, 1204, 1113, 1204, 1113, 1113, 1205, 1205, 1205, 1113,
+ 1205, 1205, 1113, 1206, 1113, 1113, 1207, 1113, 1113, 1113,
+ 1113, 1208, 1113, 1209, 1210, 1211, 1211, 1212, 1113, 1212,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1113, 1214, 1214, 1113, 1215, 1216, 1113, 1113,
+ 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113,
+ 1200, 1200, 1113, 1200, 1200, 1113, 1113, 1113, 1113, 1201,
+ 1218, 1202, 1113, 1113, 1205, 432, 430, 430, 1205, 432,
+ 1113, 1113, 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
+ 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
+ 1113, 1113, 1113, 1113, 1200, 1200, 1113, 1113, 1113, 1218,
+ 1218, 1218, 1113, 534, 534, 1205, 432, 1205, 1205, 1205,
+ 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
+ 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1219, 1113,
+ 1113, 1218, 1113, 1218, 1113, 1205, 1205, 1205, 1113, 1113,
+ 1211, 1211, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1113, 1113,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
+ 1217, 1217, 1217, 1113, 1217, 1113, 1113, 1113, 1113, 1219,
+
+ 1113, 1219, 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1220, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 1213, 1213,
+ 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1217, 1217,
+
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1217, 1217, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1220, 1113, 1220,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1213, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1195, 1195, 1195, 1195, 1195, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1178, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1200, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
- 1195, 1195, 1195, 1195, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
-
- 1106, 1106, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1200, 1106, 1200, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1195, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
-
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1178, 1178, 1178,
- 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1178, 1178, 1178, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1106,
- 1106, 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
- 1106, 1106, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
-
- 1178, 1178, 1178, 1178, 1178, 0, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217,
+ 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
+
+ 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
+ 1217, 1217, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113
} ;
-static yyconst flex_int16_t yy_nxt[4060] =
+static const flex_int16_t yy_nxt[4596] =
{ 0,
- 50, 51, 52, 50, 53, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 50, 50, 50, 50, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
- 54, 50, 50, 50, 50, 55, 56, 50, 57, 50,
- 58, 50, 59, 50, 50, 50, 50, 50, 50, 50,
-
- 50, 60, 50, 50, 50, 50, 50, 50, 50, 50,
- 50, 61, 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 61, 50, 50, 50, 50,
- 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
- 61, 61, 61, 61, 61, 50, 50, 50, 63, 64,
- 291, 65, 66, 83, 67, 84, 89, 68, 69, 70,
- 70, 89, 1027, 70, 71, 86, 83, 992, 84, 50,
- 72, 991, 87, 70, 93, 309, 94, 101, 102, 291,
-
- 103, 101, 102, 990, 103, 113, 989, 114, 119, 315,
- 120, 121, 148, 119, 149, 120, 121, 115, 50, 73,
- 74, 116, 116, 116, 116, 148, 90, 149, 91, 228,
- 229, 90, 230, 91, 309, 93, 95, 94, 276, 124,
- 125, 99, 126, 96, 97, 283, 98, 284, 75, 70,
- 70, 76, 77, 316, 78, 66, 988, 67, 79, 122,
- 68, 69, 70, 70, 122, 95, 70, 71, 124, 125,
- 290, 126, 96, 80, 260, 261, 70, 95, 128, 201,
- 129, 221, 202, 222, 96, 97, 117, 98, 410, 411,
- 223, 130, 320, 415, 415, 203, 203, 203, 203, 987,
-
- 290, 201, 73, 74, 202, 81, 95, 221, 324, 222,
- 325, 277, 225, 96, 226, 986, 223, 203, 203, 203,
- 203, 320, 227, 232, 233, 324, 234, 325, 131, 132,
- 133, 75, 70, 70, 104, 105, 106, 104, 107, 104,
- 104, 104, 104, 104, 104, 104, 108, 104, 108, 104,
- 104, 104, 104, 104, 104, 104, 104, 104, 104, 109,
- 104, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 110, 104, 104, 104, 104,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
-
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 104, 104, 104, 113, 128,
- 114, 129, 291, 151, 235, 152, 263, 263, 985, 151,
- 115, 152, 130, 153, 116, 116, 116, 116, 157, 153,
- 158, 159, 157, 366, 158, 159, 225, 333, 226, 254,
- 254, 291, 255, 401, 334, 402, 227, 265, 264, 266,
- 319, 236, 267, 267, 267, 267, 290, 343, 344, 131,
- 132, 133, 366, 154, 405, 155, 406, 298, 299, 154,
- 300, 155, 305, 305, 305, 305, 431, 264, 432, 160,
- 319, 236, 324, 160, 325, 984, 290, 343, 344, 117,
-
- 134, 134, 135, 134, 136, 137, 134, 134, 134, 138,
- 134, 134, 134, 134, 134, 134, 134, 139, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 140, 141, 140, 140, 140, 140, 140,
- 140, 142, 143, 134, 144, 134, 140, 140, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 140, 140,
- 140, 140, 140, 141, 140, 140, 140, 140, 140, 140,
- 142, 145, 134, 146, 162, 163, 205, 164, 206, 162,
- 163, 165, 164, 353, 211, 211, 165, 333, 216, 351,
-
- 166, 212, 212, 358, 334, 166, 379, 379, 379, 379,
- 324, 217, 325, 352, 213, 213, 346, 359, 347, 360,
- 315, 218, 348, 353, 214, 214, 219, 167, 371, 215,
- 215, 376, 167, 358, 168, 169, 207, 170, 208, 168,
- 169, 217, 170, 352, 213, 213, 346, 359, 347, 360,
- 218, 348, 983, 214, 214, 219, 167, 371, 215, 215,
- 376, 167, 982, 168, 316, 209, 981, 210, 168, 171,
- 172, 173, 171, 174, 175, 171, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 176, 177,
- 171, 171, 171, 178, 171, 171, 179, 180, 181, 182,
-
- 183, 184, 185, 186, 187, 185, 185, 188, 189, 190,
- 191, 192, 185, 193, 194, 195, 196, 197, 198, 185,
- 199, 171, 171, 171, 171, 171, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 185, 185, 188, 189, 190,
- 191, 192, 193, 194, 195, 196, 197, 198, 185, 199,
- 171, 171, 171, 205, 216, 206, 249, 250, 370, 251,
- 263, 263, 452, 252, 354, 269, 270, 217, 271, 263,
- 263, 453, 272, 456, 372, 263, 263, 218, 349, 356,
- 364, 273, 219, 410, 411, 355, 350, 274, 370, 980,
- 365, 452, 264, 373, 354, 374, 375, 217, 941, 357,
-
- 453, 264, 456, 207, 372, 208, 218, 264, 349, 356,
- 364, 219, 387, 361, 355, 398, 350, 362, 235, 275,
- 365, 264, 408, 373, 940, 374, 375, 425, 357, 939,
- 264, 428, 209, 429, 210, 238, 264, 253, 228, 229,
- 367, 230, 387, 361, 412, 398, 253, 362, 232, 233,
- 368, 234, 408, 369, 239, 236, 240, 425, 240, 249,
- 250, 428, 251, 429, 240, 938, 252, 240, 241, 242,
- 367, 240, 243, 244, 410, 411, 937, 245, 298, 299,
- 368, 300, 369, 936, 239, 236, 240, 935, 240, 445,
- 446, 934, 390, 391, 240, 392, 933, 240, 241, 242,
-
- 240, 243, 244, 932, 390, 391, 245, 392, 246, 393,
- 393, 393, 393, 390, 391, 931, 392, 413, 413, 445,
- 446, 393, 393, 393, 393, 390, 391, 458, 392, 448,
- 393, 393, 393, 393, 461, 394, 305, 305, 305, 305,
- 253, 449, 393, 393, 393, 393, 450, 930, 462, 414,
- 269, 270, 454, 271, 395, 464, 458, 272, 459, 448,
- 451, 463, 460, 461, 394, 396, 273, 465, 929, 455,
- 466, 449, 274, 468, 467, 469, 450, 462, 414, 470,
- 471, 472, 454, 473, 395, 464, 474, 476, 459, 451,
- 463, 480, 460, 482, 481, 396, 475, 465, 455, 485,
-
- 466, 486, 468, 467, 275, 469, 262, 262, 470, 471,
- 472, 401, 473, 402, 410, 411, 474, 476, 401, 928,
- 402, 480, 927, 482, 481, 475, 926, 497, 485, 504,
- 486, 253, 433, 434, 435, 436, 437, 437, 438, 437,
- 437, 437, 437, 439, 437, 437, 437, 440, 437, 437,
- 441, 437, 442, 437, 437, 443, 437, 497, 504, 405,
- 444, 406, 433, 434, 435, 436, 437, 437, 438, 437,
- 437, 437, 437, 439, 437, 437, 437, 440, 437, 441,
- 437, 442, 437, 437, 443, 437, 477, 483, 499, 500,
- 478, 501, 505, 506, 484, 479, 379, 379, 379, 379,
-
- 508, 405, 431, 406, 432, 502, 502, 502, 502, 510,
- 511, 925, 520, 512, 512, 924, 477, 483, 548, 923,
- 478, 505, 922, 506, 484, 479, 487, 521, 488, 522,
- 508, 489, 490, 503, 391, 921, 392, 491, 492, 510,
- 410, 411, 520, 493, 494, 513, 523, 548, 495, 409,
- 393, 393, 393, 393, 920, 496, 487, 521, 488, 522,
- 919, 489, 490, 519, 519, 519, 519, 491, 492, 431,
- 914, 432, 493, 494, 513, 913, 523, 495, 409, 409,
- 861, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
-
- 409, 409, 409, 409, 409, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 410, 411, 860, 515, 409, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
- 514, 514, 514, 514, 514, 514, 514, 514, 514, 409,
- 409, 409, 516, 516, 546, 547, 524, 524, 524, 524,
- 524, 524, 524, 524, 549, 558, 550, 599, 859, 600,
- 524, 524, 858, 525, 526, 528, 533, 527, 551, 535,
- 530, 857, 529, 534, 546, 547, 410, 411, 517, 517,
-
- 517, 517, 531, 549, 558, 532, 550, 517, 517, 517,
- 517, 517, 517, 525, 526, 528, 533, 527, 551, 535,
- 530, 529, 552, 534, 560, 553, 554, 555, 556, 856,
- 557, 531, 410, 411, 532, 559, 855, 517, 517, 517,
- 517, 517, 517, 1106, 561, 562, 563, 565, 536, 537,
- 538, 539, 552, 560, 540, 553, 554, 555, 556, 541,
- 557, 564, 567, 542, 568, 559, 543, 854, 544, 569,
- 853, 545, 570, 561, 571, 562, 563, 565, 536, 537,
- 538, 539, 572, 573, 540, 574, 575, 576, 577, 541,
- 564, 578, 567, 542, 568, 543, 581, 544, 582, 569,
-
- 545, 579, 570, 583, 571, 584, 585, 580, 586, 587,
- 606, 588, 572, 573, 589, 574, 575, 576, 577, 590,
- 591, 578, 592, 593, 852, 594, 581, 582, 598, 851,
- 595, 579, 583, 596, 597, 584, 585, 580, 586, 587,
- 588, 500, 602, 600, 589, 503, 391, 603, 392, 590,
- 591, 619, 592, 593, 594, 604, 499, 500, 598, 501,
- 595, 608, 596, 597, 601, 500, 599, 501, 600, 410,
- 411, 259, 602, 502, 502, 502, 502, 603, 410, 411,
- 619, 502, 502, 502, 502, 604, 601, 500, 850, 501,
- 607, 608, 409, 409, 848, 409, 409, 409, 409, 409,
-
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 409, 409, 409, 409, 409, 409, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 609, 609, 609, 609, 410, 411, 613, 610, 409, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
- 609, 609, 609, 409, 409, 409, 611, 611, 616, 409,
- 524, 524, 614, 614, 524, 524, 524, 845, 617, 618,
- 623, 828, 696, 697, 524, 698, 524, 625, 621, 626,
-
- 622, 775, 629, 776, 817, 624, 524, 700, 616, 628,
- 410, 411, 612, 612, 612, 612, 410, 411, 617, 618,
- 623, 612, 612, 612, 612, 612, 612, 625, 621, 626,
- 622, 524, 629, 627, 624, 806, 524, 524, 524, 628,
- 409, 524, 630, 781, 632, 644, 643, 524, 524, 636,
- 780, 612, 612, 612, 612, 612, 612, 615, 615, 615,
- 615, 631, 627, 633, 634, 524, 615, 615, 615, 615,
- 615, 615, 630, 524, 632, 644, 643, 779, 646, 636,
- 524, 645, 647, 635, 524, 649, 524, 524, 650, 651,
- 652, 631, 653, 633, 634, 637, 615, 615, 615, 615,
-
- 615, 615, 639, 638, 697, 640, 641, 642, 646, 654,
- 645, 647, 656, 635, 649, 655, 658, 650, 657, 651,
- 652, 659, 606, 660, 637, 661, 662, 692, 664, 665,
- 669, 639, 667, 638, 640, 668, 641, 642, 670, 654,
- 671, 672, 656, 673, 675, 655, 658, 657, 674, 676,
- 677, 659, 660, 678, 661, 679, 662, 664, 680, 665,
- 669, 667, 681, 683, 668, 682, 684, 670, 685, 687,
- 671, 672, 686, 673, 675, 688, 690, 674, 676, 677,
- 693, 689, 691, 678, 694, 679, 695, 703, 680, 701,
- 701, 705, 681, 683, 682, 684, 524, 524, 685, 687,
-
- 706, 686, 607, 768, 524, 688, 690, 410, 411, 693,
- 689, 524, 691, 524, 694, 695, 708, 703, 524, 710,
- 705, 707, 524, 410, 411, 702, 702, 702, 702, 709,
- 706, 711, 524, 712, 702, 702, 702, 702, 702, 702,
- 714, 713, 524, 524, 524, 524, 708, 764, 710, 715,
- 707, 716, 717, 524, 524, 775, 718, 776, 721, 709,
- 524, 711, 524, 712, 702, 702, 702, 702, 702, 702,
- 714, 713, 719, 723, 720, 524, 524, 524, 524, 715,
- 724, 716, 717, 524, 722, 524, 718, 524, 721, 726,
- 728, 752, 731, 732, 734, 727, 730, 748, 733, 736,
-
- 741, 738, 719, 723, 720, 725, 735, 729, 743, 740,
- 724, 739, 742, 722, 744, 745, 746, 747, 749, 726,
- 728, 731, 750, 732, 734, 727, 730, 733, 751, 736,
- 741, 738, 753, 754, 725, 755, 735, 729, 740, 756,
- 739, 757, 742, 744, 758, 745, 746, 747, 749, 759,
- 761, 750, 760, 762, 763, 765, 766, 767, 751, 769,
- 770, 753, 754, 771, 755, 772, 773, 777, 778, 756,
- 757, 696, 697, 758, 698, 410, 411, 409, 524, 759,
- 761, 760, 762, 524, 763, 765, 766, 767, 524, 769,
- 770, 524, 771, 410, 411, 772, 773, 777, 778, 524,
-
- 782, 524, 786, 784, 783, 524, 524, 785, 524, 524,
- 524, 524, 524, 787, 524, 791, 524, 524, 524, 363,
- 363, 807, 793, 737, 795, 802, 524, 788, 796, 524,
- 782, 786, 789, 784, 783, 790, 792, 785, 524, 797,
- 524, 794, 798, 787, 524, 791, 799, 800, 524, 804,
- 524, 807, 793, 808, 795, 802, 788, 803, 796, 805,
- 811, 789, 801, 809, 790, 792, 812, 813, 797, 814,
- 794, 815, 798, 810, 704, 816, 799, 800, 818, 804,
- 819, 820, 808, 821, 822, 823, 825, 803, 824, 805,
- 811, 826, 801, 809, 827, 829, 812, 813, 814, 830,
-
- 815, 831, 838, 810, 816, 839, 846, 775, 818, 776,
- 819, 820, 849, 821, 822, 823, 825, 824, 847, 524,
- 917, 826, 918, 827, 864, 829, 832, 833, 524, 830,
- 831, 834, 838, 524, 835, 839, 846, 836, 840, 841,
- 524, 849, 837, 842, 524, 878, 843, 524, 847, 844,
- 863, 524, 862, 524, 864, 865, 832, 833, 524, 868,
- 866, 834, 524, 524, 835, 524, 875, 836, 840, 841,
- 876, 837, 872, 842, 878, 867, 843, 870, 524, 844,
- 863, 862, 871, 880, 869, 865, 882, 873, 877, 868,
- 866, 874, 879, 881, 409, 883, 875, 884, 699, 885,
-
- 876, 886, 872, 887, 867, 888, 870, 889, 890, 891,
- 892, 871, 880, 869, 894, 882, 873, 895, 877, 896,
- 902, 874, 879, 881, 883, 901, 893, 884, 885, 903,
- 904, 886, 887, 905, 907, 888, 906, 889, 890, 891,
- 892, 897, 692, 911, 894, 898, 895, 912, 899, 896,
- 902, 915, 943, 908, 901, 893, 909, 524, 900, 903,
- 904, 944, 946, 905, 907, 906, 910, 945, 947, 948,
- 950, 897, 911, 949, 951, 898, 912, 952, 899, 953,
- 915, 942, 943, 908, 954, 955, 909, 900, 956, 666,
- 957, 944, 946, 958, 959, 910, 945, 960, 947, 948,
-
- 950, 961, 949, 962, 951, 963, 964, 952, 965, 953,
- 942, 966, 967, 954, 968, 955, 969, 971, 956, 957,
- 970, 972, 973, 958, 959, 974, 975, 960, 976, 979,
- 961, 977, 917, 962, 918, 963, 964, 917, 965, 918,
- 966, 967, 993, 994, 968, 995, 969, 971, 978, 970,
- 996, 972, 973, 997, 974, 975, 998, 976, 979, 999,
- 1000, 977, 1001, 663, 1002, 1003, 1004, 648, 1005, 1006,
- 1007, 993, 1008, 994, 1009, 995, 1010, 978, 1011, 1012,
- 996, 1013, 1014, 997, 1015, 1016, 998, 1017, 1018, 999,
- 1000, 1019, 1001, 1002, 1003, 1020, 1004, 1005, 1021, 1006,
-
- 1007, 1008, 1022, 1009, 1025, 1010, 1023, 1026, 1011, 1012,
- 1024, 1013, 1014, 1015, 1016, 1028, 1017, 1029, 1018, 1030,
- 1031, 1019, 1032, 1033, 1034, 1020, 1035, 1036, 1021, 1037,
- 1038, 1022, 1039, 1025, 1040, 1023, 1041, 1026, 1042, 1024,
- 1043, 1044, 1045, 1046, 1047, 1028, 1048, 1029, 1030, 1049,
- 1031, 1032, 1033, 1034, 1050, 1057, 1035, 1036, 1037, 1038,
- 1051, 1052, 1039, 1053, 1040, 1054, 1041, 1055, 1042, 1056,
- 1043, 1044, 1045, 1046, 1047, 1048, 1058, 1059, 1060, 1049,
- 1061, 620, 1062, 1063, 1050, 1057, 1064, 1065, 1066, 1051,
- 1052, 1067, 1053, 1068, 1054, 1069, 1055, 1070, 1056, 1071,
-
- 1072, 1073, 1074, 1075, 409, 1076, 1058, 1059, 1060, 1077,
- 1061, 1062, 1078, 1063, 1079, 1080, 1064, 1065, 1066, 1081,
- 1067, 1082, 1083, 1068, 1084, 1069, 1085, 1070, 1086, 1071,
- 1072, 1073, 1074, 1075, 1076, 1087, 1088, 1089, 1077, 1090,
- 1091, 1092, 1078, 1079, 1093, 1080, 1094, 566, 1095, 1081,
- 1082, 1096, 1083, 1097, 1084, 1098, 1085, 1099, 1086, 1100,
- 1101, 524, 1102, 1103, 1104, 1087, 1088, 1089, 1090, 1091,
- 1105, 1092, 416, 1093, 416, 420, 1094, 1095, 391, 518,
- 1096, 518, 1097, 378, 457, 1098, 342, 1099, 1100, 339,
- 1101, 1102, 1103, 336, 1104, 301, 299, 301, 296, 286,
-
- 1105, 62, 62, 62, 62, 62, 62, 62, 62, 62,
- 62, 62, 62, 62, 62, 62, 62, 62, 82, 82,
- 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
- 82, 82, 82, 82, 82, 85, 85, 85, 85, 85,
- 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
- 85, 85, 88, 88, 88, 88, 88, 88, 88, 88,
- 88, 88, 88, 88, 88, 88, 88, 88, 88, 92,
- 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
- 92, 92, 92, 92, 92, 92, 100, 100, 100, 100,
- 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
-
- 100, 100, 100, 50, 50, 50, 50, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 118, 118, 118,
+ 56, 57, 58, 56, 59, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 56, 56, 56, 56, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
+ 60, 56, 56, 56, 56, 61, 62, 56, 63, 56,
+ 64, 56, 65, 56, 56, 56, 56, 56, 56, 56,
+
+ 56, 66, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 56, 56, 56, 56,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
+ 67, 67, 67, 67, 67, 56, 56, 56, 69, 70,
+ 305, 71, 72, 89, 73, 90, 1045, 74, 75, 76,
+ 76, 275, 276, 76, 77, 92, 89, 95, 90, 96,
+ 78, 56, 93, 76, 95, 323, 96, 107, 108, 305,
+
+ 109, 107, 108, 1012, 109, 125, 291, 126, 127, 154,
+ 154, 155, 155, 119, 125, 120, 126, 127, 333, 79,
+ 80, 238, 98, 239, 99, 121, 638, 56, 100, 122,
+ 122, 122, 122, 98, 323, 99, 157, 1011, 158, 105,
+ 350, 130, 131, 233, 132, 234, 159, 333, 81, 76,
+ 76, 82, 83, 235, 84, 72, 128, 73, 85, 427,
+ 74, 75, 76, 76, 101, 128, 76, 77, 134, 350,
+ 135, 102, 103, 86, 104, 101, 76, 130, 131, 292,
+ 132, 136, 102, 103, 1010, 104, 160, 378, 161, 229,
+ 238, 230, 239, 101, 123, 297, 209, 298, 231, 210,
+
+ 102, 1009, 79, 80, 101, 87, 209, 1008, 229, 210,
+ 230, 102, 211, 211, 211, 211, 378, 231, 137, 138,
+ 139, 1007, 211, 211, 211, 211, 243, 244, 335, 245,
+ 336, 81, 76, 76, 110, 111, 112, 110, 113, 110,
+ 110, 110, 110, 110, 110, 110, 114, 110, 114, 110,
+ 110, 110, 110, 110, 110, 110, 110, 110, 110, 115,
+ 110, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 110, 110, 110, 110,
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+
+ 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 110, 110, 110, 119, 134,
+ 120, 135, 335, 157, 336, 158, 163, 383, 164, 165,
+ 121, 250, 136, 159, 122, 122, 122, 122, 163, 224,
+ 164, 165, 163, 233, 241, 234, 343, 247, 248, 242,
+ 249, 304, 225, 235, 269, 269, 383, 270, 280, 419,
+ 281, 420, 226, 282, 282, 282, 282, 227, 251, 137,
+ 138, 139, 345, 160, 1006, 161, 166, 167, 168, 346,
+ 1005, 304, 225, 312, 313, 423, 314, 424, 166, 167,
+ 168, 226, 166, 167, 168, 1004, 227, 344, 251, 123,
+
+ 140, 140, 141, 140, 142, 143, 140, 140, 140, 144,
+ 140, 140, 140, 140, 140, 140, 140, 145, 140, 140,
+ 140, 140, 140, 140, 140, 140, 140, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 147, 146, 146, 146, 146, 146,
+ 146, 148, 149, 140, 150, 140, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 146, 146, 147, 146, 146, 146, 146, 146, 146,
+ 148, 151, 140, 152, 170, 171, 213, 172, 214, 170,
+ 171, 173, 172, 332, 219, 219, 173, 157, 224, 158,
+
+ 174, 220, 220, 349, 449, 174, 450, 236, 428, 429,
+ 157, 225, 158, 355, 221, 221, 319, 319, 319, 319,
+ 236, 226, 356, 332, 222, 222, 227, 175, 388, 223,
+ 223, 1003, 175, 349, 176, 177, 215, 178, 216, 176,
+ 177, 225, 178, 355, 221, 221, 335, 160, 336, 161,
+ 226, 1002, 356, 222, 222, 227, 175, 388, 223, 223,
+ 160, 175, 161, 176, 335, 217, 336, 218, 176, 179,
+ 180, 181, 179, 182, 183, 179, 179, 179, 179, 179,
+ 179, 179, 179, 179, 179, 179, 179, 179, 184, 185,
+ 179, 179, 179, 186, 179, 179, 187, 188, 189, 190,
+
+ 191, 192, 193, 194, 195, 193, 193, 196, 197, 198,
+ 199, 200, 193, 201, 202, 203, 204, 205, 206, 193,
+ 207, 179, 179, 179, 179, 179, 187, 188, 189, 190,
+ 191, 192, 193, 194, 195, 193, 193, 196, 197, 198,
+ 199, 200, 201, 202, 203, 204, 205, 206, 193, 207,
+ 179, 179, 179, 213, 726, 214, 163, 362, 241, 264,
+ 265, 360, 266, 242, 278, 278, 267, 284, 285, 361,
+ 286, 363, 278, 278, 287, 433, 433, 278, 278, 1001,
+ 278, 278, 475, 288, 358, 364, 369, 427, 370, 289,
+ 359, 360, 365, 382, 371, 345, 279, 367, 372, 361,
+
+ 1000, 363, 346, 215, 279, 216, 166, 167, 168, 279,
+ 963, 475, 279, 366, 358, 364, 369, 368, 370, 359,
+ 376, 290, 365, 382, 371, 279, 962, 367, 372, 384,
+ 377, 385, 217, 279, 218, 253, 243, 244, 279, 245,
+ 268, 279, 366, 250, 386, 373, 368, 478, 268, 374,
+ 376, 387, 405, 379, 254, 416, 255, 426, 255, 384,
+ 377, 385, 961, 380, 255, 960, 381, 255, 256, 257,
+ 959, 255, 258, 259, 386, 373, 478, 260, 958, 374,
+ 251, 387, 405, 379, 254, 416, 255, 426, 255, 391,
+ 391, 391, 391, 380, 255, 381, 957, 255, 256, 257,
+
+ 255, 258, 259, 956, 247, 248, 260, 249, 261, 955,
+ 251, 408, 409, 954, 410, 408, 409, 953, 410, 408,
+ 409, 480, 410, 408, 409, 430, 410, 443, 411, 411,
+ 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
+ 411, 411, 411, 411, 264, 265, 446, 266, 431, 431,
+ 480, 267, 447, 952, 412, 428, 429, 443, 312, 313,
+ 413, 314, 464, 414, 951, 284, 285, 950, 286, 465,
+ 469, 470, 287, 471, 472, 473, 446, 949, 483, 484,
+ 432, 288, 447, 412, 485, 476, 486, 289, 490, 474,
+ 413, 487, 464, 414, 319, 319, 319, 319, 491, 465,
+
+ 469, 470, 477, 471, 472, 473, 481, 483, 484, 432,
+ 482, 492, 499, 485, 493, 476, 486, 490, 474, 290,
+ 419, 487, 420, 948, 419, 268, 420, 423, 491, 424,
+ 947, 477, 391, 391, 391, 391, 481, 423, 946, 424,
+ 482, 492, 499, 493, 494, 495, 268, 451, 452, 453,
+ 454, 455, 455, 456, 455, 455, 455, 455, 457, 455,
+ 455, 455, 458, 455, 455, 459, 455, 460, 455, 455,
+ 461, 455, 488, 494, 495, 462, 489, 451, 452, 453,
+ 454, 455, 455, 456, 455, 455, 455, 455, 457, 455,
+ 455, 455, 458, 455, 459, 455, 460, 455, 455, 461,
+
+ 455, 496, 488, 497, 503, 489, 500, 504, 505, 506,
+ 501, 945, 508, 498, 509, 502, 507, 944, 520, 428,
+ 429, 527, 528, 277, 277, 449, 529, 450, 428, 429,
+ 496, 531, 533, 497, 503, 943, 500, 504, 505, 506,
+ 501, 508, 498, 509, 631, 502, 507, 510, 520, 511,
+ 527, 528, 512, 513, 522, 523, 529, 524, 514, 515,
+ 534, 531, 533, 942, 516, 517, 941, 526, 409, 518,
+ 410, 525, 525, 525, 525, 543, 519, 510, 544, 511,
+ 535, 535, 512, 513, 411, 411, 411, 411, 514, 515,
+ 428, 429, 545, 516, 517, 539, 539, 546, 518, 542,
+
+ 542, 542, 542, 569, 449, 543, 450, 570, 544, 571,
+ 572, 624, 536, 625, 936, 573, 427, 523, 935, 625,
+ 526, 409, 545, 410, 632, 885, 624, 546, 625, 428,
+ 429, 626, 523, 569, 524, 722, 723, 570, 724, 571,
+ 572, 536, 427, 427, 573, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 428, 429, 884, 538, 427, 537,
+
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 537, 427, 427, 427, 540, 540, 540, 540,
+ 547, 547, 547, 547, 547, 540, 540, 540, 540, 540,
+ 540, 547, 547, 547, 574, 547, 548, 549, 575, 547,
+ 550, 576, 553, 558, 551, 883, 552, 577, 578, 579,
+ 428, 429, 556, 557, 580, 540, 540, 540, 540, 540,
+ 540, 554, 581, 574, 555, 583, 548, 549, 575, 582,
+ 550, 576, 553, 558, 551, 552, 586, 577, 578, 579,
+ 584, 587, 556, 557, 580, 882, 585, 588, 589, 881,
+
+ 554, 591, 581, 555, 1113, 583, 592, 593, 582, 559,
+ 560, 561, 562, 594, 595, 563, 586, 596, 597, 584,
+ 564, 587, 598, 599, 565, 585, 588, 566, 589, 567,
+ 600, 591, 568, 601, 602, 603, 592, 593, 606, 559,
+ 560, 561, 562, 594, 595, 563, 607, 596, 597, 604,
+ 564, 608, 598, 599, 565, 605, 566, 609, 567, 610,
+ 600, 568, 611, 601, 602, 603, 612, 614, 606, 613,
+ 615, 616, 617, 618, 620, 607, 619, 621, 622, 604,
+ 608, 623, 428, 429, 274, 605, 644, 609, 627, 610,
+ 628, 629, 611, 633, 641, 642, 612, 614, 613, 880,
+
+ 615, 616, 617, 618, 620, 619, 621, 622, 631, 522,
+ 523, 623, 524, 626, 523, 644, 524, 801, 627, 802,
+ 628, 629, 879, 633, 641, 642, 525, 525, 525, 525,
+ 525, 525, 525, 525, 427, 427, 878, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 634, 634, 634, 634, 634, 634, 634, 634, 634,
+ 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
+ 634, 634, 634, 634, 634, 634, 428, 429, 632, 635,
+ 427, 634, 634, 634, 634, 634, 634, 634, 634, 634,
+
+ 634, 634, 634, 634, 634, 634, 634, 634, 634, 634,
+ 634, 634, 634, 634, 634, 427, 427, 427, 636, 636,
+ 643, 547, 547, 877, 639, 639, 547, 547, 547, 547,
+ 547, 648, 651, 547, 876, 547, 547, 428, 429, 646,
+ 650, 647, 547, 653, 428, 429, 649, 655, 656, 657,
+ 643, 658, 428, 429, 637, 637, 637, 637, 428, 429,
+ 652, 648, 651, 637, 637, 637, 637, 637, 637, 646,
+ 650, 647, 547, 653, 547, 649, 547, 655, 656, 657,
+ 801, 658, 802, 547, 669, 547, 547, 661, 547, 652,
+ 654, 671, 659, 637, 637, 637, 637, 637, 637, 640,
+
+ 640, 640, 640, 660, 547, 662, 666, 663, 640, 640,
+ 640, 640, 640, 640, 669, 547, 547, 661, 670, 672,
+ 654, 671, 659, 673, 668, 875, 664, 674, 675, 665,
+ 676, 677, 678, 660, 662, 667, 666, 663, 640, 640,
+ 640, 640, 640, 640, 682, 684, 679, 670, 672, 683,
+ 685, 874, 686, 673, 668, 664, 674, 675, 665, 676,
+ 687, 677, 678, 680, 688, 667, 690, 691, 695, 681,
+ 872, 693, 694, 696, 682, 684, 697, 698, 683, 699,
+ 685, 686, 700, 701, 869, 702, 703, 704, 705, 687,
+ 706, 707, 709, 680, 688, 690, 708, 691, 695, 681,
+
+ 693, 694, 696, 710, 711, 713, 697, 698, 712, 699,
+ 714, 700, 716, 701, 702, 703, 715, 704, 705, 717,
+ 706, 707, 709, 719, 720, 708, 721, 727, 727, 729,
+ 547, 731, 710, 547, 711, 713, 547, 712, 732, 852,
+ 714, 757, 716, 547, 547, 715, 841, 547, 734, 717,
+ 738, 547, 719, 739, 720, 721, 737, 547, 733, 729,
+ 731, 428, 429, 728, 728, 728, 728, 547, 732, 735,
+ 757, 748, 728, 728, 728, 728, 728, 728, 734, 736,
+ 738, 547, 547, 739, 547, 740, 737, 733, 741, 742,
+ 547, 547, 547, 743, 428, 429, 547, 747, 547, 735,
+
+ 748, 744, 728, 728, 728, 728, 728, 728, 736, 745,
+ 547, 746, 547, 547, 753, 740, 547, 750, 741, 742,
+ 547, 749, 758, 743, 547, 751, 752, 747, 759, 754,
+ 760, 744, 761, 756, 762, 764, 755, 832, 766, 745,
+ 767, 746, 768, 771, 753, 765, 770, 750, 772, 773,
+ 775, 749, 758, 776, 751, 777, 752, 759, 779, 754,
+ 760, 761, 780, 756, 762, 764, 755, 766, 781, 782,
+ 767, 783, 768, 771, 765, 770, 784, 785, 772, 773,
+ 775, 786, 776, 787, 789, 777, 788, 779, 791, 792,
+ 793, 780, 795, 796, 547, 797, 798, 781, 799, 782,
+
+ 783, 803, 804, 722, 723, 784, 724, 785, 807, 547,
+ 786, 808, 547, 787, 789, 788, 547, 809, 791, 792,
+ 793, 547, 795, 796, 797, 811, 798, 547, 799, 547,
+ 547, 803, 804, 428, 429, 427, 810, 547, 547, 547,
+ 812, 808, 813, 547, 547, 547, 547, 809, 547, 814,
+ 806, 547, 547, 815, 817, 811, 819, 547, 821, 547,
+ 818, 816, 822, 805, 820, 824, 810, 547, 826, 812,
+ 823, 825, 813, 547, 828, 827, 547, 833, 814, 835,
+ 829, 836, 815, 547, 817, 830, 819, 834, 821, 818,
+ 816, 837, 822, 820, 831, 824, 838, 839, 826, 823,
+
+ 840, 825, 842, 843, 828, 827, 844, 833, 845, 835,
+ 829, 836, 846, 847, 849, 830, 848, 834, 850, 723,
+ 851, 837, 853, 854, 831, 838, 839, 855, 862, 840,
+ 863, 870, 842, 843, 718, 871, 844, 801, 845, 802,
+ 873, 794, 846, 847, 849, 848, 856, 857, 850, 851,
+ 547, 858, 853, 854, 859, 547, 855, 860, 862, 790,
+ 863, 870, 861, 864, 865, 871, 547, 887, 866, 873,
+ 547, 867, 547, 547, 868, 888, 856, 857, 547, 886,
+ 547, 858, 890, 547, 859, 547, 547, 860, 889, 547,
+ 892, 861, 899, 864, 865, 900, 891, 887, 866, 898,
+
+ 901, 867, 893, 902, 868, 888, 547, 894, 886, 895,
+ 904, 897, 890, 903, 906, 896, 778, 905, 889, 907,
+ 892, 908, 899, 909, 900, 891, 910, 911, 912, 898,
+ 901, 893, 902, 913, 914, 916, 894, 917, 895, 904,
+ 897, 918, 774, 903, 906, 896, 905, 923, 907, 928,
+ 915, 908, 909, 924, 925, 919, 910, 911, 912, 920,
+ 926, 927, 921, 913, 914, 916, 917, 929, 769, 933,
+ 934, 918, 922, 937, 930, 763, 923, 931, 928, 915,
+ 939, 547, 940, 924, 925, 919, 969, 932, 965, 920,
+ 926, 927, 921, 966, 967, 968, 970, 929, 933, 934,
+
+ 971, 922, 937, 972, 930, 964, 973, 931, 974, 975,
+ 976, 730, 977, 978, 979, 969, 932, 980, 965, 981,
+ 982, 983, 984, 966, 967, 968, 970, 985, 427, 986,
+ 971, 987, 988, 972, 964, 989, 973, 974, 990, 975,
+ 976, 977, 991, 978, 979, 992, 993, 980, 981, 994,
+ 982, 983, 984, 995, 996, 999, 997, 985, 986, 939,
+ 987, 940, 988, 1013, 939, 989, 940, 990, 1014, 1015,
+ 1016, 1017, 991, 998, 1018, 992, 993, 1019, 994, 1020,
+ 1021, 1022, 995, 996, 999, 1023, 997, 1024, 1025, 725,
+ 1026, 1027, 1013, 1028, 1029, 1030, 1031, 1032, 1014, 1015,
+
+ 1016, 1017, 998, 1033, 1018, 1034, 1035, 1019, 1020, 1021,
+ 1036, 1022, 1037, 1038, 1023, 1039, 1044, 1024, 1025, 1026,
+ 1027, 1040, 1028, 1043, 1029, 1030, 1031, 1032, 1048, 1041,
+ 1046, 1047, 1033, 1042, 1034, 1035, 1049, 1050, 1051, 1052,
+ 1036, 1053, 1037, 1038, 1054, 1039, 1044, 1055, 1056, 1057,
+ 1040, 1058, 1043, 1059, 1060, 1061, 1062, 1048, 1041, 1063,
+ 1046, 1047, 1042, 1064, 1065, 1049, 1050, 1066, 1051, 1052,
+ 1053, 1067, 1068, 1054, 1069, 1070, 1071, 1055, 1056, 1057,
+ 1072, 1058, 1073, 1059, 1060, 1061, 1062, 1074, 1075, 1063,
+ 1076, 1077, 1064, 1078, 1065, 1079, 1080, 1066, 1081, 1082,
+
+ 1067, 1068, 1083, 1069, 1070, 1084, 1071, 1085, 1086, 1087,
+ 1072, 1088, 1073, 1089, 1090, 718, 1091, 1074, 1075, 1076,
+ 1092, 1077, 1093, 1078, 1094, 1079, 1080, 1081, 1095, 1082,
+ 1096, 1097, 1083, 1098, 1099, 1084, 1100, 1085, 1086, 1087,
+ 1088, 1101, 1089, 1102, 1090, 1091, 1103, 1104, 1105, 1106,
+ 1092, 1107, 1093, 1094, 1108, 692, 1109, 1110, 1095, 1111,
+ 1096, 1097, 1112, 1098, 1099, 1100, 375, 375, 689, 434,
+ 1101, 434, 541, 1102, 541, 1103, 1104, 1105, 645, 1106,
+ 427, 1107, 415, 415, 1108, 1109, 1110, 415, 590, 1111,
+ 344, 343, 1112, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 88, 88, 88, 88, 88, 88,
+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
+ 88, 88, 88, 88, 88, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
+ 91, 91, 91, 91, 91, 91, 94, 94, 94, 94,
+ 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+ 94, 94, 94, 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, 106, 106,
+
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
+ 106, 106, 106, 106, 106, 106, 106, 106, 106, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
+ 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 123, 123, 123, 123, 123, 123,
- 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
- 123, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 147, 147,
- 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
-
- 147, 147, 147, 147, 147, 150, 150, 150, 150, 150,
- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150,
- 150, 150, 156, 156, 156, 156, 156, 156, 156, 156,
- 156, 156, 156, 156, 156, 156, 156, 156, 156, 161,
- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161,
- 161, 161, 161, 161, 161, 161, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 204, 204, 204, 204, 204, 204, 204,
- 204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
- 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
-
- 220, 220, 220, 220, 220, 220, 220, 224, 224, 224,
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
- 224, 224, 224, 224, 231, 231, 282, 231, 231, 423,
- 422, 421, 231, 237, 237, 237, 237, 237, 237, 237,
- 237, 237, 237, 237, 237, 237, 237, 237, 237, 248,
- 248, 270, 248, 248, 420, 418, 417, 248, 259, 407,
- 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
- 259, 259, 259, 259, 259, 262, 254, 262, 262, 262,
- 262, 262, 262, 262, 262, 262, 262, 262, 262, 262,
- 262, 262, 268, 268, 268, 403, 268, 268, 250, 233,
-
- 229, 268, 280, 386, 280, 280, 280, 280, 280, 280,
- 280, 280, 280, 280, 280, 280, 280, 280, 280, 281,
- 385, 281, 281, 281, 281, 281, 281, 281, 281, 281,
- 281, 281, 281, 281, 281, 281, 285, 285, 285, 285,
- 285, 285, 285, 285, 285, 285, 285, 285, 384, 285,
- 382, 285, 285, 295, 381, 380, 295, 295, 295, 295,
+ 118, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 129, 129, 129, 129, 129, 129, 129, 129,
+ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
+
+ 129, 129, 129, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 133, 133, 133, 133, 133, 133,
+ 133, 133, 133, 133, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 153, 153, 153, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
+ 156, 156, 156, 156, 156, 156, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 169, 169, 169,
+ 169, 169, 169, 169, 169, 169, 169, 169, 169, 169,
+
+ 169, 169, 169, 169, 169, 169, 169, 169, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+ 208, 208, 208, 208, 208, 208, 208, 208, 208, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 212, 212, 212, 212, 212, 212, 212, 212, 212, 212,
+ 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
+ 228, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 232, 232, 232, 232, 232, 232, 232, 232,
+ 232, 232, 237, 237, 237, 237, 237, 237, 237, 237,
+
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 240, 240, 240, 240, 240, 240, 240,
+ 240, 240, 240, 240, 240, 240, 240, 240, 240, 240,
+ 240, 240, 240, 240, 246, 547, 246, 438, 246, 246,
+ 455, 455, 455, 246, 252, 252, 252, 252, 252, 252,
+ 252, 252, 252, 252, 252, 252, 252, 252, 252, 252,
+ 252, 252, 252, 252, 263, 409, 263, 390, 263, 263,
+ 417, 417, 479, 263, 274, 417, 274, 274, 274, 274,
+ 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 274, 274, 277, 354, 277, 277, 277,
+
+ 277, 277, 277, 277, 277, 277, 277, 277, 277, 277,
+ 277, 277, 277, 277, 277, 277, 283, 283, 351, 283,
+ 348, 283, 283, 467, 466, 463, 283, 295, 315, 295,
295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
- 303, 303, 378, 303, 303, 342, 340, 339, 303, 308,
- 338, 308, 308, 308, 308, 308, 308, 308, 308, 308,
- 308, 308, 308, 308, 308, 308, 311, 337, 311, 311,
-
- 311, 311, 311, 311, 311, 311, 311, 311, 311, 311,
- 317, 311, 311, 312, 336, 312, 335, 331, 312, 312,
- 312, 312, 312, 329, 328, 327, 312, 314, 326, 314,
- 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
- 314, 314, 314, 314, 318, 318, 322, 318, 318, 321,
- 317, 313, 318, 323, 323, 323, 323, 323, 323, 323,
- 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
- 330, 307, 330, 310, 330, 330, 330, 330, 330, 330,
- 330, 330, 330, 307, 330, 330, 330, 332, 306, 332,
- 332, 332, 332, 332, 332, 332, 332, 332, 332, 332,
-
- 332, 332, 332, 332, 341, 304, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 345, 345, 302, 299, 345, 345, 377, 301, 377,
- 377, 377, 377, 377, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 377, 383, 297, 383, 383, 383, 296,
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
- 383, 231, 231, 294, 231, 231, 293, 292, 289, 231,
- 388, 288, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 388, 388, 388, 388, 389, 287, 389,
+ 295, 295, 295, 295, 295, 295, 295, 295, 299, 299,
+ 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
+ 299, 299, 299, 313, 299, 315, 299, 299, 299, 302,
+ 310, 302, 302, 296, 302, 302, 302, 302, 302, 302,
+ 302, 302, 302, 302, 441, 302, 440, 302, 302, 302,
+ 309, 439, 285, 309, 309, 309, 309, 309, 309, 309,
+
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 317, 438, 317, 436, 317, 317, 435, 425, 269,
+ 317, 322, 421, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 322, 322, 322, 322, 322, 322, 322, 322,
+ 322, 322, 325, 265, 325, 325, 325, 325, 325, 325,
+ 325, 325, 325, 325, 325, 325, 325, 325, 325, 248,
+ 325, 325, 325, 326, 244, 326, 341, 326, 403, 326,
+ 326, 326, 326, 402, 326, 326, 400, 399, 398, 326,
+ 328, 397, 328, 328, 328, 395, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+
+ 328, 331, 394, 331, 393, 331, 331, 390, 354, 352,
+ 331, 334, 334, 334, 334, 334, 334, 334, 334, 334,
+ 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
+ 334, 334, 337, 351, 337, 337, 337, 337, 337, 307,
+ 337, 337, 337, 337, 337, 337, 337, 306, 337, 330,
+ 337, 337, 337, 340, 348, 340, 347, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 340, 307, 306,
+ 341, 340, 340, 340, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 353, 307, 353, 353, 353,
+
+ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
+ 353, 353, 353, 353, 353, 353, 357, 357, 306, 339,
+ 338, 357, 357, 389, 307, 389, 389, 389, 389, 389,
389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
-
- 389, 389, 389, 389, 397, 397, 286, 282, 279, 397,
- 399, 399, 278, 270, 258, 399, 400, 400, 400, 400,
- 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
- 400, 400, 400, 248, 248, 257, 248, 248, 256, 250,
- 247, 248, 404, 404, 404, 404, 404, 404, 404, 404,
- 404, 404, 404, 404, 404, 404, 404, 404, 404, 409,
- 233, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 229, 409, 409, 259, 1106, 259, 259,
- 259, 259, 259, 259, 259, 259, 259, 259, 259, 259,
- 259, 259, 259, 419, 419, 111, 419, 419, 111, 1106,
-
- 1106, 419, 419, 424, 1106, 424, 424, 424, 424, 424,
- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
- 280, 1106, 280, 280, 280, 280, 280, 280, 280, 280,
- 280, 280, 280, 280, 280, 280, 280, 281, 1106, 281,
- 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
- 281, 281, 281, 281, 426, 1106, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 426, 427, 1106, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 427, 285, 285,
- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285,
-
- 1106, 285, 1106, 285, 285, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 295, 1106, 1106, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 295, 295, 295, 303,
- 303, 1106, 303, 303, 1106, 1106, 1106, 303, 312, 1106,
- 312, 1106, 1106, 312, 312, 312, 312, 312, 1106, 1106,
- 1106, 312, 314, 1106, 314, 314, 314, 314, 314, 314,
- 314, 314, 314, 314, 314, 314, 314, 314, 314, 318,
- 318, 1106, 318, 318, 1106, 1106, 1106, 318, 323, 323,
- 323, 323, 323, 323, 323, 323, 323, 323, 323, 323,
-
- 323, 323, 323, 323, 323, 330, 1106, 330, 1106, 330,
- 330, 330, 330, 330, 330, 330, 330, 330, 1106, 330,
- 330, 330, 447, 1106, 447, 447, 447, 447, 447, 447,
- 447, 447, 447, 447, 447, 447, 447, 447, 447, 341,
- 1106, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 345, 345, 1106, 1106,
- 345, 345, 377, 1106, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 377, 377, 377, 377, 377, 377, 383,
- 1106, 383, 383, 383, 1106, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 383, 383, 388, 1106, 388, 388,
-
- 388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
- 388, 388, 388, 389, 1106, 389, 389, 389, 389, 389,
+ 389, 389, 389, 389, 392, 306, 330, 392, 392, 392,
+ 392, 392, 392, 392, 392, 392, 392, 392, 392, 329,
+ 392, 327, 392, 396, 321, 396, 396, 396, 396, 324,
+ 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+ 396, 396, 396, 396, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 321,
+
+ 401, 320, 401, 401, 401, 404, 318, 404, 404, 404,
+ 316, 404, 404, 404, 404, 404, 404, 404, 404, 404,
+ 313, 315, 311, 404, 404, 404, 246, 310, 246, 308,
+ 246, 246, 307, 306, 303, 246, 406, 301, 406, 406,
+ 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
+ 406, 406, 406, 406, 406, 406, 406, 407, 300, 407,
+ 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
+ 407, 407, 407, 407, 407, 407, 407, 407, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 263,
+
+ 296, 263, 294, 263, 263, 293, 285, 273, 263, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
+ 427, 272, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 271, 427, 427,
+ 427, 274, 265, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 274, 274, 274, 274, 274, 274, 274, 274,
+ 274, 274, 437, 262, 437, 248, 437, 437, 244, 1113,
+ 117, 437, 117, 437, 442, 1113, 442, 442, 442, 442,
+ 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
+
+ 442, 442, 442, 442, 442, 295, 1113, 295, 295, 295,
+ 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
+ 295, 295, 295, 295, 295, 295, 444, 1113, 444, 444,
+ 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
+ 444, 444, 444, 444, 444, 444, 444, 445, 1113, 445,
+ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
+ 445, 445, 445, 445, 445, 445, 445, 445, 299, 299,
+ 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
+ 299, 299, 299, 1113, 299, 1113, 299, 299, 299, 302,
+ 1113, 302, 302, 1113, 302, 302, 302, 302, 302, 302,
+
+ 302, 302, 302, 302, 1113, 302, 1113, 302, 302, 302,
+ 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 309, 1113, 1113, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 317, 1113, 317, 1113, 317, 317, 1113, 1113,
+ 1113, 317, 326, 1113, 326, 1113, 326, 1113, 326, 326,
+ 326, 326, 1113, 326, 326, 1113, 1113, 1113, 326, 328,
+ 1113, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+ 328, 328, 328, 328, 328, 328, 328, 328, 328, 328,
+
+ 331, 1113, 331, 1113, 331, 331, 1113, 1113, 1113, 331,
+ 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
+ 334, 334, 334, 334, 334, 334, 334, 334, 334, 334,
+ 334, 337, 1113, 337, 337, 337, 337, 337, 1113, 337,
+ 337, 337, 337, 337, 337, 337, 1113, 337, 1113, 337,
+ 337, 337, 340, 1113, 340, 1113, 340, 340, 340, 340,
+ 340, 340, 340, 340, 340, 340, 340, 1113, 1113, 1113,
+ 340, 340, 340, 468, 1113, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 353, 1113, 353, 353, 353, 353,
+
+ 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
+ 353, 353, 353, 353, 353, 357, 357, 1113, 1113, 1113,
+ 357, 357, 389, 1113, 389, 389, 389, 389, 389, 389,
389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
- 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
- 498, 498, 498, 498, 498, 498, 498, 507, 507, 1106,
- 507, 507, 1106, 1106, 1106, 507, 509, 509, 1106, 509,
- 509, 1106, 1106, 1106, 509, 400, 400, 400, 400, 400,
- 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
- 400, 400, 404, 404, 404, 404, 404, 404, 404, 404,
- 404, 404, 404, 404, 404, 404, 404, 404, 404, 409,
-
- 1106, 409, 409, 409, 409, 409, 409, 409, 409, 409,
- 409, 409, 409, 1106, 409, 409, 419, 419, 1106, 419,
- 419, 1106, 1106, 1106, 419, 419, 424, 1106, 424, 424,
- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424,
- 424, 424, 424, 426, 1106, 426, 426, 426, 426, 426,
- 426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
- 427, 1106, 427, 427, 427, 427, 427, 427, 427, 427,
- 427, 427, 427, 427, 427, 427, 427, 430, 430, 430,
- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
- 430, 430, 430, 430, 437, 437, 437, 318, 318, 1106,
-
- 318, 318, 1106, 1106, 1106, 318, 447, 1106, 447, 447,
- 447, 447, 447, 447, 447, 447, 447, 447, 447, 447,
- 447, 447, 447, 605, 1106, 605, 605, 605, 605, 605,
- 605, 605, 605, 605, 605, 605, 605, 605, 605, 605,
- 774, 774, 774, 774, 774, 774, 774, 774, 774, 774,
- 774, 774, 774, 774, 774, 774, 774, 916, 916, 916,
- 916, 916, 916, 916, 916, 916, 916, 916, 916, 916,
- 916, 916, 916, 916, 49, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
-
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106,
- 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106, 1106
+ 389, 389, 389, 392, 1113, 1113, 392, 392, 392, 392,
+ 392, 392, 392, 392, 392, 392, 392, 392, 1113, 392,
+ 1113, 392, 396, 1113, 396, 396, 396, 396, 1113, 396,
+ 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+ 396, 396, 396, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 1113, 401,
+
+ 1113, 401, 401, 401, 404, 1113, 404, 404, 404, 1113,
+ 404, 404, 404, 404, 404, 404, 404, 404, 404, 1113,
+ 1113, 1113, 404, 404, 404, 406, 1113, 406, 406, 406,
+ 406, 406, 406, 406, 406, 406, 406, 406, 406, 406,
+ 406, 406, 406, 406, 406, 406, 407, 1113, 407, 407,
+ 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
+ 407, 407, 407, 407, 407, 407, 407, 521, 521, 521,
+ 521, 521, 521, 521, 521, 521, 521, 521, 521, 521,
+ 521, 521, 521, 521, 521, 521, 521, 521, 530, 1113,
+ 530, 1113, 530, 530, 1113, 1113, 1113, 530, 532, 1113,
+
+ 532, 1113, 532, 532, 1113, 1113, 1113, 532, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 418,
+ 418, 418, 418, 418, 418, 418, 418, 418, 418, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
+ 422, 422, 422, 422, 422, 422, 422, 422, 422, 422,
+ 427, 1113, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 427, 427, 427, 1113, 427, 427,
+ 427, 437, 1113, 437, 1113, 437, 437, 1113, 1113, 1113,
+ 437, 1113, 437, 442, 1113, 442, 442, 442, 442, 442,
+ 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
+
+ 442, 442, 442, 442, 444, 1113, 444, 444, 444, 444,
+ 444, 444, 444, 444, 444, 444, 444, 444, 444, 444,
+ 444, 444, 444, 444, 444, 445, 1113, 445, 445, 445,
+ 445, 445, 445, 445, 445, 445, 445, 445, 445, 445,
+ 445, 445, 445, 445, 445, 445, 302, 1113, 302, 302,
+ 1113, 302, 302, 302, 302, 302, 302, 302, 302, 302,
+ 302, 1113, 302, 1113, 302, 302, 302, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 448, 448, 331, 1113,
+ 331, 1113, 331, 331, 1113, 1113, 1113, 331, 342, 1113,
+
+ 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
+ 342, 342, 342, 342, 342, 342, 342, 342, 342, 468,
+ 1113, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 357, 357, 1113, 1113, 1113, 357, 357, 630, 1113, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630, 630, 630,
+ 630, 630, 630, 630, 630, 630, 630, 630, 800, 800,
+ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800,
+ 800, 800, 800, 800, 800, 800, 800, 800, 800, 938,
+ 938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
+
+ 938, 938, 938, 938, 938, 938, 938, 938, 938, 938,
+ 55, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 1113, 1113, 1113, 1113, 1113
+
} ;
-static yyconst flex_int16_t yy_chk[4060] =
+static const flex_int16_t yy_chk[4596] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -1435,25 +1347,25 @@ static yyconst flex_int16_t yy_chk[4060] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 3, 3,
- 96, 3, 3, 5, 3, 5, 7, 3, 3, 3,
- 3, 8, 992, 3, 3, 6, 6, 942, 6, 21,
- 3, 941, 6, 3, 9, 126, 9, 11, 11, 96,
-
- 11, 12, 12, 940, 12, 17, 939, 17, 19, 138,
- 19, 19, 27, 20, 27, 20, 20, 17, 22, 3,
- 3, 17, 17, 17, 17, 28, 7, 28, 7, 51,
- 51, 8, 51, 8, 126, 10, 9, 10, 79, 21,
- 21, 10, 21, 9, 9, 87, 9, 87, 3, 3,
- 3, 4, 4, 138, 4, 4, 938, 4, 4, 19,
- 4, 4, 4, 4, 20, 9, 4, 4, 22, 22,
- 95, 22, 9, 4, 73, 73, 4, 10, 23, 37,
- 23, 45, 37, 45, 10, 10, 17, 10, 259, 259,
- 45, 23, 142, 263, 263, 37, 37, 37, 37, 937,
-
- 95, 38, 4, 4, 38, 4, 10, 46, 147, 46,
- 147, 79, 47, 10, 47, 936, 46, 38, 38, 38,
- 38, 142, 47, 55, 55, 149, 55, 149, 23, 23,
- 23, 4, 4, 4, 13, 13, 13, 13, 13, 13,
+ 102, 3, 3, 5, 3, 5, 1012, 3, 3, 3,
+ 3, 79, 79, 3, 3, 6, 6, 7, 6, 7,
+ 3, 21, 6, 3, 8, 132, 8, 11, 11, 102,
+
+ 11, 12, 12, 964, 12, 19, 85, 19, 19, 27,
+ 28, 27, 28, 17, 20, 17, 20, 20, 148, 3,
+ 3, 51, 9, 51, 9, 17, 537, 22, 9, 17,
+ 17, 17, 17, 10, 132, 10, 29, 963, 29, 10,
+ 176, 21, 21, 47, 21, 47, 29, 148, 3, 3,
+ 3, 4, 4, 47, 4, 4, 19, 4, 4, 537,
+ 4, 4, 4, 4, 9, 20, 4, 4, 23, 176,
+ 23, 9, 9, 4, 9, 10, 4, 22, 22, 85,
+ 22, 23, 10, 10, 962, 10, 29, 199, 29, 45,
+ 52, 45, 52, 9, 17, 93, 37, 93, 45, 37,
+
+ 9, 961, 4, 4, 10, 4, 38, 960, 46, 38,
+ 46, 10, 37, 37, 37, 37, 199, 46, 23, 23,
+ 23, 959, 38, 38, 38, 38, 57, 57, 153, 57,
+ 153, 4, 4, 4, 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,
@@ -1463,14 +1375,14 @@ static yyconst flex_int16_t yy_chk[4060] =
13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
13, 13, 13, 13, 13, 13, 13, 13, 18, 24,
- 18, 24, 168, 29, 58, 29, 74, 74, 935, 30,
- 18, 30, 24, 29, 18, 18, 18, 18, 31, 30,
- 31, 31, 32, 191, 32, 32, 48, 162, 48, 67,
- 67, 168, 67, 246, 162, 246, 48, 75, 74, 75,
- 141, 58, 75, 75, 75, 75, 167, 176, 177, 24,
- 24, 24, 191, 29, 253, 29, 253, 105, 105, 30,
- 105, 30, 116, 116, 116, 116, 294, 74, 294, 31,
- 141, 58, 323, 32, 323, 934, 167, 176, 177, 18,
+ 18, 24, 155, 30, 155, 30, 31, 202, 31, 31,
+ 18, 64, 24, 30, 18, 18, 18, 18, 32, 43,
+ 32, 32, 53, 48, 53, 48, 167, 61, 61, 53,
+ 61, 101, 43, 48, 73, 73, 202, 73, 81, 261,
+ 81, 261, 43, 81, 81, 81, 81, 43, 64, 24,
+ 24, 24, 170, 30, 958, 30, 31, 31, 31, 170,
+ 957, 101, 43, 111, 111, 268, 111, 268, 32, 32,
+ 32, 43, 53, 53, 53, 956, 43, 167, 64, 18,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
@@ -1481,15 +1393,15 @@ static yyconst flex_int16_t yy_chk[4060] =
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 33, 33, 39, 33, 39, 34,
- 34, 33, 34, 182, 41, 42, 34, 333, 43, 181,
-
- 33, 41, 42, 186, 333, 34, 203, 203, 203, 203,
- 325, 43, 325, 181, 41, 42, 179, 187, 179, 188,
- 314, 43, 179, 182, 41, 42, 43, 33, 194, 41,
- 42, 199, 34, 186, 33, 33, 39, 33, 39, 34,
- 34, 43, 34, 181, 41, 42, 179, 187, 179, 188,
- 43, 179, 933, 41, 42, 43, 33, 194, 41, 42,
- 199, 34, 932, 33, 314, 39, 931, 39, 34, 35,
+ 34, 33, 34, 147, 41, 42, 34, 49, 44, 49,
+
+ 33, 41, 42, 175, 308, 34, 308, 49, 274, 274,
+ 50, 44, 50, 184, 41, 42, 122, 122, 122, 122,
+ 50, 44, 185, 147, 41, 42, 44, 33, 207, 41,
+ 42, 955, 34, 175, 33, 33, 39, 33, 39, 34,
+ 34, 44, 34, 184, 41, 42, 334, 49, 334, 49,
+ 44, 954, 185, 41, 42, 44, 33, 207, 41, 42,
+ 50, 34, 50, 33, 336, 39, 336, 39, 34, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
@@ -1499,390 +1411,444 @@ static yyconst flex_int16_t yy_chk[4060] =
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
35, 35, 35, 35, 35, 35, 35, 35, 35, 35,
- 35, 35, 35, 40, 44, 40, 63, 63, 193, 63,
- 122, 122, 347, 63, 183, 76, 76, 44, 76, 125,
- 125, 348, 76, 350, 195, 132, 132, 44, 180, 184,
- 190, 76, 44, 409, 409, 183, 180, 76, 193, 930,
- 190, 347, 122, 196, 183, 197, 198, 44, 873, 184,
-
- 348, 125, 350, 40, 195, 40, 44, 132, 180, 184,
- 190, 44, 236, 189, 183, 244, 180, 189, 235, 76,
- 190, 122, 258, 196, 872, 197, 198, 278, 184, 871,
- 125, 290, 40, 291, 40, 59, 132, 63, 228, 228,
- 192, 228, 236, 189, 260, 244, 76, 189, 232, 232,
- 192, 232, 258, 192, 59, 235, 59, 278, 59, 249,
- 249, 290, 249, 291, 59, 870, 249, 59, 59, 59,
- 192, 59, 59, 59, 260, 260, 869, 59, 298, 298,
- 192, 298, 192, 868, 59, 235, 59, 867, 59, 319,
- 320, 866, 239, 239, 59, 239, 865, 59, 59, 59,
-
- 59, 59, 59, 864, 240, 240, 59, 240, 59, 239,
- 239, 239, 239, 241, 241, 863, 241, 261, 261, 319,
- 320, 240, 240, 240, 240, 242, 242, 352, 242, 343,
- 241, 241, 241, 241, 354, 239, 305, 305, 305, 305,
- 249, 344, 242, 242, 242, 242, 346, 862, 355, 261,
- 269, 269, 349, 269, 241, 357, 352, 269, 353, 343,
- 346, 356, 353, 354, 239, 242, 269, 358, 861, 349,
- 359, 344, 269, 360, 359, 361, 346, 355, 261, 362,
- 364, 366, 349, 367, 241, 357, 368, 369, 353, 346,
- 356, 371, 353, 372, 371, 242, 368, 358, 349, 374,
-
- 359, 375, 360, 359, 269, 361, 415, 415, 362, 364,
- 366, 400, 367, 400, 614, 614, 368, 369, 402, 860,
- 402, 371, 859, 372, 371, 368, 858, 387, 374, 394,
- 375, 269, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 387, 394, 404,
- 307, 404, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 370, 373, 390, 390,
- 370, 390, 395, 396, 373, 370, 379, 379, 379, 379,
-
- 398, 406, 430, 406, 430, 390, 390, 390, 390, 408,
- 410, 857, 423, 411, 411, 856, 370, 373, 448, 855,
- 370, 395, 854, 396, 373, 370, 376, 425, 376, 428,
- 398, 376, 376, 393, 393, 853, 393, 376, 376, 408,
- 410, 410, 423, 376, 376, 411, 429, 448, 376, 411,
- 393, 393, 393, 393, 852, 376, 376, 425, 376, 428,
- 851, 376, 376, 420, 420, 420, 420, 376, 376, 432,
- 847, 432, 376, 376, 411, 846, 429, 376, 412, 412,
- 792, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
-
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 791, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 412, 412, 412, 412, 412, 412, 412, 412,
- 412, 412, 413, 413, 445, 446, 441, 433, 434, 435,
- 438, 439, 436, 442, 449, 459, 450, 498, 790, 498,
- 440, 443, 789, 433, 434, 436, 441, 435, 451, 443,
- 439, 788, 438, 442, 445, 446, 413, 413, 414, 414,
-
- 414, 414, 440, 449, 459, 440, 450, 414, 414, 414,
- 414, 414, 414, 433, 434, 436, 441, 435, 451, 443,
- 439, 438, 452, 442, 462, 453, 454, 455, 456, 787,
- 458, 440, 414, 414, 440, 460, 786, 414, 414, 414,
- 414, 414, 414, 444, 463, 464, 465, 467, 444, 444,
- 444, 444, 452, 462, 444, 453, 454, 455, 456, 444,
- 458, 466, 469, 444, 470, 460, 444, 785, 444, 471,
- 784, 444, 472, 463, 473, 464, 465, 467, 444, 444,
- 444, 444, 474, 475, 444, 476, 477, 478, 479, 444,
- 466, 480, 469, 444, 470, 444, 482, 444, 483, 471,
-
- 444, 481, 472, 484, 473, 485, 486, 481, 487, 488,
- 508, 489, 474, 475, 490, 476, 477, 478, 479, 491,
- 492, 480, 493, 494, 783, 495, 482, 483, 497, 782,
- 496, 481, 484, 496, 496, 485, 486, 481, 487, 488,
- 489, 501, 504, 501, 490, 503, 503, 505, 503, 491,
- 492, 523, 493, 494, 495, 506, 499, 499, 497, 499,
- 496, 510, 496, 496, 502, 502, 600, 502, 600, 613,
- 613, 613, 504, 499, 499, 499, 499, 505, 615, 615,
- 523, 502, 502, 502, 502, 506, 601, 601, 780, 601,
- 508, 510, 511, 511, 773, 511, 511, 511, 511, 511,
-
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 514, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
- 511, 511, 511, 511, 511, 511, 512, 512, 520, 514,
- 525, 527, 516, 516, 532, 526, 528, 770, 521, 522,
- 526, 758, 607, 607, 529, 607, 531, 528, 525, 529,
-
- 525, 693, 532, 693, 744, 527, 530, 609, 520, 531,
- 512, 512, 513, 513, 513, 513, 516, 516, 521, 522,
- 526, 513, 513, 513, 513, 513, 513, 528, 525, 529,
- 525, 535, 532, 530, 527, 733, 539, 533, 545, 531,
- 609, 534, 533, 704, 535, 546, 545, 536, 537, 539,
- 703, 513, 513, 513, 513, 513, 513, 517, 517, 517,
- 517, 534, 530, 536, 537, 538, 517, 517, 517, 517,
- 517, 517, 533, 540, 535, 546, 545, 699, 550, 539,
- 542, 547, 551, 538, 541, 553, 543, 544, 554, 555,
- 556, 534, 557, 536, 537, 540, 517, 517, 517, 517,
-
- 517, 517, 542, 541, 698, 542, 543, 544, 550, 557,
- 547, 551, 558, 538, 553, 557, 560, 554, 559, 555,
- 556, 563, 606, 564, 540, 565, 566, 692, 569, 570,
- 574, 542, 572, 541, 542, 573, 543, 544, 576, 557,
- 577, 578, 558, 579, 581, 557, 560, 559, 580, 582,
- 583, 563, 564, 584, 565, 586, 566, 569, 587, 570,
- 574, 572, 588, 590, 573, 589, 591, 576, 592, 594,
- 577, 578, 593, 579, 581, 595, 596, 580, 582, 583,
- 602, 595, 597, 584, 603, 586, 604, 616, 587, 611,
- 611, 618, 588, 590, 589, 591, 621, 624, 592, 594,
-
- 619, 593, 606, 686, 622, 595, 596, 701, 701, 602,
- 595, 623, 597, 626, 603, 604, 622, 616, 625, 624,
- 618, 621, 628, 611, 611, 612, 612, 612, 612, 623,
- 619, 625, 627, 626, 612, 612, 612, 612, 612, 612,
- 628, 627, 629, 631, 630, 632, 622, 682, 624, 629,
- 621, 630, 631, 634, 633, 774, 632, 774, 634, 623,
- 635, 625, 636, 626, 612, 612, 612, 612, 612, 612,
- 628, 627, 633, 636, 633, 637, 639, 640, 638, 629,
- 637, 630, 631, 643, 635, 641, 632, 642, 634, 639,
- 641, 668, 644, 645, 648, 640, 643, 664, 647, 650,
-
- 655, 653, 633, 636, 633, 638, 648, 642, 658, 654,
- 637, 653, 657, 635, 659, 661, 662, 663, 665, 639,
- 641, 644, 666, 645, 648, 640, 643, 647, 667, 650,
- 655, 653, 669, 670, 638, 671, 648, 642, 654, 673,
- 653, 674, 657, 659, 675, 661, 662, 663, 665, 676,
- 679, 666, 678, 680, 681, 683, 684, 685, 667, 687,
- 688, 669, 670, 689, 671, 690, 691, 694, 695, 673,
- 674, 696, 696, 675, 696, 700, 700, 700, 711, 676,
- 679, 678, 680, 707, 681, 683, 684, 685, 709, 687,
- 688, 710, 689, 702, 702, 690, 691, 694, 695, 708,
-
- 707, 712, 711, 709, 708, 713, 716, 710, 714, 718,
- 721, 715, 720, 712, 717, 716, 719, 722, 727, 1147,
- 1147, 734, 718, 652, 720, 727, 724, 713, 721, 723,
- 707, 711, 714, 709, 708, 715, 717, 710, 725, 722,
- 729, 719, 723, 712, 726, 716, 724, 725, 730, 729,
- 728, 734, 718, 735, 720, 727, 713, 728, 721, 730,
- 738, 714, 726, 737, 715, 717, 739, 740, 722, 741,
- 719, 742, 723, 737, 617, 743, 724, 725, 745, 729,
- 746, 747, 735, 748, 749, 750, 752, 728, 751, 730,
- 738, 754, 726, 737, 756, 760, 739, 740, 741, 761,
-
- 742, 762, 765, 737, 743, 767, 771, 776, 745, 776,
- 746, 747, 778, 748, 749, 750, 752, 751, 772, 795,
- 849, 754, 849, 756, 795, 760, 764, 764, 793, 761,
- 762, 764, 765, 794, 764, 767, 771, 764, 768, 768,
- 796, 778, 764, 768, 797, 809, 768, 799, 772, 768,
- 794, 798, 793, 801, 795, 796, 764, 764, 802, 799,
- 797, 764, 800, 803, 764, 804, 806, 764, 768, 768,
- 807, 764, 803, 768, 809, 798, 768, 801, 805, 768,
- 794, 793, 802, 811, 800, 796, 814, 804, 808, 799,
- 797, 805, 810, 812, 610, 816, 806, 817, 608, 818,
-
- 807, 819, 803, 820, 798, 821, 801, 823, 825, 826,
- 828, 802, 811, 800, 832, 814, 804, 833, 808, 834,
- 837, 805, 810, 812, 816, 836, 828, 817, 818, 838,
- 839, 819, 820, 840, 842, 821, 841, 823, 825, 826,
- 828, 835, 598, 844, 832, 835, 833, 845, 835, 834,
- 837, 848, 875, 843, 836, 828, 843, 874, 835, 838,
- 839, 876, 878, 840, 842, 841, 843, 877, 879, 880,
- 883, 835, 844, 881, 884, 835, 845, 885, 835, 886,
- 848, 874, 875, 843, 888, 889, 843, 835, 890, 571,
- 891, 876, 878, 892, 893, 843, 877, 894, 879, 880,
-
- 883, 895, 881, 897, 884, 898, 899, 885, 900, 886,
- 874, 901, 902, 888, 904, 889, 905, 908, 890, 891,
- 906, 909, 910, 892, 893, 911, 912, 894, 913, 915,
- 895, 914, 916, 897, 916, 898, 899, 918, 900, 918,
- 901, 902, 943, 944, 904, 945, 905, 908, 914, 906,
- 946, 909, 910, 947, 911, 912, 948, 913, 915, 949,
- 950, 914, 951, 568, 952, 953, 954, 552, 955, 956,
- 958, 943, 959, 944, 960, 945, 961, 914, 962, 963,
- 946, 964, 965, 947, 967, 969, 948, 970, 971, 949,
- 950, 972, 951, 952, 953, 973, 954, 955, 975, 956,
-
- 958, 959, 976, 960, 978, 961, 977, 979, 962, 963,
- 977, 964, 965, 967, 969, 993, 970, 994, 971, 995,
- 996, 972, 997, 998, 999, 973, 1001, 1002, 975, 1004,
- 1005, 976, 1006, 978, 1007, 977, 1008, 979, 1009, 977,
- 1010, 1012, 1016, 1017, 1018, 993, 1021, 994, 995, 1022,
- 996, 997, 998, 999, 1023, 1031, 1001, 1002, 1004, 1005,
- 1024, 1025, 1006, 1026, 1007, 1028, 1008, 1029, 1009, 1030,
- 1010, 1012, 1016, 1017, 1018, 1021, 1032, 1033, 1034, 1022,
- 1037, 524, 1039, 1041, 1023, 1031, 1044, 1047, 1048, 1024,
- 1025, 1049, 1026, 1050, 1028, 1051, 1029, 1052, 1030, 1053,
-
- 1054, 1055, 1056, 1058, 515, 1059, 1032, 1033, 1034, 1060,
- 1037, 1039, 1061, 1041, 1063, 1067, 1044, 1047, 1048, 1068,
- 1049, 1069, 1070, 1050, 1072, 1051, 1073, 1052, 1074, 1053,
- 1054, 1055, 1056, 1058, 1059, 1075, 1076, 1077, 1060, 1078,
- 1081, 1083, 1061, 1063, 1084, 1067, 1085, 468, 1086, 1068,
- 1069, 1087, 1070, 1088, 1072, 1090, 1073, 1093, 1074, 1094,
- 1097, 437, 1098, 1099, 1102, 1075, 1076, 1077, 1078, 1081,
- 1103, 1083, 1160, 1084, 1160, 419, 1085, 1086, 392, 1189,
- 1087, 1189, 1088, 377, 351, 1090, 341, 1093, 1094, 339,
- 1097, 1098, 1099, 334, 1102, 301, 300, 299, 296, 285,
-
- 1103, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
- 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1108, 1108,
- 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108, 1108,
- 1108, 1108, 1108, 1108, 1108, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109, 1109,
- 1109, 1109, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110,
- 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1110, 1111,
- 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111, 1111,
- 1111, 1111, 1111, 1111, 1111, 1111, 1112, 1112, 1112, 1112,
- 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112, 1112,
-
- 1112, 1112, 1112, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
- 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
+ 35, 35, 35, 40, 634, 40, 54, 189, 54, 69,
+ 69, 188, 69, 54, 80, 80, 69, 82, 82, 188,
+ 82, 189, 128, 128, 82, 278, 278, 131, 131, 953,
+ 138, 138, 359, 82, 187, 190, 194, 634, 195, 82,
+ 187, 188, 191, 201, 196, 345, 80, 192, 196, 188,
+
+ 952, 189, 345, 40, 128, 40, 54, 54, 54, 131,
+ 897, 359, 138, 191, 187, 190, 194, 192, 195, 187,
+ 198, 82, 191, 201, 196, 80, 896, 192, 196, 203,
+ 198, 204, 40, 128, 40, 65, 243, 243, 131, 243,
+ 69, 138, 191, 250, 205, 197, 192, 361, 82, 197,
+ 198, 206, 251, 200, 65, 259, 65, 273, 65, 203,
+ 198, 204, 895, 200, 65, 894, 200, 65, 65, 65,
+ 893, 65, 65, 65, 205, 197, 361, 65, 892, 197,
+ 250, 206, 251, 200, 65, 259, 65, 273, 65, 211,
+ 211, 211, 211, 200, 65, 200, 891, 65, 65, 65,
+
+ 65, 65, 65, 890, 247, 247, 65, 247, 65, 889,
+ 250, 254, 254, 888, 254, 255, 255, 887, 255, 256,
+ 256, 363, 256, 257, 257, 275, 257, 293, 254, 254,
+ 254, 254, 255, 255, 255, 255, 256, 256, 256, 256,
+ 257, 257, 257, 257, 264, 264, 304, 264, 276, 276,
+ 363, 264, 305, 886, 254, 275, 275, 293, 312, 312,
+ 256, 312, 332, 257, 885, 284, 284, 884, 284, 333,
+ 349, 350, 284, 355, 356, 358, 304, 883, 365, 366,
+ 276, 284, 305, 254, 367, 360, 368, 284, 371, 358,
+ 256, 369, 332, 257, 319, 319, 319, 319, 372, 333,
+
+ 349, 350, 360, 355, 356, 358, 364, 365, 366, 276,
+ 364, 373, 381, 367, 374, 360, 368, 371, 358, 284,
+ 418, 369, 418, 882, 420, 264, 420, 422, 372, 422,
+ 881, 360, 391, 391, 391, 391, 364, 424, 880, 424,
+ 364, 373, 381, 374, 376, 378, 284, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 370, 376, 378, 321, 370, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+ 321, 321, 321, 321, 321, 321, 321, 321, 321, 321,
+
+ 321, 379, 370, 380, 383, 370, 382, 383, 384, 385,
+ 382, 879, 386, 380, 387, 382, 385, 878, 405, 427,
+ 427, 412, 413, 433, 433, 448, 414, 448, 639, 639,
+ 379, 416, 426, 380, 383, 877, 382, 383, 384, 385,
+ 382, 386, 380, 387, 531, 382, 385, 388, 405, 388,
+ 412, 413, 388, 388, 408, 408, 414, 408, 388, 388,
+ 428, 416, 426, 876, 388, 388, 875, 411, 411, 388,
+ 411, 408, 408, 408, 408, 441, 388, 388, 443, 388,
+ 429, 429, 388, 388, 411, 411, 411, 411, 388, 388,
+ 428, 428, 446, 388, 388, 431, 431, 447, 388, 438,
+
+ 438, 438, 438, 464, 450, 441, 450, 465, 443, 469,
+ 470, 521, 429, 521, 871, 471, 429, 524, 870, 524,
+ 526, 526, 446, 526, 531, 818, 625, 447, 625, 431,
+ 431, 626, 626, 464, 626, 632, 632, 465, 632, 469,
+ 470, 429, 430, 430, 471, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 817, 430, 430, 430,
+
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 430, 430, 430, 430,
+ 430, 430, 430, 430, 430, 430, 432, 432, 432, 432,
+ 451, 452, 453, 457, 456, 432, 432, 432, 432, 432,
+ 432, 454, 459, 460, 472, 461, 451, 452, 473, 458,
+ 453, 474, 457, 461, 454, 816, 456, 475, 476, 477,
+ 432, 432, 459, 460, 478, 432, 432, 432, 432, 432,
+ 432, 458, 480, 472, 458, 482, 451, 452, 473, 481,
+ 453, 474, 457, 461, 454, 456, 486, 475, 476, 477,
+ 484, 487, 459, 460, 478, 815, 485, 488, 489, 814,
+
+ 458, 491, 480, 458, 462, 482, 492, 493, 481, 462,
+ 462, 462, 462, 494, 495, 462, 486, 496, 497, 484,
+ 462, 487, 498, 499, 462, 485, 488, 462, 489, 462,
+ 500, 491, 462, 501, 502, 503, 492, 493, 505, 462,
+ 462, 462, 462, 494, 495, 462, 506, 496, 497, 504,
+ 462, 507, 498, 499, 462, 504, 462, 508, 462, 509,
+ 500, 462, 510, 501, 502, 503, 511, 513, 505, 512,
+ 514, 515, 516, 517, 519, 506, 518, 519, 519, 504,
+ 507, 520, 638, 638, 638, 504, 546, 508, 527, 509,
+ 528, 529, 510, 533, 543, 544, 511, 513, 512, 813,
+
+ 514, 515, 516, 517, 519, 518, 519, 519, 631, 522,
+ 522, 520, 522, 525, 525, 546, 525, 719, 527, 719,
+ 528, 529, 812, 533, 543, 544, 522, 522, 522, 522,
+ 525, 525, 525, 525, 534, 534, 811, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 631, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+
+ 534, 534, 534, 534, 534, 534, 534, 534, 534, 534,
+ 534, 534, 534, 534, 534, 534, 534, 534, 535, 535,
+ 545, 548, 550, 810, 539, 539, 549, 552, 557, 551,
+ 554, 549, 552, 553, 809, 559, 558, 640, 640, 548,
+ 551, 548, 556, 554, 727, 727, 550, 556, 557, 558,
+ 545, 559, 535, 535, 536, 536, 536, 536, 539, 539,
+ 553, 549, 552, 536, 536, 536, 536, 536, 536, 548,
+ 551, 548, 555, 554, 562, 550, 560, 556, 557, 558,
+ 800, 559, 800, 563, 569, 561, 566, 562, 564, 553,
+ 555, 571, 560, 536, 536, 536, 536, 536, 536, 540,
+
+ 540, 540, 540, 561, 565, 563, 566, 564, 540, 540,
+ 540, 540, 540, 540, 569, 567, 568, 562, 570, 572,
+ 555, 571, 560, 575, 568, 808, 565, 576, 577, 565,
+ 578, 579, 580, 561, 563, 567, 566, 564, 540, 540,
+ 540, 540, 540, 540, 582, 584, 581, 570, 572, 583,
+ 587, 806, 588, 575, 568, 565, 576, 577, 565, 578,
+ 589, 579, 580, 581, 590, 567, 594, 595, 599, 581,
+ 799, 597, 598, 601, 582, 584, 602, 603, 583, 604,
+ 587, 588, 605, 606, 796, 607, 608, 609, 611, 589,
+ 612, 613, 615, 581, 590, 594, 614, 595, 599, 581,
+
+ 597, 598, 601, 616, 617, 619, 602, 603, 618, 604,
+ 620, 605, 621, 606, 607, 608, 620, 609, 611, 622,
+ 612, 613, 615, 627, 628, 614, 629, 636, 636, 641,
+ 651, 643, 616, 646, 617, 619, 647, 618, 644, 784,
+ 620, 669, 621, 650, 652, 620, 770, 660, 647, 622,
+ 651, 648, 627, 652, 628, 629, 650, 649, 646, 641,
+ 643, 636, 636, 637, 637, 637, 637, 653, 644, 648,
+ 669, 660, 637, 637, 637, 637, 637, 637, 647, 649,
+ 651, 654, 655, 652, 656, 653, 650, 646, 654, 655,
+ 657, 658, 659, 656, 728, 728, 665, 659, 663, 648,
+
+ 660, 657, 637, 637, 637, 637, 637, 637, 649, 658,
+ 661, 658, 662, 664, 665, 653, 667, 662, 654, 655,
+ 668, 661, 670, 656, 666, 663, 664, 659, 671, 666,
+ 672, 657, 674, 668, 676, 679, 667, 761, 680, 658,
+ 681, 658, 683, 687, 665, 679, 685, 662, 688, 689,
+ 691, 661, 670, 692, 663, 693, 664, 671, 695, 666,
+ 672, 674, 696, 668, 676, 679, 667, 680, 697, 699,
+ 681, 700, 683, 687, 679, 685, 701, 702, 688, 689,
+ 691, 704, 692, 705, 707, 693, 706, 695, 709, 710,
+ 711, 696, 713, 714, 733, 715, 716, 697, 717, 699,
+
+ 700, 720, 721, 722, 722, 701, 722, 702, 730, 736,
+ 704, 733, 734, 705, 707, 706, 737, 734, 709, 710,
+ 711, 735, 713, 714, 715, 736, 716, 739, 717, 740,
+ 738, 720, 721, 726, 726, 726, 735, 741, 743, 745,
+ 737, 733, 738, 744, 747, 742, 746, 734, 748, 739,
+ 729, 750, 749, 740, 742, 736, 744, 752, 746, 751,
+ 743, 741, 747, 725, 745, 749, 735, 753, 751, 737,
+ 748, 750, 738, 754, 753, 752, 755, 763, 739, 764,
+ 754, 765, 740, 756, 742, 755, 744, 763, 746, 743,
+ 741, 766, 747, 745, 756, 749, 767, 768, 751, 748,
+
+ 769, 750, 771, 772, 753, 752, 773, 763, 774, 764,
+ 754, 765, 775, 776, 778, 755, 777, 763, 780, 724,
+ 782, 766, 786, 787, 756, 767, 768, 788, 791, 769,
+ 793, 797, 771, 772, 718, 798, 773, 802, 774, 802,
+ 804, 712, 775, 776, 778, 777, 790, 790, 780, 782,
+ 820, 790, 786, 787, 790, 819, 788, 790, 791, 708,
+ 793, 797, 790, 794, 794, 798, 823, 820, 794, 804,
+ 821, 794, 824, 822, 794, 821, 790, 790, 825, 819,
+ 826, 790, 823, 827, 790, 828, 831, 790, 822, 830,
+ 825, 790, 832, 794, 794, 833, 824, 820, 794, 831,
+
+ 834, 794, 826, 835, 794, 821, 829, 827, 819, 828,
+ 838, 830, 823, 836, 841, 829, 694, 840, 822, 842,
+ 825, 843, 832, 844, 833, 824, 845, 847, 849, 831,
+ 834, 826, 835, 850, 852, 856, 827, 857, 828, 838,
+ 830, 858, 690, 836, 841, 829, 840, 860, 842, 865,
+ 852, 843, 844, 861, 862, 859, 845, 847, 849, 859,
+ 863, 864, 859, 850, 852, 856, 857, 866, 684, 868,
+ 869, 858, 859, 872, 867, 678, 860, 867, 865, 852,
+ 873, 898, 873, 861, 862, 859, 903, 867, 899, 859,
+ 863, 864, 859, 900, 901, 902, 905, 866, 868, 869,
+
+ 906, 859, 872, 907, 867, 898, 908, 867, 910, 911,
+ 912, 642, 913, 914, 915, 903, 867, 916, 899, 917,
+ 919, 920, 921, 900, 901, 902, 905, 922, 635, 923,
+ 906, 924, 926, 907, 898, 927, 908, 910, 928, 911,
+ 912, 913, 930, 914, 915, 931, 932, 916, 917, 933,
+ 919, 920, 921, 934, 935, 937, 936, 922, 923, 938,
+ 924, 938, 926, 965, 940, 927, 940, 928, 966, 967,
+ 968, 969, 930, 936, 970, 931, 932, 971, 933, 972,
+ 973, 974, 934, 935, 937, 975, 936, 976, 978, 633,
+ 979, 980, 965, 981, 982, 983, 984, 985, 966, 967,
+
+ 968, 969, 936, 987, 970, 989, 990, 971, 972, 973,
+ 991, 974, 992, 993, 975, 995, 999, 976, 978, 979,
+ 980, 996, 981, 998, 982, 983, 984, 985, 1015, 997,
+ 1013, 1014, 987, 997, 989, 990, 1016, 1017, 1019, 1020,
+ 991, 1022, 992, 993, 1023, 995, 999, 1024, 1025, 1026,
+ 996, 1027, 998, 1028, 1030, 1034, 1035, 1015, 997, 1036,
+ 1013, 1014, 997, 1039, 1040, 1016, 1017, 1041, 1019, 1020,
+ 1022, 1042, 1043, 1023, 1044, 1046, 1047, 1024, 1025, 1026,
+ 1048, 1027, 1049, 1028, 1030, 1034, 1035, 1050, 1053, 1036,
+ 1055, 1057, 1039, 1060, 1040, 1063, 1064, 1041, 1065, 1066,
+
+ 1042, 1043, 1067, 1044, 1046, 1068, 1047, 1069, 1070, 1072,
+ 1048, 1073, 1049, 1074, 1075, 623, 1077, 1050, 1053, 1055,
+ 1081, 1057, 1082, 1060, 1083, 1063, 1064, 1065, 1084, 1066,
+ 1086, 1087, 1067, 1088, 1089, 1068, 1090, 1069, 1070, 1072,
+ 1073, 1093, 1074, 1095, 1075, 1077, 1096, 1097, 1098, 1100,
+ 1081, 1103, 1082, 1083, 1105, 596, 1106, 1107, 1084, 1109,
+ 1086, 1087, 1110, 1088, 1089, 1090, 1157, 1157, 593, 1173,
+ 1093, 1173, 1206, 1095, 1206, 1096, 1097, 1098, 547, 1100,
+ 538, 1103, 1166, 1166, 1105, 1106, 1107, 1166, 490, 1109,
+ 467, 466, 1110, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
+
1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
- 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115, 1115, 1115,
+ 1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
- 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1116,
+ 1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116,
1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
- 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
- 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118,
+ 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117,
+ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
+ 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118,
1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119,
- 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1119, 1119, 1119,
1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
- 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
- 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121,
+ 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
+ 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
+ 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
+ 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
- 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1122,
+ 1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
- 1122, 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
+ 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
- 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1125, 1125, 1125,
+ 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
+ 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
+ 1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125,
1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
- 1125, 1125, 1125, 1125, 1126, 1126, 282, 1126, 1126, 274,
- 273, 272, 1126, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
- 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128,
- 1128, 271, 1128, 1128, 268, 266, 265, 1128, 1129, 256,
+ 1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
+ 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
+
+ 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129,
1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
- 1129, 1129, 1129, 1129, 1129, 1130, 255, 1130, 1130, 1130,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130,
1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
- 1130, 1130, 1131, 1131, 1131, 252, 1131, 1131, 251, 234,
-
- 230, 1131, 1132, 227, 1132, 1132, 1132, 1132, 1132, 1132,
- 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1133,
- 226, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
- 1133, 1133, 1133, 1133, 1133, 1133, 1134, 1134, 1134, 1134,
- 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 222, 1134,
- 208, 1134, 1134, 1135, 207, 206, 1135, 1135, 1135, 1135,
- 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
- 1136, 1136, 202, 1136, 1136, 175, 174, 172, 1136, 1137,
- 170, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137,
- 1137, 1137, 1137, 1137, 1137, 1137, 1138, 169, 1138, 1138,
-
+ 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
+ 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
+ 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
+ 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+
+ 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
+ 1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
+ 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
+ 1134, 1134, 1134, 1134, 1135, 455, 1135, 437, 1135, 1135,
+ 1213, 1213, 1213, 1135, 1136, 1136, 1136, 1136, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
+ 1136, 1136, 1136, 1136, 1137, 410, 1137, 389, 1137, 1137,
+ 1167, 1167, 362, 1137, 1138, 1167, 1138, 1138, 1138, 1138,
1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
- 166, 1138, 1138, 1139, 165, 1139, 164, 158, 1139, 1139,
- 1139, 1139, 1139, 155, 154, 153, 1139, 1140, 152, 1140,
- 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
- 1140, 1140, 1140, 1140, 1141, 1141, 144, 1141, 1141, 143,
- 139, 136, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+ 1138, 1138, 1138, 1138, 1138, 1139, 353, 1139, 1139, 1139,
+
+ 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
+ 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140, 351, 1140,
+ 346, 1140, 1140, 344, 343, 328, 1140, 1141, 315, 1141,
+ 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
+ 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142,
1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
- 1143, 131, 1143, 129, 1143, 1143, 1143, 1143, 1143, 1143,
- 1143, 1143, 1143, 124, 1143, 1143, 1143, 1144, 120, 1144,
- 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
+ 1142, 1142, 1142, 314, 1142, 313, 1142, 1142, 1142, 1143,
+ 310, 1143, 1143, 296, 1143, 1143, 1143, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 289, 1143, 288, 1143, 1143, 1143,
+ 1144, 287, 286, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
- 1144, 1144, 1144, 1144, 1145, 114, 1145, 1145, 1145, 1145,
- 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
- 1145, 1146, 1146, 109, 107, 1146, 1146, 1148, 106, 1148,
- 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
- 1148, 1148, 1148, 1148, 1149, 103, 1149, 1149, 1149, 101,
+ 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
+ 1144, 1145, 283, 1145, 281, 1145, 1145, 280, 271, 270,
+ 1145, 1146, 267, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+ 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+ 1146, 1146, 1147, 266, 1147, 1147, 1147, 1147, 1147, 1147,
+ 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 249,
+ 1147, 1147, 1147, 1148, 245, 1148, 241, 1148, 239, 1148,
+ 1148, 1148, 1148, 238, 1148, 1148, 236, 235, 234, 1148,
+ 1149, 230, 1149, 1149, 1149, 216, 1149, 1149, 1149, 1149,
1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
- 1149, 1150, 1150, 99, 1150, 1150, 98, 97, 94, 1150,
- 1151, 91, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
- 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 90, 1152,
- 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152, 1152,
- 1152, 1152, 1152, 1152, 1153, 1153, 88, 86, 84, 1153,
- 1154, 1154, 80, 78, 72, 1154, 1155, 1155, 1155, 1155,
+ 1149, 1150, 215, 1150, 214, 1150, 1150, 210, 183, 182,
+ 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1152, 180, 1152, 1152, 1152, 1152, 1152, 178,
+ 1152, 1152, 1152, 1152, 1152, 1152, 1152, 177, 1152, 174,
+ 1152, 1152, 1152, 1153, 173, 1153, 172, 1153, 1153, 1153,
+ 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 168, 166,
+ 164, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1154, 1154, 1155, 161, 1155, 1155, 1155,
+
1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
- 1155, 1155, 1155, 1156, 1156, 71, 1156, 1156, 68, 65,
- 60, 1156, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
- 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1158,
- 57, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
- 1158, 1158, 1158, 53, 1158, 1158, 1159, 49, 1159, 1159,
- 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
- 1159, 1159, 1159, 1161, 1161, 16, 1161, 1161, 15, 0,
-
- 0, 1161, 1161, 1162, 0, 1162, 1162, 1162, 1162, 1162,
- 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
- 1163, 0, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
- 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1164, 0, 1164,
+ 1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156, 160, 159,
+ 158, 1156, 1156, 1158, 150, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 1158, 1158, 1159, 149, 145, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 144,
+ 1159, 142, 1159, 1160, 137, 1160, 1160, 1160, 1160, 135,
+ 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
+ 1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
+ 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 130,
+
+ 1161, 126, 1161, 1161, 1161, 1162, 120, 1162, 1162, 1162,
+ 115, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+ 113, 112, 109, 1162, 1162, 1162, 1163, 107, 1163, 105,
+ 1163, 1163, 104, 103, 99, 1163, 1164, 96, 1164, 1164,
1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
- 1164, 1164, 1164, 1164, 1165, 0, 1165, 1165, 1165, 1165,
+ 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165, 95, 1165,
1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
- 1165, 1166, 0, 1166, 1166, 1166, 1166, 1166, 1166, 1166,
- 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1166, 1167, 1167,
- 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167, 1167,
-
- 0, 1167, 0, 1167, 1167, 1168, 1168, 1168, 1168, 1168,
+ 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1168, 1168,
1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
- 1168, 1168, 1169, 0, 0, 1169, 1169, 1169, 1169, 1169,
- 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1169, 1170,
- 1170, 0, 1170, 1170, 0, 0, 0, 1170, 1171, 0,
- 1171, 0, 0, 1171, 1171, 1171, 1171, 1171, 0, 0,
- 0, 1171, 1172, 0, 1172, 1172, 1172, 1172, 1172, 1172,
- 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1173,
- 1173, 0, 1173, 1173, 0, 0, 0, 1173, 1174, 1174,
- 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174,
-
- 1174, 1174, 1174, 1174, 1174, 1175, 0, 1175, 0, 1175,
- 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 0, 1175,
- 1175, 1175, 1176, 0, 1176, 1176, 1176, 1176, 1176, 1176,
- 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1177,
- 0, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
- 1177, 1177, 1177, 1177, 1177, 1177, 1178, 1178, 0, 0,
- 1178, 1178, 1179, 0, 1179, 1179, 1179, 1179, 1179, 1179,
- 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1180,
- 0, 1180, 1180, 1180, 0, 1180, 1180, 1180, 1180, 1180,
- 1180, 1180, 1180, 1180, 1180, 1180, 1181, 0, 1181, 1181,
+ 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169,
+
+ 92, 1169, 90, 1169, 1169, 86, 84, 78, 1169, 1170,
+ 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
+ 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
+ 1171, 77, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
+ 1171, 1171, 1171, 1171, 1171, 1171, 1171, 74, 1171, 1171,
+ 1171, 1172, 71, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
+ 1172, 1172, 1174, 66, 1174, 63, 1174, 1174, 59, 55,
+ 16, 1174, 15, 1174, 1175, 0, 1175, 1175, 1175, 1175,
+ 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
+
+ 1175, 1175, 1175, 1175, 1175, 1176, 0, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
+ 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
+ 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 0, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179,
+ 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
+ 1179, 1179, 1179, 0, 1179, 0, 1179, 1179, 1179, 1180,
+ 0, 1180, 1180, 0, 1180, 1180, 1180, 1180, 1180, 1180,
+ 1180, 1180, 1180, 1180, 0, 1180, 0, 1180, 1180, 1180,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
- 1181, 1181, 1181, 1182, 0, 1182, 1182, 1182, 1182, 1182,
+ 1181, 1182, 0, 0, 1182, 1182, 1182, 1182, 1182, 1182,
1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
- 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183,
- 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1184, 1184, 0,
- 1184, 1184, 0, 0, 0, 1184, 1185, 1185, 0, 1185,
- 1185, 0, 0, 0, 1185, 1186, 1186, 1186, 1186, 1186,
- 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186, 1186,
- 1186, 1186, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
- 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1188,
-
- 0, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188, 1188,
- 1188, 1188, 1188, 0, 1188, 1188, 1190, 1190, 0, 1190,
- 1190, 0, 0, 0, 1190, 1190, 1191, 0, 1191, 1191,
+ 1182, 1182, 1183, 0, 1183, 0, 1183, 1183, 0, 0,
+ 0, 1183, 1184, 0, 1184, 0, 1184, 0, 1184, 1184,
+ 1184, 1184, 0, 1184, 1184, 0, 0, 0, 1184, 1185,
+ 0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+
+ 1186, 0, 1186, 0, 1186, 1186, 0, 0, 0, 1186,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
+ 1187, 1188, 0, 1188, 1188, 1188, 1188, 1188, 0, 1188,
+ 1188, 1188, 1188, 1188, 1188, 1188, 0, 1188, 0, 1188,
+ 1188, 1188, 1189, 0, 1189, 0, 1189, 1189, 1189, 1189,
+ 1189, 1189, 1189, 1189, 1189, 1189, 1189, 0, 0, 0,
+ 1189, 1189, 1189, 1190, 0, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
+ 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191,
+
1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
- 1191, 1191, 1191, 1192, 0, 1192, 1192, 1192, 1192, 1192,
- 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
- 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
- 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1194, 1194, 1194,
- 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,
- 1194, 1194, 1194, 1194, 1195, 1195, 1195, 1196, 1196, 0,
-
- 1196, 1196, 0, 0, 0, 1196, 1197, 0, 1197, 1197,
- 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,
- 1197, 1197, 1197, 1198, 0, 1198, 1198, 1198, 1198, 1198,
+ 1191, 1191, 1191, 1191, 1191, 1192, 1192, 0, 0, 0,
+ 1192, 1192, 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
+ 1193, 1193, 1193, 1194, 0, 0, 1194, 1194, 1194, 1194,
+ 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 0, 1194,
+ 0, 1194, 1195, 0, 1195, 1195, 1195, 1195, 0, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
+ 1196, 1196, 1196, 1196,