summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS17
-rw-r--r--COPYING2
-rw-r--r--ChangeLog7396
-rw-r--r--FlexLexer.h26
-rw-r--r--INSTALL69
-rw-r--r--Makefile.am55
-rw-r--r--Makefile.in579
-rw-r--r--NEWS60
-rw-r--r--README18
-rw-r--r--README.cvs (renamed from README.cvs-snapshot)34
-rw-r--r--aclocal.m43133
-rw-r--r--buf.c20
-rw-r--r--ccl.c111
-rwxr-xr-xcompile142
-rw-r--r--conf.in109
-rwxr-xr-xconfig.guess606
-rwxr-xr-xconfig.sub203
-rwxr-xr-xconfigure3312
-rw-r--r--configure.in100
-rwxr-xr-xdepcomp154
-rw-r--r--dfa.c19
-rw-r--r--doc/Makefile.am17
-rw-r--r--doc/Makefile.in283
-rw-r--r--doc/flex.126
-rw-r--r--doc/flex.info471
-rw-r--r--doc/flex.info-16595
-rw-r--r--doc/flex.info-2bin52131 -> 52175 bytes
-rw-r--r--doc/flex.info-31371
-rw-r--r--doc/flex.info-41255
-rw-r--r--doc/flex.info-51330
-rw-r--r--doc/flex.info-61134
-rw-r--r--doc/flex.info-7601
-rw-r--r--doc/flex.pdfbin0 -> 697748 bytes
-rw-r--r--doc/flex.texi403
-rwxr-xr-xdoc/mdate-sh84
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/texinfo.tex6210
-rw-r--r--doc/version.texi8
-rw-r--r--examples/Makefile.in182
-rw-r--r--examples/fastwc/Makefile.in90
-rw-r--r--examples/manual/Makefile.in91
-rw-r--r--filter.c62
-rw-r--r--flex.skl152
-rw-r--r--flex.spec54
-rw-r--r--flex.spec.in54
-rw-r--r--flexdef.h57
-rw-r--r--flexint.h2
-rw-r--r--gen.c38
-rwxr-xr-xinstall-sh477
-rw-r--r--m4/Makefile.in89
-rw-r--r--main.c46
-rw-r--r--misc.c20
-rwxr-xr-xmissing146
-rw-r--r--nfa.c8
-rw-r--r--parse.c3191
-rw-r--r--parse.h167
-rw-r--r--parse.y208
-rw-r--r--po/Makevars2
-rw-r--r--po/ca.gmobin21178 -> 21437 bytes
-rw-r--r--po/ca.po646
-rw-r--r--po/da.gmobin10963 -> 10860 bytes
-rw-r--r--po/da.po282
-rw-r--r--po/de.gmobin13840 -> 13729 bytes
-rw-r--r--po/de.po277
-rw-r--r--po/es.gmobin12927 -> 12824 bytes
-rw-r--r--po/es.po292
-rw-r--r--po/flex.pot273
-rw-r--r--po/fr.gmobin21257 -> 21148 bytes
-rw-r--r--po/fr.po283
-rw-r--r--po/ga.gmobin20575 -> 20482 bytes
-rw-r--r--po/ga.po373
-rw-r--r--po/ko.gmobin10468 -> 10345 bytes
-rw-r--r--po/ko.po292
-rw-r--r--po/nl.gmobin20462 -> 20437 bytes
-rw-r--r--po/nl.po431
-rw-r--r--po/pl.gmobin20533 -> 20427 bytes
-rw-r--r--po/pl.po283
-rw-r--r--po/pt_BR.gmobin13547 -> 13441 bytes
-rw-r--r--po/pt_BR.po277
-rw-r--r--po/ro.gmobin20779 -> 20675 bytes
-rw-r--r--po/ro.po283
-rw-r--r--po/ru.gmobin12509 -> 12396 bytes
-rw-r--r--po/ru.po277
-rw-r--r--po/sv.gmobin20370 -> 20266 bytes
-rw-r--r--po/sv.po281
-rw-r--r--po/tr.gmobin20814 -> 20703 bytes
-rw-r--r--po/tr.po283
-rw-r--r--po/vi.gmobin23124 -> 23419 bytes
-rw-r--r--po/vi.po662
-rw-r--r--po/zh_CN.gmobin4062 -> 3967 bytes
-rw-r--r--po/zh_CN.po277
-rw-r--r--regex.c2
-rw-r--r--scan.c5392
-rw-r--r--scan.l311
-rw-r--r--scanflags.c66
-rw-r--r--scanopt.c17
-rw-r--r--skel.c156
-rw-r--r--sym.c1
-rw-r--r--tables.c14
-rw-r--r--tests/Makefile.am16
-rw-r--r--tests/Makefile.in199
-rw-r--r--tests/TEMPLATE/Makefile.am2
-rw-r--r--tests/TEMPLATE/Makefile.in96
-rwxr-xr-xtests/create-test19
-rw-r--r--tests/test-alloc-extra/Makefile.am49
-rw-r--r--tests/test-alloc-extra/Makefile.in362
-rw-r--r--tests/test-alloc-extra/scanner.l123
-rw-r--r--tests/test-alloc-extra/test.input795
-rw-r--r--tests/test-array-nr/Makefile.am2
-rw-r--r--tests/test-array-nr/Makefile.in95
-rw-r--r--tests/test-array-r/Makefile.am2
-rw-r--r--tests/test-array-r/Makefile.in95
-rw-r--r--tests/test-basic-nr/Makefile.am2
-rw-r--r--tests/test-basic-nr/Makefile.in95
-rw-r--r--tests/test-basic-r/Makefile.am2
-rw-r--r--tests/test-basic-r/Makefile.in95
-rw-r--r--tests/test-bison-nr/Makefile.am2
-rw-r--r--tests/test-bison-nr/Makefile.in96
-rw-r--r--tests/test-bison-yylloc/Makefile.am2
-rw-r--r--tests/test-bison-yylloc/Makefile.in96
-rw-r--r--tests/test-bison-yylval/Makefile.am2
-rw-r--r--tests/test-bison-yylval/Makefile.in96
-rw-r--r--tests/test-c++-basic/Makefile.am4
-rw-r--r--tests/test-c++-basic/Makefile.in97
-rw-r--r--tests/test-c++-multiple-scanners/Makefile.am2
-rw-r--r--tests/test-c++-multiple-scanners/Makefile.in95
-rw-r--r--tests/test-c++-multiple-scanners/main.cpp2
-rw-r--r--tests/test-c++-multiple-scanners/scanner-2.l7
-rw-r--r--tests/test-c++-yywrap/Makefile.am45
-rw-r--r--tests/test-c++-yywrap/Makefile.in358
-rw-r--r--tests/test-c++-yywrap/scanner.l70
-rw-r--r--tests/test-c++-yywrap/test.input2
-rw-r--r--tests/test-c-cpp-nr/Makefile.am2
-rw-r--r--tests/test-c-cpp-nr/Makefile.in95
-rw-r--r--tests/test-c-cpp-nr/scanner.l1
-rw-r--r--tests/test-c-cpp-r/Makefile.am2
-rw-r--r--tests/test-c-cpp-r/Makefile.in95
-rw-r--r--tests/test-ccl/Makefile.am44
-rw-r--r--tests/test-ccl/Makefile.in357
-rw-r--r--tests/test-ccl/scanner.l95
-rw-r--r--tests/test-ccl/test.input27
-rw-r--r--tests/test-concatenated-options/Makefile.am33
-rw-r--r--tests/test-concatenated-options/Makefile.in348
-rw-r--r--tests/test-debug-nr/Makefile.am2
-rw-r--r--tests/test-debug-nr/Makefile.in95
-rw-r--r--tests/test-debug-r/Makefile.am2
-rw-r--r--tests/test-debug-r/Makefile.in95
-rw-r--r--tests/test-extended/Makefile.am44
-rw-r--r--tests/test-extended/Makefile.in357
-rw-r--r--tests/test-extended/scanner.l73
-rw-r--r--tests/test-extended/test.input2
-rw-r--r--tests/test-header-nr/Makefile.am2
-rw-r--r--tests/test-header-nr/Makefile.in96
-rw-r--r--tests/test-header-r/Makefile.am2
-rw-r--r--tests/test-header-r/Makefile.in96
-rw-r--r--tests/test-include-by-buffer/Makefile.am2
-rw-r--r--tests/test-include-by-buffer/Makefile.in95
-rw-r--r--tests/test-include-by-push/Makefile.am2
-rw-r--r--tests/test-include-by-push/Makefile.in95
-rw-r--r--tests/test-include-by-reentrant/Makefile.am2
-rw-r--r--tests/test-include-by-reentrant/Makefile.in95
-rw-r--r--tests/test-linedir-r/Makefile.am6
-rw-r--r--tests/test-linedir-r/Makefile.in100
-rw-r--r--tests/test-lineno-nr/Makefile.am2
-rw-r--r--tests/test-lineno-nr/Makefile.in95
-rw-r--r--tests/test-lineno-r/Makefile.am2
-rw-r--r--tests/test-lineno-r/Makefile.in95
-rw-r--r--tests/test-mem-nr/Makefile.am2
-rw-r--r--tests/test-mem-nr/Makefile.in95
-rw-r--r--tests/test-mem-r/Makefile.am2
-rw-r--r--tests/test-mem-r/Makefile.in95
-rw-r--r--tests/test-multiple-scanners-nr/Makefile.am2
-rw-r--r--tests/test-multiple-scanners-nr/Makefile.in96
-rw-r--r--tests/test-multiple-scanners-r/Makefile.am2
-rw-r--r--tests/test-multiple-scanners-r/Makefile.in96
-rw-r--r--tests/test-noansi-nr/Makefile.am2
-rw-r--r--tests/test-noansi-nr/Makefile.in95
-rw-r--r--tests/test-noansi-r/Makefile.am2
-rw-r--r--tests/test-noansi-r/Makefile.in95
-rw-r--r--tests/test-posix/Makefile.am2
-rw-r--r--tests/test-posix/Makefile.in95
-rw-r--r--tests/test-posixly-correct/Makefile.am2
-rw-r--r--tests/test-posixly-correct/Makefile.in95
-rw-r--r--tests/test-prefix-nr/Makefile.am2
-rw-r--r--tests/test-prefix-nr/Makefile.in95
-rw-r--r--tests/test-prefix-r/Makefile.am2
-rw-r--r--tests/test-prefix-r/Makefile.in95
-rw-r--r--tests/test-pthread/Makefile.am2
-rw-r--r--tests/test-pthread/Makefile.in95
-rw-r--r--tests/test-pthread/scanner.l24
-rw-r--r--tests/test-quotes/Makefile.am47
-rw-r--r--tests/test-quotes/Makefile.in360
-rw-r--r--tests/test-quotes/scanner.l101
-rw-r--r--tests/test-quotes/test.input2
-rw-r--r--tests/test-reject/Makefile.am15
-rw-r--r--tests/test-reject/Makefile.in107
-rw-r--r--tests/test-reject/scanner.l15
-rw-r--r--tests/test-rescan-nr/Makefile.am2
-rw-r--r--tests/test-rescan-nr/Makefile.in96
-rw-r--r--tests/test-rescan-r/Makefile.am2
-rw-r--r--tests/test-rescan-r/Makefile.in96
-rw-r--r--tests/test-string-nr/Makefile.am2
-rw-r--r--tests/test-string-nr/Makefile.in95
-rw-r--r--tests/test-string-r/Makefile.am2
-rw-r--r--tests/test-string-r/Makefile.in95
-rw-r--r--tests/test-table-opts/Makefile.am19
-rw-r--r--tests/test-table-opts/Makefile.in111
-rw-r--r--tests/test-table-opts/scanner.l15
-rw-r--r--tests/test-top/Makefile.am2
-rw-r--r--tests/test-top/Makefile.in96
-rw-r--r--tests/test-yyextra/Makefile.am2
-rw-r--r--tests/test-yyextra/Makefile.in95
-rw-r--r--tools/Makefile.in89
-rw-r--r--tools/cvsauthors2
214 files changed, 39126 insertions, 21844 deletions
diff --git a/AUTHORS b/AUTHORS
index ed510d0..93b3528 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,13 +1,16 @@
-Vern Paxson wrote flex with the help of many ideas and much
-inspiration from Van Jacobson. Original version by Jef Poskanzer.
-The fast table representation is a partial implementation of a design
-done by Van Jacobson. The implementation was done by Kevin Gong and
-Vern Paxson.
-
-In 2001, W. L. Estes took over as maintainer of flex.
+In 2001, Will Estes took over as maintainer of flex.
John Millaway is a co-author of the current version of flex. He has
contributed a large number of new features, fixed a large number of
outstanding bugs and has made significant contributions to the flex
documentation.
+
+Aaron Stone has contributed several bug fixes to the flex codebase.
+
+Vern Paxson wrote flex with the help of many ideas and much
+inspiration from Van Jacobson. Original version by Jef Poskanzer.
+
+The fast table representation is a partial implementation of a design
+done by Van Jacobson. The implementation was done by Kevin Gong and
+Vern Paxson.
diff --git a/COPYING b/COPYING
index 51a3636..684b011 100644
--- a/COPYING
+++ b/COPYING
@@ -2,7 +2,7 @@ Flex carries the copyright used for BSD software, slightly modified
because it originated at the Lawrence Berkeley (not Livermore!) Laboratory,
which operates under a contract with the Department of Energy:
-Copyright (c) 2001 by W. L. Estes <wlestes@uncg.edu>
+Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex Project.
Copyright (c) 1990, 1997 The Regents of the University of California.
All rights reserved.
diff --git a/ChangeLog b/ChangeLog
index e69de29..35b95d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -0,0 +1,7396 @@
+2007-12-12 16:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: revert NEWS and configure.in to version
+ 2.5.34
+
+2007-09-12 11:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: update version number to 2.5.35
+
+2007-09-10 02:17 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * tests/test-alloc-extra/scanner.l: Use %option extra-type.
+
+2007-09-10 02:16 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * NEWS, flex.skl, flexdef.h, main.c, parse.y, scan.l,
+ doc/flex.texi: Introduce %option extra-type="your_type *" (resolves
+ bug #1744505).
+
+2007-08-15 08:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/nl.po: new nl translations from the translation project
+
+2007-06-28 16:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: change release date
+
+2007-06-27 21:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: adjustment for prefix classes; patch submitted by Petr
+ Machata <pmachata@redhat.com>
+
+2007-06-27 21:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: NEWS item for yy_init_extra
+
+2007-06-12 12:33 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * doc/flex.texi: Docs and example for yylex_init_extra.
+
+2007-05-31 20:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-alloc-extra/.cvsignore: ignore OUTPUT file in
+ test-alloc-extra
+
+2007-05-31 20:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/descriptions: add description of concatenated options test
+
+2007-05-31 16:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-alloc-extra/.cvsignore: add missing .cvsignore to
+ test-alloc-extra
+
+2007-05-31 02:21 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * configure.in, flex.skl, gen.c, main.c: Changes to resolve SF bugs
+ 1568325 and 1563589.
+
+2007-05-31 02:09 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * tests/: Makefile.am, descriptions, test-alloc-extra/Makefile.am,
+ test-alloc-extra/scanner.l, test-alloc-extra/test.input: Adding
+ test cases for yylex_init_extra.
+
+2007-05-12 11:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tests/test-pthread/scanner.l: fixes to test-pthread
+
+2007-05-12 09:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: NEWS item for concatenated options
+
+2007-05-12 09:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tests/Makefile.am,
+ tests/test-concatenated-options/.cvsignore,
+ tests/test-concatenated-options/Makefile.am: unit test to verify
+ concatenated options parsing
+
+2007-05-12 09:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * scanopt.c: parse multiple short concatenated options; patch
+ submitted by Petr Machata <pmachata@redhat.com
+
+2007-05-11 16:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: remove --force option from autogen.sh; much faster
+ without it
+
+2007-05-11 14:35 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.34
+
+2007-05-08 00:23 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * NEWS, flex.skl: Better checking after yyalloc/yyrealloc (resolves
+ bug #1595967)
+
+2007-05-01 08:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: change title of manual to 'Lexical Analysis with
+ Flex'
+
+2007-04-25 14:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: c++ memory leak plug
+
+2007-04-23 09:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: roll back c++ memory patch as it causes the test suite
+ no end of grief
+
+2007-04-23 08:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix function definitions for non-ANSI environments
+ (from Manoj Srivastava from Debian patchset)
+
+2007-04-23 08:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix c++ memory leak (from Manoj Srivastava from Debian
+ patchset)
+
+2007-04-23 06:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix parameter name in comment (patch from Manoj
+ Srivastava from the debian patchset
+
+2007-04-23 06:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: add a size_t cast (patch from Manoj Srivastava from the
+ debian patchset
+
+2007-04-16 17:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-extended/Makefile.am, test-quotes/Makefile.am:
+ cleanups to handle VPATH builds better; passifies make distcheck
+
+2007-04-16 16:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: drop using the \ in \ escaping as it throws pdf
+ generation for a loop
+
+2007-04-14 08:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * .cvsignore: add compile and *.tar.bz2 to .cvsignore
+
+2007-04-14 08:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: add call to setlocale for ctype as per debian patchset
+
+2007-04-14 08:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, NEWS: provide for a PIC version of libfl.a for
+ shared libraries using flex scanners
+
+2007-04-13 13:24 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h: annotate endifs since they're a bit far from their
+ opening #if statements
+
+2007-04-13 12:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexdef.h, parse.y: refactor and slightly redo alloca testing,
+ resolves bug #1675899
+
+2007-04-13 12:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: overhaul configure.in: use octathorps for comments
+ so they're passed through m4 processing; better bracketing of m4
+ arguments; retool checks as per suggestions from autoscan(1)
+
+2007-04-13 12:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: better handling of class that use the prefix
+ functionality; from submitted patch
+
+2007-04-13 12:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix skeleton for reentrant scanners
+
+2007-04-12 21:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove homegrown tags target; automake does that for
+ us
+
+2007-04-12 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h: declare some const where missing in c++ header file
+
+2007-04-12 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix skeleton for reentrant scanners, resolves bug
+ #1694318
+
+2007-04-10 15:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: corrections to the manual as per suggestions from
+ flex-help@
+
+2007-04-03 15:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: include author names in online versions of the
+ manual
+
+2007-04-03 15:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * COPYING: update copyright notice
+
+2007-04-03 14:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * AUTHORS: rearrange and update AUTHORS
+
+2007-03-29 11:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: note sf feature request 1658379 in NEWS
+
+2007-03-29 11:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * tools/cvsauthors: add sodabrew to cvsauthors file
+
+2007-03-29 11:25 Aaron Stone <sodabrew@users.sourceforge.net>
+
+ * flex.skl:
+ SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
+ header file.
+
+2007-03-07 16:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, filter.c, flex.skl: apply patches submitted by sodabrew
+
+2007-03-07 16:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs: more changes describing building flex from cvs
+
+2007-03-07 16:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, README.cvs, README.cvs-snapshot: rename
+ README.cvs-snapshot to README.cvs
+
+2007-03-07 16:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs-snapshot: update to explain where flex cvs lives
+
+2007-03-07 15:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * README, doc/flex.texi: correct how to submit bugs
+
+2007-02-16 10:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: clarify NEWS item re man page and pdf manual
+
+2007-02-14 12:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/Makevars: update bug address to point to flex-devel instead of
+ lex-help
+
+2007-02-13 12:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, doc/Makefile.am: make better use of AC_INIT; clean
+ up, simplify and make more robust the generation of the man page
+
+2007-02-13 12:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: remove option check-news from call to
+ AM_INIT_AUTOMAKE as gnits implies check-news
+
+2007-02-13 10:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in: move automake options from Makefile.am
+ to configure.in
+
+2007-02-13 10:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: restore --install option to autogen.sh since --force
+ does not imply --install
+
+2007-02-13 10:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * tools/cvsauthors: add john43 to cvsauthors file
+
+2007-02-13 09:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: call autoreconf with --force instead of --install
+
+2007-02-13 09:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/.cvsignore: remove texinfo.tex from cvs tree
+
+2007-02-12 20:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: updates to NEWS file to reflect recent changes
+
+2007-02-12 20:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/Makefile.am: add flex.pdf to EXTRA_DIST
+
+2007-02-12 19:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: remove flex.spec
+
+2007-02-12 19:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove maintainercleanfiles
+
+2007-02-01 15:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/Makefile.am: more changes to build system to distribute man
+ page
+
+2007-02-01 12:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/Makefile.am: add flex man page to distribution
+
+2007-02-01 12:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * .cvsignore, flex.spec.in: remove flex spec file
+
+2006-11-17 10:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-table-opts/Makefile.am: make test target depend on
+ test groupings, which in turn depend on building executables;
+ cygwin portability fix
+
+2006-11-10 16:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/create-test: change create-test script to edit files in
+ place
+
+2006-11-09 15:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-array-nr/Makefile.am, test-array-r/Makefile.am,
+ test-basic-nr/Makefile.am, test-basic-r/Makefile.am,
+ test-bison-nr/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c++-basic/Makefile.am,
+ test-c++-multiple-scanners/Makefile.am,
+ test-c++-yywrap/Makefile.am, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-r/Makefile.am, test-ccl/Makefile.am,
+ test-debug-nr/Makefile.am, test-debug-r/Makefile.am,
+ test-extended/Makefile.am, test-header-nr/Makefile.am,
+ test-header-r/Makefile.am, test-include-by-buffer/Makefile.am,
+ test-include-by-push/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-linedir-r/Makefile.am,
+ test-lineno-nr/Makefile.am, test-lineno-r/Makefile.am,
+ test-mem-nr/Makefile.am, test-mem-r/Makefile.am,
+ test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-noansi-nr/Makefile.am,
+ test-noansi-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-quotes/Makefile.am, test-reject/Makefile.am,
+ test-rescan-nr/Makefile.am, test-rescan-r/Makefile.am,
+ test-string-nr/Makefile.am, test-string-r/Makefile.am,
+ test-top/Makefile.am, test-yyextra/Makefile.am: change CLEANFILES
+ to include instead of just the testname for the executable
+
+2006-11-09 09:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: fix typos in manual; resolves bug #1592857
+
+2006-11-09 09:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: change test template to remove test
+ executable when that executable has an extension, e.g. under Cygwin
+
+2006-11-08 10:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.am: test names weren't displaying in test
+ success/failure messages (from #1591672
+
+2006-10-30 15:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/.cvsignore: add flex.html to .cvsignore in doc directory
+
+2006-10-22 18:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: update NEWS file for the work that millaway did
+
+2006-10-22 18:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h, NEWS, main.c,
+ tests/test-c++-multiple-scanners/scanner-2.l: make yywrap work with
+ c++ scanners as per sf bug report
+
+2006-10-20 15:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, tests/test-c++-multiple-scanners/main.cpp,
+ tests/test-c-cpp-nr/scanner.l, NEWS: memory leak issues in c++
+ scanner
+
+2006-10-20 13:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-c++-yywrap/.cvsignore,
+ tests/test-c++-yywrap/Makefile.am, tests/test-c++-yywrap/scanner.l,
+ tests/test-c++-yywrap/test.input, NEWS: add unit test for c++ with
+ yywrap
+
+2006-10-20 12:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, tests/test-c++-basic/Makefile.am,
+ tests/test-linedir-r/Makefile.am: use configure-provided awk
+ variable for portability; add loadlibes variable to c++ test
+
+2006-10-17 09:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/flex.texi: add noyywrap option to example; use whitespace to
+ clarify example
+
+2006-08-02 10:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ca.po, po/vi.po: new translations
+
+2006-04-11 12:54 John Millaway <john43@users.sourceforge.net>
+
+ * tables.c: Casted away signedness to appease -Werror freaks.
+
+2006-03-28 15:47 John Millaway <john43@users.sourceforge.net>
+
+ * ccl.c, flexdef.h, parse.y, scan.l, sym.c, doc/flex.texi,
+ tests/test-ccl/scanner.l, tests/test-ccl/test.input: Added ccl
+ union operator. Added test in test suite for ccl union operator.
+ Documented ccl union operator. Removed crufty ccl cache to prevent
+ parser problems.
+
+2006-03-28 12:56 John Millaway <john43@users.sourceforge.net>
+
+ * scan.l, doc/flex.texi, tests/test-extended/scanner.l,
+ tests/test-extended/test.input: Extended syntax excluded for
+ lex/posix compat mode. Comments discarded inside (?x:) patterns.
+ Added test in test suite for comments in extended patterns.
+ Documented syntax additions.
+
+2006-03-27 17:48 John Millaway <john43@users.sourceforge.net>
+
+ * scan.l, tests/test-ccl/scanner.l, tests/test-ccl/test.input:
+ Implemented (?x:) syntax to allow whitespace in patterns. Added
+ test for (?x:) syntax in test suite.
+
+2006-03-27 17:04 John Millaway <john43@users.sourceforge.net>
+
+ * parse.y, tests/test-ccl/scanner.l, tests/test-ccl/test.input:
+ Implemented dot-all syntax. Added test for dot-all syntax in test
+ suite.
+
+2006-03-27 15:59 John Millaway <john43@users.sourceforge.net>
+
+ * dfa.c, flexdef.h, gen.c, main.c, parse.y, scan.l, scanflags.c,
+ doc/flex.texi, tests/test-ccl/scanner.l, tests/test-ccl/test.input:
+ Removed global variable caseins. Added scanner stack flags for
+ case-insensitivity. Moved case-folding code from DFA-generation to
+ parse time read-macros. Added localized case-sensitivity syntax
+ from Perl. Added test for new syntax in test suite. Documented
+ new syntax.
+
+2006-03-27 14:00 John Millaway <john43@users.sourceforge.net>
+
+ * Makefile.am, configure.in, flexdef.h, scanflags.c: Added
+ configure check for assert.h. Added scanner flags stack.
+
+2006-03-25 14:03 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, scan.l, doc/flex.texi, tests/Makefile.am,
+ tests/descriptions, tests/test-extended/.cvsignore,
+ tests/test-extended/Makefile.am, tests/test-extended/scanner.l,
+ tests/test-extended/test.input: Added extended, perl-compatible
+ comment syntax. Added test for extended comment syntax.
+ Documented extended comment syntax.
+
+2006-03-25 12:57 John Millaway <john43@users.sourceforge.net>
+
+ * parse.y, doc/flex.texi: Changed explicit 'A'-'Z' to isupper(),
+ where correct to do so. Documentation.
+
+2006-03-24 17:33 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documentation.
+
+2006-03-24 13:57 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Added appendix of patterns to manual.
+
+2006-03-23 18:34 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: [no log message]
+
+2006-03-22 15:06 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documentation.
+
+2006-03-22 15:03 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documented set difference operator {-}.
+
+2006-03-22 14:06 John Millaway <john43@users.sourceforge.net>
+
+ * ccl.c, flexdef.h, parse.y, scan.l, tests/test-ccl/scanner.l,
+ tests/test-ccl/test.input: Added set difference operator {-} for
+ character classes.
+
+2006-03-22 11:04 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, parse.y, scan.l, doc/flex.texi, tests/Makefile.am,
+ tests/descriptions, tests/test-ccl/.cvsignore,
+ tests/test-ccl/Makefile.am, tests/test-ccl/scanner.l,
+ tests/test-ccl/test.input: Added negated character class
+ expressions. Documented negated character class expressions.
+ Added regression test for negated character class expressions.
+
+2006-03-22 07:49 John Millaway <john43@users.sourceforge.net>
+
+ * buf.c, filter.c, gen.c, main.c, misc.c, nfa.c, parse.y, regex.c:
+ Replaced sprintf with snprintf everywhere.
+
+2006-03-21 19:15 John Millaway <john43@users.sourceforge.net>
+
+ * Makefile.am: Removed includedir from AM_CPPFLAGS #1439351.
+
+2006-03-21 18:49 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-quotes/.cvsignore, tests/test-quotes/Makefile.am,
+ tests/test-quotes/scanner.l, tests/test-quotes/test.input: Added
+ test to verify user code is unmangled.
+
+2006-03-21 16:39 John Millaway <john43@users.sourceforge.net>
+
+ * flexdef.h, misc.c, scan.l: Fixed escape in actions.
+
+2006-03-21 16:22 John Millaway <john43@users.sourceforge.net>
+
+ * filter.c, flexdef.h, main.c, scan.l: Reverted previous input
+ filter changes. Added noop macro to scanner output. Modified
+ scan.l to escape m4 quotes found in user code.
+
+2006-03-21 16:18 John Millaway <john43@users.sourceforge.net>
+
+ * tests/test-table-opts/: Makefile.am, scanner.l: Removed m4 from
+ test-table-opts
+
+2006-03-21 15:58 John Millaway <john43@users.sourceforge.net>
+
+ * tests/test-reject/: Makefile.am, scanner.l: Removed m4 from
+ test-reject
+
+2006-03-21 13:23 John Millaway <john43@users.sourceforge.net>
+
+ * filter.c, flexdef.h, main.c, scan.l: Moved set_input_file to
+ different file.
+
+2006-03-20 21:17 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl, flexdef.h, flexint.h, misc.c: Relaxed tests for
+ __STDC__ and __STDC_VERSION__ to cope with bugs in GCC and Sun cc.
+
+2006-03-19 20:50 John Millaway <john43@users.sourceforge.net>
+
+ * filter.c: Documented filter chain. Removed fdopen. Added no-op
+ fseek.
+
+2006-03-13 16:21 John Millaway <john43@users.sourceforge.net>
+
+ * gen.c: Fixed another -Wall report.
+
+2006-03-10 09:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/vi.po: new vi translation
+
+2006-03-09 08:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ga.po, po/nl.po: new nl, ga translations
+
+2006-02-20 20:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * m4/Makefile.am: add po.m4 to extra_dist in m4/ so it gets picked
+ up by distributions
+
+2006-02-20 20:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * m4/Makefile.am: add nls.m4 to extra_dist in m4/ so it will get
+ picked up in distribution tarballs
+
+2006-02-20 20:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: remove website directory from configure.in
+
+2006-02-20 14:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.33 marks in NEWS and configure.in
+
+2006-02-20 13:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: change email address in configure.in to point to
+ flex-help@sourceforge.net
+
+2006-02-20 12:30 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documentation.
+
+2006-02-20 12:17 John Millaway <john43@users.sourceforge.net>
+
+ * BUGS: Appended to BUGS file.
+
+2006-02-18 14:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove website directory (since it now has its own
+ module in the flex project
+
+2006-02-16 17:20 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl, doc/flex.texi: Fixed buffer overflow in reject state
+ buffer. Corrected documentation on the state buffer.
+
+2006-02-16 10:02 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl: Reverted num_read from size_t back to int.
+
+2006-02-15 18:58 John Millaway <john43@users.sourceforge.net>
+
+ * Makefile.am, configure.in: Removed reference to RoadMap in
+ Makefile.am. Added website directory.
+
+2006-02-15 16:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * README, RoadMap: remove RoadMap and reference to it in README
+
+2006-02-15 13:35 John Millaway <john43@users.sourceforge.net>
+
+ * BUGS, README, doc/flex.texi, doc/flex.xml: Eliminated references
+ to lex.sf.net.
+
+2006-02-15 13:31 John Millaway <john43@users.sourceforge.net>
+
+ * BUGS, flex.skl: Transfered bugs list from lex.sf.net to BUGS
+ file.
+
+2006-02-15 13:11 John Millaway <john43@users.sourceforge.net>
+
+ * tests/: test-rescan-nr/.cvsignore, test-rescan-nr/Makefile.am,
+ test-rescan-nr/scanner.l, test-rescan-nr/test.input,
+ test-rescan-r/.cvsignore, test-rescan-r/Makefile.am,
+ test-rescan-r/scanner.l, test-rescan-r/test.input: Recommit of last
+ commit -- broken pipe.
+
+2006-02-15 13:06 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, flex.skl, tests/Makefile.am, tests/descriptions:
+ yy_lex_destroy calls yy_init_globals to reset everything for next
+ call to yylex. Added two new tests for reusing scanners.
+
+2006-02-14 15:28 John Millaway <john43@users.sourceforge.net>
+
+ * flex.spec.in: Patched rpm spec file.
+
+2006-02-14 15:23 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, flexint.h: Added C99 macro for inttypes, just to be
+ conformant.
+
+2006-02-14 14:38 John Millaway <john43@users.sourceforge.net>
+
+ * flexdef.h, nfa.c, parse.y: Changed symbol INFINITE to fix
+ conflict with C math symbol.
+
+2006-02-14 14:28 John Millaway <john43@users.sourceforge.net>
+
+ * scan.l: Omitting parens for named rules in trailing context.
+
+2006-02-14 13:55 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in, main.c, po/ca.po, po/da.po, po/de.po, po/es.po,
+ po/fr.po, po/ga.po, po/ko.po, po/nl.po, po/pl.po, po/pt_BR.po,
+ po/ro.po, po/ru.po, po/sv.po, po/tr.po, po/vi.po, po/zh_CN.po,
+ tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l: Added
+ check for locale.h and libintl.h in configure script.
+
+2006-02-14 13:36 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl: Removed unused local vars.
+
+2006-02-14 13:25 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl: Removed certain offending #undefs.
+
+2006-02-14 13:07 John Millaway <john43@users.sourceforge.net>
+
+ * flexint.h: Removed logical and from preprocessor statement.
+
+2006-02-14 06:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: nl.po, nl.po.1: remove eroneously named nl.po.1; update
+ nl.po
+
+2006-02-14 01:38 John Millaway <john43@users.sourceforge.net>
+
+ * dfa.c: [no log message]
+
+2006-02-14 00:27 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl: Included <sys/types.h> for serialized tables.
+
+2006-02-14 00:22 John Millaway <john43@users.sourceforge.net>
+
+ * configure.in: Minor patch to call to head in configure script.
+
+2006-02-14 00:12 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documentation patch.
+
+2006-02-13 22:32 John Millaway <john43@users.sourceforge.net>
+
+ * filter.c, gen.c, libyywrap.c, main.c: Patch for full file system
+ failure.
+
+2006-02-13 16:45 John Millaway <john43@users.sourceforge.net>
+
+ * doc/flex.texi: Documentation.
+
+2006-02-13 16:18 John Millaway <john43@users.sourceforge.net>
+
+ * main.c: Fixed double-fclose when input file is empty.
+
+2006-02-10 18:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: ca.po, da.po, de.po, es.po, fr.po, ga.po, ko.po, nl.po.1,
+ pl.po, pt_BR.po, ro.po, ru.po, sv.po, tr.po, vi.po, zh_CN.po:
+ newtranslations
+
+2005-12-21 19:24 John Millaway <john43@users.sourceforge.net>
+
+ * buf.c, main.c: Improvement request 1069716 log vs. log10
+
+2005-12-21 19:16 John Millaway <john43@users.sourceforge.net>
+
+ * flex.skl: Fixed bug 1257093 yy_init_globals in header file
+
+2005-04-14 16:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/nl.po: new nl translation
+
+2005-04-07 08:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/LINGUAS, po/nl.po, po/vi.po: new nl and vi translations
+
+2004-07-20 16:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * filter.c: correct improper stdin assignment
+
+2004-05-22 18:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/tr.po, NEWS: new tr translation
+
+2004-05-11 20:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * .indent.pro, .cvsignore: .cvsignore and .indent.pro got missed
+ in the import to sourceforge; replace them
+
+2004-05-11 09:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/fr.po: new fr translation
+
+2004-05-03 10:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/LINGUAS: polish is pl, not po
+
+2004-03-22 08:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/sv.po: yet another sweedish update
+
+2004-03-19 09:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/sv.po, NEWS: new sv translation
+
+2003-12-10 20:43 John Millaway <millaway@acm.org>
+
+ * configure.in, filter.c, main.c: Configure checks for GNU m4.
+ Environment variable M4 overrides built-in m4 path. Generated m4
+ does a late check for GNU m4.
+
+2003-12-08 21:17 John Millaway <millaway@acm.org>
+
+ * doc/flex.texi: added 3 faqs
+
+2003-11-24 08:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ro.po: new ro translation
+
+2003-11-07 13:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/fr.po: new french translation
+
+2003-11-07 08:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ca.po: new catalan translation from the translation
+ project
+
+2003-11-07 08:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/LINGUAS, po/ga.po, po/pl.po: new polish translation;
+ updated irish translation from translation project
+
+2003-10-10 08:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/LINGUAS, po/ga.po: new Irish translation
+
+2003-08-25 07:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/LINGUAS, po/ro.po: add romanian translation
+
+2003-07-16 11:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: flex_*int* type fixes
+
+2003-07-16 10:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * tools/cvsauthors: change wlestes email address
+
+2003-07-16 10:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: undef yytext_ptr has some bad side effects
+
+2003-07-07 13:32 John Millaway <millaway@acm.org>
+
+ * doc/flex.texi: Documented m4 incompatibility with lex.
+
+2003-05-21 13:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: upgrade to gettext 0.12
+
+2003-05-20 16:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, gen.c: patches from manoj via sourceforge
+
+2003-05-20 16:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, po/.cvsignore, po/Makevars: upgrade gettext to
+ 0.12; this allows running make pdf and make ps to be successful
+
+2003-05-20 13:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/.cvsignore: cvs should ignore flex.pdf and flex.ps
+
+2003-04-25 15:45 John Millaway <millaway@acm.org>
+
+ * TODO: Added yylineno bugs to TODO list.
+
+2003-04-02 20:01 John Millaway <millaway@acm.org>
+
+ * doc/flex.xml: Docbook.
+
+2003-04-02 19:22 John Millaway <millaway@acm.org>
+
+ * doc/flex.xml: xml now validates.
+
+2003-04-02 18:20 John Millaway <millaway@acm.org>
+
+ * doc/flex.xml: Began conversion to DocBook.
+
+2003-04-01 11:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.31
+
+2003-04-01 11:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: remove --enable-maintainer-mode configure option
+
+2003-04-01 11:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: remove AM_MAINTAINER_MODE
+
+2003-03-31 20:51 John Millaway <millaway@acm.org>
+
+ * flex.skl, flexdef.h, main.c, misc.c, scan.l: Renamed some
+ internal variables.
+
+2003-03-31 08:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: yylineno is now per-buffer in reentrant scanners
+
+2003-03-30 21:04 John Millaway <millaway@acm.org>
+
+ * TODO: Added TODO item.
+
+2003-03-30 14:58 John Millaway <millaway@acm.org>
+
+ * flex.skl, gen.c: yylineno is per-buffer in the reentrant scanner.
+ support for yycolumn exists, but is not yet developed.
+
+2003-03-28 16:08 John Millaway <millaway@acm.org>
+
+ * flex.skl: Minor documentation.
+
+2003-03-28 09:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: added %top directive
+
+2003-03-27 13:02 John Millaway <millaway@acm.org>
+
+ * buf.c, configure.in, flexdef.h, main.c, scan.l, doc/flex.texi,
+ tests/Makefile.am, tests/descriptions, tests/test-top/.cvsignore,
+ tests/test-top/Makefile.am, tests/test-top/main.c,
+ tests/test-top/scanner.l, tests/test-top/test.input: Added %top
+ block syntax. Added test for %top block. Documented %top block.
+
+2003-03-26 23:02 John Millaway <millaway@acm.org>
+
+ * TODO, doc/flex.texi: Documented the m4 dependency.
+
+2003-03-26 16:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, flexdef.h: check for sys/wait.h since we use
+ wait(2)
+
+2003-03-26 16:35 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexdef.h: reorder include directives so as to catch system
+ integer types before flex defined values for same
+
+2003-03-26 14:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: assign tasks due before major release can happen; remove
+ --enable-maintainer-mode entry
+
+2003-03-26 14:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: only rebuild the ChangeLog if we're inside a cvs
+ working directory
+
+2003-03-26 14:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tools/.cvsignore, tools/Makefile.am: add tools/
+ subdirectory to distribution
+
+2003-03-26 14:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove maintainer_mode conditional; add filter.c and
+ regex.c to indentfiles; reformat and sort indentfiles so it's
+ easier to add files in the future
+
+2003-03-26 14:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * doc/Makefile.am: clean up flex.texi processing leftovers with
+ cleanfiles
+
+2003-03-26 13:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-linedir-r/Makefile.am: an awk script wasn't included
+ in the distribution
+
+2003-03-26 11:52 John Millaway <millaway@acm.org>
+
+ * TODO, configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-include-by-push/.cvsignore,
+ 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: Added test for
+ yypush_buffer_state and yypop_buffer_state.
+
+2003-03-25 22:27 John Millaway <millaway@acm.org>
+
+ * TODO: Removed items from TODO list.
+
+2003-03-25 22:26 John Millaway <millaway@acm.org>
+
+ * configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-linedir-r/.cvsignore, 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:
+ Added test for #line directives.
+
+2003-03-25 20:37 John Millaway <millaway@acm.org>
+
+ * configure.in, tests/Makefile.am, tests/test-noansi-nr/.cvsignore,
+ tests/test-noansi-nr/Makefile.am, tests/test-noansi-nr/scanner.l,
+ tests/test-noansi-nr/test.input, tests/test-noansi-r/.cvsignore,
+ tests/test-noansi-r/Makefile.am, tests/test-noansi-r/scanner.l,
+ tests/test-noansi-r/test.input: Added test for noansi (traditional)
+ options. Reordered the tests so the basic ones are first.
+
+2003-03-25 15:51 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO, doc/Makefile.am: remove maintainer-mode conditional around
+ rebuilding of manpage
+
+2003-03-25 15:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: mention doc/ for user documentation
+
+2003-03-25 15:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: rework distribution items
+
+2003-03-25 15:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: mention m4 processing
+
+2003-03-25 15:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/README: update instructions for running test suite
+
+2003-03-25 11:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h, Makefile.am, TODO, buf.c, configure.in, filter.c,
+ flex.skl, flexdef.h, gen.c, main.c, misc.c, options.c, options.h,
+ regex.c, scan.l, sym.c, doc/flex.texi,
+ tests/test-bison-nr/scanner.l, tests/test-bison-yylloc/scanner.l,
+ tests/test-reject/scanner.l, tests/test-table-opts/scanner.l: merge
+ millaway's m4 branch work
+
+2003-03-20 15:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we want to move the contents of to.do/Wishlist to top level
+ TODO
+
+2003-03-20 13:09 John Millaway <millaway@acm.org>
+
+ * to.do/Wish-List: Assessment of every item in Wish-List.
+
+2003-03-17 04:57 John Millaway <millaway@acm.org>
+
+ * regex.c: file regex.c was initially added on branch m4.
+
+2003-03-10 15:00 John Millaway <millaway@acm.org>
+
+ * filter.c: file filter.c was initially added on branch m4.
+
+2003-03-05 14:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * texinfo.tex, doc/.cvsignore: move texinfo.tex to doc/
+
+2003-03-05 14:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: update TODO
+
+2003-03-05 14:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.29
+
+2003-03-04 18:43 John Millaway <millaway@acm.org>
+
+ * FlexLexer.h, flex.skl: Added growable buffer stack to C++ scanner
+ as well. yyensure_buffer_stack is now static.
+
+2003-03-01 20:45 John Millaway <millaway@acm.org>
+
+ * flex.skl, misc.c: Removed awkward %push %pop syntax from
+ skeleton.
+
+2003-03-01 19:34 John Millaway <millaway@acm.org>
+
+ * flex.skl: Renamed YY_CURRENT_BUFFER_FAST to
+ YY_CURRENT_BUFFER_LVALUE to better reflect its purpose.
+
+2003-02-28 15:19 John Millaway <millaway@acm.org>
+
+ * NEWS: made entry on input buffer stacks.
+
+2003-02-28 09:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, doc/Makefile.am: build on . in top level first; this
+ will simplify calling help2man
+
+2003-02-28 06:27 John Millaway <millaway@acm.org>
+
+ * TODO, flex.skl, gen.c, main.c, doc/flex.texi: Removed
+ yy_current_buffer from the planet. Input buffer states are now in
+ an internal unbounded stack. Added new internal function,
+ yyensure_buffer_stack. Added new API function,
+ yypush_buffer_state. Added new API function, yypop_buffer_state.
+ Documented the new API calls in the manual. Macro YY_BUFFER_STATE
+ now refers to top of stack. This revision breaks the C++ scanner
+ (again.)
+
+2003-02-28 04:02 John Millaway <millaway@acm.org>
+
+ * main.c: Removed some symbols from the undef list. They are needed
+ for multiple headers to coexist.
+
+2003-02-27 10:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, NEWS, configure.in, flex.texi, doc/.cvsignore,
+ doc/Makefile.am, doc/flex.texi: move flex.texi and flex.1 to new
+ doc/ subdirectory
+
+2003-02-27 09:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: namespace cleanups
+
+2003-02-26 18:23 John Millaway <millaway@acm.org>
+
+ * main.c: Added a few macros to the undef list.
+
+2003-02-26 18:17 John Millaway <millaway@acm.org>
+
+ * main.c: Put the undef macros in an array.
+
+2003-02-12 16:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.28
+
+2003-02-10 09:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * README, TODO, configure.in, flex.texi: update documentation to
+ reflect the sourceforge move
+
+2003-02-06 16:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: update according to current thinking
+
+2003-02-06 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: mcvs reviewed
+
+2003-02-06 09:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: sourceforge migration tasks
+
+2003-02-04 09:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: Flex now warns if always-interactive is specified with fast
+ or full; Fixed trailing slash bug in YY_INPUT macro def
+
+2003-01-31 17:30 John Millaway <millaway@acm.org>
+
+ * scan.l: Flex now warns if always-interactive is specified with
+ fast or full.
+
+2003-01-31 12:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: switch to using cvs2cl.pl to generate the ChangeLog
+
+2003-01-31 12:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tools/: cvs2cl.pl, cvsauthors: we're going to be switching how we
+ handle our ChangeLog
+
+2003-01-29 15:16 John Millaway <millaway@acm.org>
+
+ * gen.c, misc.c: Fixed trailing slash bug in YY_INPUT macro def.
+
+2003-01-29 13:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs-snapshot: upgrade texinfo to 4.3d
+
+2003-01-29 13:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: the @copying construct works now; thanks to the
+ texinfo maintainers for finding the problem
+
+2003-01-21 08:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.27
+
+2003-01-21 08:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: flex now works with recent bison versions
+
+2003-01-18 13:54 John Millaway <millaway@acm.org>
+
+ * flex.skl: Check for YYLTYPE_IS_DECLARED. This fixes bison-bridge
+ with latest bison.
+
+2003-01-15 08:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/pt_BR.po: new pt_br translation
+
+2003-01-14 10:51 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.26
+
+2003-01-14 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: Fixed table deserialization bug on big-endian archs. Patch
+ sent from Bryce Nichols <bryce@bnichols.org>
+
+2003-01-11 22:30 John Millaway <millaway@acm.org>
+
+ * tables_shared.h: Fixed table deserialization bug on big-endian
+ archs. Patch sent from Bryce Nichols <bryce@bnichols.org>.
+
+2003-01-10 09:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs-snapshot: add version numbers for some tools and
+ explain about version.texi and --enable-maintainer-mode
+
+2003-01-10 08:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch news up
+
+2003-01-09 18:06 John Millaway <millaway@acm.org>
+
+ * tests/: test-mem-nr/scanner.l, test-mem-r/scanner.l: Changed
+ size_t to yy_size_t in yyalloc() and yyrealloc(). Is this really
+ what we want?
+
+2003-01-09 17:20 John Millaway <millaway@acm.org>
+
+ * flex.skl: Changed type of yyleng from size_t to int. This fixes
+ bug in PostgreSQL compilation.
+
+2003-01-09 11:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch news up
+
+2003-01-09 11:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: more c++ fixes
+
+2003-01-09 10:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in, flex.spec.in: add a spec file
+
+2003-01-09 10:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: type cast to pacify c++ compilers; patch from Bruce
+ Lilly <blilly@erols.com>
+
+2003-01-08 12:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new es translation
+
+2003-01-08 12:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/es.po: new spanish translation
+
+2002-12-18 22:17 John Millaway <millaway@acm.org>
+
+ * gen.c: Fixed bug where YY_G(0) sometimes occurs (created by my
+ previous commit.)
+
+2002-12-17 18:53 John Millaway <millaway@acm.org>
+
+ * gen.c: Fixed bug submitted by Bojan Smojver <bojan@rexursive.com>
+ where the use of yylineno, reentrant, and yymore together caused a
+ compile-time error.
+
+2002-12-17 16:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: update NEWS
+
+2002-12-17 15:28 John Millaway <millaway@acm.org>
+
+ * flex.texi: Documented new behavior with character ranges.
+
+2002-12-16 18:33 John Millaway <millaway@acm.org>
+
+ * parse.y: Fixed bug submitted by Bruce Lilly <blilly@erols.com>
+ where character ranges would yield unexpected behavior in a
+ caseless scanner. Also, flex now emits a warning if the range
+ looks like trouble.
+
+2002-12-16 18:28 John Millaway <millaway@acm.org>
+
+ * flexdef.h, ccl.c: Added utility functions to deal with character
+ case.
+
+2002-12-09 09:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: we don't really need int64 anyway
+
+2002-12-09 09:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: apparently some lints are happier with fllthrough
+ without a space
+
+2002-12-02 15:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.25
+
+2002-12-02 15:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: enclose flex.1 target in MAINTERNER_MODE
+
+2002-12-02 08:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/pt_BR.po: new pt_br translation
+
+2002-12-01 13:31 John Millaway <millaway@acm.org>
+
+ * flex.texi: Indexed some more faqs.
+
+2002-11-28 22:34 John Millaway <millaway@acm.org>
+
+ * flex.skl: Fixed bug in SECOND yyless definition where argument
+ was not enclosed in parentheses.
+
+2002-11-28 22:29 John Millaway <millaway@acm.org>
+
+ * flex.skl: Fixed bug in yyless definition where argument was not
+ enclosed in parentheses.
+
+2002-11-27 13:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: flex uses flex_int*_t types
+
+2002-11-27 13:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: integer types for non-C99 systems flexint.h
+
+2002-11-27 09:43 John Millaway <millaway@acm.org>
+
+ * dfa.c, flexint.h, gen.c, tables.c, tables.h, tables_shared.c,
+ tables_shared.h: Changed int types to flex_intX_t. The build is now
+ broken until typedef's are established.
+
+2002-11-27 09:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: MAINTAINERCLEANFILES: new variable: try to make it
+ so that make maintainer-clean erases everything not under version
+ control
+
+2002-11-27 08:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * config.rpath: remove config.rpath
+
+2002-11-27 08:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * README-alpha: just list location of betas
+
+2002-11-26 09:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: __STDC_VERSION__ needs an L suffix
+
+2002-11-26 08:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/LINGUAS, po/pt_BR.po: new pt_br translation from the
+ translation project
+
+2002-11-25 11:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: include inttypes.h for folks who really are C99
+
+2002-11-25 09:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: fix a typo
+
+2002-11-25 08:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.24
+
+2002-11-23 12:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: try to make sure we have GNU m4
+
+2002-11-23 12:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-c++-multiple-scanners/Makefile.am: include
+ tests/test-c++-multipl-scanners/test.input
+
+2002-11-23 12:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: more portability fixes
+
+2002-11-23 11:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, flexdef.h: apparently on some BSD systems, we need
+ sys/params.h; reported by millaway
+
+2002-11-22 16:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: update NEWS
+
+2002-11-22 15:38 John Millaway <millaway@acm.org>
+
+ * flex.skl, main.c, tests/test-c++-multiple-scanners/Makefile.am:
+ Fixed prefix of yyalloc,yyfree,yyrealloc in C++ scanner. Removed
+ yylex_destroy from C++ scanner.
+
+2002-11-22 15:05 John Millaway <millaway@acm.org>
+
+ * flex.texi: renamed some faqs.
+
+2002-11-22 08:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * AUTHORS: update wording about authorship
+
+2002-11-17 17:17 John Millaway <millaway@acm.org>
+
+ * parse.y: Removed space before line num in error messages to look
+ more like gcc's errors.
+
+2002-11-06 10:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/tr.po, NEWS: new turkish translation from the translation
+ project
+
+2002-10-28 07:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * gen.c: applied c++ from lilypond folks for std:: reasons
+
+2002-10-25 15:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: proofreading
+
+2002-10-24 16:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: proofreading
+
+2002-10-22 10:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: use c-style header names in c++ for now; at some point
+ we'll have a separate c++ skeleton and we can go whole-hog pure c++
+
+2002-10-22 10:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: c++ rants
+
+2002-10-22 09:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more proofreading
+
+2002-10-22 09:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: include intent.pro; indent target is MAINTAINER_MODE
+ conditional
+
+2002-10-22 08:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: When we use AC_PATH_PROG, value-if-not-found is the
+ name of the program we wanted to find; this will generate more
+ helpful error messages
+
+2002-10-21 19:52 John Millaway <millaway@acm.org>
+
+ * tables.c: Added a missing function prototype.
+
+2002-10-21 13:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.23
+
+2002-10-21 13:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: update NEWS on recent changes
+
+2002-10-21 13:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: use sys/types.h and not inttypes.h
+
+2002-10-21 13:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: check for limits.h
+
+2002-10-21 13:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: update TODO on recent suggestions
+
+2002-10-21 11:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: titlepage and contents
+
+2002-10-21 10:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: typo
+
+2002-10-21 10:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, README.cvs-snapshot: include README.cvs-snapshot in
+ the distribution; in README-cvs-snapshot, mention the need for
+ enable-maintainer-mode
+
+2002-10-20 22:26 John Millaway <millaway@acm.org>
+
+ * flex.texi: typo.
+
+2002-10-18 11:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: report the current version info that flex provides;
+ reformat a list of non-posix features
+
+2002-10-18 11:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: report the current version info that flex provides
+
+2002-10-18 11:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: FLEX_BETA defined if flex is beta
+
+2002-10-16 09:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: if we're doing c++, then we can't use long long
+
+2002-10-14 11:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: update TODO on several things
+
+2002-10-11 16:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more proofreading
+
+2002-10-11 11:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/Makefile.am, test-array-nr/Makefile.am,
+ test-array-r/Makefile.am, test-basic-nr/Makefile.am,
+ test-basic-r/Makefile.am, test-bison-nr/Makefile.am,
+ test-bison-yylloc/Makefile.am, test-bison-yylval/Makefile.am,
+ test-c++-basic/Makefile.am, test-c++-multiple-scanners/Makefile.am,
+ test-c-cpp-nr/Makefile.am, test-c-cpp-r/Makefile.am,
+ test-debug-nr/Makefile.am, test-debug-r/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-mem-nr/Makefile.am,
+ test-mem-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-reject/Makefile.am, test-string-nr/Makefile.am,
+ test-string-r/Makefile.am, test-table-opts/Makefile.am,
+ test-yyextra/Makefile.am: remove BISON assignment as per suggestion
+ from Akim Demaille
+
+2002-10-11 11:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in: remove intl from dist
+
+2002-10-11 10:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: we use maintainer mode now
+
+2002-10-11 10:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: include create-test
+
+2002-10-11 10:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.am: rename test to check-local as per Akim
+ Demaille; test for failed tests so that make check fails if any
+ tests do
+
+2002-10-11 08:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.am: use dist_noinst_scripts as per email from Akim
+ Demaille
+
+2002-10-10 17:42 John Millaway <millaway@acm.org>
+
+ * flex.texi: Documentation.
+
+2002-10-10 15:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.22; portability fixes and attn to
+ the test suite
+
+2002-10-10 15:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexint.h: ok, this seems to work
+
+2002-10-10 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/Makefile.am, test-bison-nr/Makefile.am,
+ test-bison-yylloc/Makefile.am, test-bison-yylval/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am: use builddir in tests that
+ need it in their include path
+
+2002-10-10 14:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: sometimes we put header files in the
+ builddir and so we should account for that
+
+2002-10-10 14:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: replace the last instance
+
+2002-10-10 13:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: include unistd.h and not cunistd as cunistd only seems
+ to be present on very recent systems
+
+2002-10-10 11:34 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in, flex.skl, flexdef.h, flexint.h: redo
+ integral types again; add flexint.h; change dependencies caused by
+ adding flexint.h; remove autoconf wrapper around cunistd; restore
+ netinet/in.h includes; remove unneded feature checks in
+ configure.in
+
+2002-10-08 11:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, flex.skl, flexdef.h: current swipe at header magic;
+ int types be damned
+
+2002-10-08 11:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: change version constant info to reflect change to flex.skl
+
+2002-10-08 11:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove README-alpha option; add definitions for
+ FLEX_{MAJOR,MINOR,SUBMINOR}_VERSION
+
+2002-10-07 11:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, flexdef.h: ok, here goes; try to handle integral
+ typedefs in one swell foop
+
+2002-10-07 11:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: we check for {u,}int*_t types; maybe this will
+ simplify things
+
+2002-10-07 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: we create the tests/TEMPLATE/Makefile so that we
+ can build the dist archives
+
+2002-10-07 08:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: more test suite cleanups
+
+2002-10-07 08:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-c++-multiple-scanners/Makefile.am: we don't use header
+ files...
+
+2002-10-07 08:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexdef.h: remove include of malloc.h
+
+2002-10-04 15:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more editing; remove examples index; merge examples
+ into concept index
+
+2002-10-04 08:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: edited one more faq; used C-u C-c C-u C-a to update
+ menus and nodes since the other updating commands are somewhat
+ broken; unfortunately this means that all nodes have all pointers
+ filled in
+
+2002-10-04 08:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: yesterday's proofreading
+
+2002-10-02 16:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: proofread some more
+
+2002-10-02 08:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: proofread edit begins
+
+2002-10-01 11:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tests/Makefile.am,
+ tests/test-c++-multiple-scanners/.cvsignore,
+ 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: test c++ with multiple
+ scanners
+
+2002-09-27 16:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-array-nr/Makefile.am, test-array-r/Makefile.am,
+ test-basic-nr/Makefile.am, test-basic-r/Makefile.am,
+ test-bison-nr/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c++-basic/Makefile.am,
+ test-c-cpp-nr/Makefile.am, test-c-cpp-r/Makefile.am,
+ test-debug-nr/Makefile.am, test-debug-r/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-mem-nr/Makefile.am,
+ test-mem-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-reject/Makefile.am, test-string-nr/Makefile.am,
+ test-string-r/Makefile.am, test-table-opts/Makefile.am,
+ test-yyextra/Makefile.am: we used INCLUDES in another place in the
+ Makefile.am files in the test suite
+
+2002-09-27 16:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-array-nr/Makefile.am, test-array-r/Makefile.am,
+ test-basic-nr/Makefile.am, test-basic-r/Makefile.am,
+ test-bison-nr/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c++-basic/Makefile.am,
+ test-c-cpp-nr/Makefile.am, test-c-cpp-r/Makefile.am,
+ test-debug-nr/Makefile.am, test-debug-r/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-mem-nr/Makefile.am,
+ test-mem-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-reject/Makefile.am, test-string-nr/Makefile.am,
+ test-string-r/Makefile.am, test-table-opts/Makefile.am,
+ test-yyextra/Makefile.am: oops, I typed that last s/// command to
+ perl way wrong
+
+2002-09-27 16:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/Makefile.am, test-array-nr/Makefile.am,
+ test-array-r/Makefile.am, test-basic-nr/Makefile.am,
+ test-basic-r/Makefile.am, test-bison-nr/Makefile.am,
+ test-bison-yylloc/Makefile.am, test-bison-yylval/Makefile.am,
+ test-c++-basic/Makefile.am, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-r/Makefile.am, test-debug-nr/Makefile.am,
+ test-debug-r/Makefile.am, test-header-nr/Makefile.am,
+ test-header-r/Makefile.am, test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-mem-nr/Makefile.am,
+ test-mem-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-reject/Makefile.am, test-string-nr/Makefile.am,
+ test-string-r/Makefile.am, test-table-opts/Makefile.am,
+ test-yyextra/Makefile.am: use AM_CPPFLAGS instead of INCLUDES;
+ write -I with no space after it for broken compilers
+
+2002-09-27 16:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: INCLUDES is obsolete; use AM_CPPFLAGS instead
+
+2002-09-27 13:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: apparently, AM_CONFIG_HEADER is obsolete
+
+2002-09-27 12:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: integrate test suite into automake
+
+2002-09-27 12:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: since we dont run the template test, we dont need
+ to generate its Makefile either
+
+2002-09-27 12:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: use autoreconf instead of calling individual
+ utilities separately
+
+2002-09-27 09:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: check for c++ compiler
+
+2002-09-27 09:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: re-organize according to suggested layout in
+ autoconf manual
+
+2002-09-26 08:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, NEWS, configure.in: update automake to 1.7 and
+ autoconf to 2.54
+
+2002-09-26 08:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: use AM_YFLAGS since YFLAGS is a user variable
+
+2002-09-25 09:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch NEWS up on things, some of which happened a long time
+ ago; correct punctuation; try to remove some editorializing
+
+2002-09-25 09:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, flex.skl, flex.texi: include a single, automatically
+ generated version number in flex scanners
+
+2002-09-23 16:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/create-test: complain audibly when argument not supplied;
+ echo on stderr when writing error messages
+
+2002-09-23 12:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: Makefile.am, create-test: DIST_SUBDIRS so we don't have
+ to run the TEMPLATE test; so we add new tests to SUBDIRS and
+ DIST_SUBDIRS
+
+2002-09-23 11:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: not all compilers support '-I dir' so
+ we write '-Idir' instead
+
+2002-09-23 10:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: reorganize faq entries; proofread the manual
+
+2002-09-23 09:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: move c++ experimental warning to top of cxx node
+
+2002-09-20 13:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: move stdint.h include to table-serialization section;
+ we'll still need to think about stdint.h more though
+
+2002-09-20 08:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new smarter skeleton/scanner generation
+
+2002-09-19 20:06 John Millaway <millaway@acm.org>
+
+ * flex.skl, misc.c: bison-bridge skel handled via %if/%endif pairs.
+
+2002-09-19 19:57 John Millaway <millaway@acm.org>
+
+ * flex.skl, misc.c: reentrant skel handled via %if/%endif pairs.
+
+2002-09-19 19:20 John Millaway <millaway@acm.org>
+
+ * flex.skl, misc.c: skeleton uses %push/%pop to keep skelout()
+ scope sane. skel commands are omitted unless --debug enabled.
+
+2002-09-19 15:46 John Millaway <millaway@acm.org>
+
+ * flex.skl, main.c, misc.c, tables.h: Added %push and %pop
+ operations to skel processing.
+
+2002-09-17 08:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: flex 2.5.21
+
+2002-09-17 00:10 John Millaway <millaway@acm.org>
+
+ * tests/test-reject/Makefile.am: minor fixup for dist.
+
+2002-09-16 16:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.20
+
+2002-09-16 16:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: correct typo
+
+2002-09-16 15:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: note the new tables functionality
+
+2002-09-16 14:40 John Millaway <millaway@acm.org>
+
+ * tests/test-multiple-scanners-r/: .cvsignore, Makefile.am: Fixed
+ `clean' target and .cvsignore.
+
+2002-09-16 14:38 John Millaway <millaway@acm.org>
+
+ * TODO, flex.skl, flex.texi, main.c, tables_shared.h,
+ tests/test-multiple-scanners-r/main.c,
+ tests/test-multiple-scanners-r/scanner-1.l,
+ tests/test-multiple-scanners-r/scanner-2.l: Serialization works in
+ headers (%option headers). Serialization code (Tables API) is
+ complete.
+
+2002-09-16 08:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-reject/scanner.l: replace yytables_load with
+ yytables_fload as per millaway's other changes
+
+2002-09-15 19:13 John Millaway <millaway@acm.org>
+
+ * TODO, flex.texi: Created user API for tables deserialization.
+ Documented API and --tables-* options in manual.
+
+2002-09-15 19:12 John Millaway <millaway@acm.org>
+
+ * flex.skl, tests/test-table-opts/scanner.l: Tables deserialization
+ uses yyalloc/yyfree. Changed yytables_load to yytables_fload.
+
+2002-09-15 18:09 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-nr/.cvsignore: minor upkeep.
+
+2002-09-15 15:53 John Millaway <millaway@acm.org>
+
+ * flex.texi: Categorized and indexed scanner options in manual.
+
+2002-09-15 12:47 John Millaway <millaway@acm.org>
+
+ * flex.skl: Initialization of reject vars and %array vars in
+ reentrant scanner.
+
+2002-09-13 17:54 John Millaway <millaway@acm.org>
+
+ * TODO, configure.in, dfa.c, flex.skl, flex.texi, gen.c, tables.c,
+ tables_shared.c, tables_shared.h, devel/tables.pl,
+ tests/Makefile.am, tests/test-reject/.cvsignore,
+ tests/test-reject/Makefile.am, tests/test-reject/scanner.l,
+ tests/test-reject/test.input, tests/test-table-opts/Makefile.am:
+ Created test for reject. Handled reject-triggered tables in
+ serialization.
+
+2002-09-13 08:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: millaway has been very busy
+
+2002-09-13 03:12 John Millaway <millaway@acm.org>
+
+ * flex.skl, tests/test-table-opts/Makefile.am,
+ tests/test-table-opts/scanner.l: Added test for multiple tables in
+ one file.
+
+2002-09-12 21:19 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-nr/.cvsignore: forgot to add .cvsignore on last
+ commit.
+
+2002-09-12 21:18 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-nr/: Makefile.am, main.c, parser.y, scanner.l,
+ test.input: Added test-bison-bridge.
+
+2002-09-12 21:17 John Millaway <millaway@acm.org>
+
+ * configure.in, flex.skl, flex.texi, flexdef.h, gen.c, main.c,
+ misc.c, options.c, options.h, scan.l, tables.h, tests/Makefile.am,
+ tests/descriptions, tests/test-bison-yylloc/scanner.l,
+ tests/test-bison-yylval/scanner.l, tests/test-table-opts/scanner.l:
+ Bison bridge code now works for all C scanners and pure/non-pure
+ bison parsers. Added %option bison-bridge (--bison-bridge).
+ Removed %option reentrant-bison/--reentrant-bison/-Rb. Scanner
+ knows the name of its tables. Tables serialization is OK on EOF.
+ yylineno is present in all scanners. Modified nasty performance
+ penalty warning w/ yylineno. test-table-opts is now run last
+ because it's so fat. Updated manual.
+
+2002-09-12 11:48 John Millaway <millaway@acm.org>
+
+ * flex.texi: documentation of tabels api in manual
+
+2002-09-12 10:54 John Millaway <millaway@acm.org>
+
+ * TODO, tables.c: Renamed *_fwrite to *_write to reflect writer
+ abstraction.
+
+2002-09-11 17:55 John Millaway <millaway@acm.org>
+
+ * devel/tables.pl: Added perl script to read/dump serialized tables
+ in devel/
+
+2002-09-11 17:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: the debian patch used strlen(yytext) and similar
+ constructs--as millaway points out, this is better known as yyleng
+
+2002-09-11 16:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/de.po: new de translation from the translation project
+
+2002-09-11 08:30 John Millaway <millaway@acm.org>
+
+ * flex.skl: yytbl_load now checks tables set by name. Localized
+ var scaope in yytbl_load.
+
+2002-09-10 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.am: make clean before make test
+
+2002-09-09 18:06 John Millaway <millaway@acm.org>
+
+ * TODO, flex.skl: Fixed deserialization of --fast tables.
+
+2002-09-09 16:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: fix typo; remove the yylineo entry
+
+2002-09-09 15:25 John Millaway <millaway@acm.org>
+
+ * TODO, buf.c, dfa.c, flex.skl, flexdef.h, gen.c, main.c, misc.c,
+ options.c, options.h, scan.l, tables.c, tables.h, tables_shared.h,
+ devel/dump-tables.pl, tests/test-table-opts/.cvsignore,
+ tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l:
+ Table deserialization works for everything except --fast scanners.
+ Scanners can auto-verify serialized table integrity via
+ --tables-verify. Added tables API items to TODO list.
+ test-table-opts is becoming exhaustive (a good thing).
+
+2002-09-09 11:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: flex has better internal diagnostics
+
+2002-09-09 11:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, flexdef.h: test for presence of __func__ and
+ compensate if absent
+
+2002-09-09 09:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: include the intl/ subdirectory when searching for
+ include files
+
+2002-09-09 08:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ru.po, po/sv.po: new sv, ru translations from the
+ translation project
+
+2002-09-07 18:40 John Millaway <millaway@acm.org>
+
+ * flex.skl, misc.c: Changed cryptic skeleton markers to readable
+ form.
+
+2002-09-07 00:18 John Millaway <millaway@acm.org>
+
+ * Makefile.am, dfa.c, flex.skl, flex.texi, flexdef.h, gen.c,
+ main.c, misc.c, parse.y, tables.c, tables.h, tables_shared.c,
+ tables_shared.h: Members of struct yy_trans_info are now forced to
+ be the same size. Added shared file tables_shared.c. Separated
+ tables.h from flexdef.h Bulk of table deserialization code is done.
+
+2002-09-06 11:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ca.po: new ca translation
+
+2002-09-06 11:24 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new fr translation
+
+2002-09-06 11:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/fr.po: new french translation from the translation project
+
+2002-09-05 14:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: c99 function defs by default
+
+2002-09-05 14:22 John Millaway <millaway@acm.org>
+
+ * flexdef.h, tables.c: Added flex_die macro. May need some autoconf
+ massaging. Added thorough error checking in tables code.
+
+2002-09-05 14:21 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi: Flex generates C99 defs now. Documented the
+ above change in manual.
+
+2002-09-05 14:12 John Millaway <millaway@acm.org>
+
+ * tests/test-table-opts/: .cvsignore, Makefile.am: Added
+ serialization test to table-opts test.
+
+2002-09-05 12:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: oops, i made a typo
+
+2002-09-05 12:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.19
+
+2002-09-05 10:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: use FLEX_EXIT(), not exit()
+
+2002-09-05 09:53 John Millaway <millaway@acm.org>
+
+ * devel/: 00EXTRACT-ALL-SYMS.sh, README, dump-tables.pl: Added
+ devel/ directory for junk that we don't want in the distribution,
+ but that we want in CVS.
+
+2002-09-05 09:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: s/exit(1)/exit(EXIT_FAILURE)
+
+2002-09-05 09:18 John Millaway <millaway@acm.org>
+
+ * dfa.c, gen.c: Tables are now generated with %option
+ tables-file=FILE.
+
+2002-09-05 09:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch up on a few things
+
+2002-09-05 09:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: prevent segfault on input lines which are longer than the
+ allocated space (problem report from Manoj Srivastava
+ <srivasta@golden-gryphon.com>)
+
+2002-09-05 06:54 John Millaway <millaway@acm.org>
+
+ * flex.texi, main.c, options.c, options.h: Changed option 'header'
+ to 'header-file'. 'header' still works, though.
+
+2002-09-05 06:48 John Millaway <millaway@acm.org>
+
+ * flex.texi, flexdef.h, gen.c, main.c, options.c, options.h,
+ scan.l, tables.c: Tons more work on tables.
+
+2002-09-05 00:24 John Millaway <millaway@acm.org>
+
+ * flexdef.h, gen.c, tables.c, tables_shared.h: Lots of work on
+ tables serialization code.
+
+2002-09-04 08:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs-snapshot: mention GNU indent
+
+2002-09-04 08:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: remove the word after from the version line
+
+2002-09-03 17:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.18
+
+2002-09-03 09:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch up on the NEWS
+
+2002-09-03 09:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.am: target test: quote the results echoing so that
+ the ECHO_C will work on systems where it is used
+
+2002-09-03 09:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: when we don't have GNU indent, the test will
+ generate output on stderr, so we send that to /dev/null
+
+2002-09-03 08:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: fixed bug whereby bison was reported missing even
+ when it was found
+
+2002-09-02 14:44 John Millaway <millaway@acm.org>
+
+ * tables.c: In-code documentation.
+
+2002-09-02 14:44 John Millaway <millaway@acm.org>
+
+ * flexdef.h: Forgot to indent before previous commit.
+
+2002-09-02 13:55 John Millaway <millaway@acm.org>
+
+ * flexdef.h: Added known integer limits if undefined.
+
+2002-08-29 17:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: version 2.5.17
+
+2002-08-29 17:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: more portability fixes; new version number
+
+2002-08-29 16:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexdef.h, main.c, misc.c, scanopt.c: #include fixes; we've
+ factored out all the system include files and put them in flexdef.h
+
+2002-08-29 15:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * dfa.c: eat a blank line
+
+2002-08-29 09:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new config.{sub,guess} files; mention that we use indent on
+ flex
+
+2002-08-28 13:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: warn if no indent found; version 2.5.16
+
+2002-08-28 13:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch up on recent changes; version 2.5.16
+
+2002-08-27 14:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * buf.c, ccl.c, dfa.c, ecs.c, flexdef.h, gen.c, libmain.c,
+ libyywrap.c, main.c, misc.c, nfa.c, options.c, options.h,
+ scanopt.c, scanopt.h, sym.c, tables.c, tables_shared.h, tblcmp.c,
+ yylex.c: ran the indent target; commit the results
+
+2002-08-27 14:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: touch up the indent targeet; it's ready for
+ production use now
+
+2002-08-27 14:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: test for GNU indent; reorder the tests somewhat
+
+2002-08-23 10:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: automake is smarter about autoconf's versioning
+ scheme
+
+2002-08-23 09:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: catch NEWS up on what we've been doing
+
+2002-08-22 13:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * flexdef.h: do some more conditional including for folks without
+ standard systems
+
+2002-08-22 13:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-c++-basic/Makefile.am: use CXX to link the test
+ scanner here
+
+2002-08-22 01:35 John Millaway <millaway@acm.org>
+
+ * flex.texi: Documentation.
+
+2002-08-21 21:49 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Created 'indent' target and added .indent.pro.
+
+2002-08-21 21:42 John Millaway <millaway@acm.org>
+
+ * tests/: test-array-nr/Makefile.am, test-array-r/Makefile.am,
+ test-basic-nr/Makefile.am, test-basic-r/Makefile.am,
+ test-c-cpp-nr/Makefile.am: Fixed missing 'make clean' files.
+
+2002-08-21 21:34 John Millaway <millaway@acm.org>
+
+ * tests/: test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am: fixed missing 'clean' file.
+
+2002-08-21 21:11 John Millaway <millaway@acm.org>
+
+ * flex.skl, tests/test-c++-basic/Makefile.am,
+ tests/test-c++-basic/scanner.l: Removed core of yylex_destroy from
+ c++ scanner -- hack! Added -lstdc++ to LDFLAGS (should we have to
+ do this??)
+
+2002-08-21 10:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: official releases are being hosted by Vern
+
+2002-08-21 09:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: new beta version; more entries in NEWS from
+ millaway; the top level entry for test-c++-basic
+
+2002-08-21 09:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: Makefile.am, test-c++-basic/.cvsignore,
+ test-c++-basic/Makefile.am, test-c++-basic/scanner.l,
+ test-c++-basic/test.input: add test-c++-basic
+
+2002-08-21 02:54 John Millaway <millaway@acm.org>
+
+ * gen.c, nfa.c: More tabels work.
+
+2002-08-20 21:54 John Millaway <millaway@acm.org>
+
+ * flexdef.h, gen.c, tables.c, tables_shared.h: More work on tables.
+
+2002-08-20 19:49 John Millaway <millaway@acm.org>
+
+ * dfa.c: Cleaned up macros that took no ';'.
+
+2002-08-20 19:47 John Millaway <millaway@acm.org>
+
+ * scanopt.c: Fixed oddball '=-'.
+
+2002-08-20 17:42 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, gen.c: Dynamically allocate REJECT state
+ buffer. Mentioned memory usage in docs. Made REJECT buffer
+ variables reentrant-safe.
+
+2002-08-20 17:37 John Millaway <millaway@acm.org>
+
+ * tables.c: More work on tables code.
+
+2002-08-20 10:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, NEWS, configure.in: we're using m4 so have configure
+ test for it
+
+2002-08-20 00:23 John Millaway <millaway@acm.org>
+
+ * Makefile.am, tables.c: Added tables.c and rebuilt dependencies.
+
+2002-08-19 20:30 John Millaway <millaway@acm.org>
+
+ * TODO, flex.texi: Dicussed prototypes and header in manual.
+
+2002-08-19 17:56 John Millaway <millaway@acm.org>
+
+ * Makefile.am, configure.in, flex.skl, flexdef.h, tables_shared.h:
+ More work on tables serialization.
+
+2002-08-19 17:15 John Millaway <millaway@acm.org>
+
+ * Makefile.am, mkskel.sh: Skeleton is now passed through m4 (before
+ dist is built).
+
+2002-08-19 08:51 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: LINGUAS, zh_CN.po: add zh_cn translation from the
+ translation project
+
+2002-08-19 08:51 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: millaway's done a lot of things which need to be mentioned
+ in NEWS
+
+2002-08-18 16:32 John Millaway <millaway@acm.org>
+
+ * main.c: Removed #undef of start conditions.
+
+2002-08-17 18:24 John Millaway <millaway@acm.org>
+
+ * TODO: todo list
+
+2002-08-17 16:04 John Millaway <millaway@acm.org>
+
+ * flexdef.h, main.c, misc.c: Start conditions now optional in
+ header. undef's now optional in header. Start conditions are NOT
+ prefixed.
+
+2002-08-17 13:05 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi: Working on tables API.
+
+2002-08-16 18:32 John Millaway <millaway@acm.org>
+
+ * flexdef.h, main.c, misc.c, options.c, options.h, parse.y, scan.l:
+ Added --tables option. Omitted tables code from generated scanner
+ when unused.
+
+2002-08-16 15:54 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, misc.c: Prelimary work on tables API.
+
+2002-08-16 15:45 John Millaway <millaway@acm.org>
+
+ * tests/: TEMPLATE/Makefile.am, test-array-nr/Makefile.am,
+ test-array-r/Makefile.am, test-basic-nr/Makefile.am,
+ test-basic-r/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-r/Makefile.am, test-debug-nr/Makefile.am,
+ test-debug-r/Makefile.am, test-header-nr/Makefile.am,
+ test-header-r/Makefile.am, test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-mem-nr/Makefile.am,
+ test-mem-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-posix/Makefile.am,
+ test-posixly-correct/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-string-nr/Makefile.am, test-string-r/Makefile.am,
+ test-table-opts/Makefile.am, test-yyextra/Makefile.am: Tests now
+ respect CFLAGS, CPPFLAGS, etc..
+
+2002-08-16 15:03 John Millaway <millaway@acm.org>
+
+ * tests/: test-basic-nr/scanner.l, test-basic-r/scanner.l,
+ test-lineno-nr/scanner.l, test-lineno-r/scanner.l: Got rid of flex
+ -s warnings in tests.
+
+2002-08-16 14:51 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Updated dependencies list.
+
+2002-08-15 17:23 John Millaway <millaway@acm.org>
+
+ * main.c: Fixed seg fault bug in ecs.
+
+2002-08-15 17:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-c-cpp-nr/.cvsignore, test-c-cpp-r/.cvsignore: ignore
+ .cpp files since we generate them instead of .c
+
+2002-08-15 11:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: version 2.5.14
+
+2002-08-15 11:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: c-as-c++ tests reworked
+
+2002-08-15 11:15 John Millaway <millaway@acm.org>
+
+ * tests/: test-c-cpp-nr/Makefile.am, test-c-cpp-nr/scanner.l,
+ test-c-cpp-r/Makefile.am, test-c-cpp-r/scanner.l: The c++ tests use
+ .cpp instead of .c extensions just to be on the safe side.
+
+2002-08-15 10:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: conditionally include <locale.h>; include config.h as
+ well
+
+2002-08-15 10:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, flex.skl: only include <cunistd> if we have it
+
+2002-08-15 10:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: portability fixes; added missing punctuation; de
+ translation now included
+
+2002-08-15 10:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/LINGUAS: we also translate to german
+
+2002-08-15 09:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: require automake at least 1.6
+
+2002-08-15 08:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.13
+
+2002-08-14 10:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: reverted away from the @copying as it breaks the info
+ reader
+
+2002-08-13 20:46 John Millaway <millaway@acm.org>
+
+ * flex.texi, flexdef.h, main.c, misc.c: Start condition prefixes
+ attempts to adjust to user preferences.
+
+2002-08-13 17:19 John Millaway <millaway@acm.org>
+
+ * main.c: Include start condition symbols in header.
+
+2002-08-13 15:16 John Millaway <millaway@acm.org>
+
+ * flexdef.h, main.c: Omit user code and tables from generated
+ header file.
+
+2002-08-13 09:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: use @copying construct to display the flex license;
+ move copying and bug reporting to the front of the manual
+
+2002-08-13 09:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: printf fix and yylex_init reports errors
+
+2002-08-12 19:15 John Millaway <millaway@acm.org>
+
+ * flex.texi: Updated manual for %option header.
+
+2002-08-12 15:36 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, gen.c: Fixed type mismatch in printf.
+ yylex_init now reports errors.
+
+2002-08-10 13:22 John Millaway <millaway@acm.org>
+
+ * dfa.c, main.c: Added alignment flag for future use.
+
+2002-08-10 13:17 John Millaway <millaway@acm.org>
+
+ * tests/test-table-opts/: .cvsignore, Makefile.am: Added options to
+ test-table-opts
+
+2002-08-10 12:39 John Millaway <millaway@acm.org>
+
+ * configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-c-cpp-nr/Makefile.am, tests/test-table-opts/.cvsignore,
+ tests/test-table-opts/Makefile.am, tests/test-table-opts/scanner.l,
+ tests/test-table-opts/test.input: Added a test for various DFA
+ table options.
+
+2002-08-09 16:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more faq editing; corrected mistyped nodenames
+
+2002-08-09 13:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: fix typo which propogates out to generated scanners
+
+2002-08-09 10:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: edited a few more faqs
+
+2002-08-09 10:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, faq.texi: remove faq.texi as it's included in
+ flex.texi
+
+2002-08-08 17:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: a few more faq edits; remove faq-89
+
+2002-08-08 16:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: cite, not site
+
+2002-08-08 16:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: and get the faq included
+
+2002-08-08 16:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: fix some grammer/typography in the top node and add a
+ detailed menu
+
+2002-08-08 13:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we've updated gettext
+
+2002-08-08 13:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/.cvsignore: we need to ignore a few more gettext files
+
+2002-08-08 11:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.12
+
+2002-08-08 10:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: mention gettext; document the non-need for bison/flex in
+ the build process
+
+2002-08-08 10:51 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in: include intl in the distribution and
+ in the build process
+
+2002-08-08 10:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: builddir in help2man call needed @-signs around it
+
+2002-08-08 09:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/.cvsignore: we can ignore Makefile.in.in
+
+2002-08-08 09:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * m4/: .cvsignore, Makefile.am: oops, too hasty on deleting this
+ directory, sigh
+
+2002-08-08 09:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: if autopoint is going to run automatically, it's
+ going to need to be able to update existing files
+
+2002-08-08 09:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * ABOUT-NLS, autogen.sh, configure.in, m4/.cvsignore,
+ m4/Makefile.am, m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4,
+ m4/iconv.m4, m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-ld.m4,
+ m4/lib-link.m4, m4/lib-prefix.m4, m4/progtest.m4: autopoint now
+ works so let's let it run the gettext show
+
+2002-08-07 13:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we need to index the faq entries
+
+2002-08-07 13:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * faq.texi: proofed "Why do flex scanners call fileno if it is not
+ ANSI compatible?"
+
+2002-08-07 13:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * faq.texi: proofed "How do I expand \ escape sequences in C-style
+ quoted strings?"
+
+2002-08-07 13:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: changes to README to align with GNU coding standards
+
+2002-08-06 09:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: help2man should look in builddir for the flex binary
+
+2002-08-02 16:23 John Millaway <millaway@acm.org>
+
+ * flex.skl: Fixed yyunput prototype.
+
+2002-08-01 11:35 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new fr translation from the translation project
+
+2002-08-01 10:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/fr.po: new fr.po translation from the translation project
+
+2002-08-01 10:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: yylineno performance hit is fixed
+
+2002-07-31 17:29 John Millaway <millaway@acm.org>
+
+ * TODO, flex.texi: Updated docs on yylineno.
+
+2002-07-31 15:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: discuss yylineno performance
+
+2002-07-31 13:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: forgot to say what the date was that we made the release
+
+2002-07-31 10:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: version 2.5.11
+
+2002-07-31 10:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * faq.texi: fixed a menu entry and related problems
+
+2002-07-31 10:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: someday, maybe we can use autopoint
+
+2002-07-31 09:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: we need to include texinfo.tex now
+
+2002-07-31 09:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * texinfo.tex: add texinfo.tex
+
+2002-07-30 11:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * faq.texi: fix up some fatal bugs in the texinfo of the faq; begin
+ the clean up; remove trailing and leading white space
+
+2002-07-30 11:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: faqs need work
+
+2002-07-30 09:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, TODO: prototypes get airtime these days
+
+2002-07-28 16:02 John Millaway <millaway@acm.org>
+
+ * flex.skl: Added some comments.
+
+2002-07-28 14:27 John Millaway <millaway@acm.org>
+
+ * flex.skl: Fixed bug where yyless did not consider yylineno.
+
+2002-07-28 01:45 John Millaway <millaway@acm.org>
+
+ * scan.l: Fixed bug I created in previous commit.
+
+2002-07-28 01:38 John Millaway <millaway@acm.org>
+
+ * scan.l: Don't wrap ()s around {NAMEDEFS} at the end of a rule.
+
+2002-07-27 17:37 John Millaway <millaway@acm.org>
+
+ * flex.skl, tests/test-c-cpp-nr/Makefile.am,
+ tests/test-c-cpp-r/Makefile.am: Fixed test-c-cpp to actually use
+ the C++ compiler for the test. Fixed the bug that this exposed.
+
+2002-07-27 15:34 John Millaway <millaway@acm.org>
+
+ * ccl.c, flex.skl, flexdef.h, gen.c, main.c, nfa.c, parse.y,
+ scan.l: yylineno check is only performed on rules whose regexs can
+ match a newline.
+
+2002-07-24 20:43 John Millaway <millaway@acm.org>
+
+ * flex.skl, tests/TEMPLATE/scanner.l,
+ tests/test-array-nr/scanner.l, tests/test-array-r/scanner.l,
+ tests/test-basic-nr/scanner.l, tests/test-basic-r/scanner.l,
+ tests/test-bison-yylloc/parser.y, tests/test-c-cpp-nr/scanner.l,
+ tests/test-c-cpp-r/scanner.l, tests/test-debug-nr/scanner.l,
+ tests/test-debug-r/scanner.l,
+ tests/test-include-by-buffer/scanner.l,
+ tests/test-include-by-reentrant/scanner.l,
+ tests/test-lineno-nr/scanner.l, tests/test-lineno-r/scanner.l,
+ tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l,
+ tests/test-posix/scanner.l, tests/test-posixly-correct/scanner.l,
+ tests/test-prefix-nr/scanner.l, tests/test-prefix-r/scanner.l,
+ tests/test-pthread/scanner.l, tests/test-string-nr/scanner.l,
+ tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l: All
+ prototypes were rewritten to depend upon the macro
+ YY_TRADITIONAL_FUNC_DEFS, which is defined by default. The
+ generated scanners build cleanly under gcc's traditional strictness
+ and under C++ compilers.
+
+2002-07-24 11:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: dist-bzip2 and rename yy_globals and yy_globals_t
+
+2002-07-24 11:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: version 2.5.10
+
+2002-07-24 11:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add dist-bzip2 to automake_options so we'll start
+ getting tar.bz2 archives
+
+2002-07-23 16:11 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, tests/test-bison-yylval/scanner.l,
+ tests/test-mem-r/scanner.l,
+ tests/test-multiple-scanners-r/scanner-1.l,
+ tests/test-multiple-scanners-r/scanner-2.l,
+ tests/test-prefix-r/scanner.l, tests/test-pthread/scanner.l,
+ tests/test-yyextra/scanner.l: s/yy_globals_t/yyguts_t/g
+ s/yy_globals/yyscanner/g
+
+2002-07-23 13:55 John Millaway <millaway@acm.org>
+
+ * Makefile.am: typo in tags target
+
+2002-07-22 12:18 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Removed erroneous $(srcdir) from help2man target.
+
+2002-07-22 10:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, configure.in: it's version 2.5.9 now
+
+2002-07-22 09:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/.cvsignore: updated gettext to 0.11.3
+
+2002-07-22 09:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * ABOUT-NLS, config.rpath, m4/gettext.m4, m4/iconv.m4,
+ m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-link.m4: updated gettext
+ to version 0.11.3
+
+2002-07-22 09:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh, configure.in: rollback on configure.in and autogen.sh
+ because autpoint is broken
+
+2002-07-22 09:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ru.po: new russian translation from translation project
+
+2002-07-19 17:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: ok, we're going to start using autopoint, but the
+ tree is going to undergo some changes after this
+
+2002-07-19 17:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: we're preparing for autopoint
+
+2002-07-17 11:57 John Millaway <millaway@acm.org>
+
+ * flex.texi: Updated manual.
+
+2002-07-17 08:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: update the NEWS file for lots of things millaway has done
+
+2002-07-17 02:46 John Millaway <millaway@acm.org>
+
+ * flex.skl, main.c, misc.c, scan.l, scanopt.c, sym.c,
+ tests/test-mem-nr/scanner.l, tests/test-mem-r/scanner.l: Fixed
+ prototype/definition conflicts with "traditional" C in skeleton at
+ request of gcc developer. Removed duplicate prototypes in gen.c,
+ sym.c, main.c. Added missing prototypes where needed. All
+ functions in skeleton follow ISO C style protos and defs, instead
+ of BOTH ISO and new-style. Skeleton now compiles cleanly under
+ super-strict gcc flags. Flex itself almost compiles cleanly under
+ strict flags.
+
+2002-07-15 14:59 John Millaway <millaway@acm.org>
+
+ * faq.texi, flex.texi: Worked on mem mgmt sect of manual.
+
+2002-07-15 12:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: allow blank lines and continuations in more places
+
+2002-07-12 13:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: millaway finished the faqs directory
+
+2002-07-12 13:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: removed items as per email from millaway
+
+2002-07-12 12:23 John Millaway <millaway@acm.org>
+
+ * configure.in, tests/Makefile.am, tests/descriptions,
+ tests/test-posix/.cvsignore, tests/test-posix/Makefile.am,
+ tests/test-posix/scanner.l, tests/test-posixly-correct/.cvsignore,
+ tests/test-posixly-correct/Makefile.am,
+ tests/test-posixly-correct/scanner.l: Added test for %option
+ posix-compat and repeat operator. Added test for POSIXLY_CORRECT
+ environment variable and repeat operator.
+
+2002-07-12 12:21 John Millaway <millaway@acm.org>
+
+ * main.c, scan.l: Fixed POSIXLY_CORRECT detection in scanner.
+
+2002-07-11 16:27 John Millaway <millaway@acm.org>
+
+ * faq.texi: More work on faq.
+
+2002-07-11 16:06 John Millaway <millaway@acm.org>
+
+ * faq.texi: Moved all faqs into manual -- but did not evaluate them
+ yet. Removed the old faq files.
+
+2002-07-10 17:59 John Millaway <millaway@acm.org>
+
+ * main.c: Removed duplicate definition of FLEX_DEBUG. gcc doesn't
+ care, but other compilers might.
+
+2002-07-10 17:55 John Millaway <millaway@acm.org>
+
+ * flex.texi: Wrote some more about memory mgmt in the manual.
+
+2002-07-10 11:43 John Millaway <millaway@acm.org>
+
+ * flex.texi: flex.texi now works with install-info.
+
+2002-07-10 10:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: added items as per email from millaway
+
+2002-07-10 10:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: after we release a version, we have to keep the version
+ number in NEWS current
+
+2002-07-09 20:04 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, main.c, scan.l, tests/test-mem-nr/scanner.l,
+ tests/test-mem-r/scanner.l: Fixed prefix issue with get/set debug
+ functions. Fixed prefix issues with memory functions.
+
+2002-07-09 19:35 John Millaway <millaway@acm.org>
+
+ * flex.skl: Memory functions are no longer static.
+
+2002-07-09 19:02 John Millaway <millaway@acm.org>
+
+ * tests/test-mem-nr/test.input: Added a missing input file for
+ test-mem-nr/
+
+2002-07-09 18:47 John Millaway <millaway@acm.org>
+
+ * tests/: test-mem-nr/.cvsignore, test-mem-nr/Makefile.am,
+ test-mem-nr/scanner.l, test-mem-r/.cvsignore,
+ test-mem-r/Makefile.am, test-mem-r/scanner.l,
+ test-mem-r/test.input: Added tests for overriding memory.
+
+2002-07-09 18:45 John Millaway <millaway@acm.org>
+
+ * flex.texi: Added sections in manual for memory management.
+
+2002-07-09 17:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: noted more user visible changes
+
+2002-07-09 16:52 John Millaway <millaway@acm.org>
+
+ * configure.in, flex.skl, scan.l, tests/Makefile.am: Added
+ yylex_destroy() to non-reentrant scanner. Added ability to
+ override memory functions. Added tests for overriding memory
+ functions.
+
+2002-07-09 14:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: new POSIXLY_CORRECT and new ru translation
+
+2002-07-09 14:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ru.po: new ru translation from the translation project
+
+2002-07-09 14:25 John Millaway <millaway@acm.org>
+
+ * flex.texi: Made note of set/get debug in docs.
+
+2002-07-09 14:11 John Millaway <millaway@acm.org>
+
+ * configure.in, flexdef.h, tests/create-test: Replaced obsolete
+ macros in configure.in. Modified create-test to handle the above
+ changes in configure.in. Added support for <stdbool.h>.
+
+2002-07-09 13:27 John Millaway <millaway@acm.org>
+
+ * main.c: Check POSIXLY_CORRECT env variable.
+
+2002-07-09 12:43 John Millaway <millaway@acm.org>
+
+ * flex.skl: Added prototypes for the get/set debug functions.
+
+2002-07-09 12:37 John Millaway <millaway@acm.org>
+
+ * configure.in, flex.skl, gen.c, main.c, scan.l, tests/Makefile.am,
+ tests/test-debug-nr/.cvsignore, tests/test-debug-nr/Makefile.am,
+ tests/test-debug-nr/scanner.l, tests/test-debug-nr/test.input,
+ tests/test-debug-r/.cvsignore, tests/test-debug-r/Makefile.am,
+ tests/test-debug-r/scanner.l, tests/test-debug-r/test.input: Made
+ yy_flex_debug non-global in reentrant scanner. Created get/set
+ functions for yy_flex_debug. Defined prefixes for new
+ yy_flex_debug symbols. Added tests/ for yy_flex_debug.
+
+2002-07-09 12:31 John Millaway <millaway@acm.org>
+
+ * tests/create-test: create-test script now modifies .cvsignore
+
+2002-07-09 12:22 John Millaway <millaway@acm.org>
+
+ * tests/create-test: Improved the error checking.
+
+2002-07-03 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: fix bug whereby prefix didn't get passed to everybody;
+ patch by rse@engelschall.com
+
+2002-07-03 08:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * faq.texi: ~ is an active character, so we'll just use the word
+ 'about'
+
+2002-07-02 18:59 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Fixed typo.
+
+2002-07-02 15:47 John Millaway <millaway@acm.org>
+
+ * faq.texi: Added a faq.
+
+2002-06-28 19:05 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Added 'tags' target -- something I should have done
+ long ago.
+
+2002-06-28 12:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add two new items regarding coding; remove tests/ copyright
+ notice item as it's done
+
+2002-06-26 08:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: note the copyright messages in tests/
+
+2002-06-25 15:37 John Millaway <millaway@acm.org>
+
+ * tests/: TEMPLATE/Makefile.am, TEMPLATE/parser.y,
+ TEMPLATE/scanner.l, test-array-nr/Makefile.am,
+ test-array-nr/scanner.l, test-array-r/Makefile.am,
+ test-array-r/scanner.l, test-basic-nr/Makefile.am,
+ test-basic-nr/scanner.l, test-basic-r/Makefile.am,
+ test-basic-r/scanner.l, test-bison-yylloc/Makefile.am,
+ test-bison-yylloc/main.c, test-bison-yylloc/parser.y,
+ test-bison-yylloc/scanner.l, test-bison-yylval/Makefile.am,
+ test-bison-yylval/main.c, test-bison-yylval/parser.y,
+ test-bison-yylval/scanner.l, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-nr/scanner.l, test-c-cpp-r/Makefile.am,
+ test-c-cpp-r/scanner.l, test-header-nr/Makefile.am,
+ test-header-nr/main.c, test-header-nr/scanner.l,
+ test-header-r/Makefile.am, test-header-r/main.c,
+ test-header-r/scanner.l, test-include-by-buffer/Makefile.am,
+ test-include-by-buffer/scanner.l,
+ test-include-by-reentrant/Makefile.am,
+ test-include-by-reentrant/scanner.l, test-lineno-nr/Makefile.am,
+ test-lineno-nr/scanner.l, test-lineno-r/Makefile.am,
+ test-lineno-r/scanner.l, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-nr/main.c,
+ test-multiple-scanners-nr/scanner-1.l,
+ test-multiple-scanners-nr/scanner-2.l,
+ test-multiple-scanners-r/Makefile.am,
+ test-multiple-scanners-r/main.c,
+ test-multiple-scanners-r/scanner-1.l,
+ test-multiple-scanners-r/scanner-2.l, test-prefix-nr/Makefile.am,
+ test-prefix-nr/scanner.l, test-prefix-r/Makefile.am,
+ test-prefix-r/scanner.l, test-pthread/Makefile.am,
+ test-pthread/scanner.l, test-string-nr/Makefile.am,
+ test-string-nr/scanner.l, test-string-r/Makefile.am,
+ test-string-r/scanner.l, test-yyextra/Makefile.am,
+ test-yyextra/scanner.l: Prepended explicit license to all test-*/
+ sources.
+
+2002-06-25 08:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, po/ca.po, po/de.po, po/fr.po, po/sv.po, po/tr.po: new ca,
+ de, fr, sv, tr translations
+
+2002-06-19 09:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add bootstrapper to the todo list
+
+2002-06-19 09:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: new version number
+
+2002-06-19 09:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: update TODO list
+
+2002-06-19 09:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, TODO, flex.texi, flexdef.h, main.c, options.c, options.h,
+ parse.y, scan.l: address typos in NEWS; add --posix option for ERE
+ parsing the way posix wants it; update the TODO file
+
+2002-05-31 13:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * README-alpha: made code quality warning more explicit; gave url
+ for cvs and beta flex
+
+2002-05-23 11:53 John Millaway <millaway@acm.org>
+
+ * gen.c: Fixed bug where omission of user section 3 caused
+ unmatched #ifdef's in generated code.
+
+2002-05-20 08:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: configure.in requires at least autoconf 2.50
+
+2002-05-13 14:45 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Updated my email address.
+
+2002-05-10 15:33 John Millaway <millaway@acm.org>
+
+ * flexdef.h, misc.c: chomp'd lines when reading external skel file.
+
+2002-05-07 11:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/sv.po: new sweedish translation from the translation project
+
+2002-04-29 11:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ca.po: new catalan translation from the translation project
+
+2002-04-29 11:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/es.po: new spanish translation from the translation project
+
+2002-04-25 17:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: note that the lex matching of abc{1,3} is the posix
+ behavior and so we have a problem
+
+2002-04-25 17:53 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: note that the lex matching of abc{1,3} is the posix
+ behavior
+
+2002-04-23 07:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: new version 2.5.7; use autoconf versioning info
+
+2002-04-23 07:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: note changes in 2.5.7
+
+2002-04-23 06:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: conditional compile gettext initialization
+
+2002-04-22 13:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/de.po: new german translation from the translation project
+
+2002-04-19 18:40 John Millaway <millaway@acm.org>
+
+ * tests/test-include-by-reentrant/Makefile.am: Fixed command line
+ for test-include-by-reentrant/Makefile.am
+
+2002-04-19 18:30 John Millaway <millaway@acm.org>
+
+ * tests/: Makefile.am, TEMPLATE/Makefile.am,
+ test-array-nr/Makefile.am, test-array-r/Makefile.am,
+ test-basic-nr/Makefile.am, test-basic-r/Makefile.am,
+ test-bison-yylloc/Makefile.am, test-bison-yylval/Makefile.am,
+ test-c-cpp-nr/Makefile.am, test-c-cpp-r/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-string-nr/Makefile.am, test-string-r/Makefile.am,
+ test-yyextra/Makefile.am: Added -I . to compiler search path in
+ tests (so it finds the generated parser.h).
+
+2002-04-19 18:20 John Millaway <millaway@acm.org>
+
+ * flexdef.h, misc.c, parse.y, sym.c: Applied 'const' to a few more
+ char*, where appropriate.
+
+2002-04-19 17:54 John Millaway <millaway@acm.org>
+
+ * tests/: TEMPLATE/Makefile.am, test-array-nr/Makefile.am,
+ test-array-r/Makefile.am, test-basic-nr/Makefile.am,
+ test-basic-r/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-r/Makefile.am, test-header-nr/Makefile.am,
+ test-header-r/Makefile.am, test-include-by-buffer/Makefile.am,
+ test-include-by-reentrant/Makefile.am, test-lineno-nr/Makefile.am,
+ test-lineno-r/Makefile.am, test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-prefix-nr/Makefile.am,
+ test-prefix-r/Makefile.am, test-pthread/Makefile.am,
+ test-string-nr/Makefile.am, test-string-r/Makefile.am,
+ test-yyextra/Makefile.am: Added top_builddir to -I path. Changed
+ $(srcdir)/$(testname) to ./$(testname) in 'make test' rule.
+
+2002-04-19 17:53 John Millaway <millaway@acm.org>
+
+ * flexdef.h, gen.c, misc.c: Changed 'char[]' to 'const char*'
+ wherever in conflicted with gettext.
+
+2002-04-19 10:35 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: fr.po, sv.po: new files from translation after 2.5.6 beta
+ release
+
+2002-04-18 19:01 John Millaway <millaway@acm.org>
+
+ * tests/test-lineno-r/Makefile.am: Fixed minor typo/cut and paste
+ error.
+
+2002-04-18 18:07 John Millaway <millaway@acm.org>
+
+ * configure.in: Added yylineno test.
+
+2002-04-18 18:06 John Millaway <millaway@acm.org>
+
+ * tests/Makefile.am: Added yylineno tests.
+
+2002-04-18 18:06 John Millaway <millaway@acm.org>
+
+ * tests/: test-lineno-nr/.cvsignore, test-lineno-nr/Makefile.am,
+ test-lineno-nr/scanner.l, test-lineno-nr/test.input,
+ test-lineno-r/.cvsignore, test-lineno-r/Makefile.am,
+ test-lineno-r/scanner.l, test-lineno-r/test.input: Created yylineno
+ tests.
+
+2002-04-15 16:49 John Millaway <millaway@acm.org>
+
+ * scanopt.c: Applied gettext macros to error messages from scanopt.
+
+2002-04-15 16:46 John Millaway <millaway@acm.org>
+
+ * buf.c, faq.texi, options.c, options.h, scanopt.c, scanopt.h:
+ Changed copyright from Millaway to flex? U.S. Gov't? Regents of U.
+ Cali.? Paxson?
+
+2002-04-15 10:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-bison-yylloc/Makefile.am,
+ test-header-nr/Makefile.am, test-header-r/Makefile.am: we missed a
+ few main.c files in the distribution
+
+2002-04-15 08:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: a lot more work has happened to flex; note this by removing
+ a number of TODO entries
+
+2002-04-15 07:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: make sure all gettext modules use gettext translation
+ facilities
+
+2002-04-14 15:53 John Millaway <millaway@acm.org>
+
+ * faq.texi: Converted faqs 34-41 to texinfo.
+
+2002-04-14 14:42 John Millaway <millaway@acm.org>
+
+ * Makefile.am, faq.texi, flex.texi: Added faq.texi to archive.
+ Added faq.texi to flex_TEXINFOS macro in Makefile.am. flex.texi
+ now includes faq.texi.
+
+2002-04-13 00:16 John Millaway <millaway@acm.org>
+
+ * flexdef.h: defined FLEX_EXIT macro to call longjmp on errors.
+
+2002-04-13 00:08 John Millaway <millaway@acm.org>
+
+ * main.c, misc.c: Replaced exit(2) calls with longjmps (in the form
+ of FLEX_EXIT macro). Moved main() to flex_main() to allow flex to
+ be called from a library.
+
+2002-04-13 00:06 John Millaway <millaway@acm.org>
+
+ * scanopt.c: Fixed minor typo in error message
+
+2002-04-12 12:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-header-nr/Makefile.am, test-header-r/Makefile.am,
+ test-multiple-scanners-nr/Makefile.am,
+ test-multiple-scanners-r/Makefile.am, test-pthread/Makefile.am,
+ test-string-nr/Makefile.am, test-string-r/Makefile.am,
+ test-yyextra/Makefile.am: removed eroneous files listed in
+ EXTRA_DIST
+
+2002-04-12 12:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-yyextra/.cvsignore: ignore Makefile.in
+
+2002-04-12 12:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-string-r/.cvsignore: it's Makefile.in, not makefile.in
+
+2002-04-12 12:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-yyextra/: Makefile.am, Makefile.in: put test-yyextra
+ under automake
+
+2002-04-12 11:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-string-r/: Makefile.am, Makefile.in: put test-string-r
+ under automake
+
+2002-04-12 11:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-string-nr/.cvsignore, test-string-r/.cvsignore: we
+ can ignore Makefile.in
+
+2002-04-12 11:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-string-nr/: Makefile.am, Makefile.in: put
+ test-string-nr under automake
+
+2002-04-12 11:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-pthread/.cvsignore: ignore Makefile.in
+
+2002-04-12 11:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-pthread/: Makefile.am, Makefile.in: put test-pthread
+ under automake
+
+2002-04-12 11:24 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-r/.cvsignore: we can ignore Makefile.in
+
+2002-04-12 11:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-r/: Makefile.am, Makefile.in: put test-prefix-r
+ under automake
+
+2002-04-12 11:20 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-nr/.cvsignore: we can ignore Makefile.in
+
+2002-04-12 11:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-nr/: Makefile.am, Makefile.in: put
+ test-prefix-nr under automake
+
+2002-04-12 08:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-multiple-scanners-r/.cvsignore: we can ignore
+ Makefile.in now
+
+2002-04-12 08:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-multiple-scanners-r/: Makefile.am, Makefile.in: put
+ test-multiple-scanners-r under automake
+
+2002-04-12 07:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-multiple-scanners-nr/.cvsignore: we can ignore
+ Makefile.in now
+
+2002-04-12 07:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-multiple-scanners-nr/: Makefile.am, Makefile.in: put
+ test-multiple-scanners-nr under automake
+
+2002-04-11 07:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-c-cpp-nr/Makefile.am, test-c-cpp-r/Makefile.am: we
+ didn't need parser.y
+
+2002-04-11 07:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: work done on the test suite; remove relevant entries from
+ TODO
+
+2002-04-10 13:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-include-by-reentrant/: .cvsignore, Makefile.am,
+ Makefile.in: put test-include-by-reentrant under automake
+
+2002-04-09 09:52 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-include-by-buffer/.cvsignore: we have a Makefile.in
+ which we need to ignore
+
+2002-04-09 09:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-include-by-buffer/: Makefile.am, Makefile.in:
+ test-include-by-buffer now under automake control
+
+2002-04-09 09:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: and we want LFLAGS in the rule to
+ make scanner.c as well
+
+2002-04-09 09:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-header-r/: .cvsignore, Makefile.am, Makefile.in: put
+ test-header-r under automake
+
+2002-04-09 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-header-nr/.cvsignore: we now generate a Makefile.in
+ from automake; cvs should ignore it
+
+2002-04-09 09:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-header-nr/Makefile.am: add dependencies for main.o and
+ scaner.h
+
+2002-04-09 09:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: We may want to have LFLAGS readily
+ available
+
+2002-04-09 08:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-header-nr/: Makefile.am, Makefile.in: put
+ test-header-nr under automake
+
+2002-04-09 08:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/Makefile.am: oops, we need to clean objects too
+
+2002-04-09 08:35 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/Makefile.am, test-array-nr/Makefile.am,
+ test-array-r/Makefile.am, test-basic-nr/Makefile.am,
+ test-basic-r/Makefile.am, test-bison-yylloc/Makefile.am,
+ test-bison-yylval/Makefile.am, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-r/Makefile.am: now that config.h lives in the top-level
+ directory, we need to tell the testsuite
+
+2002-04-08 11:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-array-nr/.cvsignore, test-array-r/.cvsignore,
+ test-basic-nr/.cvsignore, test-basic-r/.cvsignore,
+ test-bison-yylval/.cvsignore, test-c-cpp-nr/.cvsignore,
+ test-c-cpp-r/.cvsignore: we can ignore some Makefile.in
+
+2002-04-08 11:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in, tests/TEMPLATE/Makefile.am: only one config file
+ header apparently; this will have consequences in the test suite
+
+2002-04-08 10:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-bison-yylval/: Makefile.am, Makefile.in: adding
+ automake support
+
+2002-04-08 10:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-bison-yylloc/: .cvsignore, Makefile.am: tuned
+ Makefile.am to build correctly; ignore Makefile.in now
+
+2002-04-08 09:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/configure.in: test suite changes
+
+2002-04-08 09:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/.cvsignore, TEMPLATE/Makefile.am,
+ TEMPLATE/Makefile.in, test-array-nr/Makefile.am,
+ test-array-nr/Makefile.in, test-array-r/Makefile.am,
+ test-array-r/Makefile.in, test-basic-nr/Makefile.am,
+ test-basic-nr/Makefile.in, test-basic-r/Makefile.am,
+ test-basic-r/Makefile.in, test-bison-yylloc/Makefile.am,
+ test-bison-yylloc/Makefile.in, test-c-cpp-nr/Makefile.am,
+ test-c-cpp-nr/Makefile.in, test-c-cpp-r/Makefile.am,
+ test-c-cpp-r/Makefile.in: test suite changes
+
+2002-04-08 09:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh, configure.in, tests/.cvsignore, tests/Makefile.am,
+ tests/Makefile.in, tests/README, tests/configure.in,
+ tests/create-test, tests/create-test.pl: test suite changes
+
+2002-04-05 14:18 John Millaway <millaway@acm.org>
+
+ * flex.texi: Corrected error in manual regarding return type for
+ yy_scan_{string,buffer,bytes}.
+
+2002-04-05 08:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/de.po: new german translations from the translation project
+
+2002-04-03 13:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/es.po: new spanish translations
+
+2002-04-01 11:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: DIST_SUBDIRS: new variable. we can build flex with
+ SUBDIRS and then build the distribution using DIST_SUBDIRS
+
+2002-04-01 08:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: fix typo in comment
+
+2002-03-31 12:17 John Millaway <millaway@acm.org>
+
+ * main.c: Documented the header file kludge, (in anticipation of
+ buffering Section 1.)
+
+2002-03-30 22:26 John Millaway <millaway@acm.org>
+
+ * flex.texi: Created appendix "Makefiles and Flex" in the manual.
+
+2002-03-29 19:12 John Millaway <millaway@acm.org>
+
+ * flex.texi: updating manual.
+
+2002-03-29 17:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/POTFILES.in: we want parse.y, not parse.c
+
+2002-03-29 16:37 John Millaway <millaway@acm.org>
+
+ * flex.texi: Indexing the manual (75% done).
+
+2002-03-29 16:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: unlisted intermediate flex/yacc-created files
+
+2002-03-29 15:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: millaway has done more work
+
+2002-03-29 15:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in: ok, one last touch up; users most
+ likely wont have help2man so we need to insure that's ok
+
+2002-03-29 14:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: fine tune flex.1 some more
+
+2002-03-29 14:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, configure.in: generalize the manpage a bit and tell
+ autofoo about help2man
+
+2002-03-29 12:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/da.po: new danish from translation project robot
+
+2002-03-28 16:02 John Millaway <millaway@acm.org>
+
+ * flex.texi: Indexing the manual -- it's only half done.
+
+2002-03-28 15:57 John Millaway <millaway@acm.org>
+
+ * flex.texi: flex manual now uses automake's versioning info.
+
+2002-03-28 14:55 John Millaway <millaway@acm.org>
+
+ * README.cvs-snapshot: Mentioned requirements for gettext and
+ help2man.
+
+2002-03-28 14:52 John Millaway <millaway@acm.org>
+
+ * Makefile.am, main.c: Output of `flex --version` now matches GNU
+ coding standards. Makefile.am now uses `help2man` to generate
+ flex.1
+
+2002-03-27 08:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: millaway has done a lot on the TODO list; remove those
+ items that he has take care of
+
+2002-03-27 08:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * README.cvs-snapshot: edited millaway's initial draft
+
+2002-03-26 20:09 John Millaway <millaway@acm.org>
+
+ * README.cvs-snapshot: Created file.
+
+2002-03-26 19:28 John Millaway <millaway@acm.org>
+
+ * flex.texi: Fixed case of node names in flex.texi.
+
+2002-03-24 16:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: lex- and yacc- generated files
+
+2002-03-24 14:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/fr.po: new french
+
+2002-03-18 08:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: ending periods in news items removed; mention nounistd
+ options
+
+2002-03-18 08:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/sv.po: updated sweedish translations
+
+2002-03-18 08:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/de.po: german translation
+
+2002-03-18 02:50 John Millaway <millaway@acm.org>
+
+ * flex.skl, flex.texi, main.c, options.c, options.h, scan.l:
+ Removed CFront 1.2 -specific code from skeleton, because CFront now
+ defines __cplusplus properly. Removed TurboC-specific code from
+ skeleton. Skeleton now includes proper C++ standard headers.
+ Relocated "unistd.h" code after user section 1 to allow user to
+ overrid it. New option "nounistd" to suppress unistd.h from being
+ included.
+
+2002-03-15 11:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/tr.po: new turkish translation
+
+2002-03-15 10:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: mention included translations
+
+2002-03-15 10:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we've done the gettext thing, but sometime we should get
+ 0.11.1
+
+2002-03-15 10:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ca.po: new catalan translation
+
+2002-03-14 18:23 John Millaway <millaway@acm.org>
+
+ * flex.texi: Added section on format of comments.
+
+2002-03-14 17:18 John Millaway <millaway@acm.org>
+
+ * flex.texi: Split format chapter into sections.
+
+2002-03-14 16:51 John Millaway <millaway@acm.org>
+
+ * flex.texi: Removed explicit pointers in node definitions.
+
+2002-03-14 16:31 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: unistd.h can be problematic
+
+2002-03-14 09:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/README: editing changes to README
+
+2002-03-13 15:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/POTFILES.in: scan.l, not scan.c because gettext gets confused
+
+2002-03-13 12:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: gettext cruft
+
+2002-03-13 10:57 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/descriptions: separate out test descriptions
+
+2002-03-13 09:34 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/LINGUAS: french and korean dont crash now
+
+2002-03-12 16:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: fr.po, ko.po: remove duplicate messages as per advice from
+ Jordi Mallach <jordi@debian.org>
+
+2002-03-12 14:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * gettext.h: yes, more gettext cruft
+
+2002-03-12 14:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4,
+ m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4,
+ m4/lib-prefix.m4, m4/progtest.m4, ABOUT-NLS, config.rpath: this is
+ gettext cruft
+
+2002-03-12 13:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: gettext and autofoo are now involved
+
+2002-03-12 13:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, autogen.sh, configure.in, flexdef.h, main.c: mostly,
+ changes for gettext
+
+2002-03-12 13:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: ca.po, da.po, es.po, ru.po, sv.po, tr.po: these sure change
+ a lot
+
+2002-03-12 13:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: note about cvs documentation
+
+2002-03-12 13:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/LINGUAS: we now have turkish
+
+2002-03-12 13:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/tr.po: updated translations, i think
+
+2002-03-12 12:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: ca.po, da.po, es.po, fr.po, ko.po, ru.po, sv.po, tr.po: ok,
+ maybe we do keep these things?
+
+2002-03-12 12:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * README-alpha: README-alpha for those bad-hair days
+
+2002-03-12 12:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * m4/: .cvsignore, Makefile.am: ok,now we kinda have a m4/ subdir
+ for gettext
+
+2002-03-12 12:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: .cvsignore, LINGUAS, Makevars, POTFILES.in, da.po, es.po,
+ fr.po, ko.po, ru.po, sv.po: now, we have a po/ subdirectory for
+ gettext. i hope you're happy
+
+2002-03-12 12:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/ca.po: removing po files, maybe
+
+2002-03-12 12:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/.cvsignore: ignore autom4te.cache
+
+2002-03-11 09:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * po/: ca.po, da.po, es.po, fr.po, ko.po, ru.po, sv.po: po files
+ from debian
+
+2002-03-08 10:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add several notes about tasks which need doing; create a
+ new top-level entry for generic coding concerns (this is distinct
+ from specific API or other such issues)
+
+2002-03-06 16:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: eliminate to.do and faqs from the README file
+
+2002-03-06 16:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: more notes on tests/
+
+2002-03-06 11:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove subdirectories from EXTRA_DIST; add a SUBDIRS
+ macro to handle examples/; clean up the dist-hook target
+
+2002-03-06 11:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: we want to generate Makefiles in some more
+ subdirectories; automake will like this
+
+2002-03-06 11:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: notes on subdirectories
+
+2002-03-05 09:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/: .cvsignore, Makefile.am: now examples/ fits into
+ automake
+
+2002-03-05 09:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/fastwc/: .cvsignore, Makefile.am: examples/fastwc now
+ fits into automake
+
+2002-03-05 09:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/manual/: .cvsignore, Makefile.am, Makefile.examples,
+ README: examples/manual directory now fits into automake
+
+2002-03-05 09:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/manual/Makefile: renamed Makefile to Makefile.examples
+ for automake's sake
+
+2002-03-04 10:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add parse.c and scan.c to built_sources
+
+2002-02-24 17:19 John Millaway <millaway@acm.org>
+
+ * Makefile.am: Removed CVS-specific code from 'dist-hook' target so
+ anybody with a copy of the tree can build a dist.
+
+2002-02-22 17:50 John Millaway <millaway@acm.org>
+
+ * tests/Makefile.in: Converted test script to portable /bin/sh.
+
+2002-02-22 17:47 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-yylloc/Makefile.in: Added some spaces in shell
+ scripts for portability.
+
+2002-02-22 16:59 John Millaway <millaway@acm.org>
+
+ * tests/create-test.pl: Fixed #! line for portability.
+
+2002-02-22 16:58 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-yylloc/Makefile.in: Fixed return status code on
+ bison-lloc test.
+
+2002-02-21 00:40 John Millaway <millaway@acm.org>
+
+ * tests/create-test.pl: Added script to auto-create tests. Probably
+ overkill.
+
+2002-02-21 00:16 John Millaway <millaway@acm.org>
+
+ * flex.skl: Fixed C++ #ifdef problem. Removed mistyped __CPLUSPLUS
+ macro. Removed THROW_NIL. Not sure where it came from in the first
+ place.
+
+2002-02-21 00:12 John Millaway <millaway@acm.org>
+
+ * tests/: README, configure.in, TEMPLATE/Makefile.in,
+ test-c-cpp-nr/.cvsignore, test-c-cpp-nr/Makefile.in,
+ test-c-cpp-nr/scanner.l, test-c-cpp-nr/test.input,
+ test-c-cpp-r/.cvsignore, test-c-cpp-r/Makefile.in,
+ test-c-cpp-r/scanner.l, test-c-cpp-r/test.input: Added
+ test-c-cpp-nr and test-c-cpp-r.
+
+2002-02-16 15:26 John Millaway <millaway@acm.org>
+
+ * flex.skl: Added missing #endif.
+
+2002-02-07 10:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/.cvsignore, test-array-nr/.cvsignore,
+ test-array-r/.cvsignore, test-basic-nr/.cvsignore,
+ test-basic-r/.cvsignore, test-bison-yylloc/.cvsignore,
+ test-bison-yylval/.cvsignore, test-header-nr/.cvsignore,
+ test-header-r/.cvsignore, test-include-by-buffer/.cvsignore,
+ test-include-by-reentrant/.cvsignore,
+ test-multiple-scanners-nr/.cvsignore,
+ test-multiple-scanners-r/.cvsignore, test-prefix-nr/.cvsignore,
+ test-prefix-r/.cvsignore, test-pthread/.cvsignore,
+ test-string-nr/.cvsignore, test-string-r/.cvsignore,
+ test-yyextra/.cvsignore: add OUTPUT to .cvsignore files in test
+ directories; it's also in the template directory
+
+2002-02-06 18:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * gen.c: fix interrupted reads and freads; from the debian package
+ maintainer
+
+2002-02-06 16:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi, flexdef.h, main.c, nfa.c: support large flex tables;
+ from debian package maintainer
+
+2002-01-29 08:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/configure.in: add more output files to account for new
+ tests
+
+2002-01-03 15:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-array-nr/: .cvsignore, Makefile.in, scanner.l,
+ test.input: add this test
+
+2002-01-03 15:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-array-r/: .cvsignore, Makefile.in, scanner.l,
+ test.input: add this test suite
+
+2001-11-20 14:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, main.c: millaway: Fixed yytext_ptr when using %array in
+ reentrant scanner
+
+2001-11-20 14:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * buf.c: oops, forgot this one line
+
+2001-11-19 01:39 John Millaway <millaway@acm.org>
+
+ * tests/: test-array-nr/.cvsignore, test-array-r/.cvsignore: file
+ .cvsignore was initially added on branch flex-2-5-6-branch.
+
+2001-11-19 01:39 John Millaway <millaway@acm.org>
+
+ * tests/: test-array-nr/Makefile.in, test-array-r/Makefile.in: file
+ Makefile.in was initially added on branch flex-2-5-6-branch.
+
+2001-11-19 01:39 John Millaway <millaway@acm.org>
+
+ * tests/: test-array-nr/scanner.l, test-array-r/scanner.l: file
+ scanner.l was initially added on branch flex-2-5-6-branch.
+
+2001-11-19 01:39 John Millaway <millaway@acm.org>
+
+ * tests/: test-array-nr/test.input, test-array-r/test.input: file
+ test.input was initially added on branch flex-2-5-6-branch.
+
+2001-11-14 18:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-header-r/: .cvsignore, Makefile.in, main.c, scanner.l,
+ test.input: and more fallout
+
+2001-11-14 16:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO, flex.skl, flex.texi, flexdef.h, main.c, misc.c,
+ tests/README, tests/configure.in, tests/TEMPLATE/Makefile.in,
+ tests/test-basic-r/scanner.l, tests/test-bison-yylloc/.cvsignore,
+ tests/test-bison-yylloc/Makefile.in,
+ tests/test-bison-yylloc/parser.y,
+ tests/test-bison-yylloc/scanner.l,
+ tests/test-bison-yylval/.cvsignore,
+ tests/test-bison-yylval/Makefile.in,
+ tests/test-bison-yylval/parser.y,
+ tests/test-bison-yylval/scanner.l,
+ tests/test-include-by-reentrant/scanner.l,
+ tests/test-prefix-r/scanner.l, tests/test-pthread/scanner.l,
+ tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l: more
+ from the same batch
+
+2001-11-14 16:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: test-bison-yylloc/main.c, test-bison-yylval/main.c,
+ test-header-nr/.cvsignore, test-header-nr/Makefile.in,
+ test-header-nr/main.c, test-header-nr/scanner.l,
+ test-header-nr/test.input, test-multiple-scanners-nr/.cvsignore,
+ test-multiple-scanners-nr/Makefile.in,
+ test-multiple-scanners-nr/main.c,
+ test-multiple-scanners-nr/scanner-1.l,
+ test-multiple-scanners-nr/scanner-2.l,
+ test-multiple-scanners-r/.cvsignore,
+ test-multiple-scanners-r/Makefile.in,
+ test-multiple-scanners-r/main.c,
+ test-multiple-scanners-r/scanner-1.l,
+ test-multiple-scanners-r/scanner-2.l: a big batch from millaway
+
+2001-10-28 01:49 John Millaway <millaway@acm.org>
+
+ * tests/: test-bison-yylloc/main.c, test-bison-yylval/main.c: file
+ main.c was initially added on branch flex-2-5-6-branch.
+
+2001-10-26 23:59 John Millaway <millaway@acm.org>
+
+ * tests/: test-multiple-scanners-nr/.cvsignore,
+ test-multiple-scanners-r/.cvsignore: file .cvsignore was initially
+ added on branch flex-2-5-6-branch.
+
+2001-10-26 23:59 John Millaway <millaway@acm.org>
+
+ * tests/: test-multiple-scanners-nr/Makefile.in,
+ test-multiple-scanners-r/Makefile.in: file Makefile.in was
+ initially added on branch flex-2-5-6-branch.
+
+2001-10-26 23:59 John Millaway <millaway@acm.org>
+
+ * tests/: test-multiple-scanners-nr/main.c,
+ test-multiple-scanners-r/main.c: file main.c was initially added on
+ branch flex-2-5-6-branch.
+
+2001-10-26 23:59 John Millaway <millaway@acm.org>
+
+ * tests/: test-multiple-scanners-nr/scanner-1.l,
+ test-multiple-scanners-r/scanner-1.l: file scanner-1.l was
+ initially added on branch flex-2-5-6-branch.
+
+2001-10-26 23:59 John Millaway <millaway@acm.org>
+
+ * tests/: test-multiple-scanners-nr/scanner-2.l,
+ test-multiple-scanners-r/scanner-2.l: file scanner-2.l was
+ initially added on branch flex-2-5-6-branch.
+
+2001-10-26 10:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: now NEWS has forgotten about the _r variables
+
+2001-10-26 08:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, flex.texi, gen.c, main.c,
+ tests/test-bison-yylloc/scanner.l,
+ tests/test-bison-yylval/scanner.l,
+ tests/test-include-by-reentrant/scanner.l,
+ tests/test-prefix-nr/scanner.l, tests/test-pthread/scanner.l,
+ tests/test-string-r/scanner.l, tests/test-yyextra/scanner.l:
+ millaway simplified the reentrant api; here's the result
+
+2001-10-23 17:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c, options.c, options.h: more from millaway
+
+2001-10-22 10:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c, options.c, options.h: the last checkin was broken;
+ millaway fixed it
+
+2001-10-22 09:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi, flex.skl, gen.c, main.c, misc.c, options.h, scan.l,
+ scanopt.c, tests/README, tests/configure.in: phew, millaway's
+ latest batch
+
+2001-10-21 13:24 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: flex.skl should come up in C mode
+
+2001-10-21 13:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: apparently, isatty and c++ need help getting along
+ (from octave)
+
+2001-10-19 18:56 John Millaway <millaway@acm.org>
+
+ * tests/: test-header-nr/.cvsignore, test-header-r/.cvsignore: file
+ .cvsignore was initially added on branch flex-2-5-6-branch.
+
+2001-10-19 18:56 John Millaway <millaway@acm.org>
+
+ * tests/: test-header-nr/Makefile.in, test-header-r/Makefile.in:
+ file Makefile.in was initially added on branch flex-2-5-6-branch.
+
+2001-10-19 18:56 John Millaway <millaway@acm.org>
+
+ * tests/: test-header-nr/main.c, test-header-r/main.c: file main.c
+ was initially added on branch flex-2-5-6-branch.
+
+2001-10-19 18:56 John Millaway <millaway@acm.org>
+
+ * tests/: test-header-nr/scanner.l, test-header-r/scanner.l: file
+ scanner.l was initially added on branch flex-2-5-6-branch.
+
+2001-10-19 18:56 John Millaway <millaway@acm.org>
+
+ * tests/: test-header-nr/test.input, test-header-r/test.input: file
+ test.input was initially added on branch flex-2-5-6-branch.
+
+2001-10-19 17:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: document new options and new option handling
+
+2001-10-19 16:58 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: tell emacs that TODO is a text/outline mode file
+
+2001-10-19 16:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we have new long options; we need to document that
+
+2001-10-19 16:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: tell emacs that NEWS is text/outline mode
+
+2001-10-19 14:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: oops, lost a line somewhere in the merge process on
+ millaway's work
+
+2001-10-17 10:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am, buf.c, flex.skl, flex.texi, flexdef.h, main.c,
+ misc.c, options.c, options.h, parse.y, scan.l, scanopt.c,
+ scanopt.h: merge latest batch of millaway's changes
+
+2001-10-15 13:26 John Millaway <millaway@acm.org>
+
+ * buf.c: file buf.c was initially added on branch
+ flex-2-5-6-branch.
+
+2001-10-12 20:44 John Millaway <millaway@acm.org>
+
+ * options.c: file options.c was initially added on branch
+ flex-2-5-6-branch.
+
+2001-10-12 20:44 John Millaway <millaway@acm.org>
+
+ * options.h: file options.h was initially added on branch
+ flex-2-5-6-branch.
+
+2001-10-12 20:44 John Millaway <millaway@acm.org>
+
+ * scanopt.c: file scanopt.c was initially added on branch
+ flex-2-5-6-branch.
+
+2001-10-12 20:44 John Millaway <millaway@acm.org>
+
+ * scanopt.h: file scanopt.h was initially added on branch
+ flex-2-5-6-branch.
+
+2001-09-22 13:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: Fixed typo in options display
+
+2001-09-20 15:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: reentrant and non-reentrant scanners share the same
+ yywrap MACRO. millaway
+
+2001-09-20 12:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: clarify item on comments in lexical files
+
+2001-09-20 12:29 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS, scan.l: now flex recognizes \r as an eol character
+
+2001-09-20 10:55 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: specify cvsroot so automake distcheck works
+
+2001-09-19 16:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: tex has lost its mind; we remove parentheses to
+ compensate
+
+2001-09-19 15:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: now that c++ is better supported, let's mention it as a
+ news item
+
+2001-09-19 15:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, main.c, examples/fastwc/wc1.l, examples/fastwc/wc2.l,
+ examples/fastwc/wc3.l, examples/fastwc/wc4.l,
+ examples/fastwc/wc5.l: commit the backwash from the branch merges
+
+2001-09-19 15:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h, flex.skl, examples/testxxLexer.l: made preliminary
+ c++ fixes; the intent is to make it work with recent c++ compilers
+
+2001-08-26 12:14 Will Estes <wlestes@users.sourceforge.net>
+
+ * main.c: remove argv_fixup; fix typo in error message; changes
+ from millaway's branch
+
+2001-08-24 11:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: mention no more c++ comments in c scanners
+
+2001-08-21 13:47 John Millaway <millaway@acm.org>
+
+ * flex.skl: Changed // comments to /* */ comments in skeleton.
+
+2001-08-19 16:34 John Millaway <millaway@acm.org>
+
+ * flex.texi: Changed @var to @code everywhere.
+
+2001-08-16 14:19 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: more mail
+
+2001-08-16 11:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: the manual now has its own section; we're not adding
+ comments either
+
+2001-08-03 21:14 John Millaway <millaway@acm.org>
+
+ * tests/: Makefile.in, README, TEMPLATE/Makefile.in,
+ test-basic-nr/Makefile.in, test-basic-r/Makefile.in,
+ test-bison-yylloc/Makefile.in, test-bison-yylval/Makefile.in,
+ test-include-by-buffer/Makefile.in,
+ test-include-by-reentrant/Makefile.in, test-prefix-nr/Makefile.in,
+ test-prefix-r/Makefile.in, test-pthread/Makefile.in,
+ test-string-nr/Makefile.in, test-string-r/Makefile.in,
+ test-yyextra/Makefile.in: Cleaned up the output of the tests.
+
+2001-08-03 16:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: note jason's thoughts on having a manpage
+
+2001-08-03 16:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: note millaway's assignment and tests to be under flex
+ license
+
+2001-08-01 17:14 John Millaway <millaway@acm.org>
+
+ * tests/test-bison-yylval/scanner.l: Fixed semantics of test (the
+ success or failure of this test should be unaffected by this
+ change.)
+
+2001-08-01 16:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: fake automake into believing that ChangeLog already
+ exists
+
+2001-08-01 16:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: millaway needs to be covered in the ChangeLog
+
+2001-08-01 15:41 Will Estes <wlestes@users.sourceforge.net>
+
+ * version.h: automake is supplying version info now so we just pick
+ it up
+
+2001-08-01 15:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: forgot braces on @copyright
+
+2001-08-01 15:40 John Millaway <millaway@acm.org>
+
+ * flex.skl: Added missing argument to yy_flex_free.
+
+2001-08-01 10:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * AUTHORS: john millaway wrote the reentrant C support
+
+2001-08-01 10:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: add license node to the manual
+
+2001-08-01 09:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: c++ ideas
+
+2001-07-31 17:31 Will Estes <wlestes@users.sourceforge.net>
+
+ * parse.y: error messages will now show up the way that emacs likes
+ them
+
+2001-07-31 15:56 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: oops, left in an extra backslash
+
+2001-07-31 15:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: flex.texi is here; clarify tests/ rewrite issue
+
+2001-07-31 15:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: hey, we have texinfo, not man
+
+2001-07-31 15:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.1: no more manpage
+
+2001-07-31 15:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: remove flex.1 and rewrite the dist-hook so that we
+ pick up a couple more directories
+
+2001-07-31 14:15 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: the namual now compiles; hurray
+
+2001-07-31 06:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: first attempt at including the tests/ directory via
+ automake, dist-hook target added
+
+2001-07-31 06:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/.cvsignore: ignore config.cache in tests/ directory
+
+2001-07-31 05:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: automake groks the ChangeLog now so we don't have to
+ remind the maintainer to remake it
+
+2001-07-30 17:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more corrections to the manual; the end is in site
+
+2001-07-30 17:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: auto-generated backup?
+
+2001-07-27 17:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: today's tinkering on the manual
+
+2001-07-27 10:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: if we want flex.1 we have to say so in EXTRA_DIST
+
+2001-07-27 10:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: note future issues with flex.texi
+
+2001-07-27 10:34 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: include flex.1 as it's the only working
+ documentation for now
+
+2001-07-27 10:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: rearrange to work with automake on building the
+ ChangeLog
+
+2001-07-27 09:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: automake is unhappy if we specify the outfile
+
+2001-07-26 17:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: more conversions/corrections
+
+2001-07-26 10:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: we removed misc/ so we don't mention it any more
+
+2001-07-25 16:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: begin the manual conversion to texinfo; yes, it's
+ broken right now
+
+2001-07-25 16:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * AUTHORS, THANKS: copy in manual author and thanks info
+
+2001-07-25 10:46 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: how to fake the ChangeLog into showing up in the
+ distribution
+
+2001-07-25 09:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add YFLAGS so parse.h gets made
+
+2001-07-24 16:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/fastwc/: README, mywc.c, wc1.l, wc2.l, wc3.l, wc4.l,
+ wc5.l: re-add these files
+
+2001-07-24 15:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: reflect recent doings
+
+2001-07-24 15:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.in: what with automake, we don't need Makefile.in any
+ more
+
+2001-07-24 15:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: more rearranging for automake
+
+2001-07-24 15:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: more mail came in
+
+2001-07-24 12:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: adjust to automake's idea of the world
+
+2001-07-24 12:43 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add Vern's misc dependencies; noinst_SCRIPTS was
+ broken?; list a few last files to be included in the distribution
+
+2001-07-24 10:48 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: rearrange for better order; add automake support as a news
+ item
+
+2001-07-24 10:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: copyright notice on Makefile.am; document some -D
+ switches (are they still usable?)
+
+2001-07-24 10:37 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add lex-replacement issue
+
+2001-07-24 06:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add EXTRA_DIST
+
+2001-07-23 17:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: we need to do the same thing in each directory
+
+2001-07-23 17:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: introduce automake into the macro calls
+
+2001-07-23 17:06 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: add AUTOMAKE_OPTIONS, info_TEXINFOS,
+ include_HEADERS, noinst_HEADERS; it's libfl.a, not libflex.a
+
+2001-07-23 16:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.am: bin_PROGRAMS and lib_LIBRARIES
+
+2001-07-23 15:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/streams.mail: streams.mail has moved here
+
+2001-07-23 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add xref for teximanual
+
+2001-07-19 10:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.1: include typo/punctuation fixes from a patch submitted by
+ noon@cote-dazur.com (Fabrice Bauzac)
+
+2001-07-17 14:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: we want gettext
+
+2001-06-24 19:45 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: include c++ STD fixes from quanstro@quanstro.net
+
+2001-06-24 18:33 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, gen.c: change some int types to size_t as per FreeBSD
+ 28364 from avn@any.ru
+
+2001-06-24 18:31 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: remove parse.[ch] from make clean target; repackage
+ distribution (not rework)
+
+2001-06-19 08:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: add memory api and reworking of flex.skl reworking
+
+2001-06-18 13:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: remove extraneous notice from flex.skl
+
+2001-06-18 08:49 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: patch memory leak as per millaway
+
+2001-06-17 15:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: add vern's ok for copyright/license changes and
+ john's answer on line offsets
+
+2001-06-17 15:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: remove creation of .cvsignore files (it's done); add other
+ notes about the test suite
+
+2001-06-17 15:16 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: TEMPLATE/.cvsignore, test-basic-nr/.cvsignore,
+ test-basic-r/.cvsignore, test-bison-yylloc/.cvsignore,
+ test-bison-yylval/.cvsignore, test-include-by-buffer/.cvsignore,
+ test-include-by-reentrant/.cvsignore, test-prefix-nr/.cvsignore,
+ test-prefix-r/.cvsignore, test-pthread/.cvsignore,
+ test-string-nr/.cvsignore, test-string-r/.cvsignore,
+ test-yyextra/.cvsignore: adding .cvsignore files for existing
+ tests/ subdirectories
+
+2001-06-17 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/README: reformat, say to add a description to this file and
+ mention what to do re .cvsignore
+
+2001-06-17 15:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/TEMPLATE/cvsignore: create template for .cvsignore
+
+2001-06-17 14:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: reorganize for logical reasons; test suite now seems to run
+ out of the box
+
+2001-06-17 14:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/.cvsignore: we dont want the Makefile either
+
+2001-06-17 13:40 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-nr/test.input: test.input was supposed to be
+ here
+
+2001-06-17 13:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/test-prefix-r/test.input: test.input was supposed to be
+ here
+
+2001-06-17 13:18 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/.cvsignore: add autoconf legacy files to be ignored
+
+2001-06-17 13:11 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: clarify usage instructions; prepare tests/ as well
+
+2001-06-17 13:07 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/.cvsignore: . cvsignore for tests/ subdirectory
+
+2001-06-17 13:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h: tell emacs that FlexLexer.h is c++
+
+2001-06-17 13:00 Will Estes <wlestes@users.sourceforge.net>
+
+ * scan.l: tell emacs scan.l is in C mode
+
+2001-06-17 12:59 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: added punctuation
+
+2001-06-17 12:17 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h, Makefile.in, README, RoadMap, autogen.sh, ccl.c,
+ configure.in, dfa.c, ecs.c, flex.1, flex.skl, flexdef.h, gen.c,
+ libmain.c, libyywrap.c, main.c, misc.c, mkskel.sh, nfa.c, parse.y,
+ scan.l, sym.c, tblcmp.c, yylex.c: change copyright/license notices
+ as per Vern's response to Theo
+
+2001-06-15 16:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: add bill fenlason's emails
+
+2001-06-15 16:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * COPYING: make changes as per Theo De Raadt; remove tabs
+
+2001-06-08 08:42 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl: save errno as per Theo de Raadt
+
+2001-06-07 08:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.1: correct hyphenation as per openbsd tree
+
+2001-06-05 16:39 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.in, configure.in: change references to TESTS/ to tests/
+ to account for the directory name changes
+
+2001-05-27 15:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, gen.c: commit john millaway's YY_G wrapper corrections
+
+2001-05-21 17:44 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.in: remove || exit calls
+
+2001-05-21 15:50 Will Estes <wlestes@users.sourceforge.net>
+
+ * gen.c: complete john millaway's reentrant patch
+
+2001-05-21 13:23 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: more flex messages in the queue
+
+2001-05-18 17:25 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.skl, flexdef.h, gen.c, main.c, nfa.c, scan.l: john
+ millaway's reentrancy patch
+
+2001-05-18 16:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/Makefile.in: remove || exit from testing loop
+
+2001-05-18 16:27 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.in: tell make about the tests directory and its
+ associated targets
+
+2001-05-18 16:26 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: rethink the todo list
+
+2001-05-18 16:13 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.1: describe reentrant api changes
+
+2001-05-18 16:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * TODO: mention work needed for tests/
+
+2001-05-18 16:09 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: tell auto* about the test directory
+
+2001-05-18 16:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: make punctuation uniform, mention the new tests/
+ directory
+
+2001-05-18 16:02 Will Estes <wlestes@users.sourceforge.net>
+
+ * NEWS: reformat items; cut out old items and move them to ONEWS
+
+2001-05-18 16:01 Will Estes <wlestes@users.sourceforge.net>
+
+ * ONEWS: move old NEWS items to ONEWS
+
+2001-05-18 13:22 Will Estes <wlestes@users.sourceforge.net>
+
+ * tests/: Makefile.in, README, configure.in, TEMPLATE/Makefile.in,
+ TEMPLATE/parser.y, TEMPLATE/scanner.l, TEMPLATE/test.input,
+ test-basic-nr/Makefile.in, test-basic-nr/scanner.l,
+ test-basic-nr/test.input, test-basic-r/Makefile.in,
+ test-basic-r/scanner.l, test-basic-r/test.input,
+ test-bison-yylloc/Makefile.in, test-bison-yylloc/parser.y,
+ test-bison-yylloc/scanner.l, test-bison-yylloc/test.input,
+ test-bison-yylval/Makefile.in, test-bison-yylval/parser.y,
+ test-bison-yylval/scanner.l, test-bison-yylval/test.input,
+ test-include-by-buffer/Makefile.in,
+ test-include-by-buffer/scanner.l,
+ test-include-by-buffer/test-1.input,
+ test-include-by-buffer/test-2.input,
+ test-include-by-buffer/test-3.input,
+ test-include-by-reentrant/Makefile.in,
+ test-include-by-reentrant/scanner.l,
+ test-include-by-reentrant/test-1.input,
+ test-include-by-reentrant/test-2.input,
+ test-include-by-reentrant/test-3.input, test-prefix-nr/Makefile.in,
+ test-prefix-nr/README, test-prefix-nr/scanner.l,
+ test-prefix-r/Makefile.in, test-prefix-r/README,
+ test-prefix-r/scanner.l, test-pthread/Makefile.in,
+ test-pthread/scanner.l, test-pthread/test-1.input,
+ test-pthread/test-2.input, test-pthread/test-3.input,
+ test-pthread/test-4.input, test-pthread/test-5.input,
+ test-string-nr/Makefile.in, test-string-nr/scanner.l,
+ test-string-r/Makefile.in, test-string-r/scanner.l,
+ test-yyextra/Makefile.in, test-yyextra/scanner.l,
+ test-yyextra/test.input: add john millaway's test directory
+
+2001-05-04 16:04 Will Estes <wlestes@users.sourceforge.net>
+
+ * to.do/flex.rmail: more mail in flex.rmail
+
+2001-05-03 15:05 Will Estes <wlestes@users.sourceforge.net>
+
+ * FlexLexer.h, ccl.c, dfa.c, ecs.c, flex.skl, flexdef.h, gen.c,
+ libmain.c, libyywrap.c, main.c, misc.c, nfa.c, parse.y, scan.l,
+ sym.c, tblcmp.c, yylex.c: remove extraneous rcs keywords
+
+2001-05-03 14:54 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: mention RoadMap
+
+2001-05-01 16:47 Will Estes <wlestes@users.sourceforge.net>
+
+ * examples/README, examples/debflex.awk, examples/testxxLexer.l,
+ examples/manual/ChangeLog, examples/manual/Makefile,
+ examples/manual/README, examples/manual/cat.lex,
+ examples/manual/dates.lex, examples/manual/datetest.dat,
+ examples/manual/eof_rules.lex, examples/manual/eof_test01.txt,
+ examples/manual/eof_test02.txt, examples/manual/eof_test03.txt,
+ examples/manual/expr.lex, examples/manual/expr.y,
+ examples/manual/front.lex, examples/manual/front.y,
+ examples/manual/j2t.lex, examples/manual/myname.lex,
+ examples/manual/myname.txt, examples/manual/myname2.lex,
+ examples/manual/numbers.lex, examples/manual/pas_include.lex,
+ examples/manual/pascal.lex, examples/manual/reject.lex,
+ examples/manual/replace.lex, examples/manual/string1.lex,
+ examples/manual/string2.lex, examples/manual/strtest.dat,
+ examples/manual/unput.lex, examples/manual/user_act.lex,
+ examples/manual/userinit.lex, examples/manual/wc.lex,
+ examples/manual/yymore.lex, examples/manual/yymore2.lex,
+ examples/manual/yymoretest.dat, to.do/README, to.do/Wilhelms.todo,
+ to.do/Wish-List, to.do/flex.rmail, 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:
+ adding the rest of vern's files
+
+2001-05-01 16:36 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: mention misc/ directory
+
+2001-05-01 16:32 Will Estes <wlestes@users.sourceforge.net>
+
+ * version.h: version is 2.5.5b
+
+2001-05-01 16:30 Will Estes <wlestes@users.sourceforge.net>
+
+ * Makefile.in: remove header from top; add rule to generate
+ initscan.c just in case
+
+2001-05-01 16:28 Will Estes <wlestes@users.sourceforge.net>
+
+ * configure.in: dont check for initscan.c; check for scan.l instead
+
+2001-05-01 15:12 Will Estes <wlestes@users.sourceforge.net>
+
+ * RoadMap: list of source files
+
+2001-05-01 15:10 Will Estes <wlestes@users.sourceforge.net>
+
+ * README: rewrite README to reflect changes in layout of
+ directories
+
+2001-05-01 15:08 Will Estes <wlestes@users.sourceforge.net>
+
+ * AUTHORS, THANKS, TODO: initial attempt at the files
+
+2001-05-01 14:03 Will Estes <wlestes@users.sourceforge.net>
+
+ * COPYING: add 2001 copyright notice
+
+2001-05-01 13:38 Will Estes <wlestes@users.sourceforge.net>
+
+ * autogen.sh: initial attempt at a bootstrap script for developers
+
+2001-05-01 13:21 Will Estes <wlestes@users.sourceforge.net>
+
+ * flex.texi: texinfo manual, old contributed version
+
+2000-08-21 12:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: fixed some bugs in examples of [[:...:]] ccls
+
+2000-08-21 12:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: version shipped to Dick King
+
+2000-08-21 12:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: explicit include of iostream.h
+
+2000-08-21 12:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: if a newline is seen in <ACTION_STRING>, assume it
+ terminates the string.
+
+2000-08-21 12:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, sym.c: moved symbol table definitions from flexdef.h
+ into sym.c
+
+2000-08-21 12:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: fixed underallocation for accset
+
+1997-06-27 15:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * COPYING: revised for rms
+
+1997-06-23 15:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: fixed memory leak
+
+1997-06-23 15:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: input() doesn't destroy yytext
+
+1997-06-23 15:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: wrapped with extern "C++"
+
+1996-12-13 06:22 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: use delete [] for yy_state_buf
+
+1996-10-29 09:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: fixed %option noinput
+
+1996-10-29 09:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: free(char*) fix ... Sigh ...
+
+1996-10-11 11:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: bug fix for yymore()/yylineno interaction
+
+1996-10-11 11:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixed memory leak
+
+1996-09-10 13:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: release 2.5.4
+
+1996-09-10 12:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: more stuff for distclean
+
+1996-09-10 12:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: "str" -> "yy_str"
+
+1996-09-10 12:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.5.4
+
+1996-07-02 12:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: (attempted) fix for input() crossing a file boundary
+
+1996-05-29 08:25 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: don't do Acorn diffs
+
+1996-05-29 08:15 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: some minor additions for 2.5.3
+
+1996-05-29 08:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.5.3
+
+1996-05-29 07:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.5.3
+
+1996-05-25 17:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: initialize yy_more_offset etc. for yyFlexLexer class
+
+1996-05-25 16:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: niggling cosmetic tweak
+
+1996-05-25 16:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: bug fixes for yymore (especially with %array)
+
+1996-05-25 16:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: yymore + %array tweaks
+
+1996-05-25 16:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: added yy_{,prev_}more_offset
+
+1996-05-25 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: removed decl of unused library function
+
+1996-05-25 11:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: snapshot of cscope yymore fixes, prior to switching
+ yymore-on-%array approach
+
+1995-12-18 09:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: don't stack states on NUL-transitions that are jams
+
+1995-09-27 08:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * libmain.c: fixed re Esmond Pitt's ancient suggestion
+
+1995-04-28 07:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: ANSI C / Solaris tweak
+
+1995-04-24 09:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: credits
+
+1995-04-24 09:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: multiple FlexLexer.h includes
+
+1995-04-24 09:25 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: fix multiple inclusions
+
+1995-04-24 08:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: lint tweak
+
+1995-04-24 07:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: typo fixed
+
+1995-04-24 06:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: credits update
+
+1995-04-24 06:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: (char*) cast for realloc
+
+1995-04-24 06:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: (char*) tweak
+
+1995-04-21 07:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: VMS update for 2.5.2
+
+1995-04-21 07:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: clarify when 8-bit scanners are created by default,
+ vs. 7-bit
+
+1995-04-21 07:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: reworked alloca() chud, from Francois
+
+1995-04-20 09:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, version.h: 2.5.2
+
+1995-04-20 09:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: 2.5.2 update
+
+1995-04-20 09:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c, main.c: const -> yyconst
+
+1995-04-20 09:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: fixed some old libfl.a references
+
+1995-04-20 09:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: some (but not all) of Francois' tweaks
+
+1995-04-20 09:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: tweaks from Francois
+
+1995-04-20 08:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: yy_delete_buffer allows nil buffer pointer
+
+1995-04-20 08:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: do_stdinit now defaults to false
+
+1995-04-20 08:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: remove first default for yylex(new_in, new_out)
+
+1995-04-20 08:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: rearrange some definitions; fix YY_NO_UNPUT
+
+1995-04-20 08:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: more alloca() bullshit
+
+1995-04-20 07:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: octal escape sequence must have just digits 0-7
+
+1995-04-20 07:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: '-' means stdin octal escape sequence must just be digits
+ 0-7
+
+1995-04-20 07:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: -- terminates options
+
+1995-04-20 07:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: added dataflush() prototype
+
+1995-04-20 07:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: move dataflush, otoi prototypes into flexdef.h
+
+1995-04-20 07:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c, flex.skl: const -> yyconst
+
+1995-04-20 06:55 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixed bug in needing yy_cp for -Cf w/ backing up
+
+1995-03-28 05:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1, README: Stan Adermann credit
+
+1995-03-27 09:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: beta-tester update
+
+1995-03-27 09:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, version.h: 2.5.1
+
+1995-03-27 09:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: update date for 2.5.1 release, some feedbacker credits
+
+1995-03-27 09:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixed lint problem with declaring yy_cp unnecessarily
+
+1995-03-27 09:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: {}'s around full-table initializations
+
+1995-03-21 09:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: for version 2.5
+
+1995-03-21 09:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: added note regarding yylineno should be maintained on a
+ per-buffer basis
+
+1995-03-21 09:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: new C++ member functions
+
+1995-03-21 08:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1, NEWS: 2.5.0.8 update
+
+1995-03-21 08:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: rename yylineno if -P
+
+1995-03-20 09:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: do_yylineno MARKER_DIFFERENCE depends on MAXIMUM_MNS
+
+1995-03-20 09:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: removed redundant skel.c from DISTFILES
+
+1995-03-20 09:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: debug(), setdebug(), lineno()
+
+1995-03-20 09:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: %option yylineno support
+
+1995-03-20 09:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: read up to newline for interactive reads, rather than one
+ char
+
+1995-03-20 09:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l, main.c: added %option yylineno
+
+1995-03-18 04:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: added do_yylineno
+
+1995-03-06 10:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1, NEWS: 2.5.0.7
+
+1995-03-05 16:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: realclean -> maintainer-clean
+
+1995-03-05 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added yy_flush_buffer
+
+1995-03-05 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: added yy_flush_buffer
+
+1995-03-05 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: prefix support for yy_flush_buffer
+
+1995-03-05 15:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: added %option yyclass
+
+1995-03-05 15:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l, flexdef.h, main.c: added yyclass
+
+1995-03-05 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Added switch_streams
+
+1995-03-05 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added switch_streams
+
+1995-03-05 11:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: don't rename yy_flex_debug for C++
+
+1995-03-05 11:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: yy_flex_debug extern only if not C++
+
+1995-03-05 11:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: added yy_flex_debug member variable
+
+1995-03-05 11:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: yyFlexLexer initialization of yy_flex_debug
+
+1995-03-04 13:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, main.c: VMS POSIX stuff
+
+1995-03-04 11:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: moved position of yy_init = 0
+
+1995-03-04 11:15 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added YY_EXIT_FAILURE
+
+1995-03-04 11:14 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: removed VMS-specific exit
+
+1995-03-04 11:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, dfa.c, yylex.c, sym.c, scan.l, nfa.c, misc.c, gen.c,
+ main.c: internationalization aids
+
+1995-03-04 11:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: do yy_flex_debug prefix for both C++ and C
+
+1995-02-06 04:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: fixed program_name tweak again
+
+1995-01-11 06:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: oops, fixed program_name tweak
+
+1995-01-11 05:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: program_name is "flex" if argv[0] nil
+
+1995-01-10 05:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.5.0.5
+
+1995-01-10 05:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Documented YY_NUM_RULES
+
+1995-01-10 05:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: added formatted man page to MISC
+
+1995-01-10 05:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: help messages to stdout
+
+1995-01-09 17:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Added YY_NUM_RULES
+
+1995-01-09 16:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: better fix for #pragma problem
+
+1995-01-09 16:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: better fix for #pragma portability problem
+
+1995-01-09 07:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: "# line" -> #line
+
+1995-01-09 07:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h: comment out Turbo C #pragma's
+
+1995-01-09 07:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: reset linenum on new file
+
+1995-01-09 07:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: isatty() extern
+
+1995-01-09 07:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, flex.1: 2.5.0.4
+
+1995-01-09 07:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: long options, VMS tweaks
+
+1995-01-09 07:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added parse.c, parse.h for dist MISC directory
+
+1995-01-09 07:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: some "const" cleansing
+
+1995-01-09 07:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * mkskel.sh: skel[] is now const
+
+1995-01-09 07:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: some const cleansing
+
+1995-01-09 07:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: #line in section 1
+
+1995-01-05 17:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: preen
+
+1994-12-29 10:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: config.h from conf.in
+
+1994-12-29 10:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: for VMS, delete -> remove
+
+1994-12-29 10:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: config.h.in -> conf.in rm config.h on distclean
+
+1994-12-29 10:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: stdinit tweaks
+
+1994-12-29 10:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: added nostdinit
+
+1994-12-28 13:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: added MS-DOS note for 2.5.0.2
+
+1994-12-28 13:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: typos, tweaks
+
+1994-12-28 10:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: removed flexdoc
+
+1994-12-28 10:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: flexdoc/flex merge
+
+1994-12-28 08:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: typos
+
+1994-12-28 08:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: typo
+
+1994-12-28 08:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: 2.5 update
+
+1994-12-28 08:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.5.0.2
+
+1994-12-28 06:55 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: fixed sense of %option main implying %option noyywrap
+
+1994-12-28 06:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: YY_FLEX_{MAJOR,MINOR}_VERSION fixed bug in unput
+ trashing yytext even with %array
+
+1994-12-17 17:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: prior to 2.5 update
+
+1994-12-17 13:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: C++/-P fixes
+
+1994-12-17 13:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: -P fixes constructor, destructor moved to flex.skl
+
+1994-12-17 13:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: YY_SKIP_YYWRAP yyFlexLexer constructor, destructor
+
+1994-12-15 09:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: formatting
+
+1994-12-15 09:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixed bug in adjusting yytext before backing up
+
+1994-12-10 17:24 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: switched scanner itself over to [:xxx:]
+
+1994-12-10 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added YY_FLEX_VERSION
+
+1994-12-10 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed CCL-match pattern for [:whatever:]
+
+1994-12-10 12:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: treat [:upper:] as [:lower:] if -i
+
+1994-12-06 16:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.5.0.1
+
+1994-12-06 16:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, gen.c: input() maintains BOL
+
+1994-12-06 16:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: check size of buffer in yy_scan_buffer
+
+1994-12-06 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added %option main, fixed missing %*
+
+1994-12-06 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: added ccl exprs
+
+1994-12-06 16:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: added ccl exprs, %option main
+
+1994-12-06 16:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: added %options, ccl exprs
+
+1994-12-05 16:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: undid previous change
+
+1994-12-04 10:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Makefile.in from srcdir
+
+1994-12-04 04:14 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: added skel.c to DISTFILES
+
+1994-12-04 03:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added YYSTATE alias
+
+1994-12-04 03:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: NL is now \r?\n
+
+1994-12-04 03:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: use cerr for C++ diagnostics
+
+1994-12-03 15:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: undid YY_UNIX_NEWLINE
+
+1994-12-03 08:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: STDC_HEADERS to check for stdlib
+
+1994-12-03 08:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: AC_STDC_HEADERS -> AC_HEADER_STDC
+
+1994-12-03 08:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: \n -> '\012'
+
+1994-12-03 07:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added YY_UNIX_NEWLINE
+
+1994-12-03 06:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: BOL changes
+
+1994-12-03 06:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: fixed bug with caseins but not ecs
+
+1994-12-03 06:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: BOL changes some casts for Turbo C
+
+1994-12-03 06:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: messages identify filenames
+
+1994-12-03 06:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Increase slowly if realloc double overflows
+
+1994-12-03 06:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: YY_RULE_SETUP
+
+1994-12-03 06:26 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Added yy_XX_state %option's Added yy_set_bol
+
+1994-11-29 11:14 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: don't remove ~ files
+
+1994-11-24 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: get CFLAGS from autoconf
+
+1994-11-24 11:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c, flex.skl, flexdef.h, gen.c, misc.c, parse.y, scan.l,
+ sym.c: Brian Madsen's tweaks for Borland
+
+1994-11-24 10:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.5.0
+
+1994-11-24 10:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added do_stdinit
+
+1994-11-24 10:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Added yy_delete_buffer() in destructor
+
+1994-11-24 10:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added yy_set_interactive, YY_ALWAYS_INTERACTIVE,
+ YY_NEVER_INTERACTIVE, YY_NO_INPUT, YY_NO_UNPUT, YY_NO_*_STATE
+
+1994-11-24 10:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added do_stdinit, Think C hacks
+
+1994-11-24 10:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Added %options for input, always-interactive,
+ never-interactive, yy_scan_{buffer,bytes,string}
+
+1994-11-05 12:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: size_t #ifdef's for not compiling some statics
+
+1994-11-05 12:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: $(FLEX) config.h
+
+1994-11-05 12:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: config.h, size_t, malloc.h, sys/types.h
+
+1994-11-05 12:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: config.h, size_t
+
+1994-11-05 12:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: yywrap option, no stdin/out init for VMS, mundane tweaks
+
+1994-11-05 12:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: alloca, lint tweaks
+
+1994-11-05 12:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: %option yywrap size_t tweaks
+
+1994-11-05 12:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: size_t tweaks
+
+1994-11-05 12:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: size_t, STDC tweaks
+
+1994-11-05 10:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added yy_scan_{buffer,bytes,string}, plus tweaks
+
+1994-10-12 17:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: made stack code conditional on "stack" option
+
+1994-10-12 17:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: added use of "stack" %option
+
+1994-08-03 07:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed fencepost in call to yy_flex_strncpy
+
+1994-07-25 18:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: yy_eof_status -> yy_buffer_status
+
+1994-07-25 17:22 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: yy_flex_strcpy -> yy_flex_strncpy minor prototype tweak
+
+1994-07-25 17:21 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Bug fix for matching NUL's at end of token when
+ interactive. yy_flex_strcpy -> yy_flex_strncpy
+
+1994-07-25 16:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: No YY_USER_ACTION if continued action
+
+1994-03-16 07:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added fix for 8-bit chars returned by input()
+
+1994-03-16 07:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Move definition of yy_flex_strcpy to come after #define
+ of yytext_ptr
+
+1994-01-08 05:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * mkskel.sh: flex.skel -> flex.skl
+
+1994-01-08 05:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * mkskel.sh: Initial revision
+
+1993-12-29 12:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Fixed scan.c target so "make" detects flex failure
+
+1993-12-27 10:14 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Added %option's
+
+1993-12-27 09:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Nuked FLEX_FLAGS that are now done using %option
+
+1993-12-27 09:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y, scan.l: %option
+
+1993-12-27 09:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Reworked for %option
+
+1993-12-27 09:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added "unspecified", globals for %option
+
+1993-12-27 09:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: start condition #define's go to action file
+
+1993-12-27 09:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added action_define()
+
+1993-12-27 05:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Minor consolidation using scon scopes etc
+
+1993-12-27 05:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Modified to use scon scopes
+
+1993-12-27 05:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: indented rules
+
+1993-12-26 17:22 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Added scon_stk stuff, format_warn
+
+1993-12-26 17:22 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added format_warn
+
+1993-12-26 10:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Working checkpoint prior to adding <scon>{ stuff
+
+1993-12-26 10:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, flexdef.h: Added in_rule, deleted actvsc
+
+1993-12-26 10:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added doubling of '\'s in filenames
+
+1993-12-26 10:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Added in_rule, doing_rule_action
+
+1993-12-26 10:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Removed actvsc
+
+1993-12-23 15:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: -ooutput #line directives credits
+
+1993-12-23 15:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Fixsed sense of test for %array
+
+1993-12-23 15:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.5.0 snapshot for Craig
+
+1993-12-23 15:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Added beginnings of <SCON>{ ... }
+
+1993-12-23 15:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Simplified scanning {}'s
+
+1993-12-20 04:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added <stdlib.h>
+
+1993-12-17 05:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: prototypes for alloc/string routines
+
+1993-12-17 05:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: alloc, string routines internal
+
+1993-12-17 05:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Nuked lib{string,alloc}.c, added dependency of
+ yylex.o on parse.h
+
+1993-12-17 05:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: Check for string.h
+
+1993-12-17 05:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Use autoconf for string/strings.h yy_flex_XXX ->
+ flex_XXX
+
+1993-12-17 05:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Added flex_XXX -> yy_flex_XXX wrappers
+
+1993-12-17 05:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c, misc.c, dfa.c: yy_flex_XXX -> flex_XXX
+
+1993-12-17 05:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: No more WHITESPACE token
+
+1993-12-16 15:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, FlexLexer.h: Added yy_top_state()
+
+1993-12-16 15:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: simplified comment-scanning using push/pop states
+
+1993-12-16 15:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: removed crufty WHITESPACE token, some uses of '\n' token
+
+1993-12-15 05:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: start stack, extern "C++" moved
+
+1993-12-15 05:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: Bug fix for -CF
+
+1993-12-15 05:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, misc.c: alloc routines take unsigned
+
+1993-12-15 05:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: start-state stacks, alloc routines take unsigned
+
+1993-12-15 05:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, misc.c: bracket -CF table elements
+
+1993-12-13 07:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Do #bytes computation in {re,}allocate_array() only once
+
+1993-12-11 12:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, gen.c, main.c, misc.c, scan.l, flex.skl, sym.c:
+ yy_str*() -> str*()
+
+1993-12-11 09:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in, dfa.c, flexdef.h, gen.c, main.c, misc.c, nfa.c,
+ parse.y, scan.l, sym.c: -o option
+
+1993-12-11 06:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: lint tweak
+
+1993-12-11 06:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Expanded on extern "C++" news item
+
+1993-12-11 05:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4.5
+
+1993-12-11 05:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added yy_fill_buffer
+
+1993-12-11 05:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: is_interactive -> yy_is_interactive
+
+1993-12-11 05:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Updated credits
+
+1993-12-11 05:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Fixed typo in "uninstall" target
+
+1993-12-11 05:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Updated comment regarding 0-based vs. 1-based arrays for
+ -CF.
+
+1993-12-11 05:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: Initialize dfaacc[0] for -CF representation Fixed minor
+ memory leak
+
+1993-12-11 05:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: #include "FlexLexer.h" -> <FlexLexer.h>
+
+1993-12-11 05:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Added extern "C++" wrapper
+
+1993-12-09 08:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Detect REJECT etc. before generating YY_USES_REJECT!
+
+1993-12-09 08:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed bug in interactive reads where char is unsigned
+
+1993-12-09 08:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Fixed bug in treating '$' as variable trailing context
+
+1993-12-09 08:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.4.5
+
+1993-12-07 08:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: pretester update
+
+1993-12-07 06:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4.4
+
+1993-12-07 06:15 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: LexError(), C++ experiment warning, credits
+
+1993-12-07 06:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed 8-bit bug
+
+1993-12-07 06:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c, flex.skl: Fixed nasty 8-bit bugs
+
+1993-12-07 05:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c, ecs.c, flexdef.h, gen.c, main.c, nfa.c, tblcmp.c:
+ {min,max,abs} -> {MIN,MAX,ABS}
+
+1993-12-07 05:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h, flex.skl: Support for yyFlexLexer::LexerError
+
+1993-12-06 04:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.4.4
+
+1993-12-05 12:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: credits update
+
+1993-12-05 12:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: very minor "install" tweaks
+
+1993-12-05 12:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, nfa.c: YY_USER_ACTION generated now for each case in
+ action switch
+
+1993-12-04 17:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Fixed bug in pointing yyin at a new file and resuming
+ scanning
+
+1993-12-03 17:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Added note regarding g++ 2.5.X
+
+1993-12-03 17:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: updated credits
+
+1993-12-03 17:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: ranlib addition for 2.4.3
+
+1993-12-03 17:19 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Minor tweak to last change
+
+1993-12-03 17:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: run ranlib on libfl.a
+
+1993-12-03 17:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Hopefully last update prior to 2.4.3
+
+1993-12-03 16:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, gen.c, misc.c, sym.c: lint tweaks
+
+1993-12-03 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added exec_prefix
+
+1993-12-03 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: credit update
+
+1993-12-03 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: lint tweak
+
+1993-12-03 07:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: FlexLexer.h fixed for separate inclusion
+
+1993-12-03 07:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, FlexLexer.h, main.c: mods so FlexLexer.h can be
+ included separately
+
+1993-12-03 07:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: -F incompatible with -+
+
+1993-12-02 17:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Elaborated comments for 2.4.3
+
+1993-12-02 16:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4.3
+
+1993-12-02 16:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Updated message regarding missing libfl.a routines Added
+ thanks to Noah Friedman
+
+1993-12-02 16:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added libstring.c Modified "lint" target to use
+ -Dconst= Added a.out, lex.yy.cc to sundry clean targets
+
+1993-12-02 16:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c, scan.l, sym.c, misc.c, main.c, flexdef.h, flex.skl: Use
+ yy_strXXX() routines instead of <string.h>
+
+1993-12-01 06:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.4.3
+
+1993-12-01 06:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, misc.c: yy_flex_xmalloc() moved to misc.c
+
+1993-12-01 06:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Fixed bug in yy_fatal_error()
+
+1993-12-01 02:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: ... and remove plain tar file after compression
+
+1993-12-01 02:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4.2
+
+1993-12-01 02:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Produce both compress'd and gzip'd distribution tar
+ files
+
+1993-12-01 02:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: Release 2.4.2
+
+1993-11-30 18:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: -a -> -Ca
+
+1993-11-30 15:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: described configuration files in manifest
+
+1993-11-30 15:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added intermediate step of copying MISC/alloca.c ->
+ alloca.c Included CPPFLAGS when compiling alloca.c
+
+1993-11-30 10:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: Credit to 2.4 pre-testers.
+
+1993-11-30 08:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed nasty bug in short/long decl decision
+
+1993-11-30 08:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Lowered MAX_SHORT out of increased general paranoia.
+ Added yy_flex_xmalloc() proto
+
+1993-11-30 08:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Fixed very minor typo in -v output
+
+1993-11-30 08:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Removed vestigal cast to (char) in isupper() call
+
+1993-11-30 07:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added casts to unsigned Char for isascii() calls
+
+1993-11-30 07:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Added #ifdef chud for alloca()
+
+1993-11-30 07:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added alloca
+
+1993-11-30 07:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: Add AC_ALLOCA if using bison
+
+1993-11-29 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added intermediate file going scan.l -> scan.c
+
+1993-11-29 12:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Removed parse.{c,h} from distribution files, since
+ they may not be all that portable.
+
+1993-11-29 12:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Fixed %array YYLMAX headaches, added error message if
+ buffer needs growing but REJECT used
+
+1993-11-29 12:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c, main.c: Fixed YYLMAX headaches
+
+1993-11-29 12:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Documented that buffer can't grow if REJECT used
+
+1993-11-29 12:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added parse.{c,h} to dist files
+
+1993-11-29 11:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h, gen.c, main.c, misc.c, scan.l: Fixed to
+ buffer section 1 definitions
+
+1993-11-29 11:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Fixed ANSI-C glitch with '%' operator
+
+1993-11-29 09:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed mis-definition of ndlookup()
+
+1993-11-29 06:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4 -> 2.4.1
+
+1993-11-29 06:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added install.sh, mkinstalldirs to distribution
+ files
+
+1993-11-29 05:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Added Nathan Zelle, "promoted" Francois
+
+1993-11-29 05:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: only "realclean" removes flex dist depends on flex
+
+1993-11-29 05:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h, misc.c: myctoi takes char[] instead of Char[]
+
+1993-11-28 11:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: -a -> -Ca all_lower, all_upper -> work on char*
+
+1993-11-28 11:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added -Ca to bigcheck
+
+1993-11-28 11:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: -a -> -Ca; fixed help output
+
+1993-11-28 11:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c, flex.1: -a -> -Ca
+
+1993-11-28 11:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: all_lower, all_upper work on char*
+
+1993-11-28 11:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed some casts now that yytext is always char* and
+ never unsigned char*
+
+1993-11-28 11:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Francois' tweaks
+
+1993-11-28 11:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: AC_LN_S, AC_STDC_HEADERS (but not AC_ALLOCA)
+
+1993-11-27 10:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: fixed typo
+
+1993-11-27 10:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Don't remove dist directory
+
+1993-11-27 10:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Include liballoc.c in lint targets
+
+1993-11-27 10:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: lint tweak
+
+1993-11-27 09:14 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Added -l compression to bigcheck
+
+1993-11-27 09:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: permission tweaking for "dist"
+
+1993-11-27 09:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: more "dist" tweaks
+
+1993-11-27 08:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Changed "make dist" to use version.h, include scan.c
+ in initial dir copy
+
+1993-11-27 08:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: 2.4.1
+
+1993-11-27 08:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: Revised as per Francois Pinard
+
+1993-11-27 08:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * COPYING: flex.skel -> flex.skl
+
+1993-11-27 08:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Updated date of 2.4 release
+
+1993-11-27 08:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Removed manual & nroff output from distribution
+
+1993-11-27 08:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4.1 release
+
+1993-11-27 07:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * configure.in: Initial revision
+
+1993-11-27 07:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Merge w/ 2.4.1 changes added "dist2" target
+
+1993-11-26 12:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * Makefile.in: Initial revision
+
+1993-11-26 11:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Removed #ifndef FILE protection from include of stdio
+
+1993-11-26 11:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Added Francois Pinard to distribution headache helpers
+
+1993-11-26 11:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Modified C++ scanners to get input a character at a
+ time for interactive scanners.
+
+1993-11-26 11:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added YY_INTERACTIVE.
+
+1993-11-26 11:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Put definitions inside ()'s so we can test -l option for
+ "make bigcheck"
+
+1993-11-26 11:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Documented YY_INTERACTIVE.
+
+1993-11-26 10:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h, flex.1, gen.c, main.c, parse.y, scan.l: -l
+ lex compatibility flag
+
+1993-11-20 10:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Support for read()/fread() section 1 definitions
+ precede default macro definitions
+
+1993-11-20 10:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added use_read global
+
+1993-11-20 10:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Cleaner definition for yymore() Fixed string broken across
+ multiple lines
+
+1993-11-20 10:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added -Cr
+
+1993-11-20 10:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: K&R declaration for check_char()
+
+1993-11-20 09:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Documented -Cr
+
+1993-11-20 09:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: No need to #undef before redefining prior to -Cr
+ documentation
+
+1993-11-10 05:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: Heavily massaged for 2.4
+
+1993-11-10 05:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Added Landon Noll to thanks.
+
+1993-11-10 05:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.4 release
+
+1993-11-10 05:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: 2.4 documentation
+
+1993-11-10 05:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added global to remember -P prefix so it can be written
+ in -v summary. Alphabetized prefix generation, added yywrap
+
+1993-11-09 16:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * version.h: updated date for 2.4.0 :-(
+
+1993-10-10 11:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Whitespace tweaking
+
+1993-10-10 10:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Use DEFAULT_CSIZE only if not using equivalence classes.
+
+1993-10-10 10:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Checkpoint prior to final 2.4 update
+
+1993-10-04 17:15 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Raw 2.4 changes
+
+1993-10-04 12:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: osfcn.h -> unistd.h
+
+1993-10-04 06:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added "static" to definition of yy_fatal_error as well
+ as fwd decl.
+
+1993-10-04 06:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added yy_fatal_error function.
+
+1993-10-03 13:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Got rid of (char *) casts of yytext, no longer needed.
+
+1993-10-03 13:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Got rid of (char *) casts of yytext, no longer needed.
+
+1993-10-03 12:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: YY_CHAR -> char added YYText(), YYLeng()
+
+1993-10-03 12:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c, flex.skl: Minimized use of YY_CHAR
+
+1993-10-03 12:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added "flex++" feature Minimized use of YY_CHAR
+
+1993-10-02 11:25 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Clarified help message for -S
+
+1993-10-02 11:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * libyywrap.c, version.h: Initial revision
+
+1993-10-02 11:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: If -+ used, output to lex.yy.cc
+
+1993-10-02 11:19 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h, flex.skl: Switched from FILE*'s to stream's
+
+1993-10-02 09:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added expand_nxt_chk() extern.
+
+1993-10-02 09:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added dynamic buffer growing. Added yyless() for
+ section 3.
+
+1993-10-02 09:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, flexdef.h, dfa.c, gen.c: Added -a option for long-align.
+
+1993-10-02 09:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: formfeed no longer considered whitespace
+
+1993-09-21 16:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Nuked FILENAMESIZE
+
+1993-09-21 16:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: yyflexlexer.h -> FlexLexer.h minor portability tweak
+
+1993-09-21 16:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Added start condition to EOF trace output
+
+1993-09-21 16:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added YY_START changed yyFlexLexer to define yylex()
+
+1993-09-21 16:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Minor portability tweaks
+
+1993-09-21 16:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Split into two classes, one fully abstract. yylex()
+ no longer abstract in yyFlexLexer
+
+1993-09-21 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: PC lint tweak
+
+1993-09-21 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: YYSTYPE #define'd to int
+
+1993-09-21 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: minor lint tweak
+
+1993-09-16 16:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * FlexLexer.h: Initial revision
+
+1993-09-16 16:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Delete prototypes for Unix system calls.
+
+1993-09-16 16:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c, tblcmp.c, sym.c, nfa.c, misc.c, main.c, gen.c, ecs.c,
+ ccl.c, dfa.c, scan.l, parse.y: nuked static RCS string
+
+1993-09-16 16:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: %array not allowed with C++ scanners
+
+1993-09-16 16:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed bugs regarding %{%} code in section 2 prolog %array
+ not allowed with C++ scanners
+
+1993-08-25 13:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added C_plus_plus flag.
+
+1993-08-25 13:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: First version of C/C++ skeleton
+
+1993-08-25 13:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: yy_state_type declared earlier. Made a bunch of statics
+ only output if not -+
+
+1993-08-25 12:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added -+ option, updated usage() output, rearranged some
+ generated code to come at the right point in the output for
+ yyflexlexer.h.
+
+1993-08-25 12:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added %+/%-/%* to skelout()
+
+1993-08-25 12:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: EOF in section 2 prolog leads to section 0, not section 3
+
+1993-08-25 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: Dump promotion of EOF in section 2 to turn on section 3;
+ instead just treat it like a final EOF
+
+1993-08-25 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: yy_nxt table should be "const"
+
+1993-08-24 16:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Removed a lot of #ifdef chud "backtracking" ->
+ "backing up"
+
+1993-08-24 16:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: "backtracking" -> "backing up" got rid of time reports
+
+1993-08-24 16:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: "backtracking" -> "backing up" some portability tweaks
+ fixed to only call flexscan() when done if known to be in section 3
+
+1993-08-24 16:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: isascii() moved to flexdef.h nuked flex_gettime()
+
+1993-08-24 16:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed bug with empty section 2
+
+1993-08-24 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: Chucked definition of isascii()
+
+1993-08-24 16:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: preserve yytext on input() bug fix when combining
+ yyless() with yymore() checkpoint prior to C++ option
+
+1993-08-24 16:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: "backtracking" -> "backing up"
+
+1993-07-09 15:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Fixed to not generate extra EOF's after reading one.
+
+1993-07-05 17:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Spit out definition of YY_CHAR early
+
+1993-07-05 17:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Some rearranging to make sure things get declared in
+ the right order
+
+1993-07-05 17:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: Some comment fixes as per Wilhelms
+
+1993-07-05 17:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Nuked #undef of yywrap, now that it's a function
+
+1993-07-05 17:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Fixed bug with Z-a character classes as per Wilhelms
+
+1993-07-05 17:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: added check_char call in mkstate() to prevent bad xtion
+ chars
+
+1993-07-05 17:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added check_char()
+
+1993-07-05 17:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed some reallocation bugs, etc. as per Wilhelms
+
+1993-07-05 17:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added check_char(), readable_form()
+
+1993-07-05 17:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added #ifndef's around #define's to let user override
+ Moved a bunch of definitions prior to section 1
+
+1993-07-05 17:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: Wilhems bug fixes.
+
+1993-07-05 17:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: Added check_char()
+
+1993-06-12 09:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Changed to use yy_flex_alloc() and friends
+
+1993-06-12 09:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added -P flag
+
+1993-06-12 09:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed bug in lex % directives
+
+1993-06-12 09:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Modified to use yy_flex_alloc() and friends
+
+1993-06-12 09:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Modified to use yy_flex_alloc()
+
+1993-06-12 09:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Modified to use yy_flex_alloc() and friends Moved some
+ globals earlier in the file to permit access in section 1
+
+1993-06-12 09:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: Got rid of code needed for %t
+
+1993-04-14 18:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, dfa.c, ecs.c, flex.skl, flexdef.h, gen.c, libmain.c,
+ main.c, misc.c, nfa.c, parse.y, scan.l, sym.c, tblcmp.c, yylex.c:
+ Reformatting.
+
+1993-04-05 16:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Fixed bug in description of backtracking
+
+1993-04-05 16:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.3.8
+
+1993-04-05 16:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, flex.skl: %array support
+
+1993-04-05 16:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added non-STDC clause for '\a'
+
+1993-04-05 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Fixed subtle problems regarding '*'s in comments
+ %pointer/%array match entire lines
+
+1993-04-05 16:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Added %array support
+
+1993-02-06 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: Finally updated email addr
+
+1993-02-06 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Mostly .LP -> .PP
+
+1993-02-06 16:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: [no log message]
+
+1993-02-06 16:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, scan.l: A lot of tweaks ...
+
+1993-02-06 16:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: reallocate_character_array -> reallocate_Character_array
+
+1993-02-06 16:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Bug/lint fixes Modified to work with "action" array
+ instead of temp file
+
+1993-02-06 16:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Fixed bug in 8-bit hashing
+
+1993-02-06 16:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: numerous bug fixes extra formatting of error/warning
+ messages added support of <*>, partial support for nested start
+ conditions
+
+1993-02-06 16:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: Remove %t cruft
+
+1993-02-06 16:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Beginning of %pointer/%array support
+
+1993-02-06 16:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: Added keeping track of which rules are useful fixed a
+ fencepost error in checking for scanners that require -8
+
+1993-02-06 15:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: Added checking for whether rules are useful modified to
+ work with internal "action" array
+
+1993-02-06 15:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added internal "action" array, internal skeleton,
+ zero_out() in lieu of bzero
+
+1993-02-06 15:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: Fixed a bunch of fencepost errors in increasing tables.
+
+1993-02-06 15:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: -Wall fix
+
+1991-03-28 07:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed out-of-bounds access bug; patch #7 for release 2.3
+
+1991-03-28 07:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Patch #7 for 2.3
+
+1990-10-23 10:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixed missing "rule_type" entry for end-of-buffer action
+
+1990-08-29 08:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Fixed yymore() but in not resetting yy_more_len
+
+1990-08-29 08:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Patch #6 for 2.3
+
+1990-08-16 16:22 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Patch #5
+
+1990-08-13 20:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: fixed comment in myesc()
+
+1990-08-13 20:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: fixed date in patch #4
+
+1990-08-13 20:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: patch #4
+
+1990-08-13 20:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: fixed hexadecimal escapes; added is_hex_digit()
+
+1990-08-03 10:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Patch #3
+
+1990-08-03 10:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h: changed to include <stddef.h> for __GNUC__
+
+1990-08-01 21:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.3 patch #2
+
+1990-08-01 21:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Another try at getting the malloc() definitions
+ correct; this time for g++, too
+
+1990-08-01 20:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h: fixed to declare malloc() and free() by hand
+ if __GNUC__
+
+1990-07-28 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Changed to get malloc definition in identical fashion
+ to that used by flex.skel
+
+1990-06-27 20:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: [no log message]
+
+1990-06-27 20:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Fixed bug in mini-scanner examle Fixed bug in YY_INPUT
+ redefinition yylineno defense reentrancy documentation Something
+ else which I forget.
+
+1990-06-27 19:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * COPYING, ccl.c, dfa.c, ecs.c, flexdef.h, gen.c, main.c, misc.c,
+ nfa.c, parse.y, scan.l, sym.c, tblcmp.c, yylex.c: 4.4 BSD copyright
+
+1990-05-26 13:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: Changed prolog to reflect 2.3 release.
+
+1990-05-26 13:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: pointed reader at Makefile instead of README for porting
+ considerations added Makefile comments: support for SCO Unix;
+ parameterization
+
+1990-05-26 13:24 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added DONT_HAVE_STDLIB_H and declarations of malloc()
+
+1990-05-26 13:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.3 changes
+
+1990-05-26 13:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: documentation on new features Comment regarding Ove's
+ work ^foo|bar difference between flex / lex yyin initialization
+ difference documented that yy_switch_to_buffer can be used in
+ yywrap() documented that # comments are deprecated
+
+1990-05-26 12:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: declared void functions as such added prototypes for
+ forward references changed to check for error status when closing
+ files
+
+1990-05-26 12:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: Added macro definition for isascii() if not already
+ present
+
+1990-05-26 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: declared void functions as such added prototypes for
+ forward references changed to use format_pinpoint_message where
+ appropriate
+
+1990-05-26 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: declared void functions as such changed to strip #
+ comments, as documented moved #undef of yywrap() to before include
+ of flexdef, so prototype doesn't get screwed up
+
+1990-05-26 12:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: introduced format_pinpoint_message() declared void
+ functions as such changed lone <<EOF>> to apply to all outstanding
+ start conditions
+
+1990-05-26 12:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c, tblcmp.c: declared void functions as such added prototypes
+ for forward references
+
+1990-05-26 12:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: declared void functions as such prototypes for forward
+ references shuffled around some routines to make the order perhaps
+ a little more logical changed memory references to use void*
+ instead of char*
+
+1990-05-26 12:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * libmain.c: Added declaration of arguments made yylex() a function
+
+1990-05-26 12:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: prototypes for forward references declared void functions
+ as such yy_flex_debug testing of error on file closes casts to void
+ for sprintf() and strcpy()
+
+1990-05-26 12:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added prototypes changed memory allocation routines to
+ deal with void*'s instead of char*'s some rearranging for VMS
+
+1990-05-26 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Added YY_USER_INIT Added yy_new_buffer() alias for
+ yy_create_buffer() fixed (hopefully) malloc declaration headaches
+
+1990-05-26 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: declared void functions as such declared void functions as
+ such
+
+1990-05-26 12:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: prototypes for forward references declared void functions
+ as such
+
+1990-05-26 12:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: Declared void functions as such
+
+1990-04-12 07:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: added fix for allowing yy_switch_to_buffer() in
+ yywrap()
+
+1990-04-03 10:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: patch #3 - -I fix
+
+1990-03-29 21:43 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Changed generation of archaic "continue" to "goto
+ yy_find_action"
+
+1990-03-27 07:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Patch #2 changes
+
+1990-03-27 07:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: fixed fencepost errors with yy_buf_size and detecting
+ NUL's
+
+1990-03-26 11:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: [no log message]
+
+1990-03-26 11:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: g++ tweaks
+
+1990-03-23 09:25 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: Changes for Patch #1.
+
+1990-03-23 09:20 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: fix for g++
+
+1990-03-23 09:18 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: minor typos and formatting changes. Removed BITNET
+ address.
+
+1990-03-23 09:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: nuked BITNET address.
+
+1990-03-20 09:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: 2.2 README
+
+1990-03-20 09:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: USG alias.
+
+1990-03-20 09:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added USG alias for SYS_V
+
+1990-03-20 09:25 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-03-20 09:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Added Earle Horton for 8-bit chars.
+
+1990-03-20 08:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Tweaks for lint and C++
+
+1990-03-20 08:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: -ll => -lfl
+
+1990-03-20 08:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: 2.2 changes
+
+1990-03-20 08:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Changed to use YY_BUFFER_STATE everywhere.
+
+1990-03-20 08:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-03-20 08:16 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: "associated rules" changed to "associated rule line
+ numbers".
+
+1990-03-20 08:15 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: cast added to malloc() call to keep lint happy.
+
+1990-03-20 06:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: Fixed handling of premature EOF's.
+
+1990-03-20 06:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Removed declaration of malloc()
+
+1990-03-20 06:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Removed malloc() declaration. Added detection of EOF in
+ actions.
+
+1990-03-20 06:35 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Rules rewritten so '/' and '$' parsed correctly.
+
+1990-03-20 06:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: Corrected line numbers for continued actions.
+
+1990-03-20 06:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Removed declarations of malloc() and realloc().
+
+1990-03-20 06:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Summary of generation flags. Minor -8 tweaks.
+
+1990-03-20 06:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: full support for -d
+
+1990-03-20 06:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: defines for malloc() and realloc() conditional defines
+ for abs(), min(), and max()
+
+1990-03-20 06:31 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Many multiple-buffer additions.
+
+1990-03-20 06:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: -8 tweaks.
+
+1990-03-19 11:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Proto hacks. NUL hacks. Debugging hacks. C++ hacks.
+
+1990-03-16 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: RCS won't let me unedit! gets "Missing access list"
+
+1990-03-16 11:55 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: Many hacks for NUL's. Hope they're right.
+
+1990-03-16 11:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: Minor tweaks for NUL's.
+
+1990-03-16 11:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: no changes -- had checked out for testing smaller read
+ buffer sizes
+
+1990-03-16 11:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Nuked some extraneous whitespace. NUL's hacks.
+
+1990-03-16 11:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: hack for NUL's.
+
+1990-03-16 11:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Hack to cshell for NUL's.
+
+1990-03-16 11:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: NUL's. -8
+
+1990-03-16 11:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: NUL's.
+
+1990-03-16 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: NUL's. 8-bit chars.
+
+1990-03-16 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: NUL's; indenting
+
+1990-03-16 11:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: more thrashing around with NUL's
+
+1990-03-16 11:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: removed NUL hack
+
+1990-03-14 08:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: Added <<EOF>> token
+
+1990-03-14 08:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c, flexdef.h: Tweaks for NUL chars.
+
+1990-03-14 08:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c, gen.c, main.c, misc.c, parse.y, scan.l, tblcmp.c: Tweaks
+ for NUL chars.
+
+1990-03-14 08:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: Tweaks for handling NUL's.
+
+1990-02-28 13:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-02-28 11:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Changed .so options.man to inlined version since flex.1
+ will have a different (shorter) options description.
+
+1990-02-28 10:09 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-02-28 06:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-02-26 12:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-02-25 14:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: [no log message]
+
+1990-02-24 20:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.1: Initial revision
+
+1990-01-16 06:17 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Restored EOB accepting list for REJECT. Second try at 2.2
+ Release.
+
+1990-01-16 05:39 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Added missing ',' in error message. 2.2 Release, second
+ try.
+
+1990-01-16 05:29 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: 8-bit char support. 2.2 Release.
+
+1990-01-15 13:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: 8-bit char support. Arbitrary indented/%{} code allowed
+ in section 2. \x escapes. %t support. Minor POSIX-compliance
+ changes. BEGIN(0) -> BEGIN(INITIAL). yywrap() and
+ set_input_file() for multiple input files. C_COMMENT_2 removed.
+ 2.2 Release.
+
+1990-01-15 13:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: 8-bit char support. SYS_V / Atari portability fixes.
+ Removed generated array names. CSIZE now only defined if not
+ already defined. Added "csize" global. Added "input_files",
+ "num_input_files", and "program_name" globals. %t support globals.
+ 2.2 Release.
+
+1990-01-15 12:58 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Removed unused EOB_accepting_list array. 2.2 Release.
+
+1990-01-15 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Bug in -F table generation fixed. 8-bit char support.
+ Hardwired generated array names. "const"'s added to generated
+ code. Fixed yymore() / trailing context bug.
+
+1990-01-15 12:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: 8-bit char support. Error-message pinpointing. 2.2
+ Release.
+
+1990-01-15 12:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Unsigned char support. %t support. Removed hard-wiring
+ of program name "flex". -c changed to -C; -c now deprecated. -n
+ added. :-( Multiple input files. SYSV tmpnam() use. Removed old
+ #define's from output. Identified error messages w/ filename and
+ line. 2.2 Release.
+
+1990-01-15 12:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: Unsigned char support. 2.2 Release.
+
+1990-01-15 12:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: Removed redundant test. 2.2 Release.
+
+1990-01-15 12:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: Unsigned char support. \x support. 2.2 Release.
+
+1990-01-15 12:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: 8-bit char support. 2.2 Release.
+
+1990-01-15 12:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: C++ support. Turbo-C support. 8-bit char support.
+ yyleng is an int. unput() callable in section 3. yymore hacks.
+ yyrestart() no longer closes stdin. 2.2 Release.
+
+1990-01-15 12:41 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: %t support. 8-bit/unsigned char support. 2.2 Release.
+
+1990-01-15 12:40 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: %t hacks. minor cosmetics. 2.2 Relase.
+
+1990-01-15 12:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: Changes for unsigned/8-bit chars. 2.2 Release.
+
+1990-01-10 10:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * libmain.c: Initial revision
+
+1989-12-30 10:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: removed gratuitous trailing context code
+
+1989-12-30 10:34 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: made -c<compression flags> case-sensitive
+
+1989-12-30 10:33 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: unput() bug fix
+
+1989-12-30 10:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: [no log message]
+
+1989-06-20 13:24 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: changed to not use '|' and trailing context combo so
+ users can test using -F ...
+
+1989-06-20 13:23 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: made trailing context combined with '|' warning always
+ come out
+
+1989-06-20 13:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: [no log message]
+
+1989-06-20 12:47 Vern Paxson <vern@ee.lbl.gov>
+
+ * COPYING: Initial revision
+
+1989-06-20 12:36 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, README, NEWS: [no log message]
+
+1989-06-20 12:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: [no log message]
+
+1989-06-20 12:02 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, README, main.c: [no log message]
+
+1989-06-20 11:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, dfa.c, ecs.c, flex.skl, flexdef.h, gen.c, misc.c, nfa.c,
+ parse.y, scan.l, sym.c, tblcmp.c, yylex.c: Beta release
+
+1989-06-20 11:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, README, main.c: 2.1 beta release
+
+1989-06-20 11:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c, NEWS: [no log message]
+
+1989-06-20 11:38 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl, flexdef.h, gen.c, misc.c, nfa.c, parse.y, scan.l,
+ sym.c: 2.0.1 beta
+
+1989-06-20 11:37 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: [no log message]
+
+1989-05-25 08:21 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: fixsed bug with -I and backtracking
+
+1989-05-25 07:49 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Cleaned up forward declarations of yyunput() and
+ input()
+
+1989-05-25 07:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: Split copyright string.
+
+1989-05-25 07:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: Split copyright string. Added check for empty machine in
+ dupmachine().
+
+1989-05-25 07:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, main.c, misc.c, scan.l, ecs.c, sym.c, yylex.c, dfa.c,
+ tblcmp.c, gen.c: Split copyright string into two to avoid tempting
+ fate with \<newline> sequences ...
+
+1989-05-24 08:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: updated for 2nd release Beta test added RCS header
+
+1989-05-24 07:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: removed static char copyright
+
+1989-05-24 07:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added BSD copyright notice. Removed
+ FAST_SKELETON_FILE.
+
+1989-05-24 07:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: added BSD copyright notice. Removed references to
+ FAST_SKELETON_FILE.
+
+1989-05-24 07:44 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c, gen.c, ecs.c: Added BSD copyright notice
+
+1989-05-24 07:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, dfa.c, misc.c, yylex.c, sym.c, tblcmp.c, scan.l, parse.y:
+ added BSD copyright notice
+
+1989-05-23 20:32 Vern Paxson <vern@ee.lbl.gov>
+
+ * flex.skl: Initial revision
+
+1989-05-19 10:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: renamed accnum to num_rules
+
+1989-05-19 10:12 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: moved table generation code to gen.c moved ntod() to
+ dfa.c
+
+1989-05-19 10:11 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: the most piddling format change imaginable
+
+1989-05-19 10:10 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: changed to look for yymore, REJECT, %used and %unused
+ removed gross magic for dealing with section 3
+
+1989-05-19 10:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c, parse.y: changes for variable trailing context
+
+1989-05-19 10:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: added all_lower() and all_upper()
+
+1989-05-19 10:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: added checking for features being Really used
+ backtracking, performance reports misc. cleanup
+
+1989-05-19 10:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: major overhaul for merged skeleton
+
+1989-05-19 10:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: a zillion changes/additions/cleanups
+
+1989-05-19 10:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: added backtrack report added checking for dangerous
+ trailing context considerable minor cleanup
+
+1989-05-19 09:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: list_character_set() modified to take a FILE to write to
+ ...
+
+1989-05-19 09:56 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: updated for beta release
+
+1988-11-25 16:30 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: added -p flag generation of #define's for scanner
+
+1988-11-25 16:28 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: Added END_OF_BUFFER_ACTION and bol_needed
+
+1988-11-25 16:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: added ntod()
+
+1988-05-09 13:01 Vern Paxson <vern@ee.lbl.gov>
+
+ * gen.c: Initial revision
+
+1988-05-08 16:13 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: RCS header changed display style of non-printings from
+ ^x to \0xx
+
+1988-05-08 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: RCS header MAX_XTIONS_FOR_FULL_INTERIOR_FIT ->
+ MAX_XTIONS_FULL_INTERIOR_FIT made back-tracking accepting number be
+ one greater than the last legit accepting number, instead of 0.
+ This way, end-of-buffer can take 0 and no negative accepting
+ numbers are needed. added genftbl() changed last ftl references to
+ C added check for UNSIGNED_CHAR's added back-track logic to
+ make_tables() added checking and report for backtracking fixed
+ fence-post error with onesp stack pointer
+
+1988-05-08 16:08 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: RCS header changed "entry" to "sym_entry" to avoid
+ conflict with old keyword
+
+1988-05-08 16:07 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: RCS header removed \^ from ESCSEQ
+
+1988-05-08 16:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: RCS header bug fix due to missing default rule, could
+ have to backtrack when backtrack variables haven't been set up
+
+1988-05-08 16:05 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: RCS ident yy_cp, yy_bp support name shortenings assoc_rule
+ support
+
+1988-05-08 16:04 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: RCS header check before malloc()'ing for 16 bit overflow
+ MS_DOS, VMS ifdef's removed commented-out \^ code removed FTLSOURCE
+ code added readable_form()
+
+1988-05-08 16:03 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: Added RCS header removed revision history misc additions
+ and fixes to globals VMS ifdef's backtracking statistics -p flag
+ name shortenings
+
+1988-05-08 15:59 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: removed revision history added RCS header added VMS,
+ MS_DOS ifdef's removed DEFAULT_ACTION, changed END_OF_BUFFER_ACTION
+ shortened MAX_XTIONS_FOR_FULL_INTERIOR_FIT to
+ MAX_XTIONS_FULL_INTERIOR_FIT added MAX_ASSOC_RULES added
+ performance_report, assoc_rule gloabls added num_backtracking
+ gloabl shortened allocate_integer_pointer_array,
+ reallocate_integer_pointer_array
+
+1988-05-08 15:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: added RCS id added PROCFLG to avoid assumption of signed
+ char's
+
+1988-05-08 15:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: added RCS id added check_for_backtracking() added
+ dump_associated_rules() added dump_transitions() shortened
+ reallocate_integer_pointer_array to reallocate_int_ptr_array
+ removed some dfaacc_{state,set} abuses
+
+1988-05-08 15:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: Added list_character_set()
+
+1988-05-06 20:06 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: added RCS id
+
+1988-04-10 17:57 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: minor tweaks
+
+1988-04-10 17:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: forgot sh flex.shar
+
+1988-04-10 17:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * README: final tweaking
+
+1988-04-10 17:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: removed minor lint fluff
+
+1988-04-10 17:27 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS: [no log message]
+
+1988-04-10 16:55 Vern Paxson <vern@ee.lbl.gov>
+
+ * NEWS, README: Initial revision
+
+1988-04-10 16:54 Vern Paxson <vern@ee.lbl.gov>
+
+ * yylex.c: added identifying comment. changed to include "parse.h"
+ instead of "y.tab.h"
+
+1988-04-10 16:53 Vern Paxson <vern@ee.lbl.gov>
+
+ * tblcmp.c: Changed name from flexcmp.c -> tblcmp.c fixed misc.
+ typos made generating ec tables be a routine
+
+1988-04-10 16:52 Vern Paxson <vern@ee.lbl.gov>
+
+ * sym.c: changed name from flexsym.c -> sym.c revamped calling
+ sequences, etc., for extended table struct definition which now
+ has both char * and int fields.
+
+1988-04-10 16:51 Vern Paxson <vern@ee.lbl.gov>
+
+ * scan.l: Changed name from flexscan.l -> scan.l fixed bug in
+ <RECOVER> added block comments between rules.
+
+1988-04-10 16:50 Vern Paxson <vern@ee.lbl.gov>
+
+ * parse.y: changed name from flexparse.y -> parse.y added start
+ condition "INITIAL" made a{3} have "variable length"
+
+1988-04-10 16:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * nfa.c: changed name from flexnfa.c -> nfa.c corrected some typos.
+
+1988-04-10 16:48 Vern Paxson <vern@ee.lbl.gov>
+
+ * misc.c: changed name from flexmisc.c -> misc.c
+
+1988-04-10 16:46 Vern Paxson <vern@ee.lbl.gov>
+
+ * main.c: fixed bug causing core dumps if skeleton files could not
+ be opened. Added -cF. Added fullspd to be equivalent to fulltbl
+ for which options is cannot be mixed with.
+
+1988-04-10 16:45 Vern Paxson <vern@ee.lbl.gov>
+
+ * flexdef.h: fixed typos, enhanced symbol table definition.
+
+1988-04-10 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * ecs.c: changed name from flexecs.c to ecs.c
+
+1988-04-10 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * dfa.c: changed name from flexdfa.c to dfa.c
+
+1988-04-10 16:42 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c: changed name from flexccl.c -> ccl.c
+
+1988-02-13 06:00 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, tblcmp.c, dfa.c, ecs.c, main.c, misc.c, nfa.c, sym.c,
+ yylex.c, flexdef.h, parse.y, scan.l: Beta Release.
+
+1987-11-08 17:24 Vern Paxson <vern@ee.lbl.gov>
+
+ * ccl.c, tblcmp.c, flexdef.h, dfa.c, ecs.c, main.c, misc.c, nfa.c,
+ parse.y, scan.l, sym.c, yylex.c: Initial revision
+
diff --git a/FlexLexer.h b/FlexLexer.h
index 3a1025c..bad4ce0 100644
--- a/FlexLexer.h
+++ b/FlexLexer.h
@@ -62,8 +62,8 @@ class FlexLexer {
public:
virtual ~FlexLexer() { }
- const char* YYText() { return yytext; }
- int YYLeng() { return yyleng; }
+ const char* YYText() const { return yytext; }
+ int YYLeng() const { return yyleng; }
virtual void
yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
@@ -99,12 +99,12 @@ protected:
};
}
-#endif
+#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 man page.
+// yyFlexLexer, as discussed in the flex manual.
#define yyFlexLexerOnce
extern "C++" {
@@ -122,11 +122,12 @@ public:
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(void);
+ 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 );
+ 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 );
@@ -172,10 +173,10 @@ protected:
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);
+ 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()).
@@ -201,4 +202,5 @@ protected:
}
-#endif
+#endif // yyFlexLexer || ! yyFlexLexerOnce
+
diff --git a/INSTALL b/INSTALL
index 54caf7c..23e5f25 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,13 +1,16 @@
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
-Foundation, Inc.
+Installation Instructions
+*************************
- This file is free documentation; the Free Software Foundation gives
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
- These are generic installation instructions.
+These are generic installation instructions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
@@ -67,9 +70,9 @@ The simplest way to compile this package is:
Compilers and Options
=====================
- Some systems require unusual options for compilation or linking that
-the `configure' script does not know about. Run `./configure --help'
-for details on some of the pertinent environment variables.
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
@@ -82,7 +85,7 @@ is an example:
Compiling For Multiple Architectures
====================================
- You can compile the package for more than one kind of computer at the
+You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
@@ -99,19 +102,19 @@ for another architecture.
Installation Names
==================
- By default, `make install' will install the package's files in
-`/usr/local/bin', `/usr/local/man', etc. You can specify an
-installation prefix other than `/usr/local' by giving `configure' the
-option `--prefix=PATH'.
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
-give `configure' the option `--exec-prefix=PATH', the package will use
-PATH as the prefix for installing programs and libraries.
-Documentation and other data files will still use the regular prefix.
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
-options like `--bindir=PATH' to specify different values for particular
+options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
@@ -122,7 +125,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
- Some packages pay attention to `--enable-FEATURE' options to
+Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
@@ -137,11 +140,11 @@ you can use the `configure' options `--x-includes=DIR' and
Specifying the System Type
==========================
- There may be some features `configure' cannot figure out
-automatically, but needs to determine by the type of machine the package
-will run on. Usually, assuming the package is built to be run on the
-_same_ architectures, `configure' can figure that out, but if it prints
-a message saying it cannot guess the machine type, give it the
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
@@ -156,7 +159,7 @@ where SYSTEM can have one of these forms:
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
-use the `--target=TYPE' option to select the type of system they will
+use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
@@ -167,9 +170,9 @@ eventually be run) with `--host=TYPE'.
Sharing Defaults
================
- If you want to set default values for `configure' scripts to share,
-you can create a site shell script called `config.site' that gives
-default values for variables like `CC', `cache_file', and `prefix'.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
@@ -178,7 +181,7 @@ A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
- Variables not defined in a site shell script can be set in the
+Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
@@ -186,14 +189,18 @@ them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
-will cause the specified gcc to be used as the C compiler (unless it is
-overridden in the site shell script).
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
`configure' Invocation
======================
- `configure' recognizes the following options to control how it
-operates.
+`configure' recognizes the following options to control how it operates.
`--help'
`-h'
diff --git a/Makefile.am b/Makefile.am
index 4d419a1..5bad607 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,19 +38,16 @@ ACLOCAL_AMFLAGS = -I m4
m4 = @M4@
indent = @INDENT@
-AUTOMAKE_OPTIONS = \
- gnits \
- check-news \
- dist-bzip2 \
- 1.7
-
bin_PROGRAMS = flex
-lib_LIBRARIES = libfl.a
+lib_LIBRARIES = \
+ libfl.a \
+ libfl_pic.a
flex_SOURCES = \
ccl.c \
dfa.c \
ecs.c \
+ scanflags.c \
gen.c \
main.c \
misc.c \
@@ -73,6 +70,14 @@ libfl_a_SOURCES = \
libmain.c \
libyywrap.c
+libfl_pic_a_SOURCES = \
+ libmain.c \
+ libyywrap.c
+
+libfl_pic_a_CFLAGS = \
+ -fPIC \
+ $(AM_CFLAGS)
+
noinst_HEADERS = \
flexdef.h \
flexint.h \
@@ -85,31 +90,7 @@ noinst_HEADERS = \
include_HEADERS = \
FlexLexer.h
-MAINTAINERCLEANFILES = \
- ABOUT-NLS \
- config.rpath \
- config.sub \
- config.guess \
- configure \
- config.sub \
- config.guess \
- depcomp \
- mkinstalldirs \
- install-sh \
- ABOUT-NLS \
- ChangeLog \
- INSTALL \
- conf.in \
- aclocal.m4 \
- Makefile.in \
- mdate-sh \
- missing
-
-
-
EXTRA_DIST = \
- flex.spec.in \
- flex.spec \
.indent.pro \
AUTHORS \
COPYING \
@@ -117,7 +98,7 @@ EXTRA_DIST = \
NEWS \
ONEWS \
README \
- README.cvs-snapshot \
+ README.cvs \
THANKS \
TODO \
autogen.sh \
@@ -140,7 +121,7 @@ SUBDIRS = \
tests
localedir = $(datadir)/locale
-AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I@includedir@ -I$(top_srcdir)/intl
+AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I$(top_srcdir)/intl
LIBS = @LIBINTL@ @LIBS@
skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
@@ -152,6 +133,7 @@ buf.o: buf.c flexdef.h flexint.h
ccl.o: ccl.c flexdef.h flexint.h
dfa.o: dfa.c flexdef.h flexint.h tables.h tables_shared.h
ecs.o: ecs.c flexdef.h flexint.h
+scanflags.o: scanflags.c flexdef.h flexint.h
gen.o: gen.c flexdef.h flexint.h tables.h tables_shared.h
libmain.o: libmain.c
libyywrap.o: libyywrap.c
@@ -172,13 +154,9 @@ tblcmp.o: tblcmp.c flexdef.h flexint.h
yylex.o: yylex.c flexdef.h flexint.h parse.h
filter.o: filter.c flexdef.h flexint.h
-# Create a tags file.
-tags:
- ctags --c-types='defgmstuv' $(srcdir)/*.[ch]
-
# Create the ChangeLog, but only if we're inside a cvs working directory
-ChangeLog:
+ChangeLog: $(srcdir)/tools/cvsauthors $(srcdir)/tools/cvs2cl.pl
if [ -d CVS ] ; then \
sh $(srcdir)/tools/cvs2cl.pl -F trunk -U $(srcdir)/tools/cvsauthors \
; fi
@@ -197,6 +175,7 @@ indentfiles = \
ccl.c \
dfa.c \
ecs.c \
+ scanflags.c \
filter.c \
flexdef.h \
gen.c \
diff --git a/Makefile.in b/Makefile.in
index 7b7dcea..2f8d444 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -49,6 +49,8 @@
# For MS-DOS, add "-DMS_DOS" to DEFS. See the directory MISC/MSDOS for
# additional info.
+
+
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -56,7 +58,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -70,8 +71,97 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+bin_PROGRAMS = flex$(EXEEXT)
+DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
+ $(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/conf.in $(top_srcdir)/configure ABOUT-NLS AUTHORS \
+ COPYING ChangeLog INSTALL NEWS README-alpha THANKS TODO \
+ compile config.guess config.rpath config.sub depcomp \
+ install-sh missing mkinstalldirs parse.c parse.h scan.c
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
+ "$(DESTDIR)$(includedir)"
+libLIBRARIES_INSTALL = $(INSTALL_DATA)
+LIBRARIES = $(lib_LIBRARIES)
+AR = ar
+ARFLAGS = cru
+libfl_a_AR = $(AR) $(ARFLAGS)
+libfl_a_LIBADD =
+am_libfl_a_OBJECTS = libmain.$(OBJEXT) libyywrap.$(OBJEXT)
+libfl_a_OBJECTS = $(am_libfl_a_OBJECTS)
+libfl_pic_a_AR = $(AR) $(ARFLAGS)
+libfl_pic_a_LIBADD =
+am_libfl_pic_a_OBJECTS = libfl_pic_a-libmain.$(OBJEXT) \
+ libfl_pic_a-libyywrap.$(OBJEXT)
+libfl_pic_a_OBJECTS = $(am_libfl_pic_a_OBJECTS)
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_flex_OBJECTS = ccl.$(OBJEXT) dfa.$(OBJEXT) ecs.$(OBJEXT) \
+ scanflags.$(OBJEXT) gen.$(OBJEXT) main.$(OBJEXT) \
+ misc.$(OBJEXT) nfa.$(OBJEXT) parse.$(OBJEXT) scan.$(OBJEXT) \
+ skel.$(OBJEXT) sym.$(OBJEXT) tblcmp.$(OBJEXT) yylex.$(OBJEXT) \
+ options.$(OBJEXT) scanopt.$(OBJEXT) buf.$(OBJEXT) \
+ tables.$(OBJEXT) tables_shared.$(OBJEXT) filter.$(OBJEXT) \
+ regex.$(OBJEXT)
+flex_OBJECTS = $(am_flex_OBJECTS)
+flex_LDADD = $(LDADD)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
+YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
+SOURCES = $(libfl_a_SOURCES) $(libfl_pic_a_SOURCES) $(flex_SOURCES)
+DIST_SOURCES = $(libfl_a_SOURCES) $(libfl_pic_a_SOURCES) \
+ $(flex_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+includeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(include_HEADERS) $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -149,6 +239,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -169,6 +261,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -176,26 +269,19 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
AM_YFLAGS = -d
ACLOCAL_AMFLAGS = -I m4
m4 = @M4@
indent = @INDENT@
-
-AUTOMAKE_OPTIONS = \
- gnits \
- check-news \
- dist-bzip2 \
- 1.7
-
-
-bin_PROGRAMS = flex
-lib_LIBRARIES = libfl.a
+lib_LIBRARIES = \
+ libfl.a \
+ libfl_pic.a
flex_SOURCES = \
ccl.c \
dfa.c \
ecs.c \
+ scanflags.c \
gen.c \
main.c \
misc.c \
@@ -214,11 +300,17 @@ flex_SOURCES = \
filter.c \
regex.c
-
libfl_a_SOURCES = \
libmain.c \
libyywrap.c
+libfl_pic_a_SOURCES = \
+ libmain.c \
+ libyywrap.c
+
+libfl_pic_a_CFLAGS = \
+ -fPIC \
+ $(AM_CFLAGS)
noinst_HEADERS = \
flexdef.h \
@@ -229,35 +321,10 @@ noinst_HEADERS = \
tables.h \
tables_shared.h
-
include_HEADERS = \
FlexLexer.h
-
-MAINTAINERCLEANFILES = \
- ABOUT-NLS \
- config.rpath \
- config.sub \
- config.guess \
- configure \
- config.sub \
- config.guess \
- depcomp \
- mkinstalldirs \
- install-sh \
- ABOUT-NLS \
- ChangeLog \
- INSTALL \
- conf.in \
- aclocal.m4 \
- Makefile.in \
- mdate-sh \
- missing
-
-
EXTRA_DIST = \
- flex.spec.in \
- flex.spec \
.indent.pro \
AUTHORS \
COPYING \
@@ -265,7 +332,7 @@ EXTRA_DIST = \
NEWS \
ONEWS \
README \
- README.cvs-snapshot \
+ README.cvs \
THANKS \
TODO \
autogen.sh \
@@ -275,11 +342,9 @@ EXTRA_DIST = \
config.rpath \
gettext.h
-
BUILT_SOURCES = \
skel.c
-
SUBDIRS = \
. \
doc \
@@ -289,9 +354,8 @@ SUBDIRS = \
tools \
tests
-
localedir = $(datadir)/locale
-AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I@includedir@ -I$(top_srcdir)/intl
+AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" -I$(top_srcdir)/intl
# Run GNU indent on sources. Don't run this unless all the sources compile cleanly.
#
@@ -307,6 +371,7 @@ indentfiles = \
ccl.c \
dfa.c \
ecs.c \
+ scanflags.c \
filter.c \
flexdef.h \
gen.c \
@@ -327,89 +392,43 @@ indentfiles = \
tables_shared.h \
tblcmp.c
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = flex.spec
-LIBRARIES = $(lib_LIBRARIES)
-
-libfl_a_AR = $(AR) cru
-libfl_a_LIBADD =
-am_libfl_a_OBJECTS = libmain.$(OBJEXT) libyywrap.$(OBJEXT)
-libfl_a_OBJECTS = $(am_libfl_a_OBJECTS)
-bin_PROGRAMS = flex$(EXEEXT)
-PROGRAMS = $(bin_PROGRAMS)
-
-am_flex_OBJECTS = ccl.$(OBJEXT) dfa.$(OBJEXT) ecs.$(OBJEXT) \
- gen.$(OBJEXT) main.$(OBJEXT) misc.$(OBJEXT) nfa.$(OBJEXT) \
- parse.$(OBJEXT) scan.$(OBJEXT) skel.$(OBJEXT) sym.$(OBJEXT) \
- tblcmp.$(OBJEXT) yylex.$(OBJEXT) options.$(OBJEXT) \
- scanopt.$(OBJEXT) buf.$(OBJEXT) tables.$(OBJEXT) \
- tables_shared.$(OBJEXT) filter.$(OBJEXT) regex.$(OBJEXT)
-flex_OBJECTS = $(am_flex_OBJECTS)
-flex_LDADD = $(LDADD)
-flex_DEPENDENCIES =
-flex_LDFLAGS =
-
-DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/buf.Po ./$(DEPDIR)/ccl.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/dfa.Po ./$(DEPDIR)/ecs.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/filter.Po ./$(DEPDIR)/gen.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/libmain.Po ./$(DEPDIR)/libyywrap.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/main.Po ./$(DEPDIR)/misc.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/nfa.Po ./$(DEPDIR)/options.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/parse.Po ./$(DEPDIR)/regex.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/scan.Po ./$(DEPDIR)/scanopt.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/skel.Po ./$(DEPDIR)/sym.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/tables.Po ./$(DEPDIR)/tables_shared.Po \
-@AMDEP_TRUE@ ./$(DEPDIR)/tblcmp.Po ./$(DEPDIR)/yylex.Po
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
-YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS)
-DIST_SOURCES = $(libfl_a_SOURCES) $(flex_SOURCES)
-HEADERS = $(include_HEADERS) $(noinst_HEADERS)
-
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = README $(include_HEADERS) $(noinst_HEADERS) ABOUT-NLS \
- AUTHORS COPYING ChangeLog INSTALL Makefile.am Makefile.in NEWS \
- README-alpha THANKS TODO aclocal.m4 conf.in config.guess \
- config.rpath config.sub configure configure.in depcomp \
- flex.spec.in install-sh missing mkinstalldirs parse.c parse.h \
- scan.c
-DIST_SUBDIRS = $(SUBDIRS)
-SOURCES = $(libfl_a_SOURCES) $(flex_SOURCES)
-
all: $(BUILT_SOURCES) config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
.SUFFIXES:
.SUFFIXES: .c .l .o .obj .y
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnits '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnits \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnits Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
-
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): configure.in m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/nls.m4 m4/po.m4 m4/progtest.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1
@@ -421,43 +440,38 @@ config.h: stamp-h1
stamp-h1: $(srcdir)/conf.in $(top_builddir)/config.status
@rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h
-
-$(srcdir)/conf.in: $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/conf.in: $(am__configure_deps)
cd $(top_srcdir) && $(AUTOHEADER)
- touch $(srcdir)/conf.in
+ rm -f stamp-h1
+ touch $@
distclean-hdr:
-rm -f config.h stamp-h1
-flex.spec: $(top_builddir)/config.status flex.spec.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
-
-AR = ar
-libLIBRARIES_INSTALL = $(INSTALL_DATA)
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
+ test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)"
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(libLIBRARIES_INSTALL) $$p $(DESTDIR)$(libdir)/$$f"; \
- $(libLIBRARIES_INSTALL) $$p $(DESTDIR)$(libdir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(libLIBRARIES_INSTALL) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
+ $(libLIBRARIES_INSTALL) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
@$(POST_INSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
- $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
+ p=$(am__strip_dir) \
+ echo " $(RANLIB) '$(DESTDIR)$(libdir)/$$p'"; \
+ $(RANLIB) "$(DESTDIR)$(libdir)/$$p"; \
else :; fi; \
done
uninstall-libLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(libdir)/$$p"; \
- rm -f $(DESTDIR)$(libdir)/$$p; \
+ p=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(libdir)/$$p'"; \
+ rm -f "$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLIBRARIES:
@@ -466,17 +480,20 @@ libfl.a: $(libfl_a_OBJECTS) $(libfl_a_DEPENDENCIES)
-rm -f libfl.a
$(libfl_a_AR) libfl.a $(libfl_a_OBJECTS) $(libfl_a_LIBADD)
$(RANLIB) libfl.a
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+libfl_pic.a: $(libfl_pic_a_OBJECTS) $(libfl_pic_a_DEPENDENCIES)
+ -rm -f libfl_pic.a
+ $(libfl_pic_a_AR) libfl_pic.a $(libfl_pic_a_OBJECTS) $(libfl_pic_a_LIBADD)
+ $(RANLIB) libfl_pic.a
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(bindir)
+ test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) $$p $(DESTDIR)$(bindir)/$$f || exit 1; \
+ echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+ $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
else :; fi; \
done
@@ -484,8 +501,8 @@ uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
- echo " rm -f $(DESTDIR)$(bindir)/$$f"; \
- rm -f $(DESTDIR)$(bindir)/$$f; \
+ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(bindir)/$$f"; \
done
clean-binPROGRAMS:
@@ -499,9 +516,10 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS)
f=`echo "$$p" | \
sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
for opt in --help --version; do \
- if $(DESTDIR)$(bindir)/$$f $$opt > c$${pid}_.out 2> c$${pid}_.err \
- && test -n "`cat c$${pid}_.out`" \
- && test -z "`cat c$${pid}_.err`"; then :; \
+ if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
done; \
done; rm -f c$${pid}_.???; exit $$bad
@@ -515,7 +533,7 @@ flex$(EXEEXT): $(flex_OBJECTS) $(flex_DEPENDENCIES)
$(LINK) $(flex_LDFLAGS) $(flex_OBJECTS) $(flex_LDADD) $(LIBS)
mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
+ -rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@@ -526,6 +544,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ecs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfl_pic_a-libmain.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libfl_pic_a-libyywrap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libyywrap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
@@ -535,6 +555,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scan.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanflags.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scanopt.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/skel.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sym.Po@am__quote@
@@ -543,43 +564,61 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tblcmp.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/yylex.Po@am__quote@
-distclean-depend:
- -rm -rf ./$(DEPDIR)
-
.c.o:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCC_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
-@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
-@am__fastdepCC_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
-@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
-@am__fastdepCC_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
-@am__fastdepCC_TRUE@ fi
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+libfl_pic_a-libmain.o: libmain.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -MT libfl_pic_a-libmain.o -MD -MP -MF "$(DEPDIR)/libfl_pic_a-libmain.Tpo" -c -o libfl_pic_a-libmain.o `test -f 'libmain.c' || echo '$(srcdir)/'`libmain.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfl_pic_a-libmain.Tpo" "$(DEPDIR)/libfl_pic_a-libmain.Po"; else rm -f "$(DEPDIR)/libfl_pic_a-libmain.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libmain.c' object='libfl_pic_a-libmain.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -c -o libfl_pic_a-libmain.o `test -f 'libmain.c' || echo '$(srcdir)/'`libmain.c
+
+libfl_pic_a-libmain.obj: libmain.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -MT libfl_pic_a-libmain.obj -MD -MP -MF "$(DEPDIR)/libfl_pic_a-libmain.Tpo" -c -o libfl_pic_a-libmain.obj `if test -f 'libmain.c'; then $(CYGPATH_W) 'libmain.c'; else $(CYGPATH_W) '$(srcdir)/libmain.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfl_pic_a-libmain.Tpo" "$(DEPDIR)/libfl_pic_a-libmain.Po"; else rm -f "$(DEPDIR)/libfl_pic_a-libmain.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libmain.c' object='libfl_pic_a-libmain.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -c -o libfl_pic_a-libmain.obj `if test -f 'libmain.c'; then $(CYGPATH_W) 'libmain.c'; else $(CYGPATH_W) '$(srcdir)/libmain.c'; fi`
+
+libfl_pic_a-libyywrap.o: libyywrap.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -MT libfl_pic_a-libyywrap.o -MD -MP -MF "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo" -c -o libfl_pic_a-libyywrap.o `test -f 'libyywrap.c' || echo '$(srcdir)/'`libyywrap.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo" "$(DEPDIR)/libfl_pic_a-libyywrap.Po"; else rm -f "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libyywrap.c' object='libfl_pic_a-libyywrap.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -c -o libfl_pic_a-libyywrap.o `test -f 'libyywrap.c' || echo '$(srcdir)/'`libyywrap.c
+
+libfl_pic_a-libyywrap.obj: libyywrap.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -MT libfl_pic_a-libyywrap.obj -MD -MP -MF "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo" -c -o libfl_pic_a-libyywrap.obj `if test -f 'libyywrap.c'; then $(CYGPATH_W) 'libyywrap.c'; else $(CYGPATH_W) '$(srcdir)/libyywrap.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo" "$(DEPDIR)/libfl_pic_a-libyywrap.Po"; else rm -f "$(DEPDIR)/libfl_pic_a-libyywrap.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libyywrap.c' object='libfl_pic_a-libyywrap.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libfl_pic_a_CFLAGS) $(CFLAGS) -c -o libfl_pic_a-libyywrap.obj `if test -f 'libyywrap.c'; then $(CYGPATH_W) 'libyywrap.c'; else $(CYGPATH_W) '$(srcdir)/libyywrap.c'; fi`
.l.c:
- $(LEXCOMPILE) `test -f $< || echo '$(srcdir)/'`$<
+ $(LEXCOMPILE) $<
sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@
rm -f $(LEX_OUTPUT_ROOT).c
.y.c:
- $(YACCCOMPILE) `test -f '$<' || echo '$(srcdir)/'`$<
+ $(YACCCOMPILE) $<
if test -f y.tab.h; then \
to=`echo "$*_H" | sed \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \
- sed "/^#/ s/Y_TAB_H/$$to/g" y.tab.h >$*.ht; \
+ sed -e "/^#/!b" -e "s/Y_TAB_H/$$to/g" -e "s|y\.tab\.h|$*.h|" \
+ y.tab.h >$*.ht; \
rm -f y.tab.h; \
if cmp -s $*.ht $*.h; then \
rm -f $*.ht ;\
@@ -593,23 +632,22 @@ distclean-depend:
sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@
rm -f y.tab.c
uninstall-info-am:
-includeHEADERS_INSTALL = $(INSTALL_HEADER)
install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(includedir)
+ test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \
- $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
+ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done
uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " rm -f $(DESTDIR)$(includedir)/$$f"; \
- rm -f $(DESTDIR)$(includedir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
+ rm -f "$(DESTDIR)$(includedir)/$$f"; \
done
# This directory's subdirectories are mostly independent; you can cd
@@ -619,7 +657,13 @@ uninstall-includeHEADERS:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -631,7 +675,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -639,7 +683,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -660,7 +710,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -671,12 +721,6 @@ ctags-recursive:
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -685,19 +729,22 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) conf.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -707,10 +754,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) conf.in $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) conf.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -733,19 +781,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distuninstallcheck_listfiles = find . -type f -print
-distcleancheck_listfiles = find . -type f -print
distdir: $(DISTFILES)
@case `sed 15q $(srcdir)/NEWS` in \
@@ -756,7 +791,7 @@ distdir: $(DISTFILES)
esac
$(am__remove_distdir)
mkdir $(distdir)
- $(mkinstalldirs) $(distdir)/. $(distdir)/po
+ $(mkdir_p) $(distdir)/m4 $(distdir)/po
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@@ -768,7 +803,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -783,15 +818,17 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -802,24 +839,46 @@ distdir: $(DISTFILES)
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
-
dist-bzip2: distdir
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
- $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build
mkdir $(distdir)/_inst
@@ -839,19 +898,20 @@ distcheck: dist
distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \
&& ({ \
- (cd ../.. && $(mkinstalldirs) "$$dc_destdir") \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
distuninstallcheck:
@cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@@ -876,8 +936,9 @@ check: $(BUILT_SOURCES)
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) config.h
installdirs: installdirs-recursive
installdirs-am:
- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) $(DESTDIR)$(includedir)
-
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(includedir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-recursive
install-exec: install-exec-recursive
@@ -890,7 +951,7 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -898,16 +959,15 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
+ -rm -f parse.c
-rm -f parse.h
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-rm -f scan.c
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
- -rm -f parse.c
clean: clean-recursive
clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \
@@ -915,13 +975,17 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLIBRARIES \
distclean: distclean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-distclean-am: clean-am distclean-compile distclean-depend \
- distclean-generic distclean-hdr distclean-tags
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -938,7 +1002,9 @@ installcheck-am: installcheck-binPROGRAMS
maintainer-clean: maintainer-clean-recursive
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf autom4te.cache
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
@@ -958,28 +1024,24 @@ uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
uninstall-info: uninstall-info-recursive
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
- clean-binPROGRAMS clean-generic clean-libLIBRARIES \
- clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \
- dist-gzip distcheck distclean distclean-compile \
- distclean-depend distclean-generic distclean-hdr \
- distclean-recursive distclean-tags distcleancheck distdir \
- distuninstallcheck dvi dvi-am dvi-recursive info info-am \
- info-recursive install install-am install-binPROGRAMS \
- install-data install-data-am install-data-recursive \
- install-exec install-exec-am install-exec-recursive \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+ check-am clean clean-binPROGRAMS clean-generic \
+ clean-libLIBRARIES clean-recursive ctags ctags-recursive dist \
+ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
+ distcheck distclean distclean-compile distclean-generic \
+ distclean-hdr distclean-recursive distclean-tags \
+ distcleancheck distdir distuninstallcheck dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-exec install-exec-am \
install-includeHEADERS install-info install-info-am \
- install-info-recursive install-libLIBRARIES install-man \
- install-recursive install-strip installcheck installcheck-am \
- installcheck-binPROGRAMS installdirs installdirs-am \
- installdirs-recursive maintainer-clean maintainer-clean-generic \
+ install-libLIBRARIES install-man install-strip installcheck \
+ installcheck-am installcheck-binPROGRAMS installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-recursive pdf pdf-am \
- pdf-recursive ps ps-am ps-recursive tags tags-recursive \
- uninstall uninstall-am uninstall-binPROGRAMS \
- uninstall-includeHEADERS uninstall-info-am \
- uninstall-info-recursive uninstall-libLIBRARIES \
- uninstall-recursive
+ mostlyclean-generic mostlyclean-recursive pdf pdf-am ps ps-am \
+ tags tags-recursive uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-includeHEADERS \
+ uninstall-info-am uninstall-libLIBRARIES
skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
@@ -991,6 +1053,7 @@ buf.o: buf.c flexdef.h flexint.h
ccl.o: ccl.c flexdef.h flexint.h
dfa.o: dfa.c flexdef.h flexint.h tables.h tables_shared.h
ecs.o: ecs.c flexdef.h flexint.h
+scanflags.o: scanflags.c flexdef.h flexint.h
gen.o: gen.c flexdef.h flexint.h tables.h tables_shared.h
libmain.o: libmain.c
libyywrap.o: libyywrap.c
@@ -1011,13 +1074,9 @@ tblcmp.o: tblcmp.c flexdef.h flexint.h
yylex.o: yylex.c flexdef.h flexint.h parse.h
filter.o: filter.c flexdef.h flexint.h
-# Create a tags file.
-tags:
- ctags --c-types='defgmstuv' $(srcdir)/*.[ch]
-
# Create the ChangeLog, but only if we're inside a cvs working directory
-ChangeLog:
+ChangeLog: $(srcdir)/tools/cvsauthors $(srcdir)/tools/cvs2cl.pl
if [ -d CVS ] ; then \
sh $(srcdir)/tools/cvs2cl.pl -F trunk -U $(srcdir)/tools/cvsauthors \
; fi
diff --git a/NEWS b/NEWS
index 17b9c45..b1ada5c 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,66 @@ changes between releases of flex.
See the file COPYING for copying conditions.
+* version 2.5.34 released 2007-12-12
+
+** introduce yylex_init_extra; see the manual for details
+
+** introduce %option extra-type="your_type *" (resolves bug #1744505)
+
+** The flex program now parses multiple short concatenated options (resolves bug
+ #1619820). Thanks to Petr Machata of Red Hat on this issue.
+
+** better checking after yyalloc/yyrealloc (resolves bug #1595967)
+
+** flex now provides for a libfl_pic.a compiled with position
+ independent code. Particularly useful when including a flex scanner
+ in a shared library and with more recent versions of gcc. Thanks to the Debian project for the idea.
+
+** SourceForge feature request #1658379: Expose YY_BUF_SIZE in the
+ header file.
+
+** flex better escapes filenames with special characters in them
+ (resolves bug #1623600)
+
+** a memory leak was plugged(resolves bug #1601111)
+
+** pattern language expanded; see the manual for details on the below
+ highlights
+
+*** pattern options added to specify patterns as case-insensitive or
+ case-sensitive
+
+*** pattern options to specify whether the "." character should match
+ the newline character
+
+*** pattern options added to allow ignoring of whitespace in patterns
+
+*** POSIX character classes may be negated in patterns
+
+*** patterns may now use set difference, union operators
+
+** the manual now contains an appendix listing various common patterns
+ which may be useful when writing scanners
+
+** some memory leaks were removed from the C++ scanner (but the C++
+ scanner is still experimental and may change radically without
+ notice)
+
+** c++ scanners can now use yywrap
+
+** added new unit test for c++ and yywrap
+
+** portability fixes to some unit tests
+
+** flex man page and flex manual in pdf now distributed in the flex
+distribution
+
+** new ca, vi, ga, nl translations from the translation project
+
+** flex no longer comes with an rpm spec file
+
+** flex development now happens with automake 1.9.6
+
* version 2.5.33 released 2006-2-20
** all flex resources are now to be found from the website at
diff --git a/README b/README
index a27e531..0a6a70c 100644
--- a/README
+++ b/README
@@ -8,10 +8,22 @@ flex can be found at:
http://flex.sourceforge.net/
-Of particular interest is the mailing list
-flex-announce@lists.sourceforge.net as that is where posts will be made
+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).
@@ -43,8 +55,6 @@ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
-Please send bug reports and feedback to flex-help@lists.sourceforge.net.
-
The flex distribution contains the following files which may be of interest:
README - This file.
diff --git a/README.cvs-snapshot b/README.cvs
index 45c9edb..65d5576 100644
--- a/README.cvs-snapshot
+++ b/README.cvs
@@ -1,37 +1,39 @@
-This file gives information regarding cvs snapshots of flex. cvs
-snapshots of flex contain the files which are under version control by
-the flex maintainers for the flex project. These snapshots can be
-found at:
+This file gives information regarding the cvs tree of flex. The cvs
+tree of flex contains the files which are under version control by
+the flex maintainers for the flex project.
-ftp://ftp.uncg.edu/people/wlestes/
+You can learn about the details of retrieving a copy of the cvs flex
+tree from flex's SourceForge project page at:
+
+http://sourceforge.net/projects/flex
If you are not interested in flex development or you are not in need
-of the latest bleeding-edge features, then cvs snapshots of flex are
+of the latest bleeding-edge features, then the cvs flex tree is
not for you.
When you get a distribution of flex, a large number of intermediate
files needed to make building flex easy are included. You don't have
-that in a cvs snapshot.
+that in the cvs tree.
You will need various external tools in order to build the distribution. Here is
-a (possibly incomplete) list of the required tools. Always get the latest
+a (hopefully complete and correct) list of the required tools. Always get the latest
version of each tool; we list the versions used in development of
flex, but the listed versions may not work for you.
compiler suite; e.g., gcc
bash or some other fairly robust sh-style shell
GNU bison; to generate parse.c from parse.y
-GNU m4 1.4; required by BNU autoconf (yes, it *must* be GNU m4)
-GNU autoconf 2.54 and GNU automake 1.7; for generating Makefiles etc.
-GNU gettext 0.11.5; for i18n
+GNU m4 1.4; required by GNU autoconf (yes, it *must* be GNU m4)
+GNU autoconf 2.59 and GNU automake 1.9.6; for generating Makefiles etc.
+GNU gettext 0.14.5; for i18n
flex (latest beta release); for bootstrap of scan.l
-help2man 1.27; to generate man page
+help2man 1.36; to generate the flex man page
tar, gzip, etc.; for packaging of the source distribution
-GNU texinfo 4.3d; to build and test the flex manual
+GNU texinfo 4.8; to build and test the flex manual
perl; GNU automake and GNU autoconf now depend on perl to run
GNU indent 2.8; for indenting the flex source the way we want it done
-ONce you have all the necessary tools installed, life becomes
+Once you have all the necessary tools installed, life becomes
simple. To prepare the flex tree for building, run the script:
$ ./autogen.sh
@@ -41,6 +43,4 @@ 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 configure, make,
-make install routine, almost. When configuring the flex tree, pass the
---enable-maintainer-mode option to configure. If you forget, you will
-see errors about a missing file `version.texi'.
+make install routine.
diff --git a/aclocal.m4 b/aclocal.m4
index 76aa2de..f2cc5a6 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.7.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,332 +11,32 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 10
-
-AC_PREREQ([2.54])
-
-# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
-# the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
-
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
-fi
-
-# test whether we have cygpath
-if test -z "$CYGPATH_W"; then
- if (cygpath --version) >/dev/null 2>/dev/null; then
- CYGPATH_W='cygpath -w'
- else
- CYGPATH_W=echo
- fi
-fi
-AC_SUBST([CYGPATH_W])
-
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
-
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
-
-# Some tools Automake needs.
-AC_REQUIRE([AM_SANITY_CHECK])dnl
-AC_REQUIRE([AC_ARG_PROGRAM])dnl
-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
-AM_MISSING_PROG(AUTOCONF, autoconf)
-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
-AM_MISSING_PROG(AUTOHEADER, autoheader)
-AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_MISSING_PROG(AMTAR, tar)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
-# We need awk for the "check" target. The system "awk" is bad on
-# some platforms.
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
-
-_AM_IF_OPTION([no-dependencies],,
-[AC_PROVIDE_IFELSE([AC_PROG_CC],
- [_AM_DEPENDENCIES(CC)],
- [define([AC_PROG_CC],
- defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
-AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [_AM_DEPENDENCIES(CXX)],
- [define([AC_PROG_CXX],
- defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
-])
-])
-
-
-# When config.status generates a header, we must update the stamp-h file.
-# This file resides in the same directory as the config header
-# that is generated. The stamp files are numbered to have different names.
-
-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
-# loop where config.status creates the headers, so we can generate
-# our stamp files there.
-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[# Compute $1's index in $config_headers.
-_am_stamp_count=1
-for _am_header in $config_headers :; do
- case $_am_header in
- $1 | $1:* )
- break ;;
- * )
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
-done
-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
-
-# Copyright 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
-AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
- [AM_AUTOMAKE_VERSION([1.7.5])])
-
-# Helper functions for option handling. -*- Autoconf -*-
-
-# Copyright 2001, 2002 Free Software Foundation, Inc.
+ [AM_AUTOMAKE_VERSION([1.9.6])])
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 2
-
-# _AM_MANGLE_OPTION(NAME)
-# -----------------------
-AC_DEFUN([_AM_MANGLE_OPTION],
-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
-
-# _AM_SET_OPTION(NAME)
-# ------------------------------
-# Set option NAME. Presently that only means defining a flag for this option.
-AC_DEFUN([_AM_SET_OPTION],
-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
-
-# _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
-# OPTIONS is a space-separated list of Automake options.
-AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-
-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
-# -------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-AC_DEFUN([_AM_IF_OPTION],
-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-
-#
-# Check to make sure that the build environment is sane.
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
#
-
-# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_SANITY_CHECK
-# ---------------
-AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
-# Just in case
-sleep 1
-echo timestamp > conftest.file
-# Do `set' in a subshell so we don't clobber the current shell's
-# arguments. Must try -L first in case configure is actually a
-# symlink; some systems play weird games with the mod time of symlinks
-# (eg FreeBSD returns the mod time of the symlink's containing
-# directory).
-if (
- set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
- if test "$[*]" = "X"; then
- # -L didn't work.
- set X `ls -t $srcdir/configure conftest.file`
- fi
- rm -f conftest.file
- if test "$[*]" != "X $srcdir/configure conftest.file" \
- && test "$[*]" != "X conftest.file $srcdir/configure"; then
-
- # If neither matched, then we have a broken ls. This can happen
- # if, for instance, CONFIG_SHELL is bash and it inherits a
- # broken ls alias from the environment. This has actually
- # happened. Such a system could not be considered "sane".
- AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
-alias in your environment])
- fi
-
- test "$[2]" = conftest.file
- )
-then
- # Ok.
- :
-else
- AC_MSG_ERROR([newly created file is older than distributed files!
-Check your system clock])
-fi
-AC_MSG_RESULT(yes)])
-
-# -*- Autoconf -*-
-
-
-# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-# AM_MISSING_PROG(NAME, PROGRAM)
-# ------------------------------
-AC_DEFUN([AM_MISSING_PROG],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])
-$1=${$1-"${am_missing_run}$2"}
-AC_SUBST($1)])
-
-
-# AM_MISSING_HAS_RUN
-# ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
-AC_DEFUN([AM_MISSING_HAS_RUN],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
-# Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
- am_missing_run="$MISSING --run "
-else
- am_missing_run=
- AC_MSG_WARN([`missing' script is too old or missing])
-fi
-])
-
-# AM_AUX_DIR_EXPAND
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
@@ -376,131 +76,55 @@ fi
# absolute PATH. The drawback is that using absolute paths prevent a
# configured tree to be moved without reconfiguration.
-# Rely on autoconf to set up CDPATH properly.
-AC_PREREQ([2.50])
-
-AC_DEFUN([AM_AUX_DIR_EXPAND], [
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
])
-# AM_PROG_INSTALL_SH
-# ------------------
-# Define $install_sh.
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-AC_DEFUN([AM_PROG_INSTALL_SH],
-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"$am_aux_dir/install-sh"}
-AC_SUBST(install_sh)])
-
-# AM_PROG_INSTALL_STRIP
-
-# Copyright 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# AM_CONDITIONAL -*- Autoconf -*-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# One issue with vendor `install' (even GNU) is that you can't
-# specify the program used to strip binaries. This is especially
-# annoying in cross-compiling environments, where the build's strip
-# is unlikely to handle the host's binaries.
-# Fortunately install-sh will honor a STRIPPROG variable, so we
-# always use install-sh in `make install-strip', and initialize
-# STRIPPROG with the value of the STRIP variable (set by the user).
-AC_DEFUN([AM_PROG_INSTALL_STRIP],
-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'. However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
-if test "$cross_compiling" != no; then
- AC_CHECK_TOOL([STRIP], [strip], :)
-fi
-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
-AC_SUBST([INSTALL_STRIP_PROGRAM])])
-
-# -*- Autoconf -*-
-# Copyright (C) 2003 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# serial 1
+# serial 7
-# Check whether the underlying file-system supports filenames
-# with a leading dot. For instance MS-DOS doesn't.
-AC_DEFUN([AM_SET_LEADING_DOT],
-[rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
- am__leading_dot=.
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
else
- am__leading_dot=_
+ $1_TRUE='#'
+ $1_FALSE=
fi
-rmdir .tst 2>/dev/null
-AC_SUBST([am__leading_dot])])
-
-# serial 5 -*- Autoconf -*-
-
-# Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# serial 8
# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
# written in clear, in which case automake, when reading aclocal.m4,
@@ -509,7 +133,6 @@ AC_SUBST([am__leading_dot])])
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
-
# _AM_DEPENDENCIES(NAME)
# ----------------------
# See how the compiler implements dependency checking.
@@ -545,18 +168,34 @@ AC_CACHE_CHECK([dependency style of $depcc],
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
am_cv_$1_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
fi
for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
- echo '#include "conftest.h"' > conftest.c
- echo 'int i;' > conftest.h
- echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
@@ -574,16 +213,22 @@ AC_CACHE_CHECK([dependency style of $depcc],
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=conftest.c object=conftest.o \
- depfile=conftest.Po tmpdepfile=conftest.TPo \
- $SHELL ./depcomp $depcc -c -o conftest.o conftest.c \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err &&
- grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_$1_dependencies_compiler_type=$depmode
break
fi
@@ -617,8 +262,8 @@ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
# ------------
AC_DEFUN([AM_DEP_TRACK],
[AC_ARG_ENABLE(dependency-tracking,
-[ --disable-dependency-tracking Speeds up one-time builds
- --enable-dependency-tracking Do not reject slow dependency extractors])
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\'
@@ -627,26 +272,16 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
AC_SUBST([AMDEPBACKSLASH])
])
-# Generate code to set up dependency tracking. -*- Autoconf -*-
-
-# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# Generate code to set up dependency tracking. -*- Autoconf -*-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-#serial 2
+#serial 3
# _AM_OUTPUT_DEPENDENCY_COMMANDS
# ------------------------------
@@ -665,27 +300,21 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
else
continue
fi
- grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
@@ -711,27 +340,186 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
[AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
])
-# Check to see how 'make' treats includes. -*- Autoconf -*-
+# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
+# serial 12
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+ test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES(CC)],
+ [define([AC_PROG_CC],
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES(CXX)],
+ [define([AC_PROG_CXX],
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $1 | $1:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
# serial 2
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 5
+
+# AM_PROG_LEX
+# -----------
+# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
+# "missing" invocation, for better error output.
+AC_DEFUN([AM_PROG_LEX],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
+AC_REQUIRE([AC_PROG_LEX])dnl
+if test "$LEX" = :; then
+ LEX=${am_missing_run}flex
+fi])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
# AM_MAKE_INCLUDE()
# -----------------
# Check to see how make treats includes.
@@ -774,2125 +562,318 @@ AC_MSG_RESULT([$_am_result])
rm -f confinc confmf
])
-# AM_CONDITIONAL -*- Autoconf -*-
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# serial 4
-# serial 5
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
-AC_PREREQ(2.52)
-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
-# -------------------------------------
-# Define a conditional.
-AC_DEFUN([AM_CONDITIONAL],
-[ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
-AC_SUBST([$1_TRUE])
-AC_SUBST([$1_FALSE])
-if $2; then
- $1_TRUE=
- $1_FALSE='#'
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+ am_missing_run="$MISSING --run "
else
- $1_TRUE='#'
- $1_FALSE=
+ am_missing_run=
+ AC_MSG_WARN([`missing' script is too old or missing])
fi
-AC_CONFIG_COMMANDS_PRE(
-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
- AC_MSG_ERROR([conditional "$1" was never defined.
-Usually this means the macro was only invoked conditionally.])
-fi])])
-
-# gettext.m4 serial 20 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Macro to add for using GNU gettext.
-
-dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl default (if it is not specified or empty) is 'no-libtool'.
-dnl INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
-dnl If INTLSYMBOL is 'use-libtool', then a libtool library
-dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
-dnl depending on --{enable,disable}-{shared,static} and on the presence of
-dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl $(top_builddir)/intl/libintl.a will be created.
-dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
-dnl implementations (in libc or libintl) without the ngettext() function
-dnl will be ignored. If NEEDSYMBOL is specified and is
-dnl 'need-formatstring-macros', then GNU gettext implementations that don't
-dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
-dnl INTLDIR is used to find the intl libraries. If empty,
-dnl the value `$(top_builddir)/intl/' is used.
-dnl
-dnl The result of the configuration is one of three cases:
-dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
-dnl and used.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 2) GNU gettext has been found in the system's C library.
-dnl Catalog format: GNU --> install in $(datadir)
-dnl Catalog extension: .mo after installation, .gmo in source tree
-dnl 3) No internationalization, always use English msgid.
-dnl Catalog format: none
-dnl Catalog extension: none
-dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
-dnl The use of .gmo is historical (it was needed to avoid overwriting the
-dnl GNU format catalogs when building on a platform with an X/Open gettext),
-dnl but we keep it in order not to force irrelevant filename changes on the
-dnl maintainers.
-dnl
-AC_DEFUN([AM_GNU_GETTEXT],
-[
- dnl Argument checking.
- ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
- [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
- ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
- [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
-])])])])
- define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
- define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
-
- AC_REQUIRE([AM_PO_SUBDIRS])dnl
- ifelse(gt_included_intl, yes, [
- AC_REQUIRE([AM_INTL_SUBDIR])dnl
- ])
-
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- dnl Ideally we would do this search only after the
- dnl if test "$USE_NLS" = "yes"; then
- dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
- dnl the configure script would need to contain the same shell code
- dnl again, outside any 'if'. There are two solutions:
- dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
- dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
- dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
- dnl documented, we avoid it.
- ifelse(gt_included_intl, yes, , [
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
- ])
-
- dnl Set USE_NLS.
- AM_NLS
-
- ifelse(gt_included_intl, yes, [
- BUILD_INCLUDED_LIBINTL=no
- USE_INCLUDED_LIBINTL=no
- ])
- LIBINTL=
- LTLIBINTL=
- POSUB=
-
- dnl If we use NLS figure out what method
- if test "$USE_NLS" = "yes"; then
- gt_use_preinstalled_gnugettext=no
- ifelse(gt_included_intl, yes, [
- AC_MSG_CHECKING([whether included gettext is requested])
- AC_ARG_WITH(included-gettext,
- [ --with-included-gettext use the GNU gettext library included here],
- nls_cv_force_use_gnu_gettext=$withval,
- nls_cv_force_use_gnu_gettext=no)
- AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
- nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
- if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
- ])
- dnl User does not insist on using GNU NLS library. Figure out what
- dnl to use. If GNU gettext is available we use this. Else we have
- dnl to fall back to GNU NLS library.
-
- dnl Add a version number to the cache macros.
- define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
- define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
- define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
-
- AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
- [AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
- gt_cv_func_gnugettext_libc=yes,
- gt_cv_func_gnugettext_libc=no)])
-
- if test "$gt_cv_func_gnugettext_libc" != "yes"; then
- dnl Sometimes libintl requires libiconv, so first search for libiconv.
- ifelse(gt_included_intl, yes, , [
- AM_ICONV_LINK
- ])
- dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
- dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
- dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
- dnl even if libiconv doesn't exist.
- AC_LIB_LINKFLAGS_BODY([intl])
- AC_CACHE_CHECK([for GNU gettext in libintl],
- gt_cv_func_gnugettext_libintl,
- [gt_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $INCINTL"
- gt_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBINTL"
- dnl Now see whether libintl exists and does not depend on libiconv.
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- gt_cv_func_gnugettext_libintl=yes,
- gt_cv_func_gnugettext_libintl=no)
- dnl Now see whether libintl exists and depends on libiconv.
- if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <libintl.h>
-]ifelse([$2], [need-formatstring-macros],
-[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-changequote(,)dnl
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-changequote([,])dnl
-], [])[extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias ();],
- [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
- [LIBINTL="$LIBINTL $LIBICONV"
- LTLIBINTL="$LTLIBINTL $LTLIBICONV"
- gt_cv_func_gnugettext_libintl=yes
- ])
- fi
- CPPFLAGS="$gt_save_CPPFLAGS"
- LIBS="$gt_save_LIBS"])
- fi
-
- dnl If an already present or preinstalled GNU gettext() is found,
- dnl use it. But if this macro is used in GNU gettext, and GNU
- dnl gettext is already preinstalled in libintl, we update this
- dnl libintl. (Cf. the install rule in intl/Makefile.in.)
- if test "$gt_cv_func_gnugettext_libc" = "yes" \
- || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
- && test "$PACKAGE" != gettext-runtime \
- && test "$PACKAGE" != gettext-tools; }; then
- gt_use_preinstalled_gnugettext=yes
- else
- dnl Reset the values set by searching for libintl.
- LIBINTL=
- LTLIBINTL=
- INCINTL=
- fi
-
- ifelse(gt_included_intl, yes, [
- if test "$gt_use_preinstalled_gnugettext" != "yes"; then
- dnl GNU gettext is not found in the C library.
- dnl Fall back on included GNU gettext library.
- nls_cv_use_gnu_gettext=yes
- fi
- fi
-
- if test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions used to generate GNU NLS library.
- BUILD_INCLUDED_LIBINTL=yes
- USE_INCLUDED_LIBINTL=yes
- LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
- LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
- LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
- fi
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- dnl Mark actions to use GNU gettext tools.
- CATOBJEXT=.gmo
- fi
- ])
-
- if test "$gt_use_preinstalled_gnugettext" = "yes" \
- || test "$nls_cv_use_gnu_gettext" = "yes"; then
- AC_DEFINE(ENABLE_NLS, 1,
- [Define to 1 if translation of program messages to the user's native language
- is requested.])
- else
- USE_NLS=no
- fi
- fi
-
- AC_MSG_CHECKING([whether to use NLS])
- AC_MSG_RESULT([$USE_NLS])
- if test "$USE_NLS" = "yes"; then
- AC_MSG_CHECKING([where the gettext function comes from])
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- gt_source="external libintl"
- else
- gt_source="libc"
- fi
- else
- gt_source="included intl directory"
- fi
- AC_MSG_RESULT([$gt_source])
- fi
-
- if test "$USE_NLS" = "yes"; then
-
- if test "$gt_use_preinstalled_gnugettext" = "yes"; then
- if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
- AC_MSG_CHECKING([how to link with libintl])
- AC_MSG_RESULT([$LIBINTL])
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
- fi
+])
- dnl For backward compatibility. Some packages may be using this.
- AC_DEFINE(HAVE_GETTEXT, 1,
- [Define if the GNU gettext() function is already present or preinstalled.])
- AC_DEFINE(HAVE_DCGETTEXT, 1,
- [Define if the GNU dcgettext() function is already present or preinstalled.])
- fi
+# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
- dnl We need to process the po/ directory.
- POSUB=po
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake. There are at least two reasons why we must not
+# use `-m 0755':
+# - it causes special bits like SGID to be ignored,
+# - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out. Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
fi
+fi
+AC_SUBST([mkdir_p])])
- ifelse(gt_included_intl, yes, [
- dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
- dnl to 'yes' because some of the testsuite requires it.
- if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
- BUILD_INCLUDED_LIBINTL=yes
- fi
-
- dnl Make all variables we use known to autoconf.
- AC_SUBST(BUILD_INCLUDED_LIBINTL)
- AC_SUBST(USE_INCLUDED_LIBINTL)
- AC_SUBST(CATOBJEXT)
-
- dnl For backward compatibility. Some configure.ins may be using this.
- nls_cv_header_intl=
- nls_cv_header_libgt=
-
- dnl For backward compatibility. Some Makefiles may be using this.
- DATADIRNAME=share
- AC_SUBST(DATADIRNAME)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INSTOBJEXT=.mo
- AC_SUBST(INSTOBJEXT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- GENCAT=gencat
- AC_SUBST(GENCAT)
-
- dnl For backward compatibility. Some Makefiles may be using this.
- if test "$USE_INCLUDED_LIBINTL" = yes; then
- INTLOBJS="\$(GETTOBJS)"
- fi
- AC_SUBST(INTLOBJS)
-
- dnl Enable libtool support if the surrounding package wishes it.
- INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
- AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
- ])
-
- dnl For backward compatibility. Some Makefiles may be using this.
- INTLLIBS="$LIBINTL"
- AC_SUBST(INTLLIBS)
+# Helper functions for option handling. -*- Autoconf -*-
- dnl Make all documented variables known to autoconf.
- AC_SUBST(LIBINTL)
- AC_SUBST(LTLIBINTL)
- AC_SUBST(POSUB)
-])
+# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+# serial 3
-dnl Checks for all prerequisites of the intl subdirectory,
-dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
-dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
-AC_DEFUN([AM_INTL_SUBDIR],
-[
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
- AC_REQUIRE([AC_PROG_RANLIB])dnl
- AC_REQUIRE([AC_ISC_POSIX])dnl
- AC_REQUIRE([AC_HEADER_STDC])dnl
- AC_REQUIRE([AC_C_CONST])dnl
- AC_REQUIRE([AC_C_INLINE])dnl
- AC_REQUIRE([AC_TYPE_OFF_T])dnl
- AC_REQUIRE([AC_TYPE_SIZE_T])dnl
- AC_REQUIRE([AC_FUNC_ALLOCA])dnl
- AC_REQUIRE([AC_FUNC_MMAP])dnl
- AC_REQUIRE([jm_GLIBC21])dnl
- AC_REQUIRE([gt_INTDIV0])dnl
- AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
- AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
- AC_REQUIRE([gt_INTTYPES_PRI])dnl
-
- AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h])
- AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \
-geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \
-strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \
-__fsetlocking])
-
- AM_ICONV
- AM_LANGINFO_CODESET
- if test $ac_cv_header_locale_h = yes; then
- AM_LC_MESSAGES
- fi
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
- dnl intl/plural.c is generated from intl/plural.y. It requires bison,
- dnl because plural.y uses bison specific features. It requires at least
- dnl bison-1.26 because earlier versions generate a plural.c that doesn't
- dnl compile.
- dnl bison is only needed for the maintainer (who touches plural.y). But in
- dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
- dnl the rule in general Makefile. Now, some people carelessly touch the
- dnl files or have a broken "make" program, hence the plural.c rule will
- dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
- dnl present or too old.
- AC_CHECK_PROGS([INTLBISON], [bison])
- if test -z "$INTLBISON"; then
- ac_verc_fail=yes
- else
- dnl Found it, now check the version.
- AC_MSG_CHECKING([version of bison])
-changequote(<<,>>)dnl
- ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
- case $ac_prog_version in
- '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
- 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-changequote([,])dnl
- ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
- *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
- esac
- AC_MSG_RESULT([$ac_prog_version])
- fi
- if test $ac_verc_fail = yes; then
- INTLBISON=:
- fi
-])
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
-dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
-AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
-
-# po.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-dnl Checks for all prerequisites of the po subdirectory.
-AC_DEFUN([AM_PO_SUBDIRS],
-[
- AC_REQUIRE([AC_PROG_MAKE_SET])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
- AC_REQUIRE([AM_MKINSTALLDIRS])dnl
- AC_REQUIRE([AM_NLS])dnl
-
- dnl Perform the following tests also if --disable-nls has been given,
- dnl because they are needed for "make dist" to work.
-
- dnl Search for GNU msgfmt in the PATH.
- dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
- dnl The second test excludes FreeBSD msgfmt.
- AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
- [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
- dnl Search for GNU xgettext 0.12 or newer in the PATH.
- dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
- dnl The second test excludes FreeBSD xgettext.
- AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
- [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
- :)
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
-
- dnl Search for GNU msgmerge 0.11 or newer in the PATH.
- AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
- [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
-
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU msgfmt.
- if test "$GMSGFMT" != ":"; then
- dnl If it is no GNU msgfmt we define it as : so that the
- dnl Makefiles still can work.
- if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
- (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
- AC_MSG_RESULT(
- [found $GMSGFMT program is not GNU msgfmt; ignore it])
- GMSGFMT=":"
- fi
- fi
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
- dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
- dnl Test whether we really found GNU xgettext.
- if test "$XGETTEXT" != ":"; then
- dnl If it is no GNU xgettext we define it as : so that the
- dnl Makefiles still can work.
- if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
- (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
- : ;
- else
- AC_MSG_RESULT(
- [found xgettext program is not GNU xgettext; ignore it])
- XGETTEXT=":"
- fi
- dnl Remove leftover from FreeBSD xgettext call.
- rm -f messages.po
- fi
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
- AC_OUTPUT_COMMANDS([
- for ac_file in $CONFIG_FILES; do
- # Support "outfile[:infile[:infile...]]"
- case "$ac_file" in
- *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- esac
- # PO directories have a Makefile.in generated from Makefile.in.in.
- case "$ac_file" in */Makefile.in)
- # Adjust a relative srcdir.
- ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
- ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
- ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
- # In autoconf-2.13 it is called $ac_given_srcdir.
- # In autoconf-2.50 it is called $srcdir.
- test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
- case "$ac_given_srcdir" in
- .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
- /*) top_srcdir="$ac_given_srcdir" ;;
- *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
- if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
- rm -f "$ac_dir/POTFILES"
- test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
- cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
- POMAKEFILEDEPS="POTFILES.in"
- # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend
- # on $ac_dir but don't depend on user-specified configuration
- # parameters.
- if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
- # The LINGUAS file contains the set of available languages.
- if test -n "$OBSOLETE_ALL_LINGUAS"; then
- test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
- fi
- ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
- # Hide the ALL_LINGUAS assigment from automake.
- eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
- POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
- else
- # The set of available languages was given in configure.in.
- eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
- fi
- case "$ac_given_srcdir" in
- .) srcdirpre= ;;
- *) srcdirpre='$(srcdir)/' ;;
- esac
- POFILES=
- GMOFILES=
- UPDATEPOFILES=
- DUMMYPOFILES=
- for lang in $ALL_LINGUAS; do
- POFILES="$POFILES $srcdirpre$lang.po"
- GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
- UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
- DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
- done
- # CATALOGS depends on both $ac_dir and the user's LINGUAS
- # environment variable.
- INST_LINGUAS=
- if test -n "$ALL_LINGUAS"; then
- for presentlang in $ALL_LINGUAS; do
- useit=no
- if test "%UNSET%" != "$LINGUAS"; then
- desiredlanguages="$LINGUAS"
- else
- desiredlanguages="$ALL_LINGUAS"
- fi
- for desiredlang in $desiredlanguages; do
- # Use the presentlang catalog if desiredlang is
- # a. equal to presentlang, or
- # b. a variant of presentlang (because in this case,
- # presentlang can be used as a fallback for messages
- # which are not translated in the desiredlang catalog).
- case "$desiredlang" in
- "$presentlang"*) useit=yes;;
- esac
- done
- if test $useit = yes; then
- INST_LINGUAS="$INST_LINGUAS $presentlang"
- fi
- done
- fi
- CATALOGS=
- if test -n "$INST_LINGUAS"; then
- for lang in $INST_LINGUAS; do
- CATALOGS="$CATALOGS $lang.gmo"
- done
- fi
- test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
- sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
- for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
- if test -f "$f"; then
- case "$f" in
- *.orig | *.bak | *~) ;;
- *) cat "$f" >> "$ac_dir/Makefile" ;;
- esac
- fi
- done
- fi
- ;;
- esac
- done],
- [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
- # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it
- # from automake.
- eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
- # Capture the value of LINGUAS because we need it to compute CATALOGS.
- LINGUAS="${LINGUAS-%UNSET%}"
- ])
-])
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# nls.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
-
-AC_DEFUN([AM_NLS],
-[
- AC_MSG_CHECKING([whether NLS is requested])
- dnl Default is enabled NLS
- AC_ARG_ENABLE(nls,
- [ --disable-nls do not use Native Language Support],
- USE_NLS=$enableval, USE_NLS=yes)
- AC_MSG_RESULT($USE_NLS)
- AC_SUBST(USE_NLS)
-])
+# serial 4
-AC_DEFUN([AM_MKINSTALLDIRS],
-[
- dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
- dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
- dnl Try to locate it.
- MKINSTALLDIRS=
- if test -n "$ac_aux_dir"; then
- case "$ac_aux_dir" in
- /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
- *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
- esac
- fi
- if test -z "$MKINSTALLDIRS"; then
- MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
- fi
- AC_SUBST(MKINSTALLDIRS)
-])
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t $srcdir/configure conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
-# progtest.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
-
-# Search path for a program which passes the given test.
-
-dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
-dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
-AC_DEFUN([AM_PATH_PROG_WITH_TEST],
-[
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
- ac_executable_p="test -x"
-else
- ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "$2", so it can be a program name with args.
-set dummy $2; ac_word=[$]2
-AC_MSG_CHECKING([for $ac_word])
-AC_CACHE_VAL(ac_cv_path_$1,
-[case "[$]$1" in
- [[\\/]]* | ?:[[\\/]]*)
- ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
- ;;
- *)
- ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in ifelse([$5], , $PATH, [$5]); do
- IFS="$ac_save_IFS"
- test -z "$ac_dir" && ac_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
- if [$3]; then
- ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
- break 2
- fi
- fi
- done
- done
- IFS="$ac_save_IFS"
-dnl If no 4th arg is given, leave the cache variable unset,
-dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
-])dnl
- ;;
-esac])dnl
-$1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
- AC_MSG_RESULT([$]$1)
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
else
- AC_MSG_RESULT(no)
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
fi
-AC_SUBST($1)dnl
-])
-
-# lib-prefix.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
-dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
-dnl to access previously installed libraries. The basic assumption is that
-dnl a user will want packages to use other packages he previously installed
-dnl with the same --prefix option.
-dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
-dnl libraries, but is otherwise very convenient.
-AC_DEFUN([AC_LIB_PREFIX],
-[
- AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
- AC_REQUIRE([AC_PROG_CC])
- AC_REQUIRE([AC_CANONICAL_HOST])
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib-prefix],
-[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
- --without-lib-prefix don't search for libraries in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- if test $use_additional = yes; then
- dnl Potentially add $additional_includedir to $CPPFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's already present in $CPPFLAGS,
- dnl 3. if it's /usr/local/include and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- for x in $CPPFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $CPPFLAGS.
- CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- dnl Potentially add $additional_libdir to $LDFLAGS.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's already present in $LDFLAGS,
- dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- for x in $LDFLAGS; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LDFLAGS.
- LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- fi
-])
-
-dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
-dnl acl_final_exec_prefix, containing the values to which $prefix and
-dnl $exec_prefix will expand at the end of the configure script.
-AC_DEFUN([AC_LIB_PREPARE_PREFIX],
-[
- dnl Unfortunately, prefix and exec_prefix get only finally determined
- dnl at the end of configure.
- if test "X$prefix" = "XNONE"; then
- acl_final_prefix="$ac_default_prefix"
- else
- acl_final_prefix="$prefix"
- fi
- if test "X$exec_prefix" = "XNONE"; then
- acl_final_exec_prefix='${prefix}'
- else
- acl_final_exec_prefix="$exec_prefix"
- fi
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
- prefix="$acl_save_prefix"
-])
+AC_MSG_RESULT(yes)])
-dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
-dnl variables prefix and exec_prefix bound to the values they will have
-dnl at the end of the configure script.
-AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
-[
- acl_save_prefix="$prefix"
- prefix="$acl_final_prefix"
- acl_save_exec_prefix="$exec_prefix"
- exec_prefix="$acl_final_exec_prefix"
- $1
- exec_prefix="$acl_save_exec_prefix"
- prefix="$acl_save_prefix"
-])
+# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# lib-link.m4 serial 4 (gettext-0.12)
-dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
-dnl augments the CPPFLAGS variable.
-AC_DEFUN([AC_LIB_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
- ac_cv_lib[]Name[]_libs="$LIB[]NAME"
- ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
- ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
- ])
- LIB[]NAME="$ac_cv_lib[]Name[]_libs"
- LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
- INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
- dnl results of this search when this library appears as a dependency.
- HAVE_LIB[]NAME=yes
- undefine([Name])
- undefine([NAME])
-])
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'. However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
-dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
-dnl searches for libname and the libraries corresponding to explicit and
-dnl implicit dependencies, together with the specified include files and
-dnl the ability to compile and link the specified testcode. If found, it
-dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
-dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
-dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
-dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
-AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
-[
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
- define([Name],[translit([$1],[./-], [___])])
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
-
- dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([$1], [$2])
-
- dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
- dnl because if the user has installed lib[]Name and not disabled its use
- dnl via --without-lib[]Name-prefix, he wants to use it.
- ac_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
-
- AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
- ac_save_LIBS="$LIBS"
- LIBS="$LIBS $LIB[]NAME"
- AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
- LIBS="$ac_save_LIBS"
- ])
- if test "$ac_cv_lib[]Name" = yes; then
- HAVE_LIB[]NAME=yes
- AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
- AC_MSG_CHECKING([how to link with lib[]$1])
- AC_MSG_RESULT([$LIB[]NAME])
- else
- HAVE_LIB[]NAME=no
- dnl If $LIB[]NAME didn't lead to a usable library, we don't need
- dnl $INC[]NAME either.
- CPPFLAGS="$ac_save_CPPFLAGS"
- LIB[]NAME=
- LTLIB[]NAME=
- fi
- AC_SUBST([HAVE_LIB]NAME)
- AC_SUBST([LIB]NAME)
- AC_SUBST([LTLIB]NAME)
- undefine([Name])
- undefine([NAME])
-])
+# Check how to create a tarball. -*- Autoconf -*-
-dnl Determine the platform dependent parameters needed to use rpath:
-dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
-dnl hardcode_direct, hardcode_minus_L.
-AC_DEFUN([AC_LIB_RPATH],
-[
- AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
- AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
- AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
- AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
- AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
- CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
- ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
- . ./conftest.sh
- rm -f ./conftest.sh
- acl_cv_rpath=done
- ])
- wl="$acl_cv_wl"
- libext="$acl_cv_libext"
- shlibext="$acl_cv_shlibext"
- hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
- hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
- hardcode_direct="$acl_cv_hardcode_direct"
- hardcode_minus_L="$acl_cv_hardcode_minus_L"
- dnl Determine whether the user wants rpath handling at all.
- AC_ARG_ENABLE(rpath,
- [ --disable-rpath do not hardcode runtime library paths],
- :, enable_rpath=yes)
-])
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
-dnl the libraries corresponding to explicit and implicit dependencies.
-dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
-AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
-[
- define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
- [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
- dnl By default, look in $includedir and $libdir.
- use_additional=yes
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- AC_LIB_ARG_WITH([lib$1-prefix],
-[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
- --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
-[
- if test "X$withval" = "Xno"; then
- use_additional=no
- else
- if test "X$withval" = "X"; then
- AC_LIB_WITH_FINAL_PREFIX([
- eval additional_includedir=\"$includedir\"
- eval additional_libdir=\"$libdir\"
- ])
- else
- additional_includedir="$withval/include"
- additional_libdir="$withval/lib"
- fi
- fi
-])
- dnl Search the library and its dependencies in $additional_libdir and
- dnl $LDFLAGS. Using breadth-first-seach.
- LIB[]NAME=
- LTLIB[]NAME=
- INC[]NAME=
- rpathdirs=
- ltrpathdirs=
- names_already_handled=
- names_next_round='$1 $2'
- while test -n "$names_next_round"; do
- names_this_round="$names_next_round"
- names_next_round=
- for name in $names_this_round; do
- already_handled=
- for n in $names_already_handled; do
- if test "$n" = "$name"; then
- already_handled=yes
- break
- fi
- done
- if test -z "$already_handled"; then
- names_already_handled="$names_already_handled $name"
- dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
- dnl or AC_LIB_HAVE_LINKFLAGS call.
- uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
- eval value=\"\$HAVE_LIB$uppername\"
- if test -n "$value"; then
- if test "$value" = yes; then
- eval value=\"\$LIB$uppername\"
- test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
- eval value=\"\$LTLIB$uppername\"
- test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
- else
- dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
- dnl that this library doesn't exist. So just drop it.
- :
- fi
- else
- dnl Search the library lib$name in $additional_libdir and $LDFLAGS
- dnl and the already constructed $LIBNAME/$LTLIBNAME.
- found_dir=
- found_la=
- found_so=
- found_a=
- if test $use_additional = yes; then
- if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
- found_dir="$additional_libdir"
- found_so="$additional_libdir/lib$name.$shlibext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- else
- if test -f "$additional_libdir/lib$name.$libext"; then
- found_dir="$additional_libdir"
- found_a="$additional_libdir/lib$name.$libext"
- if test -f "$additional_libdir/lib$name.la"; then
- found_la="$additional_libdir/lib$name.la"
- fi
- fi
- fi
- fi
- if test "X$found_dir" = "X"; then
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- case "$x" in
- -L*)
- dir=`echo "X$x" | sed -e 's/^X-L//'`
- if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
- found_dir="$dir"
- found_so="$dir/lib$name.$shlibext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- else
- if test -f "$dir/lib$name.$libext"; then
- found_dir="$dir"
- found_a="$dir/lib$name.$libext"
- if test -f "$dir/lib$name.la"; then
- found_la="$dir/lib$name.la"
- fi
- fi
- fi
- ;;
- esac
- if test "X$found_dir" != "X"; then
- break
- fi
- done
- fi
- if test "X$found_dir" != "X"; then
- dnl Found the library.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
- if test "X$found_so" != "X"; then
- dnl Linking with a shared library. We attempt to hardcode its
- dnl directory into the executable's runpath, unless it's the
- dnl standard /usr/lib.
- if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
- dnl No hardcoding is needed.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $found_dir"
- fi
- dnl The hardcoding into $LIBNAME is system dependent.
- if test "$hardcode_direct" = yes; then
- dnl Using DIR/libNAME.so during linking hardcodes DIR into the
- dnl resulting binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
- dnl Use an explicit option to hardcode DIR into the resulting
- dnl binary.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $found_dir"
- fi
- else
- dnl Rely on "-L$found_dir".
- dnl But don't add it if it's already contained in the LDFLAGS
- dnl or the already constructed $LIBNAME
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$found_dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
- fi
- if test "$hardcode_minus_L" != no; then
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
- else
- dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
- dnl here, because this doesn't fit in flags passed to the
- dnl compiler. So give up. No hardcoding. This affects only
- dnl very old systems.
- dnl FIXME: Not sure whether we should use
- dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
- dnl here.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- fi
- else
- if test "X$found_a" != "X"; then
- dnl Linking with a static library.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
- else
- dnl We shouldn't come here, but anyway it's good to have a
- dnl fallback.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
- fi
- fi
- dnl Assume the include files are nearby.
- additional_includedir=
- case "$found_dir" in
- */lib | */lib/)
- basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
- additional_includedir="$basedir/include"
- ;;
- esac
- if test "X$additional_includedir" != "X"; then
- dnl Potentially add $additional_includedir to $INCNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/include,
- dnl 2. if it's /usr/local/include and we are using GCC on Linux,
- dnl 3. if it's already present in $CPPFLAGS or the already
- dnl constructed $INCNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_includedir" != "X/usr/include"; then
- haveit=
- if test "X$additional_includedir" = "X/usr/local/include"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- for x in $CPPFLAGS $INC[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-I$additional_includedir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_includedir"; then
- dnl Really add $additional_includedir to $INCNAME.
- INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
- fi
- fi
- fi
- fi
- fi
- dnl Look for dependencies.
- if test -n "$found_la"; then
- dnl Read the .la file. It defines the variables
- dnl dlname, library_names, old_library, dependency_libs, current,
- dnl age, revision, installed, dlopen, dlpreopen, libdir.
- save_libdir="$libdir"
- case "$found_la" in
- */* | *\\*) . "$found_la" ;;
- *) . "./$found_la" ;;
- esac
- libdir="$save_libdir"
- dnl We use only dependency_libs.
- for dep in $dependency_libs; do
- case "$dep" in
- -L*)
- additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
- dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
- dnl But don't add it
- dnl 1. if it's the standard /usr/lib,
- dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
- dnl 3. if it's already present in $LDFLAGS or the already
- dnl constructed $LIBNAME,
- dnl 4. if it doesn't exist as a directory.
- if test "X$additional_libdir" != "X/usr/lib"; then
- haveit=
- if test "X$additional_libdir" = "X/usr/local/lib"; then
- if test -n "$GCC"; then
- case $host_os in
- linux*) haveit=yes;;
- esac
- fi
- fi
- if test -z "$haveit"; then
- haveit=
- for x in $LDFLAGS $LIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LIBNAME.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- haveit=
- for x in $LDFLAGS $LTLIB[]NAME; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X-L$additional_libdir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- if test -d "$additional_libdir"; then
- dnl Really add $additional_libdir to $LTLIBNAME.
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
- fi
- fi
- fi
- fi
- ;;
- -R*)
- dir=`echo "X$dep" | sed -e 's/^X-R//'`
- if test "$enable_rpath" != no; then
- dnl Potentially add DIR to rpathdirs.
- dnl The rpathdirs will be appended to $LIBNAME at the end.
- haveit=
- for x in $rpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- rpathdirs="$rpathdirs $dir"
- fi
- dnl Potentially add DIR to ltrpathdirs.
- dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
- haveit=
- for x in $ltrpathdirs; do
- if test "X$x" = "X$dir"; then
- haveit=yes
- break
- fi
- done
- if test -z "$haveit"; then
- ltrpathdirs="$ltrpathdirs $dir"
- fi
- fi
- ;;
- -l*)
- dnl Handle this in the next round.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
- ;;
- *.la)
- dnl Handle this in the next round. Throw away the .la's
- dnl directory; it is already contained in a preceding -L
- dnl option.
- names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
- ;;
- *)
- dnl Most likely an immediate library name.
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
- ;;
- esac
- done
- fi
- else
- dnl Didn't find the library; assume it is in the system directories
- dnl known to the linker and runtime loader. (All the system
- dnl directories known to the linker should also be known to the
- dnl runtime loader, otherwise the system is severely misconfigured.)
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
- fi
- fi
- fi
- done
- done
- if test "X$rpathdirs" != "X"; then
- if test -n "$hardcode_libdir_separator"; then
- dnl Weird platform: only the last -rpath option counts, the user must
- dnl pass all path elements in one option. We can arrange that for a
- dnl single library, but not when more than one $LIBNAMEs are used.
- alldirs=
- for found_dir in $rpathdirs; do
- alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
- done
- dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
- acl_save_libdir="$libdir"
- libdir="$alldirs"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- else
- dnl The -rpath options are cumulative.
- for found_dir in $rpathdirs; do
- acl_save_libdir="$libdir"
- libdir="$found_dir"
- eval flag=\"$hardcode_libdir_flag_spec\"
- libdir="$acl_save_libdir"
- LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
- done
- fi
- fi
- if test "X$ltrpathdirs" != "X"; then
- dnl When using libtool, the option that works for both libraries and
- dnl executables is -R. The -R options are cumulative.
- for found_dir in $ltrpathdirs; do
- LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
- done
- fi
-])
+# serial 2
-dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
-dnl unless already present in VAR.
-dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
-dnl contains two or three consecutive elements that belong together.
-AC_DEFUN([AC_LIB_APPENDTOVAR],
-[
- for element in [$2]; do
- haveit=
- for x in $[$1]; do
- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
- if test "X$x" = "X$element"; then
- haveit=yes
- break
- fi
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
done
- if test -z "$haveit"; then
- [$1]="${[$1]}${[$1]:+ }$element"
- fi
- done
-])
-
-# lib-ld.m4 serial 2 (gettext-0.12)
-dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl Subroutines of libtool.m4,
-dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
-dnl with libtool.m4.
-
-dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
-AC_DEFUN([AC_LIB_PROG_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
- acl_cv_prog_gnu_ld=yes
-else
- acl_cv_prog_gnu_ld=no
-fi])
-with_gnu_ld=$acl_cv_prog_gnu_ld
-])
-
-dnl From libtool-1.4. Sets the variable LD.
-AC_DEFUN([AC_LIB_PROG_LD],
-[AC_ARG_WITH(gnu-ld,
-[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
-test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
- echo "#! /bin/sh" >conf$$.sh
- echo "exit 0" >>conf$$.sh
- chmod +x conf$$.sh
- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
- PATH_SEPARATOR=';'
- else
- PATH_SEPARATOR=:
- fi
- rm -f conf$$.sh
-fi
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by GCC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]* | [A-Za-z]:[\\/]*)]
- [re_direlt='/[^/][^/]*/\.\./']
- # Canonicalize the path of ld
- ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
;;
esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(acl_cv_path_LD,
-[if test -z "$LD"; then
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
- for ac_dir in $PATH; do
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- acl_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some GNU ld's only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
- test "$with_gnu_ld" != no && break
- else
- test "$with_gnu_ld" != yes && break
- fi
- fi
- done
- IFS="$ac_save_ifs"
-else
- acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_LIB_PROG_LD_GNU
-])
-
-# iconv.m4 serial AM4 (gettext-0.11.3)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
-[
- dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
- AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
- AC_REQUIRE([AC_LIB_RPATH])
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_LIB_LINKFLAGS_BODY([iconv])
-])
-
-AC_DEFUN([AM_ICONV_LINK],
-[
- dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
- dnl those with the standalone portable GNU libiconv installed).
-
- dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
- dnl accordingly.
- AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
-
- dnl Add $INCICONV to CPPFLAGS before performing the following checks,
- dnl because if the user has installed libiconv and not disabled its use
- dnl via --without-libiconv-prefix, he wants to use it. The first
- dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
- am_save_CPPFLAGS="$CPPFLAGS"
- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
-
- AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
- am_cv_func_iconv="no, consider installing GNU libiconv"
- am_cv_lib_iconv=no
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_func_iconv=yes)
- if test "$am_cv_func_iconv" != yes; then
- am_save_LIBS="$LIBS"
- LIBS="$LIBS $LIBICONV"
- AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
- [iconv_t cd = iconv_open("","");
- iconv(cd,NULL,NULL,NULL,NULL);
- iconv_close(cd);],
- am_cv_lib_iconv=yes
- am_cv_func_iconv=yes)
- LIBS="$am_save_LIBS"
- fi
- ])
- if test "$am_cv_func_iconv" = yes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
- fi
- if test "$am_cv_lib_iconv" = yes; then
- AC_MSG_CHECKING([how to link with libiconv])
- AC_MSG_RESULT([$LIBICONV])
- else
- dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
- dnl either.
- CPPFLAGS="$am_save_CPPFLAGS"
- LIBICONV=
- LTLIBICONV=
- fi
- AC_SUBST(LIBICONV)
- AC_SUBST(LTLIBICONV)
-])
-
-AC_DEFUN([AM_ICONV],
-[
- AM_ICONV_LINK
- if test "$am_cv_func_iconv" = yes; then
- AC_MSG_CHECKING([for iconv declaration])
- AC_CACHE_VAL(am_cv_proto_iconv, [
- AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
- am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
- am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
- AC_MSG_RESULT([$]{ac_t:-
- }[$]am_cv_proto_iconv)
- AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
- [Define as const if the declaration of iconv() needs const.])
- fi
-])
-
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it. Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-# configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-# configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
- [
- dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
- AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
- ]
-)
-
-# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([jm_GLIBC21],
- [
- AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
- ac_cv_gnu_library_2_1,
- [AC_EGREP_CPP([Lucky GNU user],
- [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
- Lucky GNU user
- #endif
-#endif
- ],
- ac_cv_gnu_library_2_1=yes,
- ac_cv_gnu_library_2_1=no)
- ]
- )
- AC_SUBST(GLIBC21)
- GLIBC21="$ac_cv_gnu_library_2_1"
- ]
-)
-
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
- AC_REQUIRE([AC_PROG_CC])dnl
- AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
- AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
- gt_cv_int_divbyzero_sigfpe,
- [
- AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
- /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
- exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
- signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
- signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL. */
-#if defined (__sparc__) && defined (__linux__)
- signal (SIGILL, sigfpe_handler);
-#endif
-
- z = x / y;
- nan = y / y;
- exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
- [
- # Guess based on the CPU.
- case "$host_cpu" in
- alpha* | i[34567]86 | m68k | s390*)
- gt_cv_int_divbyzero_sigfpe="guessing yes";;
- *)
- gt_cv_int_divbyzero_sigfpe="guessing no";;
- esac
- ])
- ])
- case "$gt_cv_int_divbyzero_sigfpe" in
- *yes) value=1;;
- *) value=0;;
- esac
- AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
- [Define if integer division by zero raises signal SIGFPE.])
-])
-
-# uintmax_t.m4 serial 7 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-# if it is not already defined in <stdint.h> or <inttypes.h>.
-
-AC_DEFUN([jm_AC_TYPE_UINTMAX_T],
-[
- AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
- AC_REQUIRE([jm_AC_HEADER_STDINT_H])
- if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then
- AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG])
- test $ac_cv_type_unsigned_long_long = yes \
- && ac_type='unsigned long long' \
- || ac_type='unsigned long'
- AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
- [Define to unsigned long or unsigned long long
- if <stdint.h> and <inttypes.h> don't define.])
- else
- AC_DEFINE(HAVE_UINTMAX_T, 1,
- [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
- fi
-])
-
-# inttypes_h.m4 serial 5 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_inttypes_h=yes,
- jm_ac_cv_header_inttypes_h=no)])
- if test $jm_ac_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
- [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
-
-# stdint_h.m4 serial 3 (gettext-0.12)
-dnl Copyright (C) 1997-2003 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([jm_AC_HEADER_STDINT_H],
-[
- AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h,
- [AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <stdint.h>],
- [uintmax_t i = (uintmax_t) -1;],
- jm_ac_cv_header_stdint_h=yes,
- jm_ac_cv_header_stdint_h=no)])
- if test $jm_ac_cv_header_stdint_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
- [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
- and declares uintmax_t. ])
- fi
-])
-# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40)
-dnl Copyright (C) 1999-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG],
-[
- AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
- [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;],
- [unsigned long long ullmax = (unsigned long long) -1;
- return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
- ac_cv_type_unsigned_long_long=yes,
- ac_cv_type_unsigned_long_long=no)])
- if test $ac_cv_type_unsigned_long_long = yes; then
- AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
- [Define if you have the unsigned long long type.])
- fi
-])
-
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
- AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
- [
- AC_TRY_COMPILE(
- [#include <sys/types.h>
-#include <inttypes.h>],
- [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
- ])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
- [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
- fi
-])
-
-# inttypes-pri.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values. This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
- AC_REQUIRE([gt_HEADER_INTTYPES_H])
- if test $gt_cv_header_inttypes_h = yes; then
- AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
- gt_cv_inttypes_pri_broken,
- [
- AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
- ])
- fi
- if test "$gt_cv_inttypes_pri_broken" = yes; then
- AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
- [Define if <inttypes.h> exists and defines unusable PRI* macros.])
- fi
-])
-
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([AM_LANGINFO_CODESET],
-[
- AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
- [AC_TRY_LINK([#include <langinfo.h>],
- [char* cs = nl_langinfo(CODESET);],
- am_cv_langinfo_codeset=yes,
- am_cv_langinfo_codeset=no)
- ])
- if test $am_cv_langinfo_codeset = yes; then
- AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
- [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
- fi
-])
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
-# lcmessage.m4 serial 3 (gettext-0.11.3)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software, distributed under the terms of the GNU
-dnl General Public License. As a special exception to the GNU General
-dnl Public License, this file may be distributed as part of a program
-dnl that contains a configuration script generated by Autoconf, under
-dnl the same distribution terms as the rest of that program.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([AM_LC_MESSAGES],
-[
- AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
- [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
- am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
- if test $am_cv_val_LC_MESSAGES = yes; then
- AC_DEFINE(HAVE_LC_MESSAGES, 1,
- [Define if your <locale.h> file defines LC_MESSAGES.])
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
-])
-
-
-# Copyright 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
-
-# serial 3
-
-AC_PREREQ(2.50)
-
-# AM_PROG_LEX
-# -----------
-# Autoconf leaves LEX=: if lex or flex can't be found. Change that to a
-# "missing" invocation, for better error output.
-AC_DEFUN([AM_PROG_LEX],
-[AC_REQUIRE([AM_MISSING_HAS_RUN])dnl
-AC_REQUIRE([AC_PROG_LEX])dnl
-if test "$LEX" = :; then
- LEX=${am_missing_run}flex
-fi])
-
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/gettext.m4])
+m4_include([m4/iconv.m4])
+m4_include([m4/lib-ld.m4])
+m4_include([m4/lib-link.m4])
+m4_include([m4/lib-prefix.m4])
+m4_include([m4/nls.m4])
+m4_include([m4/po.m4])
+m4_include([m4/progtest.m4])
diff --git a/buf.c b/buf.c
index fb3bbd1..33a5a9f 100644
--- a/buf.c
+++ b/buf.c
@@ -71,9 +71,10 @@ struct Buf *buf_print_strings(struct Buf * buf, FILE* out)
struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
{
char *t;
+ size_t tsz;
- t = flex_alloc (strlen (fmt) + strlen (s) + 1);
- sprintf (t, fmt, s);
+ t = flex_alloc (tsz = strlen (fmt) + strlen (s) + 1);
+ snprintf (t, tsz, fmt, s);
buf = buf_strappend (buf, t);
flex_free (t);
return buf;
@@ -88,9 +89,10 @@ struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
struct Buf *buf_linedir (struct Buf *buf, const char* filename, int lineno)
{
char *t, *fmt = "#line %d \"%s\"\n";
+ size_t tsz;
- t = flex_alloc (strlen (fmt) + strlen (filename) + (int)(1 + log10(lineno>=0?lineno:-lineno)) + 1);
- sprintf (t, fmt, lineno, filename);
+ t = flex_alloc (tsz = strlen (fmt) + strlen (filename) + (int)(1 + log10(lineno>=0?lineno:-lineno)) + 1);
+ snprintf (t, tsz, fmt, lineno, filename);
buf = buf_strappend (buf, t);
flex_free (t);
return buf;
@@ -156,11 +158,12 @@ struct Buf *buf_m4_define (struct Buf *buf, const char* def, const char* val)
{
const char * fmt = "m4_define( [[%s]], [[%s]])m4_dnl\n";
char * str;
+ size_t strsz;
val = val?val:"";
- str = (char*)flex_alloc(strlen(fmt) + strlen(def) + strlen(val) + 2);
+ str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + strlen(val) + 2);
- sprintf(str, fmt, def, val);
+ snprintf(str, strsz, fmt, def, val);
buf_append(buf, &str, 1);
return buf;
}
@@ -174,10 +177,11 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def)
{
const char * fmt = "m4_undefine( [[%s]])m4_dnl\n";
char * str;
+ size_t strsz;
- str = (char*)flex_alloc(strlen(fmt) + strlen(def) + 2);
+ str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + 2);
- sprintf(str, fmt, def);
+ snprintf(str, strsz, fmt, def);
buf_append(buf, &str, 1);
return buf;
}
diff --git a/ccl.c b/ccl.c
index 1e3c0bb..8d66bb6 100644
--- a/ccl.c
+++ b/ccl.c
@@ -33,6 +33,23 @@
#include "flexdef.h"
+/* return true if the chr is in the ccl. Takes negation into account. */
+static bool
+ccl_contains (const int cclp, const int ch)
+{
+ int ind, len, i;
+
+ len = ccllen[cclp];
+ ind = cclmap[cclp];
+
+ for (i = 0; i < len; ++i)
+ if (ccltbl[ind + i] == ch)
+ return !cclng[cclp];
+
+ return cclng[cclp];
+}
+
+
/* ccladd - add a single character to a ccl */
void ccladd (cclp, ch)
@@ -71,6 +88,100 @@ void ccladd (cclp, ch)
ccltbl[newpos] = ch;
}
+/* dump_cclp - same thing as list_character_set, but for cclps. */
+
+static void dump_cclp (FILE* file, int cclp)
+{
+ register int i;
+
+ putc ('[', file);
+
+ for (i = 0; i < csize; ++i) {
+ if (ccl_contains(cclp, i)){
+ register int start_char = i;
+
+ putc (' ', file);
+
+ fputs (readable_form (i), file);
+
+ while (++i < csize && ccl_contains(cclp,i)) ;
+
+ if (i - 1 > start_char)
+ /* this was a run */
+ fprintf (file, "-%s",
+ readable_form (i - 1));
+
+ putc (' ', file);
+ }
+ }
+
+ putc (']', file);
+}
+
+
+
+/* ccl_set_diff - create a new ccl as the set difference of the two given ccls. */
+int
+ccl_set_diff (int a, int b)
+{
+ int d, ch;
+
+ /* create new class */
+ d = cclinit();
+
+ /* In order to handle negation, we spin through all possible chars,
+ * addding each char in a that is not in b.
+ * (This could be O(n^2), but n is small and bounded.)
+ */
+ for ( ch = 0; ch < csize; ++ch )
+ if (ccl_contains (a, ch) && !ccl_contains(b, ch))
+ ccladd (d, ch);
+
+ /* debug */
+ if (0){
+ fprintf(stderr, "ccl_set_diff (");
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, a);
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, b);
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, d);
+ fprintf(stderr, "\n)\n");
+ }
+ return d;
+}
+
+/* ccl_set_union - create a new ccl as the set union of the two given ccls. */
+int
+ccl_set_union (int a, int b)
+{
+ int d, i;
+
+ /* create new class */
+ d = cclinit();
+
+ /* Add all of a */
+ for (i = 0; i < ccllen[a]; ++i)
+ ccladd (d, ccltbl[cclmap[a] + i]);
+
+ /* Add all of b */
+ for (i = 0; i < ccllen[b]; ++i)
+ ccladd (d, ccltbl[cclmap[b] + i]);
+
+ /* debug */
+ if (0){
+ fprintf(stderr, "ccl_set_union (%d + %d = %d", a, b, d);
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, a);
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, b);
+ fprintf(stderr, "\n ");
+ dump_cclp (stderr, d);
+ fprintf(stderr, "\n)\n");
+ }
+ return d;
+}
+
/* cclinit - return an empty ccl */
diff --git a/compile b/compile
new file mode 100755
index 0000000..1b1d232
--- /dev/null
+++ b/compile
@@ -0,0 +1,142 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
+ # So we strip `-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no `-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # `.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/conf.in b/conf.in
index 92b6713..7f73b84 100644
--- a/conf.in
+++ b/conf.in
@@ -1,19 +1,33 @@
/* conf.in. Generated from configure.in by autoheader. */
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+ systems. This function is required for `alloca.c' support on those systems.
+ */
+#undef CRAY_STACKSEG_END
+
+/* Define to 1 if using `alloca.c'. */
+#undef C_ALLOCA
+
/* Define to 1 if translation of program messages to the user's native
language is requested. */
#undef ENABLE_NLS
-/* Define to 1 if you have the <cunistd> header file. */
-#undef HAVE_CUNISTD
+/* Define to 1 if you have `alloca', as a function or macro. */
+#undef HAVE_ALLOCA
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+#undef HAVE_ALLOCA_H
/* Define if the GNU dcgettext() function is already present or preinstalled.
*/
#undef HAVE_DCGETTEXT
-/* Define to 1 if you have the declaration of `__func__', and to 0 if you
- don't. */
-#undef HAVE_DECL___FUNC__
+/* Define to 1 if you have the `dup2' function. */
+#undef HAVE_DUP2
+
+/* Define to 1 if you have the `fork' function. */
+#undef HAVE_FORK
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
@@ -24,44 +38,79 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
+/* Define to 1 if you have the `isascii' function. */
+#undef HAVE_ISASCII
+
/* Define to 1 if you have the <libintl.h> header file. */
#undef HAVE_LIBINTL_H
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
+/* pthread library */
+#undef HAVE_LIBPTHREAD
+
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#undef HAVE_MALLOC
+
+/* Define to 1 if you have the <malloc.h> header file. */
+#undef HAVE_MALLOC_H
+
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
-/* Define to 1 if you have the <regex.h> header file. */
-#undef HAVE_REGEX_H
+/* Define to 1 if you have the `pow' function. */
+#undef HAVE_POW
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#undef HAVE_PTHREAD_H
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+ and to 0 otherwise. */
+#undef HAVE_REALLOC
+
+/* Define to 1 if you have the `regcomp' function. */
+#undef HAVE_REGCOMP
-/* Define to 1 if you have the <stdbool.h> header file. */
+/* Define to 1 if you have the `setlocale' function. */
+#undef HAVE_SETLOCALE
+
+/* Define to 1 if stdbool.h conforms to C99. */
#undef HAVE_STDBOOL_H
+/* Define to 1 if you have the <stddef.h> header file. */
+#undef HAVE_STDDEF_H
+
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the <sys/params.h> header file. */
-#undef HAVE_SYS_PARAMS_H
+/* Define to 1 if you have the `strtol' function. */
+#undef HAVE_STRTOL
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -69,12 +118,27 @@
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
-/* Define to 1 if you have the <sys/wait.h> header file. */
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the `vfork' function. */
+#undef HAVE_VFORK
+
+/* Define to 1 if you have the <vfork.h> header file. */
+#undef HAVE_VFORK_H
+
+/* Define to 1 if `fork' works. */
+#undef HAVE_WORKING_FORK
+
+/* Define to 1 if `vfork' works. */
+#undef HAVE_WORKING_VFORK
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
/* Define to the GNU M4 executable name. */
#undef M4
@@ -96,6 +160,14 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at run-time.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+#undef STACK_DIRECTION
+
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
@@ -106,5 +178,20 @@
`char[]'. */
#undef YYTEXT_POINTER
+/* Define to empty if `const' does not conform to ANSI C. */
+#undef const
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#undef malloc
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
+/* Define to rpl_realloc if the replacement function should be used. */
+#undef realloc
+
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
+
+/* Define as `fork' if `vfork' does not work. */
+#undef vfork
diff --git a/config.guess b/config.guess
index 6bdac8d..ad5281e 100755
--- a/config.guess
+++ b/config.guess
@@ -1,9 +1,9 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2003-05-09'
+timestamp='2005-08-03'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -17,13 +17,15 @@ timestamp='2003-05-09'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
@@ -53,7 +55,7 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -66,11 +68,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -106,6 +108,7 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
: ${TMPDIR=/tmp} ;
{ tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
dummy=$tmp/dummy ;
tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
@@ -122,7 +125,7 @@ case $CC_FOR_BUILD,$HOST_CC,$CC in
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
@@ -195,50 +198,29 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mipseb-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
+ case $UNAME_RELEASE in
+ *4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
@@ -276,39 +258,49 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
+ # A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit 0 ;;
+ exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit 0 ;;
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit 0;;
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
+ exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
+ exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit 0 ;;
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -316,29 +308,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
else
echo pyramid-pyramid-bsd
fi
- exit 0 ;;
+ exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
+ sparc) echo sparc-icl-nx7; exit ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
@@ -347,10 +342,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
+ exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -362,10 +357,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit 0 ;;
+ exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -376,37 +371,40 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit 0 ;;
+ exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -430,32 +428,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
- exit 0 ;;
+ exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit 0 ;;
+ exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit 0 ;;
+ exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit 0 ;;
+ exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -471,29 +470,29 @@ EOF
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit 0 ;;
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit 0 ;;
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit 0 ;;
+ exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
- exit 0 ;;
+ exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
@@ -501,7 +500,7 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
@@ -516,14 +515,18 @@ EOF
exit(0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo rs6000-ibm-aix3.2.5
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit 0 ;;
+ exit ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
@@ -537,28 +540,28 @@ EOF
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit 0 ;;
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit 0 ;;
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit 0 ;;
+ exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit 0 ;;
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit 0 ;;
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit 0 ;;
+ exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
@@ -620,9 +623,19 @@ EOF
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
@@ -630,11 +643,11 @@ EOF
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -662,147 +675,166 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
- exit 0 ;;
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit 0 ;;
+ exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit 0 ;;
+ exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit 0 ;;
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit 0 ;;
+ exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit 0 ;;
+ exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit 0 ;;
+ exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit 0 ;;
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
*:UNICOS/mp:*:*)
- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
- *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
- exit 0 ;;
+ exit ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
+ exit ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
- x86:Interix*:3*)
- echo i586-pc-interix3
- exit 0 ;;
+ exit ;;
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
- exit 0 ;;
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
- exit 0 ;;
+ exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit 0 ;;
+ exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
*:GNU:*:*)
+ # the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
+ exit ;;
arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
@@ -820,7 +852,7 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
mips64:Linux:*:*)
eval $set_cc_for_build
@@ -839,14 +871,17 @@ EOF
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -860,7 +895,7 @@ EOF
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -868,22 +903,25 @@ EOF
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
- exit 0 ;;
+ exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
@@ -901,15 +939,15 @@ EOF
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
+ exit ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
+ exit ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
+ exit ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
@@ -932,17 +970,23 @@ EOF
LIBC=gnuaout
#endif
#endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ test x"${LIBC}" != x && {
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit
+ }
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
- exit 0 ;;
+ exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
@@ -950,24 +994,27 @@ EOF
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
+ exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
+ exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -975,15 +1022,16 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit 0 ;;
- i*86:*:5:[78]*)
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1001,73 +1049,73 @@ EOF
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit 0 ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit 0 ;;
+ exit ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit 0 ;;
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit 0 ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit 0 ;;
+ exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
- exit 0 ;;
+ exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
+ && { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit 0 ;;
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1075,68 +1123,73 @@ EOF
else
echo ns32k-sni-sysv
fi
- exit 0 ;;
+ exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
- exit 0 ;;
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit 0 ;;
+ exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
- exit 0 ;;
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
- exit 0 ;;
+ exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit 0 ;;
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit 0 ;;
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit 0 ;;
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit 0 ;;
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Darwin:*:*)
- case `uname -p` in
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
*86) UNAME_PROCESSOR=i686 ;;
- powerpc) UNAME_PROCESSOR=powerpc ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1144,22 +1197,25 @@ EOF
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit 0 ;;
- NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
- exit 0 ;;
+ exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit 0 ;;
+ exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
@@ -1170,25 +1226,44 @@ EOF
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
+ exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
- exit 0 ;;
+ exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
- exit 0 ;;
+ exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
- exit 0 ;;
+ exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
- exit 0 ;;
+ exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
- exit 0 ;;
+ exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
- exit 0 ;;
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1220,7 +1295,7 @@ main ()
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
+ printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
@@ -1309,11 +1384,12 @@ main ()
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
@@ -1322,22 +1398,22 @@ then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
c34*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
c38*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
c4*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
esac
fi
@@ -1348,7 +1424,9 @@ This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
diff --git a/config.sub b/config.sub
index fe4f1ed..1c366df 100755
--- a/config.sub
+++ b/config.sub
@@ -1,9 +1,9 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2003-05-09'
+timestamp='2005-07-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -21,14 +21,15 @@ timestamp='2003-05-09'
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
@@ -70,7 +71,7 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
@@ -83,11 +84,11 @@ Try \`$me --help' for more information."
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
@@ -99,7 +100,7 @@ while test $# -gt 0 ; do
*local*)
# First pass through any local machine types.
echo $1
- exit 0;;
+ exit ;;
* )
break ;;
@@ -118,7 +119,8 @@ esac
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
- nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
@@ -144,7 +146,7 @@ case $os in
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
+ -apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
@@ -228,14 +230,16 @@ case $basic_machine in
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
- | clipper \
+ | bfin \
+ | c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
- | ip2k \
- | m32r | m68000 | m68k | m88k | mcore \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -244,30 +248,37 @@ case $basic_machine in
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | ms1 \
| msp430 \
| ns16k | ns32k \
- | openrisc | or32 \
+ | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b \
| strongarm \
- | tahoe | thumb | tic80 | tron \
+ | tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xscale | xstormy16 | xtensa \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
+ m32c)
+ basic_machine=$basic_machine-unknown
+ ;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
@@ -295,19 +306,19 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
- | bs2000-* \
+ | bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | cydra-* \
+ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* \
- | m32r-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
@@ -316,33 +327,40 @@ case $basic_machine in
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | ms1-* \
| msp430-* \
- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
- | xtensa-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
;;
+ m32c-*)
+ ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
@@ -359,6 +377,9 @@ case $basic_machine in
basic_machine=a29k-amd
os=-udi
;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
@@ -376,6 +397,9 @@ case $basic_machine in
amd64)
basic_machine=x86_64-pc
;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
amdahl)
basic_machine=580-amdahl
os=-sysv
@@ -435,12 +459,27 @@ case $basic_machine in
basic_machine=j90-cray
os=-unicos
;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
crds | unos)
basic_machine=m68k-crds
;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
da30 | da30-*)
basic_machine=m68k-da30
;;
@@ -463,6 +502,10 @@ case $basic_machine in
basic_machine=m88k-motorola
os=-sysv3
;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
@@ -641,10 +684,6 @@ case $basic_machine in
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
monitor)
basic_machine=m68k-rom68k
os=-coff
@@ -725,10 +764,6 @@ case $basic_machine in
np1)
basic_machine=np1-gould
;;
- nv1)
- basic_machine=nv1-cray
- os=-unicosmp
- ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
@@ -736,9 +771,12 @@ case $basic_machine in
basic_machine=hppa1.1-oki
os=-proelf
;;
- or32 | or32-*)
+ openrisc | openrisc-*)
basic_machine=or32-unknown
- os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
@@ -771,18 +809,24 @@ case $basic_machine in
pentiumpro | p6 | 6x86 | athlon | athlon_*)
basic_machine=i686-pc
;;
- pentiumii | pentium2)
+ pentiumii | pentium2 | pentiumiii | pentium3)
basic_machine=i686-pc
;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
- pentiumii-* | pentium2-*)
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
pn)
basic_machine=pn-gould
;;
@@ -841,6 +885,10 @@ case $basic_machine in
sb1el)
basic_machine=mipsisa64sb1el-unknown
;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
sequent)
basic_machine=i386-sequent
;;
@@ -848,6 +896,9 @@ case $basic_machine in
basic_machine=sh-hitachi
os=-hms
;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
@@ -922,10 +973,6 @@ case $basic_machine in
basic_machine=t90-cray
os=-unicos
;;
- tic4x | c4x*)
- basic_machine=tic4x-unknown
- os=-coff
- ;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
@@ -951,6 +998,10 @@ case $basic_machine in
tower | tower-32)
basic_machine=m68k-ncr
;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
udi29k)
basic_machine=a29k-amd
os=-udi
@@ -994,6 +1045,10 @@ case $basic_machine in
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
@@ -1024,6 +1079,9 @@ case $basic_machine in
romp)
basic_machine=romp-ibm
;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
rs6000)
basic_machine=rs6000-ibm
;;
@@ -1040,13 +1098,10 @@ case $basic_machine in
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
@@ -1119,19 +1174,21 @@ case $os in
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1149,12 +1206,15 @@ case $os in
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
@@ -1167,6 +1227,9 @@ case $os in
-opened*)
os=-openedition
;;
+ -os400*)
+ os=-os400
+ ;;
-wince*)
os=-wince
;;
@@ -1188,6 +1251,9 @@ case $os in
-atheos*)
os=-atheos
;;
+ -syllable*)
+ os=-syllable
+ ;;
-386bsd)
os=-bsd
;;
@@ -1210,6 +1276,9 @@ case $os in
-sinix*)
os=-sysv4
;;
+ -tpf*)
+ os=-tpf
+ ;;
-triton*)
os=-sysv3
;;
@@ -1246,6 +1315,9 @@ case $os in
-kaos*)
os=-kaos
;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
-none)
;;
*)
@@ -1277,6 +1349,9 @@ case $basic_machine in
arm*-semi)
os=-aout
;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
@@ -1320,9 +1395,15 @@ case $basic_machine in
*-be)
os=-beos
;;
+ *-haiku)
+ os=-haiku
+ ;;
*-ibm)
os=-aix
;;
+ *-knuth)
+ os=-mmixware
+ ;;
*-wec)
os=-proelf
;;
@@ -1455,9 +1536,15 @@ case $basic_machine in
-mvs* | -opened*)
vendor=ibm
;;
+ -os400*)
+ vendor=ibm
+ ;;
-ptx*)
vendor=sequent
;;
+ -tpf*)
+ vendor=ibm
+ ;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
@@ -1482,7 +1569,7 @@ case $basic_machine in
esac
echo $basic_machine$os
-exit 0
+exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/configure b/configure
index 7429efd..062e06f 100755
--- a/configure
+++ b/configure
@@ -1,11 +1,10 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for flex 2.5.33.
+# Generated by GNU Autoconf 2.59 for the fast lexical analyser generator 2.5.34.
#
# Report bugs to <flex-help@lists.sourceforge.net>.
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 2003 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
@@ -22,9 +21,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
+DUALCASE=1; export DUALCASE # for MKS sh
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
@@ -43,7 +43,7 @@ for as_var in \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
LC_TELEPHONE LC_TIME
do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
eval $as_var=C; export $as_var
else
$as_unset $as_var
@@ -220,16 +220,17 @@ rm -f conf$$ conf$$.exe conf$$.file
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
+ test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_executable_p="test -f"
# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
# IFS
@@ -266,10 +267,10 @@ SHELL=${CONFIG_SHELL-/bin/sh}
: ${ac_max_here_lines=38}
# Identity of this package.
-PACKAGE_NAME='flex'
+PACKAGE_NAME='the fast lexical analyser generator'
PACKAGE_TARNAME='flex'
-PACKAGE_VERSION='2.5.33'
-PACKAGE_STRING='flex 2.5.33'
+PACKAGE_VERSION='2.5.34'
+PACKAGE_STRING='the fast lexical analyser generator 2.5.34'
PACKAGE_BUGREPORT='flex-help@lists.sourceforge.net'
ac_unique_file="scan.l"
@@ -310,7 +311,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB YACC LEX LEXLIB LEX_OUTPUT_ROOT CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE LN_S RANLIB ac_ct_RANLIB BISON HELP2MAN M4 INDENT CPP EGREP LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB YACC LEX LEXLIB LEX_OUTPUT_ROOT CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE LN_S RANLIB ac_ct_RANLIB BISON HELP2MAN M4 INDENT ALLOCA CPP EGREP LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -669,7 +670,7 @@ done
# Be sure to have absolute paths.
for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
- localstatedir libdir includedir oldincludedir infodir mandir
+ localstatedir libdir includedir oldincludedir infodir mandir
do
eval ac_val=$`echo $ac_var`
case $ac_val in
@@ -709,10 +710,10 @@ if test -z "$srcdir"; then
# Try the directory containing this script, then its parent.
ac_confdir=`(dirname "$0") 2>/dev/null ||
$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$0" : 'X\(//\)[^/]' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$0" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -787,7 +788,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures flex 2.5.33 to adapt to many kinds of systems.
+\`configure' configures the fast lexical analyser generator 2.5.34 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -812,9 +813,9 @@ _ACEOF
cat <<_ACEOF
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
+ [$ac_default_prefix]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [PREFIX]
+ [PREFIX]
By default, \`make install' will install all the files in
\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
@@ -853,7 +854,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of flex 2.5.33:";;
+ short | recursive ) echo "Configuration of the fast lexical analyser generator 2.5.34:";;
esac
cat <<\_ACEOF
@@ -861,8 +862,8 @@ Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--disable-nls do not use Native Language Support
- --disable-dependency-tracking Speeds up one-time builds
- --enable-dependency-tracking Do not reject slow dependency extractors
+ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors
--disable-rpath do not hardcode runtime library paths
Optional Packages:
@@ -922,12 +923,45 @@ case $srcdir in
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
cd $ac_dir
# Check for guested configure; otherwise get Cygnus style configure.
@@ -938,24 +972,23 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
echo
$SHELL $ac_srcdir/configure --help=recursive
elif test -f $ac_srcdir/configure.ac ||
- test -f $ac_srcdir/configure.in; then
+ test -f $ac_srcdir/configure.in; then
echo
$ac_configure --help
else
echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi
- cd $ac_popdir
+ cd "$ac_popdir"
done
fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-flex configure 2.5.33
-generated by GNU Autoconf 2.57
+the fast lexical analyser generator configure 2.5.34
+generated by GNU Autoconf 2.59
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -966,8 +999,8 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by flex $as_me 2.5.33, which was
-generated by GNU Autoconf 2.57. Invocation command line was
+It was created by the fast lexical analyser generator $as_me 2.5.34, which was
+generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1044,19 +1077,19 @@ do
2)
ac_configure_args1="$ac_configure_args1 '$ac_arg'"
if test $ac_must_keep_next = true; then
- ac_must_keep_next=false # Got value, back to normal.
+ ac_must_keep_next=false # Got value, back to normal.
else
- case $ac_arg in
- *=* | --config-cache | -C | -disable-* | --disable-* \
- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
- | -with-* | --with-* | -without-* | --without-* | --x)
- case "$ac_configure_args0 " in
- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
- esac
- ;;
- -* ) ac_must_keep_next=true ;;
- esac
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
fi
ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
# Get rid of the leading space.
@@ -1090,12 +1123,12 @@ _ASBOX
case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
*ac_space=\ *)
sed -n \
- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
;;
*)
sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
;;
esac;
}
@@ -1124,7 +1157,7 @@ _ASBOX
for ac_var in $ac_subst_files
do
eval ac_val=$`echo $ac_var`
- echo "$ac_var='"'"'$ac_val'"'"'"
+ echo "$ac_var='"'"'$ac_val'"'"'"
done | sort
echo
fi
@@ -1143,7 +1176,7 @@ _ASBOX
echo "$as_me: caught signal $ac_signal"
echo "$as_me: exit $exit_status"
} >&5
- rm -f core core.* *.core &&
+ rm -f core *.core &&
rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
' 0
@@ -1223,7 +1256,7 @@ fi
# value.
ac_cache_corrupted=false
for ac_var in `(set) 2>&1 |
- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
eval ac_old_set=\$ac_cv_env_${ac_var}_set
eval ac_new_set=\$ac_env_${ac_var}_set
eval ac_old_val="\$ac_cv_env_${ac_var}_value"
@@ -1240,13 +1273,13 @@ echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
- ac_cache_corrupted=:
+ ac_cache_corrupted=:
fi;;
esac
# Pass precious variables to config.status.
@@ -1303,7 +1336,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-am__api_version="1.7"
+am__api_version="1.9"
ac_aux_dir=
for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
if test -f $ac_dir/install-sh; then
@@ -1340,6 +1373,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
# ./install, which can be erroneously created by make from ./install.sh.
echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
@@ -1356,6 +1390,7 @@ do
case $as_dir/ in
./ | .// | /cC/* | \
/etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
/usr/ucb/* ) ;;
*)
# OSF1 and SCO ODT 3.0 have their own names for install.
@@ -1363,20 +1398,20 @@ case $as_dir/ in
# by default.
for ac_prog in ginstall scoinst install; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
- elif test $ac_prog = install &&
- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # program-specific install script used by HP pwplus--don't use.
- :
- else
- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
- break 3
- fi
- fi
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
done
done
;;
@@ -1464,7 +1499,6 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm conftest.sed
-
# expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd`
@@ -1478,6 +1512,39 @@ else
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+ # We used to keeping the `.' as first argument, in order to
+ # allow $(mkdir_p) to be used without argument. As in
+ # $(mkdir_p) $(somedir)
+ # where $(somedir) is conditionally defined. However this is wrong
+ # for two reasons:
+ # 1. if the package is installed by a user who cannot write `.'
+ # make install will fail,
+ # 2. the above comment should most certainly read
+ # $(mkdir_p) $(DESTDIR)$(somedir)
+ # so it does not work when $(somedir) is undefined and
+ # $(DESTDIR) is not.
+ # To support the latter case, we have to write
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+ # so the `.' trick is pointless.
+ mkdir_p='mkdir -p --'
+else
+ # On NextStep and OpenStep, the `mkdir' command does not
+ # recognize any option. It will interpret all options as
+ # directories to create, and then abort because `.' already
+ # exists.
+ for d in ./-p ./--version;
+ do
+ test -d $d && rmdir $d
+ done
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
+ mkdir_p='$(mkinstalldirs)'
+ else
+ mkdir_p='$(install_sh) -d'
+ fi
+fi
+
for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -1520,7 +1587,7 @@ done
echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
@@ -1556,7 +1623,7 @@ else
fi
rmdir .tst 2>/dev/null
- # test to see if srcdir already configured
+# test to see if srcdir already configured
if test "`cd $srcdir && pwd`" != "`pwd`" &&
test -f $srcdir/config.status; then
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
@@ -1576,7 +1643,7 @@ fi
# Define the identity of the package.
PACKAGE='flex'
- VERSION='2.5.33'
+ VERSION='2.5.34'
cat >>confdefs.h <<_ACEOF
@@ -1604,9 +1671,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-AMTAR=${AMTAR-"${am_missing_run}tar"}
-
install_sh=${install_sh-"$am_aux_dir/install-sh"}
# Installed binaries are usually stripped using `strip' when the user
@@ -1699,12 +1763,20 @@ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
# We need awk for the "check" target. The system "awk" is bad on
# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
ac_config_headers="$ac_config_headers config.h:conf.in"
+# checks for programs
MKINSTALLDIRS=
@@ -2430,7 +2502,6 @@ ac_compiler=`set X $ac_compile; echo $2`
(exit $ac_status); }
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2450,8 +2521,8 @@ ac_clean_files="$ac_clean_files a.out a.exe b.out"
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
@@ -2471,23 +2542,23 @@ do
test -f "$ac_file" || continue
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
- ;;
+ ;;
conftest.$ac_ext )
- # This is the source file.
- ;;
+ # This is the source file.
+ ;;
[ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
*.* )
- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- # FIXME: I believe we export ac_cv_exeext for Libtool,
- # but it would be cool to find out if it's true. Does anybody
- # maintain Libtool? --akim.
- export ac_cv_exeext
- break;;
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ # FIXME: I believe we export ac_cv_exeext for Libtool,
+ # but it would be cool to find out if it's true. Does anybody
+ # maintain Libtool? --akim.
+ export ac_cv_exeext
+ break;;
* )
- break;;
+ break;;
esac
done
else
@@ -2561,8 +2632,8 @@ for ac_file in conftest.exe conftest conftest.*; do
case $ac_file in
*.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
*.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
- export ac_cv_exeext
- break;;
+ export ac_cv_exeext
+ break;;
* ) break;;
esac
done
@@ -2587,7 +2658,6 @@ if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2638,7 +2708,6 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2658,11 +2727,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2675,7 +2753,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_compiler_gnu=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
@@ -2691,7 +2769,6 @@ if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2708,11 +2785,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2725,7 +2811,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_prog_cc_g=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
@@ -2752,7 +2838,6 @@ else
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2780,6 +2865,16 @@ static char *f (char * (*g) (char **, int), char **p, ...)
va_end (v);
return s;
}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
@@ -2806,11 +2901,20 @@ do
CC="$ac_save_CC $ac_arg"
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2823,7 +2927,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext
+rm -f conftest.err conftest.$ac_objext
done
rm -f conftest.$ac_ext conftest.$ac_objext
CC=$ac_save_CC
@@ -2851,19 +2955,27 @@ cat >conftest.$ac_ext <<_ACEOF
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
for ac_declaration in \
- ''\
- '#include <stdlib.h>' \
+ '' \
'extern "C" void std::exit (int) throw (); using std::exit;' \
'extern "C" void std::exit (int); using std::exit;' \
'extern "C" void exit (int) throw ();' \
@@ -2871,14 +2983,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
$ac_declaration
+#include <stdlib.h>
int
main ()
{
@@ -2889,11 +3000,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2906,9 +3026,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
continue
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -2925,11 +3044,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -2941,7 +3069,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
done
rm -f conftest*
if test -n "$ac_declaration"; then
@@ -2955,7 +3083,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2980,18 +3108,34 @@ else
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
- echo '#include "conftest.h"' > conftest.c
- echo 'int i;' > conftest.h
- echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
@@ -3009,16 +3153,22 @@ else
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=conftest.c object=conftest.o \
- depfile=conftest.Po tmpdepfile=conftest.TPo \
- $SHELL ./depcomp $depcc -c -o conftest.o conftest.c \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err &&
- grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
@@ -3680,7 +3830,6 @@ if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -3700,11 +3849,20 @@ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3717,7 +3875,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
gt_cv_func_gnugettext1_libc=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6
@@ -3762,7 +3921,6 @@ else
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -3782,11 +3940,20 @@ iconv_t cd = iconv_open("","");
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3798,12 +3965,12 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS $LIBICONV"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -3823,11 +3990,20 @@ iconv_t cd = iconv_open("","");
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -3840,7 +4016,8 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS="$am_save_LIBS"
fi
@@ -4256,7 +4433,6 @@ else
gt_save_LIBS="$LIBS"
LIBS="$LIBS $LIBINTL"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -4280,11 +4456,20 @@ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4297,11 +4482,11 @@ sed 's/^/| /' conftest.$ac_ext >&5
gt_cv_func_gnugettext1_libintl=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
LIBS="$LIBS $LIBICONV"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -4325,11 +4510,20 @@ return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4344,7 +4538,8 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
CPPFLAGS="$gt_save_CPPFLAGS"
LIBS="$gt_save_LIBS"
@@ -4549,7 +4744,6 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lfl $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -4573,11 +4767,20 @@ yywrap ();
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4590,7 +4793,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_fl_yywrap=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
@@ -4606,7 +4810,6 @@ else
ac_check_lib_save_LIBS=$LIBS
LIBS="-ll $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -4630,11 +4833,20 @@ yywrap ();
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4647,7 +4859,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_lib_l_yywrap=no
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
@@ -4709,11 +4922,20 @@ cat >conftest.$ac_ext <<_ACEOF
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -4725,7 +4947,8 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_save_LIBS
rm -f "${LEX_OUTPUT_ROOT}.c"
@@ -5085,7 +5308,6 @@ if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5105,11 +5327,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5122,7 +5353,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_compiler_gnu=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
@@ -5138,7 +5369,6 @@ if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5155,11 +5385,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5172,7 +5411,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_prog_cc_g=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
@@ -5199,7 +5438,6 @@ else
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5227,6 +5465,16 @@ static char *f (char * (*g) (char **, int), char **p, ...)
va_end (v);
return s;
}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std1 is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std1. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
int test (int i, double x);
struct s1 {int (*f) (int a);};
struct s2 {int (*f) (double a);};
@@ -5253,11 +5501,20 @@ do
CC="$ac_save_CC $ac_arg"
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5270,7 +5527,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext
+rm -f conftest.err conftest.$ac_objext
done
rm -f conftest.$ac_ext conftest.$ac_objext
CC=$ac_save_CC
@@ -5298,19 +5555,27 @@ cat >conftest.$ac_ext <<_ACEOF
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
for ac_declaration in \
- ''\
- '#include <stdlib.h>' \
+ '' \
'extern "C" void std::exit (int) throw (); using std::exit;' \
'extern "C" void std::exit (int); using std::exit;' \
'extern "C" void exit (int) throw ();' \
@@ -5318,14 +5583,13 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
$ac_declaration
+#include <stdlib.h>
int
main ()
{
@@ -5336,11 +5600,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5353,9 +5626,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
continue
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5372,11 +5644,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5388,7 +5669,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
done
rm -f conftest*
if test -n "$ac_declaration"; then
@@ -5402,7 +5683,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -5427,18 +5708,34 @@ else
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
am_cv_CC_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
- echo '#include "conftest.h"' > conftest.c
- echo 'int i;' > conftest.h
- echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
@@ -5456,16 +5753,22 @@ else
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=conftest.c object=conftest.o \
- depfile=conftest.Po tmpdepfile=conftest.TPo \
- $SHELL ./depcomp $depcc -c -o conftest.o conftest.c \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err &&
- grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode
break
fi
@@ -5615,7 +5918,6 @@ if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5635,11 +5937,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5652,7 +5963,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_compiler_gnu=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
@@ -5668,7 +5979,6 @@ if test "${ac_cv_prog_cxx_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5685,11 +5995,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5702,7 +6021,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_prog_cxx_g=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
@@ -5722,8 +6041,7 @@ else
fi
fi
for ac_declaration in \
- ''\
- '#include <stdlib.h>' \
+ '' \
'extern "C" void std::exit (int) throw (); using std::exit;' \
'extern "C" void std::exit (int); using std::exit;' \
'extern "C" void exit (int) throw ();' \
@@ -5731,14 +6049,13 @@ for ac_declaration in \
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdlib.h>
$ac_declaration
+#include <stdlib.h>
int
main ()
{
@@ -5749,11 +6066,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5766,9 +6092,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
continue
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5785,11 +6110,20 @@ exit (42);
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_cxx_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -5801,7 +6135,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
done
rm -f conftest*
if test -n "$ac_declaration"; then
@@ -5834,18 +6168,34 @@ else
# using a relative directory.
cp "$am_depcomp" conftest.dir
cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
am_cv_CXX_dependencies_compiler_type=none
if test "$am_compiler_list" = ""; then
am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
fi
for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
# We need to recreate these files for each test, as the compiler may
# overwrite some of them when testing with obscure command lines.
# This happens at least with the AIX C compiler.
- echo '#include "conftest.h"' > conftest.c
- echo 'int i;' > conftest.h
- echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
case $depmode in
nosideeffect)
@@ -5863,16 +6213,22 @@ else
# mode. It turns out that the SunPro C++ compiler does not properly
# handle `-M -o', and we need to detect this.
if depmode=$depmode \
- source=conftest.c object=conftest.o \
- depfile=conftest.Po tmpdepfile=conftest.TPo \
- $SHELL ./depcomp $depcc -c -o conftest.o conftest.c \
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err &&
- grep conftest.h conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings
- # (even with -Werror). So we grep stderr for any message
- # that says an option was ignored.
- if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CXX_dependencies_compiler_type=$depmode
break
fi
@@ -5994,6 +6350,125 @@ else
RANLIB="$ac_cv_prog_RANLIB"
fi
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$AWK" && break
+done
+
+# Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+ ./ | .// | /cC/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+done
+
+
+fi
+ if test "${ac_cv_path_install+set}" = set; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. We don't cache a
+ # path for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the path is relative.
+ INSTALL=$ac_install_sh
+ fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
# Extract the first word of "bison", so it can be a program name with args.
set dummy bison; ac_word=$2
@@ -6076,8 +6551,8 @@ echo "${ECHO_T}no" >&6
fi
-
# Check for a GNU m4 that supports --prefix-builtins
+
for ac_prog in gm4 gnum4 m4
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -6123,6 +6598,7 @@ fi
done
test -n "$M4" || M4="m4"
+
if test x"$M4" != x; then
echo "$as_me:$LINENO: checking for GNU m4" >&5
echo $ECHO_N "checking for GNU m4... $ECHO_C" >&6
@@ -6141,6 +6617,7 @@ echo "$as_me: error: GNU M4 1.4 is required" >&2;}
{ (exit 1); exit 1; }; } ;
fi
+
cat >>confdefs.h <<_ACEOF
#define M4 "$M4"
_ACEOF
@@ -6186,6 +6663,7 @@ else
echo "${ECHO_T}no" >&6
fi
+# if INDENT is set to 'indent' then we didn't find indent
if test "$INDENT" != indent ; then
echo "$as_me:$LINENO: checking if $INDENT is GNU indent" >&5
echo $ECHO_N "checking if $INDENT is GNU indent... $ECHO_C" >&6
@@ -6203,71 +6681,7 @@ else
echo "$as_me: WARNING: no indent program found: make indent target will not function" >&2;}
fi
-
-echo "$as_me:$LINENO: checking for log in -lm" >&5
-echo $ECHO_N "checking for log in -lm... $ECHO_C" >&6
-if test "${ac_cv_lib_m_log+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char log ();
-int
-main ()
-{
-log ();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_lib_m_log=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_cv_lib_m_log=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_m_log" >&5
-echo "${ECHO_T}$ac_cv_lib_m_log" >&6
-if test $ac_cv_lib_m_log = yes; then
- cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
- LIBS="-lm $LIBS"
-
-fi
-
-
+# checks for libraries
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -6297,7 +6711,6 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6308,7 +6721,7 @@ cat >>conftest.$ac_ext <<_ACEOF
#else
# include <assert.h>
#endif
- Syntax error
+ Syntax error
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -6320,6 +6733,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6340,7 +6754,6 @@ rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6358,6 +6771,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6404,7 +6818,6 @@ do
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6415,7 +6828,7 @@ cat >>conftest.$ac_ext <<_ACEOF
#else
# include <assert.h>
#endif
- Syntax error
+ Syntax error
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -6427,6 +6840,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6447,7 +6861,6 @@ rm -f conftest.err conftest.$ac_ext
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6465,6 +6878,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6519,13 +6933,368 @@ echo "${ECHO_T}$ac_cv_prog_egrep" >&6
EGREP=$ac_cv_prog_egrep
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+echo "$as_me:$LINENO: checking for working alloca.h" >&5
+echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6
+if test "${ac_cv_working_alloca_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_working_alloca_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_working_alloca_h=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
+echo "${ECHO_T}$ac_cv_working_alloca_h" >&6
+if test $ac_cv_working_alloca_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA_H 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for alloca" >&5
+echo $ECHO_N "checking for alloca... $ECHO_C" >&6
+if test "${ac_cv_func_alloca_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# 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
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_alloca_works=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_alloca_works=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
+echo "${ECHO_T}$ac_cv_func_alloca_works" >&6
+
+if test $ac_cv_func_alloca_works = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_ALLOCA 1
+_ACEOF
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=alloca.$ac_objext
+
+cat >>confdefs.h <<\_ACEOF
+#define C_ALLOCA 1
+_ACEOF
+
+
+echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6
+if test "${ac_cv_os_cray+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
+echo "${ECHO_T}$ac_cv_os_cray" >&6
+if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6
+if test "${ac_cv_c_stack_direction+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_stack_direction=0
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+int
+find_stack_direction ()
+{
+ static char *addr = 0;
+ auto char dummy;
+ if (addr == 0)
+ {
+ addr = &dummy;
+ return find_stack_direction ();
+ }
+ else
+ return (&dummy > addr) ? 1 : -1;
+}
+
+int
+main ()
+{
+ exit (find_stack_direction () < 0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_stack_direction=1
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
+echo "${ECHO_T}$ac_cv_c_stack_direction" >&6
+
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
+
+
+fi
+
echo "$as_me:$LINENO: checking for ANSI C header files" >&5
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
if test "${ac_cv_header_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6546,11 +7315,20 @@ main ()
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6563,12 +7341,11 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_header_stdc=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6590,7 +7367,6 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6615,7 +7391,6 @@ if test $ac_cv_header_stdc = yes; then
:
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6627,9 +7402,9 @@ cat >>conftest.$ac_ext <<_ACEOF
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
#else
# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
#endif
@@ -6640,7 +7415,7 @@ main ()
int i;
for (i = 0; i < 256; i++)
if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
+ || toupper (i) != TOUPPER (i))
exit(2);
exit (0);
}
@@ -6665,7 +7440,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
ac_cv_header_stdc=no
fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
fi
@@ -6679,6 +7454,76 @@ _ACEOF
fi
+echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
+if test "${ac_cv_header_sys_wait_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+
+int
+main ()
+{
+ int s;
+ wait (&s);
+ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_sys_wait_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_sys_wait_h=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
+if test $ac_cv_header_sys_wait_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYS_WAIT_H 1
+_ACEOF
+
+fi
+
# On IRIX 5.3, sys/types and inttypes.h are conflicting.
@@ -6690,7 +7535,7 @@ fi
for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
+ inttypes.h stdint.h unistd.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
echo "$as_me:$LINENO: checking for $ac_header" >&5
@@ -6699,7 +7544,6 @@ if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6711,11 +7555,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6728,7 +7581,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
eval "$as_ac_Header=no"
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -6746,7 +7599,14 @@ done
-for ac_header in unistd.h stdbool.h netinet/in.h limits.h
+
+
+
+
+
+
+
+for ac_header in inttypes.h libintl.h limits.h locale.h malloc.h netinet/in.h stddef.h stdlib.h string.h strings.h unistd.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -6762,7 +7622,6 @@ else
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6773,11 +7632,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6790,7 +7658,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
@@ -6798,7 +7666,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6816,6 +7683,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6835,33 +7703,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ---------------------------------------------- ##
+## Report this to flex-help@lists.sourceforge.net ##
+## ---------------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -6872,7 +7739,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -6888,8 +7755,163 @@ fi
done
+echo "$as_me:$LINENO: checking for log10 in -lm" >&5
+echo $ECHO_N "checking for log10 in -lm... $ECHO_C" >&6
+if test "${ac_cv_lib_m_log10+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char log10 ();
+int
+main ()
+{
+log10 ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_m_log10=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_m_log10=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_m_log10" >&5
+echo "${ECHO_T}$ac_cv_lib_m_log10" >&6
+if test $ac_cv_lib_m_log10 = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+ LIBS="-lm $LIBS"
+
+fi
+
+
+# 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.
+
+echo "$as_me:$LINENO: checking for pthread_mutex_lock in -lpthread" >&5
+echo $ECHO_N "checking for pthread_mutex_lock in -lpthread... $ECHO_C" >&6
+if test "${ac_cv_lib_pthread_pthread_mutex_lock+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char pthread_mutex_lock ();
+int
+main ()
+{
+pthread_mutex_lock ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_pthread_pthread_mutex_lock=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_pthread_pthread_mutex_lock=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_mutex_lock" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_pthread_mutex_lock" >&6
+if test $ac_cv_lib_pthread_pthread_mutex_lock = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPTHREAD 1
+_ACEOF
+
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPTHREAD 0
+_ACEOF
+
+
+fi
-for ac_header in sys/wait.h sys/params.h
+
+for ac_header in pthread.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -6905,7 +7927,6 @@ else
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6916,11 +7937,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -6933,7 +7963,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
@@ -6941,7 +7971,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -6959,6 +7988,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -6978,33 +8008,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ---------------------------------------------- ##
+## Report this to flex-help@lists.sourceforge.net ##
+## ---------------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -7015,7 +8044,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -7031,7 +8060,406 @@ fi
done
-for ac_header in cunistd
+# Checks for typedefs, structures, and compiler characteristics.
+
+echo "$as_me:$LINENO: checking for stdbool.h that conforms to C99" >&5
+echo $ECHO_N "checking for stdbool.h that conforms to C99... $ECHO_C" >&6
+if test "${ac_cv_header_stdbool_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include <stdbool.h>
+#ifndef bool
+# error bool is not defined
+#endif
+#ifndef false
+# error false is not defined
+#endif
+#if false
+# error false is not 0
+#endif
+#ifndef true
+# error true is not defined
+#endif
+#if true != 1
+# error true is not 1
+#endif
+#ifndef __bool_true_false_are_defined
+# error __bool_true_false_are_defined is not defined
+#endif
+
+ struct s { _Bool s: 1; _Bool t; } s;
+
+ char a[true == 1 ? 1 : -1];
+ char b[false == 0 ? 1 : -1];
+ char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+ char d[(bool) -0.5 == true ? 1 : -1];
+ bool e = &s;
+ char f[(_Bool) -0.0 == false ? 1 : -1];
+ char g[true];
+ char h[sizeof (_Bool)];
+ char i[sizeof s.t];
+
+int
+main ()
+{
+ return !a + !b + !c + !d + !e + !f + !g + !h + !i;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_header_stdbool_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdbool_h=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdbool_h" >&5
+echo "${ECHO_T}$ac_cv_header_stdbool_h" >&6
+echo "$as_me:$LINENO: checking for _Bool" >&5
+echo $ECHO_N "checking for _Bool... $ECHO_C" >&6
+if test "${ac_cv_type__Bool+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((_Bool *) 0)
+ return 0;
+if (sizeof (_Bool))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type__Bool=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type__Bool=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type__Bool" >&5
+echo "${ECHO_T}$ac_cv_type__Bool" >&6
+if test $ac_cv_type__Bool = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+if test $ac_cv_header_stdbool_h = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STDBOOL_H 1
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
+if test "${ac_cv_c_const+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+int
+main ()
+{
+/* FIXME: Include the comments suggested by Paul. */
+#ifndef __cplusplus
+ /* Ultrix mips cc rejects this. */
+ typedef int charset[2];
+ const charset x;
+ /* SunOS 4.1.1 cc rejects this. */
+ char const *const *ccp;
+ char **p;
+ /* NEC SVR4.0.2 mips cc rejects this. */
+ struct point {int x, y;};
+ static struct point const zero = {0,0};
+ /* AIX XL C 1.02.0.0 rejects this.
+ It does not let you subtract one const X* pointer from another in
+ an arm of an if-expression whose if-part is not a constant
+ expression */
+ const char *g = "string";
+ ccp = &g + (g ? g-g : 0);
+ /* HPUX 7.0 cc rejects these. */
+ ++ccp;
+ p = (char**) ccp;
+ ccp = (char const *const *) p;
+ { /* SCO 3.2v4 cc rejects this. */
+ char *t;
+ char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+ *t++ = 0;
+ }
+ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
+ int x[] = {25, 17};
+ const int *foo = &x[0];
+ ++foo;
+ }
+ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+ typedef const int *iptr;
+ iptr p = 0;
+ ++p;
+ }
+ { /* AIX XL C 1.02.0.0 rejects this saying
+ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+ struct s { int j; const int *ap[3]; };
+ struct s *b; b->j = 5;
+ }
+ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+ const int foo = 10;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_const=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_c_const=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+echo "${ECHO_T}$ac_cv_c_const" >&6
+if test $ac_cv_c_const = no; then
+
+cat >>confdefs.h <<\_ACEOF
+#define const
+_ACEOF
+
+fi
+
+echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+ return 0;
+if (sizeof (size_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_size_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_size_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+if test $ac_cv_type_size_t = yes; then
+ :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned
+_ACEOF
+
+fi
+
+
+# Checks for library functions.
+
+echo "$as_me:$LINENO: checking for pid_t" >&5
+echo $ECHO_N "checking for pid_t... $ECHO_C" >&6
+if test "${ac_cv_type_pid_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+if ((pid_t *) 0)
+ return 0;
+if (sizeof (pid_t))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_type_pid_t=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_pid_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+echo "${ECHO_T}$ac_cv_type_pid_t" >&6
+if test $ac_cv_type_pid_t = yes; then
+ :
+else
+
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
+
+fi
+
+
+
+for ac_header in unistd.h vfork.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -7047,7 +8475,6 @@ else
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7058,11 +8485,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7075,7 +8511,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
@@ -7083,7 +8519,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7101,6 +8536,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -7120,33 +8556,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ---------------------------------------------- ##
+## Report this to flex-help@lists.sourceforge.net ##
+## ---------------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -7157,7 +8592,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -7174,7 +8609,345 @@ done
-for ac_header in locale.h libintl.h
+for ac_func in fork vfork
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+if test "x$ac_cv_func_fork" = xyes; then
+ echo "$as_me:$LINENO: checking for working fork" >&5
+echo $ECHO_N "checking for working fork... $ECHO_C" >&6
+if test "${ac_cv_func_fork_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_fork_works=cross
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* By Ruediger Kuhlmann. */
+ if (fork() < 0)
+ exit (1);
+ exit (0);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_fork_works=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_fork_works=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_fork_works" >&5
+echo "${ECHO_T}$ac_cv_func_fork_works" >&6
+
+else
+ ac_cv_func_fork_works=$ac_cv_func_fork
+fi
+if test "x$ac_cv_func_fork_works" = xcross; then
+ case $host in
+ *-*-amigaos* | *-*-msdosdjgpp*)
+ # Override, as these systems have only a dummy fork() stub
+ ac_cv_func_fork_works=no
+ ;;
+ *)
+ ac_cv_func_fork_works=yes
+ ;;
+ esac
+ { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
+echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
+fi
+ac_cv_func_vfork_works=$ac_cv_func_vfork
+if test "x$ac_cv_func_vfork" = xyes; then
+ echo "$as_me:$LINENO: checking for working vfork" >&5
+echo $ECHO_N "checking for working vfork... $ECHO_C" >&6
+if test "${ac_cv_func_vfork_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_vfork_works=cross
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Thanks to Paul Eggert for this test. */
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#if HAVE_VFORK_H
+# include <vfork.h>
+#endif
+/* On some sparc systems, changes by the child to local and incoming
+ argument registers are propagated back to the parent. The compiler
+ is told about this with #include <vfork.h>, but some compilers
+ (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
+ static variable whose address is put into a register that is
+ clobbered by the vfork. */
+static void
+#ifdef __cplusplus
+sparc_address_test (int arg)
+# else
+sparc_address_test (arg) int arg;
+#endif
+{
+ static pid_t child;
+ if (!child) {
+ child = vfork ();
+ if (child < 0) {
+ perror ("vfork");
+ _exit(2);
+ }
+ if (!child) {
+ arg = getpid();
+ write(-1, "", 0);
+ _exit (arg);
+ }
+ }
+}
+
+int
+main ()
+{
+ pid_t parent = getpid ();
+ pid_t child;
+
+ sparc_address_test (0);
+
+ child = vfork ();
+
+ if (child == 0) {
+ /* Here is another test for sparc vfork register problems. This
+ test uses lots of local variables, at least as many local
+ variables as main has allocated so far including compiler
+ temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
+ 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
+ reuse the register of parent for one of the local variables,
+ since it will think that parent can't possibly be used any more
+ in this routine. Assigning to the local variable will thus
+ munge parent in the parent process. */
+ pid_t
+ p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
+ p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
+ /* Convince the compiler that p..p7 are live; otherwise, it might
+ use the same hardware register for all 8 local variables. */
+ if (p != p1 || p != p2 || p != p3 || p != p4
+ || p != p5 || p != p6 || p != p7)
+ _exit(1);
+
+ /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
+ from child file descriptors. If the child closes a descriptor
+ before it execs or exits, this munges the parent's descriptor
+ as well. Test for this by closing stdout in the child. */
+ _exit(close(fileno(stdout)) != 0);
+ } else {
+ int status;
+ struct stat st;
+
+ while (wait(&status) != child)
+ ;
+ exit(
+ /* Was there some problem with vforking? */
+ child < 0
+
+ /* Did the child fail? (This shouldn't happen.) */
+ || status
+
+ /* Did the vfork/compiler bug occur? */
+ || parent != getpid()
+
+ /* Did the file descriptor bug occur? */
+ || fstat(fileno(stdout), &st) != 0
+ );
+ }
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_vfork_works=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_vfork_works=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_vfork_works" >&5
+echo "${ECHO_T}$ac_cv_func_vfork_works" >&6
+
+fi;
+if test "x$ac_cv_func_fork_works" = xcross; then
+ ac_cv_func_vfork_works=$ac_cv_func_vfork
+ { echo "$as_me:$LINENO: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
+echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+fi
+
+if test "x$ac_cv_func_vfork_works" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WORKING_VFORK 1
+_ACEOF
+
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define vfork fork
+_ACEOF
+
+fi
+if test "x$ac_cv_func_fork_works" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_WORKING_FORK 1
+_ACEOF
+
+fi
+
+
+for ac_header in stdlib.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -7190,7 +8963,6 @@ else
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7201,11 +8973,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7218,7 +8999,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
@@ -7226,7 +9007,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7244,6 +9024,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -7263,33 +9044,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ---------------------------------------------- ##
+## Report this to flex-help@lists.sourceforge.net ##
+## ---------------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -7300,7 +9080,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -7315,8 +9095,89 @@ fi
done
+echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
+echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6
+if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#if STDC_HEADERS || HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
-for ac_header in regex.h
+int
+main ()
+{
+exit (malloc (0) ? 0 : 1);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
+echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6
+if test $ac_cv_func_malloc_0_nonnull = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MALLOC 1
+_ACEOF
+
+else
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_MALLOC 0
+_ACEOF
+
+ case $LIBOBJS in
+ "malloc.$ac_objext" | \
+ *" malloc.$ac_objext" | \
+ "malloc.$ac_objext "* | \
+ *" malloc.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;;
+esac
+
+
+cat >>confdefs.h <<\_ACEOF
+#define malloc rpl_malloc
+_ACEOF
+
+fi
+
+
+
+
+for ac_header in stdlib.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -7332,7 +9193,6 @@ else
echo "$as_me:$LINENO: checking $ac_header usability" >&5
echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7343,11 +9203,20 @@ $ac_includes_default
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+ (eval $ac_compile) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -7360,7 +9229,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
ac_header_compiler=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
echo "${ECHO_T}$ac_header_compiler" >&6
@@ -7368,7 +9237,6 @@ echo "${ECHO_T}$ac_header_compiler" >&6
echo "$as_me:$LINENO: checking $ac_header presence" >&5
echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -7386,6 +9254,7 @@ if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
else
ac_cpp_err=
fi
@@ -7405,33 +9274,32 @@ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
echo "${ECHO_T}$ac_header_preproc" >&6
# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc in
- yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
{ echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- (
- cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
- ) |
- sed "s/^/$as_me: WARNING: /" >&2
+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
;;
- no:yes )
+ no:yes:* )
{ echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
{ echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
(
cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ---------------------------------------------- ##
+## Report this to flex-help@lists.sourceforge.net ##
+## ---------------------------------------------- ##
_ASBOX
) |
sed "s/^/$as_me: WARNING: /" >&2
@@ -7442,7 +9310,7 @@ echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- eval "$as_ac_Header=$ac_header_preproc"
+ eval "$as_ac_Header=\$ac_header_preproc"
fi
echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -7457,132 +9325,197 @@ fi
done
-
-
-echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-if test "${ac_cv_type_size_t+set}" = set; then
+echo "$as_me:$LINENO: checking for GNU libc compatible realloc" >&5
+echo $ECHO_N "checking for GNU libc compatible realloc... $ECHO_C" >&6
+if test "${ac_cv_func_realloc_0_nonnull+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
+ if test "$cross_compiling" = yes; then
+ ac_cv_func_realloc_0_nonnull=no
+else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+#if STDC_HEADERS || HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *realloc ();
+#endif
+
int
main ()
{
-if ((size_t *) 0)
- return 0;
-if (sizeof (size_t))
- return 0;
+exit (realloc (0, 0) ? 0 : 1);
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_type_size_t=yes
+ ac_cv_func_realloc_0_nonnull=yes
else
- echo "$as_me: failed program was:" >&5
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_type_size_t=no
+( exit $ac_status )
+ac_cv_func_realloc_0_nonnull=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-echo "${ECHO_T}$ac_cv_type_size_t" >&6
-if test $ac_cv_type_size_t = yes; then
- :
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_realloc_0_nonnull" >&5
+echo "${ECHO_T}$ac_cv_func_realloc_0_nonnull" >&6
+if test $ac_cv_func_realloc_0_nonnull = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_REALLOC 1
+_ACEOF
+
else
+ cat >>confdefs.h <<\_ACEOF
+#define HAVE_REALLOC 0
+_ACEOF
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned
+ case $LIBOBJS in
+ "realloc.$ac_objext" | \
+ *" realloc.$ac_objext" | \
+ "realloc.$ac_objext "* | \
+ *" realloc.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;;
+esac
+
+
+cat >>confdefs.h <<\_ACEOF
+#define realloc rpl_realloc
_ACEOF
fi
-echo "$as_me:$LINENO: checking whether __func__ is declared" >&5
-echo $ECHO_N "checking whether __func__ is declared... $ECHO_C" >&6
-if test "${ac_cv_have_decl___func__+set}" = set; then
+
+
+
+
+
+
+
+
+for ac_func in dup2 isascii memset pow regcomp setlocale strchr strtol
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
-int
-main ()
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
{
-#ifndef __func__
- char *p = (char *) __func__;
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
#endif
+int
+main ()
+{
+return f != $ac_func;
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
+ { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- ac_cv_have_decl___func__=yes
+ eval "$as_ac_var=yes"
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-ac_cv_have_decl___func__=no
+eval "$as_ac_var=no"
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:$LINENO: result: $ac_cv_have_decl___func__" >&5
-echo "${ECHO_T}$ac_cv_have_decl___func__" >&6
-if test $ac_cv_have_decl___func__ = yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL___FUNC__ 1
-_ACEOF
-
-
-else
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL___FUNC__ 0
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-
fi
+done
-
- ac_config_files="$ac_config_files flex.spec Makefile doc/Makefile examples/Makefile examples/fastwc/Makefile examples/manual/Makefile m4/Makefile po/Makefile.in tools/Makefile tests/Makefile tests/TEMPLATE/Makefile tests/test-array-nr/Makefile tests/test-array-r/Makefile tests/test-basic-nr/Makefile tests/test-basic-r/Makefile tests/test-bison-yylloc/Makefile tests/test-bison-yylval/Makefile tests/test-c-cpp-nr/Makefile tests/test-c-cpp-r/Makefile tests/test-header-nr/Makefile tests/test-header-r/Makefile tests/test-include-by-buffer/Makefile tests/test-include-by-push/Makefile tests/test-include-by-reentrant/Makefile tests/test-multiple-scanners-nr/Makefile tests/test-multiple-scanners-r/Makefile tests/test-noansi-nr/Makefile tests/test-noansi-r/Makefile tests/test-prefix-nr/Makefile tests/test-prefix-r/Makefile tests/test-pthread/Makefile tests/test-string-nr/Makefile tests/test-string-r/Makefile tests/test-yyextra/Makefile tests/test-lineno-nr/Makefile tests/test-lineno-r/Makefile tests/test-linedir-r/Makefile tests/test-debug-r/Makefile tests/test-debug-nr/Makefile tests/test-mem-nr/Makefile tests/test-mem-r/Makefile tests/test-posix/Makefile tests/test-posixly-correct/Makefile tests/test-table-opts/Makefile tests/test-c++-basic/Makefile tests/test-bison-nr/Makefile tests/test-reject/Makefile tests/test-c++-multiple-scanners/Makefile tests/test-top/Makefile tests/test-rescan-nr/Makefile tests/test-rescan-r/Makefile"
+ ac_config_files="$ac_config_files Makefile doc/Makefile examples/Makefile examples/fastwc/Makefile examples/manual/Makefile m4/Makefile po/Makefile.in tools/Makefile tests/Makefile tests/TEMPLATE/Makefile tests/test-array-nr/Makefile tests/test-array-r/Makefile tests/test-basic-nr/Makefile tests/test-basic-r/Makefile tests/test-bison-yylloc/Makefile tests/test-bison-yylval/Makefile tests/test-c-cpp-nr/Makefile tests/test-c-cpp-r/Makefile tests/test-header-nr/Makefile tests/test-header-r/Makefile tests/test-include-by-buffer/Makefile tests/test-include-by-push/Makefile tests/test-include-by-reentrant/Makefile tests/test-multiple-scanners-nr/Makefile tests/test-multiple-scanners-r/Makefile tests/test-noansi-nr/Makefile tests/test-noansi-r/Makefile tests/test-prefix-nr/Makefile tests/test-prefix-r/Makefile tests/test-pthread/Makefile tests/test-string-nr/Makefile tests/test-string-r/Makefile tests/test-yyextra/Makefile tests/test-alloc-extra/Makefile tests/test-lineno-nr/Makefile tests/test-lineno-r/Makefile tests/test-linedir-r/Makefile tests/test-debug-r/Makefile tests/test-debug-nr/Makefile tests/test-mem-nr/Makefile tests/test-mem-r/Makefile tests/test-posix/Makefile tests/test-posixly-correct/Makefile tests/test-table-opts/Makefile tests/test-c++-basic/Makefile tests/test-bison-nr/Makefile tests/test-reject/Makefile tests/test-c++-multiple-scanners/Makefile tests/test-top/Makefile tests/test-rescan-nr/Makefile tests/test-rescan-r/Makefile tests/test-quotes/Makefile tests/test-ccl/Makefile tests/test-extended/Makefile tests/test-c++-yywrap/Makefile tests/test-concatenated-options/Makefile"
cat >confcache <<\_ACEOF
@@ -7613,13 +9546,13 @@ _ACEOF
# `set' does not quote correctly, so add quotes (double-quote
# substitution turns \\\\ into \\, and sed turns \\ into \).
sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;;
*)
# `set' quotes correctly as required by POSIX, so do not add quotes.
sed -n \
- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
;;
esac;
} |
@@ -7649,13 +9582,13 @@ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
# trailing colons and then remove the whole line if VPATH becomes empty
# (actually we leave an empty line to preserve line numbers).
if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=/{
+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
s/:*\$(srcdir):*/:/;
s/:*\${srcdir}:*/:/;
s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ ]*\):*/\1/;
+s/^\([^=]*=[ ]*\):*/\1/;
s/:*$//;
-s/^[^=]*=[ ]*$//;
+s/^[^=]*=[ ]*$//;
}'
fi
@@ -7666,7 +9599,7 @@ ac_ltlibobjs=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_i=`echo "$ac_i" |
- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
# 2. Add them.
ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
@@ -7738,9 +9671,10 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
set -o posix
fi
+DUALCASE=1; export DUALCASE # for MKS sh
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
@@ -7759,7 +9693,7 @@ for as_var in \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
LC_TELEPHONE LC_TIME
do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
eval $as_var=C; export $as_var
else
$as_unset $as_var
@@ -7938,16 +9872,17 @@ rm -f conf$$ conf$$.exe conf$$.file
if mkdir -p . 2>/dev/null; then
as_mkdir_p=:
else
+ test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_executable_p="test -f"
# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
# IFS
@@ -7973,8 +9908,8 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by flex $as_me 2.5.33, which was
-generated by GNU Autoconf 2.57. Invocation command line was
+This file was extended by the fast lexical analyser generator $as_me 2.5.34, which was
+generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -8018,9 +9953,9 @@ Usage: $0 [OPTIONS] [FILE]...
-d, --debug don't remove temporary files
--recheck update $as_me by reconfiguring in the same conditions
--file=FILE[:TEMPLATE]
- instantiate the configuration file FILE
+ instantiate the configuration file FILE
--header=FILE[:TEMPLATE]
- instantiate the configuration header FILE
+ instantiate the configuration header FILE
Configuration files:
$config_files
@@ -8036,12 +9971,11 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-flex config.status 2.5.33
-configured by $0, generated by GNU Autoconf 2.57,
+the fast lexical analyser generator config.status 2.5.34
+configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
srcdir=$srcdir
@@ -8154,7 +10088,6 @@ for ac_config_target in $ac_config_targets
do
case "$ac_config_target" in
# Handling of arguments.
- "flex.spec" ) CONFIG_FILES="$CONFIG_FILES flex.spec" ;;
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
"examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
@@ -8188,6 +10121,7 @@ do
"tests/test-string-nr/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-string-nr/Makefile" ;;
"tests/test-string-r/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-string-r/Makefile" ;;
"tests/test-yyextra/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-yyextra/Makefile" ;;
+ "tests/test-alloc-extra/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-alloc-extra/Makefile" ;;
"tests/test-lineno-nr/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-lineno-nr/Makefile" ;;
"tests/test-lineno-r/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-lineno-r/Makefile" ;;
"tests/test-linedir-r/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-linedir-r/Makefile" ;;
@@ -8205,6 +10139,11 @@ do
"tests/test-top/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-top/Makefile" ;;
"tests/test-rescan-nr/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-rescan-nr/Makefile" ;;
"tests/test-rescan-r/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-rescan-r/Makefile" ;;
+ "tests/test-quotes/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-quotes/Makefile" ;;
+ "tests/test-ccl/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-ccl/Makefile" ;;
+ "tests/test-extended/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-extended/Makefile" ;;
+ "tests/test-c++-yywrap/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-c++-yywrap/Makefile" ;;
+ "tests/test-concatenated-options/Makefile" ) CONFIG_FILES="$CONFIG_FILES tests/test-concatenated-options/Makefile" ;;
"default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h:conf.in" ;;
@@ -8304,14 +10243,17 @@ s,@AUTOCONF@,$AUTOCONF,;t t
s,@AUTOMAKE@,$AUTOMAKE,;t t
s,@AUTOHEADER@,$AUTOHEADER,;t t
s,@MAKEINFO@,$MAKEINFO,;t t
-s,@AMTAR@,$AMTAR,;t t
s,@install_sh@,$install_sh,;t t
s,@STRIP@,$STRIP,;t t
s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s,@mkdir_p@,$mkdir_p,;t t
s,@AWK@,$AWK,;t t
s,@SET_MAKE@,$SET_MAKE,;t t
s,@am__leading_dot@,$am__leading_dot,;t t
+s,@AMTAR@,$AMTAR,;t t
+s,@am__tar@,$am__tar,;t t
+s,@am__untar@,$am__untar,;t t
s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
s,@USE_NLS@,$USE_NLS,;t t
s,@MSGFMT@,$MSGFMT,;t t
@@ -8365,6 +10307,7 @@ s,@BISON@,$BISON,;t t
s,@HELP2MAN@,$HELP2MAN,;t t
s,@M4@,$M4,;t t
s,@INDENT@,$INDENT,;t t
+s,@ALLOCA@,$ALLOCA,;t t
s,@CPP@,$CPP,;t t
s,@EGREP@,$EGREP,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
@@ -8398,9 +10341,9 @@ _ACEOF
(echo ':t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
else
- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
fi
ac_sed_frag=`expr $ac_sed_frag + 1`
ac_beg=$ac_end
@@ -8418,21 +10361,21 @@ for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case $ac_file in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
* ) ac_file_in=$ac_file.in ;;
esac
# Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -8448,10 +10391,10 @@ echo X"$ac_file" |
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -8489,12 +10432,45 @@ case $srcdir in
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
case $INSTALL in
@@ -8502,11 +10478,6 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
*) ac_INSTALL=$ac_top_builddir$INSTALL ;;
esac
- if test x"$ac_file" != x-; then
- { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
- rm -f "$ac_file"
- fi
# Let's still pretend it is `configure' which instantiates (i.e., don't
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
@@ -8516,7 +10487,7 @@ echo "$as_me: creating $ac_file" >&6;}
configure_input="$ac_file. "
fi
configure_input=$configure_input"Generated from `echo $ac_file_in |
- sed 's,.*/,,'` by configure."
+ sed 's,.*/,,'` by configure."
# First look for the input files in the build tree, otherwise in the
# src tree.
@@ -8525,26 +10496,32 @@ echo "$as_me: creating $ac_file" >&6;}
case $f in
-) echo $tmp/stdin ;;
[\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ echo "$f";;
*) # Relative
- if test -f "$f"; then
- # Build tree
- echo $f
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo $srcdir/$f
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- fi;;
+ fi;;
esac
done` || { (exit 1); exit 1; }
+
+ if test x"$ac_file" != x-; then
+ { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+ rm -f "$ac_file"
+ fi
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
sed "$ac_vpsub
@@ -8584,12 +10561,12 @@ cat >>$CONFIG_STATUS <<\_ACEOF
# NAME is the cpp macro being defined and VALUE is the value it is being given.
#
# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='[ ].*$,\1#\2'
+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
+ac_dB='[ ].*$,\1#\2'
ac_dC=' '
ac_dD=',;t'
# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
ac_uB='$,\1#\2define\3'
ac_uC=' '
ac_uD=',;t'
@@ -8598,11 +10575,11 @@ for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
# Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
case $ac_file in
- | *:- | *:-:* ) # input from stdin
- cat >$tmp/stdin
- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ cat >$tmp/stdin
+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
*:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
* ) ac_file_in=$ac_file.in ;;
esac
@@ -8616,28 +10593,29 @@ echo "$as_me: creating $ac_file" >&6;}
case $f in
-) echo $tmp/stdin ;;
[\\/$]*)
- # Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ # Absolute (can't be DOS-style, as IFS=:)
+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- echo $f;;
+ # Do quote $f, to prevent DOS paths from being IFS'd.
+ echo "$f";;
*) # Relative
- if test -f "$f"; then
- # Build tree
- echo $f
- elif test -f "$srcdir/$f"; then
- # Source tree
- echo $srcdir/$f
- else
- # /dev/null tree
- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+ if test -f "$f"; then
+ # Build tree
+ echo "$f"
+ elif test -f "$srcdir/$f"; then
+ # Source tree
+ echo "$srcdir/$f"
+ else
+ # /dev/null tree
+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
- fi;;
+ fi;;
esac
done` || { (exit 1); exit 1; }
# Remove the trailing spaces.
- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
_ACEOF
@@ -8660,9 +10638,9 @@ s/[\\&,]/\\&/g
s,[\\$`],\\&,g
t clear
: clear
-s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
t end
-s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
: end
_ACEOF
# If some macros were called several times there might be several times
@@ -8676,13 +10654,13 @@ rm -f confdef2sed.sed
# example, in the case of _POSIX_SOURCE, which is predefined and required
# on some systems where configure will not decide to define it.
cat >>conftest.undefs <<\_ACEOF
-s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
_ACEOF
# Break up conftest.defines because some shells have a limit on the size
# of here documents, and old seds have small limits too (100 cmds).
echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
echo ' :' >>$CONFIG_STATUS
rm -f conftest.tail
@@ -8691,7 +10669,7 @@ do
# Write a limited-size here document to $tmp/defines.sed.
echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
# Speed up: don't consider the non `#define' lines.
- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
# Work around the forget-to-reset-the-flag bug.
echo 't clr' >>$CONFIG_STATUS
echo ': clr' >>$CONFIG_STATUS
@@ -8718,7 +10696,7 @@ do
# Write a limited-size here document to $tmp/undefs.sed.
echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
# Speed up: don't consider the non `#undef'
- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
# Work around the forget-to-reset-the-flag bug.
echo 't clr' >>$CONFIG_STATUS
echo ': clr' >>$CONFIG_STATUS
@@ -8752,10 +10730,10 @@ echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`(dirname "$ac_file") 2>/dev/null ||
$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
- X"$ac_file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -8771,10 +10749,10 @@ echo X"$ac_file" |
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -8806,10 +10784,10 @@ for _am_header in $config_headers :; do
done
echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
- X$ac_file : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X$ac_file : 'X\(//\)[^/]' \| \
+ X$ac_file : 'X\(//\)$' \| \
+ X$ac_file : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X$ac_file |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -8828,16 +10806,41 @@ for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_dest" : 'X\(//\)[^/]' \| \
- X"$ac_dest" : 'X\(//\)$' \| \
- X"$ac_dest" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$ac_dest" : 'X\(//\)[^/]' \| \
+ X"$ac_dest" : 'X\(//\)$' \| \
+ X"$ac_dest" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$ac_dest" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
/^X\(\/\/\)$/{ s//\1/; q; }
/^X\(\/\).*/{ s//\1/; q; }
s/.*/./; q'`
+ { if $as_mkdir_p; then
+ mkdir -p "$ac_dir"
+ else
+ as_dir="$ac_dir"
+ as_dirs=
+ while test ! -d "$as_dir"; do
+ as_dirs="$as_dir $as_dirs"
+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+ /^X\(\/\/\)$/{ s//\1/; q; }
+ /^X\(\/\).*/{ s//\1/; q; }
+ s/.*/./; q'`
+ done
+ test ! -n "$as_dirs" || mkdir $as_dirs
+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+ { (exit 1); exit 1; }; }; }
+
ac_builddir=.
if test "$ac_dir" != .; then
@@ -8863,12 +10866,45 @@ case $srcdir in
ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
ac_top_srcdir=$ac_top_builddir$srcdir ;;
esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+ case "$ac_dir" in
+ .) ac_abs_builddir=`pwd`;;
+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+ case ${ac_top_builddir}. in
+ .) ac_abs_top_builddir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+ case $ac_srcdir in
+ .) ac_abs_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+ esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+ case $ac_top_srcdir in
+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+ esac;;
+esac
{ echo "$as_me:$LINENO: executing $ac_dest commands" >&5
@@ -8987,10 +11023,10 @@ echo "$as_me: executing $ac_dest commands" >&6;}
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
dirpart=`(dirname "$mf") 2>/dev/null ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$mf" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -9000,36 +11036,30 @@ echo X"$mf" |
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
fdir=`(dirname "$file") 2>/dev/null ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -9045,10 +11075,10 @@ echo X"$file" |
as_dirs="$as_dir $as_dirs"
as_dir=`(dirname "$as_dir") 2>/dev/null ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| \
+ . : '\(.\)' 2>/dev/null ||
echo X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
/^X\(\/\/\)[^/].*/{ s//\1/; q; }
diff --git a/configure.in b/configure.in
index 354b6c9..cfcaf74 100644
--- a/configure.in
+++ b/configure.in
@@ -1,35 +1,37 @@
-dnl Process this file with autoconf to produce a configure script.
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
-dnl This file is part of flex.
+# This file is part of flex.
-dnl Redistribution and use in source and binary forms, with or without
-dnl modification, are permitted provided that the following conditions
-dnl are met:
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
-dnl 1. Redistributions of source code must retain the above copyright
-dnl notice, this list of conditions and the following disclaimer.
-dnl 2. Redistributions in binary form must reproduce the above copyright
-dnl notice, this list of conditions and the following disclaimer in the
-dnl documentation and/or other materials provided with the distribution.
+# 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.
-dnl Neither the name of the University nor the names of its contributors
-dnl may be used to endorse or promote products derived from this software
-dnl without specific prior written permission.
+# 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.
-dnl THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-dnl IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-dnl PURPOSE.
+# 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.
-dnl autoconf requirements and initialization
+# autoconf requirements and initialization
-AC_PREREQ(2.54)
-AC_INIT(flex,2.5.33,flex-help@lists.sourceforge.net)
-AC_CONFIG_SRCDIR(scan.l)
-AM_INIT_AUTOMAKE
-AC_CONFIG_HEADER(config.h:conf.in)
+AC_PREREQ(2.59)
+AC_INIT([the fast lexical analyser generator], [2.5.34],
+[flex-help@lists.sourceforge.net], [flex])
+AC_CONFIG_SRCDIR([scan.l])
+AM_INIT_AUTOMAKE([gnits dist-bzip2])
+AC_CONFIG_HEADER([config.h:conf.in])
-dnl checks for programs
+# checks for programs
AM_GNU_GETTEXT([external])
AM_GNU_GETTEXT_VERSION(0.12)
@@ -40,13 +42,16 @@ AC_PROG_CC
AC_PROG_CXX
AC_PROG_LN_S
AC_PROG_RANLIB
+AC_PROG_AWK
+AC_PROG_INSTALL
AC_PATH_PROG(BISON, bison,bison)
AC_PATH_PROG(HELP2MAN, help2man, help2man)
-
# Check for a GNU m4 that supports --prefix-builtins
+
AC_PATH_PROGS(M4, gm4 gnum4 m4, m4)
+
if test x"$M4" != x; then
AC_MSG_CHECKING([for GNU m4])
case `$M4 --help < /dev/null 2>&1` in
@@ -57,10 +62,11 @@ if test x"$M4" != x; then
else
AC_MSG_ERROR([GNU M4 1.4 is required]) ;
fi
+
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.])
AC_PATH_PROG(INDENT, indent, indent)
-dnl if INDENT is set to 'indent' then we didn't find indent
+# if INDENT is set to 'indent' then we didn't find indent
if test "$INDENT" != indent ; then
AC_MSG_CHECKING(if $INDENT is GNU indent)
if $INDENT --version 2>/dev/null | head -n 1|grep "GNU indent" > /dev/null ; then
@@ -73,28 +79,38 @@ else
AC_MSG_WARN(no indent program found: make indent target will not function)
fi
-dnl checks for libraries
-AC_CHECK_LIB(m, log)
-
-dnl checks for header files
+# checks for libraries
+AC_FUNC_ALLOCA
AC_HEADER_STDC
-AC_CHECK_HEADERS(unistd.h stdbool.h netinet/in.h limits.h)
-AC_CHECK_HEADERS( sys/wait.h sys/params.h)
-AC_CHECK_HEADERS(cunistd)
-AC_CHECK_HEADERS(locale.h libintl.h)
-AC_CHECK_HEADERS(regex.h)
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS([inttypes.h libintl.h limits.h locale.h malloc.h netinet/in.h stddef.h stdlib.h string.h strings.h unistd.h])
+AC_CHECK_LIB(m, log10)
+
+# 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.
+
+AC_CHECK_LIB(pthread, pthread_mutex_lock,
+AC_DEFINE([HAVE_LIBPTHREAD], 1, [pthread library] ),
+AC_DEFINE([HAVE_LIBPTHREAD], 0, [pthread library] )
+)
+AC_CHECK_HEADERS([pthread.h])
-dnl checks for types
+# Checks for typedefs, structures, and compiler characteristics.
+AC_HEADER_STDBOOL
+AC_C_CONST
AC_TYPE_SIZE_T
-dnl checks for functions
+# Checks for library functions.
-AC_CHECK_DECLS(__func__)
+AC_FUNC_FORK
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([dup2 isascii memset pow regcomp setlocale strchr strtol])
AC_CONFIG_FILES(
-flex.spec
Makefile
doc/Makefile
examples/Makefile
@@ -128,6 +144,7 @@ tests/test-pthread/Makefile
tests/test-string-nr/Makefile
tests/test-string-r/Makefile
tests/test-yyextra/Makefile
+tests/test-alloc-extra/Makefile
tests/test-lineno-nr/Makefile
tests/test-lineno-r/Makefile
tests/test-linedir-r/Makefile
@@ -145,6 +162,11 @@ tests/test-c++-multiple-scanners/Makefile
tests/test-top/Makefile
tests/test-rescan-nr/Makefile
tests/test-rescan-r/Makefile
+tests/test-quotes/Makefile
+tests/test-ccl/Makefile
+tests/test-extended/Makefile
+tests/test-c++-yywrap/Makefile
+tests/test-concatenated-options/Makefile
dnl --new-test-here-- This line is processed by tests/create-test.
)
diff --git a/depcomp b/depcomp
index 51606f8..04701da 100755
--- a/depcomp
+++ b/depcomp
@@ -1,7 +1,9 @@
#! /bin/sh
-
# depcomp - compile a program generating dependencies as side-effects
-# Copyright 1999, 2000 Free Software Foundation, Inc.
+
+scriptversion=2005-07-09.11
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -25,22 +27,45 @@
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
-# `libtool' can also be set to `yes' or `no'.
-
-if test -z "$depfile"; then
- base=`echo "$object" | sed -e 's,^.*/,,' -e 's,\.\([^.]*\)$,.P\1,'`
- dir=`echo "$object" | sed 's,/.*$,/,'`
- if test "$dir" = "$object"; then
- dir=
- fi
- # FIXME: should be _deps on DOS.
- depfile="$dir.deps/$base"
-fi
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
@@ -172,19 +197,25 @@ sgi)
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
- # in a .u file. This file always lives in the current directory.
- # Also, the AIX compiler puts `$object:' at the start of each line;
- # $object doesn't have directory information.
- stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'`
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
tmpdepfile="$stripped.u"
- outname="$stripped.o"
if test "$libtool" = yes; then
"$@" -Wc,-M
else
"$@" -M
fi
-
stat=$?
+
+ if test -f "$tmpdepfile"; then :
+ else
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
+ tmpdepfile="$stripped.u"
+ fi
+
if test $stat -eq 0; then :
else
rm -f "$tmpdepfile"
@@ -192,6 +223,7 @@ aix)
fi
if test -f "$tmpdepfile"; then
+ outname="$stripped.o"
# Each line is of the form `foo.o: dependent.h'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
@@ -207,11 +239,9 @@ aix)
;;
icc)
- # Must come before tru64.
-
- # Intel's C compiler understands `-MD -MF file'. However
+ # Intel's C compiler understands `-MD -MF file'. However on
# icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # will fill foo.d with something like
+ # ICC 7.0 will fill foo.d with something like
# foo.o: sub/foo.c
# foo.o: sub/foo.h
# which is wrong. We want:
@@ -219,6 +249,12 @@ icc)
# sub/foo.o: sub/foo.h
# sub/foo.c:
# sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
"$@" -MD -MF "$tmpdepfile"
stat=$?
@@ -228,11 +264,15 @@ icc)
exit $stat
fi
rm -f "$depfile"
- # Each line is of the form `foo.o: dependent.h'.
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
- sed -e "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
- sed -e "s,^[^:]*: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -247,31 +287,47 @@ tru64)
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
if test "$libtool" = yes; then
- tmpdepfile1="$dir.libs/$base.lo.d"
- tmpdepfile2="$dir.libs/$base.d"
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mecanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
- tmpdepfile1="$dir$base.o.d"
- tmpdepfile2="$dir$base.d"
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -eq 0; then :
else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
exit $stat
fi
- if test -f "$tmpdepfile1"; then
- tmpdepfile="$tmpdepfile1"
- else
- tmpdepfile="$tmpdepfile2"
- fi
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a space and a tab in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
else
echo "#dummy" > "$depfile"
fi
@@ -284,7 +340,7 @@ tru64)
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o.
+ # always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
@@ -380,7 +436,7 @@ makedepend)
cpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout.
+ # always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
@@ -411,7 +467,8 @@ cpp)
done
"$@" -E |
- sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
@@ -422,7 +479,7 @@ cpp)
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
- # always write the proprocessed file to stdout, regardless of -o,
+ # always write the preprocessed file to stdout, regardless of -o,
# because we must use -o when running libtool.
"$@" || exit $?
IFS=" "
@@ -462,3 +519,12 @@ none)
esac
exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/dfa.c b/dfa.c
index f3064c9..8613d75 100644
--- a/dfa.c
+++ b/dfa.c
@@ -697,21 +697,6 @@ void ntod ()
}
}
- if (caseins && !useecs) {
- register int j;
-
- for (i = 'A', j = 'a'; i <= 'Z'; ++i, ++j) {
- if (state[i] == 0 && state[j] != 0)
- /* We're adding a transition. */
- ++totaltrans;
-
- else if (state[i] != 0 && state[j] == 0)
- /* We're taking away a transition. */
- --totaltrans;
-
- state[i] = state[j];
- }
- }
numsnpairs += totaltrans;
@@ -1018,10 +1003,6 @@ int symfollowset (ds, dsize, transsym, nset)
}
}
- else if (sym >= 'A' && sym <= 'Z' && caseins)
- flexfatal (_
- ("consistency check failed in symfollowset"));
-
else if (sym == SYM_EPSILON) { /* do nothing */
}
diff --git a/doc/Makefile.am b/doc/Makefile.am
index f1a6084..bfed30d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,19 +1,16 @@
help2man = @HELP2MAN@
info_TEXINFOS = flex.texi
-man_MANS = flex.1
-
-MAINTAINERCLEANFILES = \
- flex.1
+dist_man_MANS = flex.1
+EXTRA_DIST = flex.pdf
CLEANFILES = \
flex.hks \
flex.ops
-EXTRA_DIST = \
- $(man_MANS)
-
-$(man_MANS): $(top_srcdir)/main.c
- for i in $(man_MANS) ; do \
- $(help2man) --name='fast lexical analyzer generator' --section=`echo $$i|rev|cut -f 1 -d .|rev` ../flex > $$i ; \
+$(dist_man_MANS): $(top_srcdir)/main.c
+ for i in $(dist_man_MANS) ; do \
+ $(help2man) --name='$(PACKAGE_NAME)' \
+ --section=`echo $$i | sed -e 's/.*\.\([^.]*\)$$/\1/'` \
+ ../flex$(EXEEXT) > $$i || rm -f $$i ; \
done
diff --git a/doc/Makefile.in b/doc/Makefile.in
index f38e413..b5a7f5b 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,6 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -21,7 +20,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -35,8 +33,44 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \
+ $(srcdir)/version.texi mdate-sh texinfo.tex
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+INFO_DEPS = $(srcdir)/flex.info
+am__TEXINFO_TEX_DIR = $(srcdir)
+DVIS = flex.dvi
+PDFS = flex.pdf
+PSS = flex.ps
+HTMLS = flex.html
+TEXINFOS = flex.texi
+TEXI2DVI = texi2dvi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"
+man1dir = $(mandir)/man1
+NROFF = nroff
+MANS = $(dist_man_MANS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -114,6 +148,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -134,6 +170,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -142,101 +179,128 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
help2man = @HELP2MAN@
-
info_TEXINFOS = flex.texi
-man_MANS = flex.1
-
-MAINTAINERCLEANFILES = \
- flex.1
-
-
+dist_man_MANS = flex.1
+EXTRA_DIST = flex.pdf
CLEANFILES = \
flex.hks \
flex.ops
-
-EXTRA_DIST = \
- $(man_MANS)
-
-subdir = doc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-am__TEXINFO_TEX_DIR = $(srcdir)
-INFO_DEPS = flex.info
-DVIS = flex.dvi
-PDFS = flex.pdf
-PSS = flex.ps
-TEXINFOS = flex.texi
-
-NROFF = nroff
-MANS = $(man_MANS)
-DIST_COMMON = Makefile.am Makefile.in mdate-sh stamp-vti texinfo.tex \
- version.texi
all: all-am
.SUFFIXES:
-.SUFFIXES: .dvi .info .pdf .ps .texi
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu doc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
.texi.info:
- @rm -f $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
- -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+ restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ am__cwd=`pwd` && cd $(srcdir) && \
+ rm -rf $$backupdir && mkdir $$backupdir && \
+ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
+ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ cd $(srcdir); \
+ else \
+ rc=$$?; \
+ cd $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
.texi.dvi:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2DVI) `test -f '$<' || echo '$(srcdir)/'`$<
+ $(TEXI2DVI) $<
.texi.pdf:
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
- $(TEXI2PDF) `test -f '$<' || echo '$(srcdir)/'`$<
-flex.info: flex.texi version.texi
-flex.dvi: flex.texi version.texi
-flex.pdf: flex.texi version.texi
-version.texi: stamp-vti
-stamp-vti: flex.texi $(top_srcdir)/configure
+ $(TEXI2PDF) $<
+
+.texi.html:
+ rm -rf $(@:.html=.htp)
+ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@; \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ else \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ exit 1; \
+ fi
+$(srcdir)/flex.info: flex.texi $(srcdir)/version.texi
+flex.dvi: flex.texi $(srcdir)/version.texi
+flex.pdf: flex.texi $(srcdir)/version.texi
+flex.html: flex.texi $(srcdir)/version.texi
+$(srcdir)/version.texi: $(srcdir)/stamp-vti
+$(srcdir)/stamp-vti: flex.texi $(top_srcdir)/configure
@(dir=.; test -f ./flex.texi || dir=$(srcdir); \
set `$(SHELL) $(srcdir)/mdate-sh $$dir/flex.texi`; \
echo "@set UPDATED $$1 $$2 $$3"; \
echo "@set UPDATED-MONTH $$2 $$3"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)") > vti.tmp
- @cmp -s vti.tmp version.texi \
- || (echo "Updating version.texi"; \
- cp vti.tmp version.texi)
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
-@rm -f vti.tmp
- @cp version.texi $@
+ @cp $(srcdir)/version.texi $@
mostlyclean-vti:
-rm -f vti.tmp
maintainer-clean-vti:
- -rm -f stamp-vti version.texi
-TEXI2DVI = texi2dvi
-
-TEXI2PDF = $(TEXI2DVI) --pdf --batch
-DVIPS = dvips
+ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
.dvi.ps:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
$(DVIPS) -o $@ $<
uninstall-info-am:
- $(PRE_UNINSTALL)
+ @$(PRE_UNINSTALL)
@if (install-info --version && \
- install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
+ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile"; \
- install-info --info-dir=$(DESTDIR)$(infodir) --remove $(DESTDIR)$(infodir)/$$relfile; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
done; \
else :; fi
@$(NORMAL_UNINSTALL)
@@ -244,15 +308,19 @@ uninstall-info-am:
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
- (if cd $(DESTDIR)$(infodir); then \
- echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
+ (if cd "$(DESTDIR)$(infodir)"; then \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
else :; fi); \
done
dist-info: $(INFO_DEPS)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
list='$(INFO_DEPS)'; \
for base in $$list; do \
+ case $$base in \
+ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
if test -f $$base; then d=.; else d=$(srcdir); fi; \
for file in $$d/$$base*; do \
relfile=`expr "$$file" : "$$d/\(.*\)"`; \
@@ -262,10 +330,10 @@ dist-info: $(INFO_DEPS)
done
mostlyclean-aminfo:
- -rm -f flex.aux flex.cp flex.cps flex.fn flex.fns flex.hk flex.hks flex.ky \
+ -rm -rf flex.aux flex.cp flex.cps flex.fn flex.fns flex.hk flex.hks flex.ky \
flex.kys flex.log flex.op flex.ops flex.pg flex.pgs flex.tmp \
flex.toc flex.tp flex.tps flex.vr flex.vrs flex.dvi flex.pdf \
- flex.ps
+ flex.ps flex.html
maintainer-clean-aminfo:
@list='$(INFO_DEPS)'; for i in $$list; do \
@@ -273,11 +341,9 @@ maintainer-clean-aminfo:
echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
done
-
-man1dir = $(mandir)/man1
install-man1: $(man1_MANS) $(man_MANS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(man1dir)
+ test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \
@@ -296,8 +362,8 @@ install-man1: $(man1_MANS) $(man_MANS)
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
- $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
done
uninstall-man1:
@$(NORMAL_UNINSTALL)
@@ -317,8 +383,8 @@ uninstall-man1:
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
- echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
- rm -f $(DESTDIR)$(man1dir)/$$inst; \
+ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
done
tags: TAGS
TAGS:
@@ -326,10 +392,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -343,7 +405,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -364,9 +426,10 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile $(INFO_DEPS) $(MANS)
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(infodir) $(DESTDIR)$(man1dir)
+ for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -378,7 +441,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -387,24 +450,27 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
- -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am: $(DVIS)
+html: html-am
+
+html-am: $(HTMLS)
+
info: info-am
info-am: $(INFO_DEPS)
@@ -417,28 +483,32 @@ install-info: install-info-am
install-info-am: $(INFO_DEPS)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(infodir)
- @list='$(INFO_DEPS)'; \
+ test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; \
for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
if test -f $$file; then d=.; else d=$(srcdir); fi; \
file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
$$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
if test -f $$ifile; then \
relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
- echo " $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile"; \
- $(INSTALL_DATA) $$ifile $(DESTDIR)$(infodir)/$$relfile; \
+ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
+ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
else : ; fi; \
done; \
done
@$(POST_INSTALL)
@if (install-info --version && \
- install-info --version | grep -i -v debian) >/dev/null 2>&1; then \
+ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
list='$(INFO_DEPS)'; \
for file in $$list; do \
relfile=`echo "$$file" | sed 's|^.*/||'`; \
- echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile";\
- install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$relfile || :;\
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
done; \
else : ; fi
install-man: install-man1
@@ -446,7 +516,7 @@ install-man: install-man1
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-aminfo \
maintainer-clean-generic maintainer-clean-vti
@@ -467,20 +537,23 @@ uninstall-am: uninstall-info-am uninstall-man
uninstall-man: uninstall-man1
.PHONY: all all-am check check-am clean clean-generic dist-info \
- distclean distclean-generic distdir dvi dvi-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am install-man \
- install-man1 install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-aminfo \
- maintainer-clean-generic maintainer-clean-vti mostlyclean \
- mostlyclean-aminfo mostlyclean-generic mostlyclean-vti pdf \
- pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \
- uninstall-man uninstall-man1
-
-
-$(man_MANS): $(top_srcdir)/main.c
- for i in $(man_MANS) ; do \
- $(help2man) --name='fast lexical analyzer generator' --section=`echo $$i|rev|cut -f 1 -d .|rev` ../flex > $$i ; \
+ distclean distclean-generic distdir dvi dvi-am html html-am \
+ info info-am install install-am install-data install-data-am \
+ install-exec install-exec-am install-info install-info-am \
+ install-man install-man1 install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-aminfo maintainer-clean-generic \
+ maintainer-clean-vti mostlyclean mostlyclean-aminfo \
+ mostlyclean-generic mostlyclean-vti pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-info-am uninstall-man \
+ uninstall-man1
+
+
+$(dist_man_MANS): $(top_srcdir)/main.c
+ for i in $(dist_man_MANS) ; do \
+ $(help2man) --name='$(PACKAGE_NAME)' \
+ --section=`echo $$i | sed -e 's/.*\.\([^.]*\)$$/\1/'` \
+ ../flex$(EXEEXT) > $$i || rm -f $$i ; \
done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/doc/flex.1 b/doc/flex.1
index 5218e17..8c3db79 100644
--- a/doc/flex.1
+++ b/doc/flex.1
@@ -1,12 +1,12 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.29.
-.TH FLEX "1" "February 2006" "flex 2.5.33" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
+.TH FLEX "1" "December 2007" "flex 2.5.34" "User Commands"
.SH NAME
-flex \- fast lexical analyzer generator
+flex \- the fast lexical analyser generator
.SH SYNOPSIS
.B flex
[\fIOPTIONS\fR] [\fIFILE\fR]...
.SH DESCRIPTION
-Generates programs that perform pattern-matching on text.
+Generates programs that perform pattern\-matching on text.
.SS "Table Compression:"
.TP
\fB\-Ca\fR, \fB\-\-align\fR
@@ -22,7 +22,7 @@ do not compress tables; use \fB\-f\fR representation
do not compress tables; use \fB\-F\fR representation
.TP
\fB\-Cm\fR, \fB\-\-meta\-ecs\fR
-construct meta-equivalence classes
+construct meta\-equivalence classes
.TP
\fB\-Cr\fR, \fB\-\-read\fR
use read() instead of stdio for scanner input
@@ -41,7 +41,7 @@ default compression (same as \fB\-\-ecs\fR \fB\-\-meta\-ecs\fR)
enable debug mode in scanner
.TP
\fB\-b\fR, \fB\-\-backup\fR
-write backing-up information to lex.backup
+write backing\-up information to lex.backup
.TP
\fB\-p\fR, \fB\-\-perf\-report\fR
write performance report to stderr
@@ -78,10 +78,10 @@ create a C header file in addition to the scanner
.SS "Scanner behavior:"
.TP
\fB\-7\fR, \fB\-\-7bit\fR
-generate 7-bit scanner
+generate 7\-bit scanner
.TP
\fB\-8\fR, \fB\-\-8bit\fR
-generate 8-bit scanner
+generate 8\-bit scanner
.TP
\fB\-B\fR, \fB\-\-batch\fR
generate batch scanner (opposite of \fB\-I\fR)
@@ -102,7 +102,7 @@ generate interactive scanner (opposite of \fB\-B\fR)
track line count in yylineno
.SS "Generated code:"
.TP
--+, \fB\-\-c\fR++
+\-+, \fB\-\-c\fR++
generate C++ scanner class
.TP
\fB\-Dmacro\fR[=\fIdefn\fR]
@@ -126,7 +126,7 @@ include yylloc support.
\fB\-\-stdinit\fR
initialize yyin/yyout to stdin/stdout
.HP
-\fB\-\-noansi\-definitions\fR old-style function definitions
+\fB\-\-noansi\-definitions\fR old\-style function definitions
.TP
\fB\-\-noansi\-prototypes\fR
empty parameter list in prototypes
@@ -139,12 +139,12 @@ do not generate a particular FUNCTION
.SS "Miscellaneous:"
.TP
\fB\-c\fR
-do-nothing POSIX option
+do\-nothing POSIX option
.TP
\fB\-n\fR
-do-nothing POSIX option
+do\-nothing POSIX option
.HP
--?
+\-?
.TP
\fB\-h\fR, \fB\-\-help\fR
produce this help message
diff --git a/doc/flex.info b/doc/flex.info
index d32eadc..fddd792 100644
--- a/doc/flex.info
+++ b/doc/flex.info
@@ -1,14 +1,16 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
+This is flex.info, produced by makeinfo version 4.8 from flex.texi.
INFO-DIR-SECTION Programming
START-INFO-DIR-ENTRY
* flex: (flex). Fast lexical analyzer generator (lex replacement).
END-INFO-DIR-ENTRY
-
The flex manual is placed under the same licensing conditions as the
rest of flex:
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex
+Project.
+
Copyright (C) 1990, 1997 The Regents of the University of California.
All rights reserved.
@@ -30,6 +32,7 @@ met:
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.
@@ -37,241 +40,243 @@ 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.
+

Indirect:
-flex.info-1: 1542
-flex.info-2: 44385
-flex.info-3: 94974
-flex.info-4: 144097
-flex.info-5: 193935
-flex.info-6: 243586
-flex.info-7: 281964
+flex.info-1: 1620
+flex.info-2: 287921

Tag Table:
(Indirect)
-Node: Top1542
-Node: Copyright7508
-Node: Reporting Bugs8942
-Node: Introduction9238
-Node: Simple Examples10065
-Node: Format13454
-Node: Definitions Section13867
-Ref: Definitions Section-Footnote-116125
-Node: Rules Section16193
-Node: User Code Section17346
-Node: Comments in the Input17779
-Node: Patterns19148
-Ref: case and character ranges24406
-Node: Matching27081
-Node: Actions30366
-Node: Generated Scanner39368
-Node: Start Conditions44385
-Node: Multiple Input Buffers55097
-Ref: Scanning Strings61715
-Node: EOF63331
-Node: Misc Macros64926
-Node: User Values67778
-Node: Yacc70106
-Node: Scanner Options71009
-Node: Options for Specifing Filenames73769
-Ref: option-header73982
-Ref: option-outfile74694
-Ref: option-stdout75019
-Node: Options Affecting Scanner Behavior76001
-Ref: option-case-insensitive76231
-Ref: option-lex-compat76664
-Ref: option-batch77196
-Ref: option-interactive77720
-Ref: option-7bit79074
-Ref: option-8bit80378
-Ref: option-default80790
-Ref: option-always-interactive80854
-Ref: option-posix81458
-Ref: option-stack82605
-Ref: option-stdinit82713
-Ref: option-yylineno83191
-Ref: option-yywrap83634
-Node: Code-Level And API Options83902
-Ref: option-ansi-definitions84119
-Ref: option-ansi-prototypes84371
-Ref: option-bison-bridge84618
-Ref: option-bison-locations84957
-Ref: option-noline85217
-Ref: option-reentrant85731
-Ref: option-c++86342
-Ref: option-array86468
-Ref: option-pointer86566
-Ref: option-prefix86694
-Ref: option-main88223
-Ref: option-nounistd88407
-Ref: option-yyclass88915
-Node: Options for Scanner Speed and Size89395
-Ref: option-align89934
-Ref: option-ecs90435
-Ref: option-meta-ecs91471
-Ref: option-read91958
-Ref: option-full93841
-Ref: option-fast94036
-Node: Debugging Options94974
-Ref: option-backup95151
-Ref: option-debug95696
-Ref: option-perf-report96419
-Ref: option-nodefault97045
-Ref: option-trace97363
-Ref: option-nowarn97654
-Ref: option-verbose97722
-Ref: option-warn98151
-Node: Miscellaneous Options98370
-Node: Performance98844
-Node: Cxx109181
-Node: Reentrant116780
-Node: Reentrant Uses117454
-Node: Reentrant Overview119055
-Node: Reentrant Example119847
-Node: Reentrant Detail120604
-Node: Specify Reentrant121030
-Node: Extra Reentrant Argument121666
-Node: Global Replacement122907
-Node: Init and Destroy Functions124125
-Node: Accessor Methods126278
-Node: Extra Data127611
-Node: About yyscan_t129782
-Node: Reentrant Functions130167
-Ref: bison-functions131649
-Node: Lex and Posix132390
-Node: Memory Management139771
-Ref: memory-management139911
-Node: The Default Memory Management140142
-Ref: The Default Memory Management-Footnote-1143944
-Node: Overriding The Default Memory Management144097
-Ref: Overriding The Default Memory Management-Footnote-1146535
-Node: A Note About yytext And Memory146699
-Node: Serialized Tables147925
-Ref: serialization148063
-Node: Creating Serialized Tables148831
-Node: Loading and Unloading Serialized Tables150434
-Node: Tables File Format152193
-Node: Diagnostics159202
-Node: Limitations162610
-Node: Bibliography164555
-Node: FAQ165225
-Node: When was flex born?169457
-Node: How do I expand \ escape sequences in C-style quoted strings?169829
-Node: Why do flex scanners call fileno if it is not ANSI compatible?171112
-Node: Does flex support recursive pattern definitions?171902
-Node: How do I skip huge chunks of input (tens of megabytes) while using flex?172752
-Node: Flex is not matching my patterns in the same order that I defined them.173222
-Node: My actions are executing out of order or sometimes not at all.174971
-Node: How can I have multiple input sources feed into the same scanner at the same time?175759
-Node: Can I build nested parsers that work with the same input file?177750
-Node: How can I match text only at the end of a file?178759
-Node: How can I make REJECT cascade across start condition boundaries?179567
-Node: Why cant I use fast or full tables with interactive mode?180586
-Node: How much faster is -F or -f than -C?181848
-Node: If I have a simple grammar cant I just parse it with flex?182163
-Node: Why doesnt yyrestart() set the start state back to INITIAL?182646
-Node: How can I match C-style comments?183275
-Node: The period isnt working the way I expected.184090
-Node: Can I get the flex manual in another format?185339
-Node: Does there exist a "faster" NDFA->DFA algorithm?185830
-Node: How does flex compile the DFA so quickly?186342
-Node: How can I use more than 8192 rules?187312
-Node: How do I abandon a file in the middle of a scan and switch to a new file?188726
-Node: How do I execute code only during initialization (only before the first scan)?189282
-Node: How do I execute code at termination?190044
-Node: Where else can I find help?190373
-Node: Can I include comments in the "rules" section of the file?190749
-Node: I get an error about undefined yywrap().191131
-Node: How can I change the matching pattern at run time?191611
-Node: How can I expand macros in the input?191976
-Node: How can I build a two-pass scanner?193017
-Node: How do I match any string not matched in the preceding rules?193935
-Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf.194848
-Node: Is there a way to make flex treat NULL like a regular character?195646
-Node: Whenever flex can not match the input it says "flex scanner jammed".196170
-Node: Why doesnt flex have non-greedy operators like perl does?196821
-Node: Memory leak - 16386 bytes allocated by malloc.198176
-Ref: faq-memory-leak198473
-Node: How do I track the byte offset for lseek()?199444
-Node: How do I use my own I/O classes in a C++ scanner?200955
-Node: How do I skip as many chars as possible?201801
-Node: deleteme00202881
-Node: Are certain equivalent patterns faster than others?203327
-Node: Is backing up a big deal?206816
-Node: Can I fake multi-byte character support?208788
-Node: deleteme01210265
-Node: Can you discuss some flex internals?211390
-Node: unput() messes up yy_at_bol213680
-Node: The | operator is not doing what I want214818
-Node: Why can't flex understand this variable trailing context pattern?216410
-Node: The ^ operator isn't working217675
-Node: Trailing context is getting confused with trailing optional patterns218946
-Node: Is flex GNU or not?220215
-Node: ERASEME53221929
-Node: I need to scan if-then-else blocks and while loops222725
-Node: ERASEME55223945
-Node: ERASEME56225059
-Node: ERASEME57226453
-Node: Is there a repository for flex scanners?227487
-Node: How can I conditionally compile or preprocess my flex input file?227805
-Node: Where can I find grammars for lex and yacc?228281
-Node: I get an end-of-buffer message for each character scanned.228631
-Node: unnamed-faq-62229229
-Node: unnamed-faq-63230278
-Node: unnamed-faq-64231591
-Node: unnamed-faq-65232593
-Node: unnamed-faq-66233395
-Node: unnamed-faq-67234526
-Node: unnamed-faq-68235529
-Node: unnamed-faq-69236687
-Node: unnamed-faq-70237421
-Node: unnamed-faq-71238198
-Node: unnamed-faq-72239428
-Node: unnamed-faq-73240497
-Node: unnamed-faq-74241442
-Node: unnamed-faq-75242413
-Node: unnamed-faq-76243586
-Node: unnamed-faq-77244308
-Node: unnamed-faq-78245217
-Node: unnamed-faq-79246231
-Node: unnamed-faq-80247967
-Node: unnamed-faq-81249311
-Node: unnamed-faq-82252152
-Node: unnamed-faq-83253135
-Node: unnamed-faq-84254941
-Node: unnamed-faq-85256060
-Node: unnamed-faq-86257108
-Node: unnamed-faq-87258082
-Node: unnamed-faq-88258744
-Node: unnamed-faq-90259601
-Node: unnamed-faq-91260900
-Node: unnamed-faq-92263384
-Node: unnamed-faq-93263899
-Node: unnamed-faq-94264842
-Node: unnamed-faq-95266285
-Node: unnamed-faq-96267819
-Node: unnamed-faq-97268604
-Node: unnamed-faq-98269287
-Node: unnamed-faq-99269978
-Node: unnamed-faq-100270938
-Node: unnamed-faq-101271664
-Node: What is the difference between YYLEX_PARAM and YY_DECL?272498
-Node: Why do I get "conflicting types for yylex" error?273023
-Node: How do I access the values set in a Flex action from within a Bison action?273556
-Node: Appendices273990
-Node: Makefiles and Flex274157
-Ref: Makefiles and Flex-Footnote-1277374
-Ref: Makefiles and Flex-Footnote-2277491
-Node: Bison Bridge277542
-Ref: Bison Bridge-Footnote-1280216
-Node: M4 Dependency280408
-Ref: M4 Dependency-Footnote-1281591
-Node: Indices281726
-Node: Concept Index281964
-Node: Index of Functions and Macros298838
-Node: Index of Variables302057
-Node: Index of Data Types303284
-Node: Index of Hooks303888
-Node: Index of Scanner Options304390
+Node: Top1620
+Node: Copyright7690
+Node: Reporting Bugs9203
+Node: Introduction9508
+Node: Simple Examples10336
+Node: Format13646
+Node: Definitions Section14060
+Ref: Definitions Section-Footnote-116323
+Node: Rules Section16391
+Node: User Code Section17549
+Node: Comments in the Input17987
+Node: Patterns19355
+Ref: case and character ranges26186
+Node: Matching30201
+Node: Actions33487
+Node: Generated Scanner42466
+Node: Start Conditions47484
+Node: Multiple Input Buffers58043
+Ref: Scanning Strings64581
+Node: EOF66211
+Node: Misc Macros67799
+Node: User Values70653
+Node: Yacc72984
+Node: Scanner Options73880
+Node: Options for Specifying Filenames76638
+Ref: option-header76864
+Ref: option-outfile77576
+Ref: option-stdout77901
+Node: Options Affecting Scanner Behavior78883
+Ref: option-case-insensitive79124
+Ref: option-lex-compat79557
+Ref: option-batch80089
+Ref: option-interactive80613
+Ref: option-7bit81967
+Ref: option-8bit83271
+Ref: option-default83683
+Ref: option-always-interactive83747
+Ref: option-posix84351
+Ref: option-stack85498
+Ref: option-stdinit85606
+Ref: option-yylineno86084
+Ref: option-yywrap86527
+Node: Code-Level And API Options86795
+Ref: option-ansi-definitions87022
+Ref: option-ansi-prototypes87274
+Ref: option-bison-bridge87521
+Ref: option-bison-locations87860
+Ref: option-noline88120
+Ref: option-reentrant88634
+Ref: option-c++89245
+Ref: option-array89371
+Ref: option-pointer89469
+Ref: option-prefix89597
+Ref: option-main91126
+Ref: option-nounistd91310
+Ref: option-yyclass91818
+Node: Options for Scanner Speed and Size92304
+Ref: option-align92853
+Ref: option-ecs93354
+Ref: option-meta-ecs94390
+Ref: option-read94877
+Ref: option-full96760
+Ref: option-fast96955
+Node: Debugging Options97881
+Ref: option-backup98068
+Ref: option-debug98613
+Ref: option-perf-report99336
+Ref: option-nodefault99962
+Ref: option-trace100280
+Ref: option-nowarn100571
+Ref: option-verbose100639
+Ref: option-warn101068
+Node: Miscellaneous Options101287
+Node: Performance101744
+Node: Cxx112008
+Node: Reentrant119531
+Node: Reentrant Uses120208
+Node: Reentrant Overview121771
+Node: Reentrant Example122570
+Node: Reentrant Detail123345
+Node: Specify Reentrant123778
+Node: Extra Reentrant Argument124425
+Node: Global Replacement125677
+Node: Init and Destroy Functions126906
+Node: Accessor Methods129418
+Node: Extra Data130762
+Node: About yyscan_t133029
+Node: Reentrant Functions133425
+Ref: bison-functions134909
+Node: Lex and Posix135650
+Node: Memory Management143034
+Ref: memory-management143180
+Node: The Default Memory Management143408
+Ref: The Default Memory Management-Footnote-1147217
+Node: Overriding The Default Memory Management147370
+Ref: Overriding The Default Memory Management-Footnote-1149769
+Node: A Note About yytext And Memory149933
+Node: Serialized Tables151166
+Ref: serialization151310
+Node: Creating Serialized Tables152075
+Node: Loading and Unloading Serialized Tables153685
+Node: Tables File Format155453
+Node: Diagnostics162468
+Node: Limitations165879
+Node: Bibliography167828
+Node: FAQ168501
+Node: When was flex born?172741
+Node: How do I expand backslash-escape sequences in C-style quoted strings?173118
+Node: Why do flex scanners call fileno if it is not ANSI compatible?174422
+Node: Does flex support recursive pattern definitions?175217
+Node: How do I skip huge chunks of input (tens of megabytes) while using flex?176064
+Node: Flex is not matching my patterns in the same order that I defined them.176531
+Node: My actions are executing out of order or sometimes not at all.178277
+Node: How can I have multiple input sources feed into the same scanner at the same time?179052
+Node: Can I build nested parsers that work with the same input file?181040
+Node: How can I match text only at the end of a file?182046
+Node: How can I make REJECT cascade across start condition boundaries?182851
+Node: Why cant I use fast or full tables with interactive mode?183866
+Node: How much faster is -F or -f than -C?185124
+Node: If I have a simple grammar cant I just parse it with flex?185436
+Node: Why doesn't yyrestart() set the start state back to INITIAL?185917
+Node: How can I match C-style comments?186544
+Node: The period isn't working the way I expected.187358
+Node: Can I get the flex manual in another format?188605
+Node: Does there exist a "faster" NDFA->DFA algorithm?189094
+Node: How does flex compile the DFA so quickly?189604
+Node: How can I use more than 8192 rules?190571
+Node: How do I abandon a file in the middle of a scan and switch to a new file?191983
+Node: How do I execute code only during initialization (only before the first scan)?192536
+Node: How do I execute code at termination?193314
+Node: Where else can I find help?193640
+Node: Can I include comments in the "rules" section of the file?194013
+Node: I get an error about undefined yywrap().194392
+Node: How can I change the matching pattern at run time?194869
+Node: How can I expand macros in the input?195231
+Node: How can I build a two-pass scanner?196264
+Node: How do I match any string not matched in the preceding rules?197180
+Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf.198090
+Node: Is there a way to make flex treat NULL like a regular character?198885
+Node: Whenever flex can not match the input it says "flex scanner jammed".199406
+Node: Why doesn't flex have non-greedy operators like perl does?200050
+Node: Memory leak - 16386 bytes allocated by malloc.201403
+Ref: faq-memory-leak201701
+Node: How do I track the byte offset for lseek()?202669
+Node: How do I use my own I/O classes in a C++ scanner?204180
+Node: How do I skip as many chars as possible?205023
+Node: deleteme00206100
+Node: Are certain equivalent patterns faster than others?206541
+Node: Is backing up a big deal?209960
+Node: Can I fake multi-byte character support?211867
+Node: deleteme01213309
+Node: Can you discuss some flex internals?214419
+Node: unput() messes up yy_at_bol216664
+Node: The | operator is not doing what I want217767
+Node: Why can't flex understand this variable trailing context pattern?219314
+Node: The ^ operator isn't working220564
+Node: Trailing context is getting confused with trailing optional patterns221800
+Node: Is flex GNU or not?223044
+Node: ERASEME53224718
+Node: I need to scan if-then-else blocks and while loops225489
+Node: ERASEME55226689
+Node: ERASEME56227788
+Node: ERASEME57229147
+Node: Is there a repository for flex scanners?230146
+Node: How can I conditionally compile or preprocess my flex input file?230461
+Node: Where can I find grammars for lex and yacc?230934
+Node: I get an end-of-buffer message for each character scanned.231281
+Node: unnamed-faq-62231876
+Node: unnamed-faq-63232895
+Node: unnamed-faq-64234193
+Node: unnamed-faq-65235160
+Node: unnamed-faq-66235947
+Node: unnamed-faq-67237063
+Node: unnamed-faq-68238051
+Node: unnamed-faq-69239194
+Node: unnamed-faq-70239908
+Node: unnamed-faq-71240670
+Node: unnamed-faq-72241880
+Node: unnamed-faq-73242924
+Node: unnamed-faq-74243849
+Node: unnamed-faq-75244795
+Node: unnamed-faq-76245928
+Node: unnamed-faq-77246635
+Node: unnamed-faq-78247529
+Node: unnamed-faq-79248528
+Node: unnamed-faq-80250229
+Node: unnamed-faq-81251548
+Node: unnamed-faq-82254349
+Node: unnamed-faq-83255307
+Node: unnamed-faq-84257088
+Node: unnamed-faq-85258192
+Node: unnamed-faq-86259200
+Node: unnamed-faq-87260139
+Node: unnamed-faq-88260786
+Node: unnamed-faq-90261618
+Node: unnamed-faq-91262882
+Node: unnamed-faq-92265311
+Node: unnamed-faq-93265811
+Node: unnamed-faq-94266739
+Node: unnamed-faq-95268152
+Node: unnamed-faq-96269671
+Node: unnamed-faq-97270431
+Node: unnamed-faq-98271099
+Node: unnamed-faq-99271765
+Node: unnamed-faq-100272695
+Node: unnamed-faq-101273406
+Node: What is the difference between YYLEX_PARAM and YY_DECL?274220
+Node: Why do I get "conflicting types for yylex" error?274742
+Node: How do I access the values set in a Flex action from within a Bison action?275272
+Node: Appendices275703
+Node: Makefiles and Flex275912
+Ref: Makefiles and Flex-Footnote-1279112
+Ref: Makefiles and Flex-Footnote-2279229
+Ref: Makefiles and Flex-Footnote-3279415
+Node: Bison Bridge279466
+Ref: Bison Bridge-Footnote-1282135
+Node: M4 Dependency282327
+Ref: M4 Dependency-Footnote-1283732
+Node: Common Patterns283867
+Node: Numbers284158
+Node: Identifiers285135
+Node: Quoted Constructs285964
+Node: Addresses287017
+Node: Indices287683
+Node: Concept Index287921
+Node: Index of Functions and Macros313204
+Node: Index of Variables318100
+Node: Index of Data Types319766
+Node: Index of Hooks320654
+Node: Index of Scanner Options321222

End Tag Table
diff --git a/doc/flex.info-1 b/doc/flex.info-1
index da0d581..2131353 100644
--- a/doc/flex.info-1
+++ b/doc/flex.info-1
@@ -1,14 +1,16 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
+This is flex.info, produced by makeinfo version 4.8 from flex.texi.
INFO-DIR-SECTION Programming
START-INFO-DIR-ENTRY
* flex: (flex). Fast lexical analyzer generator (lex replacement).
END-INFO-DIR-ENTRY
-
The flex manual is placed under the same licensing conditions as the
rest of flex:
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex
+Project.
+
Copyright (C) 1990, 1997 The Regents of the University of California.
All rights reserved.
@@ -30,6 +32,7 @@ met:
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.
@@ -37,18 +40,21 @@ 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.
+

File: flex.info, Node: Top, Next: Copyright, Prev: (dir), Up: (dir)
flex
****
- This manual describes `flex', a tool for generating programs that
+This manual describes `flex', a tool for generating programs that
perform pattern-matching on text. The manual includes both tutorial and
reference sections.
- This edition of `The flex Manual' documents `flex' version 2.5.33.
-It was last updated on 20 February 2006.
+ This edition of `The flex Manual' documents `flex' version 2.5.34.
+It was last updated on 10 September 2007.
+
+ This manual was written by Vern Paxson, Will Estes and John Millaway.
* Menu:
@@ -92,7 +98,7 @@ Format of the Input File
Scanner Options
-* Options for Specifing Filenames::
+* Options for Specifying Filenames::
* Options Affecting Scanner Behavior::
* Code-Level And API Options::
* Options for Scanner Speed and Size::
@@ -132,7 +138,7 @@ Serialized Tables
FAQ
* When was flex born?::
-* How do I expand \ escape sequences in C-style quoted strings?::
+* How do I expand backslash-escape sequences in C-style quoted strings?::
* Why do flex scanners call fileno if it is not ANSI compatible?::
* Does flex support recursive pattern definitions?::
* How do I skip huge chunks of input (tens of megabytes) while using flex?::
@@ -145,9 +151,9 @@ FAQ
* Why cant I use fast or full tables with interactive mode?::
* How much faster is -F or -f than -C?::
* If I have a simple grammar cant I just parse it with flex?::
-* Why doesnt yyrestart() set the start state back to INITIAL?::
+* Why doesn't yyrestart() set the start state back to INITIAL?::
* How can I match C-style comments?::
-* The period isnt working the way I expected.::
+* The period isn't working the way I expected.::
* Can I get the flex manual in another format?::
* Does there exist a "faster" NDFA->DFA algorithm?::
* How does flex compile the DFA so quickly?::
@@ -165,7 +171,7 @@ FAQ
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
* Is there a way to make flex treat NULL like a regular character?::
* Whenever flex can not match the input it says "flex scanner jammed".::
-* Why doesnt flex have non-greedy operators like perl does?::
+* Why doesn't flex have non-greedy operators like perl does?::
* Memory leak - 16386 bytes allocated by malloc.::
* How do I track the byte offset for lseek()?::
* How do I use my own I/O classes in a C++ scanner?::
@@ -239,6 +245,7 @@ Appendices
* Makefiles and Flex::
* Bison Bridge::
* M4 Dependency::
+* Common Patterns::
Indices
@@ -252,13 +259,15 @@ Indices

File: flex.info, Node: Copyright, Next: Reporting Bugs, Prev: Top, Up: Top
-Copyright
-*********
-
+1 Copyright
+***********
- The flex manual is placed under the same licensing conditions as the
+The flex manual is placed under the same licensing conditions as the
rest of flex:
+ Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex
+Project.
+
Copyright (C) 1990, 1997 The Regents of the University of California.
All rights reserved.
@@ -280,6 +289,7 @@ met:
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.
@@ -287,23 +297,24 @@ 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.
+

File: flex.info, Node: Reporting Bugs, Next: Introduction, Prev: Copyright, Up: Top
-Reporting Bugs
-**************
+2 Reporting Bugs
+****************
- If you have problems with `flex' or think you have found a bug,
-please send mail detailing your problem to
-<flex-help@lists.sourceforge.net>. Patches are always welcome.
+If you find a bug in `flex', please report it using the SourceForge Bug
+Tracking facilities which can be found on flex's SourceForge Page
+(http://sourceforge.net/projects/flex).

File: flex.info, Node: Introduction, Next: Simple Examples, Prev: Reporting Bugs, Up: Top
-Introduction
-************
+3 Introduction
+**************
- `flex' is a tool for generating "scanners". A scanner is a program
+`flex' is a tool for generating "scanners". A scanner is a program
which recognizes lexical patterns in text. The `flex' program reads
the given input files, or its standard input if no file names are
given, for a description of a scanner to generate. The description is
@@ -318,10 +329,10 @@ corresponding C code.

File: flex.info, Node: Simple Examples, Next: Format, Prev: Introduction, Up: Top
-Some Simple Examples
-********************
+4 Some Simple Examples
+**********************
- First some simple examples to get the flavor of how one uses `flex'.
+First some simple examples to get the flavor of how one uses `flex'.
The following `flex' input specifies a scanner which, when it
encounters the string `username' will replace it with the user's login
@@ -342,11 +353,11 @@ rules.
int num_lines = 0, num_chars = 0;
-
+
%%
\n ++num_lines; ++num_chars;
. ++num_chars;
-
+
%%
main()
{
@@ -368,43 +379,43 @@ other than a newline (indicated by the `.' regular expression).
/* scanner for a toy Pascal-like language */
-
+
%{
/* need this for the call to atof() below */
#include math.h>
%}
-
+
DIGIT [0-9]
ID [a-z][a-z0-9]*
-
+
%%
-
+
{DIGIT}+ {
printf( "An integer: %s (%d)\n", yytext,
atoi( yytext ) );
}
-
+
{DIGIT}+"."{DIGIT}* {
printf( "A float: %s (%g)\n", yytext,
atof( yytext ) );
}
-
+
if|then|begin|end|procedure|function {
printf( "A keyword: %s\n", yytext );
}
-
+
{ID} printf( "An identifier: %s\n", yytext );
-
+
"+"|"-"|"*"|"/" printf( "An operator: %s\n", yytext );
-
+
"{"[\^{}}\n]*"}" /* eat up one-line comments */
-
+
[ \t\n]+ /* eat up whitespace */
-
+
. printf( "Unrecognized character: %s\n", yytext );
-
+
%%
-
+
main( argc, argv )
int argc;
char **argv;
@@ -414,7 +425,7 @@ other than a newline (indicated by the `.' regular expression).
yyin = fopen( argv[0], "r" );
else
yyin = stdin;
-
+
yylex();
}
@@ -428,11 +439,11 @@ sections.

File: flex.info, Node: Format, Next: Patterns, Prev: Simple Examples, Up: Top
-Format of the Input File
-************************
+5 Format of the Input File
+**************************
- The `flex' input file consists of three sections, separated by a
-line containing only `%%'.
+The `flex' input file consists of three sections, separated by a line
+containing only `%%'.
definitions
@@ -451,10 +462,10 @@ line containing only `%%'.

File: flex.info, Node: Definitions Section, Next: Rules Section, Prev: Format, Up: Format
-Format of the Definitions Section
-=================================
+5.1 Format of the Definitions Section
+=====================================
- The "definitions section" contains declarations of simple "name"
+The "definitions section" contains declarations of simple "name"
definitions to simplify the scanner specification, and declarations of
"start conditions", which are explained in a later section.
@@ -519,11 +530,11 @@ included before the generated code. The single characters, `{' and

File: flex.info, Node: Rules Section, Next: User Code Section, Prev: Definitions Section, Up: Format
-Format of the Rules Section
-===========================
+5.2 Format of the Rules Section
+===============================
- The "rules" section of the `flex' input contains a series of rules
-of the form:
+The "rules" section of the `flex' input contains a series of rules of
+the form:
pattern action
@@ -548,21 +559,21 @@ and %} symbols must appear unindented on lines by themselves.

File: flex.info, Node: User Code Section, Next: Comments in the Input, Prev: Rules Section, Up: Format
-Format of the User Code Section
-===============================
+5.3 Format of the User Code Section
+===================================
- The user code section is simply copied to `lex.yy.c' verbatim. It
-is used for companion routines which call or are called by the scanner.
+The user code section is simply copied to `lex.yy.c' verbatim. It is
+used for companion routines which call or are called by the scanner.
The presence of this section is optional; if it is missing, the second
`%%' in the input file may be skipped, too.

File: flex.info, Node: Comments in the Input, Prev: User Code Section, Up: Format
-Comments in the Input
-=====================
+5.4 Comments in the Input
+=========================
- Flex supports C-style comments, that is, anything between /* and */
+Flex supports C-style comments, that is, anything between `/*' and `*/'
is considered a comment. Whenever flex encounters a comment, it copies
the entire comment verbatim to the generated source code. Comments may
appear just about anywhere, but with the following exceptions:
@@ -585,10 +596,10 @@ new line, with one or more whitespace characters before the initial
%{
/* code block */
%}
-
+
/* Definitions Section */
%x STATE_X
-
+
%%
/* Rules Section */
ruleA /* after regex */ { /* code block */ } /* after code block */
@@ -606,11 +617,11 @@ new line, with one or more whitespace characters before the initial

File: flex.info, Node: Patterns, Next: Matching, Prev: Format, Up: Top
-Patterns
-********
+6 Patterns
+**********
- The patterns in the input (see *Note Rules Section::) are written
-using an extended set of regular expressions. These are:
+The patterns in the input (see *Note Rules Section::) are written using
+an extended set of regular expressions. These are:
`x'
match the character 'x'
@@ -633,6 +644,9 @@ using an extended set of regular expressions. These are:
`[^A-Z\n]'
any character EXCEPT an uppercase letter or a newline
+`[a-z]{-}[aeiou]'
+ the lowercase consonants
+
`r*'
zero or more r's, where r is any regular expression
@@ -675,6 +689,43 @@ using an extended set of regular expressions. These are:
match an `r'; parentheses are used to override precedence (see
below)
+`(?r-s:pattern)'
+ apply option `r' and omit option `s' while interpreting pattern.
+ Options may be zero or more of the characters `i', `s', or `x'.
+
+ `i' means case-insensitive. `-i' means case-sensitive.
+
+ `s' alters the meaning of the `.' syntax to match any single byte
+ whatsoever. `-s' alters the meaning of `.' to match any byte
+ except `\n'.
+
+ `x' ignores comments and whitespace in patterns. Whitespace is
+ ignored unless it is backslash-escaped, contained within `""'s, or
+ appears inside a character class.
+
+ The following are all valid:
+
+
+ (?:foo) same as (foo)
+ (?i:ab7) same as ([aA][bB]7)
+ (?-i:ab) same as (ab)
+ (?s:.) same as [\x00-\xFF]
+ (?-s:.) same as [^\n]
+ (?ix-s: a . b) same as ([Aa][^\n][bB])
+ (?x:a b) same as ("ab")
+ (?x:a\ b) same as ("a b")
+ (?x:a" "b) same as ("a b")
+ (?x:a[ ]b) same as ("a b")
+ (?x:a
+ /* comment */
+ b
+ c) same as (abc)
+
+`(?# comment )'
+ omit everything within `()'. The first `)' character encountered
+ ends the pattern. It is not possible to for the comment to contain
+ a `)' character. The comment may span lines.
+
`rs'
the regular expression `r' followed by the regular expression `s';
called "concatenation"
@@ -780,7 +831,11 @@ any alphabetic or numeric character. Some systems don't provide
[[:alpha:][0-9]]
[a-zA-Z0-9]
- Some notes on patterns are in order.
+ A word of caution. Character classes are expanded immediately when
+seen in the `flex' input. This means the character classes are
+sensitive to the locale in which `flex' is executed, and the resulting
+scanner will not be sensitive to the runtime locale. This may or may
+not be desirable.
* If your scanner is case-insensitive (the `-i' flag), then
`[:upper:]' and `[:lower:]' are equivalent to `[:alpha:]'.
@@ -813,6 +868,34 @@ any alphabetic or numeric character. Some systems don't provide
can match the entire input unless there's another quote in the
input.
+ Flex allows negation of character class expressions by prepending
+ `^' to the POSIX character class name.
+
+
+ [:^alnum:] [:^alpha:] [:^blank:]
+ [:^cntrl:] [:^digit:] [:^graph:]
+ [:^lower:] [:^print:] [:^punct:]
+ [:^space:] [:^upper:] [:^xdigit:]
+
+ Flex will issue a warning if the expressions `[:^upper:]' and
+ `[:^lower:]' appear in a case-insensitive scanner, since their
+ meaning is unclear. The current behavior is to skip them entirely,
+ but this may change without notice in future revisions of flex.
+
+ * The `{-}' operator computes the difference of two character
+ classes. For example, `[a-c]{-}[b-z]' represents all the
+ characters in the class `[a-c]' that are not in the class `[b-z]'
+ (which in this case, is just the single character `a'). The `{-}'
+ operator is left associative, so `[abc]{-}[b]{-}[c]' is the same
+ as `[a]'. Be careful not to accidentally create an empty set,
+ which will never match.
+
+ * The `{+}' operator computes the union of two character classes.
+ For example, `[a-z]{+}[0-9]' is the same as `[a-z0-9]'. This
+ operator is useful when preceded by the result of a difference
+ operation, as in, `[[:alpha:]]{-}[[:lower:]]{+}[q]', which is
+ equivalent to `[A-Zq]' in the "C" locale.
+
* A rule can have at most one instance of trailing context (the `/'
operator or the `$' operator). The start condition, `^', and
`<<EOF>>' patterns can only occur at the beginning of a pattern,
@@ -850,10 +933,10 @@ any alphabetic or numeric character. Some systems don't provide

File: flex.info, Node: Matching, Next: Actions, Prev: Patterns, Up: Top
-How the Input Is Matched
-************************
+7 How the Input Is Matched
+**************************
- When the generated scanner is run, it analyzes its input looking for
+When the generated scanner is run, it analyzes its input looking for
strings which match any of its patterns. If it finds more than one
match, it takes the one matching the most text (for trailing context
rules, this includes the length of the trailing part, even though it
@@ -920,11 +1003,11 @@ too much text being pushed back; instead, a run-time error results.

File: flex.info, Node: Actions, Next: Generated Scanner, Prev: Matching, Up: Top
-Actions
-*******
+8 Actions
+*********
- Each pattern in a rule has a corresponding "action", which can be
-any arbitrary C statement. The pattern ends at the first non-escaped
+Each pattern in a rule has a corresponding "action", which can be any
+arbitrary C statement. The pattern ends at the first non-escaped
whitespace character; the remainder of the line is its action. If the
action is empty, then when the pattern is matched the input token is
simply discarded. For example, here is the specification for a program
@@ -945,7 +1028,7 @@ single blank, and throws away whitespace found at the end of a line:
[ \t]+ putchar( ' ' );
[ \t]+$ /* ignore this token */
- If the action contains a `}', then the action spans till the
+ If the action contains a `{', then the action spans till the
balancing `}' is found, and the action may cross multiple lines.
`flex' knows about C strings and comments and won't be fooled by braces
found within them, but also allows actions to begin with `%{' and will
@@ -993,11 +1076,11 @@ within an action:
int word_count = 0;
%%
-
+
frob special(); REJECT;
[^ \t\n]+ ++word_count;
- Without the `REJECT', any occurences of `frob' in the input would
+ Without the `REJECT', any occurrences of `frob' in the input would
not be counted as words, since the scanner normally executes only
one action per token. Multiple uses of `REJECT' are allowed, each
one finding the next best choice to the currently active rule. For
@@ -1022,7 +1105,7 @@ within an action:
Scanner Options::).
Note also that unlike the other special actions, `REJECT' is a
- _branch_. code immediately following it in the action will _not_
+ _branch_. Code immediately following it in the action will _not_
be executed.
`yymore()'
@@ -1105,13 +1188,13 @@ example, the following is one way to eat up C comments:
%%
"/*" {
register int c;
-
+
for ( ; ; )
{
while ( (c = input()) != '*' &&
c != EOF )
; /* eat up text of comment */
-
+
if ( c == '*' )
{
while ( (c = input()) == '*' )
@@ -1119,7 +1202,7 @@ example, the following is one way to eat up C comments:
if ( c == '/' )
break; /* found the end */
}
-
+
if ( c == EOF )
{
error( "EOF in comment" );
@@ -1147,10 +1230,10 @@ redefined.

File: flex.info, Node: Generated Scanner, Next: Start Conditions, Prev: Actions, Up: Top
-The Generated Scanner
-*********************
+9 The Generated Scanner
+***********************
- The output of `flex' is the file `lex.yy.c', which contains the
+The output of `flex' is the file `lex.yy.c', which contains the
scanning routine `yylex()', a number of tables used by it for matching
tokens, and a number of auxiliary routines and macros. By default,
`yylex()' is declared as follows:
@@ -1252,3 +1335,6349 @@ the default version of the routine, which always returns 1.
`stdout'), which may be redefined by the user simply by assigning it to
some other `FILE' pointer.
+
+File: flex.info, Node: Start Conditions, Next: Multiple Input Buffers, Prev: Generated Scanner, Up: Top
+
+10 Start Conditions
+*******************
+
+`flex' provides a mechanism for conditionally activating rules. Any
+rule whose pattern is prefixed with `<sc>' will only be active when the
+scanner is in the "start condition" named `sc'. For example,
+
+
+ <STRING>[^"]* { /* eat up the string body ... */
+ ...
+ }
+
+ will be active only when the scanner is in the `STRING' start
+condition, and
+
+
+ <INITIAL,STRING,QUOTE>\. { /* handle an escape ... */
+ ...
+ }
+
+ will be active only when the current start condition is either
+`INITIAL', `STRING', or `QUOTE'.
+
+ Start conditions are declared in the definitions (first) section of
+the input using unindented lines beginning with either `%s' or `%x'
+followed by a list of names. The former declares "inclusive" start
+conditions, the latter "exclusive" start conditions. A start condition
+is activated using the `BEGIN' action. Until the next `BEGIN' action
+is executed, rules with the given start condition will be active and
+rules with other start conditions will be inactive. If the start
+condition is inclusive, then rules with no start conditions at all will
+also be active. If it is exclusive, then _only_ rules qualified with
+the start condition will be active. A set of rules contingent on the
+same exclusive start condition describe a scanner which is independent
+of any of the other rules in the `flex' input. Because of this,
+exclusive start conditions make it easy to specify "mini-scanners"
+which scan portions of the input that are syntactically different from
+the rest (e.g., comments).
+
+ If the distinction between inclusive and exclusive start conditions
+is still a little vague, here's a simple example illustrating the
+connection between the two. The set of rules:
+
+
+ %s example
+ %%
+
+ <example>foo do_something();
+
+ bar something_else();
+
+ is equivalent to
+
+
+ %x example
+ %%
+
+ <example>foo do_something();
+
+ <INITIAL,example>bar something_else();
+
+ Without the `<INITIAL,example>' qualifier, the `bar' pattern in the
+second example wouldn't be active (i.e., couldn't match) when in start
+condition `example'. If we just used `<example>' to qualify `bar',
+though, then it would only be active in `example' and not in `INITIAL',
+while in the first example it's active in both, because in the first
+example the `example' start condition is an inclusive `(%s)' start
+condition.
+
+ Also note that the special start-condition specifier `<*>' matches
+every start condition. Thus, the above example could also have been
+written:
+
+
+ %x example
+ %%
+
+ <example>foo do_something();
+
+ <*>bar something_else();
+
+ The default rule (to `ECHO' any unmatched character) remains active
+in start conditions. It is equivalent to:
+
+
+ <*>.|\n ECHO;
+
+ `BEGIN(0)' returns to the original state where only the rules with
+no start conditions are active. This state can also be referred to as
+the start-condition `INITIAL', so `BEGIN(INITIAL)' is equivalent to
+`BEGIN(0)'. (The parentheses around the start condition name are not
+required but are considered good style.)
+
+ `BEGIN' actions can also be given as indented code at the beginning
+of the rules section. For example, the following will cause the scanner
+to enter the `SPECIAL' start condition whenever `yylex()' is called and
+the global variable `enter_special' is true:
+
+
+ int enter_special;
+
+ %x SPECIAL
+ %%
+ if ( enter_special )
+ BEGIN(SPECIAL);
+
+ <SPECIAL>blahblahblah
+ ...more rules follow...
+
+ To illustrate the uses of start conditions, here is a scanner which
+provides two different interpretations of a string like `123.456'. By
+default it will treat it as three tokens, the integer `123', a dot
+(`.'), and the integer `456'. But if the string is preceded earlier in
+the line by the string `expect-floats' it will treat it as a single
+token, the floating-point number `123.456':
+
+
+ %{
+ #include <math.h>
+ %}
+ %s expect
+
+ %%
+ expect-floats BEGIN(expect);
+
+ <expect>[0-9]+@samp{.}[0-9]+ {
+ printf( "found a float, = %f\n",
+ atof( yytext ) );
+ }
+ <expect>\n {
+ /* that's the end of the line, so
+ * we need another "expect-number"
+ * before we'll recognize any more
+ * numbers
+ */
+ BEGIN(INITIAL);
+ }
+
+ [0-9]+ {
+ printf( "found an integer, = %d\n",
+ atoi( yytext ) );
+ }
+
+ "." printf( "found a dot\n" );
+
+ Here is a scanner which recognizes (and discards) C comments while
+maintaining a count of the current input line.
+
+
+ %x comment
+ %%
+ int line_num = 1;
+
+ "/*" BEGIN(comment);
+
+ <comment>[^*\n]* /* eat anything that's not a '*' */
+ <comment>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */
+ <comment>\n ++line_num;
+ <comment>"*"+"/" BEGIN(INITIAL);
+
+ This scanner goes to a bit of trouble to match as much text as
+possible with each rule. In general, when attempting to write a
+high-speed scanner try to match as much possible in each rule, as it's
+a big win.
+
+ Note that start-conditions names are really integer values and can
+be stored as such. Thus, the above could be extended in the following
+fashion:
+
+
+ %x comment foo
+ %%
+ int line_num = 1;
+ int comment_caller;
+
+ "/*" {
+ comment_caller = INITIAL;
+ BEGIN(comment);
+ }
+
+ ...
+
+ <foo>"/*" {
+ comment_caller = foo;
+ BEGIN(comment);
+ }
+
+ <comment>[^*\n]* /* eat anything that's not a '*' */
+ <comment>"*"+[^*/\n]* /* eat up '*'s not followed by '/'s */
+ <comment>\n ++line_num;
+ <comment>"*"+"/" BEGIN(comment_caller);
+
+ Furthermore, you can access the current start condition using the
+integer-valued `YY_START' macro. For example, the above assignments to
+`comment_caller' could instead be written
+
+
+ comment_caller = YY_START;
+
+ Flex provides `YYSTATE' as an alias for `YY_START' (since that is
+what's used by AT&T `lex').
+
+ For historical reasons, start conditions do not have their own
+name-space within the generated scanner. The start condition names are
+unmodified in the generated scanner and generated header. *Note
+option-header::. *Note option-prefix::.
+
+ Finally, here's an example of how to match C-style quoted strings
+using exclusive start conditions, including expanded escape sequences
+(but not including checking for a string that's too long):
+
+
+ %x str
+
+ %%
+ char string_buf[MAX_STR_CONST];
+ char *string_buf_ptr;
+
+
+ \" string_buf_ptr = string_buf; BEGIN(str);
+
+ <str>\" { /* saw closing quote - all done */
+ BEGIN(INITIAL);
+ *string_buf_ptr = '\0';
+ /* return string constant token type and
+ * value to parser
+ */
+ }
+
+ <str>\n {
+ /* error - unterminated string constant */
+ /* generate error message */
+ }
+
+ <str>\\[0-7]{1,3} {
+ /* octal escape sequence */
+ int result;
+
+ (void) sscanf( yytext + 1, "%o", &result );
+
+ if ( result > 0xff )
+ /* error, constant is out-of-bounds */
+
+ *string_buf_ptr++ = result;
+ }
+
+ <str>\\[0-9]+ {
+ /* generate error - bad escape sequence; something
+ * like '\48' or '\0777777'
+ */
+ }
+
+ <str>\\n *string_buf_ptr++ = '\n';
+ <str>\\t *string_buf_ptr++ = '\t';
+ <str>\\r *string_buf_ptr++ = '\r';
+ <str>\\b *string_buf_ptr++ = '\b';
+ <str>\\f *string_buf_ptr++ = '\f';
+
+ <str>\\(.|\n) *string_buf_ptr++ = yytext[1];
+
+ <str>[^\\\n\"]+ {
+ char *yptr = yytext;
+
+ while ( *yptr )
+ *string_buf_ptr++ = *yptr++;
+ }
+
+ Often, such as in some of the examples above, you wind up writing a
+whole bunch of rules all preceded by the same start condition(s). Flex
+makes this a little easier and cleaner by introducing a notion of start
+condition "scope". A start condition scope is begun with:
+
+
+ <SCs>{
+
+ where `SCs' is a list of one or more start conditions. Inside the
+start condition scope, every rule automatically has the prefix `SCs>'
+applied to it, until a `}' which matches the initial `{'. So, for
+example,
+
+
+ <ESC>{
+ "\\n" return '\n';
+ "\\r" return '\r';
+ "\\f" return '\f';
+ "\\0" return '\0';
+ }
+
+ is equivalent to:
+
+
+ <ESC>"\\n" return '\n';
+ <ESC>"\\r" return '\r';
+ <ESC>"\\f" return '\f';
+ <ESC>"\\0" return '\0';
+
+ Start condition scopes may be nested.
+
+ The following routines are available for manipulating stacks of
+start conditions:
+
+ -- Function: void yy_push_state ( int `new_state' )
+ pushes the current start condition onto the top of the start
+ condition stack and switches to `new_state' as though you had used
+ `BEGIN new_state' (recall that start condition names are also
+ integers).
+
+ -- Function: void yy_pop_state ()
+ pops the top of the stack and switches to it via `BEGIN'.
+
+ -- Function: int yy_top_state ()
+ returns the top of the stack without altering the stack's contents.
+
+ The start condition stack grows dynamically and so has no built-in
+size limitation. If memory is exhausted, program execution aborts.
+
+ To use start condition stacks, your scanner must include a `%option
+stack' directive (*note Scanner Options::).
+
+
+File: flex.info, Node: Multiple Input Buffers, Next: EOF, Prev: Start Conditions, Up: Top
+
+11 Multiple Input Buffers
+*************************
+
+Some scanners (such as those which support "include" files) require
+reading from several input streams. As `flex' scanners do a large
+amount of buffering, one cannot control where the next input will be
+read from by simply writing a `YY_INPUT()' which is sensitive to the
+scanning context. `YY_INPUT()' is only called when the scanner reaches
+the end of its buffer, which may be a long time after scanning a
+statement such as an `include' statement which requires switching the
+input source.
+
+ To negotiate these sorts of problems, `flex' provides a mechanism
+for creating and switching between multiple input buffers. An input
+buffer is created by using:
+
+ -- Function: YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size )
+
+ which takes a `FILE' pointer and a size and creates a buffer
+associated with the given file and large enough to hold `size'
+characters (when in doubt, use `YY_BUF_SIZE' for the size). It returns
+a `YY_BUFFER_STATE' handle, which may then be passed to other routines
+(see below). The `YY_BUFFER_STATE' type is a pointer to an opaque
+`struct yy_buffer_state' structure, so you may safely initialize
+`YY_BUFFER_STATE' variables to `((YY_BUFFER_STATE) 0)' if you wish, and
+also refer to the opaque structure in order to correctly declare input
+buffers in source files other than that of your scanner. Note that the
+`FILE' pointer in the call to `yy_create_buffer' is only used as the
+value of `yyin' seen by `YY_INPUT'. If you redefine `YY_INPUT()' so it
+no longer uses `yyin', then you can safely pass a NULL `FILE' pointer to
+`yy_create_buffer'. You select a particular buffer to scan from using:
+
+ -- Function: void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer )
+
+ The above function switches the scanner's input buffer so subsequent
+tokens will come from `new_buffer'. Note that `yy_switch_to_buffer()'
+may be used by `yywrap()' to set things up for continued scanning,
+instead of opening a new file and pointing `yyin' at it. If you are
+looking for a stack of input buffers, then you want to use
+`yypush_buffer_state()' instead of this function. Note also that
+switching input sources via either `yy_switch_to_buffer()' or
+`yywrap()' does _not_ change the start condition.
+
+ -- Function: void yy_delete_buffer ( YY_BUFFER_STATE buffer )
+
+ is used to reclaim the storage associated with a buffer. (`buffer'
+can be NULL, in which case the routine does nothing.) You can also
+clear the current contents of a buffer using:
+
+ -- Function: void yypush_buffer_state ( YY_BUFFER_STATE buffer )
+
+ This function pushes the new buffer state onto an internal stack.
+The pushed state becomes the new current state. The stack is maintained
+by flex and will grow as required. This function is intended to be used
+instead of `yy_switch_to_buffer', when you want to change states, but
+preserve the current state for later use.
+
+ -- Function: void yypop_buffer_state ( )
+
+ This function removes the current state from the top of the stack,
+and deletes it by calling `yy_delete_buffer'. The next state on the
+stack, if any, becomes the new current state.
+
+ -- Function: void yy_flush_buffer ( YY_BUFFER_STATE buffer )
+
+ This function discards the buffer's contents, so the next time the
+scanner attempts to match a token from the buffer, it will first fill
+the buffer anew using `YY_INPUT()'.
+
+ -- Function: YY_BUFFER_STATE yy_new_buffer ( FILE *file, int size )
+
+ is an alias for `yy_create_buffer()', provided for compatibility
+with the C++ use of `new' and `delete' for creating and destroying
+dynamic objects.
+
+ `YY_CURRENT_BUFFER' macro returns a `YY_BUFFER_STATE' handle to the
+current buffer. It should not be used as an lvalue.
+
+ Here are two examples of using these features for writing a scanner
+which expands include files (the `<<EOF>>' feature is discussed below).
+
+ This first example uses yypush_buffer_state and yypop_buffer_state.
+Flex maintains the stack internally.
+
+
+ /* the "incl" state is used for picking up the name
+ * of an include file
+ */
+ %x incl
+ %%
+ include BEGIN(incl);
+
+ [a-z]+ ECHO;
+ [^a-z\n]*\n? ECHO;
+
+ <incl>[ \t]* /* eat the whitespace */
+ <incl>[^ \t\n]+ { /* got the include file name */
+ yyin = fopen( yytext, "r" );
+
+ if ( ! yyin )
+ error( ... );
+
+ yypush_buffer_state(yy_create_buffer( yyin, YY_BUF_SIZE ));
+
+ BEGIN(INITIAL);
+ }
+
+ <<EOF>> {
+ yypop_buffer_state();
+
+ if ( !YY_CURRENT_BUFFER )
+ {
+ yyterminate();
+ }
+ }
+
+ The second example, below, does the same thing as the previous
+example did, but manages its own input buffer stack manually (instead
+of letting flex do it).
+
+
+ /* the "incl" state is used for picking up the name
+ * of an include file
+ */
+ %x incl
+
+ %{
+ #define MAX_INCLUDE_DEPTH 10
+ YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
+ int include_stack_ptr = 0;
+ %}
+
+ %%
+ include BEGIN(incl);
+
+ [a-z]+ ECHO;
+ [^a-z\n]*\n? ECHO;
+
+ <incl>[ \t]* /* eat the whitespace */
+ <incl>[^ \t\n]+ { /* got the include file name */
+ if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
+ {
+ fprintf( stderr, "Includes nested too deeply" );
+ exit( 1 );
+ }
+
+ include_stack[include_stack_ptr++] =
+ YY_CURRENT_BUFFER;
+
+ yyin = fopen( yytext, "r" );
+
+ if ( ! yyin )
+ error( ... );
+
+ yy_switch_to_buffer(
+ yy_create_buffer( yyin, YY_BUF_SIZE ) );
+
+ BEGIN(INITIAL);
+ }
+
+ <<EOF>> {
+ if ( --include_stack_ptr 0 )
+ {
+ yyterminate();
+ }
+
+ else
+ {
+ yy_delete_buffer( YY_CURRENT_BUFFER );
+ yy_switch_to_buffer(
+ include_stack[include_stack_ptr] );
+ }
+ }
+
+ The following routines are available for setting up input buffers for
+scanning in-memory strings instead of files. All of them create a new
+input buffer for scanning the string, and return a corresponding
+`YY_BUFFER_STATE' handle (which you should delete with
+`yy_delete_buffer()' when done with it). They also switch to the new
+buffer using `yy_switch_to_buffer()', so the next call to `yylex()'
+will start scanning the string.
+
+ -- Function: YY_BUFFER_STATE yy_scan_string ( const char *str )
+ scans a NUL-terminated string.
+
+ -- Function: YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int
+ len )
+ scans `len' bytes (including possibly `NUL's) starting at location
+ `bytes'.
+
+ Note that both of these functions create and scan a _copy_ of the
+string or bytes. (This may be desirable, since `yylex()' modifies the
+contents of the buffer it is scanning.) You can avoid the copy by
+using:
+
+ -- Function: YY_BUFFER_STATE yy_scan_buffer (char *base, yy_size_t
+ size)
+ which scans in place the buffer starting at `base', consisting of
+ `size' bytes, the last two bytes of which _must_ be
+ `YY_END_OF_BUFFER_CHAR' (ASCII NUL). These last two bytes are not
+ scanned; thus, scanning consists of `base[0]' through
+ `base[size-2]', inclusive.
+
+ If you fail to set up `base' in this manner (i.e., forget the final
+two `YY_END_OF_BUFFER_CHAR' bytes), then `yy_scan_buffer()' returns a
+NULL pointer instead of creating a new input buffer.
+
+ -- Data type: yy_size_t
+ is an integral type to which you can cast an integer expression
+ reflecting the size of the buffer.
+
+
+File: flex.info, Node: EOF, Next: Misc Macros, Prev: Multiple Input Buffers, Up: Top
+
+12 End-of-File Rules
+********************
+
+The special rule `<<EOF>>' indicates actions which are to be taken when
+an end-of-file is encountered and `yywrap()' returns non-zero (i.e.,
+indicates no further files to process). The action must finish by
+doing one of the following things:
+
+ * assigning `yyin' to a new input file (in previous versions of
+ `flex', after doing the assignment you had to call the special
+ action `YY_NEW_FILE'. This is no longer necessary.)
+
+ * executing a `return' statement;
+
+ * executing the special `yyterminate()' action.
+
+ * or, switching to a new buffer using `yy_switch_to_buffer()' as
+ shown in the example above.
+
+ <<EOF>> rules may not be used with other patterns; they may only be
+qualified with a list of start conditions. If an unqualified <<EOF>>
+rule is given, it applies to _all_ start conditions which do not
+already have <<EOF>> actions. To specify an <<EOF>> rule for only the
+initial start condition, use:
+
+
+ <INITIAL><<EOF>>
+
+ These rules are useful for catching things like unclosed comments.
+An example:
+
+
+ %x quote
+ %%
+
+ ...other rules for dealing with quotes...
+
+ <quote><<EOF>> {
+ error( "unterminated quote" );
+ yyterminate();
+ }
+ <<EOF>> {
+ if ( *++filelist )
+ yyin = fopen( *filelist, "r" );
+ else
+ yyterminate();
+ }
+
+
+File: flex.info, Node: Misc Macros, Next: User Values, Prev: EOF, Up: Top
+
+13 Miscellaneous Macros
+***********************
+
+The macro `YY_USER_ACTION' can be defined to provide an action which is
+always executed prior to the matched rule's action. For example, it
+could be #define'd to call a routine to convert yytext to lower-case.
+When `YY_USER_ACTION' is invoked, the variable `yy_act' gives the
+number of the matched rule (rules are numbered starting with 1).
+Suppose you want to profile how often each of your rules is matched.
+The following would do the trick:
+
+
+ #define YY_USER_ACTION ++ctr[yy_act]
+
+ where `ctr' is an array to hold the counts for the different rules.
+Note that the macro `YY_NUM_RULES' gives the total number of rules
+(including the default rule), even if you use `-s)', so a correct
+declaration for `ctr' is:
+
+
+ int ctr[YY_NUM_RULES];
+
+ The macro `YY_USER_INIT' may be defined to provide an action which
+is always executed before the first scan (and before the scanner's
+internal initializations are done). For example, it could be used to
+call a routine to read in a data table or open a logging file.
+
+ The macro `yy_set_interactive(is_interactive)' can be used to
+control whether the current buffer is considered "interactive". An
+interactive buffer is processed more slowly, but must be used when the
+scanner's input source is indeed interactive to avoid problems due to
+waiting to fill buffers (see the discussion of the `-I' flag in *Note
+Scanner Options::). A non-zero value in the macro invocation marks the
+buffer as interactive, a zero value as non-interactive. Note that use
+of this macro overrides `%option always-interactive' or `%option
+never-interactive' (*note Scanner Options::). `yy_set_interactive()'
+must be invoked prior to beginning to scan the buffer that is (or is
+not) to be considered interactive.
+
+ The macro `yy_set_bol(at_bol)' can be used to control whether the
+current buffer's scanning context for the next token match is done as
+though at the beginning of a line. A non-zero macro argument makes
+rules anchored with `^' active, while a zero argument makes `^' rules
+inactive.
+
+ The macro `YY_AT_BOL()' returns true if the next token scanned from
+the current buffer will have `^' rules active, false otherwise.
+
+ In the generated scanner, the actions are all gathered in one large
+switch statement and separated using `YY_BREAK', which may be
+redefined. By default, it is simply a `break', to separate each rule's
+action from the following rule's. Redefining `YY_BREAK' allows, for
+example, C++ users to #define YY_BREAK to do nothing (while being very
+careful that every rule ends with a `break' or a `return'!) to avoid
+suffering from unreachable statement warnings where because a rule's
+action ends with `return', the `YY_BREAK' is inaccessible.
+
+
+File: flex.info, Node: User Values, Next: Yacc, Prev: Misc Macros, Up: Top
+
+14 Values Available To the User
+*******************************
+
+This chapter summarizes the various values available to the user in the
+rule actions.
+
+`char *yytext'
+ holds the text of the current token. It may be modified but not
+ lengthened (you cannot append characters to the end).
+
+ If the special directive `%array' appears in the first section of
+ the scanner description, then `yytext' is instead declared `char
+ yytext[YYLMAX]', where `YYLMAX' is a macro definition that you can
+ redefine in the first section if you don't like the default value
+ (generally 8KB). Using `%array' results in somewhat slower
+ scanners, but the value of `yytext' becomes immune to calls to
+ `unput()', which potentially destroy its value when `yytext' is a
+ character pointer. The opposite of `%array' is `%pointer', which
+ is the default.
+
+ You cannot use `%array' when generating C++ scanner classes (the
+ `-+' flag).
+
+`int yyleng'
+ holds the length of the current token.
+
+`FILE *yyin'
+ is the file which by default `flex' reads from. It may be
+ redefined but doing so only makes sense before scanning begins or
+ after an EOF has been encountered. Changing it in the midst of
+ scanning will have unexpected results since `flex' buffers its
+ input; use `yyrestart()' instead. Once scanning terminates
+ because an end-of-file has been seen, you can assign `yyin' at the
+ new input file and then call the scanner again to continue
+ scanning.
+
+`void yyrestart( FILE *new_file )'
+ may be called to point `yyin' at the new input file. The
+ switch-over to the new file is immediate (any previously
+ buffered-up input is lost). Note that calling `yyrestart()' with
+ `yyin' as an argument thus throws away the current input buffer
+ and continues scanning the same input file.
+
+`FILE *yyout'
+ is the file to which `ECHO' actions are done. It can be reassigned
+ by the user.
+
+`YY_CURRENT_BUFFER'
+ returns a `YY_BUFFER_STATE' handle to the current buffer.
+
+`YY_START'
+ returns an integer value corresponding to the current start
+ condition. You can subsequently use this value with `BEGIN' to
+ return to that start condition.
+
+
+File: flex.info, Node: Yacc, Next: Scanner Options, Prev: User Values, Up: Top
+
+15 Interfacing with Yacc
+************************
+
+One of the main uses of `flex' is as a companion to the `yacc'
+parser-generator. `yacc' parsers expect to call a routine named
+`yylex()' to find the next input token. The routine is supposed to
+return the type of the next token as well as putting any associated
+value in the global `yylval'. To use `flex' with `yacc', one specifies
+the `-d' option to `yacc' to instruct it to generate the file `y.tab.h'
+containing definitions of all the `%tokens' appearing in the `yacc'
+input. This file is then included in the `flex' scanner. For example,
+if one of the tokens is `TOK_NUMBER', part of the scanner might look
+like:
+
+
+ %{
+ #include "y.tab.h"
+ %}
+
+ %%
+
+ [0-9]+ yylval = atoi( yytext ); return TOK_NUMBER;
+
+
+File: flex.info, Node: Scanner Options, Next: Performance, Prev: Yacc, Up: Top
+
+16 Scanner Options
+******************
+
+The various `flex' options are categorized by function in the following
+menu. If you want to lookup a particular option by name, *Note Index of
+Scanner Options::.
+
+* Menu:
+
+* Options for Specifying Filenames::
+* Options Affecting Scanner Behavior::
+* Code-Level And API Options::
+* Options for Scanner Speed and Size::
+* Debugging Options::
+* Miscellaneous Options::
+
+ Even though there are many scanner options, a typical scanner might
+only specify the following options:
+
+
+ %option 8bit reentrant bison-bridge
+ %option warn nodefault
+ %option yylineno
+ %option outfile="scanner.c" header-file="scanner.h"
+
+ The first line specifies the general type of scanner we want. The
+second line specifies that we are being careful. The third line asks
+flex to track line numbers. The last line tells flex what to name the
+files. (The options can be specified in any order. We just divided
+them.)
+
+ `flex' also provides a mechanism for controlling options within the
+scanner specification itself, rather than from the flex command-line.
+This is done by including `%option' directives in the first section of
+the scanner specification. You can specify multiple options with a
+single `%option' directive, and multiple directives in the first
+section of your flex input file.
+
+ Most options are given simply as names, optionally preceded by the
+word `no' (with no intervening whitespace) to negate their meaning.
+The names are the same as their long-option equivalents (but without the
+leading `--' ).
+
+ `flex' scans your rule actions to determine whether you use the
+`REJECT' or `yymore()' features. The `REJECT' and `yymore' options are
+available to override its decision as to whether you use the options,
+either by setting them (e.g., `%option reject)' to indicate the feature
+is indeed used, or unsetting them to indicate it actually is not used
+(e.g., `%option noyymore)'.
+
+ A number of options are available for lint purists who want to
+suppress the appearance of unneeded routines in the generated scanner.
+Each of the following, if unset (e.g., `%option nounput'), results in
+the corresponding routine not appearing in the generated scanner:
+
+
+ input, unput
+ yy_push_state, yy_pop_state, yy_top_state
+ yy_scan_buffer, yy_scan_bytes, yy_scan_string
+
+ yyget_extra, yyset_extra, yyget_leng, yyget_text,
+ yyget_lineno, yyset_lineno, yyget_in, yyset_in,
+ yyget_out, yyset_out, yyget_lval, yyset_lval,
+ yyget_lloc, yyset_lloc, yyget_debug, yyset_debug
+
+ (though `yy_push_state()' and friends won't appear anyway unless you
+use `%option stack)'.
+
+
+File: flex.info, Node: Options for Specifying Filenames, Next: Options Affecting Scanner Behavior, Prev: Scanner Options, Up: Scanner Options
+
+16.1 Options for Specifying Filenames
+=====================================
+
+`--header-file=FILE, `%option header-file="FILE"''
+ instructs flex to write a C header to `FILE'. This file contains
+ function prototypes, extern variables, and types used by the
+ scanner. Only the external API is exported by the header file.
+ Many macros that are usable from within scanner actions are not
+ exported to the header file. This is due to namespace problems and
+ the goal of a clean external API.
+
+ While in the header, the macro `yyIN_HEADER' is defined, where `yy'
+ is substituted with the appropriate prefix.
+
+ The `--header-file' option is not compatible with the `--c++'
+ option, since the C++ scanner provides its own header in
+ `yyFlexLexer.h'.
+
+`-oFILE, --outfile=FILE, `%option outfile="FILE"''
+ directs flex to write the scanner to the file `FILE' instead of
+ `lex.yy.c'. If you combine `--outfile' with the `--stdout' option,
+ then the scanner is written to `stdout' but its `#line' directives
+ (see the `-l' option above) refer to the file `FILE'.
+
+`-t, --stdout, `%option stdout''
+ instructs `flex' to write the scanner it generates to standard
+ output instead of `lex.yy.c'.
+
+`-SFILE, --skel=FILE'
+ overrides the default skeleton file from which `flex' constructs
+ its scanners. You'll never need this option unless you are doing
+ `flex' maintenance or development.
+
+`--tables-file=FILE'
+ Write serialized scanner dfa tables to FILE. The generated scanner
+ will not contain the tables, and requires them to be loaded at
+ runtime. *Note serialization::.
+
+`--tables-verify'
+ This option is for flex development. We document it here in case
+ you stumble upon it by accident or in case you suspect some
+ inconsistency in the serialized tables. Flex will serialize the
+ scanner dfa tables but will also generate the in-code tables as it
+ normally does. At runtime, the scanner will verify that the
+ serialized tables match the in-code tables, instead of loading
+ them.
+
+
+
+File: flex.info, Node: Options Affecting Scanner Behavior, Next: Code-Level And API Options, Prev: Options for Specifying Filenames, Up: Scanner Options
+
+16.2 Options Affecting Scanner Behavior
+=======================================
+
+`-i, --case-insensitive, `%option case-insensitive''
+ instructs `flex' to generate a "case-insensitive" scanner. The
+ case of letters given in the `flex' input patterns will be ignored,
+ and tokens in the input will be matched regardless of case. The
+ matched text given in `yytext' will have the preserved case (i.e.,
+ it will not be folded). For tricky behavior, see *Note case and
+ character ranges::.
+
+`-l, --lex-compat, `%option lex-compat''
+ turns on maximum compatibility with the original AT&T `lex'
+ implementation. Note that this does not mean _full_ compatibility.
+ Use of this option costs a considerable amount of performance, and
+ it cannot be used with the `--c++', `--full', `--fast', `-Cf', or
+ `-CF' options. For details on the compatibilities it provides, see
+ *Note Lex and Posix::. This option also results in the name
+ `YY_FLEX_LEX_COMPAT' being `#define''d in the generated scanner.
+
+`-B, --batch, `%option batch''
+ instructs `flex' to generate a "batch" scanner, the opposite of
+ _interactive_ scanners generated by `--interactive' (see below).
+ In general, you use `-B' when you are _certain_ that your scanner
+ will never be used interactively, and you want to squeeze a
+ _little_ more performance out of it. If your goal is instead to
+ squeeze out a _lot_ more performance, you should be using the
+ `-Cf' or `-CF' options, which turn on `--batch' automatically
+ anyway.
+
+`-I, --interactive, `%option interactive''
+ instructs `flex' to generate an interactive scanner. An
+ interactive scanner is one that only looks ahead to decide what
+ token has been matched if it absolutely must. It turns out that
+ always looking one extra character ahead, even if the scanner has
+ already seen enough text to disambiguate the current token, is a
+ bit faster than only looking ahead when necessary. But scanners
+ that always look ahead give dreadful interactive performance; for
+ example, when a user types a newline, it is not recognized as a
+ newline token until they enter _another_ token, which often means
+ typing in another whole line.
+
+ `flex' scanners default to `interactive' unless you use the `-Cf'
+ or `-CF' table-compression options (*note Performance::). That's
+ because if you're looking for high-performance you should be using
+ one of these options, so if you didn't, `flex' assumes you'd
+ rather trade off a bit of run-time performance for intuitive
+ interactive behavior. Note also that you _cannot_ use
+ `--interactive' in conjunction with `-Cf' or `-CF'. Thus, this
+ option is not really needed; it is on by default for all those
+ cases in which it is allowed.
+
+ You can force a scanner to _not_ be interactive by using `--batch'
+
+`-7, --7bit, `%option 7bit''
+ instructs `flex' to generate a 7-bit scanner, i.e., one which can
+ only recognize 7-bit characters in its input. The advantage of
+ using `--7bit' is that the scanner's tables can be up to half the
+ size of those generated using the `--8bit'. The disadvantage is
+ that such scanners often hang or crash if their input contains an
+ 8-bit character.
+
+ Note, however, that unless you generate your scanner using the
+ `-Cf' or `-CF' table compression options, use of `--7bit' will
+ save only a small amount of table space, and make your scanner
+ considerably less portable. `Flex''s default behavior is to
+ generate an 8-bit scanner unless you use the `-Cf' or `-CF', in
+ which case `flex' defaults to generating 7-bit scanners unless
+ your site was always configured to generate 8-bit scanners (as will
+ often be the case with non-USA sites). You can tell whether flex
+ generated a 7-bit or an 8-bit scanner by inspecting the flag
+ summary in the `--verbose' output as described above.
+
+ Note that if you use `-Cfe' or `-CFe' `flex' still defaults to
+ generating an 8-bit scanner, since usually with these compression
+ options full 8-bit tables are not much more expensive than 7-bit
+ tables.
+
+`-8, --8bit, `%option 8bit''
+ instructs `flex' to generate an 8-bit scanner, i.e., one which can
+ recognize 8-bit characters. This flag is only needed for scanners
+ generated using `-Cf' or `-CF', as otherwise flex defaults to
+ generating an 8-bit scanner anyway.
+
+ See the discussion of `--7bit' above for `flex''s default behavior
+ and the tradeoffs between 7-bit and 8-bit scanners.
+
+`--default, `%option default''
+ generate the default rule.
+
+`--always-interactive, `%option always-interactive''
+ instructs flex to generate a scanner which always considers its
+ input _interactive_. Normally, on each new input file the scanner
+ calls `isatty()' in an attempt to determine whether the scanner's
+ input source is interactive and thus should be read a character at
+ a time. When this option is used, however, then no such call is
+ made.
+
+`--never-interactive, `--never-interactive''
+ instructs flex to generate a scanner which never considers its
+ input interactive. This is the opposite of `always-interactive'.
+
+`-X, --posix, `%option posix''
+ turns on maximum compatibility with the POSIX 1003.2-1992
+ definition of `lex'. Since `flex' was originally designed to
+ implement the POSIX definition of `lex' this generally involves
+ very few changes in behavior. At the current writing the known
+ differences between `flex' and the POSIX standard are:
+
+ * In POSIX and AT&T `lex', the repeat operator, `{}', has lower
+ precedence than concatenation (thus `ab{3}' yields `ababab').
+ Most POSIX utilities use an Extended Regular Expression (ERE)
+ precedence that has the precedence of the repeat operator
+ higher than concatenation (which causes `ab{3}' to yield
+ `abbb'). By default, `flex' places the precedence of the
+ repeat operator higher than concatenation which matches the
+ ERE processing of other POSIX utilities. When either
+ `--posix' or `-l' are specified, `flex' will use the
+ traditional AT&T and POSIX-compliant precedence for the
+ repeat operator where concatenation has higher precedence
+ than the repeat operator.
+
+`--stack, `%option stack''
+ enables the use of start condition stacks (*note Start
+ Conditions::).
+
+`--stdinit, `%option stdinit''
+ if set (i.e., %option stdinit) initializes `yyin' and `yyout' to
+ `stdin' and `stdout', instead of the default of `NULL'. Some
+ existing `lex' programs depend on this behavior, even though it is
+ not compliant with ANSI C, which does not require `stdin' and
+ `stdout' to be compile-time constant. In a reentrant scanner,
+ however, this is not a problem since initialization is performed
+ in `yylex_init' at runtime.
+
+`--yylineno, `%option yylineno''
+ directs `flex' to generate a scanner that maintains the number of
+ the current line read from its input in the global variable
+ `yylineno'. This option is implied by `%option lex-compat'. In a
+ reentrant C scanner, the macro `yylineno' is accessible regardless
+ of the value of `%option yylineno', however, its value is not
+ modified by `flex' unless `%option yylineno' is enabled.
+
+`--yywrap, `%option yywrap''
+ if unset (i.e., `--noyywrap)', makes the scanner not call
+ `yywrap()' upon an end-of-file, but simply assume that there are no
+ more files to scan (until the user points `yyin' at a new file and
+ calls `yylex()' again).
+
+
+
+File: flex.info, Node: Code-Level And API Options, Next: Options for Scanner Speed and Size, Prev: Options Affecting Scanner Behavior, Up: Scanner Options
+
+16.3 Code-Level And API Options
+===============================
+
+`--ansi-definitions, `%option ansi-definitions''
+ instruct flex to generate ANSI C99 definitions for functions.
+ This option is enabled by default. If `%option
+ noansi-definitions' is specified, then the obsolete style is
+ generated.
+
+`--ansi-prototypes, `%option ansi-prototypes''
+ instructs flex to generate ANSI C99 prototypes for functions.
+ This option is enabled by default. If `noansi-prototypes' is
+ specified, then prototypes will have empty parameter lists.
+
+`--bison-bridge, `%option bison-bridge''
+ instructs flex to generate a C scanner that is meant to be called
+ by a `GNU bison' parser. The scanner has minor API changes for
+ `bison' compatibility. In particular, the declaration of `yylex'
+ is modified to take an additional parameter, `yylval'. *Note
+ Bison Bridge::.
+
+`--bison-locations, `%option bison-locations''
+ instruct flex that `GNU bison' `%locations' are being used. This
+ means `yylex' will be passed an additional parameter, `yylloc'.
+ This option implies `%option bison-bridge'. *Note Bison Bridge::.
+
+`-L, --noline, `%option noline''
+ instructs `flex' not to generate `#line' directives. Without this
+ option, `flex' peppers the generated scanner with `#line'
+ directives so error messages in the actions will be correctly
+ located with respect to either the original `flex' input file (if
+ the errors are due to code in the input file), or `lex.yy.c' (if
+ the errors are `flex''s fault - you should report these sorts of
+ errors to the email address given in *Note Reporting Bugs::).
+
+`-R, --reentrant, `%option reentrant''
+ instructs flex to generate a reentrant C scanner. The generated
+ scanner may safely be used in a multi-threaded environment. The
+ API for a reentrant scanner is different than for a non-reentrant
+ scanner *note Reentrant::). Because of the API difference between
+ reentrant and non-reentrant `flex' scanners, non-reentrant flex
+ code must be modified before it is suitable for use with this
+ option. This option is not compatible with the `--c++' option.
+
+ The option `--reentrant' does not affect the performance of the
+ scanner.
+
+`-+, --c++, `%option c++''
+ specifies that you want flex to generate a C++ scanner class.
+ *Note Cxx::, for details.
+
+`--array, `%option array''
+ specifies that you want yytext to be an array instead of a char*
+
+`--pointer, `%option pointer''
+ specify that `yytext' should be a `char *', not an array. This
+ default is `char *'.
+
+`-PPREFIX, --prefix=PREFIX, `%option prefix="PREFIX"''
+ changes the default `yy' prefix used by `flex' for all
+ globally-visible variable and function names to instead be
+ `PREFIX'. For example, `--prefix=foo' changes the name of
+ `yytext' to `footext'. It also changes the name of the default
+ output file from `lex.yy.c' to `lex.foo.c'. Here is a partial
+ list of the names affected:
+
+
+ yy_create_buffer
+ yy_delete_buffer
+ yy_flex_debug
+ yy_init_buffer
+ yy_flush_buffer
+ yy_load_buffer_state
+ yy_switch_to_buffer
+ yyin
+ yyleng
+ yylex
+ yylineno
+ yyout
+ yyrestart
+ yytext
+ yywrap
+ yyalloc
+ yyrealloc
+ yyfree
+
+ (If you are using a C++ scanner, then only `yywrap' and
+ `yyFlexLexer' are affected.) Within your scanner itself, you can
+ still refer to the global variables and functions using either
+ version of their name; but externally, they have the modified name.
+
+ This option lets you easily link together multiple `flex' programs
+ into the same executable. Note, though, that using this option
+ also renames `yywrap()', so you now _must_ either provide your own
+ (appropriately-named) version of the routine for your scanner, or
+ use `%option noyywrap', as linking with `-lfl' no longer provides
+ one for you by default.
+
+`--main, `%option main''
+ directs flex to provide a default `main()' program for the
+ scanner, which simply calls `yylex()'. This option implies
+ `noyywrap' (see below).
+
+`--nounistd, `%option nounistd''
+ suppresses inclusion of the non-ANSI header file `unistd.h'. This
+ option is meant to target environments in which `unistd.h' does
+ not exist. Be aware that certain options may cause flex to
+ generate code that relies on functions normally found in
+ `unistd.h', (e.g. `isatty()', `read()'.) If you wish to use these
+ functions, you will have to inform your compiler where to find
+ them. *Note option-always-interactive::. *Note option-read::.
+
+`--yyclass=NAME, `%option yyclass="NAME"''
+ only applies when generating a C++ scanner (the `--c++' option).
+ It informs `flex' that you have derived `NAME' as a subclass of
+ `yyFlexLexer', so `flex' will place your actions in the member
+ function `foo::yylex()' instead of `yyFlexLexer::yylex()'. It
+ also generates a `yyFlexLexer::yylex()' member function that emits
+ a run-time error (by invoking `yyFlexLexer::LexerError())' if
+ called. *Note Cxx::.
+
+
+
+File: flex.info, Node: Options for Scanner Speed and Size, Next: Debugging Options, Prev: Code-Level And API Options, Up: Scanner Options
+
+16.4 Options for Scanner Speed and Size
+=======================================
+
+`-C[aefFmr]'
+ controls the degree of table compression and, more generally,
+ trade-offs between small scanners and fast scanners.
+
+ `-C'
+ A lone `-C' specifies that the scanner tables should be
+ compressed but neither equivalence classes nor
+ meta-equivalence classes should be used.
+
+ `-Ca, --align, `%option align''
+ ("align") instructs flex to trade off larger tables in the
+ generated scanner for faster performance because the elements
+ of the tables are better aligned for memory access and
+ computation. On some RISC architectures, fetching and
+ manipulating longwords is more efficient than with
+ smaller-sized units such as shortwords. This option can
+ quadruple the size of the tables used by your scanner.
+
+ `-Ce, --ecs, `%option ecs''
+ directs `flex' to construct "equivalence classes", i.e., sets
+ of characters which have identical lexical properties (for
+ example, if the only appearance of digits in the `flex' input
+ is in the character class "[0-9]" then the digits '0', '1',
+ ..., '9' will all be put in the same equivalence class).
+ Equivalence classes usually give dramatic reductions in the
+ final table/object file sizes (typically a factor of 2-5) and
+ are pretty cheap performance-wise (one array look-up per
+ character scanned).
+
+ `-Cf'
+ specifies that the "full" scanner tables should be generated -
+ `flex' should not compress the tables by taking advantages of
+ similar transition functions for different states.
+
+ `-CF'
+ specifies that the alternate fast scanner representation
+ (described above under the `--fast' flag) should be used.
+ This option cannot be used with `--c++'.
+
+ `-Cm, --meta-ecs, `%option meta-ecs''
+ directs `flex' to construct "meta-equivalence classes", which
+ are sets of equivalence classes (or characters, if equivalence
+ classes are not being used) that are commonly used together.
+ Meta-equivalence classes are often a big win when using
+ compressed tables, but they have a moderate performance
+ impact (one or two `if' tests and one array look-up per
+ character scanned).
+
+ `-Cr, --read, `%option read''
+ causes the generated scanner to _bypass_ use of the standard
+ I/O library (`stdio') for input. Instead of calling
+ `fread()' or `getc()', the scanner will use the `read()'
+ system call, resulting in a performance gain which varies
+ from system to system, but in general is probably negligible
+ unless you are also using `-Cf' or `-CF'. Using `-Cr' can
+ cause strange behavior if, for example, you read from `yyin'
+ using `stdio' prior to calling the scanner (because the
+ scanner will miss whatever text your previous reads left in
+ the `stdio' input buffer). `-Cr' has no effect if you define
+ `YY_INPUT()' (*note Generated Scanner::).
+
+ The options `-Cf' or `-CF' and `-Cm' do not make sense together -
+ there is no opportunity for meta-equivalence classes if the table
+ is not being compressed. Otherwise the options may be freely
+ mixed, and are cumulative.
+
+ The default setting is `-Cem', which specifies that `flex' should
+ generate equivalence classes and meta-equivalence classes. This
+ setting provides the highest degree of table compression. You can
+ trade off faster-executing scanners at the cost of larger tables
+ with the following generally being true:
+
+
+ slowest & smallest
+ -Cem
+ -Cm
+ -Ce
+ -C
+ -C{f,F}e
+ -C{f,F}
+ -C{f,F}a
+ fastest & largest
+
+ Note that scanners with the smallest tables are usually generated
+ and compiled the quickest, so during development you will usually
+ want to use the default, maximal compression.
+
+ `-Cfe' is often a good compromise between speed and size for
+ production scanners.
+
+`-f, --full, `%option full''
+ specifies "fast scanner". No table compression is done and
+ `stdio' is bypassed. The result is large but fast. This option
+ is equivalent to `--Cfr'
+
+`-F, --fast, `%option fast''
+ specifies that the _fast_ scanner table representation should be
+ used (and `stdio' bypassed). This representation is about as fast
+ as the full table representation `--full', and for some sets of
+ patterns will be considerably smaller (and for others, larger). In
+ general, if the pattern set contains both _keywords_ and a
+ catch-all, _identifier_ rule, such as in the set:
+
+
+ "case" return TOK_CASE;
+ "switch" return TOK_SWITCH;
+ ...
+ "default" return TOK_DEFAULT;
+ [a-z]+ return TOK_ID;
+
+ then you're better off using the full table representation. If
+ only the _identifier_ rule is present and you then use a hash
+ table or some such to detect the keywords, you're better off using
+ `--fast'.
+
+ This option is equivalent to `-CFr'. It cannot be used with
+ `--c++'.
+
+
+
+File: flex.info, Node: Debugging Options, Next: Miscellaneous Options, Prev: Options for Scanner Speed and Size, Up: Scanner Options
+
+16.5 Debugging Options
+======================
+
+`-b, --backup, `%option backup''
+ Generate backing-up information to `lex.backup'. This is a list of
+ scanner states which require backing up and the input characters on
+ which they do so. By adding rules one can remove backing-up
+ states. If _all_ backing-up states are eliminated and `-Cf' or
+ `-CF' is used, the generated scanner will run faster (see the
+ `--perf-report' flag). Only users who wish to squeeze every last
+ cycle out of their scanners need worry about this option. (*note
+ Performance::).
+
+`-d, --debug, `%option debug''
+ makes the generated scanner run in "debug" mode. Whenever a
+ pattern is recognized and the global variable `yy_flex_debug' is
+ non-zero (which is the default), the scanner will write to
+ `stderr' a line of the form:
+
+
+ -accepting rule at line 53 ("the matched text")
+
+ The line number refers to the location of the rule in the file
+ defining the scanner (i.e., the file that was fed to flex).
+ Messages are also generated when the scanner backs up, accepts the
+ default rule, reaches the end of its input buffer (or encounters a
+ NUL; at this point, the two look the same as far as the scanner's
+ concerned), or reaches an end-of-file.
+
+`-p, --perf-report, `%option perf-report''
+ generates a performance report to `stderr'. The report consists of
+ comments regarding features of the `flex' input file which will
+ cause a serious loss of performance in the resulting scanner. If
+ you give the flag twice, you will also get comments regarding
+ features that lead to minor performance losses.
+
+ Note that the use of `REJECT', and variable trailing context
+ (*note Limitations::) entails a substantial performance penalty;
+ use of `yymore()', the `^' operator, and the `--interactive' flag
+ entail minor performance penalties.
+
+`-s, --nodefault, `%option nodefault''
+ causes the _default rule_ (that unmatched scanner input is echoed
+ to `stdout)' to be suppressed. If the scanner encounters input
+ that does not match any of its rules, it aborts with an error.
+ This option is useful for finding holes in a scanner's rule set.
+
+`-T, --trace, `%option trace''
+ makes `flex' run in "trace" mode. It will generate a lot of
+ messages to `stderr' concerning the form of the input and the
+ resultant non-deterministic and deterministic finite automata.
+ This option is mostly for use in maintaining `flex'.
+
+`-w, --nowarn, `%option nowarn''
+ suppresses warning messages.
+
+`-v, --verbose, `%option verbose''
+ specifies that `flex' should write to `stderr' a summary of
+ statistics regarding the scanner it generates. Most of the
+ statistics are meaningless to the casual `flex' user, but the
+ first line identifies the version of `flex' (same as reported by
+ `--version'), and the next line the flags used when generating the
+ scanner, including those that are on by default.
+
+`--warn, `%option warn''
+ warn about certain things. In particular, if the default rule can
+ be matched but no default rule has been given, the flex will warn
+ you. We recommend using this option always.
+
+
+
+File: flex.info, Node: Miscellaneous Options, Prev: Debugging Options, Up: Scanner Options
+
+16.6 Miscellaneous Options
+==========================
+
+`-c'
+ A do-nothing option included for POSIX compliance.
+
+`-h, -?, --help'
+ generates a "help" summary of `flex''s options to `stdout' and
+ then exits.
+
+`-n'
+ Another do-nothing option included for POSIX compliance.
+
+`-V, --version'
+ prints the version number to `stdout' and exits.
+
+
+
+File: flex.info, Node: Performance, Next: Cxx, Prev: Scanner Options, Up: Top
+
+17 Performance Considerations
+*****************************
+
+The main design goal of `flex' is that it generate high-performance
+scanners. It has been optimized for dealing well with large sets of
+rules. Aside from the effects on scanner speed of the table compression
+`-C' options outlined above, there are a number of options/actions
+which degrade performance. These are, from most expensive to least:
+
+
+ REJECT
+ arbitrary trailing context
+
+ pattern sets that require backing up
+ %option yylineno
+ %array
+
+ %option interactive
+ %option always-interactive
+
+ @samp{^} beginning-of-line operator
+ yymore()
+
+ with the first two all being quite expensive and the last two being
+quite cheap. Note also that `unput()' is implemented as a routine call
+that potentially does quite a bit of work, while `yyless()' is a
+quite-cheap macro. So if you are just putting back some excess text you
+scanned, use `yyless()'.
+
+ `REJECT' should be avoided at all costs when performance is
+important. It is a particularly expensive option.
+
+ There is one case when `%option yylineno' can be expensive. That is
+when your patterns match long tokens that could _possibly_ contain a
+newline character. There is no performance penalty for rules that can
+not possibly match newlines, since flex does not need to check them for
+newlines. In general, you should avoid rules such as `[^f]+', which
+match very long tokens, including newlines, and may possibly match your
+entire file! A better approach is to separate `[^f]+' into two rules:
+
+
+ %option yylineno
+ %%
+ [^f\n]+
+ \n+
+
+ The above scanner does not incur a performance penalty.
+
+ Getting rid of backing up is messy and often may be an enormous
+amount of work for a complicated scanner. In principal, one begins by
+using the `-b' flag to generate a `lex.backup' file. For example, on
+the input:
+
+
+ %%
+ foo return TOK_KEYWORD;
+ foobar return TOK_KEYWORD;
+
+ the file looks like:
+
+
+ State #6 is non-accepting -
+ associated rule line numbers:
+ 2 3
+ out-transitions: [ o ]
+ jam-transitions: EOF [ \001-n p-\177 ]
+
+ State #8 is non-accepting -
+ associated rule line numbers:
+ 3
+ out-transitions: [ a ]
+ jam-transitions: EOF [ \001-` b-\177 ]
+
+ State #9 is non-accepting -
+ associated rule line numbers:
+ 3
+ out-transitions: [ r ]
+ jam-transitions: EOF [ \001-q s-\177 ]
+
+ Compressed tables always back up.
+
+ The first few lines tell us that there's a scanner state in which it
+can make a transition on an 'o' but not on any other character, and
+that in that state the currently scanned text does not match any rule.
+The state occurs when trying to match the rules found at lines 2 and 3
+in the input file. If the scanner is in that state and then reads
+something other than an 'o', it will have to back up to find a rule
+which is matched. With a bit of headscratching one can see that this
+must be the state it's in when it has seen `fo'. When this has
+happened, if anything other than another `o' is seen, the scanner will
+have to back up to simply match the `f' (by the default rule).
+
+ The comment regarding State #8 indicates there's a problem when
+`foob' has been scanned. Indeed, on any character other than an `a',
+the scanner will have to back up to accept "foo". Similarly, the
+comment for State #9 concerns when `fooba' has been scanned and an `r'
+does not follow.
+
+ The final comment reminds us that there's no point going to all the
+trouble of removing backing up from the rules unless we're using `-Cf'
+or `-CF', since there's no performance gain doing so with compressed
+scanners.
+
+ The way to remove the backing up is to add "error" rules:
+
+
+ %%
+ foo return TOK_KEYWORD;
+ foobar return TOK_KEYWORD;
+
+ fooba |
+ foob |
+ fo {
+ /* false alarm, not really a keyword */
+ return TOK_ID;
+ }
+
+ Eliminating backing up among a list of keywords can also be done
+using a "catch-all" rule:
+
+
+ %%
+ foo return TOK_KEYWORD;
+ foobar return TOK_KEYWORD;
+
+ [a-z]+ return TOK_ID;
+
+ This is usually the best solution when appropriate.
+
+ Backing up messages tend to cascade. With a complicated set of rules
+it's not uncommon to get hundreds of messages. If one can decipher
+them, though, it often only takes a dozen or so rules to eliminate the
+backing up (though it's easy to make a mistake and have an error rule
+accidentally match a valid token. A possible future `flex' feature
+will be to automatically add rules to eliminate backing up).
+
+ It's important to keep in mind that you gain the benefits of
+eliminating backing up only if you eliminate _every_ instance of
+backing up. Leaving just one means you gain nothing.
+
+ _Variable_ trailing context (where both the leading and trailing
+parts do not have a fixed length) entails almost the same performance
+loss as `REJECT' (i.e., substantial). So when possible a rule like:
+
+
+ %%
+ mouse|rat/(cat|dog) run();
+
+ is better written:
+
+
+ %%
+ mouse/cat|dog run();
+ rat/cat|dog run();
+
+ or as
+
+
+ %%
+ mouse|rat/cat run();
+ mouse|rat/dog run();
+
+ Note that here the special '|' action does _not_ provide any
+savings, and can even make things worse (*note Limitations::).
+
+ Another area where the user can increase a scanner's performance (and
+one that's easier to implement) arises from the fact that the longer the
+tokens matched, the faster the scanner will run. This is because with
+long tokens the processing of most input characters takes place in the
+(short) inner scanning loop, and does not often have to go through the
+additional work of setting up the scanning environment (e.g., `yytext')
+for the action. Recall the scanner for C comments:
+
+
+ %x comment
+ %%
+ int line_num = 1;
+
+ "/*" BEGIN(comment);
+
+ <comment>[^*\n]*
+ <comment>"*"+[^*/\n]*
+ <comment>\n ++line_num;
+ <comment>"*"+"/" BEGIN(INITIAL);
+
+ This could be sped up by writing it as:
+
+
+ %x comment
+ %%
+ int line_num = 1;
+
+ "/*" BEGIN(comment);
+
+ <comment>[^*\n]*
+ <comment>[^*\n]*\n ++line_num;
+ <comment>"*"+[^*/\n]*
+ <comment>"*"+[^*/\n]*\n ++line_num;
+ <comment>"*"+"/" BEGIN(INITIAL);
+
+ Now instead of each newline requiring the processing of another
+action, recognizing the newlines is distributed over the other rules to
+keep the matched text as long as possible. Note that _adding_ rules
+does _not_ slow down the scanner! The speed of the scanner is
+independent of the number of rules or (modulo the considerations given
+at the beginning of this section) how complicated the rules are with
+regard to operators such as `*' and `|'.
+
+ A final example in speeding up a scanner: suppose you want to scan
+through a file containing identifiers and keywords, one per line and
+with no other extraneous characters, and recognize all the keywords. A
+natural first approach is:
+
+
+ %%
+ asm |
+ auto |
+ break |
+ ... etc ...
+ volatile |
+ while /* it's a keyword */
+
+ .|\n /* it's not a keyword */
+
+ To eliminate the back-tracking, introduce a catch-all rule:
+
+
+ %%
+ asm |
+ auto |
+ break |
+ ... etc ...
+ volatile |
+ while /* it's a keyword */
+
+ [a-z]+ |
+ .|\n /* it's not a keyword */
+
+ Now, if it's guaranteed that there's exactly one word per line, then
+we can reduce the total number of matches by a half by merging in the
+recognition of newlines with that of the other tokens:
+
+
+ %%
+ asm\n |
+ auto\n |
+ break\n |
+ ... etc ...
+ volatile\n |
+ while\n /* it's a keyword */
+
+ [a-z]+\n |
+ .|\n /* it's not a keyword */
+
+ One has to be careful here, as we have now reintroduced backing up
+into the scanner. In particular, while _we_ know that there will never
+be any characters in the input stream other than letters or newlines,
+`flex' can't figure this out, and it will plan for possibly needing to
+back up when it has scanned a token like `auto' and then the next
+character is something other than a newline or a letter. Previously it
+would then just match the `auto' rule and be done, but now it has no
+`auto' rule, only a `auto\n' rule. To eliminate the possibility of
+backing up, we could either duplicate all rules but without final
+newlines, or, since we never expect to encounter such an input and
+therefore don't how it's classified, we can introduce one more
+catch-all rule, this one which doesn't include a newline:
+
+
+ %%
+ asm\n |
+ auto\n |
+ break\n |
+ ... etc ...
+ volatile\n |
+ while\n /* it's a keyword */
+
+ [a-z]+\n |
+ [a-z]+ |
+ .|\n /* it's not a keyword */
+
+ Compiled with `-Cf', this is about as fast as one can get a `flex'
+scanner to go for this particular problem.
+
+ A final note: `flex' is slow when matching `NUL's, particularly when
+a token contains multiple `NUL's. It's best to write rules which match
+_short_ amounts of text if it's anticipated that the text will often
+include `NUL's.
+
+ Another final note regarding performance: as mentioned in *Note
+Matching::, dynamically resizing `yytext' to accommodate huge tokens is
+a slow process because it presently requires that the (huge) token be
+rescanned from the beginning. Thus if performance is vital, you should
+attempt to match "large" quantities of text but not "huge" quantities,
+where the cutoff between the two is at about 8K characters per token.
+
+
+File: flex.info, Node: Cxx, Next: Reentrant, Prev: Performance, Up: Top
+
+18 Generating C++ Scanners
+**************************
+
+*IMPORTANT*: the present form of the scanning class is _experimental_
+and may change considerably between major releases.
+
+ `flex' provides two different ways to generate scanners for use with
+C++. The first way is to simply compile a scanner generated by `flex'
+using a C++ compiler instead of a C compiler. You should not encounter
+any compilation errors (*note Reporting Bugs::). You can then use C++
+code in your rule actions instead of C code. Note that the default
+input source for your scanner remains `yyin', and default echoing is
+still done to `yyout'. Both of these remain `FILE *' variables and not
+C++ _streams_.
+
+ You can also use `flex' to generate a C++ scanner class, using the
+`-+' option (or, equivalently, `%option c++)', which is automatically
+specified if the name of the `flex' executable ends in a '+', such as
+`flex++'. When using this option, `flex' defaults to generating the
+scanner to the file `lex.yy.cc' instead of `lex.yy.c'. The generated
+scanner includes the header file `FlexLexer.h', which defines the
+interface to two C++ classes.
+
+ The first class, `FlexLexer', provides an abstract base class
+defining the general scanner class interface. It provides the
+following member functions:
+
+`const char* YYText()'
+ returns the text of the most recently matched token, the
+ equivalent of `yytext'.
+
+`int YYLeng()'
+ returns the length of the most recently matched token, the
+ equivalent of `yyleng'.
+
+`int lineno() const'
+ returns the current input line number (see `%option yylineno)', or
+ `1' if `%option yylineno' was not used.
+
+`void set_debug( int flag )'
+ sets the debugging flag for the scanner, equivalent to assigning to
+ `yy_flex_debug' (*note Scanner Options::). Note that you must
+ build the scanner using `%option debug' to include debugging
+ information in it.
+
+`int debug() const'
+ returns the current setting of the debugging flag.
+
+ Also provided are member functions equivalent to
+`yy_switch_to_buffer()', `yy_create_buffer()' (though the first
+argument is an `istream*' object pointer and not a `FILE*)',
+`yy_flush_buffer()', `yy_delete_buffer()', and `yyrestart()' (again,
+the first argument is a `istream*' object pointer).
+
+ The second class defined in `FlexLexer.h' is `yyFlexLexer', which is
+derived from `FlexLexer'. It defines the following additional member
+functions:
+
+`yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 )'
+ constructs a `yyFlexLexer' object using the given streams for input
+ and output. If not specified, the streams default to `cin' and
+ `cout', respectively.
+
+`virtual int yylex()'
+ performs the same role is `yylex()' does for ordinary `flex'
+ scanners: it scans the input stream, consuming tokens, until a
+ rule's action returns a value. If you derive a subclass `S' from
+ `yyFlexLexer' and want to access the member functions and variables
+ of `S' inside `yylex()', then you need to use `%option
+ yyclass="S"' to inform `flex' that you will be using that subclass
+ instead of `yyFlexLexer'. In this case, rather than generating
+ `yyFlexLexer::yylex()', `flex' generates `S::yylex()' (and also
+ generates a dummy `yyFlexLexer::yylex()' that calls
+ `yyFlexLexer::LexerError()' if called).
+
+`virtual void switch_streams(istream* new_in = 0, ostream* new_out = 0)'
+ reassigns `yyin' to `new_in' (if non-null) and `yyout' to
+ `new_out' (if non-null), deleting the previous input buffer if
+ `yyin' is reassigned.
+
+`int yylex( istream* new_in, ostream* new_out = 0 )'
+ first switches the input streams via `switch_streams( new_in,
+ new_out )' and then returns the value of `yylex()'.
+
+ In addition, `yyFlexLexer' defines the following protected virtual
+functions which you can redefine in derived classes to tailor the
+scanner:
+
+`virtual int LexerInput( char* buf, int max_size )'
+ reads up to `max_size' characters into `buf' and returns the
+ number of characters read. To indicate end-of-input, return 0
+ characters. Note that `interactive' scanners (see the `-B' and
+ `-I' flags in *Note Scanner Options::) define the macro
+ `YY_INTERACTIVE'. If you redefine `LexerInput()' and need to take
+ different actions depending on whether or not the scanner might be
+ scanning an interactive input source, you can test for the
+ presence of this name via `#ifdef' statements.
+
+`virtual void LexerOutput( const char* buf, int size )'
+ writes out `size' characters from the buffer `buf', which, while
+ `NUL'-terminated, may also contain internal `NUL's if the
+ scanner's rules can match text with `NUL's in them.
+
+`virtual void LexerError( const char* msg )'
+ reports a fatal error message. The default version of this
+ function writes the message to the stream `cerr' and exits.
+
+ Note that a `yyFlexLexer' object contains its _entire_ scanning
+state. Thus you can use such objects to create reentrant scanners, but
+see also *Note Reentrant::. You can instantiate multiple instances of
+the same `yyFlexLexer' class, and you can also combine multiple C++
+scanner classes together in the same program using the `-P' option
+discussed above.
+
+ Finally, note that the `%array' feature is not available to C++
+scanner classes; you must use `%pointer' (the default).
+
+ Here is an example of a simple C++ scanner:
+
+
+ // An example of using the flex C++ scanner class.
+
+ %{
+ int mylineno = 0;
+ %}
+
+ string \"[^\n"]+\"
+
+ ws [ \t]+
+
+ alpha [A-Za-z]
+ dig [0-9]
+ name ({alpha}|{dig}|\$)({alpha}|{dig}|[_.\-/$])*
+ num1 [-+]?{dig}+\.?([eE][-+]?{dig}+)?
+ num2 [-+]?{dig}*\.{dig}+([eE][-+]?{dig}+)?
+ number {num1}|{num2}
+
+ %%
+
+ {ws} /* skip blanks and tabs */
+
+ "/*" {
+ int c;
+
+ while((c = yyinput()) != 0)
+ {
+ if(c == '\n')
+ ++mylineno;
+
+ else if(c == @samp{*})
+ {
+ if((c = yyinput()) == '/')
+ break;
+ else
+ unput(c);
+ }
+ }
+ }
+
+ {number} cout "number " YYText() '\n';
+
+ \n mylineno++;
+
+ {name} cout "name " YYText() '\n';
+
+ {string} cout "string " YYText() '\n';
+
+ %%
+
+ int main( int /* argc */, char** /* argv */ )
+ {
+ @code{flex}Lexer* lexer = new yyFlexLexer;
+ while(lexer->yylex() != 0)
+ ;
+ return 0;
+ }
+
+ If you want to create multiple (different) lexer classes, you use the
+`-P' flag (or the `prefix=' option) to rename each `yyFlexLexer' to
+some other `xxFlexLexer'. You then can include `<FlexLexer.h>' in your
+other sources once per lexer class, first renaming `yyFlexLexer' as
+follows:
+
+
+ #undef yyFlexLexer
+ #define yyFlexLexer xxFlexLexer
+ #include <FlexLexer.h>
+
+ #undef yyFlexLexer
+ #define yyFlexLexer zzFlexLexer
+ #include <FlexLexer.h>
+
+ if, for example, you used `%option prefix="xx"' for one of your
+scanners and `%option prefix="zz"' for the other.
+
+
+File: flex.info, Node: Reentrant, Next: Lex and Posix, Prev: Cxx, Up: Top
+
+19 Reentrant C Scanners
+***********************
+
+`flex' has the ability to generate a reentrant C scanner. This is
+accomplished by specifying `%option reentrant' (`-R') The generated
+scanner is both portable, and safe to use in one or more separate
+threads of control. The most common use for reentrant scanners is from
+within multi-threaded applications. Any thread may create and execute
+a reentrant `flex' scanner without the need for synchronization with
+other threads.
+
+* Menu:
+
+* Reentrant Uses::
+* Reentrant Overview::
+* Reentrant Example::
+* Reentrant Detail::
+* Reentrant Functions::
+
+
+File: flex.info, Node: Reentrant Uses, Next: Reentrant Overview, Prev: Reentrant, Up: Reentrant
+
+19.1 Uses for Reentrant Scanners
+================================
+
+However, there are other uses for a reentrant scanner. For example, you
+could scan two or more files simultaneously to implement a `diff' at
+the token level (i.e., instead of at the character level):
+
+
+ /* Example of maintaining more than one active scanner. */
+
+ do {
+ int tok1, tok2;
+
+ tok1 = yylex( scanner_1 );
+ tok2 = yylex( scanner_2 );
+
+ if( tok1 != tok2 )
+ printf("Files are different.");
+
+ } while ( tok1 && tok2 );
+
+ Another use for a reentrant scanner is recursion. (Note that a
+recursive scanner can also be created using a non-reentrant scanner and
+buffer states. *Note Multiple Input Buffers::.)
+
+ The following crude scanner supports the `eval' command by invoking
+another instance of itself.
+
+
+ /* Example of recursive invocation. */
+
+ %option reentrant
+
+ %%
+ "eval(".+")" {
+ yyscan_t scanner;
+ YY_BUFFER_STATE buf;
+
+ yylex_init( &scanner );
+ yytext[yyleng-1] = ' ';
+
+ buf = yy_scan_string( yytext + 5, scanner );
+ yylex( scanner );
+
+ yy_delete_buffer(buf,scanner);
+ yylex_destroy( scanner );
+ }
+ ...
+ %%
+
+
+File: flex.info, Node: Reentrant Overview, Next: Reentrant Example, Prev: Reentrant Uses, Up: Reentrant
+
+19.2 An Overview of the Reentrant API
+=====================================
+
+The API for reentrant scanners is different than for non-reentrant
+scanners. Here is a quick overview of the API:
+
+ `%option reentrant' must be specified.
+
+ * All functions take one additional argument: `yyscanner'
+
+ * All global variables are replaced by their macro equivalents. (We
+ tell you this because it may be important to you during debugging.)
+
+ * `yylex_init' and `yylex_destroy' must be called before and after
+ `yylex', respectively.
+
+ * Accessor methods (get/set functions) provide access to common
+ `flex' variables.
+
+ * User-specific data can be stored in `yyextra'.
+
+
+File: flex.info, Node: Reentrant Example, Next: Reentrant Detail, Prev: Reentrant Overview, Up: Reentrant
+
+19.3 Reentrant Example
+======================
+
+First, an example of a reentrant scanner:
+
+ /* This scanner prints "//" comments. */
+
+ %option reentrant stack noyywrap
+ %x COMMENT
+
+ %%
+
+ "//" yy_push_state( COMMENT, yyscanner);
+ .|\n
+
+ <COMMENT>\n yy_pop_state( yyscanner );
+ <COMMENT>[^\n]+ fprintf( yyout, "%s\n", yytext);
+
+ %%
+
+ int main ( int argc, char * argv[] )
+ {
+ yyscan_t scanner;
+
+ yylex_init ( &scanner );
+ yylex ( scanner );
+ yylex_destroy ( scanner );
+ return 0;
+ }
+
+
+File: flex.info, Node: Reentrant Detail, Next: Reentrant Functions, Prev: Reentrant Example, Up: Reentrant
+
+19.4 The Reentrant API in Detail
+================================
+
+Here are the things you need to do or know to use the reentrant C API of
+`flex'.
+
+* Menu:
+
+* Specify Reentrant::
+* Extra Reentrant Argument::
+* Global Replacement::
+* Init and Destroy Functions::
+* Accessor Methods::
+* Extra Data::
+* About yyscan_t::
+
+
+File: flex.info, Node: Specify Reentrant, Next: Extra Reentrant Argument, Prev: Reentrant Detail, Up: Reentrant Detail
+
+19.4.1 Declaring a Scanner As Reentrant
+---------------------------------------
+
+%option reentrant (-reentrant) must be specified.
+
+ Notice that `%option reentrant' is specified in the above example
+(*note Reentrant Example::. Had this option not been specified, `flex'
+would have happily generated a non-reentrant scanner without
+complaining. You may explicitly specify `%option noreentrant', if you
+do _not_ want a reentrant scanner, although it is not necessary. The
+default is to generate a non-reentrant scanner.
+
+
+File: flex.info, Node: Extra Reentrant Argument, Next: Global Replacement, Prev: Specify Reentrant, Up: Reentrant Detail
+
+19.4.2 The Extra Argument
+-------------------------
+
+All functions take one additional argument: `yyscanner'.
+
+ Notice that the calls to `yy_push_state' and `yy_pop_state' both
+have an argument, `yyscanner' , that is not present in a non-reentrant
+scanner. Here are the declarations of `yy_push_state' and
+`yy_pop_state' in the reentrant scanner:
+
+
+ static void yy_push_state ( int new_state , yyscan_t yyscanner ) ;
+ static void yy_pop_state ( yyscan_t yyscanner ) ;
+
+ Notice that the argument `yyscanner' appears in the declaration of
+both functions. In fact, all `flex' functions in a reentrant scanner
+have this additional argument. It is always the last argument in the
+argument list, it is always of type `yyscan_t' (which is typedef'd to
+`void *') and it is always named `yyscanner'. As you may have guessed,
+`yyscanner' is a pointer to an opaque data structure encapsulating the
+current state of the scanner. For a list of function declarations, see
+*Note Reentrant Functions::. Note that preprocessor macros, such as
+`BEGIN', `ECHO', and `REJECT', do not take this additional argument.
+
+
+File: flex.info, Node: Global Replacement, Next: Init and Destroy Functions, Prev: Extra Reentrant Argument, Up: Reentrant Detail
+
+19.4.3 Global Variables Replaced By Macros
+------------------------------------------
+
+All global variables in traditional flex have been replaced by macro
+equivalents.
+
+ Note that in the above example, `yyout' and `yytext' are not plain
+variables. These are macros that will expand to their equivalent lvalue.
+All of the familiar `flex' globals have been replaced by their macro
+equivalents. In particular, `yytext', `yyleng', `yylineno', `yyin',
+`yyout', `yyextra', `yylval', and `yylloc' are macros. You may safely
+use these macros in actions as if they were plain variables. We only
+tell you this so you don't expect to link to these variables
+externally. Currently, each macro expands to a member of an internal
+struct, e.g.,
+
+
+ #define yytext (((struct yyguts_t*)yyscanner)->yytext_r)
+
+ One important thing to remember about `yytext' and friends is that
+`yytext' is not a global variable in a reentrant scanner, you can not
+access it directly from outside an action or from other functions. You
+must use an accessor method, e.g., `yyget_text', to accomplish this.
+(See below).
+
+
+File: flex.info, Node: Init and Destroy Functions, Next: Accessor Methods, Prev: Global Replacement, Up: Reentrant Detail
+
+19.4.4 Init and Destroy Functions
+---------------------------------
+
+`yylex_init' and `yylex_destroy' must be called before and after
+`yylex', respectively.
+
+
+ int yylex_init ( yyscan_t * ptr_yy_globals ) ;
+ int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t * ptr_yy_globals ) ;
+ int yylex ( yyscan_t yyscanner ) ;
+ int yylex_destroy ( yyscan_t yyscanner ) ;
+
+ The function `yylex_init' must be called before calling any other
+function. The argument to `yylex_init' is the address of an
+uninitialized pointer to be filled in by `yylex_init', overwriting any
+previous contents. The function `yylex_init_extra' may be used instead,
+taking as its first argument a variable of type `YY_EXTRA_TYPE'. See
+the section on yyextra, below, for more details.
+
+ The value stored in `ptr_yy_globals' should thereafter be passed to
+`yylex' and `yylex_destroy'. Flex does not save the argument passed to
+`yylex_init', so it is safe to pass the address of a local pointer to
+`yylex_init' so long as it remains in scope for the duration of all
+calls to the scanner, up to and including the call to `yylex_destroy'.
+
+ The function `yylex' should be familiar to you by now. The reentrant
+version takes one argument, which is the value returned (via an
+argument) by `yylex_init'. Otherwise, it behaves the same as the
+non-reentrant version of `yylex'.
+
+ Both `yylex_init' and `yylex_init_extra' returns 0 (zero) on success,
+or non-zero on failure, in which case errno is set to one of the
+following values:
+
+ * ENOMEM Memory allocation error. *Note memory-management::.
+
+ * EINVAL Invalid argument.
+
+ The function `yylex_destroy' should be called to free resources used
+by the scanner. After `yylex_destroy' is called, the contents of
+`yyscanner' should not be used. Of course, there is no need to destroy
+a scanner if you plan to reuse it. A `flex' scanner (both reentrant
+and non-reentrant) may be restarted by calling `yyrestart'.
+
+ Below is an example of a program that creates a scanner, uses it,
+then destroys it when done:
+
+
+ int main ()
+ {
+ yyscan_t scanner;
+ int tok;
+
+ yylex_init(&scanner);
+
+ while ((tok=yylex()) > 0)
+ printf("tok=%d yytext=%s\n", tok, yyget_text(scanner));
+
+ yylex_destroy(scanner);
+ return 0;
+ }
+
+
+File: flex.info, Node: Accessor Methods, Next: Extra Data, Prev: Init and Destroy Functions, Up: Reentrant Detail
+
+19.4.5 Accessing Variables with Reentrant Scanners
+--------------------------------------------------
+
+Accessor methods (get/set functions) provide access to common `flex'
+variables.
+
+ Many scanners that you build will be part of a larger project.
+Portions of your project will need access to `flex' values, such as
+`yytext'. In a non-reentrant scanner, these values are global, so
+there is no problem accessing them. However, in a reentrant scanner,
+there are no global `flex' values. You can not access them directly.
+Instead, you must access `flex' values using accessor methods (get/set
+functions). Each accessor method is named `yyget_NAME' or `yyset_NAME',
+where `NAME' is the name of the `flex' variable you want. For example:
+
+
+ /* Set the last character of yytext to NULL. */
+ void chop ( yyscan_t scanner )
+ {
+ int len = yyget_leng( scanner );
+ yyget_text( scanner )[len - 1] = '\0';
+ }
+
+ The above code may be called from within an action like this:
+
+
+ %%
+ .+\n { chop( yyscanner );}
+
+ You may find that `%option header-file' is particularly useful for
+generating prototypes of all the accessor functions. *Note
+option-header::.
+
+
+File: flex.info, Node: Extra Data, Next: About yyscan_t, Prev: Accessor Methods, Up: Reentrant Detail
+
+19.4.6 Extra Data
+-----------------
+
+User-specific data can be stored in `yyextra'.
+
+ In a reentrant scanner, it is unwise to use global variables to
+communicate with or maintain state between different pieces of your
+program. However, you may need access to external data or invoke
+external functions from within the scanner actions. Likewise, you may
+need to pass information to your scanner (e.g., open file descriptors,
+or database connections). In a non-reentrant scanner, the only way to
+do this would be through the use of global variables. `Flex' allows
+you to store arbitrary, "extra" data in a scanner. This data is
+accessible through the accessor methods `yyget_extra' and `yyset_extra'
+from outside the scanner, and through the shortcut macro `yyextra' from
+within the scanner itself. They are defined as follows:
+
+
+ #define YY_EXTRA_TYPE void*
+ YY_EXTRA_TYPE yyget_extra ( yyscan_t scanner );
+ void yyset_extra ( YY_EXTRA_TYPE arbitrary_data , yyscan_t scanner);
+
+ In addition, an extra form of `yylex_init' is provided,
+`yylex_init_extra'. This function is provided so that the yyextra value
+can be accessed from within the very first yyalloc, used to allocate
+the scanner itself.
+
+ By default, `YY_EXTRA_TYPE' is defined as type `void *'. You may
+redefine this type using `%option extra-type="your_type"' in the
+scanner:
+
+
+ /* An example of overriding YY_EXTRA_TYPE. */
+ %{
+ #include <sys/stat.h>
+ #include <unistd.h>
+ %}
+ %option reentrant
+ %option extra-type="struct stat *"
+ %%
+
+ __filesize__ printf( "%ld", yyextra->st_size );
+ __lastmod__ printf( "%ld", yyextra->st_mtime );
+ %%
+ void scan_file( char* filename )
+ {
+ yyscan_t scanner;
+ struct stat buf;
+ FILE *in;
+
+ in = fopen( filename, "r" );
+ stat( filename, &buf );
+
+ yylex_init_extra( buf, &scanner );
+ yyset_in( in, scanner );
+ yylex( scanner );
+ yylex_destroy( scanner );
+
+ fclose( in );
+ }
+
+
+File: flex.info, Node: About yyscan_t, Prev: Extra Data, Up: Reentrant Detail
+
+19.4.7 About yyscan_t
+---------------------
+
+`yyscan_t' is defined as:
+
+
+ typedef void* yyscan_t;
+
+ It is initialized by `yylex_init()' to point to an internal
+structure. You should never access this value directly. In particular,
+you should never attempt to free it (use `yylex_destroy()' instead.)
+
+
+File: flex.info, Node: Reentrant Functions, Prev: Reentrant Detail, Up: Reentrant
+
+19.5 Functions and Macros Available in Reentrant C Scanners
+===========================================================
+
+The following Functions are available in a reentrant scanner:
+
+
+ char *yyget_text ( yyscan_t scanner );
+ int yyget_leng ( yyscan_t scanner );
+ FILE *yyget_in ( yyscan_t scanner );
+ FILE *yyget_out ( yyscan_t scanner );
+ int yyget_lineno ( yyscan_t scanner );
+ YY_EXTRA_TYPE yyget_extra ( yyscan_t scanner );
+ int yyget_debug ( yyscan_t scanner );
+
+ void yyset_debug ( int flag, yyscan_t scanner );
+ void yyset_in ( FILE * in_str , yyscan_t scanner );
+ void yyset_out ( FILE * out_str , yyscan_t scanner );
+ void yyset_lineno ( int line_number , yyscan_t scanner );
+ void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t scanner );
+
+ There are no "set" functions for yytext and yyleng. This is
+intentional.
+
+ The following Macro shortcuts are available in actions in a reentrant
+scanner:
+
+
+ yytext
+ yyleng
+ yyin
+ yyout
+ yylineno
+ yyextra
+ yy_flex_debug
+
+ In a reentrant C scanner, support for yylineno is always present
+(i.e., you may access yylineno), but the value is never modified by
+`flex' unless `%option yylineno' is enabled. This is to allow the user
+to maintain the line count independently of `flex'.
+
+ The following functions and macros are made available when `%option
+bison-bridge' (`--bison-bridge') is specified:
+
+
+ YYSTYPE * yyget_lval ( yyscan_t scanner );
+ void yyset_lval ( YYSTYPE * yylvalp , yyscan_t scanner );
+ yylval
+
+ The following functions and macros are made available when `%option
+bison-locations' (`--bison-locations') is specified:
+
+
+ YYLTYPE *yyget_lloc ( yyscan_t scanner );
+ void yyset_lloc ( YYLTYPE * yyllocp , yyscan_t scanner );
+ yylloc
+
+ Support for yylval assumes that `YYSTYPE' is a valid type. Support
+for yylloc assumes that `YYSLYPE' is a valid type. Typically, these
+types are generated by `bison', and are included in section 1 of the
+`flex' input.
+
+
+File: flex.info, Node: Lex and Posix, Next: Memory Management, Prev: Reentrant, Up: Top
+
+20 Incompatibilities with Lex and Posix
+***************************************
+
+`flex' is a rewrite of the AT&T Unix _lex_ tool (the two
+implementations do not share any code, though), with some extensions and
+incompatibilities, both of which are of concern to those who wish to
+write scanners acceptable to both implementations. `flex' is fully
+compliant with the POSIX `lex' specification, except that when using
+`%pointer' (the default), a call to `unput()' destroys the contents of
+`yytext', which is counter to the POSIX specification. In this section
+we discuss all of the known areas of incompatibility between `flex',
+AT&T `lex', and the POSIX specification. `flex''s `-l' option turns on
+maximum compatibility with the original AT&T `lex' implementation, at
+the cost of a major loss in the generated scanner's performance. We
+note below which incompatibilities can be overcome using the `-l'
+option. `flex' is fully compatible with `lex' with the following
+exceptions:
+
+ * The undocumented `lex' scanner internal variable `yylineno' is not
+ supported unless `-l' or `%option yylineno' is used.
+
+ * `yylineno' should be maintained on a per-buffer basis, rather than
+ a per-scanner (single global variable) basis.
+
+ * `yylineno' is not part of the POSIX specification.
+
+ * The `input()' routine is not redefinable, though it may be called
+ to read characters following whatever has been matched by a rule.
+ If `input()' encounters an end-of-file the normal `yywrap()'
+ processing is done. A "real" end-of-file is returned by `input()'
+ as `EOF'.
+
+ * Input is instead controlled by defining the `YY_INPUT()' macro.
+
+ * The `flex' restriction that `input()' cannot be redefined is in
+ accordance with the POSIX specification, which simply does not
+ specify any way of controlling the scanner's input other than by
+ making an initial assignment to `yyin'.
+
+ * The `unput()' routine is not redefinable. This restriction is in
+ accordance with POSIX.
+
+ * `flex' scanners are not as reentrant as `lex' scanners. In
+ particular, if you have an interactive scanner and an interrupt
+ handler which long-jumps out of the scanner, and the scanner is
+ subsequently called again, you may get the following message:
+
+
+ fatal @code{flex} scanner internal error--end of buffer missed
+
+ To reenter the scanner, first use:
+
+
+ yyrestart( yyin );
+
+ Note that this call will throw away any buffered input; usually
+ this isn't a problem with an interactive scanner. *Note
+ Reentrant::, for `flex''s reentrant API.
+
+ * Also note that `flex' C++ scanner classes _are_ reentrant, so if
+ using C++ is an option for you, you should use them instead.
+ *Note Cxx::, and *Note Reentrant:: for details.
+
+ * `output()' is not supported. Output from the ECHO macro is done
+ to the file-pointer `yyout' (default `stdout)'.
+
+ * `output()' is not part of the POSIX specification.
+
+ * `lex' does not support exclusive start conditions (%x), though they
+ are in the POSIX specification.
+
+ * When definitions are expanded, `flex' encloses them in parentheses.
+ With `lex', the following:
+
+
+ NAME [A-Z][A-Z0-9]*
+ %%
+ foo{NAME}? printf( "Found it\n" );
+ %%
+
+ will not match the string `foo' because when the macro is expanded
+ the rule is equivalent to `foo[A-Z][A-Z0-9]*?' and the precedence
+ is such that the `?' is associated with `[A-Z0-9]*'. With `flex',
+ the rule will be expanded to `foo([A-Z][A-Z0-9]*)?' and so the
+ string `foo' will match.
+
+ * Note that if the definition begins with `^' or ends with `$' then
+ it is _not_ expanded with parentheses, to allow these operators to
+ appear in definitions without losing their special meanings. But
+ the `<s>', `/', and `<<EOF>>' operators cannot be used in a `flex'
+ definition.
+
+ * Using `-l' results in the `lex' behavior of no parentheses around
+ the definition.
+
+ * The POSIX specification is that the definition be enclosed in
+ parentheses.
+
+ * Some implementations of `lex' allow a rule's action to begin on a
+ separate line, if the rule's pattern has trailing whitespace:
+
+
+ %%
+ foo|bar<space here>
+ { foobar_action();}
+
+ `flex' does not support this feature.
+
+ * The `lex' `%r' (generate a Ratfor scanner) option is not
+ supported. It is not part of the POSIX specification.
+
+ * After a call to `unput()', _yytext_ is undefined until the next
+ token is matched, unless the scanner was built using `%array'.
+ This is not the case with `lex' or the POSIX specification. The
+ `-l' option does away with this incompatibility.
+
+ * The precedence of the `{,}' (numeric range) operator is different.
+ The AT&T and POSIX specifications of `lex' interpret `abc{1,3}'
+ as match one, two, or three occurrences of `abc'", whereas `flex'
+ interprets it as "match `ab' followed by one, two, or three
+ occurrences of `c'". The `-l' and `--posix' options do away with
+ this incompatibility.
+
+ * The precedence of the `^' operator is different. `lex' interprets
+ `^foo|bar' as "match either 'foo' at the beginning of a line, or
+ 'bar' anywhere", whereas `flex' interprets it as "match either
+ `foo' or `bar' if they come at the beginning of a line". The
+ latter is in agreement with the POSIX specification.
+
+ * The special table-size declarations such as `%a' supported by
+ `lex' are not required by `flex' scanners.. `flex' ignores them.
+
+ * The name `FLEX_SCANNER' is `#define''d so scanners may be written
+ for use with either `flex' or `lex'. Scanners also include
+ `YY_FLEX_MAJOR_VERSION', `YY_FLEX_MINOR_VERSION' and
+ `YY_FLEX_SUBMINOR_VERSION' indicating which version of `flex'
+ generated the scanner. For example, for the 2.5.22 release, these
+ defines would be 2, 5 and 22 respectively. If the version of
+ `flex' being used is a beta version, then the symbol `FLEX_BETA'
+ is defined.
+
+ * The symbols `[[' and `]]' in the code sections of the input may
+ conflict with the m4 delimiters. *Note M4 Dependency::.
+
+
+ The following `flex' features are not included in `lex' or the POSIX
+specification:
+
+ * C++ scanners
+
+ * %option
+
+ * start condition scopes
+
+ * start condition stacks
+
+ * interactive/non-interactive scanners
+
+ * yy_scan_string() and friends
+
+ * yyterminate()
+
+ * yy_set_interactive()
+
+ * yy_set_bol()
+
+ * YY_AT_BOL() <<EOF>>
+
+ * <*>
+
+ * YY_DECL
+
+ * YY_START
+
+ * YY_USER_ACTION
+
+ * YY_USER_INIT
+
+ * #line directives
+
+ * %{}'s around actions
+
+ * reentrant C API
+
+ * multiple actions on a line
+
+ * almost all of the `flex' command-line options
+
+ The feature "multiple actions on a line" refers to the fact that
+with `flex' you can put multiple actions on the same line, separated
+with semi-colons, while with `lex', the following:
+
+
+ foo handle_foo(); ++num_foos_seen;
+
+ is (rather surprisingly) truncated to
+
+
+ foo handle_foo();
+
+ `flex' does not truncate the action. Actions that are not enclosed
+in braces are simply terminated at the end of the line.
+
+
+File: flex.info, Node: Memory Management, Next: Serialized Tables, Prev: Lex and Posix, Up: Top
+
+21 Memory Management
+********************
+
+This chapter describes how flex handles dynamic memory, and how you can
+override the default behavior.
+
+* Menu:
+
+* The Default Memory Management::
+* Overriding The Default Memory Management::
+* A Note About yytext And Memory::
+
+
+File: flex.info, Node: The Default Memory Management, Next: Overriding The Default Memory Management, Prev: Memory Management, Up: Memory Management
+
+21.1 The Default Memory Management
+==================================
+
+Flex allocates dynamic memory during initialization, and once in a
+while from within a call to yylex(). Initialization takes place during
+the first call to yylex(). Thereafter, flex may reallocate more memory
+if it needs to enlarge a buffer. As of version 2.5.9 Flex will clean up
+all memory when you call `yylex_destroy' *Note faq-memory-leak::.
+
+ Flex allocates dynamic memory for four purposes, listed below (1)
+
+16kB for the input buffer.
+ Flex allocates memory for the character buffer used to perform
+ pattern matching. Flex must read ahead from the input stream and
+ store it in a large character buffer. This buffer is typically
+ the largest chunk of dynamic memory flex consumes. This buffer
+ will grow if necessary, doubling the size each time. Flex frees
+ this memory when you call yylex_destroy(). The default size of
+ this buffer (16384 bytes) is almost always too large. The ideal
+ size for this buffer is the length of the longest token expected,
+ in bytes, plus a little more. Flex will allocate a few extra
+ bytes for housekeeping. Currently, to override the size of the
+ input buffer you must `#define YY_BUF_SIZE' to whatever number of
+ bytes you want. We don't plan to change this in the near future,
+ but we reserve the right to do so if we ever add a more robust
+ memory management API.
+
+64kb for the REJECT state. This will only be allocated if you use REJECT.
+ The size is the large enough to hold the same number of states as
+ characters in the input buffer. If you override the size of the
+ input buffer (via `YY_BUF_SIZE'), then you automatically override
+ the size of this buffer as well.
+
+100 bytes for the start condition stack.
+ Flex allocates memory for the start condition stack. This is the
+ stack used for pushing start states, i.e., with yy_push_state().
+ It will grow if necessary. Since the states are simply integers,
+ this stack doesn't consume much memory. This stack is not present
+ if `%option stack' is not specified. You will rarely need to tune
+ this buffer. The ideal size for this stack is the maximum depth
+ expected. The memory for this stack is automatically destroyed
+ when you call yylex_destroy(). *Note option-stack::.
+
+40 bytes for each YY_BUFFER_STATE.
+ Flex allocates memory for each YY_BUFFER_STATE. The buffer state
+ itself is about 40 bytes, plus an additional large character
+ buffer (described above.) The initial buffer state is created
+ during initialization, and with each call to yy_create_buffer().
+ You can't tune the size of this, but you can tune the character
+ buffer as described above. Any buffer state that you explicitly
+ create by calling yy_create_buffer() is _NOT_ destroyed
+ automatically. You must call yy_delete_buffer() to free the
+ memory. The exception to this rule is that flex will delete the
+ current buffer automatically when you call yylex_destroy(). If you
+ delete the current buffer, be sure to set it to NULL. That way,
+ flex will not try to delete the buffer a second time (possibly
+ crashing your program!) At the time of this writing, flex does not
+ provide a growable stack for the buffer states. You have to
+ manage that yourself. *Note Multiple Input Buffers::.
+
+84 bytes for the reentrant scanner guts
+ Flex allocates about 84 bytes for the reentrant scanner structure
+ when you call yylex_init(). It is destroyed when the user calls
+ yylex_destroy().
+
+
+ ---------- Footnotes ----------
+
+ (1) The quantities given here are approximate, and may vary due to
+host architecture, compiler configuration, or due to future
+enhancements to flex.
+
+
+File: flex.info, Node: Overriding The Default Memory Management, Next: A Note About yytext And Memory, Prev: The Default Memory Management, Up: Memory Management
+
+21.2 Overriding The Default Memory Management
+=============================================
+
+Flex calls the functions `yyalloc', `yyrealloc', and `yyfree' when it
+needs to allocate or free memory. By default, these functions are
+wrappers around the standard C functions, `malloc', `realloc', and
+`free', respectively. You can override the default implementations by
+telling flex that you will provide your own implementations.
+
+ To override the default implementations, you must do two things:
+
+ 1. Suppress the default implementations by specifying one or more of
+ the following options:
+
+ * `%option noyyalloc'
+
+ * `%option noyyrealloc'
+
+ * `%option noyyfree'.
+
+ 2. Provide your own implementation of the following functions: (1)
+
+
+ // For a non-reentrant scanner
+ void * yyalloc (size_t bytes);
+ void * yyrealloc (void * ptr, size_t bytes);
+ void yyfree (void * ptr);
+
+ // For a reentrant scanner
+ void * yyalloc (size_t bytes, void * yyscanner);
+ void * yyrealloc (void * ptr, size_t bytes, void * yyscanner);
+ void yyfree (void * ptr, void * yyscanner);
+
+
+ In the following example, we will override all three memory
+routines. We assume that there is a custom allocator with garbage
+collection. In order to make this example interesting, we will use a
+reentrant scanner, passing a pointer to the custom allocator through
+`yyextra'.
+
+
+ %{
+ #include "some_allocator.h"
+ %}
+
+ /* Suppress the default implementations. */
+ %option noyyalloc noyyrealloc noyyfree
+ %option reentrant
+
+ /* Initialize the allocator. */
+ #define YY_EXTRA_TYPE struct allocator*
+ #define YY_USER_INIT yyextra = allocator_create();
+
+ %%
+ .|\n ;
+ %%
+
+ /* Provide our own implementations. */
+ void * yyalloc (size_t bytes, void* yyscanner) {
+ return allocator_alloc (yyextra, bytes);
+ }
+
+ void * yyrealloc (void * ptr, size_t bytes, void* yyscanner) {
+ return allocator_realloc (yyextra, bytes);
+ }
+
+ void yyfree (void * ptr, void * yyscanner) {
+ /* Do nothing -- we leave it to the garbage collector. */
+ }
+
+ ---------- Footnotes ----------
+
+ (1) It is not necessary to override all (or any) of the memory
+management routines. You may, for example, override `yyrealloc', but
+not `yyfree' or `yyalloc'.
+
+
+File: flex.info, Node: A Note About yytext And Memory, Prev: Overriding The Default Memory Management, Up: Memory Management
+
+21.3 A Note About yytext And Memory
+===================================
+
+When flex finds a match, `yytext' points to the first character of the
+match in the input buffer. The string itself is part of the input
+buffer, and is _NOT_ allocated separately. The value of yytext will be
+overwritten the next time yylex() is called. In short, the value of
+yytext is only valid from within the matched rule's action.
+
+ Often, you want the value of yytext to persist for later processing,
+i.e., by a parser with non-zero lookahead. In order to preserve yytext,
+you will have to copy it with strdup() or a similar function. But this
+introduces some headache because your parser is now responsible for
+freeing the copy of yytext. If you use a yacc or bison parser,
+(commonly used with flex), you will discover that the error recovery
+mechanisms can cause memory to be leaked.
+
+ To prevent memory leaks from strdup'd yytext, you will have to track
+the memory somehow. Our experience has shown that a garbage collection
+mechanism or a pooled memory mechanism will save you a lot of grief
+when writing parsers.
+
+
+File: flex.info, Node: Serialized Tables, Next: Diagnostics, Prev: Memory Management, Up: Top
+
+22 Serialized Tables
+********************
+
+A `flex' scanner has the ability to save the DFA tables to a file, and
+load them at runtime when needed. The motivation for this feature is
+to reduce the runtime memory footprint. Traditionally, these tables
+have been compiled into the scanner as C arrays, and are sometimes
+quite large. Since the tables are compiled into the scanner, the
+memory used by the tables can never be freed. This is a waste of
+memory, especially if an application uses several scanners, but none of
+them at the same time.
+
+ The serialization feature allows the tables to be loaded at runtime,
+before scanning begins. The tables may be discarded when scanning is
+finished.
+
+* Menu:
+
+* Creating Serialized Tables::
+* Loading and Unloading Serialized Tables::
+* Tables File Format::
+
+
+File: flex.info, Node: Creating Serialized Tables, Next: Loading and Unloading Serialized Tables, Prev: Serialized Tables, Up: Serialized Tables
+
+22.1 Creating Serialized Tables
+===============================
+
+You may create a scanner with serialized tables by specifying:
+
+
+ %option tables-file=FILE
+ or
+ --tables-file=FILE
+
+ These options instruct flex to save the DFA tables to the file FILE.
+The tables will _not_ be embedded in the generated scanner. The scanner
+will not function on its own. The scanner will be dependent upon the
+serialized tables. You must load the tables from this file at runtime
+before you can scan anything.
+
+ If you do not specify a filename to `--tables-file', the tables will
+be saved to `lex.yy.tables', where `yy' is the appropriate prefix.
+
+ If your project uses several different scanners, you can concatenate
+the serialized tables into one file, and flex will find the correct set
+of tables, using the scanner prefix as part of the lookup key. An
+example follows:
+
+
+ $ flex --tables-file --prefix=cpp cpp.l
+ $ flex --tables-file --prefix=c c.l
+ $ cat lex.cpp.tables lex.c.tables > all.tables
+
+ The above example created two scanners, `cpp', and `c'. Since we did
+not specify a filename, the tables were serialized to `lex.c.tables' and
+`lex.cpp.tables', respectively. Then, we concatenated the two files
+together into `all.tables', which we will distribute with our project.
+At runtime, we will open the file and tell flex to load the tables from
+it. Flex will find the correct tables automatically. (See next
+section).
+
+
+File: flex.info, Node: Loading and Unloading Serialized Tables, Next: Tables File Format, Prev: Creating Serialized Tables, Up: Serialized Tables
+
+22.2 Loading and Unloading Serialized Tables
+============================================
+
+If you've built your scanner with `%option tables-file', then you must
+load the scanner tables at runtime. This can be accomplished with the
+following function:
+
+ -- Function: int yytables_fload (FILE* FP [, yyscan_t SCANNER])
+ Locates scanner tables in the stream pointed to by FP and loads
+ them. Memory for the tables is allocated via `yyalloc'. You must
+ call this function before the first call to `yylex'. The argument
+ SCANNER only appears in the reentrant scanner. This function
+ returns `0' (zero) on success, or non-zero on error.
+
+ The loaded tables are *not* automatically destroyed (unloaded) when
+you call `yylex_destroy'. The reason is that you may create several
+scanners of the same type (in a reentrant scanner), each of which needs
+access to these tables. To avoid a nasty memory leak, you must call
+the following function:
+
+ -- Function: int yytables_destroy ([yyscan_t SCANNER])
+ Unloads the scanner tables. The tables must be loaded again before
+ you can scan any more data. The argument SCANNER only appears in
+ the reentrant scanner. This function returns `0' (zero) on
+ success, or non-zero on error.
+
+ *The functions `yytables_fload' and `yytables_destroy' are not
+thread-safe.* You must ensure that these functions are called exactly
+once (for each scanner type) in a threaded program, before any thread
+calls `yylex'. After the tables are loaded, they are never written to,
+and no thread protection is required thereafter - until you destroy
+them.
+
+
+File: flex.info, Node: Tables File Format, Prev: Loading and Unloading Serialized Tables, Up: Serialized Tables
+
+22.3 Tables File Format
+=======================
+
+This section defines the file format of serialized `flex' tables.
+
+ The tables format allows for one or more sets of tables to be
+specified, where each set corresponds to a given scanner. Scanners are
+indexed by name, as described below. The file format is as follows:
+
+
+ TABLE SET 1
+ +-------------------------------+
+ Header | uint32 th_magic; |
+ | uint32 th_hsize; |
+ | uint32 th_ssize; |
+ | uint16 th_flags; |
+ | char th_version[]; |
+ | char th_name[]; |
+ | uint8 th_pad64[]; |
+ +-------------------------------+
+ Table 1 | uint16 td_id; |
+ | uint16 td_flags; |
+ | uint32 td_lolen; |
+ | uint32 td_hilen; |
+ | void td_data[]; |
+ | uint8 td_pad64[]; |
+ +-------------------------------+
+ Table 2 | |
+ . . .
+ . . .
+ . . .
+ . . .
+ Table n | |
+ +-------------------------------+
+ TABLE SET 2
+ .
+ .
+ .
+ TABLE SET N
+
+ The above diagram shows that a complete set of tables consists of a
+header followed by multiple individual tables. Furthermore, multiple
+complete sets may be present in the same file, each set with its own
+header and tables. The sets are contiguous in the file. The only way to
+know if another set follows is to check the next four bytes for the
+magic number (or check for EOF). The header and tables sections are
+padded to 64-bit boundaries. Below we describe each field in detail.
+This format does not specify how the scanner will expand the given
+data, i.e., data may be serialized as int8, but expanded to an int32
+array at runtime. This is to reduce the size of the serialized data
+where possible. Remember, _all integer values are in network byte
+order_.
+
+Fields of a table header:
+
+`th_magic'
+ Magic number, always 0xF13C57B1.
+
+`th_hsize'
+ Size of this entire header, in bytes, including all fields plus
+ any padding.
+
+`th_ssize'
+ Size of this entire set, in bytes, including the header, all
+ tables, plus any padding.
+
+`th_flags'
+ Bit flags for this table set. Currently unused.
+
+`th_version[]'
+ Flex version in NULL-terminated string format. e.g., `2.5.13a'.
+ This is the version of flex that was used to create the serialized
+ tables.
+
+`th_name[]'
+ Contains the name of this table set. The default is `yytables',
+ and is prefixed accordingly, e.g., `footables'. Must be
+ NULL-terminated.
+
+`th_pad64[]'
+ Zero or more NULL bytes, padding the entire header to the next
+ 64-bit boundary as calculated from the beginning of the header.
+
+Fields of a table:
+
+`td_id'
+ Specifies the table identifier. Possible values are:
+ `YYTD_ID_ACCEPT (0x01)'
+ `yy_accept'
+
+ `YYTD_ID_BASE (0x02)'
+ `yy_base'
+
+ `YYTD_ID_CHK (0x03)'
+ `yy_chk'
+
+ `YYTD_ID_DEF (0x04)'
+ `yy_def'
+
+ `YYTD_ID_EC (0x05)'
+ `yy_ec '
+
+ `YYTD_ID_META (0x06)'
+ `yy_meta'
+
+ `YYTD_ID_NUL_TRANS (0x07)'
+ `yy_NUL_trans'
+
+ `YYTD_ID_NXT (0x08)'
+ `yy_nxt'. This array may be two dimensional. See the
+ `td_hilen' field below.
+
+ `YYTD_ID_RULE_CAN_MATCH_EOL (0x09)'
+ `yy_rule_can_match_eol'
+
+ `YYTD_ID_START_STATE_LIST (0x0A)'
+ `yy_start_state_list'. This array is handled specially
+ because it is an array of pointers to structs. See the
+ `td_flags' field below.
+
+ `YYTD_ID_TRANSITION (0x0B)'
+ `yy_transition'. This array is handled specially because it
+ is an array of structs. See the `td_lolen' field below.
+
+ `YYTD_ID_ACCLIST (0x0C)'
+ `yy_acclist'
+
+`td_flags'
+ Bit flags describing how to interpret the data in `td_data'. The
+ data arrays are one-dimensional by default, but may be two
+ dimensional as specified in the `td_hilen' field.
+
+ `YYTD_DATA8 (0x01)'
+ The data is serialized as an array of type int8.
+
+ `YYTD_DATA16 (0x02)'
+ The data is serialized as an array of type int16.
+
+ `YYTD_DATA32 (0x04)'
+ The data is serialized as an array of type int32.
+
+ `YYTD_PTRANS (0x08)'
+ The data is a list of indexes of entries in the expanded
+ `yy_transition' array. Each index should be expanded to a
+ pointer to the corresponding entry in the `yy_transition'
+ array. We count on the fact that the `yy_transition' array
+ has already been seen.
+
+ `YYTD_STRUCT (0x10)'
+ The data is a list of yy_trans_info structs, each of which
+ consists of two integers. There is no padding between struct
+ elements or between structs. The type of each member is
+ determined by the `YYTD_DATA*' bits.
+
+`td_lolen'
+ Specifies the number of elements in the lowest dimension array. If
+ this is a one-dimensional array, then it is simply the number of
+ elements in this array. The element size is determined by the
+ `td_flags' field.
+
+`td_hilen'
+ If `td_hilen' is non-zero, then the data is a two-dimensional
+ array. Otherwise, the data is a one-dimensional array. `td_hilen'
+ contains the number of elements in the higher dimensional array,
+ and `td_lolen' contains the number of elements in the lowest
+ dimension.
+
+ Conceptually, `td_data' is either `sometype td_data[td_lolen]', or
+ `sometype td_data[td_hilen][td_lolen]', where `sometype' is
+ specified by the `td_flags' field. It is possible for both
+ `td_lolen' and `td_hilen' to be zero, in which case `td_data' is a
+ zero length array, and no data is loaded, i.e., this table is
+ simply skipped. Flex does not currently generate tables of zero
+ length.
+
+`td_data[]'
+ The table data. This array may be a one- or two-dimensional array,
+ of type `int8', `int16', `int32', `struct yy_trans_info', or
+ `struct yy_trans_info*', depending upon the values in the
+ `td_flags', `td_lolen', and `td_hilen' fields.
+
+`td_pad64[]'
+ Zero or more NULL bytes, padding the entire table to the next
+ 64-bit boundary as calculated from the beginning of this table.
+
+
+File: flex.info, Node: Diagnostics, Next: Limitations, Prev: Serialized Tables, Up: Top
+
+23 Diagnostics
+**************
+
+The following is a list of `flex' diagnostic messages:
+
+ * `warning, rule cannot be matched' indicates that the given rule
+ cannot be matched because it follows other rules that will always
+ match the same text as it. For example, in the following `foo'
+ cannot be matched because it comes after an identifier "catch-all"
+ rule:
+
+
+ [a-z]+ got_identifier();
+ foo got_foo();
+
+ Using `REJECT' in a scanner suppresses this warning.
+
+ * `warning, -s option given but default rule can be matched' means
+ that it is possible (perhaps only in a particular start condition)
+ that the default rule (match any single character) is the only one
+ that will match a particular input. Since `-s' was given,
+ presumably this is not intended.
+
+ * `reject_used_but_not_detected undefined' or
+ `yymore_used_but_not_detected undefined'. These errors can occur
+ at compile time. They indicate that the scanner uses `REJECT' or
+ `yymore()' but that `flex' failed to notice the fact, meaning that
+ `flex' scanned the first two sections looking for occurrences of
+ these actions and failed to find any, but somehow you snuck some in
+ (via a #include file, for example). Use `%option reject' or
+ `%option yymore' to indicate to `flex' that you really do use
+ these features.
+
+ * `flex scanner jammed'. a scanner compiled with `-s' has
+ encountered an input string which wasn't matched by any of its
+ rules. This error can also occur due to internal problems.
+
+ * `token too large, exceeds YYLMAX'. your scanner uses `%array' and
+ one of its rules matched a string longer than the `YYLMAX'
+ constant (8K bytes by default). You can increase the value by
+ #define'ing `YYLMAX' in the definitions section of your `flex'
+ input.
+
+ * `scanner requires -8 flag to use the character 'x''. Your scanner
+ specification includes recognizing the 8-bit character `'x'' and
+ you did not specify the -8 flag, and your scanner defaulted to
+ 7-bit because you used the `-Cf' or `-CF' table compression
+ options. See the discussion of the `-7' flag, *Note Scanner
+ Options::, for details.
+
+ * `flex scanner push-back overflow'. you used `unput()' to push back
+ so much text that the scanner's buffer could not hold both the
+ pushed-back text and the current token in `yytext'. Ideally the
+ scanner should dynamically resize the buffer in this case, but at
+ present it does not.
+
+ * `input buffer overflow, can't enlarge buffer because scanner uses
+ REJECT'. the scanner was working on matching an extremely large
+ token and needed to expand the input buffer. This doesn't work
+ with scanners that use `REJECT'.
+
+ * `fatal flex scanner internal error--end of buffer missed'. This can
+ occur in a scanner which is reentered after a long-jump has jumped
+ out (or over) the scanner's activation frame. Before reentering
+ the scanner, use:
+
+ yyrestart( yyin );
+ or, as noted above, switch to using the C++ scanner class.
+
+ * `too many start conditions in <> construct!' you listed more start
+ conditions in a <> construct than exist (so you must have listed at
+ least one of them twice).
+
+
+File: flex.info, Node: Limitations, Next: Bibliography, Prev: Diagnostics, Up: Top
+
+24 Limitations
+**************
+
+Some trailing context patterns cannot be properly matched and generate
+warning messages (`dangerous trailing context'). These are patterns
+where the ending of the first part of the rule matches the beginning of
+the second part, such as `zx*/xy*', where the 'x*' matches the 'x' at
+the beginning of the trailing context. (Note that the POSIX draft
+states that the text matched by such patterns is undefined.) For some
+trailing context rules, parts which are actually fixed-length are not
+recognized as such, leading to the abovementioned performance loss. In
+particular, parts using `|' or `{n}' (such as `foo{3}') are always
+considered variable-length. Combining trailing context with the
+special `|' action can result in _fixed_ trailing context being turned
+into the more expensive _variable_ trailing context. For example, in
+the following:
+
+
+ %%
+ abc |
+ xyz/def
+
+ Use of `unput()' invalidates yytext and yyleng, unless the `%array'
+directive or the `-l' option has been used. Pattern-matching of `NUL's
+is substantially slower than matching other characters. Dynamic
+resizing of the input buffer is slow, as it entails rescanning all the
+text matched so far by the current (generally huge) token. Due to both
+buffering of input and read-ahead, you cannot intermix calls to
+`<stdio.h>' routines, such as, getchar(), with `flex' rules and expect
+it to work. Call `input()' instead. The total table entries listed by
+the `-v' flag excludes the number of table entries needed to determine
+what rule has been matched. The number of entries is equal to the
+number of DFA states if the scanner does not use `REJECT', and somewhat
+greater than the number of states if it does. `REJECT' cannot be used
+with the `-f' or `-F' options.
+
+ The `flex' internal algorithms need documentation.
+
+
+File: flex.info, Node: Bibliography, Next: FAQ, Prev: Limitations, Up: Top
+
+25 Additional Reading
+*********************
+
+You may wish to read more about the following programs:
+ * lex
+
+ * yacc
+
+ * sed
+
+ * awk
+
+ The following books may contain material of interest:
+
+ John Levine, Tony Mason, and Doug Brown, _Lex & Yacc_, O'Reilly and
+Associates. Be sure to get the 2nd edition.
+
+ M. E. Lesk and E. Schmidt, _LEX - Lexical Analyzer Generator_
+
+ Alfred Aho, Ravi Sethi and Jeffrey Ullman, _Compilers: Principles,
+Techniques and Tools_, Addison-Wesley (1986). Describes the
+pattern-matching techniques used by `flex' (deterministic finite
+automata).
+
+
+File: flex.info, Node: FAQ, Next: Appendices, Prev: Bibliography, Up: Top
+
+FAQ
+***
+
+From time to time, the `flex' maintainer receives certain questions.
+Rather than repeat answers to well-understood problems, we publish them
+here.
+
+* Menu:
+
+* When was flex born?::
+* How do I expand backslash-escape sequences in C-style quoted strings?::
+* Why do flex scanners call fileno if it is not ANSI compatible?::
+* Does flex support recursive pattern definitions?::
+* How do I skip huge chunks of input (tens of megabytes) while using flex?::
+* Flex is not matching my patterns in the same order that I defined them.::
+* My actions are executing out of order or sometimes not at all.::
+* How can I have multiple input sources feed into the same scanner at the same time?::
+* Can I build nested parsers that work with the same input file?::
+* How can I match text only at the end of a file?::
+* How can I make REJECT cascade across start condition boundaries?::
+* Why cant I use fast or full tables with interactive mode?::
+* How much faster is -F or -f than -C?::
+* If I have a simple grammar cant I just parse it with flex?::
+* Why doesn't yyrestart() set the start state back to INITIAL?::
+* How can I match C-style comments?::
+* The period isn't working the way I expected.::
+* Can I get the flex manual in another format?::
+* Does there exist a "faster" NDFA->DFA algorithm?::
+* How does flex compile the DFA so quickly?::
+* How can I use more than 8192 rules?::
+* How do I abandon a file in the middle of a scan and switch to a new file?::
+* How do I execute code only during initialization (only before the first scan)?::
+* How do I execute code at termination?::
+* Where else can I find help?::
+* Can I include comments in the "rules" section of the file?::
+* I get an error about undefined yywrap().::
+* How can I change the matching pattern at run time?::
+* How can I expand macros in the input?::
+* How can I build a two-pass scanner?::
+* How do I match any string not matched in the preceding rules?::
+* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
+* Is there a way to make flex treat NULL like a regular character?::
+* Whenever flex can not match the input it says "flex scanner jammed".::
+* Why doesn't flex have non-greedy operators like perl does?::
+* Memory leak - 16386 bytes allocated by malloc.::
+* How do I track the byte offset for lseek()?::
+* How do I use my own I/O classes in a C++ scanner?::
+* How do I skip as many chars as possible?::
+* deleteme00::
+* Are certain equivalent patterns faster than others?::
+* Is backing up a big deal?::
+* Can I fake multi-byte character support?::
+* deleteme01::
+* Can you discuss some flex internals?::
+* unput() messes up yy_at_bol::
+* The | operator is not doing what I want::
+* Why can't flex understand this variable trailing context pattern?::
+* The ^ operator isn't working::
+* Trailing context is getting confused with trailing optional patterns::
+* Is flex GNU or not?::
+* ERASEME53::
+* I need to scan if-then-else blocks and while loops::
+* ERASEME55::
+* ERASEME56::
+* ERASEME57::
+* Is there a repository for flex scanners?::
+* How can I conditionally compile or preprocess my flex input file?::
+* Where can I find grammars for lex and yacc?::
+* I get an end-of-buffer message for each character scanned.::
+* unnamed-faq-62::
+* unnamed-faq-63::
+* unnamed-faq-64::
+* unnamed-faq-65::
+* unnamed-faq-66::
+* unnamed-faq-67::
+* unnamed-faq-68::
+* unnamed-faq-69::
+* unnamed-faq-70::
+* unnamed-faq-71::
+* unnamed-faq-72::
+* unnamed-faq-73::
+* unnamed-faq-74::
+* unnamed-faq-75::
+* unnamed-faq-76::
+* unnamed-faq-77::
+* unnamed-faq-78::
+* unnamed-faq-79::
+* unnamed-faq-80::
+* unnamed-faq-81::
+* unnamed-faq-82::
+* unnamed-faq-83::
+* unnamed-faq-84::
+* unnamed-faq-85::
+* unnamed-faq-86::
+* unnamed-faq-87::
+* unnamed-faq-88::
+* unnamed-faq-90::
+* unnamed-faq-91::
+* unnamed-faq-92::
+* unnamed-faq-93::
+* unnamed-faq-94::
+* unnamed-faq-95::
+* unnamed-faq-96::
+* unnamed-faq-97::
+* unnamed-faq-98::
+* unnamed-faq-99::
+* unnamed-faq-100::
+* unnamed-faq-101::
+* What is the difference between YYLEX_PARAM and YY_DECL?::
+* Why do I get "conflicting types for yylex" error?::
+* How do I access the values set in a Flex action from within a Bison action?::
+
+
+File: flex.info, Node: When was flex born?, Next: How do I expand backslash-escape sequences in C-style quoted strings?, Up: FAQ
+
+When was flex born?
+===================
+
+Vern Paxson took over the `Software Tools' lex project from Jef
+Poskanzer in 1982. At that point it was written in Ratfor. Around
+1987 or so, Paxson translated it into C, and a legend was born :-).
+
+
+File: flex.info, Node: How do I expand backslash-escape sequences in C-style quoted strings?, Next: Why do flex scanners call fileno if it is not ANSI compatible?, Prev: When was flex born?, Up: FAQ
+
+How do I expand backslash-escape sequences in C-style quoted strings?
+=====================================================================
+
+A key point when scanning quoted strings is that you cannot (easily)
+write a single rule that will precisely match the string if you allow
+things like embedded escape sequences and newlines. If you try to
+match strings with a single rule then you'll wind up having to rescan
+the string anyway to find any escape sequences.
+
+ Instead you can use exclusive start conditions and a set of rules,
+one for matching non-escaped text, one for matching a single escape,
+one for matching an embedded newline, and one for recognizing the end
+of the string. Each of these rules is then faced with the question of
+where to put its intermediary results. The best solution is for the
+rules to append their local value of `yytext' to the end of a "string
+literal" buffer. A rule like the escape-matcher will append to the
+buffer the meaning of the escape sequence rather than the literal text
+in `yytext'. In this way, `yytext' does not need to be modified at all.
+
+
+File: flex.info, Node: Why do flex scanners call fileno if it is not ANSI compatible?, Next: Does flex support recursive pattern definitions?, Prev: How do I expand backslash-escape sequences in C-style quoted strings?, Up: FAQ
+
+Why do flex scanners call fileno if it is not ANSI compatible?
+==============================================================
+
+Flex scanners call `fileno()' in order to get the file descriptor
+corresponding to `yyin'. The file descriptor may be passed to
+`isatty()' or `read()', depending upon which `%options' you specified.
+If your system does not have `fileno()' support, to get rid of the
+`read()' call, do not specify `%option read'. To get rid of the
+`isatty()' call, you must specify one of `%option always-interactive' or
+`%option never-interactive'.
+
+
+File: flex.info, Node: Does flex support recursive pattern definitions?, Next: How do I skip huge chunks of input (tens of megabytes) while using flex?, Prev: Why do flex scanners call fileno if it is not ANSI compatible?, Up: FAQ
+
+Does flex support recursive pattern definitions?
+================================================
+
+e.g.,
+
+
+ %%
+ block "{"({block}|{statement})*"}"
+
+ No. You cannot have recursive definitions. The pattern-matching
+power of regular expressions in general (and therefore flex scanners,
+too) is limited. In particular, regular expressions cannot "balance"
+parentheses to an arbitrary degree. For example, it's impossible to
+write a regular expression that matches all strings containing the same
+number of '{'s as '}'s. For more powerful pattern matching, you need a
+parser, such as `GNU bison'.
+
+
+File: flex.info, Node: How do I skip huge chunks of input (tens of megabytes) while using flex?, Next: Flex is not matching my patterns in the same order that I defined them., Prev: Does flex support recursive pattern definitions?, Up: FAQ
+
+How do I skip huge chunks of input (tens of megabytes) while using flex?
+========================================================================
+
+Use `fseek()' (or `lseek()') to position yyin, then call `yyrestart()'.
+
+
+File: flex.info, Node: Flex is not matching my patterns in the same order that I defined them., Next: My actions are executing out of order or sometimes not at all., Prev: How do I skip huge chunks of input (tens of megabytes) while using flex?, Up: FAQ
+
+Flex is not matching my patterns in the same order that I defined them.
+=======================================================================
+
+`flex' picks the rule that matches the most text (i.e., the longest
+possible input string). This is because `flex' uses an entirely
+different matching technique ("deterministic finite automata") that
+actually does all of the matching simultaneously, in parallel. (Seems
+impossible, but it's actually a fairly simple technique once you
+understand the principles.)
+
+ A side-effect of this parallel matching is that when the input
+matches more than one rule, `flex' scanners pick the rule that matched
+the _most_ text. This is explained further in the manual, in the
+section *Note Matching::.
+
+ If you want `flex' to choose a shorter match, then you can work
+around this behavior by expanding your short rule to match more text,
+then put back the extra:
+
+
+ data_.* yyless( 5 ); BEGIN BLOCKIDSTATE;
+
+ Another fix would be to make the second rule active only during the
+`<BLOCKIDSTATE>' start condition, and make that start condition
+exclusive by declaring it with `%x' instead of `%s'.
+
+ A final fix is to change the input language so that the ambiguity for
+`data_' is removed, by adding characters to it that don't match the
+identifier rule, or by removing characters (such as `_') from the
+identifier rule so it no longer matches `data_'. (Of course, you might
+also not have the option of changing the input language.)
+
+
+File: flex.info, Node: My actions are executing out of order or sometimes not at all., Next: How can I have multiple input sources feed into the same scanner at the same time?, Prev: Flex is not matching my patterns in the same order that I defined them., Up: FAQ
+
+My actions are executing out of order or sometimes not at all.
+==============================================================
+
+Most likely, you have (in error) placed the opening `{' of the action
+block on a different line than the rule, e.g.,
+
+
+ ^(foo|bar)
+ { <<<--- WRONG!
+
+ }
+
+ `flex' requires that the opening `{' of an action associated with a
+rule begin on the same line as does the rule. You need instead to
+write your rules as follows:
+
+
+ ^(foo|bar) { // CORRECT!
+
+ }
+
+
+File: flex.info, Node: How can I have multiple input sources feed into the same scanner at the same time?, Next: Can I build nested parsers that work with the same input file?, Prev: My actions are executing out of order or sometimes not at all., Up: FAQ
+
+How can I have multiple input sources feed into the same scanner at the same time?
+==================================================================================
+
+If ...
+ * your scanner is free of backtracking (verified using `flex''s `-b'
+ flag),
+
+ * AND you run your scanner interactively (`-I' option; default
+ unless using special table compression options),
+
+ * AND you feed it one character at a time by redefining `YY_INPUT'
+ to do so,
+
+ then every time it matches a token, it will have exhausted its input
+buffer (because the scanner is free of backtracking). This means you
+can safely use `select()' at the point and only call `yylex()' for
+another token if `select()' indicates there's data available.
+
+ That is, move the `select()' out from the input function to a point
+where it determines whether `yylex()' gets called for the next token.
+
+ With this approach, you will still have problems if your input can
+arrive piecemeal; `select()' could inform you that the beginning of a
+token is available, you call `yylex()' to get it, but it winds up
+blocking waiting for the later characters in the token.
+
+ Here's another way: Move your input multiplexing inside of
+`YY_INPUT'. That is, whenever `YY_INPUT' is called, it `select()''s to
+see where input is available. If input is available for the scanner,
+it reads and returns the next byte. If input is available from another
+source, it calls whatever function is responsible for reading from that
+source. (If no input is available, it blocks until some input is
+available.) I've used this technique in an interpreter I wrote that
+both reads keyboard input using a `flex' scanner and IPC traffic from
+sockets, and it works fine.
+
+
+File: flex.info, Node: Can I build nested parsers that work with the same input file?, Next: How can I match text only at the end of a file?, Prev: How can I have multiple input sources feed into the same scanner at the same time?, Up: FAQ
+
+Can I build nested parsers that work with the same input file?
+==============================================================
+
+This is not going to work without some additional effort. The reason is
+that `flex' block-buffers the input it reads from `yyin'. This means
+that the "outermost" `yylex()', when called, will automatically slurp
+up the first 8K of input available on yyin, and subsequent calls to
+other `yylex()''s won't see that input. You might be tempted to work
+around this problem by redefining `YY_INPUT' to only return a small
+amount of text, but it turns out that that approach is quite difficult.
+Instead, the best solution is to combine all of your scanners into one
+large scanner, using a different exclusive start condition for each.
+
+
+File: flex.info, Node: How can I match text only at the end of a file?, Next: How can I make REJECT cascade across start condition boundaries?, Prev: Can I build nested parsers that work with the same input file?, Up: FAQ
+
+How can I match text only at the end of a file?
+===============================================
+
+There is no way to write a rule which is "match this text, but only if
+it comes at the end of the file". You can fake it, though, if you
+happen to have a character lying around that you don't allow in your
+input. Then you redefine `YY_INPUT' to call your own routine which, if
+it sees an `EOF', returns the magic character first (and remembers to
+return a real `EOF' next time it's called). Then you could write:
+
+
+ <COMMENT>(.|\n)*{EOF_CHAR} /* saw comment at EOF */
+
+
+File: flex.info, Node: How can I make REJECT cascade across start condition boundaries?, Next: Why cant I use fast or full tables with interactive mode?, Prev: How can I match text only at the end of a file?, Up: FAQ
+
+How can I make REJECT cascade across start condition boundaries?
+================================================================
+
+You can do this as follows. Suppose you have a start condition `A', and
+after exhausting all of the possible matches in `<A>', you want to try
+matches in `<INITIAL>'. Then you could use the following:
+
+
+ %x A
+ %%
+ <A>rule_that_is_long ...; REJECT;
+ <A>rule ...; REJECT; /* shorter rule */
+ <A>etc.
+ ...
+ <A>.|\n {
+ /* Shortest and last rule in <A>, so
+ * cascaded REJECTs will eventually
+ * wind up matching this rule. We want
+ * to now switch to the initial state
+ * and try matching from there instead.
+ */
+ yyless(0); /* put back matched text */
+ BEGIN(INITIAL);
+ }
+
+
+File: flex.info, Node: Why cant I use fast or full tables with interactive mode?, Next: How much faster is -F or -f than -C?, Prev: How can I make REJECT cascade across start condition boundaries?, Up: FAQ
+
+Why can't I use fast or full tables with interactive mode?
+==========================================================
+
+One of the assumptions flex makes is that interactive applications are
+inherently slow (they're waiting on a human after all). It has to do
+with how the scanner detects that it must be finished scanning a token.
+For interactive scanners, after scanning each character the current
+state is looked up in a table (essentially) to see whether there's a
+chance of another input character possibly extending the length of the
+match. If not, the scanner halts. For non-interactive scanners, the
+end-of-token test is much simpler, basically a compare with 0, so no
+memory bus cycles. Since the test occurs in the innermost scanning
+loop, one would like to make it go as fast as possible.
+
+ Still, it seems reasonable to allow the user to choose to trade off
+a bit of performance in this area to gain the corresponding
+flexibility. There might be another reason, though, why fast scanners
+don't support the interactive option.
+
+
+File: flex.info, Node: How much faster is -F or -f than -C?, Next: If I have a simple grammar cant I just parse it with flex?, Prev: Why cant I use fast or full tables with interactive mode?, Up: FAQ
+
+How much faster is -F or -f than -C?
+====================================
+
+Much faster (factor of 2-3).
+
+
+File: flex.info, Node: If I have a simple grammar cant I just parse it with flex?, Next: Why doesn't yyrestart() set the start state back to INITIAL?, Prev: How much faster is -F or -f than -C?, Up: FAQ
+
+If I have a simple grammar can't I just parse it with flex?
+===========================================================
+
+Is your grammar recursive? That's almost always a sign that you're
+better off using a parser/scanner rather than just trying to use a
+scanner alone.
+
+
+File: flex.info, Node: Why doesn't yyrestart() set the start state back to INITIAL?, Next: How can I match C-style comments?, Prev: If I have a simple grammar cant I just parse it with flex?, Up: FAQ
+
+Why doesn't yyrestart() set the start state back to INITIAL?
+============================================================
+
+There are two reasons. The first is that there might be programs that
+rely on the start state not changing across file changes. The second
+is that beginning with `flex' version 2.4, use of `yyrestart()' is no
+longer required, so fixing the problem there doesn't solve the more
+general problem.
+
+
+File: flex.info, Node: How can I match C-style comments?, Next: The period isn't working the way I expected., Prev: Why doesn't yyrestart() set the start state back to INITIAL?, Up: FAQ
+
+How can I match C-style comments?
+=================================
+
+You might be tempted to try something like this:
+
+
+ "/*".*"*/" // WRONG!
+
+ or, worse, this:
+
+
+ "/*"(.|\n)"*/" // WRONG!
+
+ The above rules will eat too much input, and blow up on things like:
+
+
+ /* a comment */ do_my_thing( "oops */" );
+
+ Here is one way which allows you to track line information:
+
+
+ <INITIAL>{
+ "/*" BEGIN(IN_COMMENT);
+ }
+ <IN_COMMENT>{
+ "*/" BEGIN(INITIAL);
+ [^*\n]+ // eat comment in chunks
+ "*" // eat the lone star
+ \n yylineno++;
+ }
+
+
+File: flex.info, Node: The period isn't working the way I expected., Next: Can I get the flex manual in another format?, Prev: How can I match C-style comments?, Up: FAQ
+
+The '.' isn't working the way I expected.
+=========================================
+
+Here are some tips for using `.':
+
+ * A common mistake is to place the grouping parenthesis AFTER an
+ operator, when you really meant to place the parenthesis BEFORE
+ the operator, e.g., you probably want this `(foo|bar)+' and NOT
+ this `(foo|bar+)'.
+
+ The first pattern matches the words `foo' or `bar' any number of
+ times, e.g., it matches the text `barfoofoobarfoo'. The second
+ pattern matches a single instance of `foo' or a single instance of
+ `bar' followed by one or more `r's, e.g., it matches the text
+ `barrrr' .
+
+ * A `.' inside `[]''s just means a literal`.' (period), and NOT "any
+ character except newline".
+
+ * Remember that `.' matches any character EXCEPT `\n' (and `EOF').
+ If you really want to match ANY character, including newlines,
+ then use `(.|\n)' Beware that the regex `(.|\n)+' will match your
+ entire input!
+
+ * Finally, if you want to match a literal `.' (a period), then use
+ `[.]' or `"."'
+
+
+File: flex.info, Node: Can I get the flex manual in another format?, Next: Does there exist a "faster" NDFA->DFA algorithm?, Prev: The period isn't working the way I expected., Up: FAQ
+
+Can I get the flex manual in another format?
+============================================
+
+The `flex' source distribution includes a texinfo manual. You are free
+to convert that texinfo into whatever format you desire. The `texinfo'
+package includes tools for conversion to a number of formats.
+
+
+File: flex.info, Node: Does there exist a "faster" NDFA->DFA algorithm?, Next: How does flex compile the DFA so quickly?, Prev: Can I get the flex manual in another format?, Up: FAQ
+
+Does there exist a "faster" NDFA->DFA algorithm?
+================================================
+
+There's no way around the potential exponential running time - it can
+take you exponential time just to enumerate all of the DFA states. In
+practice, though, the running time is closer to linear, or sometimes
+quadratic.
+
+
+File: flex.info, Node: How does flex compile the DFA so quickly?, Next: How can I use more than 8192 rules?, Prev: Does there exist a "faster" NDFA->DFA algorithm?, Up: FAQ
+
+How does flex compile the DFA so quickly?
+=========================================
+
+There are two big speed wins that `flex' uses:
+
+ 1. It analyzes the input rules to construct equivalence classes for
+ those characters that always make the same transitions. It then
+ rewrites the NFA using equivalence classes for transitions instead
+ of characters. This cuts down the NFA->DFA computation time
+ dramatically, to the point where, for uncompressed DFA tables, the
+ DFA generation is often I/O bound in writing out the tables.
+
+ 2. It maintains hash values for previously computed DFA states, so
+ testing whether a newly constructed DFA state is equivalent to a
+ previously constructed state can be done very quickly, by first
+ comparing hash values.
+
+
+File: flex.info, Node: How can I use more than 8192 rules?, Next: How do I abandon a file in the middle of a scan and switch to a new file?, Prev: How does flex compile the DFA so quickly?, Up: FAQ
+
+How can I use more than 8192 rules?
+===================================
+
+`Flex' is compiled with an upper limit of 8192 rules per scanner. If
+you need more than 8192 rules in your scanner, you'll have to recompile
+`flex' with the following changes in `flexdef.h':
+
+
+ < #define YY_TRAILING_MASK 0x2000
+ < #define YY_TRAILING_HEAD_MASK 0x4000
+ --
+ > #define YY_TRAILING_MASK 0x20000000
+ > #define YY_TRAILING_HEAD_MASK 0x40000000
+
+ This should work okay as long as your C compiler uses 32 bit
+integers. But you might want to think about whether using such a huge
+number of rules is the best way to solve your problem.
+
+ The following may also be relevant:
+
+ With luck, you should be able to increase the definitions in
+flexdef.h for:
+
+
+ #define JAMSTATE -32766 /* marks a reference to the state that always jams */
+ #define MAXIMUM_MNS 31999
+ #define BAD_SUBSCRIPT -32767
+
+ recompile everything, and it'll all work. Flex only has these
+16-bit-like values built into it because a long time ago it was
+developed on a machine with 16-bit ints. I've given this advice to
+others in the past but haven't heard back from them whether it worked
+okay or not...
+
+
+File: flex.info, Node: How do I abandon a file in the middle of a scan and switch to a new file?, Next: How do I execute code only during initialization (only before the first scan)?, Prev: How can I use more than 8192 rules?, Up: FAQ
+
+How do I abandon a file in the middle of a scan and switch to a new file?
+=========================================================================
+
+Just call `yyrestart(newfile)'. Be sure to reset the start state if you
+want a "fresh start, since `yyrestart' does NOT reset the start state
+back to `INITIAL'.
+
+
+File: flex.info, Node: How do I execute code only during initialization (only before the first scan)?, Next: How do I execute code at termination?, Prev: How do I abandon a file in the middle of a scan and switch to a new file?, Up: FAQ
+
+How do I execute code only during initialization (only before the first scan)?
+==============================================================================
+
+You can specify an initial action by defining the macro `YY_USER_INIT'
+(though note that `yyout' may not be available at the time this macro
+is executed). Or you can add to the beginning of your rules section:
+
+
+ %%
+ /* Must be indented! */
+ static int did_init = 0;
+
+ if ( ! did_init ){
+ do_my_init();
+ did_init = 1;
+ }
+
+
+File: flex.info, Node: How do I execute code at termination?, Next: Where else can I find help?, Prev: How do I execute code only during initialization (only before the first scan)?, Up: FAQ
+
+How do I execute code at termination?
+=====================================
+
+You can specify an action for the `<<EOF>>' rule.
+
+
+File: flex.info, Node: Where else can I find help?, Next: Can I include comments in the "rules" section of the file?, Prev: How do I execute code at termination?, Up: FAQ
+
+Where else can I find help?
+===========================
+
+You can find the flex homepage on the web at
+`http://flex.sourceforge.net/'. See that page for details about flex
+mailing lists as well.
+
+
+File: flex.info, Node: Can I include comments in the "rules" section of the file?, Next: I get an error about undefined yywrap()., Prev: Where else can I find help?, Up: FAQ
+
+Can I include comments in the "rules" section of the file?
+==========================================================
+
+Yes, just about anywhere you want to. See the manual for the specific
+syntax.
+
+
+File: flex.info, Node: I get an error about undefined yywrap()., Next: How can I change the matching pattern at run time?, Prev: Can I include comments in the "rules" section of the file?, Up: FAQ
+
+I get an error about undefined yywrap().
+========================================
+
+You must supply a `yywrap()' function of your own, or link to `libfl.a'
+(which provides one), or use
+
+
+ %option noyywrap
+
+ in your source to say you don't want a `yywrap()' function.
+
+
+File: flex.info, Node: How can I change the matching pattern at run time?, Next: How can I expand macros in the input?, Prev: I get an error about undefined yywrap()., Up: FAQ
+
+How can I change the matching pattern at run time?
+==================================================
+
+You can't, it's compiled into a static table when flex builds the
+scanner.
+
+
+File: flex.info, Node: How can I expand macros in the input?, Next: How can I build a two-pass scanner?, Prev: How can I change the matching pattern at run time?, Up: FAQ
+
+How can I expand macros in the input?
+=====================================
+
+The best way to approach this problem is at a higher level, e.g., in
+the parser.
+
+ However, you can do this using multiple input buffers.
+
+
+ %%
+ macro/[a-z]+ {
+ /* Saw the macro "macro" followed by extra stuff. */
+ main_buffer = YY_CURRENT_BUFFER;
+ expansion_buffer = yy_scan_string(expand(yytext));
+ yy_switch_to_buffer(expansion_buffer);
+ }
+
+ <<EOF>> {
+ if ( expansion_buffer )
+ {
+ // We were doing an expansion, return to where
+ // we were.
+ yy_switch_to_buffer(main_buffer);
+ yy_delete_buffer(expansion_buffer);
+ expansion_buffer = 0;
+ }
+ else
+ yyterminate();
+ }
+
+ You probably will want a stack of expansion buffers to allow nested
+macros. From the above though hopefully the idea is clear.
+
+
+File: flex.info, Node: How can I build a two-pass scanner?, Next: How do I match any string not matched in the preceding rules?, Prev: How can I expand macros in the input?, Up: FAQ
+
+How can I build a two-pass scanner?
+===================================
+
+One way to do it is to filter the first pass to a temporary file, then
+process the temporary file on the second pass. You will probably see a
+performance hit, due to all the disk I/O.
+
+ When you need to look ahead far forward like this, it almost always
+means that the right solution is to build a parse tree of the entire
+input, then walk it after the parse in order to generate the output.
+In a sense, this is a two-pass approach, once through the text and once
+through the parse tree, but the performance hit for the latter is
+usually an order of magnitude smaller, since everything is already
+classified, in binary format, and residing in memory.
+
+
+File: flex.info, Node: How do I match any string not matched in the preceding rules?, Next: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Prev: How can I build a two-pass scanner?, Up: FAQ
+
+How do I match any string not matched in the preceding rules?
+=============================================================
+
+One way to assign precedence, is to place the more specific rules
+first. If two rules would match the same input (same sequence of
+characters) then the first rule listed in the `flex' input wins, e.g.,
+
+
+ %%
+ foo[a-zA-Z_]+ return FOO_ID;
+ bar[a-zA-Z_]+ return BAR_ID;
+ [a-zA-Z_]+ return GENERIC_ID;
+
+ Note that the rule `[a-zA-Z_]+' must come *after* the others. It
+will match the same amount of text as the more specific rules, and in
+that case the `flex' scanner will pick the first rule listed in your
+scanner as the one to match.
+
+
+File: flex.info, Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Next: Is there a way to make flex treat NULL like a regular character?, Prev: How do I match any string not matched in the preceding rules?, Up: FAQ
+
+I am trying to port code from AT&T lex that uses yysptr and yysbuf.
+===================================================================
+
+Those are internal variables pointing into the AT&T scanner's input
+buffer. I imagine they're being manipulated in user versions of the
+`input()' and `unput()' functions. If so, what you need to do is
+analyze those functions to figure out what they're doing, and then
+replace `input()' with an appropriate definition of `YY_INPUT'. You
+shouldn't need to (and must not) replace `flex''s `unput()' function.
+
+
+File: flex.info, Node: Is there a way to make flex treat NULL like a regular character?, Next: Whenever flex can not match the input it says "flex scanner jammed"., Prev: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Up: FAQ
+
+Is there a way to make flex treat NULL like a regular character?
+================================================================
+
+Yes, `\0' and `\x00' should both do the trick. Perhaps you have an
+ancient version of `flex'. The latest release is version 2.5.34.
+
+
+File: flex.info, Node: Whenever flex can not match the input it says "flex scanner jammed"., Next: Why doesn't flex have non-greedy operators like perl does?, Prev: Is there a way to make flex treat NULL like a regular character?, Up: FAQ
+
+Whenever flex can not match the input it says "flex scanner jammed".
+====================================================================
+
+You need to add a rule that matches the otherwise-unmatched text, e.g.,
+
+
+ %option yylineno
+ %%
+ [[a bunch of rules here]]
+
+ . printf("bad input character '%s' at line %d\n", yytext, yylineno);
+
+ See `%option default' for more information.
+
+
+File: flex.info, Node: Why doesn't flex have non-greedy operators like perl does?, Next: Memory leak - 16386 bytes allocated by malloc., Prev: Whenever flex can not match the input it says "flex scanner jammed"., Up: FAQ
+
+Why doesn't flex have non-greedy operators like perl does?
+==========================================================
+
+A DFA can do a non-greedy match by stopping the first time it enters an
+accepting state, instead of consuming input until it determines that no
+further matching is possible (a "jam" state). This is actually easier
+to implement than longest leftmost match (which flex does).
+
+ But it's also much less useful than longest leftmost match. In
+general, when you find yourself wishing for non-greedy matching, that's
+usually a sign that you're trying to make the scanner do some parsing.
+That's generally the wrong approach, since it lacks the power to do a
+decent job. Better is to either introduce a separate parser, or to
+split the scanner into multiple scanners using (exclusive) start
+conditions.
+
+ You might have a separate start state once you've seen the `BEGIN'.
+In that state, you might then have a regex that will match `END' (to
+kick you out of the state), and perhaps `(.|\n)' to get a single
+character within the chunk ...
+
+ This approach also has much better error-reporting properties.
+
+
+File: flex.info, Node: Memory leak - 16386 bytes allocated by malloc., Next: How do I track the byte offset for lseek()?, Prev: Why doesn't flex have non-greedy operators like perl does?, Up: FAQ
+
+Memory leak - 16386 bytes allocated by malloc.
+==============================================
+
+UPDATED 2002-07-10: As of `flex' version 2.5.9, this leak means that
+you did not call `yylex_destroy()'. If you are using an earlier version
+of `flex', then read on.
+
+ The leak is about 16426 bytes. That is, (8192 * 2 + 2) for the
+read-buffer, and about 40 for `struct yy_buffer_state' (depending upon
+alignment). The leak is in the non-reentrant C scanner only (NOT in the
+reentrant scanner, NOT in the C++ scanner). Since `flex' doesn't know
+when you are done, the buffer is never freed.
+
+ However, the leak won't multiply since the buffer is reused no
+matter how many times you call `yylex()'.
+
+ If you want to reclaim the memory when you are completely done
+scanning, then you might try this:
+
+
+ /* For non-reentrant C scanner only. */
+ yy_delete_buffer(YY_CURRENT_BUFFER);
+ yy_init = 1;
+
+ Note: `yy_init' is an "internal variable", and hasn't been tested in
+this situation. It is possible that some other globals may need
+resetting as well.
+
+
+File: flex.info, Node: How do I track the byte offset for lseek()?, Next: How do I use my own I/O classes in a C++ scanner?, Prev: Memory leak - 16386 bytes allocated by malloc., Up: FAQ
+
+How do I track the byte offset for lseek()?
+===========================================
+
+
+ > We thought that it would be possible to have this number through the
+ > evaluation of the following expression:
+ >
+ > seek_position = (no_buffers)*YY_READ_BUF_SIZE + yy_c_buf_p - YY_CURRENT_BUFFER->yy_ch_buf
+
+ While this is the right idea, it has two problems. The first is that
+it's possible that `flex' will request less than `YY_READ_BUF_SIZE'
+during an invocation of `YY_INPUT' (or that your input source will
+return less even though `YY_READ_BUF_SIZE' bytes were requested). The
+second problem is that when refilling its internal buffer, `flex' keeps
+some characters from the previous buffer (because usually it's in the
+middle of a match, and needs those characters to construct `yytext' for
+the match once it's done). Because of this, `yy_c_buf_p -
+YY_CURRENT_BUFFER->yy_ch_buf' won't be exactly the number of characters
+already read from the current buffer.
+
+ An alternative solution is to count the number of characters you've
+matched since starting to scan. This can be done by using
+`YY_USER_ACTION'. For example,
+
+
+ #define YY_USER_ACTION num_chars += yyleng;
+
+ (You need to be careful to update your bookkeeping if you use
+`yymore('), `yyless()', `unput()', or `input()'.)
+
+
+File: flex.info, Node: How do I use my own I/O classes in a C++ scanner?, Next: How do I skip as many chars as possible?, Prev: How do I track the byte offset for lseek()?, Up: FAQ
+
+How do I use my own I/O classes in a C++ scanner?
+=================================================
+
+When the flex C++ scanning class rewrite finally happens, then this
+sort of thing should become much easier.
+
+ You can do this by passing the various functions (such as
+`LexerInput()' and `LexerOutput()') NULL `iostream*''s, and then
+dealing with your own I/O classes surreptitiously (i.e., stashing them
+in special member variables). This works because the only assumption
+about the lexer regarding what's done with the iostream's is that
+they're ultimately passed to `LexerInput()' and `LexerOutput', which
+then do whatever is necessary with them.
+
+
+File: flex.info, Node: How do I skip as many chars as possible?, Next: deleteme00, Prev: How do I use my own I/O classes in a C++ scanner?, Up: FAQ
+
+How do I skip as many chars as possible?
+========================================
+
+How do I skip as many chars as possible - without interfering with the
+other patterns?
+
+ In the example below, we want to skip over characters until we see
+the phrase "endskip". The following will _NOT_ work correctly (do you
+see why not?)
+
+
+ /* INCORRECT SCANNER */
+ %x SKIP
+ %%
+ <INITIAL>startskip BEGIN(SKIP);
+ ...
+ <SKIP>"endskip" BEGIN(INITIAL);
+ <SKIP>.* ;
+
+ The problem is that the pattern .* will eat up the word "endskip."
+The simplest (but slow) fix is:
+
+
+ <SKIP>"endskip" BEGIN(INITIAL);
+ <SKIP>. ;
+
+ The fix involves making the second rule match more, without making
+it match "endskip" plus something else. So for example:
+
+
+ <SKIP>"endskip" BEGIN(INITIAL);
+ <SKIP>[^e]+ ;
+ <SKIP>. ;/* so you eat up e's, too */
+
+
+File: flex.info, Node: deleteme00, Next: Are certain equivalent patterns faster than others?, Prev: How do I skip as many chars as possible?, Up: FAQ
+
+deleteme00
+==========
+
+
+ QUESTION:
+ When was flex born?
+
+ Vern Paxson took over
+ the Software Tools lex project from Jef Poskanzer in 1982. At that point it
+ was written in Ratfor. Around 1987 or so, Paxson translated it into C, and
+ a legend was born :-).
+
+
+File: flex.info, Node: Are certain equivalent patterns faster than others?, Next: Is backing up a big deal?, Prev: deleteme00, Up: FAQ
+
+Are certain equivalent patterns faster than others?
+===================================================
+
+
+ To: Adoram Rogel <adoram@orna.hybridge.com>
+ Subject: Re: Flex 2.5.2 performance questions
+ In-reply-to: Your message of Wed, 18 Sep 96 11:12:17 EDT.
+ Date: Wed, 18 Sep 96 10:51:02 PDT
+ From: Vern Paxson <vern>
+
+ [Note, the most recent flex release is 2.5.4, which you can get from
+ ftp.ee.lbl.gov. It has bug fixes over 2.5.2 and 2.5.3.]
+
+ > 1. Using the pattern
+ > ([Ff](oot)?)?[Nn](ote)?(\.)?
+ > instead of
+ > (((F|f)oot(N|n)ote)|((N|n)ote)|((N|n)\.)|((F|f)(N|n)(\.)))
+ > (in a very complicated flex program) caused the program to slow from
+ > 300K+/min to 100K/min (no other changes were done).
+
+ These two are not equivalent. For example, the first can match "footnote."
+ but the second can only match "footnote". This is almost certainly the
+ cause in the discrepancy - the slower scanner run is matching more tokens,
+ and/or having to do more backing up.
+
+ > 2. Which of these two are better: [Ff]oot or (F|f)oot ?
+
+ From a performance point of view, they're equivalent (modulo presumably
+ minor effects such as memory cache hit rates; and the presence of trailing
+ context, see below). From a space point of view, the first is slightly
+ preferable.
+
+ > 3. I have a pattern that look like this:
+ > pats {p1}|{p2}|{p3}|...|{p50} (50 patterns ORd)
+ >
+ > running yet another complicated program that includes the following rule:
+ > <snext>{and}/{no4}{bb}{pats}
+ >
+ > gets me to "too complicated - over 32,000 states"...
+
+ I can't tell from this example whether the trailing context is variable-length
+ or fixed-length (it could be the latter if {and} is fixed-length). If it's
+ variable length, which flex -p will tell you, then this reflects a basic
+ performance problem, and if you can eliminate it by restructuring your
+ scanner, you will see significant improvement.
+
+ > so I divided {pats} to {pats1}, {pats2},..., {pats5} each consists of about
+ > 10 patterns and changed the rule to be 5 rules.
+ > This did compile, but what is the rule of thumb here ?
+
+ The rule is to avoid trailing context other than fixed-length, in which for
+ a/b, either the 'a' pattern or the 'b' pattern have a fixed length. Use
+ of the '|' operator automatically makes the pattern variable length, so in
+ this case '[Ff]oot' is preferred to '(F|f)oot'.
+
+ > 4. I changed a rule that looked like this:
+ > <snext8>{and}{bb}/{ROMAN}[^A-Za-z] { BEGIN...
+ >
+ > to the next 2 rules:
+ > <snext8>{and}{bb}/{ROMAN}[A-Za-z] { ECHO;}
+ > <snext8>{and}{bb}/{ROMAN} { BEGIN...
+ >
+ > Again, I understand the using [^...] will cause a great performance loss
+
+ Actually, it doesn't cause any sort of performance loss. It's a surprising
+ fact about regular expressions that they always match in linear time
+ regardless of how complex they are.
+
+ > but are there any specific rules about it ?
+
+ See the "Performance Considerations" section of the man page, and also
+ the example in MISC/fastwc/.
+
+ Vern
+
+
+File: flex.info, Node: Is backing up a big deal?, Next: Can I fake multi-byte character support?, Prev: Are certain equivalent patterns faster than others?, Up: FAQ
+
+Is backing up a big deal?
+=========================
+
+
+ To: Adoram Rogel <adoram@hybridge.com>
+ Subject: Re: Flex 2.5.2 performance questions
+ In-reply-to: Your message of Thu, 19 Sep 96 10:16:04 EDT.
+ Date: Thu, 19 Sep 96 09:58:00 PDT
+ From: Vern Paxson <vern>
+
+ > a lot about the backing up problem.
+ > I believe that there lies my biggest problem, and I'll try to improve
+ > it.
+
+ Since you have variable trailing context, this is a bigger performance
+ problem. Fixing it is usually easier than fixing backing up, which in a
+ complicated scanner (yours seems to fit the bill) can be extremely
+ difficult to do correctly.
+
+ You also don't mention what flags you are using for your scanner.
+ -f makes a large speed difference, and -Cfe buys you nearly as much
+ speed but the resulting scanner is considerably smaller.
+
+ > I have an | operator in {and} and in {pats} so both of them are variable
+ > length.
+
+ -p should have reported this.
+
+ > Is changing one of them to fixed-length is enough ?
+
+ Yes.
+
+ > Is it possible to change the 32,000 states limit ?
+
+ Yes. I've appended instructions on how. Before you make this change,
+ though, you should think about whether there are ways to fundamentally
+ simplify your scanner - those are certainly preferable!
+
+ Vern
+
+ To increase the 32K limit (on a machine with 32 bit integers), you increase
+ the magnitude of the following in flexdef.h:
+
+ #define JAMSTATE -32766 /* marks a reference to the state that always jams */
+ #define MAXIMUM_MNS 31999
+ #define BAD_SUBSCRIPT -32767
+ #define MAX_SHORT 32700
+
+ Adding a 0 or two after each should do the trick.
+
+
+File: flex.info, Node: Can I fake multi-byte character support?, Next: deleteme01, Prev: Is backing up a big deal?, Up: FAQ
+
+Can I fake multi-byte character support?
+========================================
+
+
+ To: Heeman_Lee@hp.com
+ Subject: Re: flex - multi-byte support?
+ In-reply-to: Your message of Thu, 03 Oct 1996 17:24:04 PDT.
+ Date: Fri, 04 Oct 1996 11:42:18 PDT
+ From: Vern Paxson <vern>
+
+ > I assume as long as my *.l file defines the
+ > range of expected character code values (in octal format), flex will
+ > scan the file and read multi-byte characters correctly. But I have no
+ > confidence in this assumption.
+
+ Your lack of confidence is justified - this won't work.
+
+ Flex has in it a widespread assumption that the input is processed
+ one byte at a time. Fixing this is on the to-do list, but is involved,
+ so it won't happen any time soon. In the interim, the best I can suggest
+ (unless you want to try fixing it yourself) is to write your rules in
+ terms of pairs of bytes, using definitions in the first section:
+
+ X \xfe\xc2
+ ...
+ %%
+ foo{X}bar found_foo_fe_c2_bar();
+
+ etc. Definitely a pain - sorry about that.
+
+ By the way, the email address you used for me is ancient, indicating you
+ have a very old version of flex. You can get the most recent, 2.5.4, from
+ ftp.ee.lbl.gov.
+
+ Vern
+
+
+File: flex.info, Node: deleteme01, Next: Can you discuss some flex internals?, Prev: Can I fake multi-byte character support?, Up: FAQ
+
+deleteme01
+==========
+
+
+ To: moleary@primus.com
+ Subject: Re: Flex / Unicode compatibility question
+ In-reply-to: Your message of Tue, 22 Oct 1996 10:15:42 PDT.
+ Date: Tue, 22 Oct 1996 11:06:13 PDT
+ From: Vern Paxson <vern>
+
+ Unfortunately flex at the moment has a widespread assumption within it
+ that characters are processed 8 bits at a time. I don't see any easy
+ fix for this (other than writing your rules in terms of double characters -
+ a pain). I also don't know of a wider lex, though you might try surfing
+ the Plan 9 stuff because I know it's a Unicode system, and also the PCCT
+ toolkit (try searching say Alta Vista for "Purdue Compiler Construction
+ Toolkit").
+
+ Fixing flex to handle wider characters is on the long-term to-do list.
+ But since flex is a strictly spare-time project these days, this probably
+ won't happen for quite a while, unless someone else does it first.
+
+ Vern
+
+
+File: flex.info, Node: Can you discuss some flex internals?, Next: unput() messes up yy_at_bol, Prev: deleteme01, Up: FAQ
+
+Can you discuss some flex internals?
+====================================
+
+
+ To: Johan Linde <jl@theophys.kth.se>
+ Subject: Re: translation of flex
+ In-reply-to: Your message of Sun, 10 Nov 1996 09:16:36 PST.
+ Date: Mon, 11 Nov 1996 10:33:50 PST
+ From: Vern Paxson <vern>
+
+ > I'm working for the Swedish team translating GNU program, and I'm currently
+ > working with flex. I have a few questions about some of the messages which
+ > I hope you can answer.
+
+ All of the things you're wondering about, by the way, concerning flex
+ internals - probably the only person who understands what they mean in
+ English is me! So I wouldn't worry too much about getting them right.
+ That said ...
+
+ > #: main.c:545
+ > msgid " %d protos created\n"
+ >
+ > Does proto mean prototype?
+
+ Yes - prototypes of state compression tables.
+
+ > #: main.c:539
+ > msgid " %d/%d (peak %d) template nxt-chk entries created\n"
+ >
+ > Here I'm mainly puzzled by 'nxt-chk'. I guess it means 'next-check'. (?)
+ > However, 'template next-check entries' doesn't make much sense to me. To be
+ > able to find a good translation I need to know a little bit more about it.
+
+ There is a scheme in the Aho/Sethi/Ullman compiler book for compressing
+ scanner tables. It involves creating two pairs of tables. The first has
+ "base" and "default" entries, the second has "next" and "check" entries.
+ The "base" entry is indexed by the current state and yields an index into
+ the next/check table. The "default" entry gives what to do if the state
+ transition isn't found in next/check. The "next" entry gives the next
+ state to enter, but only if the "check" entry verifies that this entry is
+ correct for the current state. Flex creates templates of series of
+ next/check entries and then encodes differences from these templates as a
+ way to compress the tables.
+
+ > #: main.c:533
+ > msgid " %d/%d base-def entries created\n"
+ >
+ > The same problem here for 'base-def'.
+
+ See above.
+
+ Vern
+
+
+File: flex.info, Node: unput() messes up yy_at_bol, Next: The | operator is not doing what I want, Prev: Can you discuss some flex internals?, Up: FAQ
+
+unput() messes up yy_at_bol
+===========================
+
+
+ To: Xinying Li <xli@npac.syr.edu>
+ Subject: Re: FLEX ?
+ In-reply-to: Your message of Wed, 13 Nov 1996 17:28:38 PST.
+ Date: Wed, 13 Nov 1996 19:51:54 PST
+ From: Vern Paxson <vern>
+
+ > "unput()" them to input flow, question occurs. If I do this after I scan
+ > a carriage, the variable "YY_CURRENT_BUFFER->yy_at_bol" is changed. That
+ > means the carriage flag has gone.
+
+ You can control this by calling yy_set_bol(). It's described in the manual.
+
+ > And if in pre-reading it goes to the end of file, is anything done
+ > to control the end of curren buffer and end of file?
+
+ No, there's no way to put back an end-of-file.
+
+ > By the way I am using flex 2.5.2 and using the "-l".
+
+ The latest release is 2.5.4, by the way. It fixes some bugs in 2.5.2 and
+ 2.5.3. You can get it from ftp.ee.lbl.gov.
+
+ Vern
+
+
+File: flex.info, Node: The | operator is not doing what I want, Next: Why can't flex understand this variable trailing context pattern?, Prev: unput() messes up yy_at_bol, Up: FAQ
+
+The | operator is not doing what I want
+=======================================
+
+
+ To: Alain.ISSARD@st.com
+ Subject: Re: Start condition with FLEX
+ In-reply-to: Your message of Mon, 18 Nov 1996 09:45:02 PST.
+ Date: Mon, 18 Nov 1996 10:41:34 PST
+ From: Vern Paxson <vern>
+
+ > I am not able to use the start condition scope and to use the | (OR) with
+ > rules having start conditions.
+
+ The problem is that if you use '|' as a regular expression operator, for
+ example "a|b" meaning "match either 'a' or 'b'", then it must *not* have
+ any blanks around it. If you instead want the special '|' *action* (which
+ from your scanner appears to be the case), which is a way of giving two
+ different rules the same action:
+
+ foo |
+ bar matched_foo_or_bar();
+
+ then '|' *must* be separated from the first rule by whitespace and *must*
+ be followed by a new line. You *cannot* write it as:
+
+ foo | bar matched_foo_or_bar();
+
+ even though you might think you could because yacc supports this syntax.
+ The reason for this unfortunately incompatibility is historical, but it's
+ unlikely to be changed.
+
+ Your problems with start condition scope are simply due to syntax errors
+ from your use of '|' later confusing flex.
+
+ Let me know if you still have problems.
+
+ Vern
+
+
+File: flex.info, Node: Why can't flex understand this variable trailing context pattern?, Next: The ^ operator isn't working, Prev: The | operator is not doing what I want, Up: FAQ
+
+Why can't flex understand this variable trailing context pattern?
+=================================================================
+
+
+ To: Gregory Margo <gmargo@newton.vip.best.com>
+ Subject: Re: flex-2.5.3 bug report
+ In-reply-to: Your message of Sat, 23 Nov 1996 16:50:09 PST.
+ Date: Sat, 23 Nov 1996 17:07:32 PST
+ From: Vern Paxson <vern>
+
+ > Enclosed is a lex file that "real" lex will process, but I cannot get
+ > flex to process it. Could you try it and maybe point me in the right direction?
+
+ Your problem is that some of the definitions in the scanner use the '/'
+ trailing context operator, and have it enclosed in ()'s. Flex does not
+ allow this operator to be enclosed in ()'s because doing so allows undefined
+ regular expressions such as "(a/b)+". So the solution is to remove the
+ parentheses. Note that you must also be building the scanner with the -l
+ option for AT&T lex compatibility. Without this option, flex automatically
+ encloses the definitions in parentheses.
+
+ Vern
+
+
+File: flex.info, Node: The ^ operator isn't working, Next: Trailing context is getting confused with trailing optional patterns, Prev: Why can't flex understand this variable trailing context pattern?, Up: FAQ
+
+The ^ operator isn't working
+============================
+
+
+ To: Thomas Hadig <hadig@toots.physik.rwth-aachen.de>
+ Subject: Re: Flex Bug ?
+ In-reply-to: Your message of Tue, 26 Nov 1996 14:35:01 PST.
+ Date: Tue, 26 Nov 1996 11:15:05 PST
+ From: Vern Paxson <vern>
+
+ > In my lexer code, i have the line :
+ > ^\*.* { }
+ >
+ > Thus all lines starting with an astrix (*) are comment lines.
+ > This does not work !
+
+ I can't get this problem to reproduce - it works fine for me. Note
+ though that if what you have is slightly different:
+
+ COMMENT ^\*.*
+ %%
+ {COMMENT} { }
+
+ then it won't work, because flex pushes back macro definitions enclosed
+ in ()'s, so the rule becomes
+
+ (^\*.*) { }
+
+ and now that the '^' operator is not at the immediate beginning of the
+ line, it's interpreted as just a regular character. You can avoid this
+ behavior by using the "-l" lex-compatibility flag, or "%option lex-compat".
+
+ Vern
+
+
+File: flex.info, Node: Trailing context is getting confused with trailing optional patterns, Next: Is flex GNU or not?, Prev: The ^ operator isn't working, Up: FAQ
+
+Trailing context is getting confused with trailing optional patterns
+====================================================================
+
+
+ To: Adoram Rogel <adoram@hybridge.com>
+ Subject: Re: Flex 2.5.4 BOF ???
+ In-reply-to: Your message of Tue, 26 Nov 1996 16:10:41 PST.
+ Date: Wed, 27 Nov 1996 10:56:25 PST
+ From: Vern Paxson <vern>
+
+ > Organization(s)?/[a-z]
+ >
+ > This matched "Organizations" (looking in debug mode, the trailing s
+ > was matched with trailing context instead of the optional (s) in the
+ > end of the word.
+
+ That should only happen with lex. Flex can properly match this pattern.
+ (That might be what you're saying, I'm just not sure.)
+
+ > Is there a way to avoid this dangerous trailing context problem ?
+
+ Unfortunately, there's no easy way. On the other hand, I don't see why
+ it should be a problem. Lex's matching is clearly wrong, and I'd hope
+ that usually the intent remains the same as expressed with the pattern,
+ so flex's matching will be correct.
+
+ Vern
+
+
+File: flex.info, Node: Is flex GNU or not?, Next: ERASEME53, Prev: Trailing context is getting confused with trailing optional patterns, Up: FAQ
+
+Is flex GNU or not?
+===================
+
+
+ To: Cameron MacKinnon <mackin@interlog.com>
+ Subject: Re: Flex documentation bug
+ In-reply-to: Your message of Mon, 02 Dec 1996 00:07:08 PST.
+ Date: Sun, 01 Dec 1996 22:29:39 PST
+ From: Vern Paxson <vern>
+
+ > I'm not sure how or where to submit bug reports (documentation or
+ > otherwise) for the GNU project stuff ...
+
+ Well, strictly speaking flex isn't part of the GNU project. They just
+ distribute it because no one's written a decent GPL'd lex replacement.
+ So you should send bugs directly to me. Those sent to the GNU folks
+ sometimes find there way to me, but some may drop between the cracks.
+
+ > In GNU Info, under the section 'Start Conditions', and also in the man
+ > page (mine's dated April '95) is a nice little snippet showing how to
+ > parse C quoted strings into a buffer, defined to be MAX_STR_CONST in
+ > size. Unfortunately, no overflow checking is ever done ...
+
+ This is already mentioned in the manual:
+
+ Finally, here's an example of how to match C-style quoted
+ strings using exclusive start conditions, including expanded
+ escape sequences (but not including checking for a string
+ that's too long):
+
+ The reason for not doing the overflow checking is that it will needlessly
+ clutter up an example whose main purpose is just to demonstrate how to
+ use flex.
+
+ The latest release is 2.5.4, by the way, available from ftp.ee.lbl.gov.
+
+ Vern
+
+
+File: flex.info, Node: ERASEME53, Next: I need to scan if-then-else blocks and while loops, Prev: Is flex GNU or not?, Up: FAQ
+
+ERASEME53
+=========
+
+
+ To: tsv@cs.UManitoba.CA
+ Subject: Re: Flex (reg)..
+ In-reply-to: Your message of Thu, 06 Mar 1997 23:50:16 PST.
+ Date: Thu, 06 Mar 1997 15:54:19 PST
+ From: Vern Paxson <vern>
+
+ > [:alpha:] ([:alnum:] | \\_)*
+
+ If your rule really has embedded blanks as shown above, then it won't
+ work, as the first blank delimits the rule from the action. (It wouldn't
+ even compile ...) You need instead:
+
+ [:alpha:]([:alnum:]|\\_)*
+
+ and that should work fine - there's no restriction on what can go inside
+ of ()'s except for the trailing context operator, '/'.
+
+ Vern
+
+
+File: flex.info, Node: I need to scan if-then-else blocks and while loops, Next: ERASEME55, Prev: ERASEME53, Up: FAQ
+
+I need to scan if-then-else blocks and while loops
+==================================================
+
+
+ To: "Mike Stolnicki" <mstolnic@ford.com>
+ Subject: Re: FLEX help
+ In-reply-to: Your message of Fri, 30 May 1997 13:33:27 PDT.
+ Date: Fri, 30 May 1997 10:46:35 PDT
+ From: Vern Paxson <vern>
+
+ > We'd like to add "if-then-else", "while", and "for" statements to our
+ > language ...
+ > We've investigated many possible solutions. The one solution that seems
+ > the most reasonable involves knowing the position of a TOKEN in yyin.
+
+ I strongly advise you to instead build a parse tree (abstract syntax tree)
+ and loop over that instead. You'll find this has major benefits in keeping
+ your interpreter simple and extensible.
+
+ That said, the functionality you mention for get_position and set_position
+ have been on the to-do list for a while. As flex is a purely spare-time
+ project for me, no guarantees when this will be added (in particular, it
+ for sure won't be for many months to come).
+
+ Vern
+
+
+File: flex.info, Node: ERASEME55, Next: ERASEME56, Prev: I need to scan if-then-else blocks and while loops, Up: FAQ
+
+ERASEME55
+=========
+
+
+ To: Colin Paul Adams <colin@colina.demon.co.uk>
+ Subject: Re: Flex C++ classes and Bison
+ In-reply-to: Your message of 09 Aug 1997 17:11:41 PDT.
+ Date: Fri, 15 Aug 1997 10:48:19 PDT
+ From: Vern Paxson <vern>
+
+ > #define YY_DECL int yylex (YYSTYPE *lvalp, struct parser_control
+ > *parm)
+ >
+ > I have been trying to get this to work as a C++ scanner, but it does
+ > not appear to be possible (warning that it matches no declarations in
+ > yyFlexLexer, or something like that).
+ >
+ > Is this supposed to be possible, or is it being worked on (I DID
+ > notice the comment that scanner classes are still experimental, so I'm
+ > not too hopeful)?
+
+ What you need to do is derive a subclass from yyFlexLexer that provides
+ the above yylex() method, squirrels away lvalp and parm into member
+ variables, and then invokes yyFlexLexer::yylex() to do the regular scanning.
+
+ Vern
+
+
+File: flex.info, Node: ERASEME56, Next: ERASEME57, Prev: ERASEME55, Up: FAQ
+
+ERASEME56
+=========
+
+
+ To: Mikael.Latvala@lmf.ericsson.se
+ Subject: Re: Possible mistake in Flex v2.5 document
+ In-reply-to: Your message of Fri, 05 Sep 1997 16:07:24 PDT.
+ Date: Fri, 05 Sep 1997 10:01:54 PDT
+ From: Vern Paxson <vern>
+
+ > In that example you show how to count comment lines when using
+ > C style /* ... */ comments. My question is, shouldn't you take into
+ > account a scenario where end of a comment marker occurs inside
+ > character or string literals?
+
+ The scanner certainly needs to also scan character and string literals.
+ However it does that (there's an example in the man page for strings), the
+ lexer will recognize the beginning of the literal before it runs across the
+ embedded "/*". Consequently, it will finish scanning the literal before it
+ even considers the possibility of matching "/*".
+
+ Example:
+
+ '([^']*|{ESCAPE_SEQUENCE})'
+
+ will match all the text between the ''s (inclusive). So the lexer
+ considers this as a token beginning at the first ', and doesn't even
+ attempt to match other tokens inside it.
+
+ I thinnk this subtlety is not worth putting in the manual, as I suspect
+ it would confuse more people than it would enlighten.
+
+ Vern
+
+
+File: flex.info, Node: ERASEME57, Next: Is there a repository for flex scanners?, Prev: ERASEME56, Up: FAQ
+
+ERASEME57
+=========
+
+
+ To: "Marty Leisner" <leisner@sdsp.mc.xerox.com>
+ Subject: Re: flex limitations
+ In-reply-to: Your message of Sat, 06 Sep 1997 11:27:21 PDT.
+ Date: Mon, 08 Sep 1997 11:38:08 PDT
+ From: Vern Paxson <vern>
+
+ > %%
+ > [a-zA-Z]+ /* skip a line */
+ > { printf("got %s\n", yytext); }
+ > %%
+
+ What version of flex are you using? If I feed this to 2.5.4, it complains:
+
+ "bug.l", line 5: EOF encountered inside an action
+ "bug.l", line 5: unrecognized rule
+ "bug.l", line 5: fatal parse error
+
+ Not the world's greatest error message, but it manages to flag the problem.
+
+ (With the introduction of start condition scopes, flex can't accommodate
+ an action on a separate line, since it's ambiguous with an indented rule.)
+
+ You can get 2.5.4 from ftp.ee.lbl.gov.
+
+ Vern
+
+
+File: flex.info, Node: Is there a repository for flex scanners?, Next: How can I conditionally compile or preprocess my flex input file?, Prev: ERASEME57, Up: FAQ
+
+Is there a repository for flex scanners?
+========================================
+
+Not that we know of. You might try asking on comp.compilers.
+
+
+File: flex.info, Node: How can I conditionally compile or preprocess my flex input file?, Next: Where can I find grammars for lex and yacc?, Prev: Is there a repository for flex scanners?, Up: FAQ
+
+How can I conditionally compile or preprocess my flex input file?
+=================================================================
+
+Flex doesn't have a preprocessor like C does. You might try using m4,
+or the C preprocessor plus a sed script to clean up the result.
+
+
+File: flex.info, Node: Where can I find grammars for lex and yacc?, Next: I get an end-of-buffer message for each character scanned., Prev: How can I conditionally compile or preprocess my flex input file?, Up: FAQ
+
+Where can I find grammars for lex and yacc?
+===========================================
+
+In the sources for flex and bison.
+
+
+File: flex.info, Node: I get an end-of-buffer message for each character scanned., Next: unnamed-faq-62, Prev: Where can I find grammars for lex and yacc?, Up: FAQ
+
+I get an end-of-buffer message for each character scanned.
+==========================================================
+
+This will happen if your LexerInput() function returns only one
+character at a time, which can happen either if you're scanner is
+"interactive", or if the streams library on your platform always
+returns 1 for yyin->gcount().
+
+ Solution: override LexerInput() with a version that returns whole
+buffers.
+
+
+File: flex.info, Node: unnamed-faq-62, Next: unnamed-faq-63, Prev: I get an end-of-buffer message for each character scanned., Up: FAQ
+
+unnamed-faq-62
+==============
+
+
+ To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
+ Subject: Re: Flex maximums
+ In-reply-to: Your message of Mon, 17 Nov 1997 17:16:06 PST.
+ Date: Mon, 17 Nov 1997 17:16:15 PST
+ From: Vern Paxson <vern>
+
+ > I took a quick look into the flex-sources and altered some #defines in
+ > flexdefs.h:
+ >
+ > #define INITIAL_MNS 64000
+ > #define MNS_INCREMENT 1024000
+ > #define MAXIMUM_MNS 64000
+
+ The things to fix are to add a couple of zeroes to:
+
+ #define JAMSTATE -32766 /* marks a reference to the state that always jams */
+ #define MAXIMUM_MNS 31999
+ #define BAD_SUBSCRIPT -32767
+ #define MAX_SHORT 32700
+
+ and, if you get complaints about too many rules, make the following change too:
+
+ #define YY_TRAILING_MASK 0x200000
+ #define YY_TRAILING_HEAD_MASK 0x400000
+
+ - Vern
+
+
+File: flex.info, Node: unnamed-faq-63, Next: unnamed-faq-64, Prev: unnamed-faq-62, Up: FAQ
+
+unnamed-faq-63
+==============
+
+
+ To: jimmey@lexis-nexis.com (Jimmey Todd)
+ Subject: Re: FLEX question regarding istream vs ifstream
+ In-reply-to: Your message of Mon, 08 Dec 1997 15:54:15 PST.
+ Date: Mon, 15 Dec 1997 13:21:35 PST
+ From: Vern Paxson <vern>
+
+ > stdin_handle = YY_CURRENT_BUFFER;
+ > ifstream fin( "aFile" );
+ > yy_switch_to_buffer( yy_create_buffer( fin, YY_BUF_SIZE ) );
+ >
+ > What I'm wanting to do, is pass the contents of a file thru one set
+ > of rules and then pass stdin thru another set... It works great if, I
+ > don't use the C++ classes. But since everything else that I'm doing is
+ > in C++, I thought I'd be consistent.
+ >
+ > The problem is that 'yy_create_buffer' is expecting an istream* as it's
+ > first argument (as stated in the man page). However, fin is a ifstream
+ > object. Any ideas on what I might be doing wrong? Any help would be
+ > appreciated. Thanks!!
+
+ You need to pass &fin, to turn it into an ifstream* instead of an ifstream.
+ Then its type will be compatible with the expected istream*, because ifstream
+ is derived from istream.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-64, Next: unnamed-faq-65, Prev: unnamed-faq-63, Up: FAQ
+
+unnamed-faq-64
+==============
+
+
+ To: Enda Fadian <fadiane@piercom.ie>
+ Subject: Re: Question related to Flex man page?
+ In-reply-to: Your message of Tue, 16 Dec 1997 15:17:34 PST.
+ Date: Tue, 16 Dec 1997 14:17:09 PST
+ From: Vern Paxson <vern>
+
+ > Can you explain to me what is ment by a long-jump in relation to flex?
+
+ Using the longjmp() function while inside yylex() or a routine called by it.
+
+ > what is the flex activation frame.
+
+ Just yylex()'s stack frame.
+
+ > As far as I can see yyrestart will bring me back to the sart of the input
+ > file and using flex++ isnot really an option!
+
+ No, yyrestart() doesn't imply a rewind, even though its name might sound
+ like it does. It tells the scanner to flush its internal buffers and
+ start reading from the given file at its present location.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-65, Next: unnamed-faq-66, Prev: unnamed-faq-64, Up: FAQ
+
+unnamed-faq-65
+==============
+
+
+ To: hassan@larc.info.uqam.ca (Hassan Alaoui)
+ Subject: Re: Need urgent Help
+ In-reply-to: Your message of Sat, 20 Dec 1997 19:38:19 PST.
+ Date: Sun, 21 Dec 1997 21:30:46 PST
+ From: Vern Paxson <vern>
+
+ > /usr/lib/yaccpar: In function `int yyparse()':
+ > /usr/lib/yaccpar:184: warning: implicit declaration of function `int yylex(...)'
+ >
+ > ld: Undefined symbol
+ > _yylex
+ > _yyparse
+ > _yyin
+
+ This is a known problem with Solaris C++ (and/or Solaris yacc). I believe
+ the fix is to explicitly insert some 'extern "C"' statements for the
+ corresponding routines/symbols.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-66, Next: unnamed-faq-67, Prev: unnamed-faq-65, Up: FAQ
+
+unnamed-faq-66
+==============
+
+
+ To: mc0307@mclink.it
+ Cc: gnu@prep.ai.mit.edu
+ Subject: Re: [mc0307@mclink.it: Help request]
+ In-reply-to: Your message of Fri, 12 Dec 1997 17:57:29 PST.
+ Date: Sun, 21 Dec 1997 22:33:37 PST
+ From: Vern Paxson <vern>
+
+ > This is my definition for float and integer types:
+ > . . .
+ > NZD [1-9]
+ > ...
+ > I've tested my program on other lex version (on UNIX Sun Solaris an HP
+ > UNIX) and it work well, so I think that my definitions are correct.
+ > There are any differences between Lex and Flex?
+
+ There are indeed differences, as discussed in the man page. The one
+ you are probably running into is that when flex expands a name definition,
+ it puts parentheses around the expansion, while lex does not. There's
+ an example in the man page of how this can lead to different matching.
+ Flex's behavior complies with the POSIX standard (or at least with the
+ last POSIX draft I saw).
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-67, Next: unnamed-faq-68, Prev: unnamed-faq-66, Up: FAQ
+
+unnamed-faq-67
+==============
+
+
+ To: hassan@larc.info.uqam.ca (Hassan Alaoui)
+ Subject: Re: Thanks
+ In-reply-to: Your message of Mon, 22 Dec 1997 16:06:35 PST.
+ Date: Mon, 22 Dec 1997 14:35:05 PST
+ From: Vern Paxson <vern>
+
+ > Thank you very much for your help. I compile and link well with C++ while
+ > declaring 'yylex ...' extern, But a little problem remains. I get a
+ > segmentation default when executing ( I linked with lfl library) while it
+ > works well when using LEX instead of flex. Do you have some ideas about the
+ > reason for this ?
+
+ The one possible reason for this that comes to mind is if you've defined
+ yytext as "extern char yytext[]" (which is what lex uses) instead of
+ "extern char *yytext" (which is what flex uses). If it's not that, then
+ I'm afraid I don't know what the problem might be.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-68, Next: unnamed-faq-69, Prev: unnamed-faq-67, Up: FAQ
+
+unnamed-faq-68
+==============
+
+
+ To: "Bart Niswonger" <NISWONGR@almaden.ibm.com>
+ Subject: Re: flex 2.5: c++ scanners & start conditions
+ In-reply-to: Your message of Tue, 06 Jan 1998 10:34:21 PST.
+ Date: Tue, 06 Jan 1998 19:19:30 PST
+ From: Vern Paxson <vern>
+
+ > The problem is that when I do this (using %option c++) start
+ > conditions seem to not apply.
+
+ The BEGIN macro modifies the yy_start variable. For C scanners, this
+ is a static with scope visible through the whole file. For C++ scanners,
+ it's a member variable, so it only has visible scope within a member
+ function. Your lexbegin() routine is not a member function when you
+ build a C++ scanner, so it's not modifying the correct yy_start. The
+ diagnostic that indicates this is that you found you needed to add
+ a declaration of yy_start in order to get your scanner to compile when
+ using C++; instead, the correct fix is to make lexbegin() a member
+ function (by deriving from yyFlexLexer).
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-69, Next: unnamed-faq-70, Prev: unnamed-faq-68, Up: FAQ
+
+unnamed-faq-69
+==============
+
+
+ To: "Boris Zinin" <boris@ippe.rssi.ru>
+ Subject: Re: current position in flex buffer
+ In-reply-to: Your message of Mon, 12 Jan 1998 18:58:23 PST.
+ Date: Mon, 12 Jan 1998 12:03:15 PST
+ From: Vern Paxson <vern>
+
+ > The problem is how to determine the current position in flex active
+ > buffer when a rule is matched....
+
+ You will need to keep track of this explicitly, such as by redefining
+ YY_USER_ACTION to count the number of characters matched.
+
+ The latest flex release, by the way, is 2.5.4, available from ftp.ee.lbl.gov.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-70, Next: unnamed-faq-71, Prev: unnamed-faq-69, Up: FAQ
+
+unnamed-faq-70
+==============
+
+
+ To: Bik.Dhaliwal@bis.org
+ Subject: Re: Flex question
+ In-reply-to: Your message of Mon, 26 Jan 1998 13:05:35 PST.
+ Date: Tue, 27 Jan 1998 22:41:52 PST
+ From: Vern Paxson <vern>
+
+ > That requirement involves knowing
+ > the character position at which a particular token was matched
+ > in the lexer.
+
+ The way you have to do this is by explicitly keeping track of where
+ you are in the file, by counting the number of characters scanned
+ for each token (available in yyleng). It may prove convenient to
+ do this by redefining YY_USER_ACTION, as described in the manual.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-71, Next: unnamed-faq-72, Prev: unnamed-faq-70, Up: FAQ
+
+unnamed-faq-71
+==============
+
+
+ To: Vladimir Alexiev <vladimir@cs.ualberta.ca>
+ Subject: Re: flex: how to control start condition from parser?
+ In-reply-to: Your message of Mon, 26 Jan 1998 05:50:16 PST.
+ Date: Tue, 27 Jan 1998 22:45:37 PST
+ From: Vern Paxson <vern>
+
+ > It seems useful for the parser to be able to tell the lexer about such
+ > context dependencies, because then they don't have to be limited to
+ > local or sequential context.
+
+ One way to do this is to have the parser call a stub routine that's
+ included in the scanner's .l file, and consequently that has access ot
+ BEGIN. The only ugliness is that the parser can't pass in the state
+ it wants, because those aren't visible - but if you don't have many
+ such states, then using a different set of names doesn't seem like
+ to much of a burden.
+
+ While generating a .h file like you suggests is certainly cleaner,
+ flex development has come to a virtual stand-still :-(, so a workaround
+ like the above is much more pragmatic than waiting for a new feature.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-72, Next: unnamed-faq-73, Prev: unnamed-faq-71, Up: FAQ
+
+unnamed-faq-72
+==============
+
+
+ To: Barbara Denny <denny@3com.com>
+ Subject: Re: freebsd flex bug?
+ In-reply-to: Your message of Fri, 30 Jan 1998 12:00:43 PST.
+ Date: Fri, 30 Jan 1998 12:42:32 PST
+ From: Vern Paxson <vern>
+
+ > lex.yy.c:1996: parse error before `='
+
+ This is the key, identifying this error. (It may help to pinpoint
+ it by using flex -L, so it doesn't generate #line directives in its
+ output.) I will bet you heavy money that you have a start condition
+ name that is also a variable name, or something like that; flex spits
+ out #define's for each start condition name, mapping them to a number,
+ so you can wind up with:
+
+ %x foo
+ %%
+ ...
+ %%
+ void bar()
+ {
+ int foo = 3;
+ }
+
+ and the penultimate will turn into "int 1 = 3" after C preprocessing,
+ since flex will put "#define foo 1" in the generated scanner.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-73, Next: unnamed-faq-74, Prev: unnamed-faq-72, Up: FAQ
+
+unnamed-faq-73
+==============
+
+
+ To: Maurice Petrie <mpetrie@infoscigroup.com>
+ Subject: Re: Lost flex .l file
+ In-reply-to: Your message of Mon, 02 Feb 1998 14:10:01 PST.
+ Date: Mon, 02 Feb 1998 11:15:12 PST
+ From: Vern Paxson <vern>
+
+ > I am curious as to
+ > whether there is a simple way to backtrack from the generated source to
+ > reproduce the lost list of tokens we are searching on.
+
+ In theory, it's straight-forward to go from the DFA representation
+ back to a regular-expression representation - the two are isomorphic.
+ In practice, a huge headache, because you have to unpack all the tables
+ back into a single DFA representation, and then write a program to munch
+ on that and translate it into an RE.
+
+ Sorry for the less-than-happy news ...
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-74, Next: unnamed-faq-75, Prev: unnamed-faq-73, Up: FAQ
+
+unnamed-faq-74
+==============
+
+
+ To: jimmey@lexis-nexis.com (Jimmey Todd)
+ Subject: Re: Flex performance question
+ In-reply-to: Your message of Thu, 19 Feb 1998 11:01:17 PST.
+ Date: Thu, 19 Feb 1998 08:48:51 PST
+ From: Vern Paxson <vern>
+
+ > What I have found, is that the smaller the data chunk, the faster the
+ > program executes. This is the opposite of what I expected. Should this be
+ > happening this way?
+
+ This is exactly what will happen if your input file has embedded NULs.
+ From the man page:
+
+ A final note: flex is slow when matching NUL's, particularly
+ when a token contains multiple NUL's. It's best to write
+ rules which match short amounts of text if it's anticipated
+ that the text will often include NUL's.
+
+ So that's the first thing to look for.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-75, Next: unnamed-faq-76, Prev: unnamed-faq-74, Up: FAQ
+
+unnamed-faq-75
+==============
+
+
+ To: jimmey@lexis-nexis.com (Jimmey Todd)
+ Subject: Re: Flex performance question
+ In-reply-to: Your message of Thu, 19 Feb 1998 11:01:17 PST.
+ Date: Thu, 19 Feb 1998 15:42:25 PST
+ From: Vern Paxson <vern>
+
+ So there are several problems.
+
+ First, to go fast, you want to match as much text as possible, which
+ your scanners don't in the case that what they're scanning is *not*
+ a <RN> tag. So you want a rule like:
+
+ [^<]+
+
+ Second, C++ scanners are particularly slow if they're interactive,
+ which they are by default. Using -B speeds it up by a factor of 3-4
+ on my workstation.
+
+ Third, C++ scanners that use the istream interface are slow, because
+ of how poorly implemented istream's are. I built two versions of
+ the following scanner:
+
+ %%
+ .*\n
+ .*
+ %%
+
+ and the C version inhales a 2.5MB file on my workstation in 0.8 seconds.
+ The C++ istream version, using -B, takes 3.8 seconds.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-76, Next: unnamed-faq-77, Prev: unnamed-faq-75, Up: FAQ
+
+unnamed-faq-76
+==============
+
+
+ To: "Frescatore, David (CRD, TAD)" <frescatore@exc01crdge.crd.ge.com>
+ Subject: Re: FLEX 2.5 & THE YEAR 2000
+ In-reply-to: Your message of Wed, 03 Jun 1998 11:26:22 PDT.
+ Date: Wed, 03 Jun 1998 10:22:26 PDT
+ From: Vern Paxson <vern>
+
+ > I am researching the Y2K problem with General Electric R&D
+ > and need to know if there are any known issues concerning
+ > the above mentioned software and Y2K regardless of version.
+
+ There shouldn't be, all it ever does with the date is ask the system
+ for it and then print it out.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-77, Next: unnamed-faq-78, Prev: unnamed-faq-76, Up: FAQ
+
+unnamed-faq-77
+==============
+
+
+ To: "Hans Dermot Doran" <htd@ibhdoran.com>
+ Subject: Re: flex problem
+ In-reply-to: Your message of Wed, 15 Jul 1998 21:30:13 PDT.
+ Date: Tue, 21 Jul 1998 14:23:34 PDT
+ From: Vern Paxson <vern>
+
+ > To overcome this, I gets() the stdin into a string and lex the string. The
+ > string is lexed OK except that the end of string isn't lexed properly
+ > (yy_scan_string()), that is the lexer dosn't recognise the end of string.
+
+ Flex doesn't contain mechanisms for recognizing buffer endpoints. But if
+ you use fgets instead (which you should anyway, to protect against buffer
+ overflows), then the final \n will be preserved in the string, and you can
+ scan that in order to find the end of the string.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-78, Next: unnamed-faq-79, Prev: unnamed-faq-77, Up: FAQ
+
+unnamed-faq-78
+==============
+
+
+ To: soumen@almaden.ibm.com
+ Subject: Re: Flex++ 2.5.3 instance member vs. static member
+ In-reply-to: Your message of Mon, 27 Jul 1998 02:10:04 PDT.
+ Date: Tue, 28 Jul 1998 01:10:34 PDT
+ From: Vern Paxson <vern>
+
+ > %{
+ > int mylineno = 0;
+ > %}
+ > ws [ \t]+
+ > alpha [A-Za-z]
+ > dig [0-9]
+ > %%
+ >
+ > Now you'd expect mylineno to be a member of each instance of class
+ > yyFlexLexer, but is this the case? A look at the lex.yy.cc file seems to
+ > indicate otherwise; unless I am missing something the declaration of
+ > mylineno seems to be outside any class scope.
+ >
+ > How will this work if I want to run a multi-threaded application with each
+ > thread creating a FlexLexer instance?
+
+ Derive your own subclass and make mylineno a member variable of it.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-79, Next: unnamed-faq-80, Prev: unnamed-faq-78, Up: FAQ
+
+unnamed-faq-79
+==============
+
+
+ To: Adoram Rogel <adoram@hybridge.com>
+ Subject: Re: More than 32K states change hangs
+ In-reply-to: Your message of Tue, 04 Aug 1998 16:55:39 PDT.
+ Date: Tue, 04 Aug 1998 22:28:45 PDT
+ From: Vern Paxson <vern>
+
+ > Vern Paxson,
+ >
+ > I followed your advice, posted on Usenet bu you, and emailed to me
+ > personally by you, on how to overcome the 32K states limit. I'm running
+ > on Linux machines.
+ > I took the full source of version 2.5.4 and did the following changes in
+ > flexdef.h:
+ > #define JAMSTATE -327660
+ > #define MAXIMUM_MNS 319990
+ > #define BAD_SUBSCRIPT -327670
+ > #define MAX_SHORT 327000
+ >
+ > and compiled.
+ > All looked fine, including check and bigcheck, so I installed.
+
+ Hmmm, you shouldn't increase MAX_SHORT, though looking through my email
+ archives I see that I did indeed recommend doing so. Try setting it back
+ to 32700; that should suffice that you no longer need -Ca. If it still
+ hangs, then the interesting question is - where?
+
+ > Compiling the same hanged program with a out-of-the-box (RedHat 4.2
+ > distribution of Linux)
+ > flex 2.5.4 binary works.
+
+ Since Linux comes with source code, you should diff it against what
+ you have to see what problems they missed.
+
+ > Should I always compile with the -Ca option now ? even short and simple
+ > filters ?
+
+ No, definitely not. It's meant to be for those situations where you
+ absolutely must squeeze every last cycle out of your scanner.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-80, Next: unnamed-faq-81, Prev: unnamed-faq-79, Up: FAQ
+
+unnamed-faq-80
+==============
+
+
+ To: "Schmackpfeffer, Craig" <Craig.Schmackpfeffer@usa.xerox.com>
+ Subject: Re: flex output for static code portion
+ In-reply-to: Your message of Tue, 11 Aug 1998 11:55:30 PDT.
+ Date: Mon, 17 Aug 1998 23:57:42 PDT
+ From: Vern Paxson <vern>
+
+ > I would like to use flex under the hood to generate a binary file
+ > containing the data structures that control the parse.
+
+ This has been on the wish-list for a long time. In principle it's
+ straight-forward - you redirect mkdata() et al's I/O to another file,
+ and modify the skeleton to have a start-up function that slurps these
+ into dynamic arrays. The concerns are (1) the scanner generation code
+ is hairy and full of corner cases, so it's easy to get surprised when
+ going down this path :-( ; and (2) being careful about buffering so
+ that when the tables change you make sure the scanner starts in the
+ correct state and reading at the right point in the input file.
+
+ > I was wondering if you know of anyone who has used flex in this way.
+
+ I don't - but it seems like a reasonable project to undertake (unlike
+ numerous other flex tweaks :-).
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-81, Next: unnamed-faq-82, Prev: unnamed-faq-80, Up: FAQ
+
+unnamed-faq-81
+==============
+
+
+ Received: from 131.173.17.11 (131.173.17.11 [131.173.17.11])
+ by ee.lbl.gov (8.9.1/8.9.1) with ESMTP id AAA03838
+ for <vern@ee.lbl.gov>; Thu, 20 Aug 1998 00:47:57 -0700 (PDT)
+ Received: from hal.cl-ki.uni-osnabrueck.de (hal.cl-ki.Uni-Osnabrueck.DE [131.173.141.2])
+ by deimos.rz.uni-osnabrueck.de (8.8.7/8.8.8) with ESMTP id JAA34694
+ for <vern@ee.lbl.gov>; Thu, 20 Aug 1998 09:47:55 +0200
+ Received: (from georg@localhost) by hal.cl-ki.uni-osnabrueck.de (8.6.12/8.6.12) id JAA34834 for vern@ee.lbl.gov; Thu, 20 Aug 1998 09:47:54 +0200
+ From: Georg Rehm <georg@hal.cl-ki.uni-osnabrueck.de>
+ Message-Id: <199808200747.JAA34834@hal.cl-ki.uni-osnabrueck.de>
+ Subject: "flex scanner push-back overflow"
+ To: vern@ee.lbl.gov
+ Date: Thu, 20 Aug 1998 09:47:54 +0200 (MEST)
+ Reply-To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
+ X-NoJunk: Do NOT send commercial mail, spam or ads to this address!
+ X-URL: http://www.cl-ki.uni-osnabrueck.de/~georg/
+ X-Mailer: ELM [version 2.4ME+ PL28 (25)]
+ MIME-Version: 1.0
+ Content-Type: text/plain; charset=US-ASCII
+ Content-Transfer-Encoding: 7bit
+
+ Hi Vern,
+
+ Yesterday, I encountered a strange problem: I use the macro processor m4
+ to include some lengthy lists into a .l file. Following is a flex macro
+ definition that causes some serious pain in my neck:
+
+ AUTHOR ("A. Boucard / L. Boucard"|"A. Dastarac / M. Levent"|"A.Boucaud / L.Boucaud"|"Abderrahim Lamchichi"|"Achmat Dangor"|"Adeline Toullier"|"Adewale Maja-Pearce"|"Ahmed Ziri"|"Akram Ellyas"|"Alain Bihr"|"Alain Gresh"|"Alain Guillemoles"|"Alain Joxe"|"Alain Morice"|"Alain Renon"|"Alain Zecchini"|"Albert Memmi"|"Alberto Manguel"|"Alex De Waal"|"Alfonso Artico"| [...])
+
+ The complete list contains about 10kB. When I try to "flex" this file
+ (on a Solaris 2.6 machine, using a modified flex 2.5.4 (I only increased
+ some of the predefined values in flexdefs.h) I get the error:
+
+ myflex/flex -8 sentag.tmp.l
+ flex scanner push-back overflow
+
+ When I remove the slashes in the macro definition everything works fine.
+ As I understand it, the double quotes escape the slash-character so it
+ really means "/" and not "trailing context". Furthermore, I tried to
+ escape the slashes with backslashes, but with no use, the same error message
+ appeared when flexing the code.
+
+ Do you have an idea what's going on here?
+
+ Greetings from Germany,
+ Georg
+ --
+ Georg Rehm georg@cl-ki.uni-osnabrueck.de
+ Institute for Semantic Information Processing, University of Osnabrueck, FRG
+
+
+File: flex.info, Node: unnamed-faq-82, Next: unnamed-faq-83, Prev: unnamed-faq-81, Up: FAQ
+
+unnamed-faq-82
+==============
+
+
+ To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
+ Subject: Re: "flex scanner push-back overflow"
+ In-reply-to: Your message of Thu, 20 Aug 1998 09:47:54 PDT.
+ Date: Thu, 20 Aug 1998 07:05:35 PDT
+ From: Vern Paxson <vern>
+
+ > myflex/flex -8 sentag.tmp.l
+ > flex scanner push-back overflow
+
+ Flex itself uses a flex scanner. That scanner is running out of buffer
+ space when it tries to unput() the humongous macro you've defined. When
+ you remove the '/'s, you make it small enough so that it fits in the buffer;
+ removing spaces would do the same thing.
+
+ The fix is to either rethink how come you're using such a big macro and
+ perhaps there's another/better way to do it; or to rebuild flex's own
+ scan.c with a larger value for
+
+ #define YY_BUF_SIZE 16384
+
+ - Vern
+
+
+File: flex.info, Node: unnamed-faq-83, Next: unnamed-faq-84, Prev: unnamed-faq-82, Up: FAQ
+
+unnamed-faq-83
+==============
+
+
+ To: Jan Kort <jan@research.techforce.nl>
+ Subject: Re: Flex
+ In-reply-to: Your message of Fri, 04 Sep 1998 12:18:43 +0200.
+ Date: Sat, 05 Sep 1998 00:59:49 PDT
+ From: Vern Paxson <vern>
+
+ > %%
+ >
+ > "TEST1\n" { fprintf(stderr, "TEST1\n"); yyless(5); }
+ > ^\n { fprintf(stderr, "empty line\n"); }
+ > . { }
+ > \n { fprintf(stderr, "new line\n"); }
+ >
+ > %%
+ > -- input ---------------------------------------
+ > TEST1
+ > -- output --------------------------------------
+ > TEST1
+ > empty line
+ > ------------------------------------------------
+
+ IMHO, it's not clear whether or not this is in fact a bug. It depends
+ on whether you view yyless() as backing up in the input stream, or as
+ pushing new characters onto the beginning of the input stream. Flex
+ interprets it as the latter (for implementation convenience, I'll admit),
+ and so considers the newline as in fact matching at the beginning of a
+ line, as after all the last token scanned an entire line and so the
+ scanner is now at the beginning of a new line.
+
+ I agree that this is counter-intuitive for yyless(), given its
+ functional description (it's less so for unput(), depending on whether
+ you're unput()'ing new text or scanned text). But I don't plan to
+ change it any time soon, as it's a pain to do so. Consequently,
+ you do indeed need to use yy_set_bol() and YY_AT_BOL() to tweak
+ your scanner into the behavior you desire.
+
+ Sorry for the less-than-completely-satisfactory answer.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-84, Next: unnamed-faq-85, Prev: unnamed-faq-83, Up: FAQ
+
+unnamed-faq-84
+==============
+
+
+ To: Patrick Krusenotto <krusenot@mac-info-link.de>
+ Subject: Re: Problems with restarting flex-2.5.2-generated scanner
+ In-reply-to: Your message of Thu, 24 Sep 1998 10:14:07 PDT.
+ Date: Thu, 24 Sep 1998 23:28:43 PDT
+ From: Vern Paxson <vern>
+
+ > I am using flex-2.5.2 and bison 1.25 for Solaris and I am desperately
+ > trying to make my scanner restart with a new file after my parser stops
+ > with a parse error. When my compiler restarts, the parser always
+ > receives the token after the token (in the old file!) that caused the
+ > parser error.
+
+ I suspect the problem is that your parser has read ahead in order
+ to attempt to resolve an ambiguity, and when it's restarted it picks
+ up with that token rather than reading a fresh one. If you're using
+ yacc, then the special "error" production can sometimes be used to
+ consume tokens in an attempt to get the parser into a consistent state.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-85, Next: unnamed-faq-86, Prev: unnamed-faq-84, Up: FAQ
+
+unnamed-faq-85
+==============
+
+
+ To: Henric Jungheim <junghelh@pe-nelson.com>
+ Subject: Re: flex 2.5.4a
+ In-reply-to: Your message of Tue, 27 Oct 1998 16:41:42 PST.
+ Date: Tue, 27 Oct 1998 16:50:14 PST
+ From: Vern Paxson <vern>
+
+ > This brings up a feature request: How about a command line
+ > option to specify the filename when reading from stdin? That way one
+ > doesn't need to create a temporary file in order to get the "#line"
+ > directives to make sense.
+
+ Use -o combined with -t (per the man page description of -o).
+
+ > P.S., Is there any simple way to use non-blocking IO to parse multiple
+ > streams?
+
+ Simple, no.
+
+ One approach might be to return a magic character on EWOULDBLOCK and
+ have a rule
+
+ .*<magic-character> // put back .*, eat magic character
+
+ This is off the top of my head, not sure it'll work.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-86, Next: unnamed-faq-87, Prev: unnamed-faq-85, Up: FAQ
+
+unnamed-faq-86
+==============
+
+
+ To: "Repko, Billy D" <billy.d.repko@intel.com>
+ Subject: Re: Compiling scanners
+ In-reply-to: Your message of Wed, 13 Jan 1999 10:52:47 PST.
+ Date: Thu, 14 Jan 1999 00:25:30 PST
+ From: Vern Paxson <vern>
+
+ > It appears that maybe it cannot find the lfl library.
+
+ The Makefile in the distribution builds it, so you should have it.
+ It's exceedingly trivial, just a main() that calls yylex() and
+ a yyrap() that always returns 1.
+
+ > %%
+ > \n ++num_lines; ++num_chars;
+ > . ++num_chars;
+
+ You can't indent your rules like this - that's where the errors are coming
+ from. Flex copies indented text to the output file, it's how you do things
+ like
+
+ int num_lines_seen = 0;
+
+ to declare local variables.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-87, Next: unnamed-faq-88, Prev: unnamed-faq-86, Up: FAQ
+
+unnamed-faq-87
+==============
+
+
+ To: Erick Branderhorst <Erick.Branderhorst@asml.nl>
+ Subject: Re: flex input buffer
+ In-reply-to: Your message of Tue, 09 Feb 1999 13:53:46 PST.
+ Date: Tue, 09 Feb 1999 21:03:37 PST
+ From: Vern Paxson <vern>
+
+ > In the flex.skl file the size of the default input buffers is set. Can you
+ > explain why this size is set and why it is such a high number.
+
+ It's large to optimize performance when scanning large files. You can
+ safely make it a lot lower if needed.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-88, Next: unnamed-faq-90, Prev: unnamed-faq-87, Up: FAQ
+
+unnamed-faq-88
+==============
+
+
+ To: "Guido Minnen" <guidomi@cogs.susx.ac.uk>
+ Subject: Re: Flex error message
+ In-reply-to: Your message of Wed, 24 Feb 1999 15:31:46 PST.
+ Date: Thu, 25 Feb 1999 00:11:31 PST
+ From: Vern Paxson <vern>
+
+ > I'm extending a larger scanner written in Flex and I keep running into
+ > problems. More specifically, I get the error message:
+ > "flex: input rules are too complicated (>= 32000 NFA states)"
+
+ Increase the definitions in flexdef.h for:
+
+ #define JAMSTATE -32766 /* marks a reference to the state that always j
+ ams */
+ #define MAXIMUM_MNS 31999
+ #define BAD_SUBSCRIPT -32767
+
+ recompile everything, and it should all work.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-90, Next: unnamed-faq-91, Prev: unnamed-faq-88, Up: FAQ
+
+unnamed-faq-90
+==============
+
+
+ To: "Dmitriy Goldobin" <gold@ems.chel.su>
+ Subject: Re: FLEX trouble
+ In-reply-to: Your message of Mon, 31 May 1999 18:44:49 PDT.
+ Date: Tue, 01 Jun 1999 00:15:07 PDT
+ From: Vern Paxson <vern>
+
+ > I have a trouble with FLEX. Why rule "/*".*"*/" work properly,=20
+ > but rule "/*"(.|\n)*"*/" don't work ?
+
+ The second of these will have to scan the entire input stream (because
+ "(.|\n)*" matches an arbitrary amount of any text) in order to see if
+ it ends with "*/", terminating the comment. That potentially will overflow
+ the input buffer.
+
+ > More complex rule "/*"([^*]|(\*/[^/]))*"*/ give an error
+ > 'unrecognized rule'.
+
+ You can't use the '/' operator inside parentheses. It's not clear
+ what "(a/b)*" actually means.
+
+ > I now use workaround with state <comment>, but single-rule is
+ > better, i think.
+
+ Single-rule is nice but will always have the problem of either setting
+ restrictions on comments (like not allowing multi-line comments) and/or
+ running the risk of consuming the entire input stream, as noted above.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-91, Next: unnamed-faq-92, Prev: unnamed-faq-90, Up: FAQ
+
+unnamed-faq-91
+==============
+
+
+ Received: from mc-qout4.whowhere.com (mc-qout4.whowhere.com [209.185.123.18])
+ by ee.lbl.gov (8.9.3/8.9.3) with SMTP id IAA05100
+ for <vern@ee.lbl.gov>; Tue, 15 Jun 1999 08:56:06 -0700 (PDT)
+ Received: from Unknown/Local ([?.?.?.?]) by my-deja.com; Tue Jun 15 08:55:43 1999
+ To: vern@ee.lbl.gov
+ Date: Tue, 15 Jun 1999 08:55:43 -0700
+ From: "Aki Niimura" <neko@my-deja.com>
+ Message-ID: <KNONDOHDOBGAEAAA@my-deja.com>
+ Mime-Version: 1.0
+ Cc:
+ X-Sent-Mail: on
+ Reply-To:
+ X-Mailer: MailCity Service
+ Subject: A question on flex C++ scanner
+ X-Sender-Ip: 12.72.207.61
+ Organization: My Deja Email (http://www.my-deja.com:80)
+ Content-Type: text/plain; charset=us-ascii
+ Content-Transfer-Encoding: 7bit
+
+ Dear Dr. Paxon,
+
+ I have been using flex for years.
+ It works very well on many projects.
+ Most case, I used it to generate a scanner on C language.
+ However, one project I needed to generate a scanner
+ on C++ lanuage. Thanks to your enhancement, flex did
+ the job.
+
+ Currently, I'm working on enhancing my previous project.
+ I need to deal with multiple input streams (recursive
+ inclusion) in this scanner (C++).
+ I did similar thing for another scanner (C) as you
+ explained in your documentation.
+
+ The generated scanner (C++) has necessary methods:
+ - switch_to_buffer(struct yy_buffer_state *b)
+ - yy_create_buffer(istream *is, int sz)
+ - yy_delete_buffer(struct yy_buffer_state *b)
+
+ However, I couldn't figure out how to access current
+ buffer (yy_current_buffer).
+
+ yy_current_buffer is a protected member of yyFlexLexer.
+ I can't access it directly.
+ Then, I thought yy_create_buffer() with is = 0 might
+ return current stream buffer. But it seems not as far
+ as I checked the source. (flex 2.5.4)
+
+ I went through the Web in addition to Flex documentation.
+ However, it hasn't been successful, so far.
+
+ It is not my intention to bother you, but, can you
+ comment about how to obtain the current stream buffer?
+
+ Your response would be highly appreciated.
+
+ Best regards,
+ Aki Niimura
+
+ --== Sent via Deja.com http://www.deja.com/ ==--
+ Share what you know. Learn what you don't.
+
+
+File: flex.info, Node: unnamed-faq-92, Next: unnamed-faq-93, Prev: unnamed-faq-91, Up: FAQ
+
+unnamed-faq-92
+==============
+
+
+ To: neko@my-deja.com
+ Subject: Re: A question on flex C++ scanner
+ In-reply-to: Your message of Tue, 15 Jun 1999 08:55:43 PDT.
+ Date: Tue, 15 Jun 1999 09:04:24 PDT
+ From: Vern Paxson <vern>
+
+ > However, I couldn't figure out how to access current
+ > buffer (yy_current_buffer).
+
+ Derive your own subclass from yyFlexLexer.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-93, Next: unnamed-faq-94, Prev: unnamed-faq-92, Up: FAQ
+
+unnamed-faq-93
+==============
+
+
+ To: "Stones, Darren" <Darren.Stones@nectech.co.uk>
+ Subject: Re: You're the man to see?
+ In-reply-to: Your message of Wed, 23 Jun 1999 11:10:29 PDT.
+ Date: Wed, 23 Jun 1999 09:01:40 PDT
+ From: Vern Paxson <vern>
+
+ > I hope you can help me. I am using Flex and Bison to produce an interpreted
+ > language. However all goes well until I try to implement an IF statement or
+ > a WHILE. I cannot get this to work as the parser parses all the conditions
+ > eg. the TRUE and FALSE conditons to check for a rule match. So I cannot
+ > make a decision!!
+
+ You need to use the parser to build a parse tree (= abstract syntax trwee),
+ and when that's all done you recursively evaluate the tree, binding variables
+ to values at that time.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-94, Next: unnamed-faq-95, Prev: unnamed-faq-93, Up: FAQ
+
+unnamed-faq-94
+==============
+
+
+ To: Petr Danecek <petr@ics.cas.cz>
+ Subject: Re: flex - question
+ In-reply-to: Your message of Mon, 28 Jun 1999 19:21:41 PDT.
+ Date: Fri, 02 Jul 1999 16:52:13 PDT
+ From: Vern Paxson <vern>
+
+ > file, it takes an enormous amount of time. It is funny, because the
+ > source code has only 12 rules!!! I think it looks like an exponencial
+ > growth.
+
+ Right, that's the problem - some patterns (those with a lot of
+ ambiguity, where yours has because at any given time the scanner can
+ be in the middle of all sorts of combinations of the different
+ rules) blow up exponentially.
+
+ For your rules, there is an easy fix. Change the ".*" that comes fater
+ the directory name to "[^ ]*". With that in place, the rules are no
+ longer nearly so ambiguous, because then once one of the directories
+ has been matched, no other can be matched (since they all require a
+ leading blank).
+
+ If that's not an acceptable solution, then you can enter a start state
+ to pick up the .*\n after each directory is matched.
+
+ Also note that for speed, you'll want to add a ".*" rule at the end,
+ otherwise rules that don't match any of the patterns will be matched
+ very slowly, a character at a time.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-95, Next: unnamed-faq-96, Prev: unnamed-faq-94, Up: FAQ
+
+unnamed-faq-95
+==============
+
+
+ To: Tielman Koekemoer <tielman@spi.co.za>
+ Subject: Re: Please help.
+ In-reply-to: Your message of Thu, 08 Jul 1999 13:20:37 PDT.
+ Date: Thu, 08 Jul 1999 08:20:39 PDT
+ From: Vern Paxson <vern>
+
+ > I was hoping you could help me with my problem.
+ >
+ > I tried compiling (gnu)flex on a Solaris 2.4 machine
+ > but when I ran make (after configure) I got an error.
+ >
+ > --------------------------------------------------------------
+ > gcc -c -I. -I. -g -O parse.c
+ > ./flex -t -p ./scan.l >scan.c
+ > sh: ./flex: not found
+ > *** Error code 1
+ > make: Fatal error: Command failed for target `scan.c'
+ > -------------------------------------------------------------
+ >
+ > What's strange to me is that I'm only
+ > trying to install flex now. I then edited the Makefile to
+ > and changed where it says "FLEX = flex" to "FLEX = lex"
+ > ( lex: the native Solaris one ) but then it complains about
+ > the "-p" option. Is there any way I can compile flex without
+ > using flex or lex?
+ >
+ > Thanks so much for your time.
+
+ You managed to step on the bootstrap sequence, which first copies
+ initscan.c to scan.c in order to build flex. Try fetching a fresh
+ distribution from ftp.ee.lbl.gov. (Or you can first try removing
+ ".bootstrap" and doing a make again.)
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-96, Next: unnamed-faq-97, Prev: unnamed-faq-95, Up: FAQ
+
+unnamed-faq-96
+==============
+
+
+ To: Tielman Koekemoer <tielman@spi.co.za>
+ Subject: Re: Please help.
+ In-reply-to: Your message of Fri, 09 Jul 1999 09:16:14 PDT.
+ Date: Fri, 09 Jul 1999 00:27:20 PDT
+ From: Vern Paxson <vern>
+
+ > First I removed .bootstrap (and ran make) - no luck. I downloaded the
+ > software but I still have the same problem. Is there anything else I
+ > could try.
+
+ Try:
+
+ cp initscan.c scan.c
+ touch scan.c
+ make scan.o
+
+ If this last tries to first build scan.c from scan.l using ./flex, then
+ your "make" is broken, in which case compile scan.c to scan.o by hand.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-97, Next: unnamed-faq-98, Prev: unnamed-faq-96, Up: FAQ
+
+unnamed-faq-97
+==============
+
+
+ To: Sumanth Kamenani <skamenan@crl.nmsu.edu>
+ Subject: Re: Error
+ In-reply-to: Your message of Mon, 19 Jul 1999 23:08:41 PDT.
+ Date: Tue, 20 Jul 1999 00:18:26 PDT
+ From: Vern Paxson <vern>
+
+ > I am getting a compilation error. The error is given as "unknown symbol- yylex".
+
+ The parser relies on calling yylex(), but you're instead using the C++ scanning
+ class, so you need to supply a yylex() "glue" function that calls an instance
+ scanner of the scanner (e.g., "scanner->yylex()").
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-98, Next: unnamed-faq-99, Prev: unnamed-faq-97, Up: FAQ
+
+unnamed-faq-98
+==============
+
+
+ To: daniel@synchrods.synchrods.COM (Daniel Senderowicz)
+ Subject: Re: lex
+ In-reply-to: Your message of Mon, 22 Nov 1999 11:19:04 PST.
+ Date: Tue, 23 Nov 1999 15:54:30 PST
+ From: Vern Paxson <vern>
+
+ Well, your problem is the
+
+ switch (yybgin-yysvec-1) { /* witchcraft */
+
+ at the beginning of lex rules. "witchcraft" == "non-portable". It's
+ assuming knowledge of the AT&T lex's internal variables.
+
+ For flex, you can probably do the equivalent using a switch on YYSTATE.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-99, Next: unnamed-faq-100, Prev: unnamed-faq-98, Up: FAQ
+
+unnamed-faq-99
+==============
+
+
+ To: archow@hss.hns.com
+ Subject: Re: Regarding distribution of flex and yacc based grammars
+ In-reply-to: Your message of Sun, 19 Dec 1999 17:50:24 +0530.
+ Date: Wed, 22 Dec 1999 01:56:24 PST
+ From: Vern Paxson <vern>
+
+ > When we provide the customer with an object code distribution, is it
+ > necessary for us to provide source
+ > for the generated C files from flex and bison since they are generated by
+ > flex and bison ?
+
+ For flex, no. I don't know what the current state of this is for bison.
+
+ > Also, is there any requrirement for us to neccessarily provide source for
+ > the grammar files which are fed into flex and bison ?
+
+ Again, for flex, no.
+
+ See the file "COPYING" in the flex distribution for the legalese.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-100, Next: unnamed-faq-101, Prev: unnamed-faq-99, Up: FAQ
+
+unnamed-faq-100
+===============
+
+
+ To: Martin Gallwey <gallweym@hyperion.moe.ul.ie>
+ Subject: Re: Flex, and self referencing rules
+ In-reply-to: Your message of Sun, 20 Feb 2000 01:01:21 PST.
+ Date: Sat, 19 Feb 2000 18:33:16 PST
+ From: Vern Paxson <vern>
+
+ > However, I do not use unput anywhere. I do use self-referencing
+ > rules like this:
+ >
+ > UnaryExpr ({UnionExpr})|("-"{UnaryExpr})
+
+ You can't do this - flex is *not* a parser like yacc (which does indeed
+ allow recursion), it is a scanner that's confined to regular expressions.
+
+ Vern
+
+
+File: flex.info, Node: unnamed-faq-101, Next: What is the difference between YYLEX_PARAM and YY_DECL?, Prev: unnamed-faq-100, Up: FAQ
+
+unnamed-faq-101
+===============
+
+
+ To: slg3@lehigh.edu (SAMUEL L. GULDEN)
+ Subject: Re: Flex problem
+ In-reply-to: Your message of Thu, 02 Mar 2000 12:29:04 PST.
+ Date: Thu, 02 Mar 2000 23:00:46 PST
+ From: Vern Paxson <vern>
+
+ If this is exactly your program:
+
+ > digit [0-9]
+ > digits {digit}+
+ > whitespace [ \t\n]+
+ >
+ > %%
+ > "[" { printf("open_brac\n");}
+ > "]" { printf("close_brac\n");}
+ > "+" { printf("addop\n");}
+ > "*" { printf("multop\n");}
+ > {digits} { printf("NUMBER = %s\n", yytext);}
+ > whitespace ;
+
+ then the problem is that the last rule needs to be "{whitespace}" !
+
+ Vern
+
+
+File: flex.info, Node: What is the difference between YYLEX_PARAM and YY_DECL?, Next: Why do I get "conflicting types for yylex" error?, Prev: unnamed-faq-101, Up: FAQ
+
+What is the difference between YYLEX_PARAM and YY_DECL?
+=======================================================
+
+YYLEX_PARAM is not a flex symbol. It is for Bison. It tells Bison to
+pass extra params when it calls yylex() from the parser.
+
+ YY_DECL is the Flex declaration of yylex. The default is similar to
+this:
+
+
+ #define int yy_lex ()
+
+
+File: flex.info, Node: Why do I get "conflicting types for yylex" error?, Next: How do I access the values set in a Flex action from within a Bison action?, Prev: What is the difference between YYLEX_PARAM and YY_DECL?, Up: FAQ
+
+Why do I get "conflicting types for yylex" error?
+=================================================
+
+This is a compiler error regarding a generated Bison parser, not a Flex
+scanner. It means you need a prototype of yylex() in the top of the
+Bison file. Be sure the prototype matches YY_DECL.
+
+
+File: flex.info, Node: How do I access the values set in a Flex action from within a Bison action?, Prev: Why do I get "conflicting types for yylex" error?, Up: FAQ
+
+How do I access the values set in a Flex action from within a Bison action?
+===========================================================================
+
+With $1, $2, $3, etc. These are called "Semantic Values" in the Bison
+manual. See *Note Top: (bison)Top.
+
+
+File: flex.info, Node: Appendices, Next: Indices, Prev: FAQ, Up: Top
+
+Appendix A Appendices
+*********************
+
+* Menu:
+
+* Makefiles and Flex::
+* Bison Bridge::
+* M4 Dependency::
+* Common Patterns::
+
+
+File: flex.info, Node: Makefiles and Flex, Next: Bison Bridge, Prev: Appendices, Up: Appendices
+
+A.1 Makefiles and Flex
+======================
+
+In this appendix, we provide tips for writing Makefiles to build your
+scanners.
+
+ In a traditional build environment, we say that the `.c' files are
+the sources, and the `.o' files are the intermediate files. When using
+`flex', however, the `.l' files are the sources, and the generated `.c'
+files (along with the `.o' files) are the intermediate files. This
+requires you to carefully plan your Makefile.
+
+ Modern `make' programs understand that `foo.l' is intended to
+generate `lex.yy.c' or `foo.c', and will behave accordingly(1)(2). The
+following Makefile does not explicitly instruct `make' how to build
+`foo.c' from `foo.l'. Instead, it relies on the implicit rules of the
+`make' program to build the intermediate file, `scan.c':
+
+
+ # Basic Makefile -- relies on implicit rules
+ # Creates "myprogram" from "scan.l" and "myprogram.c"
+ #
+ LEX=flex
+ myprogram: scan.o myprogram.o
+ scan.o: scan.l
+
+ For simple cases, the above may be sufficient. For other cases, you
+may have to explicitly instruct `make' how to build your scanner. The
+following is an example of a Makefile containing explicit rules:
+
+
+ # Basic Makefile -- provides explicit rules
+ # Creates "myprogram" from "scan.l" and "myprogram.c"
+ #
+ LEX=flex
+ myprogram: scan.o myprogram.o
+ $(CC) -o $@ $(LDFLAGS) $^
+
+ myprogram.o: myprogram.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $^
+
+ scan.o: scan.c
+ $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $^
+
+ scan.c: scan.l
+ $(LEX) $(LFLAGS) -o $@ $^
+
+ clean:
+ $(RM) *.o scan.c
+
+ Notice in the above example that `scan.c' is in the `clean' target.
+This is because we consider the file `scan.c' to be an intermediate
+file.
+
+ Finally, we provide a realistic example of a `flex' scanner used
+with a `bison' parser(3). There is a tricky problem we have to deal
+with. Since a `flex' scanner will typically include a header file
+(e.g., `y.tab.h') generated by the parser, we need to be sure that the
+header file is generated BEFORE the scanner is compiled. We handle this
+case in the following example:
+
+
+ # Makefile example -- scanner and parser.
+ # Creates "myprogram" from "scan.l", "parse.y", and "myprogram.c"
+ #
+ LEX = flex
+ YACC = bison -y
+ YFLAGS = -d
+ objects = scan.o parse.o myprogram.o
+
+ myprogram: $(objects)
+ scan.o: scan.l parse.c
+ parse.o: parse.y
+ myprogram.o: myprogram.c
+
+ In the above example, notice the line,
+
+
+ scan.o: scan.l parse.c
+
+ , which lists the file `parse.c' (the generated parser) as a
+dependency of `scan.o'. We want to ensure that the parser is created
+before the scanner is compiled, and the above line seems to do the
+trick. Feel free to experiment with your specific implementation of
+`make'.
+
+ For more details on writing Makefiles, see *Note Top: (make)Top.
+
+ ---------- Footnotes ----------
+
+ (1) GNU `make' and GNU `automake' are two such programs that provide
+implicit rules for flex-generated scanners.
+
+ (2) GNU `automake' may generate code to execute flex in
+lex-compatible mode, or to stdout. If this is not what you want, then
+you should provide an explicit rule in your Makefile.am
+
+ (3) This example also applies to yacc parsers.
+
+
+File: flex.info, Node: Bison Bridge, Next: M4 Dependency, Prev: Makefiles and Flex, Up: Appendices
+
+A.2 C Scanners with Bison Parsers
+=================================
+
+This section describes the `flex' features useful when integrating
+`flex' with `GNU bison'(1). Skip this section if you are not using
+`bison' with your scanner. Here we discuss only the `flex' half of the
+`flex' and `bison' pair. We do not discuss `bison' in any detail. For
+more information about generating `bison' parsers, see *Note Top:
+(bison)Top.
+
+ A compatible `bison' scanner is generated by declaring `%option
+bison-bridge' or by supplying `--bison-bridge' when invoking `flex'
+from the command line. This instructs `flex' that the macro `yylval'
+may be used. The data type for `yylval', `YYSTYPE', is typically
+defined in a header file, included in section 1 of the `flex' input
+file. For a list of functions and macros available, *Note
+bison-functions::.
+
+ The declaration of yylex becomes,
+
+
+ int yylex ( YYSTYPE * lvalp, yyscan_t scanner );
+
+ If `%option bison-locations' is specified, then the declaration
+becomes,
+
+
+ int yylex ( YYSTYPE * lvalp, YYLTYPE * llocp, yyscan_t scanner );
+
+ Note that the macros `yylval' and `yylloc' evaluate to pointers.
+Support for `yylloc' is optional in `bison', so it is optional in
+`flex' as well. The following is an example of a `flex' scanner that is
+compatible with `bison'.
+
+
+ /* Scanner for "C" assignment statements... sort of. */
+ %{
+ #include "y.tab.h" /* Generated by bison. */
+ %}
+
+ %option bison-bridge bison-locations
+ %
+
+ [[:digit:]]+ { yylval->num = atoi(yytext); return NUMBER;}
+ [[:alnum:]]+ { yylval->str = strdup(yytext); return STRING;}
+ "="|";" { return yytext[0];}
+ . {}
+ %
+
+ As you can see, there really is no magic here. We just use `yylval'
+as we would any other variable. The data type of `yylval' is generated
+by `bison', and included in the file `y.tab.h'. Here is the
+corresponding `bison' parser:
+
+
+ /* Parser to convert "C" assignments to lisp. */
+ %{
+ /* Pass the argument to yyparse through to yylex. */
+ #define YYPARSE_PARAM scanner
+ #define YYLEX_PARAM scanner
+ %}
+ %locations
+ %pure_parser
+ %union {
+ int num;
+ char* str;
+ }
+ %token <str> STRING
+ %token <num> NUMBER
+ %%
+ assignment:
+ STRING '=' NUMBER ';' {
+ printf( "(setf %s %d)", $1, $3 );
+ }
+ ;
+
+ ---------- Footnotes ----------
+
+ (1) The features described here are purely optional, and are by no
+means the only way to use flex with bison. We merely provide some glue
+to ease development of your parser-scanner pair.
+
+
+File: flex.info, Node: M4 Dependency, Next: Common Patterns, Prev: Bison Bridge, Up: Appendices
+
+A.3 M4 Dependency
+=================
+
+The macro processor `m4'(1) must be installed wherever flex is
+installed. `flex' invokes `m4', found by searching the directories in
+the `PATH' environment variable. Any code you place in section 1 or in
+the actions will be sent through m4. Please follow these rules to
+protect your code from unwanted `m4' processing.
+
+ * Do not use symbols that begin with, `m4_', such as, `m4_define',
+ or `m4_include', since those are reserved for `m4' macro names. If
+ for some reason you need m4_ as a prefix, use a preprocessor
+ #define to get your symbol past m4 unmangled.
+
+ * Do not use the strings `[[' or `]]' anywhere in your code. The
+ former is not valid in C, except within comments and strings, but
+ the latter is valid in code such as `x[y[z]]'. The solution is
+ simple. To get the literal string `"]]"', use `"]""]"'. To get the
+ array notation `x[y[z]]', use `x[y[z] ]'. Flex will attempt to
+ detect these sequences in user code, and escape them. However,
+ it's best to avoid this complexity where possible, by removing
+ such sequences from your code.
+
+
+ `m4' is only required at the time you run `flex'. The generated
+scanner is ordinary C or C++, and does _not_ require `m4'.
+
+ ---------- Footnotes ----------
+
+ (1) The use of m4 is subject to change in future revisions of flex.
+It is not part of the public API of flex. Do not depend on it.
+
+
+File: flex.info, Node: Common Patterns, Prev: M4 Dependency, Up: Appendices
+
+A.4 Common Patterns
+===================
+
+This appendix provides examples of common regular expressions you might
+use in your scanner.
+
+* Menu:
+
+* Numbers::
+* Identifiers::
+* Quoted Constructs::
+* Addresses::
+
+
+File: flex.info, Node: Numbers, Next: Identifiers, Up: Common Patterns
+
+A.4.1 Numbers
+-------------
+
+C99 decimal constant
+ `([[:digit:]]{-}[0])[[:digit:]]*'
+
+C99 hexadecimal constant
+ `0[xX][[:xdigit:]]+'
+
+C99 octal constant
+ `0[0123456]*'
+
+C99 floating point constant
+
+ {dseq} ([[:digit:]]+)
+ {dseq_opt} ([[:digit:]]*)
+ {frac} (({dseq_opt}"."{dseq})|{dseq}".")
+ {exp} ([eE][+-]?{dseq})
+ {exp_opt} ({exp}?)
+ {fsuff} [flFL]
+ {fsuff_opt} ({fsuff}?)
+ {hpref} (0[xX])
+ {hdseq} ([[:xdigit:]]+)
+ {hdseq_opt} ([[:xdigit:]]*)
+ {hfrac} (({hdseq_opt}"."{hdseq})|({hdseq}"."))
+ {bexp} ([pP][+-]?{dseq})
+ {dfc} (({frac}{exp_opt}{fsuff_opt})|({dseq}{exp}{fsuff_opt}))
+ {hfc} (({hpref}{hfrac}{bexp}{fsuff_opt})|({hpref}{hdseq}{bexp}{fsuff_opt}))
+
+ {c99_floating_point_constant} ({dfc}|{hfc})
+
+ See C99 section 6.4.4.2 for the gory details.
+
+
+
+File: flex.info, Node: Identifiers, Next: Quoted Constructs, Prev: Numbers, Up: Common Patterns
+
+A.4.2 Identifiers
+-----------------
+
+C99 Identifier
+
+ ucn ((\\u([[:xdigit:]]{4}))|(\\U([[:xdigit:]]{8})))
+ nondigit [_[:alpha:]]
+ c99_id ([_[:alpha:]]|{ucn})([_[:alnum:]]|{ucn})*
+
+ Technically, the above pattern does not encompass all possible C99
+ identifiers, since C99 allows for "implementation-defined"
+ characters. In practice, C compilers follow the above pattern,
+ with the addition of the `$' character.
+
+UTF-8 Encoded Unicode Code Point
+
+ [\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF]([\x80-\xBF]{2})|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF]([\x80-\xBF]{2})|[\xF1-\xF3]([\x80-\xBF]{3})|\xF4[\x80-\x8F]([\x80-\xBF]{2})
+
+
+
+File: flex.info, Node: Quoted Constructs, Next: Addresses, Prev: Identifiers, Up: Common Patterns
+
+A.4.3 Quoted Constructs
+-----------------------
+
+C99 String Literal
+ `L?\"([^\"\\\n]|(\\['\"?\\abfnrtv])|(\\([0123456]{1,3}))|(\\x[[:xdigit:]]+)|(\\u([[:xdigit:]]{4}))|(\\U([[:xdigit:]]{8})))*\"'
+
+C99 Comment
+ `("/*"([^*]|"*"[^/])*"*/")|("/"(\\\n)*"/"[^\n]*)'
+
+ Note that in C99, a `//'-style comment may be split across lines,
+ and, contrary to popular belief, does not include the trailing
+ `\n' character.
+
+ A better way to scan `/* */' comments is by line, rather than
+ matching possibly huge comments all at once. This will allow you
+ to scan comments of unlimited length, as long as line breaks
+ appear at sane intervals. This is also more efficient when used
+ with automatic line number processing. *Note option-yylineno::.
+
+
+ <INITIAL>{
+ "/*" BEGIN(COMMENT);
+ }
+ <COMMENT>{
+ "*/" BEGIN(0);
+ [^*\n]+ ;
+ "*"[^/] ;
+ \n ;
+ }
+
+
+
+File: flex.info, Node: Addresses, Prev: Quoted Constructs, Up: Common Patterns
+
+A.4.4 Addresses
+---------------
+
+IPv4 Address
+ `(([[:digit:]]{1,3}"."){3}([[:digit:]]{1,3}))'
+
+IPv6 Address
+
+ hex4 ([[:xdigit:]]{1,4})
+ hexseq ({hex4}(:{hex4}*))
+ hexpart ({hexseq}|({hexseq}::({hexseq}?))|::{hexseq})
+ IPv6address ({hexpart}(":"{IPv4address})?)
+
+ See RFC2373 for details.
+
+URI
+ `(([^:/?#]+):)?("//"([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?'
+
+ This pattern is nearly useless, since it allows just about any
+ character to appear in a URI, including spaces and control
+ characters. See RFC2396 for details.
+
+
+
+File: flex.info, Node: Indices, Prev: Appendices, Up: Top
+
+Indices
+*******
+
+* Menu:
+
+* Concept Index::
+* Index of Functions and Macros::
+* Index of Variables::
+* Index of Data Types::
+* Index of Hooks::
+* Index of Scanner Options::
+
diff --git a/doc/flex.info-2 b/doc/flex.info-2
index b2ca705..27cffbd 100644
--- a/doc/flex.info-2
+++ b/doc/flex.info-2
Binary files differ
diff --git a/doc/flex.info-3 b/doc/flex.info-3
deleted file mode 100644
index 7884ba1..0000000
--- a/doc/flex.info-3
+++ /dev/null
@@ -1,1371 +0,0 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* flex: (flex). Fast lexical analyzer generator (lex replacement).
-END-INFO-DIR-ENTRY
-
-
- The flex manual is placed under the same licensing conditions as the
-rest of flex:
-
- Copyright (C) 1990, 1997 The Regents of the University of California.
-All rights reserved.
-
- 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.
-
-File: flex.info, Node: Debugging Options, Next: Miscellaneous Options, Prev: Options for Scanner Speed and Size, Up: Scanner Options
-
-Debugging Options
-=================
-
-`-b, --backup, `%option backup''
- Generate backing-up information to `lex.backup'. This is a list of
- scanner states which require backing up and the input characters on
- which they do so. By adding rules one can remove backing-up
- states. If _all_ backing-up states are eliminated and `-Cf' or
- `-CF' is used, the generated scanner will run faster (see the
- `--perf-report' flag). Only users who wish to squeeze every last
- cycle out of their scanners need worry about this option. (*note
- Performance::).
-
-`-d, --debug, `%option debug''
- makes the generated scanner run in "debug" mode. Whenever a
- pattern is recognized and the global variable `yy_flex_debug' is
- non-zero (which is the default), the scanner will write to
- `stderr' a line of the form:
-
-
- -accepting rule at line 53 ("the matched text")
-
- The line number refers to the location of the rule in the file
- defining the scanner (i.e., the file that was fed to flex).
- Messages are also generated when the scanner backs up, accepts the
- default rule, reaches the end of its input buffer (or encounters a
- NUL; at this point, the two look the same as far as the scanner's
- concerned), or reaches an end-of-file.
-
-`-p, --perf-report, `%option perf-report''
- generates a performance report to `stderr'. The report consists of
- comments regarding features of the `flex' input file which will
- cause a serious loss of performance in the resulting scanner. If
- you give the flag twice, you will also get comments regarding
- features that lead to minor performance losses.
-
- Note that the use of `REJECT', and variable trailing context
- (*note Limitations::) entails a substantial performance penalty;
- use of `yymore()', the `^' operator, and the `--interactive' flag
- entail minor performance penalties.
-
-`-s, --nodefault, `%option nodefault''
- causes the _default rule_ (that unmatched scanner input is echoed
- to `stdout)' to be suppressed. If the scanner encounters input
- that does not match any of its rules, it aborts with an error.
- This option is useful for finding holes in a scanner's rule set.
-
-`-T, --trace, `%option trace''
- makes `flex' run in "trace" mode. It will generate a lot of
- messages to `stderr' concerning the form of the input and the
- resultant non-deterministic and deterministic finite automata.
- This option is mostly for use in maintaining `flex'.
-
-`-w, --nowarn, `%option nowarn''
- suppresses warning messages.
-
-`-v, --verbose, `%option verbose''
- specifies that `flex' should write to `stderr' a summary of
- statistics regarding the scanner it generates. Most of the
- statistics are meaningless to the casual `flex' user, but the
- first line identifies the version of `flex' (same as reported by
- `--version'), and the next line the flags used when generating the
- scanner, including those that are on by default.
-
-`--warn, `%option warn''
- warn about certain things. In particular, if the default rule can
- be matched but no defualt rule has been given, the flex will warn
- you. We recommend using this option always.
-
-
-
-File: flex.info, Node: Miscellaneous Options, Prev: Debugging Options, Up: Scanner Options
-
-Miscellaneous Options
-=====================
-
-`-c'
- is a do-nothing option included for POSIX compliance.
-
- generates
-
-`-h, -?, --help'
- generates a "help" summary of `flex''s options to `stdout' and
- then exits.
-
-`-n'
- is another do-nothing option included only for POSIX compliance.
-
-`-V, --version'
- prints the version number to `stdout' and exits.
-
-
-
-File: flex.info, Node: Performance, Next: Cxx, Prev: Scanner Options, Up: Top
-
-Performance Considerations
-**************************
-
- The main design goal of `flex' is that it generate high-performance
-scanners. It has been optimized for dealing well with large sets of
-rules. Aside from the effects on scanner speed of the table compression
-`-C' options outlined above, there are a number of options/actions
-which degrade performance. These are, from most expensive to least:
-
-
- REJECT
- arbitrary trailing context
-
- pattern sets that require backing up
- %option yylineno
- %array
-
- %option interactive
- %option always-interactive
-
- @samp{^} beginning-of-line operator
- yymore()
-
- with the first two all being quite expensive and the last two being
-quite cheap. Note also that `unput()' is implemented as a routine call
-that potentially does quite a bit of work, while `yyless()' is a
-quite-cheap macro. So if you are just putting back some excess text you
-scanned, use `ss()'.
-
- `REJECT' should be avoided at all costs when performance is
-important. It is a particularly expensive option.
-
- There is one case when `%option yylineno' can be expensive. That is
-when your patterns match long tokens that could _possibly_ contain a
-newline character. There is no performance penalty for rules that can
-not possibly match newlines, since flex does not need to check them for
-newlines. In general, you should avoid rules such as `[^f]+', which
-match very long tokens, including newlines, and may possibly match your
-entire file! A better approach is to separate `[^f]+' into two rules:
-
-
- %option yylineno
- %%
- [^f\n]+
- \n+
-
- The above scanner does not incur a performance penalty.
-
- Getting rid of backing up is messy and often may be an enormous
-amount of work for a complicated scanner. In principal, one begins by
-using the `-b' flag to generate a `lex.backup' file. For example, on
-the input:
-
-
- %%
- foo return TOK_KEYWORD;
- foobar return TOK_KEYWORD;
-
- the file looks like:
-
-
- State #6 is non-accepting -
- associated rule line numbers:
- 2 3
- out-transitions: [ o ]
- jam-transitions: EOF [ \001-n p-\177 ]
-
- State #8 is non-accepting -
- associated rule line numbers:
- 3
- out-transitions: [ a ]
- jam-transitions: EOF [ \001-` b-\177 ]
-
- State #9 is non-accepting -
- associated rule line numbers:
- 3
- out-transitions: [ r ]
- jam-transitions: EOF [ \001-q s-\177 ]
-
- Compressed tables always back up.
-
- The first few lines tell us that there's a scanner state in which it
-can make a transition on an 'o' but not on any other character, and
-that in that state the currently scanned text does not match any rule.
-The state occurs when trying to match the rules found at lines 2 and 3
-in the input file. If the scanner is in that state and then reads
-something other than an 'o', it will have to back up to find a rule
-which is matched. With a bit of headscratching one can see that this
-must be the state it's in when it has seen `fo'. When this has
-happened, if anything other than another `o' is seen, the scanner will
-have to back up to simply match the `f' (by the default rule).
-
- The comment regarding State #8 indicates there's a problem when
-`foob' has been scanned. Indeed, on any character other than an `a',
-the scanner will have to back up to accept "foo". Similarly, the
-comment for State #9 concerns when `fooba' has been scanned and an `r'
-does not follow.
-
- The final comment reminds us that there's no point going to all the
-trouble of removing backing up from the rules unless we're using `-Cf'
-or `-CF', since there's no performance gain doing so with compressed
-scanners.
-
- The way to remove the backing up is to add "error" rules:
-
-
- %%
- foo return TOK_KEYWORD;
- foobar return TOK_KEYWORD;
-
- fooba |
- foob |
- fo {
- /* false alarm, not really a keyword */
- return TOK_ID;
- }
-
- Eliminating backing up among a list of keywords can also be done
-using a "catch-all" rule:
-
-
- %%
- foo return TOK_KEYWORD;
- foobar return TOK_KEYWORD;
-
- [a-z]+ return TOK_ID;
-
- This is usually the best solution when appropriate.
-
- Backing up messages tend to cascade. With a complicated set of rules
-it's not uncommon to get hundreds of messages. If one can decipher
-them, though, it often only takes a dozen or so rules to eliminate the
-backing up (though it's easy to make a mistake and have an error rule
-accidentally match a valid token. A possible future `flex' feature
-will be to automatically add rules to eliminate backing up).
-
- It's important to keep in mind that you gain the benefits of
-eliminating backing up only if you eliminate _every_ instance of
-backing up. Leaving just one means you gain nothing.
-
- _Variable_ trailing context (where both the leading and trailing
-parts do not have a fixed length) entails almost the same performance
-loss as `REJECT' (i.e., substantial). So when possible a rule like:
-
-
- %%
- mouse|rat/(cat|dog) run();
-
- is better written:
-
-
- %%
- mouse/cat|dog run();
- rat/cat|dog run();
-
- or as
-
-
- %%
- mouse|rat/cat run();
- mouse|rat/dog run();
-
- Note that here the special '|' action does _not_ provide any
-savings, and can even make things worse (*note Limitations::).
-
- Another area where the user can increase a scanner's performance (and
-one that's easier to implement) arises from the fact that the longer the
-tokens matched, the faster the scanner will run. This is because with
-long tokens the processing of most input characters takes place in the
-(short) inner scanning loop, and does not often have to go through the
-additional work of setting up the scanning environment (e.g., `yytext')
-for the action. Recall the scanner for C comments:
-
-
- %x comment
- %%
- int line_num = 1;
-
- "/*" BEGIN(comment);
-
- <comment>[^*\n]*
- <comment>"*"+[^*/\n]*
- <comment>\n ++line_num;
- <comment>"*"+"/" BEGIN(INITIAL);
-
- This could be sped up by writing it as:
-
-
- %x comment
- %%
- int line_num = 1;
-
- "/*" BEGIN(comment);
-
- <comment>[^*\n]*
- <comment>[^*\n]*\n ++line_num;
- <comment>"*"+[^*/\n]*
- <comment>"*"+[^*/\n]*\n ++line_num;
- <comment>"*"+"/" BEGIN(INITIAL);
-
- Now instead of each newline requiring the processing of another
-action, recognizing the newlines is distributed over the other rules to
-keep the matched text as long as possible. Note that _adding_ rules
-does _not_ slow down the scanner! The speed of the scanner is
-independent of the number of rules or (modulo the considerations given
-at the beginning of this section) how complicated the rules are with
-regard to operators such as `*' and `|'.
-
- A final example in speeding up a scanner: suppose you want to scan
-through a file containing identifiers and keywords, one per line and
-with no other extraneous characters, and recognize all the keywords. A
-natural first approach is:
-
-
- %%
- asm |
- auto |
- break |
- ... etc ...
- volatile |
- while /* it's a keyword */
-
- .|\n /* it's not a keyword */
-
- To eliminate the back-tracking, introduce a catch-all rule:
-
-
- %%
- asm |
- auto |
- break |
- ... etc ...
- volatile |
- while /* it's a keyword */
-
- [a-z]+ |
- .|\n /* it's not a keyword */
-
- Now, if it's guaranteed that there's exactly one word per line, then
-we can reduce the total number of matches by a half by merging in the
-recognition of newlines with that of the other tokens:
-
-
- %%
- asm\n |
- auto\n |
- break\n |
- ... etc ...
- volatile\n |
- while\n /* it's a keyword */
-
- [a-z]+\n |
- .|\n /* it's not a keyword */
-
- One has to be careful here, as we have now reintroduced backing up
-into the scanner. In particular, while _we_ know that there will never
-be any characters in the input stream other than letters or newlines,
-`flex' can't figure this out, and it will plan for possibly needing to
-back up when it has scanned a token like `auto' and then the next
-character is something other than a newline or a letter. Previously it
-would then just match the `auto' rule and be done, but now it has no
-`auto' rule, only a `auto\n' rule. To eliminate the possibility of
-backing up, we could either duplicate all rules but without final
-newlines, or, since we never expect to encounter such an input and
-therefore don't how it's classified, we can introduce one more
-catch-all rule, this one which doesn't include a newline:
-
-
- %%
- asm\n |
- auto\n |
- break\n |
- ... etc ...
- volatile\n |
- while\n /* it's a keyword */
-
- [a-z]+\n |
- [a-z]+ |
- .|\n /* it's not a keyword */
-
- Compiled with `-Cf', this is about as fast as one can get a `flex'
-scanner to go for this particular problem.
-
- A final note: `flex' is slow when matching `NUL's, particularly when
-a token contains multiple `NUL's. It's best to write rules which match
-_short_ amounts of text if it's anticipated that the text will often
-include `NUL's.
-
- Another final note regarding performance: as mentioned in *Note
-Matching::, dynamically resizing `yytext' to accommodate huge tokens is
-a slow process because it presently requires that the (huge) token be
-rescanned from the beginning. Thus if performance is vital, you should
-attempt to match "large" quantities of text but not "huge" quantities,
-where the cutoff between the two is at about 8K characters per token.
-
-
-File: flex.info, Node: Cxx, Next: Reentrant, Prev: Performance, Up: Top
-
-Generating C++ Scanners
-***********************
-
- *IMPORTANT*: the present form of the scanning class is _experimental_
-and may change considerably between major releases.
-
- `flex' provides two different ways to generate scanners for use with
-C++. The first way is to simply compile a scanner generated by `flex'
-using a C++ compiler instead of a C compiler. You should not encounter
-any compilation errors (*note Reporting Bugs::). You can then use C++
-code in your rule actions instead of C code. Note that the default
-input source for your scanner remains `yyin', and default echoing is
-still done to `yyout'. Both of these remain `FILE *' variables and not
-C++ _streams_.
-
- You can also use `flex' to generate a C++ scanner class, using the
-`-+' option (or, equivalently, `%option c++)', which is automatically
-specified if the name of the `flex' executable ends in a '+', such as
-`flex++'. When using this option, `flex' defaults to generating the
-scanner to the file `lex.yy.cc' instead of `lex.yy.c'. The generated
-scanner includes the header file `FlexLexer.h', which defines the
-interface to two C++ classes.
-
- The first class, `FlexLexer', provides an abstract base class
-defining the general scanner class interface. It provides the
-following member functions:
-
-`const char* YYText()'
- returns the text of the most recently matched token, the
- equivalent of `yytext'.
-
-`int YYLeng()'
- returns the length of the most recently matched token, the
- equivalent of `yyleng'.
-
-`int lineno() const'
- returns the current input line number (see `%option yylineno)', or
- `1' if `%option yylineno' was not used.
-
-`void set_debug( int flag )'
- sets the debugging flag for the scanner, equivalent to assigning to
- `yy_flex_debug' (*note Scanner Options::). Note that you must
- build the scannerusing `%option debug' to include debugging
- information in it.
-
-`int debug() const'
- returns the current setting of the debugging flag.
-
- Also provided are member functions equivalent to
-`yy_switch_to_buffer()', `yy_create_buffer()' (though the first
-argument is an `istream*' object pointer and not a `FILE*)',
-`yy_flush_buffer()', `yy_delete_buffer()', and `yyrestart()' (again,
-the first argument is a `istream*' object pointer).
-
- The second class defined in `FlexLexer.h' is `yyFlexLexer', which is
-derived from `FlexLexer'. It defines the following additional member
-functions:
-
-`yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 )'
- constructs a `yyFlexLexer' object using the given streams for input
- and output. If not specified, the streams default to `cin' and
- `cout', respectively.
-
-`virtual int yylex()'
- performs the same role is `yylex()' does for ordinary `flex'
- scanners: it scans the input stream, consuming tokens, until a
- rule's action returns a value. If you derive a subclass `S' from
- `yyFlexLexer' and want to access the member functions and variables
- of `S' inside `yylex()', then you need to use `%option
- yyclass="S"' to inform `flex' that you will be using that subclass
- instead of `yyFlexLexer'. In this case, rather than generating
- `yyFlexLexer::yylex()', `flex' generates `S::yylex()' (and also
- generates a dummy `yyFlexLexer::yylex()' that calls
- `yyFlexLexer::LexerError()' if called).
-
-`virtual void switch_streams(istream* new_in = 0, ostream* new_out = 0)'
- reassigns `yyin' to `new_in' (if non-null) and `yyout' to
- `new_out' (if non-null), deleting the previous input buffer if
- `yyin' is reassigned.
-
-`int yylex( istream* new_in, ostream* new_out = 0 )'
- first switches the input streams via `switch_streams( new_in,
- new_out )' and then returns the value of `yylex()'.
-
- In addition, `yyFlexLexer' defines the following protected virtual
-functions which you can redefine in derived classes to tailor the
-scanner:
-
-`virtual int LexerInput( char* buf, int max_size )'
- reads up to `max_size' characters into `buf' and returns the
- number of characters read. To indicate end-of-input, return 0
- characters. Note that `interactive' scanners (see the `-B' and
- `-I' flags in *Note Scanner Options::) define the macro
- `YY_INTERACTIVE'. If you redefine `LexerInput()' and need to take
- different actions depending on whether or not the scanner might be
- scanning an interactive input source, you can test for the
- presence of this name via `#ifdef' statements.
-
-`virtual void LexerOutput( const char* buf, int size )'
- writes out `size' characters from the buffer `buf', which, while
- `NUL'-terminated, may also contain internal `NUL's if the
- scanner's rules can match text with `NUL's in them.
-
-`virtual void LexerError( const char* msg )'
- reports a fatal error message. The default version of this
- function writes the message to the stream `cerr' and exits.
-
- Note that a `yyFlexLexer' object contains its _entire_ scanning
-state. Thus you can use such objects to create reentrant scanners, but
-see also *Note Reentrant::. You can instantiate multiple instances of
-the same `yyFlexLexer' class, and you can also combine multiple C++
-scanner classes together in the same program using the `-P' option
-discussed above.
-
- Finally, note that the `%array' feature is not available to C++
-scanner classes; you must use `%pointer' (the default).
-
- Here is an example of a simple C++ scanner:
-
-
- // An example of using the flex C++ scanner class.
-
- %{
- int mylineno = 0;
- %}
-
- string \"[^\n"]+\"
-
- ws [ \t]+
-
- alpha [A-Za-z]
- dig [0-9]
- name ({alpha}|{dig}|\$)({alpha}|{dig}|[_.\-/$])*
- num1 [-+]?{dig}+\.?([eE][-+]?{dig}+)?
- num2 [-+]?{dig}*\.{dig}+([eE][-+]?{dig}+)?
- number {num1}|{num2}
-
- %%
-
- {ws} /* skip blanks and tabs */
-
- "/*" {
- int c;
-
- while((c = yyinput()) != 0)
- {
- if(c == '\n')
- ++mylineno;
-
- else if(c == @samp{*})
- {
- if((c = yyinput()) == '/')
- break;
- else
- unput(c);
- }
- }
- }
-
- {number} cout "number " YYText() '\n';
-
- \n mylineno++;
-
- {name} cout "name " YYText() '\n';
-
- {string} cout "string " YYText() '\n';
-
- %%
-
- int main( int /* argc */, char** /* argv */ )
- {
- @code{flex}Lexer* lexer = new yyFlexLexer;
- while(lexer->yylex() != 0)
- ;
- return 0;
- }
-
- If you want to create multiple (different) lexer classes, you use the
-`-P' flag (or the `prefix=' option) to rename each `yyFlexLexer' to
-some other `xxFlexLexer'. You then can include `<FlexLexer.h>' in your
-other sources once per lexer class, first renaming `yyFlexLexer' as
-follows:
-
-
- #undef yyFlexLexer
- #define yyFlexLexer xxFlexLexer
- #include <FlexLexer.h>
-
- #undef yyFlexLexer
- #define yyFlexLexer zzFlexLexer
- #include <FlexLexer.h>
-
- if, for example, you used `%option prefix="xx"' for one of your
-scanners and `%option prefix="zz"' for the other.
-
-
-File: flex.info, Node: Reentrant, Next: Lex and Posix, Prev: Cxx, Up: Top
-
-Reentrant C Scanners
-********************
-
- `flex' has the ability to generate a reentrant C scanner. This is
-accomplished by specifying `%option reentrant' (`-R') The generated
-scanner is both portable, and safe to use in one or more separate
-threads of control. The most common use for reentrant scanners is from
-within multi-threaded applications. Any thread may create and execute
-a reentrant `flex' scanner without the need for synchronization with
-other threads.
-
-* Menu:
-
-* Reentrant Uses::
-* Reentrant Overview::
-* Reentrant Example::
-* Reentrant Detail::
-* Reentrant Functions::
-
-
-File: flex.info, Node: Reentrant Uses, Next: Reentrant Overview, Prev: Reentrant, Up: Reentrant
-
-Uses for Reentrant Scanners
-===========================
-
- However, there are other uses for a reentrant scanner. For example,
-you could scan two or more files simultaneously to implement a `diff' at
-the token level (i.e., instead of at the character level):
-
-
- /* Example of maintaining more than one active scanner. */
-
- do {
- int tok1, tok2;
-
- tok1 = yylex( scanner_1 );
- tok2 = yylex( scanner_2 );
-
- if( tok1 != tok2 )
- printf("Files are different.");
-
- } while ( tok1 && tok2 );
-
- Another use for a reentrant scanner is recursion. (Note that a
-recursive scanner can also be created using a non-reentrant scanner and
-buffer states. *Note Multiple Input Buffers::.)
-
- The following crude scanner supports the `eval' command by invoking
-another instance of itself.
-
-
- /* Example of recursive invocation. */
-
- %option reentrant
-
- %%
- "eval(".+")" {
- yyscan_t scanner;
- YY_BUFFER_STATE buf;
-
- yylex_init( &scanner );
- yytext[yyleng-1] = ' ';
-
- buf = yy_scan_string( yytext + 5, scanner );
- yylex( scanner );
-
- yy_delete_buffer(buf,scanner);
- yylex_destroy( scanner );
- }
- ...
- %%
-
-
-File: flex.info, Node: Reentrant Overview, Next: Reentrant Example, Prev: Reentrant Uses, Up: Reentrant
-
-An Overview of the Reentrant API
-================================
-
- The API for reentrant scanners is different than for non-reentrant
-scanners. Here is a quick overview of the API:
-
- `%option reentrant' must be specified.
-
- * All functions take one additional argument: `yyscanner'
-
- * All global variables are replaced by their macro equivalents. (We
- tell you this because it may be important to you during debugging.)
-
- * `yylex_init' and `yylex_destroy' must be called before and after
- `yylex', respectively.
-
- * Accessor methods (get/set functions) provide access to common
- `flex' variables.
-
- * User-specific data can be stored in `yyextra'.
-
-
-File: flex.info, Node: Reentrant Example, Next: Reentrant Detail, Prev: Reentrant Overview, Up: Reentrant
-
-Reentrant Example
-=================
-
- First, an example of a reentrant scanner:
-
- /* This scanner prints "//" comments. */
- %option reentrant stack
- %x COMMENT
- %%
- "//" yy_push_state( COMMENT, yyscanner);
- .|\n
- <COMMENT>\n yy_pop_state( yyscanner );
- <COMMENT>[^\n]+ fprintf( yyout, "%s\n", yytext);
- %%
- int main ( int argc, char * argv[] )
- {
- yyscan_t scanner;
-
- yylex_init ( &scanner );
- yylex ( scanner );
- yylex_destroy ( scanner );
- return 0;
- }
-
-
-File: flex.info, Node: Reentrant Detail, Next: Reentrant Functions, Prev: Reentrant Example, Up: Reentrant
-
-The Reentrant API in Detail
-===========================
-
- Here are the things you need to do or know to use the reentrant C
-API of `flex'.
-
-* Menu:
-
-* Specify Reentrant::
-* Extra Reentrant Argument::
-* Global Replacement::
-* Init and Destroy Functions::
-* Accessor Methods::
-* Extra Data::
-* About yyscan_t::
-
-
-File: flex.info, Node: Specify Reentrant, Next: Extra Reentrant Argument, Prev: Reentrant Detail, Up: Reentrant Detail
-
-Declaring a Scanner As Reentrant
---------------------------------
-
- %option reentrant (-reentrant) must be specified.
-
- Notice that `%option reentrant' is specified in the above example
-(*note Reentrant Example::. Had this option not been specified, `flex'
-would have happily generated a non-reentrant scanner without
-complaining. You may explicitly specify `%option noreentrant', if you
-do _not_ want a reentrant scanner, although it is not necessary. The
-default is to generate a non-reentrant scanner.
-
-
-File: flex.info, Node: Extra Reentrant Argument, Next: Global Replacement, Prev: Specify Reentrant, Up: Reentrant Detail
-
-The Extra Argument
-------------------
-
- All functions take one additional argument: `yyscanner'.
-
- Notice that the calls to `yy_push_state' and `yy_pop_state' both
-have an argument, `yyscanner' , that is not present in a non-reentrant
-scanner. Here are the declarations of `yy_push_state' and
-`yy_pop_state' in the generated scanner:
-
-
- static void yy_push_state ( int new_state , yyscan_t yyscanner ) ;
- static void yy_pop_state ( yyscan_t yyscanner ) ;
-
- Notice that the argument `yyscanner' appears in the declaration of
-both functions. In fact, all `flex' functions in a reentrant scanner
-have this additional argument. It is always the last argument in the
-argument list, it is always of type `yyscan_t' (which is typedef'd to
-`void *') and it is always named `yyscanner'. As you may have guessed,
-`yyscanner' is a pointer to an opaque data structure encapsulating the
-current state of the scanner. For a list of function declarations, see
-*Note Reentrant Functions::. Note that preprocessor macros, such as
-`BEGIN', `ECHO', and `REJECT', do not take this additional argument.
-
-
-File: flex.info, Node: Global Replacement, Next: Init and Destroy Functions, Prev: Extra Reentrant Argument, Up: Reentrant Detail
-
-Global Variables Replaced By Macros
------------------------------------
-
- All global variables in traditional flex have been replaced by macro
-equivalents.
-
- Note that in the above example, `yyout' and `yytext' are not plain
-variables. These are macros that will expand to their equivalent lvalue.
-All of the familiar `flex' globals have been replaced by their macro
-equivalents. In particular, `yytext', `yyleng', `yylineno', `yyin',
-`yyout', `yyextra', `yylval', and `yylloc' are macros. You may safely
-use these macros in actions as if they were plain variables. We only
-tell you this so you don't expect to link to these variables
-externally. Currently, each macro expands to a member of an internal
-struct, e.g.,
-
-
- #define yytext (((struct yyguts_t*)yyscanner)->yytext_r)
-
- One important thing to remember about `yytext' and friends is that
-`yytext' is not a global variable in a reentrant scanner, you can not
-access it directly from outside an action or from other functions. You
-must use an accessor method, e.g., `yyget_text', to accomplish this.
-(See below).
-
-
-File: flex.info, Node: Init and Destroy Functions, Next: Accessor Methods, Prev: Global Replacement, Up: Reentrant Detail
-
-Init and Destroy Functions
---------------------------
-
- `yylex_init' and `yylex_destroy' must be called before and after
-`yylex', respectively.
-
-
- int yylex_init ( yyscan_t * ptr_yy_globals ) ;
- int yylex ( yyscan_t yyscanner ) ;
- int yylex_destroy ( yyscan_t yyscanner ) ;
-
- The function `yylex_init' must be called before calling any other
-function. The argument to `yylex_init' is the address of an
-uninitialized pointer to be filled in by `flex'. The contents of
-`ptr_yy_globals' need not be initialized, since `flex' will overwrite
-it anyway. The value stored in `ptr_yy_globals' should thereafter be
-passed to `yylex()' and yylex_destroy(). Flex does not save the
-argument passed to `yylex_init', so it is safe to pass the address of a
-local pointer to `yylex_init'. The function `yylex' should be familiar
-to you by now. The reentrant version takes one argument, which is the
-value returned (via an argument) by `yylex_init'. Otherwise, it
-behaves the same as the non-reentrant version of `yylex'.
-
- `yylex_init' returns 0 (zero) on success, or non-zero on failure, in
-which case, errno is set to one of the following values:
-
- * ENOMEM Memory allocation error. *Note memory-management::.
-
- * EINVAL Invalid argument.
-
- The function `yylex_destroy' should be called to free resources used
-by the scanner. After `yylex_destroy' is called, the contents of
-`yyscanner' should not be used. Of course, there is no need to destroy
-a scanner if you plan to reuse it. A `flex' scanner (both reentrant
-and non-reentrant) may be restarted by calling `yyrestart'.
-
- Below is an example of a program that creates a scanner, uses it,
-then destroys it when done:
-
-
- int main ()
- {
- yyscan_t scanner;
- int tok;
-
- yylex_init(&scanner);
-
- while ((tok=yylex()) > 0)
- printf("tok=%d yytext=%s\n", tok, yyget_text(scanner));
-
- yylex_destroy(scanner);
- return 0;
- }
-
-
-File: flex.info, Node: Accessor Methods, Next: Extra Data, Prev: Init and Destroy Functions, Up: Reentrant Detail
-
-Accessing Variables with Reentrant Scanners
--------------------------------------------
-
- Accessor methods (get/set functions) provide access to common `flex'
-variables.
-
- Many scanners that you build will be part of a larger project.
-Portions of your project will need access to `flex' values, such as
-`yytext'. In a non-reentrant scanner, these values are global, so
-there is no problem accessing them. However, in a reentrant scanner,
-there are no global `flex' values. You can not access them directly.
-Instead, you must access `flex' values using accessor methods (get/set
-functions). Each accessor method is named `yyget_NAME' or `yyset_NAME',
-where `NAME' is the name of the `flex' variable you want. For example:
-
-
- /* Set the last character of yytext to NULL. */
- void chop ( yyscan_t scanner )
- {
- int len = yyget_leng( scanner );
- yyget_text( scanner )[len - 1] = '\0';
- }
-
- The above code may be called from within an action like this:
-
-
- %%
- .+\n { chop( yyscanner );}
-
- You may find that `%option header-file' is particularly useful for
-generating prototypes of all the accessor functions. *Note
-option-header::.
-
-
-File: flex.info, Node: Extra Data, Next: About yyscan_t, Prev: Accessor Methods, Up: Reentrant Detail
-
-Extra Data
-----------
-
- User-specific data can be stored in `yyextra'.
-
- In a reentrant scanner, it is unwise to use global variables to
-communicate with or maintain state between different pieces of your
-program. However, you may need access to external data or invoke
-external functions from within the scanner actions. Likewise, you may
-need to pass information to your scanner (e.g., open file descriptors,
-or database connections). In a non-reentrant scanner, the only way to
-do this would be through the use of global variables. `Flex' allows
-you to store arbitrary, "extra" data in a scanner. This data is
-accessible through the accessor methods `yyget_extra' and `yyset_extra'
-from outside the scanner, and through the shortcut macro `yyextra' from
-within the scanner itself. They are defined as follows:
-
-
- #define YY_EXTRA_TYPE void*
- YY_EXTRA_TYPE yyget_extra ( yyscan_t scanner );
- void yyset_extra ( YY_EXTRA_TYPE arbitrary_data , yyscan_t scanner);
-
- By default, `YY_EXTRA_TYPE' is defined as type `void *'. You will
-have to cast `yyextra' and the return value from `yyget_extra' to the
-appropriate value each time you access the extra data. To avoid
-casting, you may override the default type by defining `YY_EXTRA_TYPE'
-in section 1 of your scanner:
-
-
- /* An example of overriding YY_EXTRA_TYPE. */
- %{
- #include <sys/stat.h>
- #include <unistd.h>
- #define YY_EXTRA_TYPE struct stat*
- %}
- %option reentrant
- %%
-
- __filesize__ printf( "%ld", yyextra->st_size );
- __lastmod__ printf( "%ld", yyextra->st_mtime );
- %%
- void scan_file( char* filename )
- {
- yyscan_t scanner;
- struct stat buf;
-
- yylex_init ( &scanner );
- yyset_in( fopen(filename,"r"), scanner );
-
- stat( filename, &buf);
- yyset_extra( &buf, scanner );
- yylex ( scanner );
- yylex_destroy( scanner );
- }
-
-
-File: flex.info, Node: About yyscan_t, Prev: Extra Data, Up: Reentrant Detail
-
-About yyscan_t
---------------
-
- `yyscan_t' is defined as:
-
-
- typedef void* yyscan_t;
-
- It is initialized by `yylex_init()' to point to an internal
-structure. You should never access this value directly. In particular,
-you should never attempt to free it (use `yylex_destroy()' instead.)
-
-
-File: flex.info, Node: Reentrant Functions, Prev: Reentrant Detail, Up: Reentrant
-
-Functions and Macros Available in Reentrant C Scanners
-======================================================
-
- The following Functions are available in a reentrant scanner:
-
-
- char *yyget_text ( yyscan_t scanner );
- int yyget_leng ( yyscan_t scanner );
- FILE *yyget_in ( yyscan_t scanner );
- FILE *yyget_out ( yyscan_t scanner );
- int yyget_lineno ( yyscan_t scanner );
- YY_EXTRA_TYPE yyget_extra ( yyscan_t scanner );
- int yyget_debug ( yyscan_t scanner );
-
- void yyset_debug ( int flag, yyscan_t scanner );
- void yyset_in ( FILE * in_str , yyscan_t scanner );
- void yyset_out ( FILE * out_str , yyscan_t scanner );
- void yyset_lineno ( int line_number , yyscan_t scanner );
- void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t scanner );
-
- There are no "set" functions for yytext and yyleng. This is
-intentional.
-
- The following Macro shortcuts are available in actions in a reentrant
-scanner:
-
-
- yytext
- yyleng
- yyin
- yyout
- yylineno
- yyextra
- yy_flex_debug
-
- In a reentrant C scanner, support for yylineno is always present
-(i.e., you may access yylineno), but the value is never modified by
-`flex' unless `%option yylineno' is enabled. This is to allow the user
-to maintain the line count independently of `flex'.
-
- The following functions and macros are made available when `%option
-bison-bridge' (`--bison-bridge') is specified:
-
-
- YYSTYPE * yyget_lval ( yyscan_t scanner );
- void yyset_lval ( YYSTYPE * yylvalp , yyscan_t scanner );
- yylval
-
- The following functions and macros are made available when `%option
-bison-locations' (`--bison-locations') is specified:
-
-
- YYLTYPE *yyget_lloc ( yyscan_t scanner );
- void yyset_lloc ( YYLTYPE * yyllocp , yyscan_t scanner );
- yylloc
-
- Support for yylval assumes that `YYSTYPE' is a valid type. Support
-for yylloc assumes that `YYSLYPE' is a valid type. Typically, these
-types are generated by `bison', and are included in section 1 of the
-`flex' input.
-
-
-File: flex.info, Node: Lex and Posix, Next: Memory Management, Prev: Reentrant, Up: Top
-
-Incompatibilities with Lex and Posix
-************************************
-
- `flex' is a rewrite of the AT&T Unix _lex_ tool (the two
-implementations do not share any code, though), with some extensions and
-incompatibilities, both of which are of concern to those who wish to
-write scanners acceptable to both implementations. `flex' is fully
-compliant with the POSIX `lex' specification, except that when using
-`%pointer' (the default), a call to `unput()' destroys the contents of
-`yytext', which is counter to the POSIX specification. In this section
-we discuss all of the known areas of incompatibility between `flex',
-AT&T `lex', and the POSIX specification. `flex''s `-l' option turns on
-maximum compatibility with the original AT&T `lex' implementation, at
-the cost of a major loss in the generated scanner's performance. We
-note below which incompatibilities can be overcome using the `-l'
-option. `flex' is fully compatible with `lex' with the following
-exceptions:
-
- * The undocumented `lex' scanner internal variable `yylineno' is not
- supported unless `-l' or `%option yylineno' is used.
-
- * `yylineno' should be maintained on a per-buffer basis, rather than
- a per-scanner (single global variable) basis.
-
- * `yylineno' is not part of the POSIX specification.
-
- * The `input()' routine is not redefinable, though it may be called
- to read characters following whatever has been matched by a rule.
- If `input()' encounters an end-of-file the normal `yywrap()'
- processing is done. A "real" end-of-file is returned by `input()'
- as `EOF'.
-
- * Input is instead controlled by defining the `YY_INPUT()' macro.
-
- * The `flex' restriction that `input()' cannot be redefined is in
- accordance with the POSIX specification, which simply does not
- specify any way of controlling the scanner's input other than by
- making an initial assignment to `yyin'.
-
- * The `unput()' routine is not redefinable. This restriction is in
- accordance with POSIX.
-
- * `flex' scanners are not as reentrant as `lex' scanners. In
- particular, if you have an interactive scanner and an interrupt
- handler which long-jumps out of the scanner, and the scanner is
- subsequently called again, you may get the following message:
-
-
- fatal @code{flex} scanner internal error--end of buffer missed
-
- To reenter the scanner, first use:
-
-
- yyrestart( yyin );
-
- Note that this call will throw away any buffered input; usually
- this isn't a problem with an interactive scanner. *Note
- Reentrant::, for `flex''s reentrant API.
-
- * Also note that `flex' C++ scanner classes _are_ reentrant, so if
- using C++ is an option for you, you should use them instead.
- *Note Cxx::, and *Note Reentrant:: for details.
-
- * `output()' is not supported. Output from the ECHO macro is done
- to the file-pointer `yyout' (default `stdout)'.
-
- * `output()' is not part of the POSIX specification.
-
- * `lex' does not support exclusive start conditions (%x), though they
- are in the POSIX specification.
-
- * When definitions are expanded, `flex' encloses them in parentheses.
- With `lex', the following:
-
-
- NAME [A-Z][A-Z0-9]*
- %%
- foo{NAME}? printf( "Found it\n" );
- %%
-
- will not match the string `foo' because when the macro is expanded
- the rule is equivalent to `foo[A-Z][A-Z0-9]*?' and the precedence
- is such that the `?' is associated with `[A-Z0-9]*'. With `flex',
- the rule will be expanded to `foo([A-Z][A-Z0-9]*)?' and so the
- string `foo' will match.
-
- * Note that if the definition begins with `^' or ends with `$' then
- it is _not_ expanded with parentheses, to allow these operators to
- appear in definitions without losing their special meanings. But
- the `<s>', `/', and `<<EOF>>' operators cannot be used in a `flex'
- definition.
-
- * Using `-l' results in the `lex' behavior of no parentheses around
- the definition.
-
- * The POSIX specification is that the definition be enclosed in
- parentheses.
-
- * Some implementations of `lex' allow a rule's action to begin on a
- separate line, if the rule's pattern has trailing whitespace:
-
-
- %%
- foo|bar<space here>
- { foobar_action();}
-
- `flex' does not support this feature.
-
- * The `lex' `%r' (generate a Ratfor scanner) option is not
- supported. It is not part of the POSIX specification.
-
- * After a call to `unput()', _yytext_ is undefined until the next
- token is matched, unless the scanner was built using `%array'.
- This is not the case with `lex' or the POSIX specification. The
- `-l' option does away with this incompatibility.
-
- * The precedence of the `{,}' (numeric range) operator is different.
- The AT&T and POSIX specifications of `lex' interpret `abc{1,3}'
- as match one, two, or three occurrences of `abc'", whereas `flex'
- interprets it as "match `ab' followed by one, two, or three
- occurrences of `c'". The `-l' and `--posix' options do away with
- this incompatibility.
-
- * The precedence of the `^' operator is different. `lex' interprets
- `^foo|bar' as "match either 'foo' at the beginning of a line, or
- 'bar' anywhere", whereas `flex' interprets it as "match either
- `foo' or `bar' if they come at the beginning of a line". The
- latter is in agreement with the POSIX specification.
-
- * The special table-size declarations such as `%a' supported by
- `lex' are not required by `flex' scanners.. `flex' ignores them.
-
- * The name `FLEX_SCANNER' is `#define''d so scanners may be written
- for use with either `flex' or `lex'. Scanners also include
- `YY_FLEX_MAJOR_VERSION', `YY_FLEX_MINOR_VERSION' and
- `YY_FLEX_SUBMINOR_VERSION' indicating which version of `flex'
- generated the scanner. For example, for the 2.5.22 release, these
- defines would be 2, 5 and 22 respectively. If the version of
- `flex' being used is a beta version, then the symbol `FLEX_BETA'
- is defined.
-
- * The symbols `[[' and `]]' in the code sections of the input may
- conflict with the m4 delimiters. *Note M4 Dependency::.
-
-
- The following `flex' features are not included in `lex' or the POSIX
-specification:
-
- * C++ scanners
-
- * %option
-
- * start condition scopes
-
- * start condition stacks
-
- * interactive/non-interactive scanners
-
- * yy_scan_string() and friends
-
- * yyterminate()
-
- * yy_set_interactive()
-
- * yy_set_bol()
-
- * YY_AT_BOL() <<EOF>>
-
- * <*>
-
- * YY_DECL
-
- * YY_START
-
- * YY_USER_ACTION
-
- * YY_USER_INIT
-
- * #line directives
-
- * %{}'s around actions
-
- * reentrant C API
-
- * multiple actions on a line
-
- * almost all of the `flex' command-line options
-
- The feature "multiple actions on a line" refers to the fact that
-with `flex' you can put multiple actions on the same line, separated
-with semi-colons, while with `lex', the following:
-
-
- foo handle_foo(); ++num_foos_seen;
-
- is (rather surprisingly) truncated to
-
-
- foo handle_foo();
-
- `flex' does not truncate the action. Actions that are not enclosed
-in braces are simply terminated at the end of the line.
-
-
-File: flex.info, Node: Memory Management, Next: Serialized Tables, Prev: Lex and Posix, Up: Top
-
-Memory Management
-*****************
-
- This chapter describes how flex handles dynamic memory, and how you
-can override the default behavior.
-
-* Menu:
-
-* The Default Memory Management::
-* Overriding The Default Memory Management::
-* A Note About yytext And Memory::
-
-
-File: flex.info, Node: The Default Memory Management, Next: Overriding The Default Memory Management, Prev: Memory Management, Up: Memory Management
-
-The Default Memory Management
-=============================
-
- Flex allocates dynamic memory during initialization, and once in a
-while from within a call to yylex(). Initialization takes place during
-the first call to yylex(). Thereafter, flex may reallocate more memory
-if it needs to enlarge a buffer. As of version 2.5.9 Flex will clean up
-all memory when you call `yylex_destroy' *Note faq-memory-leak::.
-
- Flex allocates dynamic memory for four purposes, listed below (1)
-
-16kB for the input buffer.
- Flex allocates memory for the character buffer used to perform
- pattern matching. Flex must read ahead from the input stream and
- store it in a large character buffer. This buffer is typically
- the largest chunk of dynamic memory flex consumes. This buffer
- will grow if necessary, doubling the size each time. Flex frees
- this memory when you call yylex_destroy(). The default size of
- this buffer (16384 bytes) is almost always too large. The ideal
- size for this buffer is the length of the longest token expected,
- in bytes, plus a little more. Flex will allocate a few extra
- bytes for housekeeping. Currently, to override the size of the
- input buffer you must `#define YY_BUF_SIZE' to whatever number of
- bytes you want. We don't plan to change this in the near future,
- but we reserve the right to do so if we ever add a more robust
- memory management API.
-
-64kb for the REJECT state. This will only be allocated if you use REJECT.
- The size is the large enough to hold the same number of states as
- characters in the input buffer. If you override the size of the
- input buffer (via `YY_BUF_SIZE'), then you automatically override
- the size of this buffer as well.
-
-100 bytes for the start condition stack.
- Flex allocates memory for the start condition stack. This is the
- stack used for pushing start states, i.e., with yy_push_state().
- It will grow if necessary. Since the states are simply integers,
- this stack doesn't consume much memory. This stack is not present
- if `%option stack' is not specified. You will rarely need to tune
- this buffer. The ideal size for this stack is the maximum depth
- expected. The memory for this stack is automatically destroyed
- when you call yylex_destroy(). *Note option-stack::.
-
-40 bytes for each YY_BUFFER_STATE.
- Flex allocates memory for each YY_BUFFER_STATE. The buffer state
- itself is about 40 bytes, plus an additional large character
- buffer (described above.) The initial buffer state is created
- during initialization, and with each call to yy_create_buffer().
- You can't tune the size of this, but you can tune the character
- buffer as described above. Any buffer state that you explicitly
- create by calling yy_create_buffer() is _NOT_ destroyed
- automatically. You must call yy_delete_buffer() to free the
- memory. The exception to this rule is that flex will delete the
- current buffer automatically when you call yylex_destroy(). If you
- delete the current buffer, be sure to set it to NULL. That way,
- flex will not try to delete the buffer a second time (possibly
- crashing your program!) At the time of this writing, flex does not
- provide a growable stack for the buffer states. You have to
- manage that yourself. *Note Multiple Input Buffers::.
-
-84 bytes for the reentrant scanner guts
- Flex allocates about 84 bytes for the reentrant scanner structure
- when you call yylex_init(). It is destroyed when the user calls
- yylex_destroy().
-
-
- ---------- Footnotes ----------
-
- (1) The quantities given here are approximate, and may vary due to
-host architecture, compiler configuration, or due to future
-enhancements to flex.
-
diff --git a/doc/flex.info-4 b/doc/flex.info-4
deleted file mode 100644
index 2304293..0000000
--- a/doc/flex.info-4
+++ /dev/null
@@ -1,1255 +0,0 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* flex: (flex). Fast lexical analyzer generator (lex replacement).
-END-INFO-DIR-ENTRY
-
-
- The flex manual is placed under the same licensing conditions as the
-rest of flex:
-
- Copyright (C) 1990, 1997 The Regents of the University of California.
-All rights reserved.
-
- 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.
-
-File: flex.info, Node: Overriding The Default Memory Management, Next: A Note About yytext And Memory, Prev: The Default Memory Management, Up: Memory Management
-
-Overriding The Default Memory Management
-========================================
-
- Flex calls the functions `yyalloc', `yyrealloc', and `yyfree' when
-it needs to allocate or free memory. By default, these functions are
-wrappers around the standard C functions, `malloc', `realloc', and
-`free', respectively. You can override the default implementations by
-telling flex that you will provide your own implementations.
-
- To override the default implementations, you must do two things:
-
- 1. Suppress the default implementations by specifying one or more of
- the following options:
-
- * `%option noyyalloc'
-
- * `%option noyyrealloc'
-
- * `%option noyyfree'.
-
- 2. Provide your own implementation of the following functions: (1)
-
-
- // For a non-reentrant scanner
- void * yyalloc (size_t bytes);
- void * yyrealloc (void * ptr, size_t bytes);
- void yyfree (void * ptr);
-
- // For a reentrant scanner
- void * yyalloc (size_t bytes, void * yyscanner);
- void * yyrealloc (void * ptr, size_t bytes, void * yyscanner);
- void yyfree (void * ptr, void * yyscanner);
-
-
- In the following example, we will override all three memory
-routines. We assume that there is a custom allocator with garbage
-collection. In order to make this example interesting, we will use a
-reentrant scanner, passing a pointer to the custom allocator through
-`yyextra'.
-
-
- %{
- #include "some_allocator.h"
- %}
-
- /* Suppress the default implementations. */
- %option noyyalloc noyyrealloc noyyfree
- %option reentrant
-
- /* Initialize the allocator. */
- #define YY_EXTRA_TYPE struct allocator*
- #define YY_USER_INIT yyextra = allocator_create();
-
- %%
- .|\n ;
- %%
-
- /* Provide our own implementations. */
- void * yyalloc (size_t bytes, void* yyscanner) {
- return allocator_alloc (yyextra, bytes);
- }
-
- void * yyrealloc (void * ptr, size_t bytes, void* yyscanner) {
- return allocator_realloc (yyextra, bytes);
- }
-
- void yyfree (void * ptr, void * yyscanner) {
- /* Do nothing -- we leave it to the garbage collector. */
- }
-
- ---------- Footnotes ----------
-
- (1) It is not necessary to override all (or any) of the memory
-management routines. You may, for example, override `yyrealloc', but
-not `yyfree' or `yyalloc'.
-
-
-File: flex.info, Node: A Note About yytext And Memory, Prev: Overriding The Default Memory Management, Up: Memory Management
-
-A Note About yytext And Memory
-==============================
-
- When flex finds a match, `yytext' points to the first character of
-the match in the input buffer. The string itself is part of the input
-buffer, and is _NOT_ allocated separately. The value of yytext will be
-overwritten the next time yylex() is called. In short, the value of
-yytext is only valid from within the matched rule's action.
-
- Often, you want the value of yytext to persist for later processing,
-i.e., by a parser with non-zero lookahead. In order to preserve yytext,
-you will have to copy it with strdup() or a similar function. But this
-introduces some headache because your parser is now responsible for
-freeing the copy of yytext. If you use a yacc or bison parser,
-(commonly used with flex), you will discover that the error recovery
-mechanisms can cause memory to be leaked.
-
- To prevent memory leaks from strdup'd yytext, you will have to track
-the memory somehow. Our experience has shown that a garbage collection
-mechanism or a pooled memory mechanism will save you a lot of grief
-when writing parsers.
-
-
-File: flex.info, Node: Serialized Tables, Next: Diagnostics, Prev: Memory Management, Up: Top
-
-Serialized Tables
-*****************
-
- A `flex' scanner has the ability to save the DFA tables to a file,
-and load them at runtime when needed. The motivation for this feature
-is to reduce the runtime memory footprint. Traditionally, these tables
-have been compiled into the scanner as C arrays, and are sometimes
-quite large. Since the tables are compiled into the scanner, the
-memory used by the tables can never be freed. This is a waste of
-memory, especially if an application uses several scanners, but none of
-them at the same time.
-
- The serialization feature allows the tables to be loaded at runtime,
-before scanning begins. The tables may be discarded when scanning is
-finished.
-
-* Menu:
-
-* Creating Serialized Tables::
-* Loading and Unloading Serialized Tables::
-* Tables File Format::
-
-
-File: flex.info, Node: Creating Serialized Tables, Next: Loading and Unloading Serialized Tables, Prev: Serialized Tables, Up: Serialized Tables
-
-Creating Serialized Tables
-==========================
-
- You may create a scanner with serialized tables by specifying:
-
-
- %option tables-file=FILE
- or
- --tables-file=FILE
-
- These options instruct flex to save the DFA tables to the file FILE.
-The tables will _not_ be embedded in the generated scanner. The scanner
-will not function on its own. The scanner will be dependent upon the
-serialized tables. You must load the tables from this file at runtime
-before you can scan anything.
-
- If you do not specify a filename to `--tables-file', the tables will
-be saved to `lex.yy.tables', where `yy' is the appropriate prefix.
-
- If your project uses several different scanners, you can concatenate
-the serialized tables into one file, and flex will find the correct set
-of tables, using the scanner prefix as part of the lookup key. An
-example follows:
-
-
- $ flex --tables-file --prefix=cpp cpp.l
- $ flex --tables-file --prefix=c c.l
- $ cat lex.cpp.tables lex.c.tables > all.tables
-
- The above example created two scanners, `cpp', and `c'. Since we did
-not specify a filename, the tables were serialized to `lex.c.tables' and
-`lex.cpp.tables', respectively. Then, we concatenated the two files
-together into `all.tables', which we will distribute with our project.
-At runtime, we will open the file and tell flex to load the tables from
-it. Flex will find the correct tables automatically. (See next
-section).
-
-
-File: flex.info, Node: Loading and Unloading Serialized Tables, Next: Tables File Format, Prev: Creating Serialized Tables, Up: Serialized Tables
-
-Loading and Unloading Serialized Tables
-=======================================
-
- If you've built your scanner with `%option tables-file', then you
-must load the scanner tables at runtime. This can be accomplished with
-the following function:
-
- - Function: int yytables_fload (FILE* FP [, yyscan_t SCANNER])
- Locates scanner tables in the stream pointed to by FP and loads
- them. Memory for the tables is allocated via `yyalloc'. You must
- call this function before the first call to `yylex'. The argument
- SCANNER only appears in the reentrant scanner. This function
- returns `0' (zero) on success, or non-zero on error.
-
- The loaded tables are *not* automatically destroyed (unloaded) when
-you call `yylex_destroy'. The reason is that you may create several
-scanners of the same type (in a reentrant scanner), each of which needs
-access to these tables. To avoid a nasty memory leak, you must call
-the following function:
-
- - Function: int yytables_destroy ([yyscan_t SCANNER])
- Unloads the scanner tables. The tables must be loaded again before
- you can scan any more data. The argument SCANNER only appears in
- the reentrant scanner. This function returns `0' (zero) on
- success, or non-zero on error.
-
- *The functions `yytables_fload' and `yytables_destroy' are not
-thread-safe.* You must ensure that these functions are called exactly
-once (for each scanner type) in a threaded program, before any thread
-calls `yylex'. After the tables are loaded, they are never written to,
-and no thread protection is required thereafter - until you destroy
-them.
-
-
-File: flex.info, Node: Tables File Format, Prev: Loading and Unloading Serialized Tables, Up: Serialized Tables
-
-Tables File Format
-==================
-
- This section defines the file format of serialized `flex' tables.
-
- The tables format allows for one or more sets of tables to be
-specified, where each set corresponds to a given scanner. Scanners are
-indexed by name, as described below. The file format is as follows:
-
-
- TABLE SET 1
- +-------------------------------+
- Header | uint32 th_magic; |
- | uint32 th_hsize; |
- | uint32 th_ssize; |
- | uint16 th_flags; |
- | char th_version[]; |
- | char th_name[]; |
- | uint8 th_pad64[]; |
- +-------------------------------+
- Table 1 | uint16 td_id; |
- | uint16 td_flags; |
- | uint32 td_lolen; |
- | uint32 td_hilen; |
- | void td_data[]; |
- | uint8 td_pad64[]; |
- +-------------------------------+
- Table 2 | |
- . . .
- . . .
- . . .
- . . .
- Table n | |
- +-------------------------------+
- TABLE SET 2
- .
- .
- .
- TABLE SET N
-
- The above diagram shows that a complete set of tables consists of a
-header followed by multiple individual tables. Furthermore, multiple
-complete sets may be present in the same file, each set with its own
-header and tables. The sets are contiguous in the file. The only way to
-know if another set follows is to check the next four bytes for the
-magic number (or check for EOF). The header and tables sections are
-padded to 64-bit boundaries. Below we describe each field in detail.
-This format does not specify how the scanner will expand the given
-data, i.e., data may be serialized as int8, but expanded to an int32
-array at runtime. This is to reduce the size of the serialized data
-where possible. Remember, _all integer values are in network byte
-order_.
-
-Fields of a table header:
-
-`th_magic'
- Magic number, always 0xF13C57B1.
-
-`th_hsize'
- Size of this entire header, in bytes, including all fields plus
- any padding.
-
-`th_ssize'
- Size of this entire set, in bytes, including the header, all
- tables, plus any padding.
-
-`th_flags'
- Bit flags for this table set. Currently unused.
-
-`th_version[]'
- Flex version in NULL-termninated string format. e.g., `2.5.13a'.
- This is the version of flex that was used to create the serialized
- tables.
-
-`th_name[]'
- Contains the name of this table set. The default is `yytables',
- and is prefixed accordingly, e.g., `footables'. Must be
- NULL-terminated.
-
-`th_pad64[]'
- Zero or more NULL bytes, padding the entire header to the next
- 64-bit boundary as calculated from the beginning of the header.
-
-Fields of a table:
-
-`td_id'
- Specifies the table identifier. Possible values are:
- `YYTD_ID_ACCEPT (0x01)'
- `yy_accept'
-
- `YYTD_ID_BASE (0x02)'
- `yy_base'
-
- `YYTD_ID_CHK (0x03)'
- `yy_chk'
-
- `YYTD_ID_DEF (0x04)'
- `yy_def'
-
- `YYTD_ID_EC (0x05)'
- `yy_ec '
-
- `YYTD_ID_META (0x06)'
- `yy_meta'
-
- `YYTD_ID_NUL_TRANS (0x07)'
- `yy_NUL_trans'
-
- `YYTD_ID_NXT (0x08)'
- `yy_nxt'. This array may be two dimensional. See the
- `td_hilen' field below.
-
- `YYTD_ID_RULE_CAN_MATCH_EOL (0x09)'
- `yy_rule_can_match_eol'
-
- `YYTD_ID_START_STATE_LIST (0x0A)'
- `yy_start_state_list'. This array is handled specially
- because it is an array of pointers to structs. See the
- `td_flags' field below.
-
- `YYTD_ID_TRANSITION (0x0B)'
- `yy_transition'. This array is handled specially because it
- is an array of structs. See the `td_lolen' field below.
-
- `YYTD_ID_ACCLIST (0x0C)'
- `yy_acclist'
-
-`td_flags'
- Bit flags describing how to interpret the data in `td_data'. The
- data arrays are one-dimensional by default, but may be two
- dimensional as specified in the `td_hilen' field.
-
- `YYTD_DATA8 (0x01)'
- The data is serialized as an array of type int8.
-
- `YYTD_DATA16 (0x02)'
- The data is serialized as an array of type int16.
-
- `YYTD_DATA32 (0x04)'
- The data is serialized as an array of type int32.
-
- `YYTD_PTRANS (0x08)'
- The data is a list of indexes of entries in the expanded
- `yy_transition' array. Each index should be expanded to a
- pointer to the corresponding entry in the `yy_transition'
- array. We count on the fact that the `yy_transition' array
- has already been seen.
-
- `YYTD_STRUCT (0x10)'
- The data is a list of yy_trans_info structs, each of which
- consists of two integers. There is no padding between struct
- elements or between structs. The type of each member is
- determined by the `YYTD_DATA*' bits.
-
-`td_lolen'
- Specifies the number of elements in the lowest dimension array. If
- this is a one-dimensional array, then it is simply the number of
- elements in this array. The element size is determined by the
- `td_flags' field.
-
-`td_hilen'
- If `td_hilen' is non-zero, then the data is a two-dimensional
- array. Otherwise, the data is a one-dimensional array. `td_hilen'
- contains the number of elements in the higher dimensional array,
- and `td_lolen' contains the number of elements in the lowest
- dimension.
-
- Conceptually, `td_data' is either `sometype td_data[td_lolen]', or
- `sometype td_data[td_hilen][td_lolen]', where `sometype' is
- specified by the `td_flags' field. It is possible for both
- `td_lolen' and `td_hilen' to be zero, in which case `td_data' is a
- zero length array, and no data is loaded, i.e., this table is
- simply skipped. Flex does not currently generate tables of zero
- length.
-
-`td_data[]'
- The table data. This array may be a one- or two-dimensional array,
- of type `int8', `int16', `int32', `struct yy_trans_info', or
- `struct yy_trans_info*', depending upon the values in the
- `td_flags', `td_lolen', and `td_hilen' fields.
-
-`td_pad64[]'
- Zero or more NULL bytes, padding the entire table to the next
- 64-bit boundary as calculated from the beginning of this table.
-
-
-File: flex.info, Node: Diagnostics, Next: Limitations, Prev: Serialized Tables, Up: Top
-
-Diagnostics
-***********
-
- The following is a list of `flex' diagnostic messages:
-
- * `warning, rule cannot be matched' indicates that the given rule
- cannot be matched because it follows other rules that will always
- match the same text as it. For example, in the following `foo'
- cannot be matched because it comes after an identifier "catch-all"
- rule:
-
-
- [a-z]+ got_identifier();
- foo got_foo();
-
- Using `REJECT' in a scanner suppresses this warning.
-
- * `warning, -s option given but default rule can be matched' means
- that it is possible (perhaps only in a particular start condition)
- that the default rule (match any single character) is the only one
- that will match a particular input. Since `-s' was given,
- presumably this is not intended.
-
- * `reject_used_but_not_detected undefined' or
- `yymore_used_but_not_detected undefined'. These errors can occur
- at compile time. They indicate that the scanner uses `REJECT' or
- `yymore()' but that `flex' failed to notice the fact, meaning that
- `flex' scanned the first two sections looking for occurrences of
- these actions and failed to find any, but somehow you snuck some in
- (via a #include file, for example). Use `%option reject' or
- `%option yymore' to indicate to `flex' that you really do use
- these features.
-
- * `flex scanner jammed'. a scanner compiled with `-s' has
- encountered an input string which wasn't matched by any of its
- rules. This error can also occur due to internal problems.
-
- * `token too large, exceeds YYLMAX'. your scanner uses `%array' and
- one of its rules matched a string longer than the `YYLMAX'
- constant (8K bytes by default). You can increase the value by
- #define'ing `YYLMAX' in the definitions section of your `flex'
- input.
-
- * `scanner requires -8 flag to use the character 'x''. Your scanner
- specification includes recognizing the 8-bit character `'x'' and
- you did not specify the -8 flag, and your scanner defaulted to
- 7-bit because you used the `-Cf' or `-CF' table compression
- options. See the discussion of the `-7' flag, *Note Scanner
- Options::, for details.
-
- * `flex scanner push-back overflow'. you used `unput()' to push back
- so much text that the scanner's buffer could not hold both the
- pushed-back text and the current token in `yytext'. Ideally the
- scanner should dynamically resize the buffer in this case, but at
- present it does not.
-
- * `input buffer overflow, can't enlarge buffer because scanner uses
- REJECT'. the scanner was working on matching an extremely large
- token and needed to expand the input buffer. This doesn't work
- with scanners that use `REJECT'.
-
- * `fatal flex scanner internal error--end of buffer missed'. This can
- occur in a scanner which is reentered after a long-jump has jumped
- out (or over) the scanner's activation frame. Before reentering
- the scanner, use:
-
- yyrestart( yyin );
- or, as noted above, switch to using the C++ scanner class.
-
- * `too many start conditions in <> construct!' you listed more start
- conditions in a <> construct than exist (so you must have listed at
- least one of them twice).
-
-
-File: flex.info, Node: Limitations, Next: Bibliography, Prev: Diagnostics, Up: Top
-
-Limitations
-***********
-
- Some trailing context patterns cannot be properly matched and
-generate warning messages (`dangerous trailing context'). These are
-patterns where the ending of the first part of the rule matches the
-beginning of the second part, such as `zx*/xy*', where the 'x*' matches
-the 'x' at the beginning of the trailing context. (Note that the POSIX
-draft states that the text matched by such patterns is undefined.) For
-some trailing context rules, parts which are actually fixed-length are
-not recognized as such, leading to the abovementioned performance loss.
-In particular, parts using `|' or `{n}' (such as `foo{3}') are always
-considered variable-length. Combining trailing context with the
-special `|' action can result in _fixed_ trailing context being turned
-into the more expensive _variable_ trailing context. For example, in
-the following:
-
-
- %%
- abc |
- xyz/def
-
- Use of `unput()' invalidates yytext and yyleng, unless the `%array'
-directive or the `-l' option has been used. Pattern-matching of `NUL's
-is substantially slower than matching other characters. Dynamic
-resizing of the input buffer is slow, as it entails rescanning all the
-text matched so far by the current (generally huge) token. Due to both
-buffering of input and read-ahead, you cannot intermix calls to
-`<stdio.h>' routines, such as, getchar(), with `flex' rules and expect
-it to work. Call `input()' instead. The total table entries listed by
-the `-v' flag excludes the number of table entries needed to determine
-what rule has been matched. The number of entries is equal to the
-number of DFA states if the scanner does not use `REJECT', and somewhat
-greater than the number of states if it does. `REJECT' cannot be used
-with the `-f' or `-F' options.
-
- The `flex' internal algorithms need documentation.
-
-
-File: flex.info, Node: Bibliography, Next: FAQ, Prev: Limitations, Up: Top
-
-Additional Reading
-******************
-
- You may wish to read more about the following programs:
- * lex
-
- * yacc
-
- * sed
-
- * awk
-
- The following books may contain material of interest:
-
- John Levine, Tony Mason, and Doug Brown, _Lex & Yacc_, O'Reilly and
-Associates. Be sure to get the 2nd edition.
-
- M. E. Lesk and E. Schmidt, _LEX - Lexical Analyzer Generator_
-
- Alfred Aho, Ravi Sethi and Jeffrey Ullman, _Compilers: Principles,
-Techniques and Tools_, Addison-Wesley (1986). Describes the
-pattern-matching techniques used by `flex' (deterministic finite
-automata).
-
-
-File: flex.info, Node: FAQ, Next: Appendices, Prev: Bibliography, Up: Top
-
-FAQ
-***
-
- From time to time, the `flex' maintainer receives certain questions.
-Rather than repeat answers to well-understood problems, we publish them
-here.
-
-* Menu:
-
-* When was flex born?::
-* How do I expand \ escape sequences in C-style quoted strings?::
-* Why do flex scanners call fileno if it is not ANSI compatible?::
-* Does flex support recursive pattern definitions?::
-* How do I skip huge chunks of input (tens of megabytes) while using flex?::
-* Flex is not matching my patterns in the same order that I defined them.::
-* My actions are executing out of order or sometimes not at all.::
-* How can I have multiple input sources feed into the same scanner at the same time?::
-* Can I build nested parsers that work with the same input file?::
-* How can I match text only at the end of a file?::
-* How can I make REJECT cascade across start condition boundaries?::
-* Why cant I use fast or full tables with interactive mode?::
-* How much faster is -F or -f than -C?::
-* If I have a simple grammar cant I just parse it with flex?::
-* Why doesnt yyrestart() set the start state back to INITIAL?::
-* How can I match C-style comments?::
-* The period isnt working the way I expected.::
-* Can I get the flex manual in another format?::
-* Does there exist a "faster" NDFA->DFA algorithm?::
-* How does flex compile the DFA so quickly?::
-* How can I use more than 8192 rules?::
-* How do I abandon a file in the middle of a scan and switch to a new file?::
-* How do I execute code only during initialization (only before the first scan)?::
-* How do I execute code at termination?::
-* Where else can I find help?::
-* Can I include comments in the "rules" section of the file?::
-* I get an error about undefined yywrap().::
-* How can I change the matching pattern at run time?::
-* How can I expand macros in the input?::
-* How can I build a two-pass scanner?::
-* How do I match any string not matched in the preceding rules?::
-* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
-* Is there a way to make flex treat NULL like a regular character?::
-* Whenever flex can not match the input it says "flex scanner jammed".::
-* Why doesnt flex have non-greedy operators like perl does?::
-* Memory leak - 16386 bytes allocated by malloc.::
-* How do I track the byte offset for lseek()?::
-* How do I use my own I/O classes in a C++ scanner?::
-* How do I skip as many chars as possible?::
-* deleteme00::
-* Are certain equivalent patterns faster than others?::
-* Is backing up a big deal?::
-* Can I fake multi-byte character support?::
-* deleteme01::
-* Can you discuss some flex internals?::
-* unput() messes up yy_at_bol::
-* The | operator is not doing what I want::
-* Why can't flex understand this variable trailing context pattern?::
-* The ^ operator isn't working::
-* Trailing context is getting confused with trailing optional patterns::
-* Is flex GNU or not?::
-* ERASEME53::
-* I need to scan if-then-else blocks and while loops::
-* ERASEME55::
-* ERASEME56::
-* ERASEME57::
-* Is there a repository for flex scanners?::
-* How can I conditionally compile or preprocess my flex input file?::
-* Where can I find grammars for lex and yacc?::
-* I get an end-of-buffer message for each character scanned.::
-* unnamed-faq-62::
-* unnamed-faq-63::
-* unnamed-faq-64::
-* unnamed-faq-65::
-* unnamed-faq-66::
-* unnamed-faq-67::
-* unnamed-faq-68::
-* unnamed-faq-69::
-* unnamed-faq-70::
-* unnamed-faq-71::
-* unnamed-faq-72::
-* unnamed-faq-73::
-* unnamed-faq-74::
-* unnamed-faq-75::
-* unnamed-faq-76::
-* unnamed-faq-77::
-* unnamed-faq-78::
-* unnamed-faq-79::
-* unnamed-faq-80::
-* unnamed-faq-81::
-* unnamed-faq-82::
-* unnamed-faq-83::
-* unnamed-faq-84::
-* unnamed-faq-85::
-* unnamed-faq-86::
-* unnamed-faq-87::
-* unnamed-faq-88::
-* unnamed-faq-90::
-* unnamed-faq-91::
-* unnamed-faq-92::
-* unnamed-faq-93::
-* unnamed-faq-94::
-* unnamed-faq-95::
-* unnamed-faq-96::
-* unnamed-faq-97::
-* unnamed-faq-98::
-* unnamed-faq-99::
-* unnamed-faq-100::
-* unnamed-faq-101::
-* What is the difference between YYLEX_PARAM and YY_DECL?::
-* Why do I get "conflicting types for yylex" error?::
-* How do I access the values set in a Flex action from within a Bison action?::
-
-
-File: flex.info, Node: When was flex born?, Next: How do I expand \ escape sequences in C-style quoted strings?, Up: FAQ
-
-When was flex born?
-===================
-
- Vern Paxson took over the `Software Tools' lex project from Jef
-Poskanzer in 1982. At that point it was written in Ratfor. Around
-1987 or so, Paxson translated it into C, and a legend was born :-).
-
-
-File: flex.info, Node: How do I expand \ escape sequences in C-style quoted strings?, Next: Why do flex scanners call fileno if it is not ANSI compatible?, Prev: When was flex born?, Up: FAQ
-
-How do I expand \ escape sequences in C-style quoted strings?
-=============================================================
-
- A key point when scanning quoted strings is that you cannot (easily)
-write a single rule that will precisely match the string if you allow
-things like embedded escape sequences and newlines. If you try to
-match strings with a single rule then you'll wind up having to rescan
-the string anyway to find any escape sequences.
-
- Instead you can use exclusive start conditions and a set of rules,
-one for matching non-escaped text, one for matching a single escape,
-one for matching an embedded newline, and one for recognizing the end
-of the string. Each of these rules is then faced with the question of
-where to put its intermediary results. The best solution is for the
-rules to append their local value of `yytext' to the end of a "string
-literal" buffer. A rule like the escape-matcher will append to the
-buffer the meaning of the escape sequence rather than the literal text
-in `yytext'. In this way, `yytext' does not need to be modified at all.
-
-
-File: flex.info, Node: Why do flex scanners call fileno if it is not ANSI compatible?, Next: Does flex support recursive pattern definitions?, Prev: How do I expand \ escape sequences in C-style quoted strings?, Up: FAQ
-
-Why do flex scanners call fileno if it is not ANSI compatible?
-==============================================================
-
- Flex scanners call `fileno()' in order to get the file descriptor
-corresponding to `yyin'. The file descriptor may be passed to
-`isatty()' or `read()', depending upon which `%options' you specified.
-If your system does not have `fileno()' support, to get rid of the
-`read()' call, do not specify `%option read'. To get rid of the
-`isatty()' call, you must specify one of `%option always-interactive' or
-`%option never-interactive'.
-
-
-File: flex.info, Node: Does flex support recursive pattern definitions?, Next: How do I skip huge chunks of input (tens of megabytes) while using flex?, Prev: Why do flex scanners call fileno if it is not ANSI compatible?, Up: FAQ
-
-Does flex support recursive pattern definitions?
-================================================
-
- e.g.,
-
-
- %%
- block "{"({block}|{statement})*"}"
-
- No. You cannot have recursive definitions. The pattern-matching
-power of regular expressions in general (and therefore flex scanners,
-too) is limited. In particular, regular expressions cannot "balance"
-parentheses to an arbitrary degree. For example, it's impossible to
-write a regular expression that matches all strings containing the same
-number of '{'s as '}'s. For more powerful pattern matching, you need a
-parser, such as `GNU bison'.
-
-
-File: flex.info, Node: How do I skip huge chunks of input (tens of megabytes) while using flex?, Next: Flex is not matching my patterns in the same order that I defined them., Prev: Does flex support recursive pattern definitions?, Up: FAQ
-
-How do I skip huge chunks of input (tens of megabytes) while using flex?
-========================================================================
-
- Use `fseek()' (or `lseek()') to position yyin, then call
-`yyrestart()'.
-
-
-File: flex.info, Node: Flex is not matching my patterns in the same order that I defined them., Next: My actions are executing out of order or sometimes not at all., Prev: How do I skip huge chunks of input (tens of megabytes) while using flex?, Up: FAQ
-
-Flex is not matching my patterns in the same order that I defined them.
-=======================================================================
-
- `flex' picks the rule that matches the most text (i.e., the longest
-possible input string). This is because `flex' uses an entirely
-different matching technique ("deterministic finite automata") that
-actually does all of the matching simultaneously, in parallel. (Seems
-impossible, but it's actually a fairly simple technique once you
-understand the principles.)
-
- A side-effect of this parallel matching is that when the input
-matches more than one rule, `flex' scanners pick the rule that matched
-the _most_ text. This is explained further in the manual, in the
-section *Note Matching::.
-
- If you want `flex' to choose a shorter match, then you can work
-around this behavior by expanding your short rule to match more text,
-then put back the extra:
-
-
- data_.* yyless( 5 ); BEGIN BLOCKIDSTATE;
-
- Another fix would be to make the second rule active only during the
-`<BLOCKIDSTATE>' start condition, and make that start condition
-exclusive by declaring it with `%x' instead of `%s'.
-
- A final fix is to change the input language so that the ambiguity for
-`data_' is removed, by adding characters to it that don't match the
-identifier rule, or by removing characters (such as `_') from the
-identifier rule so it no longer matches `data_'. (Of course, you might
-also not have the option of changing the input language.)
-
-
-File: flex.info, Node: My actions are executing out of order or sometimes not at all., Next: How can I have multiple input sources feed into the same scanner at the same time?, Prev: Flex is not matching my patterns in the same order that I defined them., Up: FAQ
-
-My actions are executing out of order or sometimes not at all.
-==============================================================
-
- Most likely, you have (in error) placed the opening `{' of the action
-block on a different line than the rule, e.g.,
-
-
- ^(foo|bar)
- { <<<--- WRONG!
-
- }
-
- `flex' requires that the opening `{' of an action associated with a
-rule begin on the same line as does the rule. You need instead to
-write your rules as follows:
-
-
- ^(foo|bar) { // CORRECT!
-
- }
-
-
-File: flex.info, Node: How can I have multiple input sources feed into the same scanner at the same time?, Next: Can I build nested parsers that work with the same input file?, Prev: My actions are executing out of order or sometimes not at all., Up: FAQ
-
-How can I have multiple input sources feed into the same scanner at the same time?
-==================================================================================
-
- If ...
- * your scanner is free of backtracking (verified using `flex''s `-b'
- flag),
-
- * AND you run your scanner interactively (`-I' option; default
- unless using special table compression options),
-
- * AND you feed it one character at a time by redefining `YY_INPUT'
- to do so,
-
- then every time it matches a token, it will have exhausted its input
-buffer (because the scanner is free of backtracking). This means you
-can safely use `select()' at the point and only call `yylex()' for
-another token if `select()' indicates there's data available.
-
- That is, move the `select()' out from the input function to a point
-where it determines whether `yylex()' gets called for the next token.
-
- With this approach, you will still have problems if your input can
-arrive piecemeal; `select()' could inform you that the beginning of a
-token is available, you call `yylex()' to get it, but it winds up
-blocking waiting for the later characters in the token.
-
- Here's another way: Move your input multiplexing inside of
-`YY_INPUT'. That is, whenever `YY_INPUT' is called, it `select()''s to
-see where input is available. If input is available for the scanner,
-it reads and returns the next byte. If input is available from another
-source, it calls whatever function is responsible for reading from that
-source. (If no input is available, it blocks until some input is
-available.) I've used this technique in an interpreter I wrote that
-both reads keyboard input using a `flex' scanner and IPC traffic from
-sockets, and it works fine.
-
-
-File: flex.info, Node: Can I build nested parsers that work with the same input file?, Next: How can I match text only at the end of a file?, Prev: How can I have multiple input sources feed into the same scanner at the same time?, Up: FAQ
-
-Can I build nested parsers that work with the same input file?
-==============================================================
-
- This is not going to work without some additional effort. The
-reason is that `flex' block-buffers the input it reads from `yyin'.
-This means that the "outermost" `yylex()', when called, will
-automatically slurp up the first 8K of input available on yyin, and
-subsequent calls to other `yylex()''s won't see that input. You might
-be tempted to work around this problem by redefining `YY_INPUT' to only
-return a small amount of text, but it turns out that that approach is
-quite difficult. Instead, the best solution is to combine all of your
-scanners into one large scanner, using a different exclusive start
-condition for each.
-
-
-File: flex.info, Node: How can I match text only at the end of a file?, Next: How can I make REJECT cascade across start condition boundaries?, Prev: Can I build nested parsers that work with the same input file?, Up: FAQ
-
-How can I match text only at the end of a file?
-===============================================
-
- There is no way to write a rule which is "match this text, but only
-if it comes at the end of the file". You can fake it, though, if you
-happen to have a character lying around that you don't allow in your
-input. Then you redefine `YY_INPUT' to call your own routine which, if
-it sees an `EOF', returns the magic character first (and remembers to
-return a real `EOF' next time it's called). Then you could write:
-
-
- <COMMENT>(.|\n)*{EOF_CHAR} /* saw comment at EOF */
-
-
-File: flex.info, Node: How can I make REJECT cascade across start condition boundaries?, Next: Why cant I use fast or full tables with interactive mode?, Prev: How can I match text only at the end of a file?, Up: FAQ
-
-How can I make REJECT cascade across start condition boundaries?
-================================================================
-
- You can do this as follows. Suppose you have a start condition `A',
-and after exhausting all of the possible matches in `<A>', you want to
-try matches in `<INITIAL>'. Then you could use the following:
-
-
- %x A
- %%
- <A>rule_that_is_long ...; REJECT;
- <A>rule ...; REJECT; /* shorter rule */
- <A>etc.
- ...
- <A>.|\n {
- /* Shortest and last rule in <A>, so
- * cascaded REJECT's will eventually
- * wind up matching this rule. We want
- * to now switch to the initial state
- * and try matching from there instead.
- */
- yyless(0); /* put back matched text */
- BEGIN(INITIAL);
- }
-
-
-File: flex.info, Node: Why cant I use fast or full tables with interactive mode?, Next: How much faster is -F or -f than -C?, Prev: How can I make REJECT cascade across start condition boundaries?, Up: FAQ
-
-Why can't I use fast or full tables with interactive mode?
-==========================================================
-
- One of the assumptions flex makes is that interactive applications
-are inherently slow (they're waiting on a human after all). It has to
-do with how the scanner detects that it must be finished scanning a
-token. For interactive scanners, after scanning each character the
-current state is looked up in a table (essentially) to see whether
-there's a chance of another input character possibly extending the
-length of the match. If not, the scanner halts. For non-interactive
-scanners, the end-of-token test is much simpler, basically a compare
-with 0, so no memory bus cycles. Since the test occurs in the
-innermost scanning loop, one would like to make it go as fast as
-possible.
-
- Still, it seems reasonable to allow the user to choose to trade off
-a bit of performance in this area to gain the corresponding
-flexibility. There might be another reason, though, why fast scanners
-don't support the interactive option.
-
-
-File: flex.info, Node: How much faster is -F or -f than -C?, Next: If I have a simple grammar cant I just parse it with flex?, Prev: Why cant I use fast or full tables with interactive mode?, Up: FAQ
-
-How much faster is -F or -f than -C?
-====================================
-
- Much faster (factor of 2-3).
-
-
-File: flex.info, Node: If I have a simple grammar cant I just parse it with flex?, Next: Why doesnt yyrestart() set the start state back to INITIAL?, Prev: How much faster is -F or -f than -C?, Up: FAQ
-
-If I have a simple grammar can't I just parse it with flex?
-===========================================================
-
- Is your grammar recursive? That's almost always a sign that you're
-better off using a parser/scanner rather than just trying to use a
-scanner alone.
-
-
-File: flex.info, Node: Why doesnt yyrestart() set the start state back to INITIAL?, Next: How can I match C-style comments?, Prev: If I have a simple grammar cant I just parse it with flex?, Up: FAQ
-
-Why doesn't yyrestart() set the start state back to INITIAL?
-============================================================
-
- There are two reasons. The first is that there might be programs
-that rely on the start state not changing across file changes. The
-second is that beginning with `flex' version 2.4, use of `yyrestart()'
-is no longer required, so fixing the problem there doesn't solve the
-more general problem.
-
-
-File: flex.info, Node: How can I match C-style comments?, Next: The period isnt working the way I expected., Prev: Why doesnt yyrestart() set the start state back to INITIAL?, Up: FAQ
-
-How can I match C-style comments?
-=================================
-
- You might be tempted to try something like this:
-
-
- "/*".*"*/" // WRONG!
-
- or, worse, this:
-
-
- "/*"(.|\n)"*/" // WRONG!
-
- The above rules will eat too much input, and blow up on things like:
-
-
- /* a comment */ do_my_thing( "oops */" );
-
- Here is one way which allows you to track line information:
-
-
- <INITIAL>{
- "/*" BEGIN(IN_COMMENT);
- }
- <IN_COMMENT>{
- "*/" BEGIN(INITIAL);
- [^*\n]+ // eat comment in chunks
- "*" // eat the lone star
- \n yylineno++;
- }
-
-
-File: flex.info, Node: The period isnt working the way I expected., Next: Can I get the flex manual in another format?, Prev: How can I match C-style comments?, Up: FAQ
-
-The '.' isn't working the way I expected.
-=========================================
-
- Here are some tips for using `.':
-
- * A common mistake is to place the grouping parenthesis AFTER an
- operator, when you really meant to place the parenthesis BEFORE
- the operator, e.g., you probably want this `(foo|bar)+' and NOT
- this `(foo|bar+)'.
-
- The first pattern matches the words `foo' or `bar' any number of
- times, e.g., it matches the text `barfoofoobarfoo'. The second
- pattern matches a single instance of `foo' or a single instance of
- `bar' followed by one or more `r's, e.g., it matches the text
- `barrrr' .
-
- * A `.' inside `[]''s just means a literal`.' (period), and NOT "any
- character except newline".
-
- * Remember that `.' matches any character EXCEPT `\n' (and `EOF').
- If you really want to match ANY character, including newlines,
- then use `(.|\n)' Beware that the regex `(.|\n)+' will match your
- entire input!
-
- * Finally, if you want to match a literal `.' (a period), then use
- `[.]' or `"."'
-
-
-File: flex.info, Node: Can I get the flex manual in another format?, Next: Does there exist a "faster" NDFA->DFA algorithm?, Prev: The period isnt working the way I expected., Up: FAQ
-
-Can I get the flex manual in another format?
-============================================
-
- The `flex' source distribution includes a texinfo manual. You are
-free to convert that texinfo into whatever format you desire. The
-`texinfo' package includes tools for conversion to a number of formats.
-
-
-File: flex.info, Node: Does there exist a "faster" NDFA->DFA algorithm?, Next: How does flex compile the DFA so quickly?, Prev: Can I get the flex manual in another format?, Up: FAQ
-
-Does there exist a "faster" NDFA->DFA algorithm?
-================================================
-
- There's no way around the potential exponential running time - it
-can take you exponential time just to enumerate all of the DFA states.
-In practice, though, the running time is closer to linear, or sometimes
-quadratic.
-
-
-File: flex.info, Node: How does flex compile the DFA so quickly?, Next: How can I use more than 8192 rules?, Prev: Does there exist a "faster" NDFA->DFA algorithm?, Up: FAQ
-
-How does flex compile the DFA so quickly?
-=========================================
-
- There are two big speed wins that `flex' uses:
-
- 1. It analyzes the input rules to construct equivalence classes for
- those characters that always make the same transitions. It then
- rewrites the NFA using equivalence classes for transitions instead
- of characters. This cuts down the NFA->DFA computation time
- dramatically, to the point where, for uncompressed DFA tables, the
- DFA generation is often I/O bound in writing out the tables.
-
- 2. It maintains hash values for previously computed DFA states, so
- testing whether a newly constructed DFA state is equivalent to a
- previously constructed state can be done very quickly, by first
- comparing hash values.
-
-
-File: flex.info, Node: How can I use more than 8192 rules?, Next: How do I abandon a file in the middle of a scan and switch to a new file?, Prev: How does flex compile the DFA so quickly?, Up: FAQ
-
-How can I use more than 8192 rules?
-===================================
-
- `Flex' is compiled with an upper limit of 8192 rules per scanner.
-If you need more than 8192 rules in your scanner, you'll have to
-recompile `flex' with the following changes in `flexdef.h':
-
-
- < #define YY_TRAILING_MASK 0x2000
- < #define YY_TRAILING_HEAD_MASK 0x4000
- --
- > #define YY_TRAILING_MASK 0x20000000
- > #define YY_TRAILING_HEAD_MASK 0x40000000
-
- This should work okay as long as your C compiler uses 32 bit
-integers. But you might want to think about whether using such a huge
-number of rules is the best way to solve your problem.
-
- The following may also be relevant:
-
- With luck, you should be able to increase the definitions in
-flexdef.h for:
-
-
- #define JAMSTATE -32766 /* marks a reference to the state that always jams */
- #define MAXIMUM_MNS 31999
- #define BAD_SUBSCRIPT -32767
-
- recompile everything, and it'll all work. Flex only has these
-16-bit-like values built into it because a long time ago it was
-developed on a machine with 16-bit ints. I've given this advice to
-others in the past but haven't heard back from them whether it worked
-okay or not...
-
-
-File: flex.info, Node: How do I abandon a file in the middle of a scan and switch to a new file?, Next: How do I execute code only during initialization (only before the first scan)?, Prev: How can I use more than 8192 rules?, Up: FAQ
-
-How do I abandon a file in the middle of a scan and switch to a new file?
-=========================================================================
-
- Just call `yyrestart(newfile)'. Be sure to reset the start state if
-you want a "fresh start, since `yyrestart' does NOT reset the start
-state back to `INITIAL'.
-
-
-File: flex.info, Node: How do I execute code only during initialization (only before the first scan)?, Next: How do I execute code at termination?, Prev: How do I abandon a file in the middle of a scan and switch to a new file?, Up: FAQ
-
-How do I execute code only during initialization (only before the first scan)?
-==============================================================================
-
- You can specify an initial action by defining the macro
-`YY_USER_INIT' (though note that `yyout' may not be available at the
-time this macro is executed). Or you can add to the beginning of your
-rules section:
-
-
- %%
- /* Must be indented! */
- static int did_init = 0;
-
- if ( ! did_init ){
- do_my_init();
- did_init = 1;
- }
-
-
-File: flex.info, Node: How do I execute code at termination?, Next: Where else can I find help?, Prev: How do I execute code only during initialization (only before the first scan)?, Up: FAQ
-
-How do I execute code at termination?
-=====================================
-
- You can specify an action for the `<<EOF>>' rule.
-
-
-File: flex.info, Node: Where else can I find help?, Next: Can I include comments in the "rules" section of the file?, Prev: How do I execute code at termination?, Up: FAQ
-
-Where else can I find help?
-===========================
-
- You can find the flex homepage on the web at
-`http://flex.sourceforge.net/'. See that page for details about flex
-mailing lists as well.
-
-
-File: flex.info, Node: Can I include comments in the "rules" section of the file?, Next: I get an error about undefined yywrap()., Prev: Where else can I find help?, Up: FAQ
-
-Can I include comments in the "rules" section of the file?
-==========================================================
-
- Yes, just about anywhere you want to. See the manual for the
-specific syntax.
-
-
-File: flex.info, Node: I get an error about undefined yywrap()., Next: How can I change the matching pattern at run time?, Prev: Can I include comments in the "rules" section of the file?, Up: FAQ
-
-I get an error about undefined yywrap().
-========================================
-
- You must supply a `yywrap()' function of your own, or link to
-`libfl.a' (which provides one), or use
-
-
- %option noyywrap
-
- in your source to say you don't want a `yywrap()' function.
-
-
-File: flex.info, Node: How can I change the matching pattern at run time?, Next: How can I expand macros in the input?, Prev: I get an error about undefined yywrap()., Up: FAQ
-
-How can I change the matching pattern at run time?
-==================================================
-
- You can't, it's compiled into a static table when flex builds the
-scanner.
-
-
-File: flex.info, Node: How can I expand macros in the input?, Next: How can I build a two-pass scanner?, Prev: How can I change the matching pattern at run time?, Up: FAQ
-
-How can I expand macros in the input?
-=====================================
-
- The best way to approach this problem is at a higher level, e.g., in
-the parser.
-
- However, you can do this using multiple input buffers.
-
-
- %%
- macro/[a-z]+ {
- /* Saw the macro "macro" followed by extra stuff. */
- main_buffer = YY_CURRENT_BUFFER;
- expansion_buffer = yy_scan_string(expand(yytext));
- yy_switch_to_buffer(expansion_buffer);
- }
-
- <<EOF>> {
- if ( expansion_buffer )
- {
- // We were doing an expansion, return to where
- // we were.
- yy_switch_to_buffer(main_buffer);
- yy_delete_buffer(expansion_buffer);
- expansion_buffer = 0;
- }
- else
- yyterminate();
- }
-
- You probably will want a stack of expansion buffers to allow nested
-macros. From the above though hopefully the idea is clear.
-
-
-File: flex.info, Node: How can I build a two-pass scanner?, Next: How do I match any string not matched in the preceding rules?, Prev: How can I expand macros in the input?, Up: FAQ
-
-How can I build a two-pass scanner?
-===================================
-
- One way to do it is to filter the first pass to a temporary file,
-then process the temporary file on the second pass. You will probably
-see a performance hit, do to all the disk I/O.
-
- When you need to look ahead far forward like this, it almost always
-means that the right solution is to build a parse tree of the entire
-input, then walk it after the parse in order to generate the output.
-In a sense, this is a two-pass approach, once through the text and once
-through the parse tree, but the performance hit for the latter is
-usually an order of magnitude smaller, since everything is already
-classified, in binary format, and residing in memory.
-
diff --git a/doc/flex.info-5 b/doc/flex.info-5
deleted file mode 100644
index 8935ccf..0000000
--- a/doc/flex.info-5
+++ /dev/null
@@ -1,1330 +0,0 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* flex: (flex). Fast lexical analyzer generator (lex replacement).
-END-INFO-DIR-ENTRY
-
-
- The flex manual is placed under the same licensing conditions as the
-rest of flex:
-
- Copyright (C) 1990, 1997 The Regents of the University of California.
-All rights reserved.
-
- 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.
-
-File: flex.info, Node: How do I match any string not matched in the preceding rules?, Next: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Prev: How can I build a two-pass scanner?, Up: FAQ
-
-How do I match any string not matched in the preceding rules?
-=============================================================
-
- One way to assign precedence, is to place the more specific rules
-first. If two rules would match the same input (same sequence of
-characters) then the first rule listed in the `flex' input wins. e.g.,
-
-
- %%
- foo[a-zA-Z_]+ return FOO_ID;
- bar[a-zA-Z_]+ return BAR_ID;
- [a-zA-Z_]+ return GENERIC_ID;
-
- Note that the rule `[a-zA-Z_]+' must come *after* the others. It
-will match the same amount of text as the more specific rules, and in
-that case the `flex' scanner will pick the first rule listed in your
-scanner as the one to match.
-
-
-File: flex.info, Node: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Next: Is there a way to make flex treat NULL like a regular character?, Prev: How do I match any string not matched in the preceding rules?, Up: FAQ
-
-I am trying to port code from AT&T lex that uses yysptr and yysbuf.
-===================================================================
-
- Those are internal variables pointing into the AT&T scanner's input
-buffer. I imagine they're being manipulated in user versions of the
-`input()' and `unput()' functions. If so, what you need to do is
-analyze those functions to figure out what they're doing, and then
-replace `input()' with an appropriate definition of `YY_INPUT'. You
-shouldn't need to (and must not) replace `flex''s `unput()' function.
-
-
-File: flex.info, Node: Is there a way to make flex treat NULL like a regular character?, Next: Whenever flex can not match the input it says "flex scanner jammed"., Prev: I am trying to port code from AT&T lex that uses yysptr and yysbuf., Up: FAQ
-
-Is there a way to make flex treat NULL like a regular character?
-================================================================
-
- Yes, `\0' and `\x00' should both do the trick. Perhaps you have an
-ancient version of `flex'. The latest release is version 2.5.33.
-
-
-File: flex.info, Node: Whenever flex can not match the input it says "flex scanner jammed"., Next: Why doesnt flex have non-greedy operators like perl does?, Prev: Is there a way to make flex treat NULL like a regular character?, Up: FAQ
-
-Whenever flex can not match the input it says "flex scanner jammed".
-====================================================================
-
- You need to add a rule that matches the otherwise-unmatched text.
-e.g.,
-
-
- %option yylineno
- %%
- [[a bunch of rules here]]
-
- . printf("bad input character '%s' at line %d\n", yytext, yylineno);
-
- See `%option default' for more information.
-
-
-File: flex.info, Node: Why doesnt flex have non-greedy operators like perl does?, Next: Memory leak - 16386 bytes allocated by malloc., Prev: Whenever flex can not match the input it says "flex scanner jammed"., Up: FAQ
-
-Why doesn't flex have non-greedy operators like perl does?
-==========================================================
-
- A DFA can do a non-greedy match by stopping the first time it enters
-an accepting state, instead of consuming input until it determines that
-no further matching is possible (a "jam" state). This is actually
-easier to implement than longest leftmost match (which flex does).
-
- But it's also much less useful than longest leftmost match. In
-general, when you find yourself wishing for non-greedy matching, that's
-usually a sign that you're trying to make the scanner do some parsing.
-That's generally the wrong approach, since it lacks the power to do a
-decent job. Better is to either introduce a separate parser, or to
-split the scanner into multiple scanners using (exclusive) start
-conditions.
-
- You might have a separate start state once you've seen the `BEGIN'.
-In that state, you might then have a regex that will match `END' (to
-kick you out of the state), and perhaps `(.|\n)' to get a single
-character within the chunk ...
-
- This approach also has much better error-reporting properties.
-
-
-File: flex.info, Node: Memory leak - 16386 bytes allocated by malloc., Next: How do I track the byte offset for lseek()?, Prev: Why doesnt flex have non-greedy operators like perl does?, Up: FAQ
-
-Memory leak - 16386 bytes allocated by malloc.
-==============================================
-
- UPDATED 2002-07-10: As of `flex' version 2.5.9, this leak means that
-you did not call `yylex_destroy()'. If you are using an earlier version
-of `flex', then read on.
-
- The leak is about 16426 bytes. That is, (8192 * 2 + 2) for the
-read-buffer, and about 40 for `struct yy_buffer_state' (depending upon
-alignment). The leak is in the non-reentrant C scanner only (NOT in the
-reentrant scanner, NOT in the C++ scanner). Since `flex' doesn't know
-when you are done, the buffer is never freed.
-
- However, the leak won't multiply since the buffer is reused no
-matter how many times you call `yylex()'.
-
- If you want to reclaim the memory when you are completely done
-scanning, then you might try this:
-
-
- /* For non-reentrant C scanner only. */
- yy_delete_buffer(YY_CURRENT_BUFFER);
- yy_init = 1;
-
- Note: `yy_init' is an "internal variable", and hasn't been tested in
-this situation. It is possible that some other globals may need
-resetting as well.
-
-
-File: flex.info, Node: How do I track the byte offset for lseek()?, Next: How do I use my own I/O classes in a C++ scanner?, Prev: Memory leak - 16386 bytes allocated by malloc., Up: FAQ
-
-How do I track the byte offset for lseek()?
-===========================================
-
-
- > We thought that it would be possible to have this number through the
- > evaluation of the following expression:
- >
- > seek_position = (no_buffers)*YY_READ_BUF_SIZE + yy_c_buf_p - YY_CURRENT_BUFFER->yy_ch_buf
-
- While this is the right idea, it has two problems. The first is that
-it's possible that `flex' will request less than `YY_READ_BUF_SIZE'
-during an invocation of `YY_INPUT' (or that your input source will
-return less even though `YY_READ_BUF_SIZE' bytes were requested). The
-second problem is that when refilling its internal buffer, `flex' keeps
-some characters from the previous buffer (because usually it's in the
-middle of a match, and needs those characters to construct `yytext' for
-the match once it's done). Because of this, `yy_c_buf_p -
-YY_CURRENT_BUFFER->yy_ch_buf' won't be exactly the number of characters
-already read from the current buffer.
-
- An alternative solution is to count the number of characters you've
-matched since starting to scan. This can be done by using
-`YY_USER_ACTION'. For example,
-
-
- #define YY_USER_ACTION num_chars += yyleng;
-
- (You need to be careful to update your bookkeeping if you use
-`yymore('), `yyless()', `unput()', or `input()'.)
-
-
-File: flex.info, Node: How do I use my own I/O classes in a C++ scanner?, Next: How do I skip as many chars as possible?, Prev: How do I track the byte offset for lseek()?, Up: FAQ
-
-How do I use my own I/O classes in a C++ scanner?
-=================================================
-
- When the flex C++ scanning class rewrite finally happens, then this
-sort of thing should become much easier.
-
- You can do this by passing the various functions (such as
-`LexerInput()' and `LexerOutput()') NULL `iostream*''s, and then
-dealing with your own I/O classes surreptitiously (i.e., stashing them
-in special member variables). This works because the only assumption
-about the lexer regarding what's done with the iostream's is that
-they're ultimately passed to `LexerInput()' and `LexerOutput', which
-then do whatever is necessary with them.
-
-
-File: flex.info, Node: How do I skip as many chars as possible?, Next: deleteme00, Prev: How do I use my own I/O classes in a C++ scanner?, Up: FAQ
-
-How do I skip as many chars as possible?
-========================================
-
- How do I skip as many chars as possible - without interfering with
-the other patterns?
-
- In the example below, we want to skip over characters until we see
-the phrase "endskip". The following will _NOT_ work correctly (do you
-see why not?)
-
-
- /* INCORRECT SCANNER */
- %x SKIP
- %%
- <INITIAL>startskip BEGIN(SKIP);
- ...
- <SKIP>"endskip" BEGIN(INITIAL);
- <SKIP>.* ;
-
- The problem is that the pattern .* will eat up the word "endskip."
-The simplest (but slow) fix is:
-
-
- <SKIP>"endskip" BEGIN(INITIAL);
- <SKIP>. ;
-
- The fix involves making the second rule match more, without making
-it match "endskip" plus something else. So for example:
-
-
- <SKIP>"endskip" BEGIN(INITIAL);
- <SKIP>[^e]+ ;
- <SKIP>. ;/* so you eat up e's, too */
-
-
-File: flex.info, Node: deleteme00, Next: Are certain equivalent patterns faster than others?, Prev: How do I skip as many chars as possible?, Up: FAQ
-
-deleteme00
-==========
-
-
- QUESTION:
- When was flex born?
-
- Vern Paxson took over
- the Software Tools lex project from Jef Poskanzer in 1982. At that point it
- was written in Ratfor. Around 1987 or so, Paxson translated it into C, and
- a legend was born :-).
-
-
-File: flex.info, Node: Are certain equivalent patterns faster than others?, Next: Is backing up a big deal?, Prev: deleteme00, Up: FAQ
-
-Are certain equivalent patterns faster than others?
-===================================================
-
-
- To: Adoram Rogel <adoram@orna.hybridge.com>
- Subject: Re: Flex 2.5.2 performance questions
- In-reply-to: Your message of Wed, 18 Sep 96 11:12:17 EDT.
- Date: Wed, 18 Sep 96 10:51:02 PDT
- From: Vern Paxson <vern>
-
- [Note, the most recent flex release is 2.5.4, which you can get from
- ftp.ee.lbl.gov. It has bug fixes over 2.5.2 and 2.5.3.]
-
- > 1. Using the pattern
- > ([Ff](oot)?)?[Nn](ote)?(\.)?
- > instead of
- > (((F|f)oot(N|n)ote)|((N|n)ote)|((N|n)\.)|((F|f)(N|n)(\.)))
- > (in a very complicated flex program) caused the program to slow from
- > 300K+/min to 100K/min (no other changes were done).
-
- These two are not equivalent. For example, the first can match "footnote."
- but the second can only match "footnote". This is almost certainly the
- cause in the discrepancy - the slower scanner run is matching more tokens,
- and/or having to do more backing up.
-
- > 2. Which of these two are better: [Ff]oot or (F|f)oot ?
-
- From a performance point of view, they're equivalent (modulo presumably
- minor effects such as memory cache hit rates; and the presence of trailing
- context, see below). From a space point of view, the first is slightly
- preferable.
-
- > 3. I have a pattern that look like this:
- > pats {p1}|{p2}|{p3}|...|{p50} (50 patterns ORd)
- >
- > running yet another complicated program that includes the following rule:
- > <snext>{and}/{no4}{bb}{pats}
- >
- > gets me to "too complicated - over 32,000 states"...
-
- I can't tell from this example whether the trailing context is variable-length
- or fixed-length (it could be the latter if {and} is fixed-length). If it's
- variable length, which flex -p will tell you, then this reflects a basic
- performance problem, and if you can eliminate it by restructuring your
- scanner, you will see significant improvement.
-
- > so I divided {pats} to {pats1}, {pats2},..., {pats5} each consists of about
- > 10 patterns and changed the rule to be 5 rules.
- > This did compile, but what is the rule of thumb here ?
-
- The rule is to avoid trailing context other than fixed-length, in which for
- a/b, either the 'a' pattern or the 'b' pattern have a fixed length. Use
- of the '|' operator automatically makes the pattern variable length, so in
- this case '[Ff]oot' is preferred to '(F|f)oot'.
-
- > 4. I changed a rule that looked like this:
- > <snext8>{and}{bb}/{ROMAN}[^A-Za-z] { BEGIN...
- >
- > to the next 2 rules:
- > <snext8>{and}{bb}/{ROMAN}[A-Za-z] { ECHO;}
- > <snext8>{and}{bb}/{ROMAN} { BEGIN...
- >
- > Again, I understand the using [^...] will cause a great performance loss
-
- Actually, it doesn't cause any sort of performance loss. It's a surprising
- fact about regular expressions that they always match in linear time
- regardless of how complex they are.
-
- > but are there any specific rules about it ?
-
- See the "Performance Considerations" section of the man page, and also
- the example in MISC/fastwc/.
-
- Vern
-
-
-File: flex.info, Node: Is backing up a big deal?, Next: Can I fake multi-byte character support?, Prev: Are certain equivalent patterns faster than others?, Up: FAQ
-
-Is backing up a big deal?
-=========================
-
-
- To: Adoram Rogel <adoram@hybridge.com>
- Subject: Re: Flex 2.5.2 performance questions
- In-reply-to: Your message of Thu, 19 Sep 96 10:16:04 EDT.
- Date: Thu, 19 Sep 96 09:58:00 PDT
- From: Vern Paxson <vern>
-
- > a lot about the backing up problem.
- > I believe that there lies my biggest problem, and I'll try to improve
- > it.
-
- Since you have variable trailing context, this is a bigger performance
- problem. Fixing it is usually easier than fixing backing up, which in a
- complicated scanner (yours seems to fit the bill) can be extremely
- difficult to do correctly.
-
- You also don't mention what flags you are using for your scanner.
- -f makes a large speed difference, and -Cfe buys you nearly as much
- speed but the resulting scanner is considerably smaller.
-
- > I have an | operator in {and} and in {pats} so both of them are variable
- > length.
-
- -p should have reported this.
-
- > Is changing one of them to fixed-length is enough ?
-
- Yes.
-
- > Is it possible to change the 32,000 states limit ?
-
- Yes. I've appended instructions on how. Before you make this change,
- though, you should think about whether there are ways to fundamentally
- simplify your scanner - those are certainly preferable!
-
- Vern
-
- To increase the 32K limit (on a machine with 32 bit integers), you increase
- the magnitude of the following in flexdef.h:
-
- #define JAMSTATE -32766 /* marks a reference to the state that always jams */
- #define MAXIMUM_MNS 31999
- #define BAD_SUBSCRIPT -32767
- #define MAX_SHORT 32700
-
- Adding a 0 or two after each should do the trick.
-
-
-File: flex.info, Node: Can I fake multi-byte character support?, Next: deleteme01, Prev: Is backing up a big deal?, Up: FAQ
-
-Can I fake multi-byte character support?
-========================================
-
-
- To: Heeman_Lee@hp.com
- Subject: Re: flex - multi-byte support?
- In-reply-to: Your message of Thu, 03 Oct 1996 17:24:04 PDT.
- Date: Fri, 04 Oct 1996 11:42:18 PDT
- From: Vern Paxson <vern>
-
- > I assume as long as my *.l file defines the
- > range of expected character code values (in octal format), flex will
- > scan the file and read multi-byte characters correctly. But I have no
- > confidence in this assumption.
-
- Your lack of confidence is justified - this won't work.
-
- Flex has in it a widespread assumption that the input is processed
- one byte at a time. Fixing this is on the to-do list, but is involved,
- so it won't happen any time soon. In the interim, the best I can suggest
- (unless you want to try fixing it yourself) is to write your rules in
- terms of pairs of bytes, using definitions in the first section:
-
- X \xfe\xc2
- ...
- %%
- foo{X}bar found_foo_fe_c2_bar();
-
- etc. Definitely a pain - sorry about that.
-
- By the way, the email address you used for me is ancient, indicating you
- have a very old version of flex. You can get the most recent, 2.5.4, from
- ftp.ee.lbl.gov.
-
- Vern
-
-
-File: flex.info, Node: deleteme01, Next: Can you discuss some flex internals?, Prev: Can I fake multi-byte character support?, Up: FAQ
-
-deleteme01
-==========
-
-
- To: moleary@primus.com
- Subject: Re: Flex / Unicode compatibility question
- In-reply-to: Your message of Tue, 22 Oct 1996 10:15:42 PDT.
- Date: Tue, 22 Oct 1996 11:06:13 PDT
- From: Vern Paxson <vern>
-
- Unfortunately flex at the moment has a widespread assumption within it
- that characters are processed 8 bits at a time. I don't see any easy
- fix for this (other than writing your rules in terms of double characters -
- a pain). I also don't know of a wider lex, though you might try surfing
- the Plan 9 stuff because I know it's a Unicode system, and also the PCCT
- toolkit (try searching say Alta Vista for "Purdue Compiler Construction
- Toolkit").
-
- Fixing flex to handle wider characters is on the long-term to-do list.
- But since flex is a strictly spare-time project these days, this probably
- won't happen for quite a while, unless someone else does it first.
-
- Vern
-
-
-File: flex.info, Node: Can you discuss some flex internals?, Next: unput() messes up yy_at_bol, Prev: deleteme01, Up: FAQ
-
-Can you discuss some flex internals?
-====================================
-
-
- To: Johan Linde <jl@theophys.kth.se>
- Subject: Re: translation of flex
- In-reply-to: Your message of Sun, 10 Nov 1996 09:16:36 PST.
- Date: Mon, 11 Nov 1996 10:33:50 PST
- From: Vern Paxson <vern>
-
- > I'm working for the Swedish team translating GNU program, and I'm currently
- > working with flex. I have a few questions about some of the messages which
- > I hope you can answer.
-
- All of the things you're wondering about, by the way, concerning flex
- internals - probably the only person who understands what they mean in
- English is me! So I wouldn't worry too much about getting them right.
- That said ...
-
- > #: main.c:545
- > msgid " %d protos created\n"
- >
- > Does proto mean prototype?
-
- Yes - prototypes of state compression tables.
-
- > #: main.c:539
- > msgid " %d/%d (peak %d) template nxt-chk entries created\n"
- >
- > Here I'm mainly puzzled by 'nxt-chk'. I guess it means 'next-check'. (?)
- > However, 'template next-check entries' doesn't make much sense to me. To be
- > able to find a good translation I need to know a little bit more about it.
-
- There is a scheme in the Aho/Sethi/Ullman compiler book for compressing
- scanner tables. It involves creating two pairs of tables. The first has
- "base" and "default" entries, the second has "next" and "check" entries.
- The "base" entry is indexed by the current state and yields an index into
- the next/check table. The "default" entry gives what to do if the state
- transition isn't found in next/check. The "next" entry gives the next
- state to enter, but only if the "check" entry verifies that this entry is
- correct for the current state. Flex creates templates of series of
- next/check entries and then encodes differences from these templates as a
- way to compress the tables.
-
- > #: main.c:533
- > msgid " %d/%d base-def entries created\n"
- >
- > The same problem here for 'base-def'.
-
- See above.
-
- Vern
-
-
-File: flex.info, Node: unput() messes up yy_at_bol, Next: The | operator is not doing what I want, Prev: Can you discuss some flex internals?, Up: FAQ
-
-unput() messes up yy_at_bol
-===========================
-
-
- To: Xinying Li <xli@npac.syr.edu>
- Subject: Re: FLEX ?
- In-reply-to: Your message of Wed, 13 Nov 1996 17:28:38 PST.
- Date: Wed, 13 Nov 1996 19:51:54 PST
- From: Vern Paxson <vern>
-
- > "unput()" them to input flow, question occurs. If I do this after I scan
- > a carriage, the variable "YY_CURRENT_BUFFER->yy_at_bol" is changed. That
- > means the carriage flag has gone.
-
- You can control this by calling yy_set_bol(). It's described in the manual.
-
- > And if in pre-reading it goes to the end of file, is anything done
- > to control the end of curren buffer and end of file?
-
- No, there's no way to put back an end-of-file.
-
- > By the way I am using flex 2.5.2 and using the "-l".
-
- The latest release is 2.5.4, by the way. It fixes some bugs in 2.5.2 and
- 2.5.3. You can get it from ftp.ee.lbl.gov.
-
- Vern
-
-
-File: flex.info, Node: The | operator is not doing what I want, Next: Why can't flex understand this variable trailing context pattern?, Prev: unput() messes up yy_at_bol, Up: FAQ
-
-The | operator is not doing what I want
-=======================================
-
-
- To: Alain.ISSARD@st.com
- Subject: Re: Start condition with FLEX
- In-reply-to: Your message of Mon, 18 Nov 1996 09:45:02 PST.
- Date: Mon, 18 Nov 1996 10:41:34 PST
- From: Vern Paxson <vern>
-
- > I am not able to use the start condition scope and to use the | (OR) with
- > rules having start conditions.
-
- The problem is that if you use '|' as a regular expression operator, for
- example "a|b" meaning "match either 'a' or 'b'", then it must *not* have
- any blanks around it. If you instead want the special '|' *action* (which
- from your scanner appears to be the case), which is a way of giving two
- different rules the same action:
-
- foo |
- bar matched_foo_or_bar();
-
- then '|' *must* be separated from the first rule by whitespace and *must*
- be followed by a new line. You *cannot* write it as:
-
- foo | bar matched_foo_or_bar();
-
- even though you might think you could because yacc supports this syntax.
- The reason for this unfortunately incompatibility is historical, but it's
- unlikely to be changed.
-
- Your problems with start condition scope are simply due to syntax errors
- from your use of '|' later confusing flex.
-
- Let me know if you still have problems.
-
- Vern
-
-
-File: flex.info, Node: Why can't flex understand this variable trailing context pattern?, Next: The ^ operator isn't working, Prev: The | operator is not doing what I want, Up: FAQ
-
-Why can't flex understand this variable trailing context pattern?
-=================================================================
-
-
- To: Gregory Margo <gmargo@newton.vip.best.com>
- Subject: Re: flex-2.5.3 bug report
- In-reply-to: Your message of Sat, 23 Nov 1996 16:50:09 PST.
- Date: Sat, 23 Nov 1996 17:07:32 PST
- From: Vern Paxson <vern>
-
- > Enclosed is a lex file that "real" lex will process, but I cannot get
- > flex to process it. Could you try it and maybe point me in the right direction?
-
- Your problem is that some of the definitions in the scanner use the '/'
- trailing context operator, and have it enclosed in ()'s. Flex does not
- allow this operator to be enclosed in ()'s because doing so allows undefined
- regular expressions such as "(a/b)+". So the solution is to remove the
- parentheses. Note that you must also be building the scanner with the -l
- option for AT&T lex compatibility. Without this option, flex automatically
- encloses the definitions in parentheses.
-
- Vern
-
-
-File: flex.info, Node: The ^ operator isn't working, Next: Trailing context is getting confused with trailing optional patterns, Prev: Why can't flex understand this variable trailing context pattern?, Up: FAQ
-
-The ^ operator isn't working
-============================
-
-
- To: Thomas Hadig <hadig@toots.physik.rwth-aachen.de>
- Subject: Re: Flex Bug ?
- In-reply-to: Your message of Tue, 26 Nov 1996 14:35:01 PST.
- Date: Tue, 26 Nov 1996 11:15:05 PST
- From: Vern Paxson <vern>
-
- > In my lexer code, i have the line :
- > ^\*.* { }
- >
- > Thus all lines starting with an astrix (*) are comment lines.
- > This does not work !
-
- I can't get this problem to reproduce - it works fine for me. Note
- though that if what you have is slightly different:
-
- COMMENT ^\*.*
- %%
- {COMMENT} { }
-
- then it won't work, because flex pushes back macro definitions enclosed
- in ()'s, so the rule becomes
-
- (^\*.*) { }
-
- and now that the '^' operator is not at the immediate beginning of the
- line, it's interpreted as just a regular character. You can avoid this
- behavior by using the "-l" lex-compatibility flag, or "%option lex-compat".
-
- Vern
-
-
-File: flex.info, Node: Trailing context is getting confused with trailing optional patterns, Next: Is flex GNU or not?, Prev: The ^ operator isn't working, Up: FAQ
-
-Trailing context is getting confused with trailing optional patterns
-====================================================================
-
-
- To: Adoram Rogel <adoram@hybridge.com>
- Subject: Re: Flex 2.5.4 BOF ???
- In-reply-to: Your message of Tue, 26 Nov 1996 16:10:41 PST.
- Date: Wed, 27 Nov 1996 10:56:25 PST
- From: Vern Paxson <vern>
-
- > Organization(s)?/[a-z]
- >
- > This matched "Organizations" (looking in debug mode, the trailing s
- > was matched with trailing context instead of the optional (s) in the
- > end of the word.
-
- That should only happen with lex. Flex can properly match this pattern.
- (That might be what you're saying, I'm just not sure.)
-
- > Is there a way to avoid this dangerous trailing context problem ?
-
- Unfortunately, there's no easy way. On the other hand, I don't see why
- it should be a problem. Lex's matching is clearly wrong, and I'd hope
- that usually the intent remains the same as expressed with the pattern,
- so flex's matching will be correct.
-
- Vern
-
-
-File: flex.info, Node: Is flex GNU or not?, Next: ERASEME53, Prev: Trailing context is getting confused with trailing optional patterns, Up: FAQ
-
-Is flex GNU or not?
-===================
-
-
- To: Cameron MacKinnon <mackin@interlog.com>
- Subject: Re: Flex documentation bug
- In-reply-to: Your message of Mon, 02 Dec 1996 00:07:08 PST.
- Date: Sun, 01 Dec 1996 22:29:39 PST
- From: Vern Paxson <vern>
-
- > I'm not sure how or where to submit bug reports (documentation or
- > otherwise) for the GNU project stuff ...
-
- Well, strictly speaking flex isn't part of the GNU project. They just
- distribute it because no one's written a decent GPL'd lex replacement.
- So you should send bugs directly to me. Those sent to the GNU folks
- sometimes find there way to me, but some may drop between the cracks.
-
- > In GNU Info, under the section 'Start Conditions', and also in the man
- > page (mine's dated April '95) is a nice little snippet showing how to
- > parse C quoted strings into a buffer, defined to be MAX_STR_CONST in
- > size. Unfortunately, no overflow checking is ever done ...
-
- This is already mentioned in the manual:
-
- Finally, here's an example of how to match C-style quoted
- strings using exclusive start conditions, including expanded
- escape sequences (but not including checking for a string
- that's too long):
-
- The reason for not doing the overflow checking is that it will needlessly
- clutter up an example whose main purpose is just to demonstrate how to
- use flex.
-
- The latest release is 2.5.4, by the way, available from ftp.ee.lbl.gov.
-
- Vern
-
-
-File: flex.info, Node: ERASEME53, Next: I need to scan if-then-else blocks and while loops, Prev: Is flex GNU or not?, Up: FAQ
-
-ERASEME53
-=========
-
-
- To: tsv@cs.UManitoba.CA
- Subject: Re: Flex (reg)..
- In-reply-to: Your message of Thu, 06 Mar 1997 23:50:16 PST.
- Date: Thu, 06 Mar 1997 15:54:19 PST
- From: Vern Paxson <vern>
-
- > [:alpha:] ([:alnum:] | \\_)*
-
- If your rule really has embedded blanks as shown above, then it won't
- work, as the first blank delimits the rule from the action. (It wouldn't
- even compile ...) You need instead:
-
- [:alpha:]([:alnum:]|\\_)*
-
- and that should work fine - there's no restriction on what can go inside
- of ()'s except for the trailing context operator, '/'.
-
- Vern
-
-
-File: flex.info, Node: I need to scan if-then-else blocks and while loops, Next: ERASEME55, Prev: ERASEME53, Up: FAQ
-
-I need to scan if-then-else blocks and while loops
-==================================================
-
-
- To: "Mike Stolnicki" <mstolnic@ford.com>
- Subject: Re: FLEX help
- In-reply-to: Your message of Fri, 30 May 1997 13:33:27 PDT.
- Date: Fri, 30 May 1997 10:46:35 PDT
- From: Vern Paxson <vern>
-
- > We'd like to add "if-then-else", "while", and "for" statements to our
- > language ...
- > We've investigated many possible solutions. The one solution that seems
- > the most reasonable involves knowing the position of a TOKEN in yyin.
-
- I strongly advise you to instead build a parse tree (abstract syntax tree)
- and loop over that instead. You'll find this has major benefits in keeping
- your interpreter simple and extensible.
-
- That said, the functionality you mention for get_position and set_position
- have been on the to-do list for a while. As flex is a purely spare-time
- project for me, no guarantees when this will be added (in particular, it
- for sure won't be for many months to come).
-
- Vern
-
-
-File: flex.info, Node: ERASEME55, Next: ERASEME56, Prev: I need to scan if-then-else blocks and while loops, Up: FAQ
-
-ERASEME55
-=========
-
-
- To: Colin Paul Adams <colin@colina.demon.co.uk>
- Subject: Re: Flex C++ classes and Bison
- In-reply-to: Your message of 09 Aug 1997 17:11:41 PDT.
- Date: Fri, 15 Aug 1997 10:48:19 PDT
- From: Vern Paxson <vern>
-
- > #define YY_DECL int yylex (YYSTYPE *lvalp, struct parser_control
- > *parm)
- >
- > I have been trying to get this to work as a C++ scanner, but it does
- > not appear to be possible (warning that it matches no declarations in
- > yyFlexLexer, or something like that).
- >
- > Is this supposed to be possible, or is it being worked on (I DID
- > notice the comment that scanner classes are still experimental, so I'm
- > not too hopeful)?
-
- What you need to do is derive a subclass from yyFlexLexer that provides
- the above yylex() method, squirrels away lvalp and parm into member
- variables, and then invokes yyFlexLexer::yylex() to do the regular scanning.
-
- Vern
-
-
-File: flex.info, Node: ERASEME56, Next: ERASEME57, Prev: ERASEME55, Up: FAQ
-
-ERASEME56
-=========
-
-
- To: Mikael.Latvala@lmf.ericsson.se
- Subject: Re: Possible mistake in Flex v2.5 document
- In-reply-to: Your message of Fri, 05 Sep 1997 16:07:24 PDT.
- Date: Fri, 05 Sep 1997 10:01:54 PDT
- From: Vern Paxson <vern>
-
- > In that example you show how to count comment lines when using
- > C style /* ... */ comments. My question is, shouldn't you take into
- > account a scenario where end of a comment marker occurs inside
- > character or string literals?
-
- The scanner certainly needs to also scan character and string literals.
- However it does that (there's an example in the man page for strings), the
- lexer will recognize the beginning of the literal before it runs across the
- embedded "/*". Consequently, it will finish scanning the literal before it
- even considers the possibility of matching "/*".
-
- Example:
-
- '([^']*|{ESCAPE_SEQUENCE})'
-
- will match all the text between the ''s (inclusive). So the lexer
- considers this as a token beginning at the first ', and doesn't even
- attempt to match other tokens inside it.
-
- I thinnk this subtlety is not worth putting in the manual, as I suspect
- it would confuse more people than it would enlighten.
-
- Vern
-
-
-File: flex.info, Node: ERASEME57, Next: Is there a repository for flex scanners?, Prev: ERASEME56, Up: FAQ
-
-ERASEME57
-=========
-
-
- To: "Marty Leisner" <leisner@sdsp.mc.xerox.com>
- Subject: Re: flex limitations
- In-reply-to: Your message of Sat, 06 Sep 1997 11:27:21 PDT.
- Date: Mon, 08 Sep 1997 11:38:08 PDT
- From: Vern Paxson <vern>
-
- > %%
- > [a-zA-Z]+ /* skip a line */
- > { printf("got %s\n", yytext); }
- > %%
-
- What version of flex are you using? If I feed this to 2.5.4, it complains:
-
- "bug.l", line 5: EOF encountered inside an action
- "bug.l", line 5: unrecognized rule
- "bug.l", line 5: fatal parse error
-
- Not the world's greatest error message, but it manages to flag the problem.
-
- (With the introduction of start condition scopes, flex can't accommodate
- an action on a separate line, since it's ambiguous with an indented rule.)
-
- You can get 2.5.4 from ftp.ee.lbl.gov.
-
- Vern
-
-
-File: flex.info, Node: Is there a repository for flex scanners?, Next: How can I conditionally compile or preprocess my flex input file?, Prev: ERASEME57, Up: FAQ
-
-Is there a repository for flex scanners?
-========================================
-
- Not that we know of. You might try asking on comp.compilers.
-
-
-File: flex.info, Node: How can I conditionally compile or preprocess my flex input file?, Next: Where can I find grammars for lex and yacc?, Prev: Is there a repository for flex scanners?, Up: FAQ
-
-How can I conditionally compile or preprocess my flex input file?
-=================================================================
-
- Flex doesn't have a preprocessor like C does. You might try using
-m4, or the C preprocessor plus a sed script to clean up the result.
-
-
-File: flex.info, Node: Where can I find grammars for lex and yacc?, Next: I get an end-of-buffer message for each character scanned., Prev: How can I conditionally compile or preprocess my flex input file?, Up: FAQ
-
-Where can I find grammars for lex and yacc?
-===========================================
-
- In the sources for flex and bison.
-
-
-File: flex.info, Node: I get an end-of-buffer message for each character scanned., Next: unnamed-faq-62, Prev: Where can I find grammars for lex and yacc?, Up: FAQ
-
-I get an end-of-buffer message for each character scanned.
-==========================================================
-
- This will happen if your LexerInput() function returns only one
-character at a time, which can happen either if you're scanner is
-"interactive", or if the streams library on your platform always
-returns 1 for yyin->gcount().
-
- Solution: override LexerInput() with a version that returns whole
-buffers.
-
-
-File: flex.info, Node: unnamed-faq-62, Next: unnamed-faq-63, Prev: I get an end-of-buffer message for each character scanned., Up: FAQ
-
-unnamed-faq-62
-==============
-
-
- To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
- Subject: Re: Flex maximums
- In-reply-to: Your message of Mon, 17 Nov 1997 17:16:06 PST.
- Date: Mon, 17 Nov 1997 17:16:15 PST
- From: Vern Paxson <vern>
-
- > I took a quick look into the flex-sources and altered some #defines in
- > flexdefs.h:
- >
- > #define INITIAL_MNS 64000
- > #define MNS_INCREMENT 1024000
- > #define MAXIMUM_MNS 64000
-
- The things to fix are to add a couple of zeroes to:
-
- #define JAMSTATE -32766 /* marks a reference to the state that always jams */
- #define MAXIMUM_MNS 31999
- #define BAD_SUBSCRIPT -32767
- #define MAX_SHORT 32700
-
- and, if you get complaints about too many rules, make the following change too:
-
- #define YY_TRAILING_MASK 0x200000
- #define YY_TRAILING_HEAD_MASK 0x400000
-
- - Vern
-
-
-File: flex.info, Node: unnamed-faq-63, Next: unnamed-faq-64, Prev: unnamed-faq-62, Up: FAQ
-
-unnamed-faq-63
-==============
-
-
- To: jimmey@lexis-nexis.com (Jimmey Todd)
- Subject: Re: FLEX question regarding istream vs ifstream
- In-reply-to: Your message of Mon, 08 Dec 1997 15:54:15 PST.
- Date: Mon, 15 Dec 1997 13:21:35 PST
- From: Vern Paxson <vern>
-
- > stdin_handle = YY_CURRENT_BUFFER;
- > ifstream fin( "aFile" );
- > yy_switch_to_buffer( yy_create_buffer( fin, YY_BUF_SIZE ) );
- >
- > What I'm wanting to do, is pass the contents of a file thru one set
- > of rules and then pass stdin thru another set... It works great if, I
- > don't use the C++ classes. But since everything else that I'm doing is
- > in C++, I thought I'd be consistent.
- >
- > The problem is that 'yy_create_buffer' is expecting an istream* as it's
- > first argument (as stated in the man page). However, fin is a ifstream
- > object. Any ideas on what I might be doing wrong? Any help would be
- > appreciated. Thanks!!
-
- You need to pass &fin, to turn it into an ifstream* instead of an ifstream.
- Then its type will be compatible with the expected istream*, because ifstream
- is derived from istream.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-64, Next: unnamed-faq-65, Prev: unnamed-faq-63, Up: FAQ
-
-unnamed-faq-64
-==============
-
-
- To: Enda Fadian <fadiane@piercom.ie>
- Subject: Re: Question related to Flex man page?
- In-reply-to: Your message of Tue, 16 Dec 1997 15:17:34 PST.
- Date: Tue, 16 Dec 1997 14:17:09 PST
- From: Vern Paxson <vern>
-
- > Can you explain to me what is ment by a long-jump in relation to flex?
-
- Using the longjmp() function while inside yylex() or a routine called by it.
-
- > what is the flex activation frame.
-
- Just yylex()'s stack frame.
-
- > As far as I can see yyrestart will bring me back to the sart of the input
- > file and using flex++ isnot really an option!
-
- No, yyrestart() doesn't imply a rewind, even though its name might sound
- like it does. It tells the scanner to flush its internal buffers and
- start reading from the given file at its present location.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-65, Next: unnamed-faq-66, Prev: unnamed-faq-64, Up: FAQ
-
-unnamed-faq-65
-==============
-
-
- To: hassan@larc.info.uqam.ca (Hassan Alaoui)
- Subject: Re: Need urgent Help
- In-reply-to: Your message of Sat, 20 Dec 1997 19:38:19 PST.
- Date: Sun, 21 Dec 1997 21:30:46 PST
- From: Vern Paxson <vern>
-
- > /usr/lib/yaccpar: In function `int yyparse()':
- > /usr/lib/yaccpar:184: warning: implicit declaration of function `int yylex(...)'
- >
- > ld: Undefined symbol
- > _yylex
- > _yyparse
- > _yyin
-
- This is a known problem with Solaris C++ (and/or Solaris yacc). I believe
- the fix is to explicitly insert some 'extern "C"' statements for the
- corresponding routines/symbols.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-66, Next: unnamed-faq-67, Prev: unnamed-faq-65, Up: FAQ
-
-unnamed-faq-66
-==============
-
-
- To: mc0307@mclink.it
- Cc: gnu@prep.ai.mit.edu
- Subject: Re: [mc0307@mclink.it: Help request]
- In-reply-to: Your message of Fri, 12 Dec 1997 17:57:29 PST.
- Date: Sun, 21 Dec 1997 22:33:37 PST
- From: Vern Paxson <vern>
-
- > This is my definition for float and integer types:
- > . . .
- > NZD [1-9]
- > ...
- > I've tested my program on other lex version (on UNIX Sun Solaris an HP
- > UNIX) and it work well, so I think that my definitions are correct.
- > There are any differences between Lex and Flex?
-
- There are indeed differences, as discussed in the man page. The one
- you are probably running into is that when flex expands a name definition,
- it puts parentheses around the expansion, while lex does not. There's
- an example in the man page of how this can lead to different matching.
- Flex's behavior complies with the POSIX standard (or at least with the
- last POSIX draft I saw).
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-67, Next: unnamed-faq-68, Prev: unnamed-faq-66, Up: FAQ
-
-unnamed-faq-67
-==============
-
-
- To: hassan@larc.info.uqam.ca (Hassan Alaoui)
- Subject: Re: Thanks
- In-reply-to: Your message of Mon, 22 Dec 1997 16:06:35 PST.
- Date: Mon, 22 Dec 1997 14:35:05 PST
- From: Vern Paxson <vern>
-
- > Thank you very much for your help. I compile and link well with C++ while
- > declaring 'yylex ...' extern, But a little problem remains. I get a
- > segmentation default when executing ( I linked with lfl library) while it
- > works well when using LEX instead of flex. Do you have some ideas about the
- > reason for this ?
-
- The one possible reason for this that comes to mind is if you've defined
- yytext as "extern char yytext[]" (which is what lex uses) instead of
- "extern char *yytext" (which is what flex uses). If it's not that, then
- I'm afraid I don't know what the problem might be.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-68, Next: unnamed-faq-69, Prev: unnamed-faq-67, Up: FAQ
-
-unnamed-faq-68
-==============
-
-
- To: "Bart Niswonger" <NISWONGR@almaden.ibm.com>
- Subject: Re: flex 2.5: c++ scanners & start conditions
- In-reply-to: Your message of Tue, 06 Jan 1998 10:34:21 PST.
- Date: Tue, 06 Jan 1998 19:19:30 PST
- From: Vern Paxson <vern>
-
- > The problem is that when I do this (using %option c++) start
- > conditions seem to not apply.
-
- The BEGIN macro modifies the yy_start variable. For C scanners, this
- is a static with scope visible through the whole file. For C++ scanners,
- it's a member variable, so it only has visible scope within a member
- function. Your lexbegin() routine is not a member function when you
- build a C++ scanner, so it's not modifying the correct yy_start. The
- diagnostic that indicates this is that you found you needed to add
- a declaration of yy_start in order to get your scanner to compile when
- using C++; instead, the correct fix is to make lexbegin() a member
- function (by deriving from yyFlexLexer).
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-69, Next: unnamed-faq-70, Prev: unnamed-faq-68, Up: FAQ
-
-unnamed-faq-69
-==============
-
-
- To: "Boris Zinin" <boris@ippe.rssi.ru>
- Subject: Re: current position in flex buffer
- In-reply-to: Your message of Mon, 12 Jan 1998 18:58:23 PST.
- Date: Mon, 12 Jan 1998 12:03:15 PST
- From: Vern Paxson <vern>
-
- > The problem is how to determine the current position in flex active
- > buffer when a rule is matched....
-
- You will need to keep track of this explicitly, such as by redefining
- YY_USER_ACTION to count the number of characters matched.
-
- The latest flex release, by the way, is 2.5.4, available from ftp.ee.lbl.gov.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-70, Next: unnamed-faq-71, Prev: unnamed-faq-69, Up: FAQ
-
-unnamed-faq-70
-==============
-
-
- To: Bik.Dhaliwal@bis.org
- Subject: Re: Flex question
- In-reply-to: Your message of Mon, 26 Jan 1998 13:05:35 PST.
- Date: Tue, 27 Jan 1998 22:41:52 PST
- From: Vern Paxson <vern>
-
- > That requirement involves knowing
- > the character position at which a particular token was matched
- > in the lexer.
-
- The way you have to do this is by explicitly keeping track of where
- you are in the file, by counting the number of characters scanned
- for each token (available in yyleng). It may prove convenient to
- do this by redefining YY_USER_ACTION, as described in the manual.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-71, Next: unnamed-faq-72, Prev: unnamed-faq-70, Up: FAQ
-
-unnamed-faq-71
-==============
-
-
- To: Vladimir Alexiev <vladimir@cs.ualberta.ca>
- Subject: Re: flex: how to control start condition from parser?
- In-reply-to: Your message of Mon, 26 Jan 1998 05:50:16 PST.
- Date: Tue, 27 Jan 1998 22:45:37 PST
- From: Vern Paxson <vern>
-
- > It seems useful for the parser to be able to tell the lexer about such
- > context dependencies, because then they don't have to be limited to
- > local or sequential context.
-
- One way to do this is to have the parser call a stub routine that's
- included in the scanner's .l file, and consequently that has access ot
- BEGIN. The only ugliness is that the parser can't pass in the state
- it wants, because those aren't visible - but if you don't have many
- such states, then using a different set of names doesn't seem like
- to much of a burden.
-
- While generating a .h file like you suggests is certainly cleaner,
- flex development has come to a virtual stand-still :-(, so a workaround
- like the above is much more pragmatic than waiting for a new feature.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-72, Next: unnamed-faq-73, Prev: unnamed-faq-71, Up: FAQ
-
-unnamed-faq-72
-==============
-
-
- To: Barbara Denny <denny@3com.com>
- Subject: Re: freebsd flex bug?
- In-reply-to: Your message of Fri, 30 Jan 1998 12:00:43 PST.
- Date: Fri, 30 Jan 1998 12:42:32 PST
- From: Vern Paxson <vern>
-
- > lex.yy.c:1996: parse error before `='
-
- This is the key, identifying this error. (It may help to pinpoint
- it by using flex -L, so it doesn't generate #line directives in its
- output.) I will bet you heavy money that you have a start condition
- name that is also a variable name, or something like that; flex spits
- out #define's for each start condition name, mapping them to a number,
- so you can wind up with:
-
- %x foo
- %%
- ...
- %%
- void bar()
- {
- int foo = 3;
- }
-
- and the penultimate will turn into "int 1 = 3" after C preprocessing,
- since flex will put "#define foo 1" in the generated scanner.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-73, Next: unnamed-faq-74, Prev: unnamed-faq-72, Up: FAQ
-
-unnamed-faq-73
-==============
-
-
- To: Maurice Petrie <mpetrie@infoscigroup.com>
- Subject: Re: Lost flex .l file
- In-reply-to: Your message of Mon, 02 Feb 1998 14:10:01 PST.
- Date: Mon, 02 Feb 1998 11:15:12 PST
- From: Vern Paxson <vern>
-
- > I am curious as to
- > whether there is a simple way to backtrack from the generated source to
- > reproduce the lost list of tokens we are searching on.
-
- In theory, it's straight-forward to go from the DFA representation
- back to a regular-expression representation - the two are isomorphic.
- In practice, a huge headache, because you have to unpack all the tables
- back into a single DFA representation, and then write a program to munch
- on that and translate it into an RE.
-
- Sorry for the less-than-happy news ...
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-74, Next: unnamed-faq-75, Prev: unnamed-faq-73, Up: FAQ
-
-unnamed-faq-74
-==============
-
-
- To: jimmey@lexis-nexis.com (Jimmey Todd)
- Subject: Re: Flex performance question
- In-reply-to: Your message of Thu, 19 Feb 1998 11:01:17 PST.
- Date: Thu, 19 Feb 1998 08:48:51 PST
- From: Vern Paxson <vern>
-
- > What I have found, is that the smaller the data chunk, the faster the
- > program executes. This is the opposite of what I expected. Should this be
- > happening this way?
-
- This is exactly what will happen if your input file has embedded NULs.
- From the man page:
-
- A final note: flex is slow when matching NUL's, particularly
- when a token contains multiple NUL's. It's best to write
- rules which match short amounts of text if it's anticipated
- that the text will often include NUL's.
-
- So that's the first thing to look for.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-75, Next: unnamed-faq-76, Prev: unnamed-faq-74, Up: FAQ
-
-unnamed-faq-75
-==============
-
-
- To: jimmey@lexis-nexis.com (Jimmey Todd)
- Subject: Re: Flex performance question
- In-reply-to: Your message of Thu, 19 Feb 1998 11:01:17 PST.
- Date: Thu, 19 Feb 1998 15:42:25 PST
- From: Vern Paxson <vern>
-
- So there are several problems.
-
- First, to go fast, you want to match as much text as possible, which
- your scanners don't in the case that what they're scanning is *not*
- a <RN> tag. So you want a rule like:
-
- [^<]+
-
- Second, C++ scanners are particularly slow if they're interactive,
- which they are by default. Using -B speeds it up by a factor of 3-4
- on my workstation.
-
- Third, C++ scanners that use the istream interface are slow, because
- of how poorly implemented istream's are. I built two versions of
- the following scanner:
-
- %%
- .*\n
- .*
- %%
-
- and the C version inhales a 2.5MB file on my workstation in 0.8 seconds.
- The C++ istream version, using -B, takes 3.8 seconds.
-
- Vern
-
diff --git a/doc/flex.info-6 b/doc/flex.info-6
deleted file mode 100644
index 04f95d8..0000000
--- a/doc/flex.info-6
+++ /dev/null
@@ -1,1134 +0,0 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* flex: (flex). Fast lexical analyzer generator (lex replacement).
-END-INFO-DIR-ENTRY
-
-
- The flex manual is placed under the same licensing conditions as the
-rest of flex:
-
- Copyright (C) 1990, 1997 The Regents of the University of California.
-All rights reserved.
-
- 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.
-
-File: flex.info, Node: unnamed-faq-76, Next: unnamed-faq-77, Prev: unnamed-faq-75, Up: FAQ
-
-unnamed-faq-76
-==============
-
-
- To: "Frescatore, David (CRD, TAD)" <frescatore@exc01crdge.crd.ge.com>
- Subject: Re: FLEX 2.5 & THE YEAR 2000
- In-reply-to: Your message of Wed, 03 Jun 1998 11:26:22 PDT.
- Date: Wed, 03 Jun 1998 10:22:26 PDT
- From: Vern Paxson <vern>
-
- > I am researching the Y2K problem with General Electric R&D
- > and need to know if there are any known issues concerning
- > the above mentioned software and Y2K regardless of version.
-
- There shouldn't be, all it ever does with the date is ask the system
- for it and then print it out.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-77, Next: unnamed-faq-78, Prev: unnamed-faq-76, Up: FAQ
-
-unnamed-faq-77
-==============
-
-
- To: "Hans Dermot Doran" <htd@ibhdoran.com>
- Subject: Re: flex problem
- In-reply-to: Your message of Wed, 15 Jul 1998 21:30:13 PDT.
- Date: Tue, 21 Jul 1998 14:23:34 PDT
- From: Vern Paxson <vern>
-
- > To overcome this, I gets() the stdin into a string and lex the string. The
- > string is lexed OK except that the end of string isn't lexed properly
- > (yy_scan_string()), that is the lexer dosn't recognise the end of string.
-
- Flex doesn't contain mechanisms for recognizing buffer endpoints. But if
- you use fgets instead (which you should anyway, to protect against buffer
- overflows), then the final \n will be preserved in the string, and you can
- scan that in order to find the end of the string.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-78, Next: unnamed-faq-79, Prev: unnamed-faq-77, Up: FAQ
-
-unnamed-faq-78
-==============
-
-
- To: soumen@almaden.ibm.com
- Subject: Re: Flex++ 2.5.3 instance member vs. static member
- In-reply-to: Your message of Mon, 27 Jul 1998 02:10:04 PDT.
- Date: Tue, 28 Jul 1998 01:10:34 PDT
- From: Vern Paxson <vern>
-
- > %{
- > int mylineno = 0;
- > %}
- > ws [ \t]+
- > alpha [A-Za-z]
- > dig [0-9]
- > %%
- >
- > Now you'd expect mylineno to be a member of each instance of class
- > yyFlexLexer, but is this the case? A look at the lex.yy.cc file seems to
- > indicate otherwise; unless I am missing something the declaration of
- > mylineno seems to be outside any class scope.
- >
- > How will this work if I want to run a multi-threaded application with each
- > thread creating a FlexLexer instance?
-
- Derive your own subclass and make mylineno a member variable of it.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-79, Next: unnamed-faq-80, Prev: unnamed-faq-78, Up: FAQ
-
-unnamed-faq-79
-==============
-
-
- To: Adoram Rogel <adoram@hybridge.com>
- Subject: Re: More than 32K states change hangs
- In-reply-to: Your message of Tue, 04 Aug 1998 16:55:39 PDT.
- Date: Tue, 04 Aug 1998 22:28:45 PDT
- From: Vern Paxson <vern>
-
- > Vern Paxson,
- >
- > I followed your advice, posted on Usenet bu you, and emailed to me
- > personally by you, on how to overcome the 32K states limit. I'm running
- > on Linux machines.
- > I took the full source of version 2.5.4 and did the following changes in
- > flexdef.h:
- > #define JAMSTATE -327660
- > #define MAXIMUM_MNS 319990
- > #define BAD_SUBSCRIPT -327670
- > #define MAX_SHORT 327000
- >
- > and compiled.
- > All looked fine, including check and bigcheck, so I installed.
-
- Hmmm, you shouldn't increase MAX_SHORT, though looking through my email
- archives I see that I did indeed recommend doing so. Try setting it back
- to 32700; that should suffice that you no longer need -Ca. If it still
- hangs, then the interesting question is - where?
-
- > Compiling the same hanged program with a out-of-the-box (RedHat 4.2
- > distribution of Linux)
- > flex 2.5.4 binary works.
-
- Since Linux comes with source code, you should diff it against what
- you have to see what problems they missed.
-
- > Should I always compile with the -Ca option now ? even short and simple
- > filters ?
-
- No, definitely not. It's meant to be for those situations where you
- absolutely must squeeze every last cycle out of your scanner.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-80, Next: unnamed-faq-81, Prev: unnamed-faq-79, Up: FAQ
-
-unnamed-faq-80
-==============
-
-
- To: "Schmackpfeffer, Craig" <Craig.Schmackpfeffer@usa.xerox.com>
- Subject: Re: flex output for static code portion
- In-reply-to: Your message of Tue, 11 Aug 1998 11:55:30 PDT.
- Date: Mon, 17 Aug 1998 23:57:42 PDT
- From: Vern Paxson <vern>
-
- > I would like to use flex under the hood to generate a binary file
- > containing the data structures that control the parse.
-
- This has been on the wish-list for a long time. In principle it's
- straight-forward - you redirect mkdata() et al's I/O to another file,
- and modify the skeleton to have a start-up function that slurps these
- into dynamic arrays. The concerns are (1) the scanner generation code
- is hairy and full of corner cases, so it's easy to get surprised when
- going down this path :-( ; and (2) being careful about buffering so
- that when the tables change you make sure the scanner starts in the
- correct state and reading at the right point in the input file.
-
- > I was wondering if you know of anyone who has used flex in this way.
-
- I don't - but it seems like a reasonable project to undertake (unlike
- numerous other flex tweaks :-).
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-81, Next: unnamed-faq-82, Prev: unnamed-faq-80, Up: FAQ
-
-unnamed-faq-81
-==============
-
-
- Received: from 131.173.17.11 (131.173.17.11 [131.173.17.11])
- by ee.lbl.gov (8.9.1/8.9.1) with ESMTP id AAA03838
- for <vern@ee.lbl.gov>; Thu, 20 Aug 1998 00:47:57 -0700 (PDT)
- Received: from hal.cl-ki.uni-osnabrueck.de (hal.cl-ki.Uni-Osnabrueck.DE [131.173.141.2])
- by deimos.rz.uni-osnabrueck.de (8.8.7/8.8.8) with ESMTP id JAA34694
- for <vern@ee.lbl.gov>; Thu, 20 Aug 1998 09:47:55 +0200
- Received: (from georg@localhost) by hal.cl-ki.uni-osnabrueck.de (8.6.12/8.6.12) id JAA34834 for vern@ee.lbl.gov; Thu, 20 Aug 1998 09:47:54 +0200
- From: Georg Rehm <georg@hal.cl-ki.uni-osnabrueck.de>
- Message-Id: <199808200747.JAA34834@hal.cl-ki.uni-osnabrueck.de>
- Subject: "flex scanner push-back overflow"
- To: vern@ee.lbl.gov
- Date: Thu, 20 Aug 1998 09:47:54 +0200 (MEST)
- Reply-To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
- X-NoJunk: Do NOT send commercial mail, spam or ads to this address!
- X-URL: http://www.cl-ki.uni-osnabrueck.de/~georg/
- X-Mailer: ELM [version 2.4ME+ PL28 (25)]
- MIME-Version: 1.0
- Content-Type: text/plain; charset=US-ASCII
- Content-Transfer-Encoding: 7bit
-
- Hi Vern,
-
- Yesterday, I encountered a strange problem: I use the macro processor m4
- to include some lengthy lists into a .l file. Following is a flex macro
- definition that causes some serious pain in my neck:
-
- AUTHOR ("A. Boucard / L. Boucard"|"A. Dastarac / M. Levent"|"A.Boucaud / L.Boucaud"|"Abderrahim Lamchichi"|"Achmat Dangor"|"Adeline Toullier"|"Adewale Maja-Pearce"|"Ahmed Ziri"|"Akram Ellyas"|"Alain Bihr"|"Alain Gresh"|"Alain Guillemoles"|"Alain Joxe"|"Alain Morice"|"Alain Renon"|"Alain Zecchini"|"Albert Memmi"|"Alberto Manguel"|"Alex De Waal"|"Alfonso Artico"| [...])
-
- The complete list contains about 10kB. When I try to "flex" this file
- (on a Solaris 2.6 machine, using a modified flex 2.5.4 (I only increased
- some of the predefined values in flexdefs.h) I get the error:
-
- myflex/flex -8 sentag.tmp.l
- flex scanner push-back overflow
-
- When I remove the slashes in the macro definition everything works fine.
- As I understand it, the double quotes escape the slash-character so it
- really means "/" and not "trailing context". Furthermore, I tried to
- escape the slashes with backslashes, but with no use, the same error message
- appeared when flexing the code.
-
- Do you have an idea what's going on here?
-
- Greetings from Germany,
- Georg
- --
- Georg Rehm georg@cl-ki.uni-osnabrueck.de
- Institute for Semantic Information Processing, University of Osnabrueck, FRG
-
-
-File: flex.info, Node: unnamed-faq-82, Next: unnamed-faq-83, Prev: unnamed-faq-81, Up: FAQ
-
-unnamed-faq-82
-==============
-
-
- To: Georg.Rehm@CL-KI.Uni-Osnabrueck.DE
- Subject: Re: "flex scanner push-back overflow"
- In-reply-to: Your message of Thu, 20 Aug 1998 09:47:54 PDT.
- Date: Thu, 20 Aug 1998 07:05:35 PDT
- From: Vern Paxson <vern>
-
- > myflex/flex -8 sentag.tmp.l
- > flex scanner push-back overflow
-
- Flex itself uses a flex scanner. That scanner is running out of buffer
- space when it tries to unput() the humongous macro you've defined. When
- you remove the '/'s, you make it small enough so that it fits in the buffer;
- removing spaces would do the same thing.
-
- The fix is to either rethink how come you're using such a big macro and
- perhaps there's another/better way to do it; or to rebuild flex's own
- scan.c with a larger value for
-
- #define YY_BUF_SIZE 16384
-
- - Vern
-
-
-File: flex.info, Node: unnamed-faq-83, Next: unnamed-faq-84, Prev: unnamed-faq-82, Up: FAQ
-
-unnamed-faq-83
-==============
-
-
- To: Jan Kort <jan@research.techforce.nl>
- Subject: Re: Flex
- In-reply-to: Your message of Fri, 04 Sep 1998 12:18:43 +0200.
- Date: Sat, 05 Sep 1998 00:59:49 PDT
- From: Vern Paxson <vern>
-
- > %%
- >
- > "TEST1\n" { fprintf(stderr, "TEST1\n"); yyless(5); }
- > ^\n { fprintf(stderr, "empty line\n"); }
- > . { }
- > \n { fprintf(stderr, "new line\n"); }
- >
- > %%
- > -- input ---------------------------------------
- > TEST1
- > -- output --------------------------------------
- > TEST1
- > empty line
- > ------------------------------------------------
-
- IMHO, it's not clear whether or not this is in fact a bug. It depends
- on whether you view yyless() as backing up in the input stream, or as
- pushing new characters onto the beginning of the input stream. Flex
- interprets it as the latter (for implementation convenience, I'll admit),
- and so considers the newline as in fact matching at the beginning of a
- line, as after all the last token scanned an entire line and so the
- scanner is now at the beginning of a new line.
-
- I agree that this is counter-intuitive for yyless(), given its
- functional description (it's less so for unput(), depending on whether
- you're unput()'ing new text or scanned text). But I don't plan to
- change it any time soon, as it's a pain to do so. Consequently,
- you do indeed need to use yy_set_bol() and YY_AT_BOL() to tweak
- your scanner into the behavior you desire.
-
- Sorry for the less-than-completely-satisfactory answer.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-84, Next: unnamed-faq-85, Prev: unnamed-faq-83, Up: FAQ
-
-unnamed-faq-84
-==============
-
-
- To: Patrick Krusenotto <krusenot@mac-info-link.de>
- Subject: Re: Problems with restarting flex-2.5.2-generated scanner
- In-reply-to: Your message of Thu, 24 Sep 1998 10:14:07 PDT.
- Date: Thu, 24 Sep 1998 23:28:43 PDT
- From: Vern Paxson <vern>
-
- > I am using flex-2.5.2 and bison 1.25 for Solaris and I am desperately
- > trying to make my scanner restart with a new file after my parser stops
- > with a parse error. When my compiler restarts, the parser always
- > receives the token after the token (in the old file!) that caused the
- > parser error.
-
- I suspect the problem is that your parser has read ahead in order
- to attempt to resolve an ambiguity, and when it's restarted it picks
- up with that token rather than reading a fresh one. If you're using
- yacc, then the special "error" production can sometimes be used to
- consume tokens in an attempt to get the parser into a consistent state.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-85, Next: unnamed-faq-86, Prev: unnamed-faq-84, Up: FAQ
-
-unnamed-faq-85
-==============
-
-
- To: Henric Jungheim <junghelh@pe-nelson.com>
- Subject: Re: flex 2.5.4a
- In-reply-to: Your message of Tue, 27 Oct 1998 16:41:42 PST.
- Date: Tue, 27 Oct 1998 16:50:14 PST
- From: Vern Paxson <vern>
-
- > This brings up a feature request: How about a command line
- > option to specify the filename when reading from stdin? That way one
- > doesn't need to create a temporary file in order to get the "#line"
- > directives to make sense.
-
- Use -o combined with -t (per the man page description of -o).
-
- > P.S., Is there any simple way to use non-blocking IO to parse multiple
- > streams?
-
- Simple, no.
-
- One approach might be to return a magic character on EWOULDBLOCK and
- have a rule
-
- .*<magic-character> // put back .*, eat magic character
-
- This is off the top of my head, not sure it'll work.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-86, Next: unnamed-faq-87, Prev: unnamed-faq-85, Up: FAQ
-
-unnamed-faq-86
-==============
-
-
- To: "Repko, Billy D" <billy.d.repko@intel.com>
- Subject: Re: Compiling scanners
- In-reply-to: Your message of Wed, 13 Jan 1999 10:52:47 PST.
- Date: Thu, 14 Jan 1999 00:25:30 PST
- From: Vern Paxson <vern>
-
- > It appears that maybe it cannot find the lfl library.
-
- The Makefile in the distribution builds it, so you should have it.
- It's exceedingly trivial, just a main() that calls yylex() and
- a yyrap() that always returns 1.
-
- > %%
- > \n ++num_lines; ++num_chars;
- > . ++num_chars;
-
- You can't indent your rules like this - that's where the errors are coming
- from. Flex copies indented text to the output file, it's how you do things
- like
-
- int num_lines_seen = 0;
-
- to declare local variables.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-87, Next: unnamed-faq-88, Prev: unnamed-faq-86, Up: FAQ
-
-unnamed-faq-87
-==============
-
-
- To: Erick Branderhorst <Erick.Branderhorst@asml.nl>
- Subject: Re: flex input buffer
- In-reply-to: Your message of Tue, 09 Feb 1999 13:53:46 PST.
- Date: Tue, 09 Feb 1999 21:03:37 PST
- From: Vern Paxson <vern>
-
- > In the flex.skl file the size of the default input buffers is set. Can you
- > explain why this size is set and why it is such a high number.
-
- It's large to optimize performance when scanning large files. You can
- safely make it a lot lower if needed.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-88, Next: unnamed-faq-90, Prev: unnamed-faq-87, Up: FAQ
-
-unnamed-faq-88
-==============
-
-
- To: "Guido Minnen" <guidomi@cogs.susx.ac.uk>
- Subject: Re: Flex error message
- In-reply-to: Your message of Wed, 24 Feb 1999 15:31:46 PST.
- Date: Thu, 25 Feb 1999 00:11:31 PST
- From: Vern Paxson <vern>
-
- > I'm extending a larger scanner written in Flex and I keep running into
- > problems. More specifically, I get the error message:
- > "flex: input rules are too complicated (>= 32000 NFA states)"
-
- Increase the definitions in flexdef.h for:
-
- #define JAMSTATE -32766 /* marks a reference to the state that always j
- ams */
- #define MAXIMUM_MNS 31999
- #define BAD_SUBSCRIPT -32767
-
- recompile everything, and it should all work.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-90, Next: unnamed-faq-91, Prev: unnamed-faq-88, Up: FAQ
-
-unnamed-faq-90
-==============
-
-
- To: "Dmitriy Goldobin" <gold@ems.chel.su>
- Subject: Re: FLEX trouble
- In-reply-to: Your message of Mon, 31 May 1999 18:44:49 PDT.
- Date: Tue, 01 Jun 1999 00:15:07 PDT
- From: Vern Paxson <vern>
-
- > I have a trouble with FLEX. Why rule "/*".*"*/" work properly,=20
- > but rule "/*"(.|\n)*"*/" don't work ?
-
- The second of these will have to scan the entire input stream (because
- "(.|\n)*" matches an arbitrary amount of any text) in order to see if
- it ends with "*/", terminating the comment. That potentially will overflow
- the input buffer.
-
- > More complex rule "/*"([^*]|(\*/[^/]))*"*/ give an error
- > 'unrecognized rule'.
-
- You can't use the '/' operator inside parentheses. It's not clear
- what "(a/b)*" actually means.
-
- > I now use workaround with state <comment>, but single-rule is
- > better, i think.
-
- Single-rule is nice but will always have the problem of either setting
- restrictions on comments (like not allowing multi-line comments) and/or
- running the risk of consuming the entire input stream, as noted above.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-91, Next: unnamed-faq-92, Prev: unnamed-faq-90, Up: FAQ
-
-unnamed-faq-91
-==============
-
-
- Received: from mc-qout4.whowhere.com (mc-qout4.whowhere.com [209.185.123.18])
- by ee.lbl.gov (8.9.3/8.9.3) with SMTP id IAA05100
- for <vern@ee.lbl.gov>; Tue, 15 Jun 1999 08:56:06 -0700 (PDT)
- Received: from Unknown/Local ([?.?.?.?]) by my-deja.com; Tue Jun 15 08:55:43 1999
- To: vern@ee.lbl.gov
- Date: Tue, 15 Jun 1999 08:55:43 -0700
- From: "Aki Niimura" <neko@my-deja.com>
- Message-ID: <KNONDOHDOBGAEAAA@my-deja.com>
- Mime-Version: 1.0
- Cc:
- X-Sent-Mail: on
- Reply-To:
- X-Mailer: MailCity Service
- Subject: A question on flex C++ scanner
- X-Sender-Ip: 12.72.207.61
- Organization: My Deja Email (http://www.my-deja.com:80)
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
-
- Dear Dr. Paxon,
-
- I have been using flex for years.
- It works very well on many projects.
- Most case, I used it to generate a scanner on C language.
- However, one project I needed to generate a scanner
- on C++ lanuage. Thanks to your enhancement, flex did
- the job.
-
- Currently, I'm working on enhancing my previous project.
- I need to deal with multiple input streams (recursive
- inclusion) in this scanner (C++).
- I did similar thing for another scanner (C) as you
- explained in your documentation.
-
- The generated scanner (C++) has necessary methods:
- - switch_to_buffer(struct yy_buffer_state *b)
- - yy_create_buffer(istream *is, int sz)
- - yy_delete_buffer(struct yy_buffer_state *b)
-
- However, I couldn't figure out how to access current
- buffer (yy_current_buffer).
-
- yy_current_buffer is a protected member of yyFlexLexer.
- I can't access it directly.
- Then, I thought yy_create_buffer() with is = 0 might
- return current stream buffer. But it seems not as far
- as I checked the source. (flex 2.5.4)
-
- I went through the Web in addition to Flex documentation.
- However, it hasn't been successful, so far.
-
- It is not my intention to bother you, but, can you
- comment about how to obtain the current stream buffer?
-
- Your response would be highly appreciated.
-
- Best regards,
- Aki Niimura
-
- --== Sent via Deja.com http://www.deja.com/ ==--
- Share what you know. Learn what you don't.
-
-
-File: flex.info, Node: unnamed-faq-92, Next: unnamed-faq-93, Prev: unnamed-faq-91, Up: FAQ
-
-unnamed-faq-92
-==============
-
-
- To: neko@my-deja.com
- Subject: Re: A question on flex C++ scanner
- In-reply-to: Your message of Tue, 15 Jun 1999 08:55:43 PDT.
- Date: Tue, 15 Jun 1999 09:04:24 PDT
- From: Vern Paxson <vern>
-
- > However, I couldn't figure out how to access current
- > buffer (yy_current_buffer).
-
- Derive your own subclass from yyFlexLexer.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-93, Next: unnamed-faq-94, Prev: unnamed-faq-92, Up: FAQ
-
-unnamed-faq-93
-==============
-
-
- To: "Stones, Darren" <Darren.Stones@nectech.co.uk>
- Subject: Re: You're the man to see?
- In-reply-to: Your message of Wed, 23 Jun 1999 11:10:29 PDT.
- Date: Wed, 23 Jun 1999 09:01:40 PDT
- From: Vern Paxson <vern>
-
- > I hope you can help me. I am using Flex and Bison to produce an interpreted
- > language. However all goes well until I try to implement an IF statement or
- > a WHILE. I cannot get this to work as the parser parses all the conditions
- > eg. the TRUE and FALSE conditons to check for a rule match. So I cannot
- > make a decision!!
-
- You need to use the parser to build a parse tree (= abstract syntax trwee),
- and when that's all done you recursively evaluate the tree, binding variables
- to values at that time.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-94, Next: unnamed-faq-95, Prev: unnamed-faq-93, Up: FAQ
-
-unnamed-faq-94
-==============
-
-
- To: Petr Danecek <petr@ics.cas.cz>
- Subject: Re: flex - question
- In-reply-to: Your message of Mon, 28 Jun 1999 19:21:41 PDT.
- Date: Fri, 02 Jul 1999 16:52:13 PDT
- From: Vern Paxson <vern>
-
- > file, it takes an enormous amount of time. It is funny, because the
- > source code has only 12 rules!!! I think it looks like an exponencial
- > growth.
-
- Right, that's the problem - some patterns (those with a lot of
- ambiguity, where yours has because at any given time the scanner can
- be in the middle of all sorts of combinations of the different
- rules) blow up exponentially.
-
- For your rules, there is an easy fix. Change the ".*" that comes fater
- the directory name to "[^ ]*". With that in place, the rules are no
- longer nearly so ambiguous, because then once one of the directories
- has been matched, no other can be matched (since they all require a
- leading blank).
-
- If that's not an acceptable solution, then you can enter a start state
- to pick up the .*\n after each directory is matched.
-
- Also note that for speed, you'll want to add a ".*" rule at the end,
- otherwise rules that don't match any of the patterns will be matched
- very slowly, a character at a time.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-95, Next: unnamed-faq-96, Prev: unnamed-faq-94, Up: FAQ
-
-unnamed-faq-95
-==============
-
-
- To: Tielman Koekemoer <tielman@spi.co.za>
- Subject: Re: Please help.
- In-reply-to: Your message of Thu, 08 Jul 1999 13:20:37 PDT.
- Date: Thu, 08 Jul 1999 08:20:39 PDT
- From: Vern Paxson <vern>
-
- > I was hoping you could help me with my problem.
- >
- > I tried compiling (gnu)flex on a Solaris 2.4 machine
- > but when I ran make (after configure) I got an error.
- >
- > --------------------------------------------------------------
- > gcc -c -I. -I. -g -O parse.c
- > ./flex -t -p ./scan.l >scan.c
- > sh: ./flex: not found
- > *** Error code 1
- > make: Fatal error: Command failed for target `scan.c'
- > -------------------------------------------------------------
- >
- > What's strange to me is that I'm only
- > trying to install flex now. I then edited the Makefile to
- > and changed where it says "FLEX = flex" to "FLEX = lex"
- > ( lex: the native Solaris one ) but then it complains about
- > the "-p" option. Is there any way I can compile flex without
- > using flex or lex?
- >
- > Thanks so much for your time.
-
- You managed to step on the bootstrap sequence, which first copies
- initscan.c to scan.c in order to build flex. Try fetching a fresh
- distribution from ftp.ee.lbl.gov. (Or you can first try removing
- ".bootstrap" and doing a make again.)
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-96, Next: unnamed-faq-97, Prev: unnamed-faq-95, Up: FAQ
-
-unnamed-faq-96
-==============
-
-
- To: Tielman Koekemoer <tielman@spi.co.za>
- Subject: Re: Please help.
- In-reply-to: Your message of Fri, 09 Jul 1999 09:16:14 PDT.
- Date: Fri, 09 Jul 1999 00:27:20 PDT
- From: Vern Paxson <vern>
-
- > First I removed .bootstrap (and ran make) - no luck. I downloaded the
- > software but I still have the same problem. Is there anything else I
- > could try.
-
- Try:
-
- cp initscan.c scan.c
- touch scan.c
- make scan.o
-
- If this last tries to first build scan.c from scan.l using ./flex, then
- your "make" is broken, in which case compile scan.c to scan.o by hand.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-97, Next: unnamed-faq-98, Prev: unnamed-faq-96, Up: FAQ
-
-unnamed-faq-97
-==============
-
-
- To: Sumanth Kamenani <skamenan@crl.nmsu.edu>
- Subject: Re: Error
- In-reply-to: Your message of Mon, 19 Jul 1999 23:08:41 PDT.
- Date: Tue, 20 Jul 1999 00:18:26 PDT
- From: Vern Paxson <vern>
-
- > I am getting a compilation error. The error is given as "unknown symbol- yylex".
-
- The parser relies on calling yylex(), but you're instead using the C++ scanning
- class, so you need to supply a yylex() "glue" function that calls an instance
- scanner of the scanner (e.g., "scanner->yylex()").
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-98, Next: unnamed-faq-99, Prev: unnamed-faq-97, Up: FAQ
-
-unnamed-faq-98
-==============
-
-
- To: daniel@synchrods.synchrods.COM (Daniel Senderowicz)
- Subject: Re: lex
- In-reply-to: Your message of Mon, 22 Nov 1999 11:19:04 PST.
- Date: Tue, 23 Nov 1999 15:54:30 PST
- From: Vern Paxson <vern>
-
- Well, your problem is the
-
- switch (yybgin-yysvec-1) { /* witchcraft */
-
- at the beginning of lex rules. "witchcraft" == "non-portable". It's
- assuming knowledge of the AT&T lex's internal variables.
-
- For flex, you can probably do the equivalent using a switch on YYSTATE.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-99, Next: unnamed-faq-100, Prev: unnamed-faq-98, Up: FAQ
-
-unnamed-faq-99
-==============
-
-
- To: archow@hss.hns.com
- Subject: Re: Regarding distribution of flex and yacc based grammars
- In-reply-to: Your message of Sun, 19 Dec 1999 17:50:24 +0530.
- Date: Wed, 22 Dec 1999 01:56:24 PST
- From: Vern Paxson <vern>
-
- > When we provide the customer with an object code distribution, is it
- > necessary for us to provide source
- > for the generated C files from flex and bison since they are generated by
- > flex and bison ?
-
- For flex, no. I don't know what the current state of this is for bison.
-
- > Also, is there any requrirement for us to neccessarily provide source for
- > the grammar files which are fed into flex and bison ?
-
- Again, for flex, no.
-
- See the file "COPYING" in the flex distribution for the legalese.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-100, Next: unnamed-faq-101, Prev: unnamed-faq-99, Up: FAQ
-
-unnamed-faq-100
-===============
-
-
- To: Martin Gallwey <gallweym@hyperion.moe.ul.ie>
- Subject: Re: Flex, and self referencing rules
- In-reply-to: Your message of Sun, 20 Feb 2000 01:01:21 PST.
- Date: Sat, 19 Feb 2000 18:33:16 PST
- From: Vern Paxson <vern>
-
- > However, I do not use unput anywhere. I do use self-referencing
- > rules like this:
- >
- > UnaryExpr ({UnionExpr})|("-"{UnaryExpr})
-
- You can't do this - flex is *not* a parser like yacc (which does indeed
- allow recursion), it is a scanner that's confined to regular expressions.
-
- Vern
-
-
-File: flex.info, Node: unnamed-faq-101, Next: What is the difference between YYLEX_PARAM and YY_DECL?, Prev: unnamed-faq-100, Up: FAQ
-
-unnamed-faq-101
-===============
-
-
- To: slg3@lehigh.edu (SAMUEL L. GULDEN)
- Subject: Re: Flex problem
- In-reply-to: Your message of Thu, 02 Mar 2000 12:29:04 PST.
- Date: Thu, 02 Mar 2000 23:00:46 PST
- From: Vern Paxson <vern>
-
- If this is exactly your program:
-
- > digit [0-9]
- > digits {digit}+
- > whitespace [ \t\n]+
- >
- > %%
- > "[" { printf("open_brac\n");}
- > "]" { printf("close_brac\n");}
- > "+" { printf("addop\n");}
- > "*" { printf("multop\n");}
- > {digits} { printf("NUMBER = %s\n", yytext);}
- > whitespace ;
-
- then the problem is that the last rule needs to be "{whitespace}" !
-
- Vern
-
-
-File: flex.info, Node: What is the difference between YYLEX_PARAM and YY_DECL?, Next: Why do I get "conflicting types for yylex" error?, Prev: unnamed-faq-101, Up: FAQ
-
-What is the difference between YYLEX_PARAM and YY_DECL?
-=======================================================
-
- YYLEX_PARAM is not a flex symbol. It is for Bison. It tells Bison to
-pass extra params when it calls yylex() from the parser.
-
- YY_DECL is the Flex declaration of yylex. The default is similar to
-this:
-
-
- #define int yy_lex ()
-
-
-File: flex.info, Node: Why do I get "conflicting types for yylex" error?, Next: How do I access the values set in a Flex action from within a Bison action?, Prev: What is the difference between YYLEX_PARAM and YY_DECL?, Up: FAQ
-
-Why do I get "conflicting types for yylex" error?
-=================================================
-
- This is a compiler error regarding a generated Bison parser, not a
-Flex scanner. It means you need a prototype of yylex() in the top of
-the Bison file. Be sure the prototype matches YY_DECL.
-
-
-File: flex.info, Node: How do I access the values set in a Flex action from within a Bison action?, Prev: Why do I get "conflicting types for yylex" error?, Up: FAQ
-
-How do I access the values set in a Flex action from within a Bison action?
-===========================================================================
-
- With $1, $2, $3, etc. These are called "Semantic Values" in the
-Bison manual. See *Note Top: (bison)Top.
-
-
-File: flex.info, Node: Appendices, Next: Indices, Prev: FAQ, Up: Top
-
-Appendices
-**********
-
-* Menu:
-
-* Makefiles and Flex::
-* Bison Bridge::
-* M4 Dependency::
-
-
-File: flex.info, Node: Makefiles and Flex, Next: Bison Bridge, Prev: Appendices, Up: Appendices
-
-Makefiles and Flex
-==================
-
- In this appendix, we provide tips for writing Makefiles to build
-your scanners.
-
- In a traditional build environment, we say that the `.c' files are
-the sources, and the `.o' files are the intermediate files. When using
-`flex', however, the `.l' files are the sources, and the generated `.c'
-files (along with the `.o' files) are the intermediate files. This
-requires you to carefully plan your Makefile.
-
- Modern `make' programs understand that `foo.l' is intended to
-generate `lex.yy.c' or `foo.c', and will behave accordingly(1). The
-following Makefile does not explicitly instruct `make' how to build
-`foo.c' from `foo.l'. Instead, it relies on the implicit rules of the
-`make' program to build the intermediate file, `scan.c':
-
-
- # Basic Makefile -- relies on implicit rules
- # Creates "myprogram" from "scan.l" and "myprogram.c"
- #
- LEX=flex
- myprogram: scan.o myprogram.o
- scan.o: scan.l
-
- For simple cases, the above may be sufficient. For other cases, you
-may have to explicitly instruct `make' how to build your scanner. The
-following is an example of a Makefile containing explicit rules:
-
-
- # Basic Makefile -- provides explicit rules
- # Creates "myprogram" from "scan.l" and "myprogram.c"
- #
- LEX=flex
- myprogram: scan.o myprogram.o
- $(CC) -o $@ $(LDFLAGS) $^
-
- myprogram.o: myprogram.c
- $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $^
-
- scan.o: scan.c
- $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $^
-
- scan.c: scan.l
- $(LEX) $(LFLAGS) -o $@ $^
-
- clean:
- $(RM) *.o scan.c
-
- Notice in the above example that `scan.c' is in the `clean' target.
-This is because we consider the file `scan.c' to be an intermediate
-file.
-
- Finally, we provide a realistic example of a `flex' scanner used
-with a `bison' parser(2). There is a tricky problem we have to deal
-with. Since a `flex' scanner will typically include a header file
-(e.g., `y.tab.h') generated by the parser, we need to be sure that the
-header file is generated BEFORE the scanner is compiled. We handle this
-case in the following example:
-
-
- # Makefile example -- scanner and parser.
- # Creates "myprogram" from "scan.l", "parse.y", and "myprogram.c"
- #
- LEX = flex
- YACC = bison -y
- YFLAGS = -d
- objects = scan.o parse.o myprogram.o
-
- myprogram: $(objects)
- scan.o: scan.l parse.c
- parse.o: parse.y
- myprogram.o: myprogram.c
-
- In the above example, notice the line,
-
-
- scan.o: scan.l parse.c
-
- , which lists the file `parse.c' (the generated parser) as a
-dependency of `scan.o'. We want to ensure that the parser is created
-before the scanner is compiled, and the above line seems to do the
-trick. Feel free to experiment with your specific implementation of
-`make'.
-
- For more details on writing Makefiles, see *Note Top: (make)Top.
-
- ---------- Footnotes ----------
-
- (1) GNU `make' and GNU `automake' are two such programs that provide
-implicit rules for flex-generated scanners.
-
- (2) This example also applies to yacc parsers.
-
-
-File: flex.info, Node: Bison Bridge, Next: M4 Dependency, Prev: Makefiles and Flex, Up: Appendices
-
-C Scanners with Bison Parsers
-=============================
-
- This section describes the `flex' features useful when integrating
-`flex' with `GNU bison'(1). Skip this section if you are not using
-`bison' with your scanner. Here we discuss only the `flex' half of the
-`flex' and `bison' pair. We do not discuss `bison' in any detail. For
-more information about generating `bison' parsers, see *Note Top:
-(bison)Top.
-
- A compatible `bison' scanner is generated by declaring `%option
-bison-bridge' or by supplying `--bison-bridge' when invoking `flex'
-from the command line. This instructs `flex' that the macro `yylval'
-may be used. The data type for `yylval', `YYSTYPE', is typically
-defined in a header file, included in section 1 of the `flex' input
-file. For a list of functions and macros available, *Note
-bison-functions::.
-
- The declaration of yylex becomes,
-
-
- int yylex ( YYSTYPE * lvalp, yyscan_t scanner );
-
- If `%option bison-locations' is specified, then the declaration
-becomes,
-
-
- int yylex ( YYSTYPE * lvalp, YYLTYPE * llocp, yyscan_t scanner );
-
- Note that the macros `yylval' and `yylloc' evaluate to pointers.
-Support for `yylloc' is optional in `bison', so it is optional in
-`flex' as well. The following is an example of a `flex' scanner that is
-compatible with `bison'.
-
-
- /* Scanner for "C" assignment statements... sort of. */
- %{
- #include "y.tab.h" /* Generated by bison. */
- %}
-
- %option bison-bridge bison-locations
- %
-
- [[:digit:]]+ { yylval->num = atoi(yytext); return NUMBER;}
- [[:alnum:]]+ { yylval->str = strdup(yytext); return STRING;}
- "="|";" { return yytext[0];}
- . {}
- %
-
- As you can see, there really is no magic here. We just use `yylval'
-as we would any other variable. The data type of `yylval' is generated
-by `bison', and included in the file `y.tab.h'. Here is the
-corresponding `bison' parser:
-
-
- /* Parser to convert "C" assignments to lisp. */
- %{
- /* Pass the argument to yyparse through to yylex. */
- #define YYPARSE_PARAM scanner
- #define YYLEX_PARAM scanner
- %}
- %locations
- %pure_parser
- %union {
- int num;
- char* str;
- }
- %token <str> STRING
- %token <num> NUMBER
- %%
- assignment:
- STRING '=' NUMBER ';' {
- printf( "(setf %s %d)", $1, $3 );
- }
- ;
-
- ---------- Footnotes ----------
-
- (1) The features described here are purely optional, and are by no
-means the only way to use flex with bison. We merely provide some glue
-to ease development of your parser-scanner pair.
-
-
-File: flex.info, Node: M4 Dependency, Prev: Bison Bridge, Up: Appendices
-
-M4 Dependency
-=============
-
- The macro processor `m4'(1) must be installed wherever flex is
-installed. `flex' invokes `m4', found by searching the directories in
-the `PATH' environment variable. Any code you place in section 1 or in
-the actions will be sent through m4. Please follow these rules to
-protect your code from unwanted `m4' processing.
-
- * Do not use symbols that begin with, `m4_', such as, `m4_define',
- or `m4_include', since those are reserved for `m4' macro names. If
- for some reason you need m4_ as a prefix, use a preprocessor
- #define to get your symbol past m4 unmangled.
-
- * Do not use the strings `[[' or `]]' anywhere in your code. The
- former is not valid in C, except within comments and strings, but
- the latter is valid in code such as `x[y[z]]'. The solution is
- simple. To get the literal string `"]]"', use `"]""]"'. To get the
- array notation `x[y[z]]', use `x[y[z] ]'.
-
-
- `m4' is only required at the time you run `flex'. The generated
-scanner is ordinary C or C++, and does _not_ require `m4'.
-
- ---------- Footnotes ----------
-
- (1) The use of m4 is subject to change in future revisions of flex.
-It is not part of the public API of flex. Do not depend on it.
-
-
-File: flex.info, Node: Indices, Prev: Appendices, Up: Top
-
-Indices
-*******
-
-* Menu:
-
-* Concept Index::
-* Index of Functions and Macros::
-* Index of Variables::
-* Index of Data Types::
-* Index of Hooks::
-* Index of Scanner Options::
-
diff --git a/doc/flex.info-7 b/doc/flex.info-7
deleted file mode 100644
index 8ccc35c..0000000
--- a/doc/flex.info-7
+++ /dev/null
@@ -1,601 +0,0 @@
-This is flex.info, produced by makeinfo version 4.5 from flex.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* flex: (flex). Fast lexical analyzer generator (lex replacement).
-END-INFO-DIR-ENTRY
-
-
- The flex manual is placed under the same licensing conditions as the
-rest of flex:
-
- Copyright (C) 1990, 1997 The Regents of the University of California.
-All rights reserved.
-
- 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.
-
-File: flex.info, Node: Concept Index, Next: Index of Functions and Macros, Prev: Indices, Up: Indices
-
-Concept Index
-=============
-
-* Menu:
-
-* $ as normal character in patterns: Patterns.
-* %array, advantages of: Matching.
-* %array, use of: Matching.
-* %array, with C++: Matching.
-* %option nowrap: Generated Scanner.
-* %pointer, and unput(): Actions.
-* %pointer, use of: Matching.
-* %top: Definitions Section.
-* %{ and %}, in Definitions Section: Definitions Section.
-* %{ and %}, in Rules Section: Actions.
-* <<EOF>>, use of: EOF.
-* [] in patterns: Patterns.
-* ^ as non-special character in patterns: Patterns.
-* accessor functions, use of: Accessor Methods.
-* actions: Actions.
-* actions, embedded C strings: Actions.
-* actions, redefining YY_BREAK: Misc Macros.
-* actions, use of { and }: Actions.
-* aliases, how to define: Definitions Section.
-* arguments, command-line: Scanner Options.
-* array, default size for yytext: User Values.
-* backing up, eliminating: Performance.
-* backing up, eliminating by adding error rules: Performance.
-* backing up, eliminating with catch-all rule: Performance.
-* backing up, example of eliminating: Performance.
-* BEGIN: Actions.
-* BEGIN, explanation: Start Conditions.
-* beginning of line, in patterns: Patterns.
-* bison, bridging with flex: Bison Bridge.
-* bison, parser: Bison Bridge.
-* bison, scanner to be called from bison: Bison Bridge.
-* BOL, checking the BOL flag: Misc Macros.
-* BOL, in patterns: Patterns.
-* BOL, setting it: Misc Macros.
-* braces in patterns: Patterns.
-* bugs, reporting: Reporting Bugs.
-* C code in flex input: Definitions Section.
-* C++: Cxx.
-* C++ and %array: User Values.
-* C++ I/O, customizing: How do I use my own I/O classes in a C++ scanner?.
-* C++ scanners, including multiple scanners: Cxx.
-* C++ scanners, use of: Cxx.
-* c++, experimental form of scanner class: Cxx.
-* C++, multiple different scanners: Cxx.
-* C-strings, in actions: Actions.
-* case-insensitive, effect on character classes: Patterns.
-* character classes in patterns: Patterns.
-* character classes in patterns, syntax of: Patterns.
-* character classes, equivalence of: Patterns.
-* clearing an input buffer: Multiple Input Buffers.
-* command-line options: Scanner Options.
-* comments in flex input: Definitions Section.
-* comments in the input: Comments in the Input.
-* comments, discarding: Actions.
-* comments, example of scanning C comments: Start Conditions.
-* comments, in actions: Actions.
-* comments, in rules section: Comments in the Input.
-* comments, syntax of: Comments in the Input.
-* comments, valid uses of: Comments in the Input.
-* compressing whitespace: Actions.
-* concatenation, in patterns: Patterns.
-* copyright of flex: Copyright.
-* counting characters and lines: Simple Examples.
-* customizing I/O in C++ scanners: How do I use my own I/O classes in a C++ scanner?.
-* default rule <1>: Matching.
-* default rule: Simple Examples.
-* defining pattern aliases: Definitions Section.
-* Definitions, in flex input: Definitions Section.
-* deleting lines from input: Actions.
-* discarding C comments: Actions.
-* distributing flex: Copyright.
-* ECHO: Actions.
-* ECHO, and yyout: Generated Scanner.
-* embedding C code in flex input: Definitions Section.
-* end of file, in patterns: Patterns.
-* end of line, in negated character classes: Patterns.
-* end of line, in patterns: Patterns.
-* end-of-file, and yyrestart(): Generated Scanner.
-* EOF and yyrestart(): Generated Scanner.
-* EOF in patterns, syntax of: Patterns.
-* EOF, example using multiple input buffers: Multiple Input Buffers.
-* EOF, explanation: EOF.
-* EOF, pushing back: Actions.
-* EOL, in negated character classes: Patterns.
-* EOL, in patterns: Patterns.
-* error messages, end of buffer missed: Lex and Posix.
-* error reporting, diagnostic messages: Diagnostics.
-* error reporting, in C++: Cxx.
-* error rules, to eliminate backing up: Performance.
-* escape sequences in patterns, syntax of: Patterns.
-* exiting with yyterminate(): Actions.
-* experimental form of c++ scanner class: Cxx.
-* extended scope of start conditions: Start Conditions.
-* file format: Format.
-* file format, serialized tables: Tables File Format.
-* flushing an input buffer: Multiple Input Buffers.
-* flushing the internal buffer: Actions.
-* format of flex input: Format.
-* format of input file: Format.
-* freeing tables: Loading and Unloading Serialized Tables.
-* getting current start state with YY_START: Start Conditions.
-* halting with yyterminate(): Actions.
-* handling include files with multiple input buffers: Multiple Input Buffers.
-* header files, with C++: Cxx.
-* include files, with C++: Cxx.
-* input file, Definitions section: Definitions Section.
-* input file, Rules Section: Rules Section.
-* input file, user code Section: User Code Section.
-* input(): Actions.
-* input(), and C++: Actions.
-* input, format of: Format.
-* input, matching: Matching.
-* keywords, for performance: Performance.
-* lex (traditional) and POSIX: Lex and Posix.
-* LexerInput, overriding: How do I use my own I/O classes in a C++ scanner?.
-* LexerOutput, overriding: How do I use my own I/O classes in a C++ scanner?.
-* limitations of flex: Limitations.
-* literal text in patterns, syntax of: Patterns.
-* loading tables at runtime: Loading and Unloading Serialized Tables.
-* m4: M4 Dependency.
-* Makefile, example of implicit rules: Makefiles and Flex.
-* Makefile, explicit example: Makefiles and Flex.
-* Makefile, syntax: Makefiles and Flex.
-* matching C-style double-quoted strings: Start Conditions.
-* matching, and trailing context: Matching.
-* matching, length of: Matching.
-* matching, multiple matches: Matching.
-* member functions, C++: Cxx.
-* memory management: Memory Management.
-* memory, allocating input buffers: Multiple Input Buffers.
-* memory, considerations for reentrant scanners: Init and Destroy Functions.
-* memory, deleting input buffers: Multiple Input Buffers.
-* memory, for start condition stacks: Start Conditions.
-* memory, serialized tables <1>: Loading and Unloading Serialized Tables.
-* memory, serialized tables: Serialized Tables.
-* methods, c++: Cxx.
-* minimal scanner: Matching.
-* multiple input streams: Multiple Input Buffers.
-* name definitions, not POSIX: Lex and Posix.
-* negating ranges in patterns: Patterns.
-* newline, matching in patterns: Patterns.
-* non-POSIX features of flex: Lex and Posix.
-* nowrap, %option: Generated Scanner.
-* NULL character in patterns, syntax of: Patterns.
-* octal characters in patterns: Patterns.
-* options, command-line: Scanner Options.
-* overriding LexerInput: How do I use my own I/O classes in a C++ scanner?.
-* overriding LexerOutput: How do I use my own I/O classes in a C++ scanner?.
-* overriding the memory routines: Overriding The Default Memory Management.
-* Pascal-like language: Simple Examples.
-* pattern aliases, defining: Definitions Section.
-* pattern aliases, expansion of: Patterns.
-* pattern aliases, how to define: Definitions Section.
-* pattern aliases, use of: Definitions Section.
-* patterns and actions on different lines: Lex and Posix.
-* patterns, character class equivalence: Patterns.
-* patterns, end of line: Patterns.
-* patterns, grouping and precedence: Patterns.
-* patterns, in rules section: Patterns.
-* patterns, invalid trailing context: Patterns.
-* patterns, matching: Matching.
-* patterns, precedence of operators: Patterns.
-* patterns, repetitions with grouping: Patterns.
-* patterns, special characters treated as non-special: Patterns.
-* patterns, syntax: Patterns.
-* patterns, tuning for performance: Performance.
-* patterns, valid character classes: Patterns.
-* performance optimization, matching longer tokens: Performance.
-* performance optimization, recognizing keywords: Performance.
-* performance, backing up: Performance.
-* performance, considerations: Performance.
-* performance, using keywords: Performance.
-* popping an input buffer: Multiple Input Buffers.
-* POSIX and lex: Lex and Posix.
-* POSIX comp;compliance: Lex and Posix.
-* POSIX, character classes in patterns, syntax of: Patterns.
-* preprocessor macros, for use in actions: Actions.
-* pushing an input buffer: Multiple Input Buffers.
-* pushing back characters with unput: Actions.
-* pushing back characters with unput(): Actions.
-* pushing back characters with yyless: Actions.
-* pushing back EOF: Actions.
-* ranges in patterns: Patterns.
-* ranges in patterns, negating: Patterns.
-* recognizing C comments: Start Conditions.
-* reentrant scanners, multiple interleaved scanners: Reentrant Uses.
-* reentrant scanners, recursive invocation: Reentrant Uses.
-* reentrant, accessing flex variables: Global Replacement.
-* reentrant, accessor functions: Accessor Methods.
-* reentrant, API explanation: Reentrant Overview.
-* reentrant, calling functions: Extra Reentrant Argument.
-* reentrant, example of: Reentrant Example.
-* reentrant, explanation: Reentrant.
-* reentrant, extra data: Extra Data.
-* reentrant, initialization: Init and Destroy Functions.
-* regular expressions, in patterns: Patterns.
-* REJECT: Actions.
-* REJECT, calling multiple times: Actions.
-* REJECT, performance costs: Performance.
-* reporting bugs: Reporting Bugs.
-* restarting the scanner: Lex and Posix.
-* RETURN, within actions: Generated Scanner.
-* rules, default: Simple Examples.
-* rules, in flex input: Rules Section.
-* scanner, definition of: Introduction.
-* sections of flex input: Format.
-* serialization: Serialized Tables.
-* serialization of tables: Creating Serialized Tables.
-* serialized tables, multiple scanners: Creating Serialized Tables.
-* stack, input buffer pop: Multiple Input Buffers.
-* stack, input buffer push: Multiple Input Buffers.
-* stacks, routines for manipulating: Start Conditions.
-* start condition, applying to multiple patterns: Start Conditions.
-* start conditions: Start Conditions.
-* start conditions, behavior of default rule: Start Conditions.
-* start conditions, exclusive: Start Conditions.
-* start conditions, for different interpretations of same input: Start Conditions.
-* start conditions, in patterns: Patterns.
-* start conditions, inclusive: Start Conditions.
-* start conditions, inclusive v.s. exclusive: Start Conditions.
-* start conditions, integer values: Start Conditions.
-* start conditions, multiple: Start Conditions.
-* start conditions, special wildcard condition: Start Conditions.
-* start conditions, use of a stack: Start Conditions.
-* start conditions, use of wildcard condition (<*>): Start Conditions.
-* start conditions, using BEGIN: Start Conditions.
-* stdin, default for yyin: Generated Scanner.
-* stdout, as default for yyout: Generated Scanner.
-* strings, scanning strings instead of files: Multiple Input Buffers.
-* tables, creating serialized: Creating Serialized Tables.
-* tables, file format: Tables File Format.
-* tables, freeing: Loading and Unloading Serialized Tables.
-* tables, loading and unloading: Loading and Unloading Serialized Tables.
-* terminating with yyterminate(): Actions.
-* token: Matching.
-* trailing context, in patterns: Patterns.
-* trailing context, limits of: Patterns.
-* trailing context, matching: Matching.
-* trailing context, performance costs: Performance.
-* trailing context, variable length: Performance.
-* unput(): Actions.
-* unput(), and %pointer: Actions.
-* unput(), pushing back characters: Actions.
-* user code, in flex input: User Code Section.
-* username expansion: Simple Examples.
-* using integer values of start condition names: Start Conditions.
-* verbatim text in patterns, syntax of: Patterns.
-* warning, dangerous trailing context: Limitations.
-* warning, rule cannot be matched: Diagnostics.
-* warnings, diagnostic messages: Diagnostics.
-* whitespace, compressing: Actions.
-* yacc interface: Yacc.
-* yacc, interface: Yacc.
-* YY_CURRENT_BUFFER, and multiple buffers Finally, the macro: Multiple Input Buffers.
-* YY_EXTRA_TYPE, defining your own type: Extra Data.
-* YY_FLUSH_BUFFER(): Actions.
-* YY_INPUT: Generated Scanner.
-* YY_INPUT, overriding: Generated Scanner.
-* YY_START, example: Start Conditions.
-* YY_USER_ACTION to track each time a rule is matched: Misc Macros.
-* yyalloc, overriding: Overriding The Default Memory Management.
-* yyfree, overriding: Overriding The Default Memory Management.
-* yyin: Generated Scanner.
-* yyinput(): Actions.
-* yyleng: Matching.
-* yyleng, modification of: Actions.
-* yyless(): Actions.
-* yyless(), pushing back characters: Actions.
-* yylex(), in generated scanner: Generated Scanner.
-* yylex(), overriding: Generated Scanner.
-* yylex, overriding the prototype of: Generated Scanner.
-* yylineno, in a reentrant scanner: Reentrant Functions.
-* yylineno, performance costs: Performance.
-* yymore(): Actions.
-* yymore() to append token to previous token: Actions.
-* yymore(), mega-kludge: Actions.
-* yymore, and yyleng: Actions.
-* yymore, performance penalty of: Actions.
-* yyout: Generated Scanner.
-* yyrealloc, overriding: Overriding The Default Memory Management.
-* yyrestart(): Generated Scanner.
-* yyterminate(): Actions.
-* yytext: Matching.
-* yytext, default array size: User Values.
-* yytext, memory considerations: A Note About yytext And Memory.
-* yytext, modification of: Actions.
-* yytext, two types of: Matching.
-* yywrap(): Generated Scanner.
-* yywrap, default for: Generated Scanner.
-* |, in actions: Actions.
-* |, use of: Actions.
-
-
-File: flex.info, Node: Index of Functions and Macros, Next: Index of Variables, Prev: Concept Index, Up: Indices
-
-Index of Functions and Macros
-=============================
-
- This is an index of functions and preprocessor macros that look like
-functions. For macros that expand to variables or constants, see *Note
-Index of Variables::.
-
-* Menu:
-
-* BEGIN: Start Conditions.
-* debug (C++ only): Cxx.
-* LexerError (C++ only): Cxx.
-* LexerInput (C++ only): Cxx.
-* LexerOutput (C++ only): Cxx.
-* lineno (C++ only): Cxx.
-* set_debug (C++ only): Cxx.
-* switch_streams (C++ only): Cxx.
-* YY_AT_BOL: Misc Macros.
-* yy_create_buffer: Multiple Input Buffers.
-* yy_delete_buffer: Multiple Input Buffers.
-* yy_flush_buffer: Multiple Input Buffers.
-* yy_new_buffer: Multiple Input Buffers.
-* YY_NEW_FILE (now obsolete): EOF.
-* yy_pop_state: Start Conditions.
-* yy_push_state: Start Conditions.
-* yy_scan_buffer: Multiple Input Buffers.
-* yy_scan_bytes: Multiple Input Buffers.
-* yy_scan_string: Multiple Input Buffers.
-* yy_set_bol: Misc Macros.
-* yy_set_interactive: Misc Macros.
-* yy_switch_to_buffer: Multiple Input Buffers.
-* yy_top_state: Start Conditions.
-* yyFlexLexer constructor (C++ only): Cxx.
-* yyget_debug: Reentrant Functions.
-* yyget_extra <1>: Reentrant Functions.
-* yyget_extra: Extra Data.
-* yyget_in: Reentrant Functions.
-* yyget_leng: Reentrant Functions.
-* yyget_lineno: Reentrant Functions.
-* yyget_out: Reentrant Functions.
-* yyget_text: Reentrant Functions.
-* YYLeng (C++ only): Cxx.
-* yylex (C++ version): Cxx.
-* yylex (reentrant version): Bison Bridge.
-* yylex_destroy: Init and Destroy Functions.
-* yylex_init: Init and Destroy Functions.
-* yypop_buffer_state: Multiple Input Buffers.
-* yypush_buffer_state: Multiple Input Buffers.
-* yyrestart: User Values.
-* yyset_debug: Reentrant Functions.
-* yyset_extra <1>: Reentrant Functions.
-* yyset_extra: Extra Data.
-* yyset_in: Reentrant Functions.
-* yyset_lineno: Reentrant Functions.
-* yyset_out: Reentrant Functions.
-* yytables_destroy: Loading and Unloading Serialized Tables.
-* yytables_fload: Loading and Unloading Serialized Tables.
-* YYText (C++ only): Cxx.
-
-
-File: flex.info, Node: Index of Variables, Next: Index of Data Types, Prev: Index of Functions and Macros, Up: Indices
-
-Index of Variables
-==================
-
- This is an index of variables, constants, and preprocessor macros
-that expand to variables or constants.
-
-* Menu:
-
-* INITIAL: Start Conditions.
-* YY_CURRENT_BUFFER: User Values.
-* YY_END_OF_BUFFER_CHAR: Multiple Input Buffers.
-* YY_NUM_RULES: Misc Macros.
-* YY_START <1>: User Values.
-* YY_START: Start Conditions.
-* yyextra: Extra Data.
-* yyin: User Values.
-* yyleng: User Values.
-* yylloc: Bison Bridge.
-* YYLMAX: User Values.
-* yylval: Bison Bridge.
-* yylval, with yacc: Yacc.
-* yyout: User Values.
-* yyscanner (reentrant only): Extra Reentrant Argument.
-* yytext <1>: User Values.
-* yytext: Matching.
-
-
-File: flex.info, Node: Index of Data Types, Next: Index of Hooks, Prev: Index of Variables, Up: Indices
-
-Index of Data Types
-===================
-
-* Menu:
-
-* FlexLexer (C++ only): Cxx.
-* YY_BUFFER_STATE: Multiple Input Buffers.
-* YY_EXTRA_TYPE (reentrant only): Extra Data.
-* yy_size_t: Multiple Input Buffers.
-* yyFlexLexer (C++ only): Cxx.
-* YYLTYPE: Bison Bridge.
-* yyscan_t (reentrant only): About yyscan_t.
-* YYSTYPE: Bison Bridge.
-
-
-File: flex.info, Node: Index of Hooks, Next: Index of Scanner Options, Prev: Index of Data Types, Up: Indices
-
-Index of Hooks
-==============
-
- This is an index of "hooks" that the user may define. These hooks
-typically correspond to specific locations in the generated scanner,
-and may be used to insert arbitrary code.
-
-* Menu:
-
-* YY_BREAK: Misc Macros.
-* YY_USER_ACTION: Misc Macros.
-* YY_USER_INIT: Misc Macros.
-
-
-File: flex.info, Node: Index of Scanner Options, Prev: Index of Hooks, Up: Indices
-
-Index of Scanner Options
-========================
-
-* Menu:
-
-* -+: Code-Level And API Options.
-* --7bit: Options Affecting Scanner Behavior.
-* --8bit: Options Affecting Scanner Behavior.
-* --align: Options for Scanner Speed and Size.
-* --always-interactive: Options Affecting Scanner Behavior.
-* --array: Code-Level And API Options.
-* --backup: Debugging Options.
-* --batch: Options Affecting Scanner Behavior.
-* --bison-bridge: Code-Level And API Options.
-* --bison-locations: Code-Level And API Options.
-* --c++: Code-Level And API Options.
-* --case-insensitive: Options Affecting Scanner Behavior.
-* --debug: Debugging Options.
-* --default: Options Affecting Scanner Behavior.
-* --ecs: Options for Scanner Speed and Size.
-* --fast: Options for Scanner Speed and Size.
-* --full: Options for Scanner Speed and Size.
-* --header-file: Options for Specifing Filenames.
-* --help: Miscellaneous Options.
-* --interactive: Options Affecting Scanner Behavior.
-* --lex-compat: Options Affecting Scanner Behavior.
-* --main: Code-Level And API Options.
-* --meta-ecs: Options for Scanner Speed and Size.
-* --never-interactive: Options Affecting Scanner Behavior.
-* --nodefault: Debugging Options.
-* --noline: Code-Level And API Options.
-* --nounistd: Code-Level And API Options.
-* --nowarn: Debugging Options.
-* --option-ansi-definitions: Code-Level And API Options.
-* --option-ansi-prototypes: Code-Level And API Options.
-* --outfile: Options for Specifing Filenames.
-* --perf-report: Debugging Options.
-* --pointer: Code-Level And API Options.
-* --posix: Options Affecting Scanner Behavior.
-* --prefix: Code-Level And API Options.
-* --read: Options for Scanner Speed and Size.
-* --reentrant: Code-Level And API Options.
-* --skel: Options for Specifing Filenames.
-* --stack: Options Affecting Scanner Behavior.
-* --stdinit: Options Affecting Scanner Behavior.
-* --stdout: Options for Specifing Filenames.
-* --tables-file: Options for Specifing Filenames.
-* --tables-verify: Options for Specifing Filenames.
-* --trace: Debugging Options.
-* --verbose: Debugging Options.
-* --version: Miscellaneous Options.
-* --warn: Debugging Options.
-* --yyclass: Code-Level And API Options.
-* --yylineno: Options Affecting Scanner Behavior.
-* --yywrap: Options Affecting Scanner Behavior.
-* -7: Options Affecting Scanner Behavior.
-* -8: Options Affecting Scanner Behavior.
-* -b: Debugging Options.
-* -B: Options Affecting Scanner Behavior.
-* -c: Miscellaneous Options.
-* -C: Options for Scanner Speed and Size.
-* -Ca: Options for Scanner Speed and Size.
-* -Ce: Options for Scanner Speed and Size.
-* -CF: Options for Scanner Speed and Size.
-* -Cf: Options for Scanner Speed and Size.
-* -Cm: Options for Scanner Speed and Size.
-* -Cr: Options for Scanner Speed and Size.
-* -d: Debugging Options.
-* -F: Options for Scanner Speed and Size.
-* -f: Options for Scanner Speed and Size.
-* -h: Miscellaneous Options.
-* -I: Options Affecting Scanner Behavior.
-* -i: Options Affecting Scanner Behavior.
-* -L: Code-Level And API Options.
-* -l: Options Affecting Scanner Behavior.
-* -n: Miscellaneous Options.
-* -o: Options for Specifing Filenames.
-* -p: Debugging Options.
-* -P: Code-Level And API Options.
-* -R: Code-Level And API Options.
-* -s: Debugging Options.
-* -T: Debugging Options.
-* -t: Options for Specifing Filenames.
-* -V: Miscellaneous Options.
-* -v: Debugging Options.
-* -w: Debugging Options.
-* -X: Options Affecting Scanner Behavior.
-* 7bit: Options Affecting Scanner Behavior.
-* 8bit: Options Affecting Scanner Behavior.
-* align: Options for Scanner Speed and Size.
-* always-interactive: Options Affecting Scanner Behavior.
-* ansi-definitions: Code-Level And API Options.
-* ansi-prototypes: Code-Level And API Options.
-* array: Code-Level And API Options.
-* backup: Debugging Options.
-* batch: Options Affecting Scanner Behavior.
-* bison-bridge: Code-Level And API Options.
-* bison-locations: Code-Level And API Options.
-* c++: Code-Level And API Options.
-* case-insensitive: Options Affecting Scanner Behavior.
-* debug: Debugging Options.
-* default: Options Affecting Scanner Behavior.
-* ecs: Options for Scanner Speed and Size.
-* fast: Options for Scanner Speed and Size.
-* full: Options for Scanner Speed and Size.
-* header-file: Options for Specifing Filenames.
-* interactive: Options Affecting Scanner Behavior.
-* lex-compat: Options Affecting Scanner Behavior.
-* main: Code-Level And API Options.
-* meta-ecs: Options for Scanner Speed and Size.
-* nodefault: Debugging Options.
-* noline: Code-Level And API Options.
-* nounistd: Code-Level And API Options.
-* nowarn: Debugging Options.
-* noyyalloc: Overriding The Default Memory Management.
-* outfile: Options for Specifing Filenames.
-* perf-report: Debugging Options.
-* pointer: Code-Level And API Options.
-* posix: Options Affecting Scanner Behavior.
-* prefix: Code-Level And API Options.
-* read: Options for Scanner Speed and Size.
-* reentrant: Code-Level And API Options.
-* stack: Options Affecting Scanner Behavior.
-* stdinit: Options Affecting Scanner Behavior.
-* stdout: Options for Specifing Filenames.
-* tables-file: Options for Specifing Filenames.
-* tables-verify: Options for Specifing Filenames.
-* trace: Debugging Options.
-* verbose: Debugging Options.
-* warn: Debugging Options.
-* yyclass: Code-Level And API Options.
-* yylineno: Options Affecting Scanner Behavior.
-* yywrap: Options Affecting Scanner Behavior.
-
-
diff --git a/doc/flex.pdf b/doc/flex.pdf
new file mode 100644
index 0000000..18b5a1e
--- /dev/null
+++ b/doc/flex.pdf
Binary files differ
diff --git a/doc/flex.texi b/doc/flex.texi
index 130cf09..f9a9e9e 100644
--- a/doc/flex.texi
+++ b/doc/flex.texi
@@ -1,8 +1,9 @@
\input texinfo.tex @c -*-texinfo-*-
@c %**start of header
@setfilename flex.info
-@settitle flex: a fast lexical analyzer generator
+@settitle Lexical Analysis With Flex
@include version.texi
+@set authors Vern Paxson, Will Estes and John Millaway
@c "Macro Hooks" index
@defindex hk
@c "Options" index
@@ -18,6 +19,9 @@
The flex manual is placed under the same licensing conditions as the
rest of flex:
+Copyright @copyright{} 2001, 2002, 2003, 2004, 2005, 2006, 2007 The Flex
+Project.
+
Copyright @copyright{} 1990, 1997 The Regents of the University of California.
All rights reserved.
@@ -54,18 +58,15 @@ PURPOSE.
@end copying
@titlepage
-@title Flex, version @value{VERSION}
-@subtitle A fast scanner generator
+@title @value{title}
@subtitle Edition @value{EDITION}, @value{UPDATED}
-@author Vern Paxson
-@author W. L. Estes
-@author John Millaway
+@author @value{authors}
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
-
+@ifnottex
@node Top, Copyright, (dir), (dir)
@top flex
@@ -76,6 +77,8 @@ reference sections.
This edition of @cite{The flex Manual} documents @code{flex} version
@value{VERSION}. It was last updated on @value{UPDATED}.
+This manual was written by @value{authors}.
+
@menu
* Copyright::
* Reporting Bugs::
@@ -118,7 +121,7 @@ Format of the Input File
Scanner Options
-* Options for Specifing Filenames::
+* Options for Specifying Filenames::
* Options Affecting Scanner Behavior::
* Code-Level And API Options::
* Options for Scanner Speed and Size::
@@ -158,7 +161,7 @@ Serialized Tables
FAQ
* When was flex born?::
-* How do I expand \ escape sequences in C-style quoted strings?::
+* How do I expand backslash-escape sequences in C-style quoted strings?::
* Why do flex scanners call fileno if it is not ANSI compatible?::
* Does flex support recursive pattern definitions?::
* How do I skip huge chunks of input (tens of megabytes) while using flex?::
@@ -171,9 +174,9 @@ FAQ
* Why cant I use fast or full tables with interactive mode?::
* How much faster is -F or -f than -C?::
* If I have a simple grammar cant I just parse it with flex?::
-* Why doesnt yyrestart() set the start state back to INITIAL?::
+* Why doesn't yyrestart() set the start state back to INITIAL?::
* How can I match C-style comments?::
-* The period isnt working the way I expected.::
+* The period isn't working the way I expected.::
* Can I get the flex manual in another format?::
* Does there exist a "faster" NDFA->DFA algorithm?::
* How does flex compile the DFA so quickly?::
@@ -191,7 +194,7 @@ FAQ
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
* Is there a way to make flex treat NULL like a regular character?::
* Whenever flex can not match the input it says "flex scanner jammed".::
-* Why doesnt flex have non-greedy operators like perl does?::
+* Why doesn't flex have non-greedy operators like perl does?::
* Memory leak - 16386 bytes allocated by malloc.::
* How do I track the byte offset for lseek()?::
* How do I use my own I/O classes in a C++ scanner?::
@@ -265,6 +268,7 @@ Appendices
* Makefiles and Flex::
* Bison Bridge::
* M4 Dependency::
+* Common Patterns::
Indices
@@ -277,7 +281,7 @@ Indices
@end detailmenu
@end menu
-
+@end ifnottex
@node Copyright, Reporting Bugs, Top, Top
@chapter Copyright
@@ -291,9 +295,9 @@ Indices
@cindex bugs, reporting
@cindex reporting bugs
-If you have problems with @code{flex} or think you have found a bug,
-please send mail detailing your problem to
-@email{flex-help@@lists.sourceforge.net}. Patches are always welcome.
+If you find a bug in @code{flex}, please report it using
+the SourceForge Bug Tracking facilities which can be found on
+@url{http://sourceforge.net/projects/flex,flex's SourceForge Page}.
@node Introduction, Simple Examples, Reporting Bugs, Top
@chapter Introduction
@@ -602,7 +606,8 @@ The presence of this section is optional; if it is missing, the second
@section Comments in the Input
@cindex comments, syntax of
-Flex supports C-style comments, that is, anything between /* and */ is
+Flex supports C-style comments, that is, anything between @samp{/*} and
+@samp{*/} is
considered a comment. Whenever flex encounters a comment, it copies the
entire comment verbatim to the generated source code. Comments may
appear just about anywhere, but with the following exceptions:
@@ -693,6 +698,9 @@ character EXCEPT an uppercase letter.
any character EXCEPT an uppercase letter or
a newline
+@item [a-z]@{-@}[aeiou]
+the lowercase consonants
+
@item r*
zero or more r's, where r is any regular expression
@@ -742,6 +750,43 @@ the character with hexadecimal value 2a
@item (r)
match an @samp{r}; parentheses are used to override precedence (see below)
+@item (?r-s:pattern)
+apply option @samp{r} and omit option @samp{s} while interpreting pattern.
+Options may be zero or more of the characters @samp{i}, @samp{s}, or @samp{x}.
+
+@samp{i} means case-insensitive. @samp{-i} means case-sensitive.
+
+@samp{s} alters the meaning of the @samp{.} syntax to match any single byte whatsoever.
+@samp{-s} alters the meaning of @samp{.} to match any byte except @samp{\n}.
+
+@samp{x} ignores comments and whitespace in patterns. Whitespace is ignored unless
+it is backslash-escaped, contained within @samp{""}s, or appears inside a
+character class.
+
+The following are all valid:
+
+@verbatim
+(?:foo) same as (foo)
+(?i:ab7) same as ([aA][bB]7)
+(?-i:ab) same as (ab)
+(?s:.) same as [\x00-\xFF]
+(?-s:.) same as [^\n]
+(?ix-s: a . b) same as ([Aa][^\n][bB])
+(?x:a b) same as ("ab")
+(?x:a\ b) same as ("a b")
+(?x:a" "b) same as ("a b")
+(?x:a[ ]b) same as ("a b")
+(?x:a
+ /* comment */
+ b
+ c) same as (abc)
+@end verbatim
+
+@item (?# comment )
+omit everything within @samp{()}. The first @samp{)}
+character encountered ends the pattern. It is not possible to for the comment
+to contain a @samp{)} character. The comment may span lines.
+
@cindex concatenation, in patterns
@item rs
the regular expression @samp{r} followed by the regular expression @samp{s}; called
@@ -886,7 +931,10 @@ For example, the following character classes are all equivalent:
@end verbatim
@end example
-Some notes on patterns are in order.
+A word of caution. Character classes are expanded immediately when seen in the @code{flex} input.
+This means the character classes are sensitive to the locale in which @code{flex}
+is executed, and the resulting scanner will not be sensitive to the runtime locale.
+This may or may not be desirable.
@itemize
@@ -927,6 +975,40 @@ unfortunately the inconsistency is historically entrenched. Matching
newlines means that a pattern like @samp{[^"]*} can match the entire
input unless there's another quote in the input.
+Flex allows negation of character class expressions by prepending @samp{^} to
+the POSIX character class name.
+
+@example
+@verbatim
+ [:^alnum:] [:^alpha:] [:^blank:]
+ [:^cntrl:] [:^digit:] [:^graph:]
+ [:^lower:] [:^print:] [:^punct:]
+ [:^space:] [:^upper:] [:^xdigit:]
+@end verbatim
+@end example
+
+Flex will issue a warning if the expressions @samp{[:^upper:]} and
+@samp{[:^lower:]} appear in a case-insensitive scanner, since their meaning is
+unclear. The current behavior is to skip them entirely, but this may change
+without notice in future revisions of flex.
+
+@item
+
+The @samp{@{-@}} operator computes the difference of two character classes. For
+example, @samp{[a-c]@{-@}[b-z]} represents all the characters in the class
+@samp{[a-c]} that are not in the class @samp{[b-z]} (which in this case, is
+just the single character @samp{a}). The @samp{@{-@}} operator is left
+associative, so @samp{[abc]@{-@}[b]@{-@}[c]} is the same as @samp{[a]}. Be careful
+not to accidentally create an empty set, which will never match.
+
+@item
+
+The @samp{@{+@}} operator computes the union of two character classes. For
+example, @samp{[a-z]@{+@}[0-9]} is the same as @samp{[a-z0-9]}. This operator
+is useful when preceded by the result of a difference operation, as in,
+@samp{[[:alpha:]]@{-@}[[:lower:]]@{+@}[q]}, which is equivalent to
+@samp{[A-Zq]} in the "C" locale.
+
@cindex trailing context, limits of
@cindex ^ as non-special character in patterns
@cindex $ as normal character in patterns
@@ -1112,7 +1194,7 @@ single blank, and throws away whitespace found at the end of a line:
@cindex actions, embedded C strings
@cindex C-strings, in actions
@cindex comments, in actions
-If the action contains a @samp{@}}, then the action spans till the
+If the action contains a @samp{@{}, then the action spans till the
balancing @samp{@}} is found, and the action may cross multiple lines.
@code{flex} knows about C strings and comments and won't be fooled by
braces found within them, but also allows actions to begin with
@@ -1176,7 +1258,7 @@ whenever @samp{frob} is seen:
@end verbatim
@end example
-Without the @code{REJECT}, any occurences of @samp{frob} in the input
+Without the @code{REJECT}, any occurrences of @samp{frob} in the input
would not be counted as words, since the scanner normally executes only
one action per token. Multiple uses of @code{REJECT} are allowed, each
one finding the next best choice to the currently active rule. For
@@ -1206,7 +1288,7 @@ will slow down @emph{all} of the scanner's matching. Furthermore,
(@pxref{Scanner Options}).
Note also that unlike the other special actions, @code{REJECT} is a
-@emph{branch}. code immediately following it in the action will
+@emph{branch}. Code immediately following it in the action will
@emph{not} be executed.
@item yymore()
@@ -1544,7 +1626,7 @@ condition, and
will be active only when the current start condition is either
@code{INITIAL}, @code{STRING}, or @code{QUOTE}.
-@cindex start conditions, inclusive v.s. exclusive
+@cindex start conditions, inclusive v.s.@: exclusive
Start conditions are declared in the definitions (first) section of the
input using unindented lines beginning with either @samp{%s} or
@samp{%x} followed by a list of names. The former declares
@@ -1594,7 +1676,7 @@ is equivalent to
Without the @code{<INITIAL,example>} qualifier, the @code{bar} pattern in
the second example wouldn't be active (i.e., couldn't match) when in
-start condition @code{example}. If we just used @code{example>} to
+start condition @code{example}. If we just used @code{<example>} to
qualify @code{bar}, though, then it would only be active in
@code{example} and not in @code{INITIAL}, while in the first example
it's active in both, because in the first example the @code{example}
@@ -2295,7 +2377,7 @@ switch statement and separated using @code{YY_BREAK}, which may be
redefined. By default, it is simply a @code{break}, to separate each
rule's action from the following rule's. Redefining @code{YY_BREAK}
allows, for example, C++ users to #define YY_BREAK to do nothing (while
-being very careful that every rule ends with a @code{break}" or a
+being very careful that every rule ends with a @code{break} or a
@code{return}!) to avoid suffering from unreachable statement warnings
where because a rule's action ends with @code{return}, the
@code{YY_BREAK} is inaccessible.
@@ -2408,7 +2490,7 @@ The various @code{flex} options are categorized by function in the following
menu. If you want to lookup a particular option by name, @xref{Index of Scanner Options}.
@menu
-* Options for Specifing Filenames::
+* Options for Specifying Filenames::
* Options Affecting Scanner Behavior::
* Code-Level And API Options::
* Options for Scanner Speed and Size::
@@ -2431,7 +2513,7 @@ specify the following options:
The first line specifies the general type of scanner we want. The second line
specifies that we are being careful. The third line asks flex to track line
numbers. The last line tells flex what to name the files. (The options can be
-specified in any order. We just dividied them.)
+specified in any order. We just divided them.)
@code{flex} also provides a mechanism for controlling options within the
scanner specification itself, rather than from the flex command-line.
@@ -2474,8 +2556,8 @@ corresponding routine not appearing in the generated scanner:
(though @code{yy_push_state()} and friends won't appear anyway unless
you use @code{%option stack)}.
-@node Options for Specifing Filenames, Options Affecting Scanner Behavior, Scanner Options, Scanner Options
-@section Options for Specifing Filenames
+@node Options for Specifying Filenames, Options Affecting Scanner Behavior, Scanner Options, Scanner Options
+@section Options for Specifying Filenames
@table @samp
@@ -2547,7 +2629,7 @@ the serialized tables match the in-code tables, instead of loading them.
@end table
-@node Options Affecting Scanner Behavior, Code-Level And API Options, Options for Specifing Filenames, Scanner Options
+@node Options Affecting Scanner Behavior, Code-Level And API Options, Options for Specifying Filenames, Scanner Options
@section Options Affecting Scanner Behavior
@table @samp
@@ -2975,9 +3057,9 @@ to find them.
@anchor{option-yyclass}
@opindex ---yyclass
@opindex yyclass
-@item --yyclass, @code{%option yyclass="NAME"}
+@item --yyclass=NAME, @code{%option yyclass="NAME"}
only applies when generating a C++ scanner (the @samp{--c++} option). It
-informs @code{flex} that you have derived @code{foo} as a subclass of
+informs @code{flex} that you have derived @code{NAME} as a subclass of
@code{yyFlexLexer}, so @code{flex} will place your actions in the member
function @code{foo::yylex()} instead of @code{yyFlexLexer::yylex()}. It
also generates a @code{yyFlexLexer::yylex()} member function that emits
@@ -3143,7 +3225,7 @@ the @emph{identifier} rule is present and you then use a hash table or some such
to detect the keywords, you're better off using
@samp{--fast}.
-This option is equivalent to @samp{-CFr} (see below). It cannot be used
+This option is equivalent to @samp{-CFr}. It cannot be used
with @samp{--c++}.
@end table
@@ -3263,7 +3345,7 @@ those that are on by default.
@opindex warn
@item --warn, @code{%option warn}
warn about certain things. In particular, if the default rule can be
-matched but no defualt rule has been given, the flex will warn you.
+matched but no default rule has been given, the flex will warn you.
We recommend using this option always.
@end table
@@ -3274,18 +3356,17 @@ We recommend using this option always.
@table @samp
@opindex -c
@item -c
-is a do-nothing option included for POSIX compliance.
+A do-nothing option included for POSIX compliance.
@opindex -h
@opindex ---help
-generates
@item -h, -?, --help
generates a ``help'' summary of @code{flex}'s options to @file{stdout}
and then exits.
@opindex -n
@item -n
-is another do-nothing option included only for
+Another do-nothing option included for
POSIX compliance.
@opindex -V
@@ -3330,7 +3411,7 @@ with the first two all being quite expensive and the last two being
quite cheap. Note also that @code{unput()} is implemented as a routine
call that potentially does quite a bit of work, while @code{yyless()} is
a quite-cheap macro. So if you are just putting back some excess text
-you scanned, use @code{ss()}.
+you scanned, use @code{yyless()}.
@code{REJECT} should be avoided at all costs when performance is
important. It is a particularly expensive option.
@@ -3710,7 +3791,7 @@ returns the current input line number (see @code{%option yylineno)}, or
@item void set_debug( int flag )
sets the debugging flag for the scanner, equivalent to assigning to
@code{yy_flex_debug} (@pxref{Scanner Options}). Note that you must build
-the scannerusing @code{%option debug} to include debugging information
+the scanner using @code{%option debug} to include debugging information
in it.
@findex debug (C++ only)
@@ -4004,14 +4085,20 @@ First, an example of a reentrant scanner:
@example
@verbatim
/* This scanner prints "//" comments. */
- %option reentrant stack
+
+ %option reentrant stack noyywrap
%x COMMENT
+
%%
+
"//" yy_push_state( COMMENT, yyscanner);
.|\n
+
<COMMENT>\n yy_pop_state( yyscanner );
<COMMENT>[^\n]+ fprintf( yyout, "%s\n", yytext);
+
%%
+
int main ( int argc, char * argv[] )
{
yyscan_t scanner;
@@ -4062,7 +4149,7 @@ All functions take one additional argument: @code{yyscanner}.
Notice that the calls to @code{yy_push_state} and @code{yy_pop_state}
both have an argument, @code{yyscanner} , that is not present in a
non-reentrant scanner. Here are the declarations of
-@code{yy_push_state} and @code{yy_pop_state} in the generated scanner:
+@code{yy_push_state} and @code{yy_pop_state} in the reentrant scanner:
@example
@verbatim
@@ -4128,6 +4215,7 @@ after @code{yylex}, respectively.
@example
@verbatim
int yylex_init ( yyscan_t * ptr_yy_globals ) ;
+ int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t * ptr_yy_globals ) ;
int yylex ( yyscan_t yyscanner ) ;
int yylex_destroy ( yyscan_t yyscanner ) ;
@end verbatim
@@ -4135,19 +4223,26 @@ after @code{yylex}, respectively.
The function @code{yylex_init} must be called before calling any other
function. The argument to @code{yylex_init} is the address of an
-uninitialized pointer to be filled in by @code{flex}. The contents of
-@code{ptr_yy_globals} need not be initialized, since @code{flex} will
-overwrite it anyway. The value stored in @code{ptr_yy_globals} should
-thereafter be passed to @code{yylex()} and @b{yylex_destroy()}. Flex
+uninitialized pointer to be filled in by @code{yylex_init}, overwriting
+any previous contents. The function @code{yylex_init_extra} may be used
+instead, taking as its first argument a variable of type @code{YY_EXTRA_TYPE}.
+See the section on yyextra, below, for more details.
+
+The value stored in @code{ptr_yy_globals} should
+thereafter be passed to @code{yylex} and @code{yylex_destroy}. Flex
does not save the argument passed to @code{yylex_init}, so it is safe to
-pass the address of a local pointer to @code{yylex_init}. The function
+pass the address of a local pointer to @code{yylex_init} so long as it remains
+in scope for the duration of all calls to the scanner, up to and including
+the call to @code{yylex_destroy}.
+
+The function
@code{yylex} should be familiar to you by now. The reentrant version
takes one argument, which is the value returned (via an argument) by
@code{yylex_init}. Otherwise, it behaves the same as the non-reentrant
version of @code{yylex}.
-@code{yylex_init} returns 0 (zero) on success, or non-zero on failure,
-in which case, errno is set to one of the following values:
+Both @code{yylex_init} and @code{yylex_init_extra} returns 0 (zero) on success,
+or non-zero on failure, in which case errno is set to one of the following values:
@itemize
@item ENOMEM
@@ -4243,9 +4338,7 @@ In a non-reentrant scanner, the only way to do this would be through the
use of global variables.
@code{Flex} allows you to store arbitrary, ``extra'' data in a scanner.
This data is accessible through the accessor methods
-@code{yyget_extra}
-and
-@code{yyset_extra}
+@code{yyget_extra} and @code{yyset_extra}
from outside the scanner, and through the shortcut macro
@code{yyextra}
from within the scanner itself. They are defined as follows:
@@ -4261,11 +4354,14 @@ from within the scanner itself. They are defined as follows:
@end verbatim
@end example
+In addition, an extra form of @code{yylex_init} is provided,
+@code{yylex_init_extra}. This function is provided so that the yyextra value can
+be accessed from within the very first yyalloc, used to allocate
+the scanner itself.
+
By default, @code{YY_EXTRA_TYPE} is defined as type @code{void *}. You
-will have to cast @code{yyextra} and the return value from
-@code{yyget_extra} to the appropriate value each time you access the
-extra data. To avoid casting, you may override the default type by
-defining @code{YY_EXTRA_TYPE} in section 1 of your scanner:
+may redefine this type using @code{%option extra-type="your_type"} in
+the scanner:
@cindex YY_EXTRA_TYPE, defining your own type
@example
@@ -4274,9 +4370,9 @@ defining @code{YY_EXTRA_TYPE} in section 1 of your scanner:
%{
#include <sys/stat.h>
#include <unistd.h>
- #define YY_EXTRA_TYPE struct stat*
%}
%option reentrant
+ %option extra-type="struct stat *"
%%
__filesize__ printf( "%ld", yyextra->st_size );
@@ -4286,14 +4382,17 @@ defining @code{YY_EXTRA_TYPE} in section 1 of your scanner:
{
yyscan_t scanner;
struct stat buf;
+ FILE *in;
- yylex_init ( &scanner );
- yyset_in( fopen(filename,"r"), scanner );
+ in = fopen( filename, "r" );
+ stat( filename, &buf );
- stat( filename, &buf);
- yyset_extra( &buf, scanner );
- yylex ( scanner );
+ yylex_init_extra( buf, &scanner );
+ yyset_in( in, scanner );
+ yylex( scanner );
yylex_destroy( scanner );
+
+ fclose( in );
}
@end verbatim
@end example
@@ -5033,7 +5132,7 @@ any padding.
Bit flags for this table set. Currently unused.
@item th_version[]
-Flex version in NULL-termninated string format. e.g., @samp{2.5.13a}. This is
+Flex version in NULL-terminated string format. e.g., @samp{2.5.13a}. This is
the version of flex that was used to create the serialized tables.
@item th_name[]
@@ -5306,7 +5405,7 @@ publish them here.
@menu
* When was flex born?::
-* How do I expand \ escape sequences in C-style quoted strings?::
+* How do I expand backslash-escape sequences in C-style quoted strings?::
* Why do flex scanners call fileno if it is not ANSI compatible?::
* Does flex support recursive pattern definitions?::
* How do I skip huge chunks of input (tens of megabytes) while using flex?::
@@ -5319,9 +5418,9 @@ publish them here.
* Why cant I use fast or full tables with interactive mode?::
* How much faster is -F or -f than -C?::
* If I have a simple grammar cant I just parse it with flex?::
-* Why doesnt yyrestart() set the start state back to INITIAL?::
+* Why doesn't yyrestart() set the start state back to INITIAL?::
* How can I match C-style comments?::
-* The period isnt working the way I expected.::
+* The period isn't working the way I expected.::
* Can I get the flex manual in another format?::
* Does there exist a "faster" NDFA->DFA algorithm?::
* How does flex compile the DFA so quickly?::
@@ -5339,7 +5438,7 @@ publish them here.
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
* Is there a way to make flex treat NULL like a regular character?::
* Whenever flex can not match the input it says "flex scanner jammed".::
-* Why doesnt flex have non-greedy operators like perl does?::
+* Why doesn't flex have non-greedy operators like perl does?::
* Memory leak - 16386 bytes allocated by malloc.::
* How do I track the byte offset for lseek()?::
* How do I use my own I/O classes in a C++ scanner?::
@@ -5417,8 +5516,8 @@ the @cite{Software Tools} lex project from Jef Poskanzer in 1982. At that point
was written in Ratfor. Around 1987 or so, Paxson translated it into C, and
a legend was born :-).
-@node How do I expand \ escape sequences in C-style quoted strings?
-@unnumberedsec How do I expand \ escape sequences in C-style quoted strings?
+@node How do I expand backslash-escape sequences in C-style quoted strings?
+@unnumberedsec How do I expand backslash-escape sequences in C-style quoted strings?
A key point when scanning quoted strings is that you cannot (easily) write
a single rule that will precisely match the string if you allow things
@@ -5615,7 +5714,7 @@ matches in @samp{<INITIAL>}. Then you could use the following:
...
<A>.|\n {
/* Shortest and last rule in <A>, so
-* cascaded REJECT's will eventually
+* cascaded REJECTs will eventually
* wind up matching this rule. We want
* to now switch to the initial state
* and try matching from there instead.
@@ -5658,7 +5757,7 @@ Is your grammar recursive? That's almost always a sign that you're
better off using a parser/scanner rather than just trying to use a scanner
alone.
-@node Why doesnt yyrestart() set the start state back to INITIAL?
+@node Why doesn't yyrestart() set the start state back to INITIAL?
@unnumberedsec Why doesn't yyrestart() set the start state back to INITIAL?
There are two reasons. The first is that there might
@@ -5709,7 +5808,7 @@ Here is one way which allows you to track line information:
@end verbatim
@end example
-@node The period isnt working the way I expected.
+@node The period isn't working the way I expected.
@unnumberedsec The '.' isn't working the way I expected.
Here are some tips for using @samp{.}:
@@ -5823,13 +5922,13 @@ can add to the beginning of your rules section:
@example
@verbatim
%%
-/* Must be indented! */
-static int did_init = 0;
+ /* Must be indented! */
+ static int did_init = 0;
-if ( ! did_init ){
+ if ( ! did_init ){
do_my_init();
-did_init = 1;
-}
+ did_init = 1;
+ }
@end verbatim
@end example
@@ -5909,7 +6008,7 @@ From the above though hopefully the idea is clear.
One way to do it is to filter the first pass to a temporary file,
then process the temporary file on the second pass. You will probably see a
-performance hit, do to all the disk I/O.
+performance hit, due to all the disk I/O.
When you need to look ahead far forward like this, it almost always means
that the right solution is to build a parse tree of the entire input, then
@@ -5924,7 +6023,7 @@ residing in memory.
One way to assign precedence, is to place the more specific rules first. If
two rules would match the same input (same sequence of characters) then the
-first rule listed in the @code{flex} input wins. e.g.,
+first rule listed in the @code{flex} input wins, e.g.,
@example
@verbatim
@@ -5959,7 +6058,7 @@ version of @code{flex}. The latest release is version @value{VERSION}.
@node Whenever flex can not match the input it says "flex scanner jammed".
@unnumberedsec Whenever flex can not match the input it says "flex scanner jammed".
-You need to add a rule that matches the otherwise-unmatched text.
+You need to add a rule that matches the otherwise-unmatched text,
e.g.,
@example
@@ -5974,7 +6073,7 @@ e.g.,
See @code{%option default} for more information.
-@node Why doesnt flex have non-greedy operators like perl does?
+@node Why doesn't flex have non-greedy operators like perl does?
@unnumberedsec Why doesn't flex have non-greedy operators like perl does?
A DFA can do a non-greedy match by stopping
@@ -8055,6 +8154,7 @@ See @ref{Top, , , bison, the GNU Bison Manual}.
* Makefiles and Flex::
* Bison Bridge::
* M4 Dependency::
+* Common Patterns::
@end menu
@node Makefiles and Flex, Bison Bridge, Appendices, Appendices
@@ -8073,7 +8173,9 @@ This requires you to carefully plan your Makefile.
Modern @command{make} programs understand that @file{foo.l} is intended to
generate @file{lex.yy.c} or @file{foo.c}, and will behave
accordingly@footnote{GNU @command{make} and GNU @command{automake} are two such
-programs that provide implicit rules for flex-generated scanners.}. The
+programs that provide implicit rules for flex-generated scanners.}@footnote{GNU @command{automake}
+may generate code to execute flex in lex-compatible mode, or to stdout. If this is not what you want,
+then you should provide an explicit rule in your Makefile.am}. The
following Makefile does not explicitly instruct @command{make} how to build
@file{foo.c} from @file{foo.l}. Instead, it relies on the implicit rules of the
@command{make} program to build the intermediate file, @file{scan.c}:
@@ -8268,7 +8370,7 @@ As you can see, there really is no magic here. We just use
@end verbatim
@end example
-@node M4 Dependency, , Bison Bridge, Appendices
+@node M4 Dependency, Common Patterns, Bison Bridge, Appendices
@section M4 Dependency
@cindex m4
The macro processor @code{m4}@footnote{The use of m4 is subject to change in
@@ -8290,13 +8392,150 @@ symbol past m4 unmangled.
former is not valid in C, except within comments and strings, but the latter is valid in
code such as @code{x[y[z]]}. The solution is simple. To get the literal string
@code{"]]"}, use @code{"]""]"}. To get the array notation @code{x[y[z]]},
-use @code{x[y[z] ]}.
+use @code{x[y[z] ]}. Flex will attempt to detect these sequences in user code, and
+escape them. However, it's best to avoid this complexity where possible, by
+removing such sequences from your code.
@end itemize
@code{m4} is only required at the time you run @code{flex}. The generated
scanner is ordinary C or C++, and does @emph{not} require @code{m4}.
+@node Common Patterns, ,M4 Dependency, Appendices
+@section Common Patterns
+@cindex patterns, common
+
+This appendix provides examples of common regular expressions you might use
+in your scanner.
+
+@menu
+* Numbers::
+* Identifiers::
+* Quoted Constructs::
+* Addresses::
+@end menu
+
+
+@node Numbers, Identifiers, ,Common Patterns
+@subsection Numbers
+
+@table @asis
+
+@item C99 decimal constant
+@code{([[:digit:]]@{-@}[0])[[:digit:]]*}
+
+@item C99 hexadecimal constant
+@code{0[xX][[:xdigit:]]+}
+
+@item C99 octal constant
+@code{0[0123456]*}
+
+@item C99 floating point constant
+@verbatim
+ {dseq} ([[:digit:]]+)
+ {dseq_opt} ([[:digit:]]*)
+ {frac} (({dseq_opt}"."{dseq})|{dseq}".")
+ {exp} ([eE][+-]?{dseq})
+ {exp_opt} ({exp}?)
+ {fsuff} [flFL]
+ {fsuff_opt} ({fsuff}?)
+ {hpref} (0[xX])
+ {hdseq} ([[:xdigit:]]+)
+ {hdseq_opt} ([[:xdigit:]]*)
+ {hfrac} (({hdseq_opt}"."{hdseq})|({hdseq}"."))
+ {bexp} ([pP][+-]?{dseq})
+ {dfc} (({frac}{exp_opt}{fsuff_opt})|({dseq}{exp}{fsuff_opt}))
+ {hfc} (({hpref}{hfrac}{bexp}{fsuff_opt})|({hpref}{hdseq}{bexp}{fsuff_opt}))
+
+ {c99_floating_point_constant} ({dfc}|{hfc})
+@end verbatim
+
+See C99 section 6.4.4.2 for the gory details.
+
+@end table
+
+@node Identifiers, Quoted Constructs, Numbers, Common Patterns
+@subsection Identifiers
+
+@table @asis
+
+@item C99 Identifier
+@verbatim
+ucn ((\\u([[:xdigit:]]{4}))|(\\U([[:xdigit:]]{8})))
+nondigit [_[:alpha:]]
+c99_id ([_[:alpha:]]|{ucn})([_[:alnum:]]|{ucn})*
+@end verbatim
+
+Technically, the above pattern does not encompass all possible C99 identifiers, since C99 allows for
+"implementation-defined" characters. In practice, C compilers follow the above pattern, with the
+addition of the @samp{$} character.
+
+@item UTF-8 Encoded Unicode Code Point
+@verbatim
+[\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF]([\x80-\xBF]{2})|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF]([\x80-\xBF]{2})|[\xF1-\xF3]([\x80-\xBF]{3})|\xF4[\x80-\x8F]([\x80-\xBF]{2})
+@end verbatim
+
+@end table
+
+@node Quoted Constructs, Addresses, Identifiers, Common Patterns
+@subsection Quoted Constructs
+
+@table @asis
+@item C99 String Literal
+@code{L?\"([^\"\\\n]|(\\['\"?\\abfnrtv])|(\\([0123456]@{1,3@}))|(\\x[[:xdigit:]]+)|(\\u([[:xdigit:]]@{4@}))|(\\U([[:xdigit:]]@{8@})))*\"}
+
+@item C99 Comment
+@code{("/*"([^*]|"*"[^/])*"*/")|("/"(\\\n)*"/"[^\n]*)}
+
+Note that in C99, a @samp{//}-style comment may be split across lines, and, contrary to popular belief,
+does not include the trailing @samp{\n} character.
+
+A better way to scan @samp{/* */} comments is by line, rather than matching
+possibly huge comments all at once. This will allow you to scan comments of
+unlimited length, as long as line breaks appear at sane intervals. This is also
+more efficient when used with automatic line number processing. @xref{option-yylineno}.
+
+@verbatim
+<INITIAL>{
+ "/*" BEGIN(COMMENT);
+}
+<COMMENT>{
+ "*/" BEGIN(0);
+ [^*\n]+ ;
+ "*"[^/] ;
+ \n ;
+}
+@end verbatim
+
+@end table
+
+@node Addresses, ,Quoted Constructs, Common Patterns
+@subsection Addresses
+
+@table @asis
+
+@item IPv4 Address
+@code{(([[:digit:]]@{1,3@}".")@{3@}([[:digit:]]@{1,3@}))}
+
+@item IPv6 Address
+@verbatim
+hex4 ([[:xdigit:]]{1,4})
+hexseq ({hex4}(:{hex4}*))
+hexpart ({hexseq}|({hexseq}::({hexseq}?))|::{hexseq})
+IPv6address ({hexpart}(":"{IPv4address})?)
+@end verbatim
+
+See RFC2373 for details.
+
+@item URI
+@code{(([^:/?#]+):)?("//"([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?}
+
+This pattern is nearly useless, since it allows just about any character to
+appear in a URI, including spaces and control characters. See RFC2396 for
+details.
+
+@end table
+
@node Indices, , Appendices, Top
@unnumbered Indices
diff --git a/doc/mdate-sh b/doc/mdate-sh
index b610b47..cd916c0 100755
--- a/doc/mdate-sh
+++ b/doc/mdate-sh
@@ -1,6 +1,10 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
-# Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc.
+
+scriptversion=2005-06-29.22
+
+# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software
+# Foundation, Inc.
# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
#
# This program is free software; you can redistribute it and/or modify
@@ -15,13 +19,38 @@
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+ '')
+ echo "$0: No file. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: mdate-sh [--help] [--version] FILE
+
+Pretty-print the modification time of FILE.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "mdate-sh $scriptversion"
+ exit $?
+ ;;
+esac
+
# Prevent date giving response in another language.
LANG=C
export LANG
@@ -30,7 +59,15 @@ export LC_ALL
LC_TIME=C
export LC_TIME
-save_arg1="$1"
+# GNU ls changes its time format in response to the TIME_STYLE
+# variable. Since we cannot assume `unset' works, revert this
+# variable to its documented default.
+if test "${TIME_STYLE+set}" = set; then
+ TIME_STYLE=posix-long-iso
+ export TIME_STYLE
+fi
+
+save_arg1=$1
# Find out how to get the extended ls output of a file or directory.
if ls -L /dev/null 1>/dev/null 2>&1; then
@@ -52,7 +89,7 @@ fi
# words should be skipped to get the date.
# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
-set - x`$ls_command /`
+set x`ls -l -d /`
# Find which argument is the month.
month=
@@ -79,13 +116,32 @@ do
done
# Get the extended ls output of the file or directory.
-set - x`eval "$ls_command \"\$save_arg1\""`
+set dummy x`eval "$ls_command \"\$save_arg1\""`
# Remove all preceding arguments
eval $command
-# Get the month. Next argument is day, followed by the year or time.
-case $1 in
+# Because of the dummy argument above, month is in $2.
+#
+# On a POSIX system, we should have
+#
+# $# = 5
+# $1 = file size
+# $2 = month
+# $3 = day
+# $4 = year or time
+# $5 = filename
+#
+# On Darwin 7.7.0 and 7.6.0, we have
+#
+# $# = 4
+# $1 = day
+# $2 = month
+# $3 = year or time
+# $4 = filename
+
+# Get the month.
+case $2 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
@@ -100,7 +156,10 @@ case $1 in
Dec) month=December; nummonth=12;;
esac
-day=$2
+case $3 in
+ ???*) day=$1;;
+ *) day=$3; shift;;
+esac
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.
@@ -131,3 +190,12 @@ esac
# The result.
echo $day $month $year
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 7711f31..d69698f 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
-@set UPDATED 20 February 2006
-@set UPDATED-MONTH February 2006
-@set EDITION 2.5.33
-@set VERSION 2.5.33
+@set UPDATED 10 September 2007
+@set UPDATED-MONTH September 2007
+@set EDITION 2.5.34
+@set VERSION 2.5.34
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index 807ce6d..ff2c406 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -3,10 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2003-03-22.08}
+\def\texinfoversion{2005-07-05.19}
%
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
+% Foundation, Inc.
%
% This texinfo.tex file is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -20,26 +21,21 @@
%
% You should have received a copy of the GNU General Public License
% along with this texinfo.tex file; see the file COPYING. If not, write
-% to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
+% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+% Boston, MA 02110-1301, USA.
%
-% In other words, you are welcome to use, share and improve this program.
-% You are forbidden to forbid anyone else to use, share and improve
-% what you give them. Help stamp out software-hoarding!
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction. (This has been our intent since Texinfo was invented.)
%
% Please try the latest version of texinfo.tex before submitting bug
% reports; you can get the latest version from:
-% ftp://ftp.gnu.org/gnu/texinfo/texinfo.tex
-% (and all GNU mirrors, see http://www.gnu.org/order/ftp.html)
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
% ftp://tug.org/tex/texinfo.tex
-% (and all CTAN mirrors, see http://www.ctan.org),
-% and /home/gd/gnu/doc/texinfo.tex on the GNU machines.
-%
-% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
-%
-% The texinfo.tex in any given Texinfo distribution could well be out
+% (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
% of date, so if that's what you're using, please check.
-%
+%
% Send bug reports to bug-texinfo@gnu.org. Please include including a
% complete document in each bug report with which we can reproduce the
% problem. Patches are, of course, greatly appreciated.
@@ -55,10 +51,13 @@
% The extra TeX runs get the cross-reference information correct.
% Sometimes one run after texindex suffices, and sometimes you need more
% than two; texi2dvi does it as many times as necessary.
-%
+%
% It is possible to adapt texinfo.tex for other languages, to some
% extent. You can get the existing language-specific files from the
% full Texinfo distribution.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+
\message{Loading texinfo [version \texinfoversion]:}
@@ -85,11 +84,16 @@
\let\ptexend=\end
\let\ptexequiv=\equiv
\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
\let\ptexgtr=>
\let\ptexhat=^
\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexinsert=\insert
\let\ptexlbrace=\{
\let\ptexless=<
+\let\ptexnewwrite\newwrite
+\let\ptexnoindent=\noindent
\let\ptexplus=+
\let\ptexrbrace=\}
\let\ptexslash=\/
@@ -100,6 +104,15 @@
% starts a new line in the output.
\newlinechar = `^^J
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+ \let\linenumber = \empty % Pre-3.0.
+\else
+ \def\linenumber{l.\the\inputlineno:\space}
+\fi
+
% Set up fixed words for English if not already set.
\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
@@ -138,43 +151,89 @@
\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
-\ifx\putwordDeftypevar\undefined\gdef\putwordDeftypevar{Variable}\fi
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-\ifx\putwordDeftypefun\undefined\gdef\putwordDeftypefun{Function}\fi
% In some macros, we cannot use the `\? notation---the left quote is
% in some cases the escape char.
+\chardef\backChar = `\\
\chardef\colonChar = `\:
\chardef\commaChar = `\,
\chardef\dotChar = `\.
-\chardef\equalChar = `\=
\chardef\exclamChar= `\!
+\chardef\plusChar = `\+
\chardef\questChar = `\?
\chardef\semiChar = `\;
-\chardef\spaceChar = `\ %
\chardef\underChar = `\_
+\chardef\spaceChar = `\ %
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode\spaceChar=\spacecat}
+
+{% for help with debugging.
+ % example usage: \expandafter\show\activebackslash
+ \catcode`\! = 0 \catcode`\\ = \active
+ !global!def!activebackslash{\}
+}
+
% Ignore a token.
%
\def\gobble#1{}
-% True if #1 is the empty string, i.e., called like `\ifempty{}'.
-%
-\def\ifempty#1{\ifemptyx #1\emptymarkA\emptymarkB}%
-\def\ifemptyx#1#2\emptymarkB{\ifx #1\emptymarkA}%
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
% Hyphenation fixes.
-\hyphenation{ap-pen-dix}
-\hyphenation{eshell}
-\hyphenation{mini-buf-fer mini-buf-fers}
-\hyphenation{time-stamp}
-\hyphenation{white-space}
+\hyphenation{
+ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+ ap-pen-dix bit-map bit-maps
+ data-base data-bases eshell fall-ing half-way long-est man-u-script
+ man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+ par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+ spell-ing spell-ings
+ stand-alone strong-est time-stamp time-stamps which-ever white-space
+ wide-spread wrap-around
+}
% Margin to add to right of even pages, to left of odd pages.
\newdimen\bindingoffset
\newdimen\normaloffset
\newdimen\pagewidth \newdimen\pageheight
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt}
+
+% @| inserts a changebar to the left of the current line. It should
+% surround any changed text. This approach does *not* work if the
+% change spans more than two lines of output. To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change).
+%
+\def\|{%
+ % \vadjust can only be used in horizontal mode.
+ \leavevmode
+ %
+ % Append this vertical mode material after the current line in the output.
+ \vadjust{%
+ % We want to insert a rule with the height and depth of the current
+ % leading; that is exactly what \strutbox is supposed to record.
+ \vskip-\baselineskip
+ %
+ % \vadjust-items are inserted at the left edge of the type. So
+ % the \llap here moves out into the left-hand margin.
+ \llap{%
+ %
+ % For a thicker or thinner bar, change the `1pt'.
+ \vrule height\baselineskip width1pt
+ %
+ % This is the space between the bar and the text.
+ \hskip 12pt
+ }%
+ }%
+}
+
% Sometimes it is convenient to have everything in the transcript file
% and nothing on the terminal. We don't just call \tracingall here,
% since that produces some useless output on the terminal. We also make
@@ -199,12 +258,12 @@
\tracingassigns1
\fi
\tracingcommands3 % 3 gives us more in etex
- \errorcontextlines\maxdimen
+ \errorcontextlines16
}%
% add check for \lastpenalty to plain's definitions. If the last thing
% we did was a \nobreak, we don't want to insert more space.
-%
+%
\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
\removelastskip\penalty-50\smallskip\fi\fi}
\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
@@ -251,13 +310,10 @@
% take effect in \write's, yet the group defined by the \vbox ends
% before the \shipout runs.
%
- \escapechar = `\\ % use backslash in output files.
\indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
- \ifpdfmakepagedest \pdfmkdest{\the\pageno} \fi
+ \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
%
\ifcropmarks \vbox to \outervsize\bgroup
\hsize = \outerhsize
@@ -305,7 +361,7 @@
\egroup % \vbox from first cropmarks clause
\fi
}% end of \shipout\vbox
- }% end of group with \normalturnoffactive
+ }% end of group with \indexdummies
\advancepageno
\ifnum\outputpenalty>-20000 \else\dosupereject\fi
}
@@ -338,132 +394,162 @@
% the input line (except we remove a trailing comment). #1 should be a
% macro which expects an ordinary undelimited TeX argument.
%
-\def\parsearg#1{%
- \let\next = #1%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+ \def\next{#2}%
\begingroup
\obeylines
- \futurelet\temp\parseargx
-}
-
-% If the next token is an obeyed space (from an @example environment or
-% the like), remove it and recurse. Otherwise, we're done.
-\def\parseargx{%
- % \obeyedspace is defined far below, after the definition of \sepspaces.
- \ifx\obeyedspace\temp
- \expandafter\parseargdiscardspace
- \else
- \expandafter\parseargline
- \fi
+ \spaceisspace
+ #1%
+ \parseargline\empty% Insert the \empty token, see \finishparsearg below.
}
-% Remove a single space (as the delimiter token to the macro call).
-{\obeyspaces %
- \gdef\parseargdiscardspace {\futurelet\temp\parseargx}}
-
{\obeylines %
\gdef\parseargline#1^^M{%
\endgroup % End of the group started in \parsearg.
- %
- % First remove any @c comment, then any @comment.
- % Result of each macro is put in \toks0.
- \argremovec #1\c\relax %
- \expandafter\argremovecomment \the\toks0 \comment\relax %
- %
- % Call the caller's macro, saved as \next in \parsearg.
- \expandafter\next\expandafter{\the\toks0}%
+ \argremovecomment #1\comment\ArgTerm%
}%
}
-% Since all \c{,omment} does is throw away the argument, we can let TeX
-% do that for us. The \relax here is matched by the \relax in the call
-% in \parseargline; it could be more or less anything, its purpose is
-% just to delimit the argument to the \c.
-\def\argremovec#1\c#2\relax{\toks0 = {#1}}
-\def\argremovecomment#1\comment#2\relax{\toks0 = {#1}}
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
-% \argremovec{,omment} might leave us with trailing spaces, though; e.g.,
+% Each occurence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
% @end itemize @c foo
-% will have two active spaces as part of the argument with the
-% `itemize'. Here we remove all active spaces from #1, and assign the
-% result to \toks0.
-%
-% This loses if there are any *other* active characters besides spaces
-% in the argument -- _ ^ +, for example -- since they get expanded.
-% Fortunately, Texinfo does not define any such commands. (If it ever
-% does, the catcode of the characters in questionwill have to be changed
-% here.) But this means we cannot call \removeactivespaces as part of
-% \argremovec{,omment}, since @c uses \parsearg, and thus the argument
-% that \parsearg gets might well have any character at all in it.
-%
-\def\removeactivespaces#1{%
- \begingroup
- \ignoreactivespaces
- \edef\temp{#1}%
- \global\toks0 = \expandafter{\temp}%
- \endgroup
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+ \def\temp{#3}%
+ \ifx\temp\empty
+ % We cannot use \next here, as it holds the macro to run;
+ % thus we reuse \temp.
+ \let\temp\finishparsearg
+ \else
+ \let\temp\argcheckspaces
+ \fi
+ % Put the space token in:
+ \temp#1 #3\ArgTerm
}
-% Change the active space to expand to nothing.
+% If a _delimited_ argument is enclosed in braces, they get stripped; so
+% to get _exactly_ the rest of the line, we had to prevent such situation.
+% We prepended an \empty token at the very beginning and we expand it now,
+% just before passing the control to \next.
+% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
+% either the null string, or it ends with \^^M---thus there is no danger
+% that a pair of braces would be stripped.
%
-\begingroup
+% But first, we have to remove the trailing space token.
+%
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
+
+% \parseargdef\foo{...}
+% is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick. --kasal, 16nov03
+
+\def\parseargdef#1{%
+ \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+ \def#2{\parsearg#1}%
+ \def#1##1%
+}
+
+% Several utility definitions with active space:
+{
\obeyspaces
- \gdef\ignoreactivespaces{\obeyspaces\let =\empty}
-\endgroup
+ \gdef\obeyedspace{ }
+
+ % Make each space character in the input produce a normal interword
+ % space in the output. Don't allow a line break at this space, as this
+ % is used only in environments like @example, where each line of input
+ % should produce a line of output anyway.
+ %
+ \gdef\sepspaces{\obeyspaces\let =\tie}
+
+ % If an index command is used in an @example environment, any spaces
+ % therein should become regular spaces in the raw index file, not the
+ % expansion of \tie (\leavevmode \penalty \@M \ ).
+ \gdef\unsepspaces{\let =\space}
+}
\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
-%% These are used to keep @begin/@end levels from running away
-%% Call \inENV within environments (after a \begingroup)
-\newif\ifENV \ENVfalse \def\inENV{\ifENV\relax\else\ENVtrue\fi}
-\def\ENVcheck{%
-\ifENV\errmessage{Still within an environment; press RETURN to continue}
-\endgroup\fi} % This is not perfect, but it should reduce lossage
+% Define the framework for environments in texinfo.tex. It's used like this:
+%
+% \envdef\foo{...}
+% \def\Efoo{...}
+%
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo. \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches. The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+%
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as enviroments; they don't open a group. (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
-% @begin foo is the same as @foo, for now.
-\newhelp\EMsimple{Press RETURN to continue.}
-\outer\def\begin{\parsearg\beginxxx}
+% At runtime, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
-\def\beginxxx #1{%
-\expandafter\ifx\csname #1\endcsname\relax
-{\errhelp=\EMsimple \errmessage{Undefined command @begin #1}}\else
-\csname #1\endcsname\fi}
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
-% @end foo executes the definition of \Efoo.
-%
-\def\end{\parsearg\endxxx}
-\def\endxxx #1{%
- \removeactivespaces{#1}%
- \edef\endthing{\the\toks0}%
- %
- \expandafter\ifx\csname E\endthing\endcsname\relax
- \expandafter\ifx\csname \endthing\endcsname\relax
- % There's no \foo, i.e., no ``environment'' foo.
- \errhelp = \EMsimple
- \errmessage{Undefined command `@end \endthing'}%
- \else
- \unmatchedenderror\endthing
- \fi
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+ \def\temp{#1}%
+ \ifx\thisenv\temp
\else
- % Everything's ok; the right environment has been started.
- \csname E\endthing\endcsname
+ \badenverr
\fi
}
-% There is an environment #1, but it hasn't been started. Give an error.
-%
-\def\unmatchedenderror#1{%
+% Evironment mismatch, #1 expected:
+\def\badenverr{%
\errhelp = \EMsimple
- \errmessage{This `@end #1' doesn't have a matching `@#1'}%
+ \errmessage{This command can appear only \inenvironment\temp,
+ not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+ \ifx#1\empty
+ out of any environment%
+ \else
+ in environment \expandafter\string#1%
+ \fi
}
-% Define the control sequence \E#1 to give an unmatched @end error.
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
%
-\def\defineunmatchedend#1{%
- \expandafter\def\csname E#1\endcsname{\unmatchedenderror{#1}}%
+\parseargdef\end{%
+ \if 1\csname iscond.#1\endcsname
+ \else
+ % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03
+ \expandafter\checkenv\csname#1\endcsname
+ \csname E#1\endcsname
+ \endgroup
+ \fi
}
+\newhelp\EMsimple{Press RETURN to continue.}
+
%% Simple single-character @ commands
@@ -485,7 +571,7 @@
\let\}=\myrbrace
\begingroup
% Definitions to produce \{ and \} commands for indices,
- % and @{ and @} for the aux file.
+ % and @{ and @} for the aux/toc files.
\catcode`\{ = \other \catcode`\} = \other
\catcode`\[ = 1 \catcode`\] = 2
\catcode`\! = 0 \catcode`\\ = \other
@@ -495,6 +581,9 @@
!gdef!rbraceatcmd[@}]%
!endgroup
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
\let\, = \c
@@ -504,10 +593,12 @@
\let\ubaraccent = \b
\let\udotaccent = \d
-% Other special characters: @questiondown @exclamdown
+% Other special characters: @questiondown @exclamdown @ordf @ordm
% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
\def\questiondown{?`}
\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
% Dotless i and dotless j, used for accents.
\def\imacro{i}
@@ -520,6 +611,25 @@
\fi\fi
}
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence. (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo. Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+ L\kern-.36em
+ {\setbox0=\hbox{T}%
+ \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}%
+ \kern-.15em
+ \TeX
+}
+
% Be sure we're in horizontal mode when doing a tie, since we make space
% equivalent to this in @example-like environments. Otherwise, a space
% at the beginning of a line will start with \penalty -- and
@@ -542,13 +652,28 @@
\let\/=\allowbreak
% @. is an end-of-sentence period.
-\def\.{.\spacefactor=3000 }
+\def\.{.\spacefactor=\endofsentencespacefactor\space}
% @! is an end-of-sentence bang.
-\def\!{!\spacefactor=3000 }
+\def\!{!\spacefactor=\endofsentencespacefactor\space}
% @? is an end-of-sentence query.
-\def\?{?\spacefactor=3000 }
+\def\?{?\spacefactor=\endofsentencespacefactor\space}
+
+% @frenchspacing on|off says whether to put extra space after punctuation.
+%
+\def\onword{on}
+\def\offword{off}
+%
+\parseargdef\frenchspacing{%
+ \def\temp{#1}%
+ \ifx\temp\onword \plainfrenchspacing
+ \else\ifx\temp\offword \plainnonfrenchspacing
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @frenchspacing option `\temp', must be on/off}%
+ \fi\fi
+}
% @w prevents a word break. Without the \leavevmode, @w at the
% beginning of a paragraph, when TeX is still in vertical mode, would
@@ -569,63 +694,18 @@
% explicit \vfill so that the extra space is at the bottom. The
% threshold for doing this is if the group is more than \vfilllimit
% percent of a page (\vfilllimit can be changed inside of @tex).
-%
+%
\newbox\groupbox
\def\vfilllimit{0.7}
%
-\def\group{\begingroup
- \ifnum\catcode13=\active \else
+\envdef\group{%
+ \ifnum\catcode`\^^M=\active \else
\errhelp = \groupinvalidhelp
\errmessage{@group invalid in context where filling is enabled}%
\fi
- %
- % The \vtop we start below produces a box with normal height and large
- % depth; thus, TeX puts \baselineskip glue before it, and (when the
- % next line of text is done) \lineskip glue after it. (See p.82 of
- % the TeXbook.) Thus, space below is not quite equal to space
- % above. But it's pretty close.
- \def\Egroup{%
- \egroup % End the \vtop.
- % \dimen0 is the vertical size of the group's box.
- \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
- % \dimen2 is how much space is left on the page (more or less).
- \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
- % if the group doesn't fit on the current page, and it's a big big
- % group, force a page break.
- \ifdim \dimen0 > \dimen2
- \ifdim \pagetotal < \vfilllimit\pageheight
- \page
- \fi
- \fi
- \copy\groupbox
- \endgroup % End the \group.
- }%
+ \startsavinginserts
%
\setbox\groupbox = \vtop\bgroup
- % We have to put a strut on the last line in case the @group is in
- % the midst of an example, rather than completely enclosing it.
- % Otherwise, the interline space between the last line of the group
- % and the first line afterwards is too small. But we can't put the
- % strut in \Egroup, since there it would be on a line by itself.
- % Hence this just inserts a strut at the beginning of each line.
- \everypar = {\strut}%
- %
- % Since we have a strut on every line, we don't need any of TeX's
- % normal interline spacing.
- \offinterlineskip
- %
- % OK, but now we have to do something about blank
- % lines in the input in @example-like environments, which normally
- % just turn into \lisppar, which will insert no space now that we've
- % turned off the interline space. Simplest is to make them be an
- % empty paragraph.
- \ifx\par\lisppar
- \edef\par{\leavevmode \par}%
- %
- % Reset ^^M's definition to new definition of \par.
- \obeylines
- \fi
- %
% Do @comment since we are called inside an environment such as
% @example, where each end-of-line in the input causes an
% end-of-line in the output. We don't want the end-of-line after
@@ -635,6 +715,32 @@
\comment
}
%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it. Thus, space below is not quite equal to space
+% above. But it's pretty close.
+\def\Egroup{%
+ % To get correct interline space between the last line of the group
+ % and the first line afterwards, we have to propagate \prevdepth.
+ \endgraf % Not \par, as it may have been set to \lisppar.
+ \global\dimen1 = \prevdepth
+ \egroup % End the \vtop.
+ % \dimen0 is the vertical size of the group's box.
+ \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
+ % \dimen2 is how much space is left on the page (more or less).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \box\groupbox
+ \prevdepth = \dimen1
+ \checkinserts
+}
+%
% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
% message, so this ends up printing `@group can only ...'.
%
@@ -647,10 +753,8 @@ where each line of input produces a line of output.}
\newdimen\mil \mil=0.001in
-\def\need{\parsearg\needx}
-
% Old definition--didn't work.
-%\def\needx #1{\par %
+%\parseargdef\need{\par %
%% This method tries to make TeX break the page naturally
%% if the depth of the box does not fit.
%{\baselineskip=0pt%
@@ -658,7 +762,7 @@ where each line of input produces a line of output.}
%\prevdepth=-1000pt
%}}
-\def\needx#1{%
+\parseargdef\need{%
% Ensure vertical mode, so we don't make a big box in the middle of a
% paragraph.
\par
@@ -697,35 +801,10 @@ where each line of input produces a line of output.}
\fi
}
-% @br forces paragraph break
+% @br forces paragraph break (and is undocumented).
\let\br = \par
-% @dots{} output an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
-%
-\def\dots{%
- \leavevmode
- \hbox to 1.5em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
-}
-
-% @enddots{} is an end-of-sentence ellipsis.
-%
-\def\enddots{%
- \leavevmode
- \hbox to 2em{%
- \hskip 0pt plus 0.25fil minus 0.25fil
- .\hss.\hss.\hss.%
- \hskip 0pt plus 0.5fil minus 0.5fil
- }%
- \spacefactor=3000
-}
-
% @page forces the start of a new page.
%
\def\page{\par\vfill\supereject}
@@ -738,13 +817,11 @@ where each line of input produces a line of output.}
\newskip\exdentamount
% This defn is used inside fill environments such as @defun.
-\def\exdent{\parsearg\exdentyyy}
-\def\exdentyyy #1{{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}}
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
% This defn is used inside nofill environments such as @example.
-\def\nofillexdent{\parsearg\nofillexdentyyy}
-\def\nofillexdentyyy #1{{\advance \leftskip by -\exdentamount
-\leftline{\hskip\leftskip{\rm#1}}}}
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+ \leftline{\hskip\leftskip{\rm#1}}}}
% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
% paragraph. For more general purposes, use the \margin insertion
@@ -775,10 +852,10 @@ where each line of input produces a line of output.}
% @inmargin{TEXT [, RIGHT-TEXT]}
% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
% else use TEXT for both).
-%
+%
\def\inmargin#1{\parseinmargin #1,,\finish}
\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
- \setbox0 = \hbox{\ignorespaces #2}%
+ \setbox0 = \hbox{\ignorespaces #2}%
\ifdim\wd0 > 0pt
\def\lefttext{#1}% have both texts
\def\righttext{#2}%
@@ -796,8 +873,19 @@ where each line of input produces a line of output.}
}
% @include file insert text of that file as input.
-% Allow normal characters that we make active in the argument (a file name).
-\def\include{\begingroup
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+ \pushthisfilestack
+ \def\thisfile{#1}%
+ {%
+ \makevalueexpandable
+ \def\temp{\input #1 }%
+ \expandafter
+ }\temp
+ \popthisfilestack
+}
+\def\filenamecatcodes{%
\catcode`\\=\other
\catcode`~=\other
\catcode`^=\other
@@ -806,33 +894,50 @@ where each line of input produces a line of output.}
\catcode`<=\other
\catcode`>=\other
\catcode`+=\other
- \parsearg\includezzz}
-% Restore active chars for included file.
-\def\includezzz#1{\endgroup\begingroup
- % Read the included file in a group so nested @include's work.
- \def\thisfile{#1}%
- \let\value=\expandablevalue
- \input\thisfile
-\endgroup}
+ \catcode`-=\other
+}
+
+\def\pushthisfilestack{%
+ \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+ \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+ \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
+
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+ the stack of filenames is empty.}}
\def\thisfile{}
% @center line
% outputs that line, centered.
%
-\def\center{\parsearg\docenter}
-\def\docenter#1{{%
- \ifhmode \hfil\break \fi
- \advance\hsize by -\leftskip
- \advance\hsize by -\rightskip
- \line{\hfil \ignorespaces#1\unskip \hfil}%
- \ifhmode \break \fi
-}}
+\parseargdef\center{%
+ \ifhmode
+ \let\next\centerH
+ \else
+ \let\next\centerV
+ \fi
+ \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+ {%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+ }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
% @sp n outputs n lines of vertical space
-\def\sp{\parsearg\spxxx}
-\def\spxxx #1{\vskip #1\baselineskip}
+\parseargdef\sp{\vskip #1\baselineskip}
% @comment ...line which is ignored...
% @c is the same as @comment
@@ -847,13 +952,13 @@ where each line of input produces a line of output.}
% @paragraphindent NCHARS
% We'll use ems for NCHARS, close enough.
-% We cannot implement @paragraphindent asis, though.
-%
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
\def\asisword{asis} % no translation, these are keywords
\def\noneword{none}
%
-\def\paragraphindent{\parsearg\doparagraphindent}
-\def\doparagraphindent#1{%
+\parseargdef\paragraphindent{%
\def\temp{#1}%
\ifx\temp\asisword
\else
@@ -870,8 +975,7 @@ where each line of input produces a line of output.}
% We'll use ems for NCHARS like @paragraphindent.
% It seems @exampleindent asis isn't necessary, but
% I preserve it to make it similar to @paragraphindent.
-\def\exampleindent{\parsearg\doexampleindent}
-\def\doexampleindent#1{%
+\parseargdef\exampleindent{%
\def\temp{#1}%
\ifx\temp\asisword
\else
@@ -883,48 +987,97 @@ where each line of input produces a line of output.}
\fi
}
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading. If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\noneword
+ \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+ \else\ifx\temp\insertword
+ \let\suppressfirstparagraphindent = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @firstparagraphindent option `\temp'}%
+ \fi\fi
+}
+
+% Here is how we actually suppress indentation. Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+ \gdef\indent{%
+ \restorefirstparagraphindent
+ \indent
+ }%
+ \gdef\noindent{%
+ \restorefirstparagraphindent
+ \noindent
+ }%
+ \global\everypar = {%
+ \kern -\parindent
+ \restorefirstparagraphindent
+ }%
+}
+
+\gdef\restorefirstparagraphindent{%
+ \global \let \indent = \ptexindent
+ \global \let \noindent = \ptexnoindent
+ \global \everypar = {}%
+}
+
+
% @asis just yields its argument. Used with @table, for example.
%
\def\asis#1{#1}
% @math outputs its argument in math mode.
-% We don't use $'s directly in the definition of \math because we need
-% to set catcodes according to plain TeX first, to allow for subscripts,
-% superscripts, special math chars, etc.
-%
-\let\implicitmath = $%$ font-lock fix
%
% One complication: _ usually means subscripts, but it could also mean
% an actual _ character, as in @math{@var{some_variable} + 1}. So make
-% _ within @math be active (mathcode "8000), and distinguish by seeing
-% if the current family is \slfam, which is what @var uses.
-%
-{\catcode\underChar = \active
-\gdef\mathunderscore{%
- \catcode\underChar=\active
- \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
-}}
-%
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+ \catcode\underChar = \active
+ \gdef\mathunderscore{%
+ \catcode\underChar=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+ }
+}
% Another complication: we want \\ (and @\) to output a \ character.
% FYI, plain.tex uses \\ as a temporary control sequence (why?), but
% this is not advertised and we don't care. Texinfo does not
% otherwise define @\.
-%
+%
% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
%
\def\math{%
\tex
- \mathcode`\_="8000 \mathunderscore
+ \mathunderscore
\let\\ = \mathbackslash
\mathactive
- \implicitmath\finishmath}
-\def\finishmath#1{#1\implicitmath\Etex}
+ $\finishmath
+}
+\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
% Some active characters (such as <) are spaced differently in math.
-% We have to reset their definitions in case the @math was an
-% argument to a command which set the catcodes (such as @item or @section).
-%
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
{
\catcode`^ = \active
\catcode`< = \active
@@ -939,8 +1092,33 @@ where each line of input produces a line of output.}
}
% @bullet and @minus need the same treatment as @math, just above.
-\def\bullet{\implicitmath\ptexbullet\implicitmath}
-\def\minus{\implicitmath-\implicitmath}
+\def\bullet{$\ptexbullet$}
+\def\minus{$-$}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
+%
+\def\dots{%
+ \leavevmode
+ \hbox to 1.5em{%
+ \hskip 0pt plus 0.25fil
+ .\hfil.\hfil.%
+ \hskip 0pt plus 0.5fil
+ }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+ \dots
+ \spacefactor=\endofsentencespacefactor
+}
+
+% @comma{} is so commas can be inserted into text without messing up
+% Texinfo's parsing.
+%
+\let\comma = ,
% @refill is a no-op.
\let\refill=\relax
@@ -956,20 +1134,20 @@ where each line of input produces a line of output.}
% So open here the files we need to have open while reading the input.
% This makes it possible to make a .fmt file for texinfo.
\def\setfilename{%
+ \fixbackslash % Turn off hack to swallow `\input texinfo'.
\iflinks
- \readauxfile
+ \tryauxfile
+ % Open the new aux file. TeX will close it automatically at exit.
+ \immediate\openout\auxfile=\jobname.aux
\fi % \openindices needs to do some work in any case.
\openindices
- \fixbackslash % Turn off hack to swallow `\input texinfo'.
- \global\let\setfilename=\comment % Ignore extra @setfilename cmds.
+ \let\setfilename=\comment % Ignore extra @setfilename cmds.
%
% If texinfo.cnf is present on the system, read it.
% Useful for site-wide @afourpaper, etc.
- % Just to be on the safe side, close the input stream before the \input.
\openin 1 texinfo.cnf
- \ifeof1 \let\temp=\relax \else \def\temp{\input texinfo.cnf }\fi
- \closein1
- \temp
+ \ifeof 1 \else \input texinfo.cnf \fi
+ \closein 1
%
\comment % Ignore the actual filename.
}
@@ -1005,17 +1183,78 @@ where each line of input produces a line of output.}
\newif\ifpdf
\newif\ifpdfmakepagedest
+% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+% can be set). So we test for \relax and 0 as well as \undefined,
+% borrowed from ifpdf.sty.
\ifx\pdfoutput\undefined
- \pdffalse
- \let\pdfmkdest = \gobble
- \let\pdfurl = \gobble
- \let\endlink = \relax
- \let\linkcolor = \relax
- \let\pdfmakeoutlines = \relax
\else
- \pdftrue
- \pdfoutput = 1
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \pdftrue
+ \fi
+ \fi
+\fi
+
+% PDF uses PostScript string constants for the names of xref targets, to
+% for display in the outlines, and in other places. Thus, we have to
+% double any backslashes. Otherwise, a name like "\node" will be
+% interpreted as a newline (\n), followed by o, d, e. Not good.
+% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
+% (and related messages, the final outcome is that it is up to the TeX
+% user to double the backslashes and otherwise make the string valid, so
+% that's we do).
+
+% double active backslashes.
+%
+{\catcode`\@=0 \catcode`\\=\active
+ @gdef@activebackslash{@catcode`@\=@active @otherbackslash}
+ @gdef@activebackslashdouble{%
+ @catcode@backChar=@active
+ @let\=@doublebackslash}
+}
+
+% To handle parens, we must adopt a different approach, since parens are
+% not active characters. hyperref.dtx (which has the same problem as
+% us) handles it with this amazing macro to replace tokens. I've
+% tinkered with it a little for texinfo, but it's definitely from there.
+%
+% #1 is the tokens to replace.
+% #2 is the replacement.
+% #3 is the control sequence with the string.
+%
+\def\HyPsdSubst#1#2#3{%
+ \def\HyPsdReplace##1#1##2\END{%
+ ##1%
+ \ifx\\##2\\%
+ \else
+ #2%
+ \HyReturnAfterFi{%
+ \HyPsdReplace##2\END
+ }%
+ \fi
+ }%
+ \xdef#3{\expandafter\HyPsdReplace#3#1\END}%
+}
+\long\def\HyReturnAfterFi#1\fi{\fi#1}
+
+% #1 is a control sequence in which to do the replacements.
+\def\backslashparens#1{%
+ \xdef#1{#1}% redefine it as its expansion; the definition is simply
+ % \lastnode when called from \setref -> \pdfmkdest.
+ \HyPsdSubst{(}{\backslashlparen}{#1}%
+ \HyPsdSubst{)}{\backslashrparen}{#1}%
+}
+
+{\catcode\exclamChar = 0 \catcode\backChar = \other
+ !gdef!backslashlparen{\(}%
+ !gdef!backslashrparen{\)}%
+}
+
+\ifpdf
\input pdfcolor
+ \pdfcatalog{/PageMode /UseOutlines}%
\def\dopdfimage#1#2#3{%
\def\imagewidth{#2}%
\def\imageheight{#3}%
@@ -1036,8 +1275,19 @@ where each line of input produces a line of output.}
\ifnum\pdftexversion < 14 \else
\pdfrefximage \pdflastximage
\fi}
- \def\pdfmkdest#1{{\normalturnoffactive \pdfdest name{#1} xyz}}
- \def\pdfmkpgn#1{#1}
+ \def\pdfmkdest#1{{%
+ % We have to set dummies so commands such as @code, and characters
+ % such as \, aren't expanded when present in a section title.
+ \atdummies
+ \activebackslashdouble
+ \def\pdfdestname{#1}%
+ \backslashparens\pdfdestname
+ \pdfdest name{\pdfdestname} xyz%
+ }}%
+ %
+ % used to mark target names; must be expandable.
+ \def\pdfmkpgn#1{#1}%
+ %
\let\linkcolor = \Blue % was Cyan, but that seems light?
\def\endlink{\Black\pdfendlink}
% Adding outlines to PDF; macros for calculating structure of outlines
@@ -1045,79 +1295,106 @@ where each line of input produces a line of output.}
\def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
\else \csname#1\endcsname \fi}
\def\advancenumber#1{\tempnum=\expnumber{#1}\relax
- \advance\tempnum by1
+ \advance\tempnum by 1
\expandafter\xdef\csname#1\endcsname{\the\tempnum}}
- \def\pdfmakeoutlines{{%
- \openin 1 \jobname.toc
- \ifeof 1\else\begingroup
- \closein 1
- % Thanh's hack / proper braces in bookmarks
+ %
+ % #1 is the section text, which is what will be displayed in the
+ % outline by the pdf viewer. #2 is the pdf expression for the number
+ % of subentries (or empty, for subsubsections). #3 is the node text,
+ % which might be empty if this toc entry had no corresponding node.
+ % #4 is the page number
+ %
+ \def\dopdfoutline#1#2#3#4{%
+ % Generate a link to the node text if that exists; else, use the
+ % page number. We could generate a destination for the section
+ % text in the case where a section has no node, but it doesn't
+ % seem worth the trouble, since most documents are normally structured.
+ \def\pdfoutlinedest{#3}%
+ \ifx\pdfoutlinedest\empty
+ \def\pdfoutlinedest{#4}%
+ \else
+ % Doubled backslashes in the name.
+ {\activebackslashdouble \xdef\pdfoutlinedest{#3}%
+ \backslashparens\pdfoutlinedest}%
+ \fi
+ %
+ % Also double the backslashes in the display string.
+ {\activebackslashdouble \xdef\pdfoutlinetext{#1}%
+ \backslashparens\pdfoutlinetext}%
+ %
+ \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+ }
+ %
+ \def\pdfmakeoutlines{%
+ \begingroup
+ % Thanh's hack / proper braces in bookmarks
\edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace
\edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace
%
- \def\chapentry ##1##2##3{}
- \def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \let\appendixentry = \chapentry
- \let\unnumbchapentry = \chapentry
- \let\unnumbsecentry = \secentry
- \let\unnumbsubsecentry = \subsecentry
- \let\unnumbsubsubsecentry = \subsubsecentry
- \input \jobname.toc
- \def\chapentry ##1##2##3{%
- \pdfoutline goto name{\pdfmkpgn{##3}}count-\expnumber{chap##2}{##1}}
- \def\secentry ##1##2##3##4{%
- \pdfoutline goto name{\pdfmkpgn{##4}}count-\expnumber{sec##2.##3}{##1}}
- \def\subsecentry ##1##2##3##4##5{%
- \pdfoutline goto name{\pdfmkpgn{##5}}count-\expnumber{subsec##2.##3.##4}{##1}}
- \def\subsubsecentry ##1##2##3##4##5##6{%
- \pdfoutline goto name{\pdfmkpgn{##6}}{##1}}
- \let\appendixentry = \chapentry
- \let\unnumbchapentry = \chapentry
- \let\unnumbsecentry = \secentry
- \let\unnumbsubsecentry = \subsecentry
- \let\unnumbsubsubsecentry = \subsubsecentry
+ % Read toc silently, to get counts of subentries for \pdfoutline.
+ \def\numchapentry##1##2##3##4{%
+ \def\thischapnum{##2}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsecentry##1##2##3##4{%
+ \advancenumber{chap\thischapnum}%
+ \def\thissecnum{##2}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsubsecentry##1##2##3##4{%
+ \advancenumber{sec\thissecnum}%
+ \def\thissubsecnum{##2}%
+ }%
+ \def\numsubsubsecentry##1##2##3##4{%
+ \advancenumber{subsec\thissubsecnum}%
+ }%
+ \def\thischapnum{0}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ %
+ % use \def rather than \let here because we redefine \chapentry et
+ % al. a second time, below.
+ \def\appentry{\numchapentry}%
+ \def\appsecentry{\numsecentry}%
+ \def\appsubsecentry{\numsubsecentry}%
+ \def\appsubsubsecentry{\numsubsubsecentry}%
+ \def\unnchapentry{\numchapentry}%
+ \def\unnsecentry{\numsecentry}%
+ \def\unnsubsecentry{\numsubsecentry}%
+ \def\unnsubsubsecentry{\numsubsubsecentry}%
+ \readdatafile{toc}%
%
- % Make special characters normal for writing to the pdf file.
- %
+ % Read toc second time, this time actually producing the outlines.
+ % The `-' means take the \expnumber as the absolute number of
+ % subentries, which we calculated on our first read of the .toc above.
+ %
+ % We use the node names as the destinations.
+ \def\numchapentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+ \def\numsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+ \def\numsubsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+ \def\numsubsubsecentry##1##2##3##4{% count is always zero
+ \dopdfoutline{##1}{}{##3}{##4}}%
+ %
+ % PDF outlines are displayed using system fonts, instead of
+ % document fonts. Therefore we cannot use special characters,
+ % since the encoding is unknown. For example, the eogonek from
+ % Latin 2 (0xea) gets translated to a | character. Info from
+ % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+ %
+ % xx to do this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Right
+ % now, I guess we'll just let the pdf reader have its way.
\indexnofonts
- \let\tt=\relax
- \turnoffactive
+ \setupdatafile
+ \activebackslash
\input \jobname.toc
- \endgroup\fi
- }}
- \def\makelinks #1,{%
- \def\params{#1}\def\E{END}%
- \ifx\params\E
- \let\nextmakelinks=\relax
- \else
- \let\nextmakelinks=\makelinks
- \ifnum\lnkcount>0,\fi
- \picknum{#1}%
- \startlink attr{/Border [0 0 0]}
- goto name{\pdfmkpgn{\the\pgn}}%
- \linkcolor #1%
- \advance\lnkcount by 1%
- \endlink
- \fi
- \nextmakelinks
- }
- \def\picknum#1{\expandafter\pn#1}
- \def\pn#1{%
- \def\p{#1}%
- \ifx\p\lbrace
- \let\nextpn=\ppn
- \else
- \let\nextpn=\ppnn
- \def\first{#1}
- \fi
- \nextpn
+ \endgroup
}
- \def\ppn#1{\pgn=#1\gobble}
- \def\ppnn{\pgn=\first}
- \def\pdfmklnk#1{\lnkcount=0\makelinks #1,END,}
- \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+ %
\def\skipspaces#1{\def\PP{#1}\def\D{|}%
\ifx\PP\D\let\nextsp\relax
\else\let\nextsp\skipspaces
@@ -1135,22 +1412,21 @@ where each line of input produces a line of output.}
\def\pdfurl#1{%
\begingroup
\normalturnoffactive\def\@{@}%
- \let\value=\expandablevalue
+ \makevalueexpandable
\leavevmode\Red
\startlink attr{/Border [0 0 0]}%
user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
- % #1
\endgroup}
\def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
\def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
\def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
\def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
\def\maketoks{%
- \expandafter\poptoks\the\toksA|ENDTOKS|
+ \expandafter\poptoks\the\toksA|ENDTOKS|\relax
\ifx\first0\adn0
\else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
\else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
- \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
\else
\ifnum0=\countA\else\makelink\fi
\ifx\first.\let\next=\done\else
@@ -1166,20 +1442,44 @@ where each line of input produces a line of output.}
\startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
\linkcolor #1\endlink}
\def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
-\fi % \ifx\pdfoutput
+\else
+ \let\pdfmkdest = \gobble
+ \let\pdfurl = \gobble
+ \let\endlink = \relax
+ \let\linkcolor = \relax
+ \let\pdfmakeoutlines = \relax
+\fi % \ifx\pdfoutput
\message{fonts,}
-% Font-change commands.
+
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+%
+\def\setfontstyle#1{%
+ \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+ \csname ten#1\endcsname % change the current font
+}
+
+% Select #1 fonts with the current style.
+%
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
% Texinfo sort of supports the sans serif font style, which plain TeX does not.
-% So we set up a \sf analogous to plain's \rm, etc.
+% So we set up a \sf.
\newfam\sffam
-\def\sf{\fam=\sffam \tensf}
+\def\sf{\fam=\sffam \setfontstyle{sf}}
\let\li = \sf % Sometimes we call it \li, not \sf.
-% We don't need math for this one.
-\def\ttsl{\tenttsl}
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
% Default leading.
\newdimen\textleading \textleading = 13.2pt
@@ -1230,21 +1530,11 @@ where each line of input produces a line of output.}
\def\scshape{csc}
\def\scbshape{csc}
-\newcount\mainmagstep
-\ifx\bigger\relax
- % not really supported.
- \mainmagstep=\magstep1
- \setfont\textrm\rmshape{12}{1000}
- \setfont\texttt\ttshape{12}{1000}
-\else
- \mainmagstep=\magstephalf
- \setfont\textrm\rmshape{10}{\mainmagstep}
- \setfont\texttt\ttshape{10}{\mainmagstep}
-\fi
-% Instead of cmb10, you may want to use cmbx10.
-% cmbx10 is a prettier font on its own, but cmb10
-% looks better when embedded in a line with cmr10
-% (in Bob's opinion).
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\setfont\textrm\rmshape{10}{\mainmagstep}
+\setfont\texttt\ttshape{10}{\mainmagstep}
\setfont\textbf\bfshape{10}{\mainmagstep}
\setfont\textit\itshape{10}{\mainmagstep}
\setfont\textsl\slshape{10}{\mainmagstep}
@@ -1254,12 +1544,14 @@ where each line of input produces a line of output.}
\font\texti=cmmi10 scaled \mainmagstep
\font\textsy=cmsy10 scaled \mainmagstep
-% A few fonts for @defun, etc.
-\setfont\defbf\bxshape{10}{\magstep1} %was 1314
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}
\setfont\deftt\ttshape{10}{\magstep1}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \bf}
+\setfont\defttsl\ttslshape{10}{\magstep1}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
\setfont\smallrm\rmshape{9}{1000}
\setfont\smalltt\ttshape{9}{1000}
\setfont\smallbf\bfshape{10}{900}
@@ -1272,6 +1564,7 @@ where each line of input produces a line of output.}
\font\smallsy=cmsy9
% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
\setfont\smallerrm\rmshape{8}{1000}
\setfont\smallertt\ttshape{8}{1000}
\setfont\smallerbf\bfshape{10}{800}
@@ -1283,7 +1576,8 @@ where each line of input produces a line of output.}
\font\smalleri=cmmi8
\font\smallersy=cmsy8
-% Fonts for title page:
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
\setfont\titlerm\rmbshape{12}{\magstep3}
\setfont\titleit\itbshape{10}{\magstep4}
\setfont\titlesl\slbshape{10}{\magstep4}
@@ -1298,6 +1592,7 @@ where each line of input produces a line of output.}
\def\authortt{\sectt}
% Chapter (and unnumbered) fonts (17.28pt).
+\def\chapnominalsize{17pt}
\setfont\chaprm\rmbshape{12}{\magstep2}
\setfont\chapit\itbshape{10}{\magstep3}
\setfont\chapsl\slbshape{10}{\magstep3}
@@ -1310,6 +1605,7 @@ where each line of input produces a line of output.}
\font\chapsy=cmsy10 scaled \magstep3
% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
\setfont\secrm\rmbshape{12}{\magstep1}
\setfont\secit\itbshape{10}{\magstep2}
\setfont\secsl\slbshape{10}{\magstep2}
@@ -1322,6 +1618,7 @@ where each line of input produces a line of output.}
\font\secsy=cmsy10 scaled \magstep2
% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
\setfont\ssecrm\rmbshape{12}{\magstephalf}
\setfont\ssecit\itbshape{10}{1315}
\setfont\ssecsl\slbshape{10}{1315}
@@ -1329,11 +1626,22 @@ where each line of input produces a line of output.}
\setfont\ssecttsl\ttslshape{10}{1315}
\setfont\ssecsf\sfbshape{12}{\magstephalf}
\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{\magstep1}
+\setfont\ssecsc\scbshape{10}{1315}
\font\sseci=cmmi12 scaled \magstephalf
\font\ssecsy=cmsy10 scaled 1315
-% The smallcaps and symbol fonts should actually be scaled \magstep1.5,
-% but that is not a standard magnification.
+
+% Reduced fonts for @acro in text (10pt).
+\def\reducednominalsize{10pt}
+\setfont\reducedrm\rmshape{10}{1000}
+\setfont\reducedtt\ttshape{10}{1000}
+\setfont\reducedbf\bfshape{10}{1000}
+\setfont\reducedit\itshape{10}{1000}
+\setfont\reducedsl\slshape{10}{1000}
+\setfont\reducedsf\sfshape{10}{1000}
+\setfont\reducedsc\scshape{10}{1000}
+\setfont\reducedttsl\ttslshape{10}{1000}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
% In order for the font changes to affect most math symbols and letters,
% we have to define the \textfont of the standard families. Since
@@ -1348,50 +1656,81 @@ where each line of input produces a line of output.}
}
% The font-changing commands redefine the meanings of \tenSTYLE, instead
-% of just \STYLE. We do this so that font changes will continue to work
-% in math mode, where it is the current \fam that is relevant in most
-% cases, not the current font. Plain TeX does \def\bf{\fam=\bffam
-% \tenbf}, for example. By redefining \tenbf, we obviate the need to
-% redefine \bf itself.
+% of just \STYLE. We do this because \STYLE needs to also set the
+% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+%
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower). These relative commands are used in
+% the LaTeX logo and acronyms.
+%
+% This all needs generalizing, badly.
+%
\def\textfonts{%
\let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
\let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
- \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl
+ \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+ \let\tenttsl=\textttsl
+ \def\curfontsize{text}%
+ \def\lsize{reduced}\def\lllsize{smaller}%
\resetmathfonts \setleading{\textleading}}
\def\titlefonts{%
\let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
\let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
\let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
\let\tenttsl=\titlettsl
+ \def\curfontsize{title}%
+ \def\lsize{chap}\def\lllsize{subsec}%
\resetmathfonts \setleading{25pt}}
\def\titlefont#1{{\titlefonts\rm #1}}
\def\chapfonts{%
\let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
\let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
- \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+ \let\tenttsl=\chapttsl
+ \def\curfontsize{chap}%
+ \def\lsize{sec}\def\lllsize{text}%
\resetmathfonts \setleading{19pt}}
\def\secfonts{%
\let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
\let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
- \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+ \let\tenttsl=\secttsl
+ \def\curfontsize{sec}%
+ \def\lsize{subsec}\def\lllsize{reduced}%
\resetmathfonts \setleading{16pt}}
\def\subsecfonts{%
\let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
\let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
- \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+ \let\tenttsl=\ssecttsl
+ \def\curfontsize{ssec}%
+ \def\lsize{text}\def\lllsize{small}%
\resetmathfonts \setleading{15pt}}
-\let\subsubsecfonts = \subsecfonts % Maybe make sssec fonts scaled magstephalf?
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+ \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+ \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+ \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+ \let\tenttsl=\reducedttsl
+ \def\curfontsize{reduced}%
+ \def\lsize{small}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
\def\smallfonts{%
\let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
\let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
\let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
\let\tenttsl=\smallttsl
+ \def\curfontsize{small}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
\resetmathfonts \setleading{10.5pt}}
\def\smallerfonts{%
\let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
\let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
\let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
\let\tenttsl=\smallerttsl
+ \def\curfontsize{smaller}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
\resetmathfonts \setleading{9.5pt}}
% Set the fonts to use with the @small... environments.
@@ -1400,22 +1739,21 @@ where each line of input produces a line of output.}
% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
% can fit this many characters:
% 8.5x11=86 smallbook=72 a4=90 a5=69
-% If we use \smallerfonts (8pt), then we can fit this many characters:
+% If we use \scriptfonts (8pt), then we can fit this many characters:
% 8.5x11=90+ smallbook=80 a4=90+ a5=77
% For me, subjectively, the few extra characters that fit aren't worth
% the additional smallness of 8pt. So I'm making the default 9pt.
-%
+%
% By the way, for comparison, here's what fits with @example (10pt):
% 8.5x11=71 smallbook=60 a4=75 a5=58
-%
-% I wish we used A4 paper on this side of the Atlantic.
-%
+%
+% I wish the USA used A4 paper.
% --karl, 24jan03.
% Set up the default fonts, so we can use them for creating boxes.
%
-\textfonts
+\textfonts \rm
% Define these so they can be easily changed for other fonts.
\def\angleleft{$\langle$}
@@ -1426,7 +1764,7 @@ where each line of input produces a line of output.}
% Fonts for short table of contents.
\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bxshape{12}{1000}
+\setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12
\setfont\shortcontsl\slshape{12}{1000}
\setfont\shortconttt\ttshape{12}{1000}
@@ -1435,19 +1773,32 @@ where each line of input produces a line of output.}
% \smartitalic{ARG} outputs arg in italics, followed by an italic correction
% unless the following character is such as not to need one.
-\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else\/\fi\fi\fi}
+\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else
+ \ptexslash\fi\fi\fi}
\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx}
\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx}
+% like \smartslanted except unconditionally uses \ttsl.
+% @var is set to this for defun arguments.
+\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx}
+
+% like \smartslanted except unconditionally use \sl. We never want
+% ttsl for book titles, do we?
+\def\cite#1{{\sl #1}\futurelet\next\smartitalicx}
+
\let\i=\smartitalic
+\let\slanted=\smartslanted
\let\var=\smartslanted
\let\dfn=\smartslanted
\let\emph=\smartitalic
-\let\cite=\smartslanted
+% @b, explicit bold.
\def\b#1{{\bf #1}}
\let\strong=\b
+% @sansserif, explicit sans.
+\def\sansserif#1{{\sf #1}}
+
% We can't just use \exhyphenpenalty, because that only has effect at
% the end of a paragraph. Restore normal hyphenation at the end of the
% group within which \nohyphenation is presumably called.
@@ -1458,19 +1809,25 @@ where each line of input produces a line of output.}
% Set sfcode to normal for the chars that usually have another value.
% Can't use plain's \frenchspacing because it uses the `\x notation, and
% sometimes \x has an active definition that messes things up.
-%
+%
\catcode`@=11
- \def\frenchspacing{%
+ \def\plainfrenchspacing{%
\sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
\sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ \def\endofsentencespacefactor{1000}% for @. and friends
+ }
+ \def\plainnonfrenchspacing{%
+ \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+ \def\endofsentencespacefactor{3000}% for @. and friends
}
\catcode`@=\other
+\def\endofsentencespacefactor{3000}% default
\def\t#1{%
- {\tt \rawbackslash \frenchspacing #1}%
+ {\tt \rawbackslash \plainfrenchspacing #1}%
\null
}
-\let\ttfont=\t
\def\samp#1{`\tclose{#1}'\null}
\setfont\keyrm\rmshape{8}{1000}
\font\keysy=cmsy9
@@ -1505,13 +1862,13 @@ where each line of input produces a line of output.}
\nohyphenation
%
\rawbackslash
- \frenchspacing
+ \plainfrenchspacing
#1%
}%
\null
}
-% We *must* turn on hyphenation at `-' and `_' in \code.
+% We *must* turn on hyphenation at `-' and `_' in @code.
% Otherwise, it is too hard to avoid overfull hboxes
% in the Emacs manual, the Library manual, etc.
@@ -1525,14 +1882,16 @@ where each line of input produces a line of output.}
\catcode`\_=\active
%
\global\def\code{\begingroup
- \catcode`\-=\active \let-\codedash
- \catcode`\_=\active \let_\codeunder
+ \catcode`\-=\active \catcode`\_=\active
+ \ifallowcodebreaks
+ \let-\codedash
+ \let_\codeunder
+ \else
+ \let-\realdash
+ \let_\realunder
+ \fi
\codex
}
- %
- % If we end up with any active - characters when handling the index,
- % just treat them as a normal -.
- \global\def\indexbreaks{\catcode`\-=\active \let-\realdash}
}
\def\realdash{-}
@@ -1550,24 +1909,45 @@ where each line of input produces a line of output.}
}
\def\codex #1{\tclose{#1}\endgroup}
+% An additional complication: the above will allow breaks after, e.g.,
+% each of the four underscores in __typeof__. This is undesirable in
+% some manuals, especially if they don't have long identifiers in
+% general. @allowcodebreaks provides a way to control this.
+%
+\newif\ifallowcodebreaks \allowcodebreakstrue
+
+\def\keywordtrue{true}
+\def\keywordfalse{false}
+
+\parseargdef\allowcodebreaks{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\keywordtrue
+ \allowcodebreakstrue
+ \else\ifx\txiarg\keywordfalse
+ \allowcodebreaksfalse
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @allowcodebreaks option `\txiarg'}%
+ \fi\fi
+}
+
% @kbd is like @code, except that if the argument is just one @key command,
% then @kbd has no effect.
% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
% `example' (@kbd uses ttsl only inside of @example and friends),
% or `code' (@kbd uses normal tty font always).
-\def\kbdinputstyle{\parsearg\kbdinputstylexxx}
-\def\kbdinputstylexxx#1{%
- \def\arg{#1}%
- \ifx\arg\worddistinct
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
- \else\ifx\arg\wordexample
+ \else\ifx\txiarg\wordexample
\gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
- \else\ifx\arg\wordcode
+ \else\ifx\txiarg\wordcode
\gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
\else
\errhelp = \EMsimple
- \errmessage{Unknown @kbdinputstyle `\arg'}%
+ \errmessage{Unknown @kbdinputstyle option `\txiarg'}%
\fi\fi\fi
}
\def\worddistinct{distinct}
@@ -1583,8 +1963,8 @@ where each line of input produces a line of output.}
\else{\tclose{\kbdfont\look}}\fi
\else{\tclose{\kbdfont\look}}\fi}
-% For @url, @env, @command quotes seem unnecessary, so use \code.
-\let\url=\code
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
\let\env=\code
\let\command=\code
@@ -1616,9 +1996,13 @@ where each line of input produces a line of output.}
\endlink
\endgroup}
+% @url synonym for @uref, since that's how everyone uses it.
+%
+\let\url=\uref
+
% rms does not like angle brackets --karl, 17may97.
% So now @email is just like @uref, unless we are pdf.
-%
+%
%\def\email#1{\angleleft{\tt #1}\angleright}
\ifpdf
\def\email#1{\doemail#1,,\finish}
@@ -1657,22 +2041,101 @@ where each line of input produces a line of output.}
\def\sc#1{{\smallcaps#1}} % smallcaps font
\def\ii#1{{\it #1}} % italic font
-% @acronym downcases the argument and prints in smallcaps.
-\def\acronym#1{{\smallcaps \lowercase{#1}}}
+% @acronym for "FBI", "NATO", and the like.
+% We print this one point size smaller, since it's intended for
+% all-uppercase.
+%
+\def\acronym#1{\doacronym #1,,\finish}
+\def\doacronym#1,#2,#3\finish{%
+ {\selectfonts\lsize #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
-% @pounds{} is a sterling sign.
+% @abbr for "Comput. J." and the like.
+% No font change, but don't do end-of-sentence spacing.
+%
+\def\abbr#1{\doabbr #1,,\finish}
+\def\doabbr#1,#2,#3\finish{%
+ {\plainfrenchspacing #1}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+}
+
+% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+%
\def\pounds{{\it\$}}
-% @registeredsymbol - R in a circle. For now, only works in text size;
-% we'd have to redo the font mechanism to change the \scriptstyle and
-% \scriptscriptstyle font sizes to make it look right in headings.
-% Adapted from the plain.tex definition of \copyright.
+% @euro{} comes from a separate font, depending on the current style.
+% We use the free feym* fonts from the eurosym package by Henrik
+% Theiling, which support regular, slanted, bold and bold slanted (and
+% "outlined" (blackboard board, sort of) versions, which we don't need).
+% It is available from http://www.ctan.org/tex-archive/fonts/eurosym.
+%
+% Although only regular is the truly official Euro symbol, we ignore
+% that. The Euro is designed to be slightly taller than the regular
+% font height.
+%
+% feymr - regular
+% feymo - slanted
+% feybr - bold
+% feybo - bold slanted
+%
+% There is no good (free) typewriter version, to my knowledge.
+% A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide.
+% Hmm.
+%
+% Also doesn't work in math. Do we need to do math with euro symbols?
+% Hope not.
%
+%
+\def\euro{{\eurofont e}}
+\def\eurofont{%
+ % We set the font at each command, rather than predefining it in
+ % \textfonts and the other font-switching commands, so that
+ % installations which never need the symbol don't have to have the
+ % font installed.
+ %
+ % There is only one designed size (nominal 10pt), so we always scale
+ % that to the current nominal size.
+ %
+ % By the way, simply using "at 1em" works for cmr10 and the like, but
+ % does not work for cmbx10 and other extended/shrunken fonts.
+ %
+ \def\eurosize{\csname\curfontsize nominalsize\endcsname}%
+ %
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+ \else
+ % regular:
+ \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+ \fi
+ \thiseurofont
+}
+
+% @registeredsymbol - R in a circle. The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
\def\registeredsymbol{%
- $^{{\ooalign{\hfil\raise.07ex\hbox{$\scriptstyle\rm R$}\hfil\crcr\Orb}}%
+ $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+ \hfil\crcr\Orb}}%
}$%
}
+% Laurent Siebenmann reports \Orb undefined with:
+% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
+% so we'll define it if necessary.
+%
+\ifx\Orb\undefined
+\def\Orb{\mathhexbox20D}
+\fi
+
\message{page headings,}
@@ -1691,87 +2154,103 @@ where each line of input produces a line of output.}
\newif\ifsetshortcontentsaftertitlepage
\let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
-\def\shorttitlepage{\parsearg\shorttitlepagezzz}
-\def\shorttitlepagezzz #1{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}%
\endgroup\page\hbox{}\page}
-\def\titlepage{\begingroup \parindent=0pt \textfonts
- \let\subtitlerm=\tenrm
- \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}%
- %
- \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
- \let\tt=\authortt}%
- %
- % Leave some space at the very top of the page.
- \vglue\titlepagetopglue
- %
- % Now you can print the title using @title.
- \def\title{\parsearg\titlezzz}%
- \def\titlezzz##1{\leftline{\titlefonts\rm ##1}
- % print a rule at the page bottom also.
- \finishedtitlepagefalse
- \vskip4pt \hrule height 4pt width \hsize \vskip4pt}%
- % No rule at page bottom unless we print one at the top with @title.
- \finishedtitlepagetrue
- %
- % Now you can put text using @subtitle.
- \def\subtitle{\parsearg\subtitlezzz}%
- \def\subtitlezzz##1{{\subtitlefont \rightline{##1}}}%
- %
- % @author should come last, but may come many times.
- \def\author{\parsearg\authorzzz}%
- \def\authorzzz##1{\ifseenauthor\else\vskip 0pt plus 1filll\seenauthortrue\fi
- {\authorfont \leftline{##1}}}%
- %
- % Most title ``pages'' are actually two pages long, with space
- % at the top of the second. We don't want the ragged left on the second.
- \let\oldpage = \page
- \def\page{%
+\envdef\titlepage{%
+ % Open one extra group, as we want to close it in the middle of \Etitlepage.
+ \begingroup
+ \parindent=0pt \textfonts
+ % Leave some space at the very top of the page.
+ \vglue\titlepagetopglue
+ % No rule at page bottom unless we print one at the top with @title.
+ \finishedtitlepagetrue
+ %
+ % Most title ``pages'' are actually two pages long, with space
+ % at the top of the second. We don't want the ragged left on the second.
+ \let\oldpage = \page
+ \def\page{%
\iffinishedtitlepage\else
- \finishtitlepage
+ \finishtitlepage
\fi
- \oldpage
\let\page = \oldpage
- \hbox{}}%
-% \def\page{\oldpage \hbox{}}
+ \page
+ \null
+ }%
}
\def\Etitlepage{%
- \iffinishedtitlepage\else
- \finishtitlepage
- \fi
- % It is important to do the page break before ending the group,
- % because the headline and footline are only empty inside the group.
- % If we use the new definition of \page, we always get a blank page
- % after the title page, which we certainly don't want.
- \oldpage
- \endgroup
- %
- % Need this before the \...aftertitlepage checks so that if they are
- % in effect the toc pages will come out with page numbers.
- \HEADINGSon
- %
- % If they want short, they certainly want long too.
- \ifsetshortcontentsaftertitlepage
- \shortcontents
- \contents
- \global\let\shortcontents = \relax
- \global\let\contents = \relax
- \fi
- %
- \ifsetcontentsaftertitlepage
- \contents
- \global\let\contents = \relax
- \global\let\shortcontents = \relax
- \fi
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ % It is important to do the page break before ending the group,
+ % because the headline and footline are only empty inside the group.
+ % If we use the new definition of \page, we always get a blank page
+ % after the title page, which we certainly don't want.
+ \oldpage
+ \endgroup
+ %
+ % Need this before the \...aftertitlepage checks so that if they are
+ % in effect the toc pages will come out with page numbers.
+ \HEADINGSon
+ %
+ % If they want short, they certainly want long too.
+ \ifsetshortcontentsaftertitlepage
+ \shortcontents
+ \contents
+ \global\let\shortcontents = \relax
+ \global\let\contents = \relax
+ \fi
+ %
+ \ifsetcontentsaftertitlepage
+ \contents
+ \global\let\contents = \relax
+ \global\let\shortcontents = \relax
+ \fi
}
\def\finishtitlepage{%
- \vskip4pt \hrule height 2pt width \hsize
- \vskip\titlepagebottomglue
- \finishedtitlepagetrue
+ \vskip4pt \hrule height 2pt width \hsize
+ \vskip\titlepagebottomglue
+ \finishedtitlepagetrue
+}
+
+%%% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines
+ \let\tt=\authortt}
+
+\parseargdef\title{%
+ \checkenv\titlepage
+ \leftline{\titlefonts\rm #1}
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+ \checkenv\titlepage
+ {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+%
+\parseargdef\author{%
+ \def\temp{\quotation}%
+ \ifx\thisenv\temp
+ \def\quotationauthor{#1}% printed in \Equotation.
+ \else
+ \checkenv\titlepage
+ \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+ {\authorfont \leftline{#1}}%
+ \fi
}
+
%%% Set up page headings and footings.
\let\thispage=\folio
@@ -1781,7 +2260,7 @@ where each line of input produces a line of output.}
\newtoks\evenfootline % footline on even pages
\newtoks\oddfootline % footline on odd pages
-% Now make Tex use those variables
+% Now make TeX use those variables
\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
\else \the\evenheadline \fi}}
\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
@@ -1795,32 +2274,27 @@ where each line of input produces a line of output.}
% @evenfooting @thisfile||
% @oddfooting ||@thisfile
-\def\evenheading{\parsearg\evenheadingxxx}
-\def\oddheading{\parsearg\oddheadingxxx}
-\def\everyheading{\parsearg\everyheadingxxx}
-
-\def\evenfooting{\parsearg\evenfootingxxx}
-\def\oddfooting{\parsearg\oddfootingxxx}
-\def\everyfooting{\parsearg\everyfootingxxx}
-
-{\catcode`\@=0 %
-\gdef\evenheadingxxx #1{\evenheadingyyy #1@|@|@|@|\finish}
-\gdef\evenheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddheadingxxx #1{\oddheadingyyy #1@|@|@|@|\finish}
-\gdef\oddheadingyyy #1@|#2@|#3@|#4\finish{%
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\everyheadingxxx#1{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
-\gdef\evenfootingxxx #1{\evenfootingyyy #1@|@|@|@|\finish}
-\gdef\evenfootingyyy #1@|#2@|#3@|#4\finish{%
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
-\gdef\oddfootingxxx #1{\oddfootingyyy #1@|@|@|@|\finish}
-\gdef\oddfootingyyy #1@|#2@|#3@|#4\finish{%
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
\global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
%
% Leave some space for the footline. Hopefully ok to assume
@@ -1829,9 +2303,8 @@ where each line of input produces a line of output.}
\global\advance\vsize by -\baselineskip
}
-\gdef\everyfootingxxx#1{\oddfootingxxx{#1}\evenfootingxxx{#1}}
-%
-}% unbind the catcode of @.
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+
% @headings double turns headings on for double-sided printing.
% @headings single turns headings on for single-sided printing.
@@ -1845,7 +2318,7 @@ where each line of input produces a line of output.}
\def\headings #1 {\csname HEADINGS#1\endcsname}
-\def\HEADINGSoff{
+\def\HEADINGSoff{%
\global\evenheadline={\hfil} \global\evenfootline={\hfil}
\global\oddheadline={\hfil} \global\oddfootline={\hfil}}
\HEADINGSoff
@@ -1854,7 +2327,7 @@ where each line of input produces a line of output.}
% chapter name on inside top of right hand pages, document
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
-\def\HEADINGSdouble{
+\def\HEADINGSdouble{%
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
@@ -1866,7 +2339,7 @@ where each line of input produces a line of output.}
% For single-sided printing, chapter title goes across top left of page,
% page number on top right.
-\def\HEADINGSsingle{
+\def\HEADINGSsingle{%
\global\pageno=1
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
@@ -1913,12 +2386,11 @@ where each line of input produces a line of output.}
% @settitle line... specifies the title of the document, for headings.
% It generates no output of its own.
\def\thistitle{\putwordNoTitle}
-\def\settitle{\parsearg\settitlezzz}
-\def\settitlezzz #1{\gdef\thistitle{#1}}
+\def\settitle{\parsearg{\gdef\thistitle}}
\message{tables,}
-% Tables -- @table, @ftable, @vtable, @item(x), @kitem(x), @xitem(x).
+% Tables -- @table, @ftable, @vtable, @item(x).
% default indentation of table text
\newdimen\tableindent \tableindent=.8in
@@ -1930,7 +2402,7 @@ where each line of input produces a line of output.}
% used internally for \itemindent minus \itemmargin
\newdimen\itemmax
-% Note @table, @vtable, and @vtable define @item, @itemx, etc., with
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
% these defs.
% They also define \itemindex
% to index the item name in whatever manner is desired (perhaps none).
@@ -1942,22 +2414,10 @@ where each line of input produces a line of output.}
\def\internalBitem{\smallbreak \parsearg\itemzzz}
\def\internalBitemx{\itemxpar \parsearg\itemzzz}
-\def\internalBxitem "#1"{\def\xitemsubtopix{#1} \smallbreak \parsearg\xitemzzz}
-\def\internalBxitemx "#1"{\def\xitemsubtopix{#1} \itemxpar \parsearg\xitemzzz}
-
-\def\internalBkitem{\smallbreak \parsearg\kitemzzz}
-\def\internalBkitemx{\itemxpar \parsearg\kitemzzz}
-
-\def\kitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \lastfunction}}%
- \itemzzz {#1}}
-
-\def\xitemzzz #1{\dosubind {kw}{\code{#1}}{for {\bf \xitemsubtopic}}%
- \itemzzz {#1}}
-
\def\itemzzz #1{\begingroup %
\advance\hsize by -\rightskip
\advance\hsize by -\tableindent
- \setbox0=\hbox{\itemfont{#1}}%
+ \setbox0=\hbox{\itemindicate{#1}}%
\itemindex{#1}%
\nobreak % This prevents a break before @itemx.
%
@@ -1981,17 +2441,13 @@ where each line of input produces a line of output.}
% \parskip glue -- logically it's part of the @item we just started.
\nobreak \vskip-\parskip
%
- % Stop a page break at the \parskip glue coming up. (Unfortunately
- % we can't prevent a possible page break at the following
- % \baselineskip glue.) However, if what follows is an environment
- % such as @example, there will be no \parskip glue; then
- % the negative vskip we just would cause the example and the item to
- % crash together. So we use this bizarre value of 10001 as a signal
- % to \aboveenvbreak to insert \parskip glue after all.
- % (Possibly there are other commands that could be followed by
- % @example which need the same treatment, but not section titles; or
- % maybe section titles are the only special case and they should be
- % penalty 10001...)
+ % Stop a page break at the \parskip glue coming up. However, if
+ % what follows is an environment such as @example, there will be no
+ % \parskip glue; then the negative vskip we just inserted would
+ % cause the example and the item to crash together. So we use this
+ % bizarre value of 10001 as a signal to \aboveenvbreak to insert
+ % \parskip glue after all. Section titles are handled this way also.
+ %
\penalty 10001
\endgroup
\itemxneedsnegativevskipfalse
@@ -2011,92 +2467,106 @@ where each line of input produces a line of output.}
\fi
}
-\def\item{\errmessage{@item while not in a table}}
-\def\itemx{\errmessage{@itemx while not in a table}}
-\def\kitem{\errmessage{@kitem while not in a table}}
-\def\kitemx{\errmessage{@kitemx while not in a table}}
-\def\xitem{\errmessage{@xitem while not in a table}}
-\def\xitemx{\errmessage{@xitemx while not in a table}}
-
-% Contains a kludge to get @end[description] to work.
-\def\description{\tablez{\dontindex}{1}{}{}{}{}}
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
% @table, @ftable, @vtable.
-\def\table{\begingroup\inENV\obeylines\obeyspaces\tablex}
-{\obeylines\obeyspaces%
-\gdef\tablex #1^^M{%
-\tabley\dontindex#1 \endtabley}}
-
-\def\ftable{\begingroup\inENV\obeylines\obeyspaces\ftablex}
-{\obeylines\obeyspaces%
-\gdef\ftablex #1^^M{%
-\tabley\fnitemindex#1 \endtabley
-\def\Eftable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\vtable{\begingroup\inENV\obeylines\obeyspaces\vtablex}
-{\obeylines\obeyspaces%
-\gdef\vtablex #1^^M{%
-\tabley\vritemindex#1 \endtabley
-\def\Evtable{\endgraf\afterenvbreak\endgroup}%
-\let\Etable=\relax}}
-
-\def\dontindex #1{}
-\def\fnitemindex #1{\doind {fn}{\code{#1}}}%
-\def\vritemindex #1{\doind {vr}{\code{#1}}}%
-
-{\obeyspaces %
-\gdef\tabley#1#2 #3 #4 #5 #6 #7\endtabley{\endgroup%
-\tablez{#1}{#2}{#3}{#4}{#5}{#6}}}
-
-\def\tablez #1#2#3#4#5#6{%
-\aboveenvbreak %
-\begingroup %
-\def\Edescription{\Etable}% Necessary kludge.
-\let\itemindex=#1%
-\ifnum 0#3>0 \advance \leftskip by #3\mil \fi %
-\ifnum 0#4>0 \tableindent=#4\mil \fi %
-\ifnum 0#5>0 \advance \rightskip by #5\mil \fi %
-\def\itemfont{#2}%
-\itemmax=\tableindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \tableindent %
-\exdentamount=\tableindent
-\parindent = 0pt
-\parskip = \smallskipamount
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def\Etable{\endgraf\afterenvbreak\endgroup}%
-\let\item = \internalBitem %
-\let\itemx = \internalBitemx %
-\let\kitem = \internalBkitem %
-\let\kitemx = \internalBkitemx %
-\let\xitem = \internalBxitem %
-\let\xitemx = \internalBxitemx %
+\envdef\table{%
+ \let\itemindex\gobble
+ \tablecheck{table}%
+}
+\envdef\ftable{%
+ \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+ \tablecheck{ftable}%
+}
+\envdef\vtable{%
+ \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+ \tablecheck{vtable}%
+}
+\def\tablecheck#1{%
+ \ifnum \the\catcode`\^^M=\active
+ \endgroup
+ \errmessage{This command won't work in this context; perhaps the problem is
+ that we are \inenvironment\thisenv}%
+ \def\next{\doignore{#1}}%
+ \else
+ \let\next\tablex
+ \fi
+ \next
+}
+\def\tablex#1{%
+ \def\itemindicate{#1}%
+ \parsearg\tabley
+}
+\def\tabley#1{%
+ {%
+ \makevalueexpandable
+ \edef\temp{\noexpand\tablez #1\space\space\space}%
+ \expandafter
+ }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+ \aboveenvbreak
+ \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+ \ifnum 0#2>0 \tableindent=#2\mil \fi
+ \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+ \itemmax=\tableindent
+ \advance \itemmax by -\itemmargin
+ \advance \leftskip by \tableindent
+ \exdentamount=\tableindent
+ \parindent = 0pt
+ \parskip = \smallskipamount
+ \ifdim \parskip=0pt \parskip=2pt \fi
+ \let\item = \internalBitem
+ \let\itemx = \internalBitemx
}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
% This is the counter used by @enumerate, which is really @itemize
\newcount \itemno
-\def\itemize{\parsearg\itemizezzz}
+\envdef\itemize{\parsearg\doitemize}
-\def\itemizezzz #1{%
- \begingroup % ended by the @end itemize
- \itemizey {#1}{\Eitemize}
+\def\doitemize#1{%
+ \aboveenvbreak
+ \itemmax=\itemindent
+ \advance\itemmax by -\itemmargin
+ \advance\leftskip by \itemindent
+ \exdentamount=\itemindent
+ \parindent=0pt
+ \parskip=\smallskipamount
+ \ifdim\parskip=0pt \parskip=2pt \fi
+ \def\itemcontents{#1}%
+ % @itemize with no arg is equivalent to @itemize @bullet.
+ \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+ \let\item=\itemizeitem
}
-\def\itemizey #1#2{%
-\aboveenvbreak %
-\itemmax=\itemindent %
-\advance \itemmax by -\itemmargin %
-\advance \leftskip by \itemindent %
-\exdentamount=\itemindent
-\parindent = 0pt %
-\parskip = \smallskipamount %
-\ifdim \parskip=0pt \parskip=2pt \fi%
-\def#2{\endgraf\afterenvbreak\endgroup}%
-\def\itemcontents{#1}%
-\let\item=\itemizeitem}
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+ \advance\itemno by 1 % for enumerations
+ {\let\par=\endgraf \smallbreak}% reasonable place to break
+ {%
+ % If the document has an @itemize directly after a section title, a
+ % \nobreak will be last on the list, and \sectionheading will have
+ % done a \vskip-\parskip. In that case, we don't want to zero
+ % parskip, or the item text will crash with the heading. On the
+ % other hand, when there is normal text preceding the item (as there
+ % usually is), we do want to zero parskip, or there would be too much
+ % space. In that case, we won't have a \nobreak before. At least
+ % that's the theory.
+ \ifnum\lastpenalty<10000 \parskip=0in \fi
+ \noindent
+ \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+ \vadjust{\penalty 1200}}% not good to break after first line of item.
+ \flushcr
+}
% \splitoff TOKENS\endmark defines \first to be the first token in
% TOKENS, and \rest to be the remainder.
@@ -2107,11 +2577,8 @@ where each line of input produces a line of output.}
% or number, to specify the first label in the enumerated list. No
% argument is the same as `1'.
%
-\def\enumerate{\parsearg\enumeratezzz}
-\def\enumeratezzz #1{\enumeratey #1 \endenumeratey}
+\envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
\def\enumeratey #1 #2\endenumeratey{%
- \begingroup % ended by the @end enumerate
- %
% If we were given no argument, pretend we were given `1'.
\def\thearg{#1}%
\ifx\thearg\empty \def\thearg{1}\fi
@@ -2182,13 +2649,13 @@ where each line of input produces a line of output.}
}%
}
-% Call itemizey, adding a period to the first argument and supplying the
+% Call \doitemize, adding a period to the first argument and supplying the
% common last two arguments. Also subtract one from the initial value in
% \itemno, since @item increments \itemno.
%
\def\startenumeration#1{%
\advance\itemno by -1
- \itemizey{#1.}\Eenumerate\flushcr
+ \doitemize{#1.}\flushcr
}
% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
@@ -2199,16 +2666,6 @@ where each line of input produces a line of output.}
\def\Ealphaenumerate{\Eenumerate}
\def\Ecapsenumerate{\Eenumerate}
-% Definition of @item while inside @itemize.
-
-\def\itemizeitem{%
-\advance\itemno by 1
-{\let\par=\endgraf \smallbreak}%
-\ifhmode \errmessage{In hmode at itemizeitem}\fi
-{\parskip=0in \hskip 0pt
-\hbox to 0pt{\hss \itemcontents\hskip \itemmargin}%
-\vadjust{\penalty 1200}}%
-\flushcr}
% @multitable macros
% Amy Hendrickson, 8/18/94, 3/6/96
@@ -2235,24 +2692,14 @@ where each line of input produces a line of output.}
% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
% @item ...
% using the widest term desired in each column.
-%
-% For those who want to use more than one line's worth of words in
-% the preamble, break the line within one argument and it
-% will parse correctly, i.e.,
-%
-% @multitable {Column 1 template} {Column 2 template} {Column 3
-% template}
-% Not:
-% @multitable {Column 1 template} {Column 2 template}
-% {Column 3 template}
% Each new table line starts with @item, each subsequent new column
% starts with @tab. Empty columns may be produced by supplying @tab's
% with nothing between them for as many times as empty columns are needed,
% ie, @tab@tab@tab will produce two empty columns.
-% @item, @tab, @multitable or @end multitable do not need to be on their
-% own lines, but it will not hurt if they are.
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
% Sample multitable:
@@ -2296,13 +2743,12 @@ where each line of input produces a line of output.}
\def\xcolumnfractions{\columnfractions}
\newif\ifsetpercent
-% #1 is the part of the @columnfraction before the decimal point, which
-% is presumably either 0 or the empty string (but we don't check, we
-% just throw it away). #2 is the decimal part, which we use as the
-% percent of \hsize for this column.
-\def\pickupwholefraction#1.#2 {%
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1. We just use it, whatever it is.
+%
+\def\pickupwholefraction#1 {%
\global\advance\colcount by 1
- \expandafter\xdef\csname col\the\colcount\endcsname{.#2\hsize}%
+ \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
\setuptable
}
@@ -2335,18 +2781,33 @@ where each line of input produces a line of output.}
\go
}
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry. Note that \everycr resets \everytab.
+\def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}%
+%
+% A \tab used to include \hskip1sp. But then the space in a template
+% line is not enough. That is bad. So let's go back to just `&' until
+% we encounter the problem it was intended to solve again.
+% --karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
% @multitable ... @end multitable definitions:
%
-\def\multitable{\parsearg\dotable}
-\def\dotable#1{\bgroup
+\newtoks\everytab % insert after every tab.
+%
+\envdef\multitable{%
\vskip\parskip
- \let\item=\crcrwithfootnotes
- % A \tab used to include \hskip1sp. But then the space in a template
- % line is not enough. That is bad. So let's go back to just & until
- % we encounter the problem it was intended to solve again. --karl,
- % nathan@acm.org, 20apr99.
- \let\tab=&%
- \let\startfootins=\startsavedfootnote
+ \startsavinginserts
+ %
+ % @item within a multitable starts a normal row.
+ % We use \def instead of \let so that if one of the multitable entries
+ % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+ % \endtemplate) expanding \doitemize.
+ \def\item{\crcr}%
+ %
\tolerance=9500
\hbadness=9500
\setmultitablespacing
@@ -2354,85 +2815,93 @@ where each line of input produces a line of output.}
\parindent=\multitableparindent
\overfullrule=0pt
\global\colcount=0
- \def\Emultitable{%
- \global\setpercentfalse
- \crcrwithfootnotes\crcr
- \egroup\egroup
+ %
+ \everycr = {%
+ \noalign{%
+ \global\everytab={}%
+ \global\colcount=0 % Reset the column counter.
+ % Check for saved footnotes, etc.
+ \checkinserts
+ % Keeps underfull box messages off when table breaks over pages.
+ %\filbreak
+ % Maybe so, but it also creates really weird page breaks when the
+ % table breaks over pages. Wouldn't \vfil be better? Wait until the
+ % problem manifests itself, so it can be fixed for real --karl.
+ }%
}%
%
+ \parsearg\domultitable
+}
+\def\domultitable#1{%
% To parse everything between @multitable and @item:
\setuptable#1 \endsetuptable
%
- % \everycr will reset column counter, \colcount, at the end of
- % each line. Every column entry will cause \colcount to advance by one.
- % The table preamble
- % looks at the current \colcount to find the correct column width.
- \everycr{\noalign{%
- %
- % \filbreak%% keeps underfull box messages off when table breaks over pages.
- % Maybe so, but it also creates really weird page breaks when the table
- % breaks over pages. Wouldn't \vfil be better? Wait until the problem
- % manifests itself, so it can be fixed for real --karl.
- \global\colcount=0\relax}}%
- %
% This preamble sets up a generic column definition, which will
% be used as many times as user calls for columns.
% \vtop will set a single line and will also let text wrap and
% continue for many paragraphs if desired.
- \halign\bgroup&\global\advance\colcount by 1\relax
- \multistrut\vtop{\hsize=\expandafter\csname col\the\colcount\endcsname
- %
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
- \rightskip=0pt
- \ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
- \else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
- \fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively marking
- % characters.
- \noindent\ignorespaces##\unskip\multistrut}\cr
-}
-
-\def\setmultitablespacing{% test to see if user has set \multitablelinespace.
-% If so, do nothing. If not, give it an appropriate dimension based on
-% current baselineskip.
+ \halign\bgroup &%
+ \global\advance\colcount by 1
+ \multistrut
+ \vtop{%
+ % Use the current \colcount to find the correct column width:
+ \hsize=\expandafter\csname col\the\colcount\endcsname
+ %
+ % In order to keep entries from bumping into each other
+ % we will add a \leftskip of \multitablecolspace to all columns after
+ % the first one.
+ %
+ % If a template has been used, we will add \multitablecolspace
+ % to the width of each template entry.
+ %
+ % If the user has set preamble in terms of percent of \hsize we will
+ % use that dimension as the width of the column, and the \leftskip
+ % will keep entries from bumping into each other. Table will start at
+ % left margin and final column will justify at right margin.
+ %
+ % Make sure we don't inherit \rightskip from the outer environment.
+ \rightskip=0pt
+ \ifnum\colcount=1
+ % The first column will be indented with the surrounding text.
+ \advance\hsize by\leftskip
+ \else
+ \ifsetpercent \else
+ % If user has not set preamble in terms of percent of \hsize
+ % we will advance \hsize by \multitablecolspace.
+ \advance\hsize by \multitablecolspace
+ \fi
+ % In either case we will make \leftskip=\multitablecolspace:
+ \leftskip=\multitablecolspace
+ \fi
+ % Ignoring space at the beginning and end avoids an occasional spurious
+ % blank line, when TeX decides to break the line at the space before the
+ % box from the multistrut, so the strut ends up on a line by itself.
+ % For example:
+ % @multitable @columnfractions .11 .89
+ % @item @code{#}
+ % @tab Legal holiday which is valid in major parts of the whole country.
+ % Is automatically provided with highlighting sequences respectively
+ % marking characters.
+ \noindent\ignorespaces##\unskip\multistrut
+ }\cr
+}
+\def\Emultitable{%
+ \crcr
+ \egroup % end the \halign
+ \global\setpercentfalse
+}
+
+\def\setmultitablespacing{%
+ \def\multistrut{\strut}% just use the standard line spacing
+ %
+ % Compute \multitablelinespace (if not defined by user) for use in
+ % \multitableparskip calculation. We used define \multistrut based on
+ % this, but (ironically) that caused the spacing to be off.
+ % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
\ifdim\multitablelinespace=0pt
\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
\global\advance\multitablelinespace by-\ht0
-%% strut to put in table in case some entry doesn't have descenders,
-%% to keep lines equally spaced
-\let\multistrut = \strut
-\else
-%% FIXME: what is \box0 supposed to be?
-\gdef\multistrut{\vrule height\multitablelinespace depth\dp0
-width0pt\relax} \fi
+\fi
%% Test to see if parskip is larger than space between lines of
%% table. If not, do nothing.
%% If so, set to same dimension as multitablelinespace.
@@ -2447,163 +2916,33 @@ width0pt\relax} \fi
%% than skip between lines in the table.
\fi}
-% In case a @footnote appears inside an alignment, save the footnote
-% text to a box and make the \insert when a row of the table is
-% finished. Otherwise, the insertion is lost, it never migrates to the
-% main vertical list. --kasal, 22jan03.
-%
-\newbox\savedfootnotes
-%
-% \dotable \let's \startfootins to this, so that \dofootnote will call
-% it instead of starting the insertion right away.
-\def\startsavedfootnote{%
- \global\setbox\savedfootnotes = \vbox\bgroup
- \unvbox\savedfootnotes
-}
-\def\crcrwithfootnotes{%
- \crcr
- \ifvoid\savedfootnotes \else
- \noalign{\insert\footins{\box\savedfootnotes}}%
- \fi
-}
\message{conditionals,}
-% Prevent errors for section commands.
-% Used in @ignore and in failing conditionals.
-\def\ignoresections{%
- \let\chapter=\relax
- \let\unnumbered=\relax
- \let\top=\relax
- \let\unnumberedsec=\relax
- \let\unnumberedsection=\relax
- \let\unnumberedsubsec=\relax
- \let\unnumberedsubsection=\relax
- \let\unnumberedsubsubsec=\relax
- \let\unnumberedsubsubsection=\relax
- \let\section=\relax
- \let\subsec=\relax
- \let\subsubsec=\relax
- \let\subsection=\relax
- \let\subsubsection=\relax
- \let\appendix=\relax
- \let\appendixsec=\relax
- \let\appendixsection=\relax
- \let\appendixsubsec=\relax
- \let\appendixsubsection=\relax
- \let\appendixsubsubsec=\relax
- \let\appendixsubsubsection=\relax
- \let\contents=\relax
- \let\smallbook=\relax
- \let\titlepage=\relax
-}
-
-% Used in nested conditionals, where we have to parse the Texinfo source
-% and so want to turn off most commands, in case they are used
-% incorrectly.
-%
-% We use \empty instead of \relax for the @def... commands, so that \end
-% doesn't throw an error. For instance:
-% @ignore
-% @deffn ...
-% @end deffn
-% @end ignore
-%
-% The @end deffn is going to get expanded, because we're trying to allow
-% nested conditionals. But we don't want to expand the actual @deffn,
-% since it might be syntactically correct and intended to be ignored.
-% Since \end checks for \relax, using \empty does not cause an error.
-%
-\def\ignoremorecommands{%
- \let\defcodeindex = \relax
- \let\defcv = \empty
- \let\defcvx = \empty
- \let\Edefcv = \empty
- \let\deffn = \empty
- \let\deffnx = \empty
- \let\Edeffn = \empty
- \let\defindex = \relax
- \let\defivar = \empty
- \let\defivarx = \empty
- \let\Edefivar = \empty
- \let\defmac = \empty
- \let\defmacx = \empty
- \let\Edefmac = \empty
- \let\defmethod = \empty
- \let\defmethodx = \empty
- \let\Edefmethod = \empty
- \let\defop = \empty
- \let\defopx = \empty
- \let\Edefop = \empty
- \let\defopt = \empty
- \let\defoptx = \empty
- \let\Edefopt = \empty
- \let\defspec = \empty
- \let\defspecx = \empty
- \let\Edefspec = \empty
- \let\deftp = \empty
- \let\deftpx = \empty
- \let\Edeftp = \empty
- \let\deftypefn = \empty
- \let\deftypefnx = \empty
- \let\Edeftypefn = \empty
- \let\deftypefun = \empty
- \let\deftypefunx = \empty
- \let\Edeftypefun = \empty
- \let\deftypeivar = \empty
- \let\deftypeivarx = \empty
- \let\Edeftypeivar = \empty
- \let\deftypemethod = \empty
- \let\deftypemethodx = \empty
- \let\Edeftypemethod = \empty
- \let\deftypeop = \empty
- \let\deftypeopx = \empty
- \let\Edeftypeop = \empty
- \let\deftypevar = \empty
- \let\deftypevarx = \empty
- \let\Edeftypevar = \empty
- \let\deftypevr = \empty
- \let\deftypevrx = \empty
- \let\Edeftypevr = \empty
- \let\defun = \empty
- \let\defunx = \empty
- \let\Edefun = \empty
- \let\defvar = \empty
- \let\defvarx = \empty
- \let\Edefvar = \empty
- \let\defvr = \empty
- \let\defvrx = \empty
- \let\Edefvr = \empty
- \let\clear = \relax
- \let\down = \relax
- \let\evenfooting = \relax
- \let\evenheading = \relax
- \let\everyfooting = \relax
- \let\everyheading = \relax
- \let\headings = \relax
- \let\include = \relax
- \let\item = \relax
- \let\lowersections = \relax
- \let\oddfooting = \relax
- \let\oddheading = \relax
- \let\printindex = \relax
- \let\pxref = \relax
- \let\raisesections = \relax
- \let\ref = \relax
- \let\set = \relax
- \let\setchapternewpage = \relax
- \let\setchapterstyle = \relax
- \let\settitle = \relax
- \let\up = \relax
- \let\verbatiminclude = \relax
- \let\xref = \relax
+
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed. They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested. But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+ \expandafter\let\csname #1\endcsname = \relax
+ \expandafter\let\csname iscond.#1\endcsname = 1
}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
% Ignore @ignore, @ifhtml, @ifinfo, and the like.
%
\def\direntry{\doignore{direntry}}
-\def\documentdescriptionword{documentdescription}
\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
\def\ifhtml{\doignore{ifhtml}}
\def\ifinfo{\doignore{ifinfo}}
\def\ifnottex{\doignore{ifnottex}}
@@ -2613,198 +2952,133 @@ width0pt\relax} \fi
\def\menu{\doignore{menu}}
\def\xml{\doignore{xml}}
-% @dircategory CATEGORY -- specify a category of the dir file
-% which this file should belong to. Ignore this in TeX.
-\let\dircategory = \comment
-
-% Ignore text until a line `@end #1'.
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
\def\doignore#1{\begingroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define a command to swallow text until we reach `@end #1'.
- % This @ is a catcode 12 token (that is the normal catcode of @ in
- % this texinfo.tex file). We change the catcode of @ below to match.
- \long\def\doignoretext##1@end #1{\enddoignore}%
+ % Scan in ``verbatim'' mode:
+ \catcode`\@ = \other
+ \catcode`\{ = \other
+ \catcode`\} = \other
%
% Make sure that spaces turn into tokens that match what \doignoretext wants.
- \catcode\spaceChar = 10
- %
- % Ignore braces, too, so mismatched braces don't cause trouble.
- \catcode`\{ = 9
- \catcode`\} = 9
+ \spaceisspace
%
- % We must not have @c interpreted as a control sequence.
- \catcode`\@ = 12
- %
- \def\ignoreword{#1}%
- \ifx\ignoreword\documentdescriptionword
- % The c kludge breaks documentdescription, since
- % `documentdescription' contains a `c'. Means not everything will
- % be ignored inside @documentdescription, but oh well...
- \else
- % Make the letter c a comment character so that the rest of the line
- % will be ignored. This way, the document can have (for example)
- % @c @end ifinfo
- % and the @end ifinfo will be properly ignored.
- % (We've just changed @ to catcode 12.)
- \catcode`\c = 14
- \fi
+ % Count number of #1's that we've seen.
+ \doignorecount = 0
%
- % And now expand the command defined above.
- \doignoretext
-}
-
-% What we do to finish off ignored text.
-%
-\def\enddoignore{\endgroup\ignorespaces}%
-
-\newif\ifwarnedobs\warnedobsfalse
-\def\obstexwarn{%
- \ifwarnedobs\relax\else
- % We need to warn folks that they may have trouble with TeX 3.0.
- % This uses \immediate\write16 rather than \message to get newlines.
- \immediate\write16{}
- \immediate\write16{WARNING: for users of Unix TeX 3.0!}
- \immediate\write16{This manual trips a bug in TeX version 3.0 (tex hangs).}
- \immediate\write16{If you are running another version of TeX, relax.}
- \immediate\write16{If you are running Unix TeX 3.0, kill this TeX process.}
- \immediate\write16{ Then upgrade your TeX installation if you can.}
- \immediate\write16{ (See ftp://ftp.gnu.org/non-gnu/TeX.README.)}
- \immediate\write16{If you are stuck with version 3.0, run the}
- \immediate\write16{ script ``tex3patch'' from the Texinfo distribution}
- \immediate\write16{ to use a workaround.}
- \immediate\write16{}
- \global\warnedobstrue
- \fi
+ % Swallow text until we reach the matching `@end #1'.
+ \dodoignore{#1}%
}
-% **In TeX 3.0, setting text in \nullfont hangs tex. For a
-% workaround (which requires the file ``dummy.tfm'' to be installed),
-% uncomment the following line:
-%%%%%\font\nullfont=dummy\let\obstexwarn=\relax
-
-% Ignore text, except that we keep track of conditional commands for
-% purposes of nesting, up to an `@end #1' command.
-%
-\def\nestedignore#1{%
- \obstexwarn
- % We must actually expand the ignored text to look for the @end
- % command, so that nested ignore constructs work. Thus, we put the
- % text into a \vbox and then do nothing with the result. To minimize
- % the chance of memory overflow, we follow the approach outlined on
- % page 401 of the TeXbook.
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+ \obeylines %
%
- \setbox0 = \vbox\bgroup
- % Don't complain about control sequences we have declared \outer.
- \ignoresections
- %
- % Define `@end #1' to end the box, which will in turn undefine the
- % @end command again.
- \expandafter\def\csname E#1\endcsname{\egroup\ignorespaces}%
+ \gdef\dodoignore#1{%
+ % #1 contains the command name as a string, e.g., `ifinfo'.
%
- % We are going to be parsing Texinfo commands. Most cause no
- % trouble when they are used incorrectly, but some commands do
- % complicated argument parsing or otherwise get confused, so we
- % undefine them.
+ % Define a command to find the next `@end #1', which must be on a line
+ % by itself.
+ \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
+ % And this command to find another #1 command, at the beginning of a
+ % line. (Otherwise, we would consider a line `@c @ifset', for
+ % example, to count as an @ifset for nesting.)
+ \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
%
- % We can't do anything about stray @-signs, unfortunately;
- % they'll produce `undefined control sequence' errors.
- \ignoremorecommands
- %
- % Set the current font to be \nullfont, a TeX primitive, and define
- % all the font commands to also use \nullfont. We don't use
- % dummy.tfm, as suggested in the TeXbook, because some sites
- % might not have that installed. Therefore, math mode will still
- % produce output, but that should be an extremely small amount of
- % stuff compared to the main input.
- %
- \nullfont
- \let\tenrm=\nullfont \let\tenit=\nullfont \let\tensl=\nullfont
- \let\tenbf=\nullfont \let\tentt=\nullfont \let\smallcaps=\nullfont
- \let\tensf=\nullfont
- % Similarly for index fonts.
- \let\smallrm=\nullfont \let\smallit=\nullfont \let\smallsl=\nullfont
- \let\smallbf=\nullfont \let\smalltt=\nullfont \let\smallsc=\nullfont
- \let\smallsf=\nullfont
- % Similarly for smallexample fonts.
- \let\smallerrm=\nullfont \let\smallerit=\nullfont \let\smallersl=\nullfont
- \let\smallerbf=\nullfont \let\smallertt=\nullfont \let\smallersc=\nullfont
- \let\smallersf=\nullfont
- %
- % Don't complain when characters are missing from the fonts.
- \tracinglostchars = 0
- %
- % Don't bother to do space factor calculations.
- \frenchspacing
- %
- % Don't report underfull hboxes.
- \hbadness = 10000
- %
- % Do minimal line-breaking.
- \pretolerance = 10000
- %
- % Do not execute instructions in @tex.
- \def\tex{\doignore{tex}}%
- % Do not execute macro definitions.
- % `c' is a comment character, so the word `macro' will get cut off.
- \def\macro{\doignore{ma}}%
+ % And now expand that command.
+ \obeylines %
+ \doignoretext ^^M%
+ }%
+}
+
+\def\doignoreyyy#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty % Nothing found.
+ \let\next\doignoretextzzz
+ \else % Found a nested condition, ...
+ \advance\doignorecount by 1
+ \let\next\doignoretextyyy % ..., look for another.
+ % If we're here, #1 ends with ^^M\ifinfo (for example).
+ \fi
+ \next #1% the token \_STOP_ is present just after this macro.
+}
+
+% We have to swallow the remaining "\_STOP_".
+%
+\def\doignoretextzzz#1{%
+ \ifnum\doignorecount = 0 % We have just found the outermost @end.
+ \let\next\enddoignore
+ \else % Still inside a nested condition.
+ \advance\doignorecount by -1
+ \let\next\doignoretext % Look for the next @end.
+ \fi
+ \next
}
+% Finish off ignored text.
+\def\enddoignore{\endgroup\ignorespaces}
+
+
% @set VAR sets the variable VAR to an empty value.
% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
%
% Since we want to separate VAR from REST-OF-LINE (which might be
% empty), we can't just use \parsearg; we have to insert a space of our
% own to delimit the rest of the line, and then take it out again if we
-% didn't need it. Make sure the catcode of space is correct to avoid
-% losing inside @example, for instance.
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
%
-\def\set{\begingroup\catcode` =10
- \catcode`\-=12 \catcode`\_=12 % Allow - and _ in VAR.
- \parsearg\setxxx}
-\def\setxxx#1{\setyyy#1 \endsetyyy}
+\parseargdef\set{\setyyy#1 \endsetyyy}
\def\setyyy#1 #2\endsetyyy{%
- \def\temp{#2}%
- \ifx\temp\empty \global\expandafter\let\csname SET#1\endcsname = \empty
- \else \setzzz{#1}#2\endsetzzz % Remove the trailing space \setxxx inserted.
- \fi
- \endgroup
+ {%
+ \makevalueexpandable
+ \def\temp{#2}%
+ \edef\next{\gdef\makecsname{SET#1}}%
+ \ifx\temp\empty
+ \next{}%
+ \else
+ \setzzz#2\endsetzzz
+ \fi
+ }%
}
-% Can't use \xdef to pre-expand #2 and save some time, since \temp or
-% \next or other control sequences that we've defined might get us into
-% an infinite loop. Consider `@set foo @cite{bar}'.
-\def\setzzz#1#2 \endsetzzz{\expandafter\gdef\csname SET#1\endcsname{#2}}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
% @clear VAR clears (i.e., unsets) the variable VAR.
%
-\def\clear{\parsearg\clearxxx}
-\def\clearxxx#1{\global\expandafter\let\csname SET#1\endcsname=\relax}
+\parseargdef\clear{%
+ {%
+ \makevalueexpandable
+ \global\expandafter\let\csname SET#1\endcsname=\relax
+ }%
+}
% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
{
- \catcode`\_ = \active
+ \catcode`\- = \active \catcode`\_ = \active
%
- % We might end up with active _ or - characters in the argument if
- % we're called from @code, as @code{@value{foo-bar_}}. So \let any
- % such active characters to their normal equivalents.
- \gdef\value{\begingroup
+ \gdef\makevalueexpandable{%
+ \let\value = \expandablevalue
+ % We don't want these characters active, ...
\catcode`\-=\other \catcode`\_=\other
- \indexbreaks \let_\normalunderscore
- \valuexxx}
+ % ..., but we might end up with active ones in the argument if
+ % we're called from @code, as @code{@value{foo-bar_}}, though.
+ % So \let them to their normal equivalents.
+ \let-\realdash \let_\normalunderscore
+ }
}
-\def\valuexxx#1{\expandablevalue{#1}\endgroup}
% We have this subroutine so that we can handle at least some @value's
-% properly in indexes (we \let\value to this in \indexdummies). Ones
-% whose names contain - or _ still won't work, but we can't do anything
-% about that. The command has to be fully expandable (if the variable
-% is set), since the result winds up in the index file. This means that
-% if the variable's value contains other Texinfo commands, it's almost
-% certain it will fail (although perhaps we could fix that with
-% sufficient work to do a one-level expansion on the result, instead of
-% complete).
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file. This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
%
\def\expandablevalue#1{%
\expandafter\ifx\csname SET#1\endcsname\relax
@@ -2818,55 +3092,36 @@ width0pt\relax} \fi
% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
% with @set.
%
-\def\ifset{\parsearg\doifset}
-\def\doifset#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \let\next=\ifsetfail
- \else
- \let\next=\ifsetsucceed
- \fi
- \next
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+ {%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname SET#2\endcsname\relax
+ #1% If not set, redefine \next.
+ \fi
+ \expandafter
+ }\next
}
-\def\ifsetsucceed{\conditionalsucceed{ifset}}
-\def\ifsetfail{\nestedignore{ifset}}
-\defineunmatchedend{ifset}
+\def\ifsetfail{\doignore{ifset}}
% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
% defined with @set, or has been undefined with @clear.
%
-\def\ifclear{\parsearg\doifclear}
-\def\doifclear#1{%
- \expandafter\ifx\csname SET#1\endcsname\relax
- \let\next=\ifclearsucceed
- \else
- \let\next=\ifclearfail
- \fi
- \next
-}
-\def\ifclearsucceed{\conditionalsucceed{ifclear}}
-\def\ifclearfail{\nestedignore{ifclear}}
-\defineunmatchedend{ifclear}
-
-% @iftex, @ifnothtml, @ifnotinfo, @ifnotplaintext always succeed; we
-% read the text following, through the first @end iftex (etc.). Make
-% `@end iftex' (etc.) valid only after an @iftex.
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
%
-\def\iftex{\conditionalsucceed{iftex}}
-\def\ifnothtml{\conditionalsucceed{ifnothtml}}
-\def\ifnotinfo{\conditionalsucceed{ifnotinfo}}
-\def\ifnotplaintext{\conditionalsucceed{ifnotplaintext}}
-\defineunmatchedend{iftex}
-\defineunmatchedend{ifnothtml}
-\defineunmatchedend{ifnotinfo}
-\defineunmatchedend{ifnotplaintext}
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
-% True conditional. Since \set globally defines its variables, we can
-% just start and end a group (to keep the @end definition undefined at
-% the outer level).
-%
-\def\conditionalsucceed#1{\begingroup
- \expandafter\def\csname E#1\endcsname{\endgroup}%
-}
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory=\comment
% @defininfoenclose.
\let\definfoenclose=\comment
@@ -2876,9 +3131,8 @@ width0pt\relax} \fi
% Index generation facilities
% Define \newwrite to be identical to plain tex's \newwrite
-% except not \outer, so it can be used within \newindex.
-{\catcode`\@=11
-\gdef\newwrite{\alloc@7\write\chardef\sixt@@n}}
+% except not \outer, so it can be used within macros and \if's.
+\edef\newwrite{\makecsname{ptexnewwrite}}
% \newindex {foo} defines an index named foo.
% It automatically defines \fooindex such that
@@ -2917,10 +3171,10 @@ width0pt\relax} \fi
% @synindex foo bar makes index foo feed into index bar.
% Do this instead of @defindex foo if you don't want it as a separate index.
-%
+%
% @syncodeindex foo bar similar, but put all entries made for index foo
% inside @code.
-%
+%
\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
@@ -2962,204 +3216,205 @@ width0pt\relax} \fi
% Take care of Texinfo commands that can appear in an index entry.
% Since there are some commands we want to expand, and others we don't,
% we have to laboriously prevent expansion for those that we don't.
-%
+%
\def\indexdummies{%
+ \escapechar = `\\ % use backslash in output files.
\def\@{@}% change to @@ when we switch to @ as escape char in index files.
\def\ {\realbackslash\space }%
% Need these in case \tex is in effect and \{ is a \delimiter again.
% But can't use \lbracecmd and \rbracecmd because texindex assumes
- % braces and backslashes are used only as delimiters.
+ % braces and backslashes are used only as delimiters.
\let\{ = \mylbrace
\let\} = \myrbrace
%
- % \definedummyword defines \#1 as \realbackslash #1\space, thus
- % effectively preventing its expansion. This is used only for control
- % words, not control letters, because the \space would be incorrect
- % for control characters, but is needed to separate the control word
- % from whatever follows.
- %
- % For control letters, we have \definedummyletter, which omits the
- % space.
- %
- % These can be used both for control words that take an argument and
- % those that do not. If it is followed by {arg} in the input, then
- % that will dutifully get written to the index (or wherever).
- %
- \def\definedummyword##1{%
- \expandafter\def\csname ##1\endcsname{\realbackslash ##1\space}%
- }%
- \def\definedummyletter##1{%
- \expandafter\def\csname ##1\endcsname{\realbackslash ##1}%
- }%
- %
% Do the redefinitions.
\commondummies
}
-% For the aux file, @ is the escape character. So we want to redefine
-% everything using @ instead of \realbackslash. When everything uses
-% @, this will be simpler.
-%
+% For the aux and toc files, @ is the escape character. So we want to
+% redefine everything using @ as the escape character (instead of
+% \realbackslash, still used for index files). When everything uses @,
+% this will be simpler.
+%
\def\atdummies{%
\def\@{@@}%
\def\ {@ }%
\let\{ = \lbraceatcmd
\let\} = \rbraceatcmd
%
- % (See comments in \indexdummies.)
- \def\definedummyword##1{%
- \expandafter\def\csname ##1\endcsname{@##1\space}%
- }%
- \def\definedummyletter##1{%
- \expandafter\def\csname ##1\endcsname{@##1}%
- }%
- %
% Do the redefinitions.
\commondummies
}
-% Called from \indexdummies and \atdummies. \definedummyword and
-% \definedummyletter must be defined first.
-%
+% Called from \indexdummies and \atdummies.
+%
\def\commondummies{%
%
- \normalturnoffactive
+ % \definedummyword defines \#1 as \string\#1\space, thus effectively
+ % preventing its expansion. This is used only for control% words,
+ % not control letters, because the \space would be incorrect for
+ % control characters, but is needed to separate the control word
+ % from whatever follows.
%
- % Control letters and accents.
- \definedummyletter{_}%
- \definedummyletter{,}%
- \definedummyletter{"}%
- \definedummyletter{`}%
- \definedummyletter{'}%
- \definedummyletter{^}%
- \definedummyletter{~}%
- \definedummyletter{=}%
- \definedummyword{u}%
- \definedummyword{v}%
- \definedummyword{H}%
- \definedummyword{dotaccent}%
- \definedummyword{ringaccent}%
- \definedummyword{tieaccent}%
- \definedummyword{ubaraccent}%
- \definedummyword{udotaccent}%
- \definedummyword{dotless}%
- %
- % Other non-English letters.
- \definedummyword{AA}%
- \definedummyword{AE}%
- \definedummyword{L}%
- \definedummyword{OE}%
- \definedummyword{O}%
- \definedummyword{aa}%
- \definedummyword{ae}%
- \definedummyword{l}%
- \definedummyword{oe}%
- \definedummyword{o}%
- \definedummyword{ss}%
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword ##1{\def##1{\string##1\space}}%
+ \def\definedummyletter##1{\def##1{\string##1}}%
+ \let\definedummyaccent\definedummyletter
+ %
+ \commondummiesnofonts
+ %
+ \definedummyletter\_%
+ %
+ % Non-English letters.
+ \definedummyword\AA
+ \definedummyword\AE
+ \definedummyword\L
+ \definedummyword\OE
+ \definedummyword\O
+ \definedummyword\aa
+ \definedummyword\ae
+ \definedummyword\l
+ \definedummyword\oe
+ \definedummyword\o
+ \definedummyword\ss
+ \definedummyword\exclamdown
+ \definedummyword\questiondown
+ \definedummyword\ordf
+ \definedummyword\ordm
%
% Although these internal commands shouldn't show up, sometimes they do.
- \definedummyword{bf}%
- \definedummyword{gtr}%
- \definedummyword{hat}%
- \definedummyword{less}%
- \definedummyword{sf}%
- \definedummyword{sl}%
- \definedummyword{tclose}%
- \definedummyword{tt}%
- %
- % Texinfo font commands.
- \definedummyword{b}%
- \definedummyword{i}%
- \definedummyword{r}%
- \definedummyword{sc}%
- \definedummyword{t}%
- %
- \definedummyword{TeX}%
- \definedummyword{acronym}%
- \definedummyword{cite}%
- \definedummyword{code}%
- \definedummyword{command}%
- \definedummyword{dfn}%
- \definedummyword{dots}%
- \definedummyword{emph}%
- \definedummyword{env}%
- \definedummyword{file}%
- \definedummyword{kbd}%
- \definedummyword{key}%
- \definedummyword{math}%
- \definedummyword{option}%
- \definedummyword{samp}%
- \definedummyword{strong}%
- \definedummyword{uref}%
- \definedummyword{url}%
- \definedummyword{var}%
- \definedummyword{w}%
+ \definedummyword\bf
+ \definedummyword\gtr
+ \definedummyword\hat
+ \definedummyword\less
+ \definedummyword\sf
+ \definedummyword\sl
+ \definedummyword\tclose
+ \definedummyword\tt
+ %
+ \definedummyword\LaTeX
+ \definedummyword\TeX
%
% Assorted special characters.
- \definedummyword{bullet}%
- \definedummyword{copyright}%
- \definedummyword{dots}%
- \definedummyword{enddots}%
- \definedummyword{equiv}%
- \definedummyword{error}%
- \definedummyword{expansion}%
- \definedummyword{minus}%
- \definedummyword{pounds}%
- \definedummyword{point}%
- \definedummyword{print}%
- \definedummyword{result}%
- %
- % Handle some cases of @value -- where the variable name does not
- % contain - or _, and the value does not contain any
- % (non-fully-expandable) commands.
- \let\value = \expandablevalue
+ \definedummyword\bullet
+ \definedummyword\comma
+ \definedummyword\copyright
+ \definedummyword\registeredsymbol
+ \definedummyword\dots
+ \definedummyword\enddots
+ \definedummyword\equiv
+ \definedummyword\error
+ \definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\minus
+ \definedummyword\pounds
+ \definedummyword\point
+ \definedummyword\print
+ \definedummyword\result
+ %
+ % We want to disable all macros so that they are not expanded by \write.
+ \macrolist
%
- % Normal spaces, not active ones.
- \unsepspaces
+ \normalturnoffactive
%
- % No macro expansion.
- \turnoffmacros
+ % Handle some cases of @value -- where it does not contain any
+ % (non-fully-expandable) commands.
+ \makevalueexpandable
}
-% If an index command is used in an @example environment, any spaces
-% therein should become regular spaces in the raw index file, not the
-% expansion of \tie (\leavevmode \penalty \@M \ ).
-{\obeyspaces
- \gdef\unsepspaces{\obeyspaces\let =\space}}
-
+% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+%
+% Better have this without active chars.
+{
+ \catcode`\~=\other
+ \gdef\commondummiesnofonts{%
+ % Control letters and accents.
+ \definedummyletter\!%
+ \definedummyaccent\"%
+ \definedummyaccent\'%
+ \definedummyletter\*%
+ \definedummyaccent\,%
+ \definedummyletter\.%
+ \definedummyletter\/%
+ \definedummyletter\:%
+ \definedummyaccent\=%
+ \definedummyletter\?%
+ \definedummyaccent\^%
+ \definedummyaccent\`%
+ \definedummyaccent\~%
+ \definedummyword\u
+ \definedummyword\v
+ \definedummyword\H
+ \definedummyword\dotaccent
+ \definedummyword\ringaccent
+ \definedummyword\tieaccent
+ \definedummyword\ubaraccent
+ \definedummyword\udotaccent
+ \definedummyword\dotless
+ %
+ % Texinfo font commands.
+ \definedummyword\b
+ \definedummyword\i
+ \definedummyword\r
+ \definedummyword\sc
+ \definedummyword\t
+ %
+ % Commands that take arguments.
+ \definedummyword\acronym
+ \definedummyword\cite
+ \definedummyword\code
+ \definedummyword\command
+ \definedummyword\dfn
+ \definedummyword\emph
+ \definedummyword\env
+ \definedummyword\file
+ \definedummyword\kbd
+ \definedummyword\key
+ \definedummyword\math
+ \definedummyword\option
+ \definedummyword\samp
+ \definedummyword\strong
+ \definedummyword\tie
+ \definedummyword\uref
+ \definedummyword\url
+ \definedummyword\var
+ \definedummyword\verb
+ \definedummyword\w
+ }
+}
% \indexnofonts is used when outputting the strings to sort the index
% by, and when constructing control sequence names. It eliminates all
% control sequences and just writes whatever the best ASCII sort string
% would be for a given command (usually its argument).
%
-\def\indexdummytex{TeX}
-\def\indexdummydots{...}
-%
\def\indexnofonts{%
+ % Accent commands should become @asis.
+ \def\definedummyaccent##1{\let##1\asis}%
+ % We can just ignore other control letters.
+ \def\definedummyletter##1{\let##1\empty}%
+ % Hopefully, all control words can become @asis.
+ \let\definedummyword\definedummyaccent
+ %
+ \commondummiesnofonts
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
\def\ { }%
\def\@{@}%
% how to handle braces?
\def\_{\normalunderscore}%
%
- \let\,=\asis
- \let\"=\asis
- \let\`=\asis
- \let\'=\asis
- \let\^=\asis
- \let\~=\asis
- \let\==\asis
- \let\u=\asis
- \let\v=\asis
- \let\H=\asis
- \let\dotaccent=\asis
- \let\ringaccent=\asis
- \let\tieaccent=\asis
- \let\ubaraccent=\asis
- \let\udotaccent=\asis
- \let\dotless=\asis
- %
- % Other non-English letters.
+ % Non-English letters.
\def\AA{AA}%
\def\AE{AE}%
\def\L{L}%
@@ -3173,130 +3428,178 @@ width0pt\relax} \fi
\def\ss{ss}%
\def\exclamdown{!}%
\def\questiondown{?}%
+ \def\ordf{a}%
+ \def\ordm{o}%
%
- % Don't no-op \tt, since it isn't a user-level command
- % and is used in the definitions of the active chars like <, >, |, etc.
- % Likewise with the other plain tex font commands.
- %\let\tt=\asis
+ \def\LaTeX{LaTeX}%
+ \def\TeX{TeX}%
%
- % Texinfo font commands.
- \let\b=\asis
- \let\i=\asis
- \let\r=\asis
- \let\sc=\asis
- \let\t=\asis
- %
- \let\TeX=\indexdummytex
- \let\acronym=\asis
- \let\cite=\asis
- \let\code=\asis
- \let\command=\asis
- \let\dfn=\asis
- \let\dots=\indexdummydots
- \let\emph=\asis
- \let\env=\asis
- \let\file=\asis
- \let\kbd=\asis
- \let\key=\asis
- \let\math=\asis
- \let\option=\asis
- \let\samp=\asis
- \let\strong=\asis
- \let\uref=\asis
- \let\url=\asis
- \let\var=\asis
- \let\w=\asis
+ % Assorted special characters.
+ % (The following {} will end up in the sort string, but that's ok.)
+ \def\bullet{bullet}%
+ \def\comma{,}%
+ \def\copyright{copyright}%
+ \def\registeredsymbol{R}%
+ \def\dots{...}%
+ \def\enddots{...}%
+ \def\equiv{==}%
+ \def\error{error}%
+ \def\euro{euro}%
+ \def\expansion{==>}%
+ \def\minus{-}%
+ \def\pounds{pounds}%
+ \def\point{.}%
+ \def\print{-|}%
+ \def\result{=>}%
+ %
+ % We need to get rid of all macros, leaving only the arguments (if present).
+ % Of course this is not nearly correct, but it is the best we can do for now.
+ % makeinfo does not expand macros in the argument to @deffn, which ends up
+ % writing an index entry, and texindex isn't prepared for an index sort entry
+ % that starts with \.
+ %
+ % Since macro invocations are followed by braces, we can just redefine them
+ % to take a single TeX argument. The case of a macro invocation that
+ % goes to end-of-line is not handled.
+ %
+ \macrolist
}
\let\indexbackslash=0 %overridden during \printindex.
\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
-% For \ifx comparisons.
-\def\emptymacro{\empty}
-
% Most index entries go through here, but \dosubind is the general case.
-%
-\def\doind#1#2{\dosubind{#1}{#2}\empty}
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
% Workhorse for all \fooindexes.
% #1 is name of index, #2 is stuff to put there, #3 is subentry --
-% \empty if called from \doind, as we usually are. The main exception
-% is with defuns, which call us directly.
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
%
\def\dosubind#1#2#3{%
+ \iflinks
+ {%
+ % Store the main index entry text (including the third arg).
+ \toks0 = {#2}%
+ % If third arg is present, precede it with a space.
+ \def\thirdarg{#3}%
+ \ifx\thirdarg\empty \else
+ \toks0 = \expandafter{\the\toks0 \space #3}%
+ \fi
+ %
+ \edef\writeto{\csname#1indfile\endcsname}%
+ %
+ \ifvmode
+ \dosubindsanitize
+ \else
+ \dosubindwrite
+ \fi
+ }%
+ \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
% Put the index entry in the margin if desired.
\ifx\SETmarginindex\relax\else
- \insert\margin{\hbox{\vrule height8pt depth3pt width0pt #2}}%
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
\fi
- {%
- \count255=\lastpenalty
- {%
- \indexdummies % Must do this here, since \bf, etc expand at this stage
- \escapechar=`\\
- {%
- \let\folio = 0% We will expand all macros now EXCEPT \folio.
- \def\rawbackslashxx{\indexbackslash}% \indexbackslash isn't defined now
- % so it will be output as is; and it will print as backslash.
- %
- % The main index entry text.
- \toks0 = {#2}%
- %
- % If third arg is present, precede it with space in sort key.
- \def\thirdarg{#3}%
- \ifx\thirdarg\emptymacro \else
- % If the third (subentry) arg is present, add it to the index
- % line to write.
- \toks0 = \expandafter{\the\toks0 \space #3}%
- \fi
- %
- % Process the index entry with all font commands turned off, to
- % get the string to sort by.
- {\indexnofonts
- \edef\temp{\the\toks0}% need full expansion
- \xdef\indexsorttmp{\temp}%
- }%
- %
- % Set up the complete index entry, with both the sort key and
- % the original text, including any font commands. We write
- % three arguments to \entry to the .?? file (four in the
- % subentry case), texindex reduces to two when writing the .??s
- % sorted result.
- \edef\temp{%
- \write\csname#1indfile\endcsname{%
- \realbackslash entry{\indexsorttmp}{\folio}{\the\toks0}}%
- }%
- %
- % If a skip is the last thing on the list now, preserve it
- % by backing up by \lastskip, doing the \write, then inserting
- % the skip again. Otherwise, the whatsit generated by the
- % \write will make \lastskip zero. The result is that sequences
- % like this:
- % @end defun
- % @tindex whatever
- % @defun ...
- % will have extra space inserted, because the \medbreak in the
- % start of the @defun won't see the skip inserted by the @end of
- % the previous defun.
- %
- % But don't do any of this if we're not in vertical mode. We
- % don't want to do a \vskip and prematurely end a paragraph.
- %
- % Avoid page breaks due to these extra skips, too.
- %
- \iflinks
- \ifvmode
- \skip0 = \lastskip
- \ifdim\lastskip = 0pt \else \nobreak\vskip-\skip0 \fi
- \fi
- %
- \temp % do the write
- %
- \ifvmode \ifdim\skip0 = 0pt \else \nobreak\vskip\skip0 \fi \fi
- \fi
- }%
- }%
- \penalty\count255
+ %
+ % Remember, we are within a group.
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
+ % Set up the complete index entry, with both the sort key and
+ % the original text, including any font commands. We write
+ % three arguments to \entry to the .?? file (four in the
+ % subentry case), texindex reduces to two when writing the .??s
+ % sorted result.
+ \edef\temp{%
+ \write\writeto{%
+ \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
}%
+ \temp
+}
+
+% Take care of unwanted page breaks:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again. Otherwise, the whatsit generated by the
+% \write will make \lastskip zero. The result is that sequences
+% like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode. We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip. \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip. The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+% ..., ready, GO:
+%
+\def\dosubindsanitize{%
+ % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+ \skip0 = \lastskip
+ \edef\lastskipmacro{\the\lastskip}%
+ \count255 = \lastpenalty
+ %
+ % If \lastskip is nonzero, that means the last item was a
+ % skip. And since a skip is discardable, that means this
+ % -\skip0 glue we're inserting is preceded by a
+ % non-discardable item, therefore it is not a potential
+ % breakpoint, therefore no \nobreak needed.
+ \ifx\lastskipmacro\zeroskipmacro
+ \else
+ \vskip-\skip0
+ \fi
+ %
+ \dosubindwrite
+ %
+ \ifx\lastskipmacro\zeroskipmacro
+ % If \lastskip was zero, perhaps the last item was a penalty, and
+ % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
+ % to re-insert the same penalty (values >10000 are used for various
+ % signals); since we just inserted a non-discardable item, any
+ % following glue (such as a \parskip) would be a breakpoint. For example:
+ %
+ % @deffn deffn-whatever
+ % @vindex index-whatever
+ % Description.
+ % would allow a break between the index-whatever whatsit
+ % and the "Description." paragraph.
+ \ifnum\count255>9999 \penalty\count255 \fi
+ \else
+ % On the other hand, if we had a nonzero \lastskip,
+ % this make-up glue would be preceded by a non-discardable item
+ % (the whatsit from the \write), so we must insert a \nobreak.
+ \nobreak\vskip\skip0
+ \fi
}
% The index entry written in the file actually looks like
@@ -3334,13 +3637,12 @@ width0pt\relax} \fi
% @printindex causes a particular index (the ??s file) to get printed.
% It does not print any chapter heading (usually an @unnumbered).
%
-\def\printindex{\parsearg\doprintindex}
-\def\doprintindex#1{\begingroup
+\parseargdef\printindex{\begingroup
\dobreak \chapheadingskip{10000}%
%
\smallfonts \rm
\tolerance = 9500
- \indexbreaks
+ \everypar = {}% don't want the \kern\-parindent from indentation suppression.
%
% See if the index file exists and is nonempty.
% Change catcode of @ here so that if the index file contains
@@ -3367,7 +3669,7 @@ width0pt\relax} \fi
% Index files are almost Texinfo source, but we use \ as the escape
% character. It would be better to use @, but that's too big a change
% to make right now.
- \def\indexbackslash{\rawbackslashxx}%
+ \def\indexbackslash{\backslashcurfont}%
\catcode`\\ = 0
\escapechar = `\\
\begindoublecolumns
@@ -3389,7 +3691,10 @@ width0pt\relax} \fi
\removelastskip
%
% We like breaks before the index initials, so insert a bonus.
- \penalty -300
+ \nobreak
+ \vskip 0pt plus 3\baselineskip
+ \penalty 0
+ \vskip 0pt plus -3\baselineskip
%
% Typeset the initial. Making this add up to a whole number of
% baselineskips increases the chance of the dots lining up from column
@@ -3399,80 +3704,100 @@ width0pt\relax} \fi
% No shrink because it confuses \balancecolumns.
\vskip 1.67\baselineskip plus .5\baselineskip
\leftline{\secbf #1}%
- \vskip .33\baselineskip plus .1\baselineskip
- %
% Do our best not to break after the initial.
\nobreak
+ \vskip .33\baselineskip plus .1\baselineskip
}}
-% This typesets a paragraph consisting of #1, dot leaders, and then #2
-% flush to the right margin. It is used for index and table of contents
-% entries. The paragraph is indented by \leftskip.
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin. It is used for index
+% and table of contents entries. The paragraph is indented by \leftskip.
%
-\def\entry#1#2{\begingroup
- %
- % Start a new paragraph if necessary, so our assignments below can't
- % affect previous text.
- \par
- %
- % Do not fill out the last line with white space.
- \parfillskip = 0in
- %
- % No extra space above this paragraph.
- \parskip = 0in
- %
- % Do not prefer a separate line ending with a hyphen to fewer lines.
- \finalhyphendemerits = 0
- %
- % \hangindent is only relevant when the entry text and page number
- % don't both fit on one line. In that case, bob suggests starting the
- % dots pretty far over on the line. Unfortunately, a large
- % indentation looks wrong when the entry text itself is broken across
- % lines. So we use a small indentation and put up with long leaders.
- %
- % \hangafter is reset to 1 (which is the value we want) at the start
- % of each paragraph, so we need not do anything with that.
- \hangindent = 2em
- %
- % When the entry text needs to be broken, just fill out the first line
- % with blank space.
- \rightskip = 0pt plus1fil
- %
- % A bit of stretch before each entry for the benefit of balancing columns.
- \vskip 0pt plus1pt
- %
- % Start a ``paragraph'' for the index entry so the line breaking
- % parameters we've set above will have an effect.
- \noindent
- %
- % Insert the text of the index entry. TeX will do line-breaking on it.
- #1%
- % The following is kludged to not output a line of dots in the index if
- % there are no page numbers. The next person who breaks this will be
- % cursed by a Unix daemon.
- \def\tempa{{\rm }}%
- \def\tempb{#2}%
- \edef\tempc{\tempa}%
- \edef\tempd{\tempb}%
- \ifx\tempc\tempd\ \else%
+% A straightforward implementation would start like this:
+% \def\entry#1#2{...
+% But this frozes the catcodes in the argument, and can cause problems to
+% @code, which sets - active. This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+%
+% The right solution is to prevent \entry from swallowing the whole text.
+% --kasal, 21nov03
+\def\entry{%
+ \begingroup
+ %
+ % Start a new paragraph if necessary, so our assignments below can't
+ % affect previous text.
+ \par
+ %
+ % Do not fill out the last line with white space.
+ \parfillskip = 0in
+ %
+ % No extra space above this paragraph.
+ \parskip = 0in
+ %
+ % Do not prefer a separate line ending with a hyphen to fewer lines.
+ \finalhyphendemerits = 0
%
- % If we must, put the page number on a line of its own, and fill out
- % this line with blank space. (The \hfil is overwhelmed with the
- % fill leaders glue in \indexdotfill if the page number does fit.)
- \hfil\penalty50
- \null\nobreak\indexdotfill % Have leaders before the page number.
+ % \hangindent is only relevant when the entry text and page number
+ % don't both fit on one line. In that case, bob suggests starting the
+ % dots pretty far over on the line. Unfortunately, a large
+ % indentation looks wrong when the entry text itself is broken across
+ % lines. So we use a small indentation and put up with long leaders.
%
- % The `\ ' here is removed by the implicit \unskip that TeX does as
- % part of (the primitive) \par. Without it, a spurious underfull
- % \hbox ensues.
- \ifpdf
- \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ % \hangafter is reset to 1 (which is the value we want) at the start
+ % of each paragraph, so we need not do anything with that.
+ \hangindent = 2em
+ %
+ % When the entry text needs to be broken, just fill out the first line
+ % with blank space.
+ \rightskip = 0pt plus1fil
+ %
+ % A bit of stretch before each entry for the benefit of balancing
+ % columns.
+ \vskip 0pt plus1pt
+ %
+ % Swallow the left brace of the text (first parameter):
+ \afterassignment\doentry
+ \let\temp =
+}
+\def\doentry{%
+ \bgroup % Instead of the swallowed brace.
+ \noindent
+ \aftergroup\finishentry
+ % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+ % #1 is the page number.
+ %
+ % The following is kludged to not output a line of dots in the index if
+ % there are no page numbers. The next person who breaks this will be
+ % cursed by a Unix daemon.
+ \def\tempa{{\rm }}%
+ \def\tempb{#1}%
+ \edef\tempc{\tempa}%
+ \edef\tempd{\tempb}%
+ \ifx\tempc\tempd
+ \ %
\else
- \ #2% The page number ends the paragraph.
+ %
+ % If we must, put the page number on a line of its own, and fill out
+ % this line with blank space. (The \hfil is overwhelmed with the
+ % fill leaders glue in \indexdotfill if the page number does fit.)
+ \hfil\penalty50
+ \null\nobreak\indexdotfill % Have leaders before the page number.
+ %
+ % The `\ ' here is removed by the implicit \unskip that TeX does as
+ % part of (the primitive) \par. Without it, a spurious underfull
+ % \hbox ensues.
+ \ifpdf
+ \pdfgettoks#1.%
+ \ \the\toksA
+ \else
+ \ #1%
+ \fi
\fi
- \fi%
- \par
-\endgroup}
+ \par
+ \endgroup
+}
% Like \dotfill except takes at least 1 em.
\def\indexdotfill{\cleaders
@@ -3583,7 +3908,7 @@ width0pt\relax} \fi
\wd0=\hsize \wd2=\hsize
\hbox to\pagewidth{\box0\hfil\box2}%
}
-%
+%
% All done with double columns.
\def\enddoublecolumns{%
\output = {%
@@ -3641,6 +3966,12 @@ width0pt\relax} \fi
\message{sectioning,}
% Chapters, sections, etc.
+% \unnumberedno is an oxymoron, of course. But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number". We avoid collisions with chapter
+% numbers by starting them at 10000. (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
\newcount\chapno
\newcount\secno \secno=0
\newcount\subsecno \subsecno=0
@@ -3648,9 +3979,12 @@ width0pt\relax} \fi
% This counter is funny since it counts through charcodes of letters A, B, ...
\newcount\appendixno \appendixno = `\@
+%
% \def\appendixletter{\char\the\appendixno}
-% We do the following for the sake of pdftex, which needs the actual
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
% letter in the expansion, not just typeset.
+%
\def\appendixletter{%
\ifnum\appendixno=`A A%
\else\ifnum\appendixno=`B B%
@@ -3688,11 +4022,12 @@ width0pt\relax} \fi
% Each @chapter defines this as the name of the chapter.
% page headings and footings can use it. @section does likewise.
+% However, they are not reliable, because we don't use marks.
\def\thischapter{}
\def\thissection{}
\newcount\absseclevel % used to calculate proper heading level
-\newcount\secbase\secbase=0 % @raise/lowersections modify this count
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
% @raisesections: treat @section as chapter, @subsection as section, etc.
\def\raisesections{\global\advance\secbase by -1}
@@ -3702,118 +4037,142 @@ width0pt\relax} \fi
\def\lowersections{\global\advance\secbase by 1}
\let\down=\lowersections % original BFox name
-% Choose a numbered-heading macro
-% #1 is heading level if unmodified by @raisesections or @lowersections
-% #2 is text for heading
-\def\numhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \chapterzzz{#2}
-\or
- \seczzz{#2}
-\or
- \numberedsubseczzz{#2}
-\or
- \numberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \chapterzzz{#2}
+% we only have subsub.
+\chardef\maxseclevel = 3
+%
+% A numbered section within an unnumbered changes to unnumbered too.
+% To achive this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unmlevel = \maxseclevel
+%
+% Trace whether the current chapter is an appendix or not:
+% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+\def\chapheadtype{N}
+
+% Choose a heading macro
+% #1 is heading type
+% #2 is heading level
+% #3 is text for heading
+\def\genhead#1#2#3{%
+ % Compute the abs. sec. level:
+ \absseclevel=#2
+ \advance\absseclevel by \secbase
+ % Make sure \absseclevel doesn't fall outside the range:
+ \ifnum \absseclevel < 0
+ \absseclevel = 0
\else
- \numberedsubsubseczzz{#2}
+ \ifnum \absseclevel > 3
+ \absseclevel = 3
+ \fi
\fi
-\fi
-}
-
-% like \numhead, but chooses appendix heading levels
-\def\apphead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \appendixzzz{#2}
-\or
- \appendixsectionzzz{#2}
-\or
- \appendixsubseczzz{#2}
-\or
- \appendixsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \appendixzzz{#2}
+ % The heading type:
+ \def\headtype{#1}%
+ \if \headtype U%
+ \ifnum \absseclevel < \unmlevel
+ \chardef\unmlevel = \absseclevel
+ \fi
\else
- \appendixsubsubseczzz{#2}
+ % Check for appendix sections:
+ \ifnum \absseclevel = 0
+ \edef\chapheadtype{\headtype}%
+ \else
+ \if \headtype A\if \chapheadtype N%
+ \errmessage{@appendix... within a non-appendix chapter}%
+ \fi\fi
+ \fi
+ % Check for numbered within unnumbered:
+ \ifnum \absseclevel > \unmlevel
+ \def\headtype{U}%
+ \else
+ \chardef\unmlevel = 3
+ \fi
\fi
-\fi
-}
-
-% like \numhead, but chooses numberless heading levels
-\def\unnmhead#1#2{\absseclevel=\secbase\advance\absseclevel by #1
-\ifcase\absseclevel
- \unnumberedzzz{#2}
-\or
- \unnumberedseczzz{#2}
-\or
- \unnumberedsubseczzz{#2}
-\or
- \unnumberedsubsubseczzz{#2}
-\else
- \ifnum \absseclevel<0
- \unnumberedzzz{#2}
+ % Now print the heading:
+ \if \headtype U%
+ \ifcase\absseclevel
+ \unnumberedzzz{#3}%
+ \or \unnumberedseczzz{#3}%
+ \or \unnumberedsubseczzz{#3}%
+ \or \unnumberedsubsubseczzz{#3}%
+ \fi
\else
- \unnumberedsubsubseczzz{#2}
+ \if \headtype A%
+ \ifcase\absseclevel
+ \appendixzzz{#3}%
+ \or \appendixsectionzzz{#3}%
+ \or \appendixsubseczzz{#3}%
+ \or \appendixsubsubseczzz{#3}%
+ \fi
+ \else
+ \ifcase\absseclevel
+ \chapterzzz{#3}%
+ \or \seczzz{#3}%
+ \or \numberedsubseczzz{#3}%
+ \or \numberedsubsubseczzz{#3}%
+ \fi
+ \fi
\fi
-\fi
+ \suppressfirstparagraphindent
}
-% @chapter, @appendix, @unnumbered.
-\def\thischaptername{No Chapter Title}
-\outer\def\chapter{\parsearg\chapteryyy}
-\def\chapteryyy #1{\numhead0{#1}} % normally numhead0 calls chapterzzz
-\def\chapterzzz #1{%
- \secno=0 \subsecno=0 \subsubsecno=0
- \global\advance \chapno by 1 \message{\putwordChapter\space \the\chapno}%
- \chapmacro {#1}{\the\chapno}%
- \gdef\thissection{#1}%
- \gdef\thischaptername{#1}%
- % We don't substitute the actual chapter name into \thischapter
- % because we don't want its macros evaluated now.
- \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}%
- \writetocentry{chap}{#1}{{\the\chapno}}
- \donoderef
+% an interface:
+\def\numhead{\genhead N}
+\def\apphead{\genhead A}
+\def\unnmhead{\genhead U}
+
+% @chapter, @appendix, @unnumbered. Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+%
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v. By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+%
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+ % section resetting is \global in case the chapter is in a group, such
+ % as an @include file.
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\chapno by 1
+ %
+ % Used for \float.
+ \gdef\chaplevelprefix{\the\chapno.}%
+ \resetallfloatnos
+ %
+ \message{\putwordChapter\space \the\chapno}%
+ %
+ % Write the actual heading.
+ \chapmacro{#1}{Ynumbered}{\the\chapno}%
+ %
+ % So @section and the like are numbered underneath this chapter.
\global\let\section = \numberedsec
\global\let\subsection = \numberedsubsec
\global\let\subsubsection = \numberedsubsubsec
}
-% we use \chapno to avoid indenting back
-\def\appendixbox#1{%
- \setbox0 = \hbox{\putwordAppendix{} \the\chapno}%
- \hbox to \wd0{#1\hss}}
-
-\outer\def\appendix{\parsearg\appendixyyy}
-\def\appendixyyy #1{\apphead0{#1}} % normally apphead0 calls appendixzzz
-\def\appendixzzz #1{%
- \secno=0 \subsecno=0 \subsubsecno=0
- \global\advance \appendixno by 1
- \message{\putwordAppendix\space \appendixletter}%
- \chapmacro {#1}{\appendixbox{\putwordAppendix{} \appendixletter}}%
- \gdef\thissection{#1}%
- \gdef\thischaptername{#1}%
- \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}%
- \writetocentry{appendix}{#1}{{\appendixletter}}
- \appendixnoderef
+\outer\parseargdef\appendix{\apphead0{#1}} % normally apphead0 calls appendixzzz
+\def\appendixzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\appendixno by 1
+ \gdef\chaplevelprefix{\appendixletter.}%
+ \resetallfloatnos
+ %
+ \def\appendixnum{\putwordAppendix\space \appendixletter}%
+ \message{\appendixnum}%
+ %
+ \chapmacro{#1}{Yappendix}{\appendixletter}%
+ %
\global\let\section = \appendixsec
\global\let\subsection = \appendixsubsec
\global\let\subsubsection = \appendixsubsubsec
}
-% @centerchap is like @unnumbered, but the heading is centered.
-\outer\def\centerchap{\parsearg\centerchapyyy}
-\def\centerchapyyy #1{{\let\unnumbchapmacro=\centerchapmacro \unnumberedyyy{#1}}}
-
-% @top is like @unnumbered.
-\outer\def\top{\parsearg\unnumberedyyy}
-
-\outer\def\unnumbered{\parsearg\unnumberedyyy}
-\def\unnumberedyyy #1{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
-\def\unnumberedzzz #1{%
- \secno=0 \subsecno=0 \subsubsecno=0
+\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz
+\def\unnumberedzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\unnumberedno by 1
+ %
+ % Since an unnumbered has no number, no prefix for figures.
+ \global\let\chaplevelprefix = \empty
+ \resetallfloatnos
%
% This used to be simply \message{#1}, but TeX fully expands the
% argument to \message. Therefore, if #1 contained @-commands, TeX
@@ -3826,134 +4185,98 @@ width0pt\relax} \fi
% \the<toks register> to achieve this: TeX expands \the<toks> only once,
% simply yielding the contents of <toks register>. (We also do this for
% the toc entries.)
- \toks0 = {#1}\message{(\the\toks0)}%
+ \toks0 = {#1}%
+ \message{(\the\toks0)}%
+ %
+ \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
%
- \unnumbchapmacro {#1}%
- \gdef\thischapter{#1}\gdef\thissection{#1}%
- \writetocentry{unnumbchap}{#1}{{\the\chapno}}
- \unnumbnoderef
\global\let\section = \unnumberedsec
\global\let\subsection = \unnumberedsubsec
\global\let\subsubsection = \unnumberedsubsubsec
}
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{%
+ % Well, we could do the following in a group, but that would break
+ % an assumption that \chapmacro is called at the outermost level.
+ % Thus we are safer this way: --kasal, 24feb04
+ \let\centerparametersmaybe = \centerparameters
+ \unnmhead0{#1}%
+ \let\centerparametersmaybe = \relax
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
% Sections.
-\outer\def\numberedsec{\parsearg\secyyy}
-\def\secyyy #1{\numhead1{#1}} % normally calls seczzz
-\def\seczzz #1{%
- \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
- \gdef\thissection{#1}\secheading {#1}{\the\chapno}{\the\secno}%
- \writetocentry{sec}{#1}{{\the\chapno}{\the\secno}}
- \donoderef
- \nobreak
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
}
-\outer\def\appendixsection{\parsearg\appendixsecyyy}
-\outer\def\appendixsec{\parsearg\appendixsecyyy}
-\def\appendixsecyyy #1{\apphead1{#1}} % normally calls appendixsectionzzz
-\def\appendixsectionzzz #1{%
- \subsecno=0 \subsubsecno=0 \global\advance \secno by 1 %
- \gdef\thissection{#1}\secheading {#1}{\appendixletter}{\the\secno}%
- \writetocentry{sec}{#1}{{\appendixletter}{\the\secno}}
- \appendixnoderef
- \nobreak
+\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz
+\def\appendixsectionzzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
}
+\let\appendixsec\appendixsection
-\outer\def\unnumberedsec{\parsearg\unnumberedsecyyy}
-\def\unnumberedsecyyy #1{\unnmhead1{#1}} % normally calls unnumberedseczzz
-\def\unnumberedseczzz #1{%
- \plainsecheading {#1}\gdef\thissection{#1}%
- \writetocentry{unnumbsec}{#1}{{\the\chapno}{\the\secno}}
- \unnumbnoderef
- \nobreak
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz
+\def\unnumberedseczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
}
% Subsections.
-\outer\def\numberedsubsec{\parsearg\numberedsubsecyyy}
-\def\numberedsubsecyyy #1{\numhead2{#1}} % normally calls numberedsubseczzz
-\def\numberedsubseczzz #1{%
- \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
- \subsecheading {#1}{\the\chapno}{\the\secno}{\the\subsecno}%
- \writetocentry{subsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
- \donoderef
- \nobreak
+\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz
+\def\numberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
}
-\outer\def\appendixsubsec{\parsearg\appendixsubsecyyy}
-\def\appendixsubsecyyy #1{\apphead2{#1}} % normally calls appendixsubseczzz
-\def\appendixsubseczzz #1{%
- \gdef\thissection{#1}\subsubsecno=0 \global\advance \subsecno by 1 %
- \subsecheading {#1}{\appendixletter}{\the\secno}{\the\subsecno}%
- \writetocentry{subsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}}
- \appendixnoderef
- \nobreak
+\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz
+\def\appendixsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno}%
}
-\outer\def\unnumberedsubsec{\parsearg\unnumberedsubsecyyy}
-\def\unnumberedsubsecyyy #1{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
-\def\unnumberedsubseczzz #1{%
- \plainsubsecheading {#1}\gdef\thissection{#1}%
- \writetocentry{unnumbsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}}
- \unnumbnoderef
- \nobreak
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz
+\def\unnumberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno}%
}
% Subsubsections.
-\outer\def\numberedsubsubsec{\parsearg\numberedsubsubsecyyy}
-\def\numberedsubsubsecyyy #1{\numhead3{#1}} % normally numberedsubsubseczzz
-\def\numberedsubsubseczzz #1{%
- \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
- \subsubsecheading {#1}
- {\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
- \writetocentry{subsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
- \donoderef
- \nobreak
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz
+\def\numberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynumbered}%
+ {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\def\appendixsubsubsec{\parsearg\appendixsubsubsecyyy}
-\def\appendixsubsubsecyyy #1{\apphead3{#1}} % normally appendixsubsubseczzz
-\def\appendixsubsubseczzz #1{%
- \gdef\thissection{#1}\global\advance \subsubsecno by 1 %
- \subsubsecheading {#1}
- {\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}%
- \writetocentry{subsubsec}{#1}{{\appendixletter}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
- \appendixnoderef
- \nobreak
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz
+\def\appendixsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-\outer\def\unnumberedsubsubsec{\parsearg\unnumberedsubsubsecyyy}
-\def\unnumberedsubsubsecyyy #1{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
-\def\unnumberedsubsubseczzz #1{%
- \plainsubsubsecheading {#1}\gdef\thissection{#1}%
- \writetocentry{unnumbsubsubsec}{#1}{{\the\chapno}{\the\secno}{\the\subsecno}{\the\subsubsecno}}
- \unnumbnoderef
- \nobreak
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz
+\def\unnumberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
}
-% These are variants which are not "outer", so they can appear in @ifinfo.
-% Actually, they should now be obsolete; ordinary section commands should work.
-\def\infotop{\parsearg\unnumberedzzz}
-\def\infounnumbered{\parsearg\unnumberedzzz}
-\def\infounnumberedsec{\parsearg\unnumberedseczzz}
-\def\infounnumberedsubsec{\parsearg\unnumberedsubseczzz}
-\def\infounnumberedsubsubsec{\parsearg\unnumberedsubsubseczzz}
-
-\def\infoappendix{\parsearg\appendixzzz}
-\def\infoappendixsec{\parsearg\appendixseczzz}
-\def\infoappendixsubsec{\parsearg\appendixsubseczzz}
-\def\infoappendixsubsubsec{\parsearg\appendixsubsubseczzz}
-
-\def\infochapter{\parsearg\chapterzzz}
-\def\infosection{\parsearg\sectionzzz}
-\def\infosubsection{\parsearg\subsectionzzz}
-\def\infosubsubsection{\parsearg\subsubsectionzzz}
-
% These macros control what the section commands do, according
% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
% Define them by default for a numbered chapter.
-\global\let\section = \numberedsec
-\global\let\subsection = \numberedsubsec
-\global\let\subsubsection = \numberedsubsubsec
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
% Define @majorheading, @heading and @subheading
@@ -3966,23 +4289,27 @@ width0pt\relax} \fi
% if justification is not attempted. Hence \raggedright.
-\def\majorheading{\parsearg\majorheadingzzz}
-\def\majorheadingzzz #1{%
+\def\majorheading{%
{\advance\chapheadingskip by 10pt \chapbreak }%
- {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
- \parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ \parsearg\chapheadingzzz
+}
-\def\chapheading{\parsearg\chapheadingzzz}
-\def\chapheadingzzz #1{\chapbreak %
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
{\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
- \rm #1\hfill}}\bigskip \par\penalty 200}
+ \rm #1\hfill}}%
+ \bigskip \par\penalty 200\relax
+ \suppressfirstparagraphindent
+}
% @heading, @subheading, @subsubheading.
-\def\heading{\parsearg\plainsecheading}
-\def\subheading{\parsearg\plainsubsecheading}
-\def\subsubheading{\parsearg\plainsubsubsecheading}
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
% These macros generate a chapter, section, etc. heading only
% (including whitespace, linebreaking, etc. around it),
@@ -3991,8 +4318,6 @@ width0pt\relax} \fi
%%% Args are the skip and penalty (usually negative)
\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
-\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
-
%%% Define plain chapter starts, and page on/off switching for it
% Parameter controlling skip before chapter headings (if needed)
@@ -4015,7 +4340,7 @@ width0pt\relax} \fi
\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
-\def\CHAPPAGodd{
+\def\CHAPPAGodd{%
\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
\global\let\pagealignmacro=\chapoddpage
@@ -4023,116 +4348,193 @@ width0pt\relax} \fi
\CHAPPAGon
-\def\CHAPFplain{
-\global\let\chapmacro=\chfplain
-\global\let\unnumbchapmacro=\unnchfplain
-\global\let\centerchapmacro=\centerchfplain}
-
-% Plain chapter opening.
-% #1 is the text, #2 the chapter number or empty if unnumbered.
-\def\chfplain#1#2{%
+% Chapter opening.
+%
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+%
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chapmacro#1#2#3{%
\pchapsepmacro
{%
\chapfonts \rm
- \def\chapnum{#2}%
- \setbox0 = \hbox{#2\ifx\chapnum\empty\else\enspace\fi}%
+ %
+ % Have to define \thissection before calling \donoderef, because the
+ % xref code eventually uses it. On the other hand, it has to be called
+ % after \pchapsepmacro, or the headline will change too soon.
+ \gdef\thissection{#1}%
+ \gdef\thischaptername{#1}%
+ %
+ % Only insert the separating space if we have a chapter/appendix
+ % number, and don't print the unnumbered ``number''.
+ \def\temptype{#2}%
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unnchap}%
+ \gdef\thischapter{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+ \def\toctype{omit}%
+ \gdef\thischapter{}%
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+ \def\toctype{app}%
+ % We don't substitute the actual chapter name into \thischapter
+ % because we don't want its macros evaluated now. And we don't
+ % use \thissection because that changes with each section.
+ %
+ \xdef\thischapter{\putwordAppendix{} \appendixletter:
+ \noexpand\thischaptername}%
+ \else
+ \setbox0 = \hbox{#3\enspace}%
+ \def\toctype{numchap}%
+ \xdef\thischapter{\putwordChapter{} \the\chapno:
+ \noexpand\thischaptername}%
+ \fi\fi\fi
+ %
+ % Write the toc entry for this chapter. Must come before the
+ % \donoderef, because we include the current node name in the toc
+ % entry, and \donoderef resets it to empty.
+ \writetocentry{\toctype}{#1}{#3}%
+ %
+ % For pdftex, we have to write out the node definition (aka, make
+ % the pdfdest) after any page break, but before the actual text has
+ % been typeset. If the destination for the pdf outline is after the
+ % text, then jumping from the outline may wind up with the text not
+ % being visible, for instance under high magnification.
+ \donoderef{#2}%
+ %
+ % Typeset the actual heading.
\vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 \centerparametersmaybe
+ \hangindent=\wd0 \centerparametersmaybe
\unhbox0 #1\par}%
}%
\nobreak\bigskip % no page break after a chapter title
\nobreak
}
-% Plain opening for unnumbered.
-\def\unnchfplain#1{\chfplain{#1}{}}
-
% @centerchap -- centered and unnumbered.
\let\centerparametersmaybe = \relax
-\def\centerchfplain#1{{%
- \def\centerparametersmaybe{%
- \advance\rightskip by 3\rightskip
- \leftskip = \rightskip
- \parfillskip = 0pt
- }%
- \chfplain{#1}{}%
-}}
+\def\centerparameters{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
+}
-\CHAPFplain % The default
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff. We'll see. --karl, 11aug03.
+%
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+%
\def\unnchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt\raggedright
\rm #1\hfill}}\bigskip \par\nobreak
}
-
\def\chfopen #1#2{\chapoddpage {\chapfonts
\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
\par\penalty 5000 %
}
-
\def\centerchfopen #1{%
\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
\parindent=0pt
\hfill {\rm #1}\hfill}}\bigskip \par\nobreak
}
+\def\CHAPFopen{%
+ \global\let\chapmacro=\chfopen
+ \global\let\centerchapmacro=\centerchfopen}
-\def\CHAPFopen{
-\global\let\chapmacro=\chfopen
-\global\let\unnumbchapmacro=\unnchfopen
-\global\let\centerchapmacro=\centerchfopen}
-
-% Section titles.
+% Section titles. These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+%
\newskip\secheadingskip
-\def\secheadingbreak{\dobreak \secheadingskip {-1000}}
-\def\secheading#1#2#3{\sectionheading{sec}{#2.#3}{#1}}
-\def\plainsecheading#1{\sectionheading{sec}{}{#1}}
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
% Subsection titles.
-\newskip \subsecheadingskip
-\def\subsecheadingbreak{\dobreak \subsecheadingskip {-500}}
-\def\subsecheading#1#2#3#4{\sectionheading{subsec}{#2.#3.#4}{#1}}
-\def\plainsubsecheading#1{\sectionheading{subsec}{}{#1}}
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
% Subsubsection titles.
-\let\subsubsecheadingskip = \subsecheadingskip
-\let\subsubsecheadingbreak = \subsecheadingbreak
-\def\subsubsecheading#1#2#3#4#5{\sectionheading{subsubsec}{#2.#3.#4.#5}{#1}}
-\def\plainsubsubsecheading#1{\sectionheading{subsubsec}{}{#1}}
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
-% Print any size section title.
+% Print any size, any type, section title.
%
-% #1 is the section type (sec/subsec/subsubsec), #2 is the section
-% number (maybe empty), #3 the text.
-\def\sectionheading#1#2#3{%
- {%
- \expandafter\advance\csname #1headingskip\endcsname by \parskip
- \csname #1headingbreak\endcsname
- }%
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+%
+\def\sectionheading#1#2#3#4{%
{%
% Switch to the right set of fonts.
- \csname #1fonts\endcsname \rm
+ \csname #2fonts\endcsname \rm
+ %
+ % Insert space above the heading.
+ \csname #2headingbreak\endcsname
%
- % Only insert the separating space if we have a section number.
- \def\secnum{#2}%
- \setbox0 = \hbox{#2\ifx\secnum\empty\else\enspace\fi}%
+ % Only insert the space after the number if we have a section number.
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
%
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unn}%
+ \gdef\thissection{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ % for @headings -- no section number, don't include in toc,
+ % and don't redefine \thissection.
+ \setbox0 = \hbox{}%
+ \def\toctype{omit}%
+ \let\sectionlevel=\empty
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{app}%
+ \gdef\thissection{#1}%
+ \else
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{num}%
+ \gdef\thissection{#1}%
+ \fi\fi\fi
+ %
+ % Write the toc entry (before \donoderef). See comments in \chfplain.
+ \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+ %
+ % Write the node reference (= pdf destination for pdftex).
+ % Again, see comments in \chfplain.
+ \donoderef{#3}%
+ %
+ % Output the actual section heading.
\vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
- \hangindent = \wd0 % zero if no section number
- \unhbox0 #3}%
+ \hangindent=\wd0 % zero if no section number
+ \unhbox0 #1}%
}%
- % Add extra space after the heading -- either a line space or a
- % paragraph space, whichever is more. (Some people like to set
- % \parskip to large values for some reason.) Don't allow stretch, though.
- \nobreak
- \ifdim\parskip>\normalbaselineskip
- \kern\parskip
- \else
- \kern\normalbaselineskip
- \fi
+ % Add extra space after the heading -- half of whatever came above it.
+ % Don't allow stretch, though.
+ \kern .5 \csname #2headingskip\endcsname
+ %
+ % Do not let the kern be a potential breakpoint, as it would be if it
+ % was followed by glue.
\nobreak
+ %
+ % We'll almost certainly start a paragraph next, so don't let that
+ % glue accumulate. (Not a breakpoint because it's preceded by a
+ % discardable item.)
+ \vskip-\parskip
+ %
+ % This is purely so the last item on the list is a known \penalty >
+ % 10000. This is so \startdefun can avoid allowing breakpoints after
+ % section headings. Otherwise, it would insert a valid breakpoint between:
+ %
+ % @section sec-whatever
+ % @deffn def-whatever
+ \penalty 10001
}
@@ -4141,119 +4543,173 @@ width0pt\relax} \fi
\newwrite\tocfile
% Write an entry to the toc file, opening it if necessary.
-% Called from @chapter, etc. We supply {\folio} at the end of the
-% argument, which will end up as the last argument to the \...entry macro.
+% Called from @chapter, etc.
+%
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this. The node name is used in the pdf outlines as the
+% destination to jump to.
%
-% Usage: \writetocentry{chap}{The Name of The Game}{{\the\chapno}}
% We open the .toc file for writing here instead of at @setfilename (or
% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything. This is used for the
+% table of contents chapter openings themselves.
%
\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
\def\writetocentry#1#2#3{%
- \iftocfileopened\else
- \immediate\openout\tocfile = \jobname.toc
- \global\tocfileopenedtrue
- \fi
- %
- \iflinks
- \toks0 = {#2}%
- \edef\temp{\write\tocfile{\realbackslash #1entry{\the\toks0}#3{\folio}}}%
- \temp
+ \edef\writetoctype{#1}%
+ \ifx\writetoctype\omitkeyword \else
+ \iftocfileopened\else
+ \immediate\openout\tocfile = \jobname.toc
+ \global\tocfileopenedtrue
+ \fi
+ %
+ \iflinks
+ {\atdummies
+ \edef\temp{%
+ \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
+ \temp
+ }
+ \fi
\fi
%
- % Tell \shipout to create a page destination if we're doing pdf, which
- % will be the target of the links in the table of contents. We can't
- % just do it on every page because the title pages are numbered 1 and
- % 2 (the page numbers aren't printed), and so are the first two pages
- % of the document. Thus, we'd have two destinations named `1', and
- % two named `2'.
- \ifpdf \pdfmakepagedesttrue \fi
+ % Tell \shipout to create a pdf destination on each page, if we're
+ % writing pdf. These are used in the table of contents. We can't
+ % just write one on every page because the title pages are numbered
+ % 1 and 2 (the page numbers aren't printed), and so are the first
+ % two pages of the document. Thus, we'd have two destinations named
+ % `1', and two named `2'.
+ \ifpdf \global\pdfmakepagedesttrue \fi
+}
+
+
+% These characters do not print properly in the Computer Modern roman
+% fonts, so we must take special care. This is more or less redundant
+% with the Texinfo input format setup at the end of this file.
+%
+\def\activecatcodes{%
+ \catcode`\"=\active
+ \catcode`\$=\active
+ \catcode`\<=\active
+ \catcode`\>=\active
+ \catcode`\\=\active
+ \catcode`\^=\active
+ \catcode`\_=\active
+ \catcode`\|=\active
+ \catcode`\~=\active
+}
+
+
+% Read the toc file, which is essentially Texinfo input.
+\def\readtocfile{%
+ \setupdatafile
+ \activecatcodes
+ \input \jobname.toc
}
\newskip\contentsrightmargin \contentsrightmargin=1in
\newcount\savepageno
\newcount\lastnegativepageno \lastnegativepageno = -1
-% Finish up the main text and prepare to read what we've written
-% to \tocfile.
+% Prepare to read what we've written to \tocfile.
%
\def\startcontents#1{%
- % If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund <tege@matematik.su.se>
- \contentsalignmacro
- \immediate\closeout\tocfile
- %
- % Don't need to put `Contents' or `Short Contents' in the headline.
- % It is abundantly clear what they are.
- \unnumbchapmacro{#1}\def\thischapter{}%
- \savepageno = \pageno
- \begingroup % Set up to handle contents files properly.
- \catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\@=11
- % We can't do this, because then an actual ^ in a section
- % title fails, e.g., @chapter ^ -- exponentiation. --karl, 9jul97.
- %\catcode`\^=7 % to see ^^e4 as \"a etc. juha@piuha.ydi.vtt.fi
- \raggedbottom % Worry more about breakpoints than the bottom.
- \advance\hsize by -\contentsrightmargin % Don't use the full line length.
- %
- % Roman numerals for page numbers.
- \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
+ \immediate\closeout\tocfile
+ %
+ % Don't need to put `Contents' or `Short Contents' in the headline.
+ % It is abundantly clear what they are.
+ \def\thischapter{}%
+ \chapmacro{#1}{Yomitfromtoc}{}%
+ %
+ \savepageno = \pageno
+ \begingroup % Set up to handle contents files properly.
+ \raggedbottom % Worry more about breakpoints than the bottom.
+ \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+ %
+ % Roman numerals for page numbers.
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
}
% Normal (long) toc.
\def\contents{%
- \startcontents{\putwordTOC}%
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \pdfmakeoutlines
- \endgroup
- \lastnegativepageno = \pageno
- \global\pageno = \savepageno
+ \startcontents{\putwordTOC}%
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \ifeof 1 \else
+ \pdfmakeoutlines
+ \fi
+ \closein 1
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
}
% And just the chapters.
\def\summarycontents{%
- \startcontents{\putwordShortTOC}%
- %
- \let\chapentry = \shortchapentry
- \let\appendixentry = \shortappendixentry
- \let\unnumbchapentry = \shortunnumberedentry
- % We want a true roman here for the page numbers.
- \secfonts
- \let\rm=\shortcontrm \let\bf=\shortcontbf
- \let\sl=\shortcontsl \let\tt=\shortconttt
- \rm
- \hyphenpenalty = 10000
- \advance\baselineskip by 1pt % Open it up a little.
- \def\secentry ##1##2##3##4{}
- \def\subsecentry ##1##2##3##4##5{}
- \def\subsubsecentry ##1##2##3##4##5##6{}
- \let\unnumbsecentry = \secentry
- \let\unnumbsubsecentry = \subsecentry
- \let\unnumbsubsubsecentry = \subsubsecentry
- \openin 1 \jobname.toc
- \ifeof 1 \else
- \closein 1
- \input \jobname.toc
- \fi
- \vfill \eject
- \contentsalignmacro % in case @setchapternewpage odd is in effect
- \endgroup
- \lastnegativepageno = \pageno
- \global\pageno = \savepageno
+ \startcontents{\putwordShortTOC}%
+ %
+ \let\numchapentry = \shortchapentry
+ \let\appentry = \shortchapentry
+ \let\unnchapentry = \shortunnchapentry
+ % We want a true roman here for the page numbers.
+ \secfonts
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
+ \rm
+ \hyphenpenalty = 10000
+ \advance\baselineskip by 1pt % Open it up a little.
+ \def\numsecentry##1##2##3##4{}
+ \let\appsecentry = \numsecentry
+ \let\unnsecentry = \numsecentry
+ \let\numsubsecentry = \numsecentry
+ \let\appsubsecentry = \numsecentry
+ \let\unnsubsecentry = \numsecentry
+ \let\numsubsubsecentry = \numsecentry
+ \let\appsubsubsecentry = \numsecentry
+ \let\unnsubsubsecentry = \numsecentry
+ \openin 1 \jobname.toc
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \closein 1
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
}
\let\shortcontents = \summarycontents
-\ifpdf
- \pdfcatalog{/PageMode /UseOutlines}%
-\fi
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+ % This space should be enough, since a single number is .5em, and the
+ % widest letter (M) is 1em, at least in the Computer Modern fonts.
+ % But use \hss just in case.
+ % (This space doesn't include the extra space that gets added after
+ % the label; that gets put in by \shortchapentry above.)
+ %
+ % We'd like to right-justify chapter numbers, but that looks strange
+ % with appendix letters. And right-justifying numbers and
+ % left-justifying letters looks strange when there is less than 10
+ % chapters. Have to read the whole toc once to know how many chapters
+ % there are before deciding ...
+ \hbox to 1em{#1\hss}%
+}
% These macros generate individual entries in the table of contents.
% The first argument is the chapter or section name.
@@ -4261,58 +4717,46 @@ width0pt\relax} \fi
% The arguments in between are the chapter number, section number, ...
% Chapters, in the main contents.
-\def\chapentry#1#2#3{\dochapentry{#2\labelspace#1}{#3}}
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
%
% Chapters, in the short toc.
% See comments in \dochapentry re vbox and related settings.
-\def\shortchapentry#1#2#3{%
- \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#3\egroup}%
+\def\shortchapentry#1#2#3#4{%
+ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
}
% Appendices, in the main contents.
-\def\appendixentry#1#2#3{%
- \dochapentry{\appendixbox{\putwordAppendix{} #2}\labelspace#1}{#3}}
+% Need the word Appendix, and a fixed-size box.
%
-% Appendices, in the short toc.
-\let\shortappendixentry = \shortchapentry
-
-% Typeset the label for a chapter or appendix for the short contents.
-% The arg is, e.g., `Appendix A' for an appendix, or `3' for a chapter.
-% We could simplify the code here by writing out an \appendixentry
-% command in the toc file for appendices, instead of using \chapentry
-% for both, but it doesn't seem worth it.
-%
-\newdimen\shortappendixwidth
+\def\appendixbox#1{%
+ % We use M since it's probably the widest letter.
+ \setbox0 = \hbox{\putwordAppendix{} M}%
+ \hbox to \wd0{\putwordAppendix{} #1\hss}}
%
-\def\shortchaplabel#1{%
- % This space should be enough, since a single number is .5em, and the
- % widest letter (M) is 1em, at least in the Computer Modern fonts.
- % But use \hss just in case.
- % (This space doesn't include the extra space that gets added after
- % the label; that gets put in by \shortchapentry above.)
- \dimen0 = 1em
- \hbox to \dimen0{#1\hss}%
-}
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
% Unnumbered chapters.
-\def\unnumbchapentry#1#2#3{\dochapentry{#1}{#3}}
-\def\shortunnumberedentry#1#2#3{\tocentry{#1}{\doshortpageno\bgroup#3\egroup}}
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
% Sections.
-\def\secentry#1#2#3#4{\dosecentry{#2.#3\labelspace#1}{#4}}
-\def\unnumbsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
% Subsections.
-\def\subsecentry#1#2#3#4#5{\dosubsecentry{#2.#3.#4\labelspace#1}{#5}}
-\def\unnumbsubsecentry#1#2#3#4#5{\dosubsecentry{#1}{#5}}
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
% And subsubsections.
-\def\subsubsecentry#1#2#3#4#5#6{%
- \dosubsubsecentry{#2.#3.#4.#5\labelspace#1}{#6}}
-\def\unnumbsubsubsecentry#1#2#3#4#5#6{\dosubsubsecentry{#1}{#6}}
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
% This parameter controls the indentation of the various levels.
-\newdimen\tocindent \tocindent = 3pc
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
% Now for the actual typesetting. In all these, #1 is the text and #2 is the
% page number.
@@ -4343,17 +4787,8 @@ width0pt\relax} \fi
\tocentry{#1}{\dopageno\bgroup#2\egroup}%
\endgroup}
-% Final typesetting of a toc entry; we use the same \entry macro as for
-% the index entries, but we want to suppress hyphenation here. (We
-% can't do that in the \entry macro, since index entries might consist
-% of hyphenated-identifiers-that-do-not-fit-on-a-line-and-nothing-else.)
-\def\tocentry#1#2{\begingroup
- \vskip 0pt plus1pt % allow a little stretch for the sake of nice page breaks
- % Do not use \turnoffactive in these arguments. Since the toc is
- % typeset in cmr, characters such as _ would come out wrong; we
- % have to do the usual translation tricks.
- \entry{#1}{#2}%
-\endgroup}
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
% Space between chapter (or whatever) number and the title.
\def\labelspace{\hskip1em \relax}
@@ -4363,15 +4798,15 @@ width0pt\relax} \fi
\def\chapentryfonts{\secfonts \rm}
\def\secentryfonts{\textfonts}
-\let\subsecentryfonts = \textfonts
-\let\subsubsecentryfonts = \textfonts
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
\message{environments,}
% @foo ... @end foo.
% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
-%
+%
% Since these characters are used in examples, it should be an even number of
% \tt widths. Each \tt character is 1en, so two makes it 1em.
%
@@ -4383,7 +4818,7 @@ width0pt\relax} \fi
% The @error{} command.
% Adapted from the TeXbook's \boxit.
-%
+%
\newbox\errorbox
%
{\tentt \global\dimen0 = 3em}% Width of the box.
@@ -4391,10 +4826,10 @@ width0pt\relax} \fi
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
%
-\global\setbox\errorbox=\hbox to \dimen0{\hfil
+\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
\advance\hsize by -2\dimen2 % Rules.
- \vbox{
+ \vbox{%
\hrule height\dimen2
\hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
\vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
@@ -4408,14 +4843,13 @@ width0pt\relax} \fi
% One exception: @ is still an escape character, so that @end tex works.
% But \@ or @@ will get a plain tex @ character.
-\def\tex{\begingroup
+\envdef\tex{%
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
\catcode `\%=14
\catcode `\+=\other
\catcode `\"=\other
- \catcode `\==\other
\catcode `\|=\other
\catcode `\<=\other
\catcode `\>=\other
@@ -4430,20 +4864,24 @@ width0pt\relax} \fi
\let\equiv=\ptexequiv
\let\!=\ptexexclam
\let\i=\ptexi
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
\let\{=\ptexlbrace
\let\+=\tabalign
\let\}=\ptexrbrace
\let\/=\ptexslash
\let\*=\ptexstar
\let\t=\ptext
+ \let\frenchspacing=\plainfrenchspacing
%
\def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
\def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
\def\@{@}%
-\let\Etex=\endgroup}
+}
+% There is no need to define \Etex.
% Define @lisp ... @end lisp.
-% @lisp does a \begingroup so it can rebind things,
+% @lisp environment forms a group so it can rebind things,
% including the definition of @end lisp (which normally is erroneous).
% Amount to narrow the margins by for @lisp.
@@ -4454,19 +4892,6 @@ width0pt\relax} \fi
% have any width.
\def\lisppar{\null\endgraf}
-% Make each space character in the input produce a normal interword
-% space in the output. Don't allow a line break at this space, as this
-% is used only in environments like @example, where each line of input
-% should produce a line of output anyway.
-%
-{\obeyspaces %
-\gdef\sepspaces{\obeyspaces\let =\tie}}
-
-% Define \obeyedspace to be our active space, whatever it is. This is
-% for use in \parsearg.
-{\sepspaces%
-\global\let\obeyedspace= }
-
% This space is always present above and below environments.
\newskip\envskipamount \envskipamount = 0pt
@@ -4476,7 +4901,8 @@ width0pt\relax} \fi
% start of the next paragraph will insert \parskip.
%
\def\aboveenvbreak{{%
- % =10000 instead of <10000 because of a special case in \itemzzz, q.v.
+ % =10000 instead of <10000 because of a special case in \itemzzz and
+ % \sectionheading, q.v.
\ifnum \lastpenalty=10000 \else
\advance\envskipamount by \parskip
\endgraf
@@ -4484,7 +4910,7 @@ width0pt\relax} \fi
\removelastskip
% it's not a good place to break if the last penalty was \nobreak
% or better ...
- \ifnum\lastpenalty>10000 \else \penalty-50 \fi
+ \ifnum\lastpenalty<10000 \penalty-50 \fi
\vskip\envskipamount
\fi
\fi
@@ -4492,7 +4918,8 @@ width0pt\relax} \fi
\let\afterenvbreak = \aboveenvbreak
-% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins.
+% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
+% also clear it, so that its embedded environments do the narrowing again.
\let\nonarrowing=\relax
% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
@@ -4516,52 +4943,52 @@ width0pt\relax} \fi
%
\newskip\lskip\newskip\rskip
-\def\cartouche{%
-\par % can't be in the midst of a paragraph.
-\begingroup
- \lskip=\leftskip \rskip=\rightskip
- \leftskip=0pt\rightskip=0pt %we want these *outside*.
- \cartinner=\hsize \advance\cartinner by-\lskip
- \advance\cartinner by-\rskip
- \cartouter=\hsize
- \advance\cartouter by 18.4pt % allow for 3pt kerns on either
-% side, and for 6pt waste from
-% each corner char, and rule thickness
- \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
- % Flag to tell @lisp, etc., not to narrow margin.
- \let\nonarrowing=\comment
- \vbox\bgroup
- \baselineskip=0pt\parskip=0pt\lineskip=0pt
- \carttop
- \hbox\bgroup
- \hskip\lskip
- \vrule\kern3pt
- \vbox\bgroup
- \hsize=\cartinner
- \kern3pt
- \begingroup
- \baselineskip=\normbskip
- \lineskip=\normlskip
- \parskip=\normpskip
- \vskip -\parskip
+\envdef\cartouche{%
+ \ifhmode\par\fi % can't be in the midst of a paragraph.
+ \startsavinginserts
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt % we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18.4pt % allow for 3pt kerns on either
+ % side, and for 6pt waste from
+ % each corner char, and rule thickness
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing = t%
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \kern3pt
+ \hsize=\cartinner
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
+ \comment % For explanation, see the end of \def\group.
+}
\def\Ecartouche{%
- \endgroup
- \kern3pt
- \egroup
- \kern3pt\vrule
- \hskip\rskip
- \egroup
- \cartbot
- \egroup
-\endgroup
-}}
+ \ifhmode\par\fi
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
+ \checkinserts
+}
% This macro is called at the beginning of all the @example variants,
% inside a group.
\def\nonfillstart{%
\aboveenvbreak
- \inENV % This group ends at the end of the body
\hfuzz = 12pt % Don't be fussy
\sepspaces % Make spaces be word-separators rather than space tokens.
\let\par = \lisppar % don't ignore blank lines
@@ -4569,121 +4996,139 @@ width0pt\relax} \fi
\parskip = 0pt
\parindent = 0pt
\emergencystretch = 0pt % don't try to avoid overfull boxes
- % @cartouche defines \nonarrowing to inhibit narrowing
- % at next level down.
\ifx\nonarrowing\relax
\advance \leftskip by \lispnarrowing
\exdentamount=\lispnarrowing
- \let\exdent=\nofillexdent
- \let\nonarrowing=\relax
+ \else
+ \let\nonarrowing = \relax
\fi
+ \let\exdent=\nofillexdent
}
-% Define the \E... control sequence only if we are inside the particular
-% environment, so the error checking in \end will work.
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+% @example, @display, @format, @lisp
%
-% To end an @example-like environment, we first end the paragraph (via
-% \afterenvbreak's vertical glue), and then the group. That way we keep
-% the zero \parskip that the environments set -- \parskip glue will be
-% inserted at the beginning of the next paragraph in the document, after
-% the environment.
-%
-\def\nonfillfinish{\afterenvbreak\endgroup}
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+ \ifx\SETdispenvsize\smallword
+ \smallexamplefonts \rm
+ \fi
+}
+\def\setsmalldispenv{%
+ \ifx\SETdispenvsize\nosmallword
+ \else
+ \smallexamplefonts \rm
+ \fi
+}
-% @lisp: indented, narrowed, typewriter font.
-\def\lisp{\begingroup
- \nonfillstart
- \let\Elisp = \nonfillfinish
- \tt
- \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
+% We often define two environments, @foo and @smallfoo.
+% Let's do it by one command:
+\def\makedispenv #1#2{
+ \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}
+ \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}
+ \expandafter\let\csname E#1\endcsname \afterenvbreak
+ \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
}
-% @example: Same as @lisp.
-\def\example{\begingroup \def\Eexample{\nonfillfinish\endgroup}\lisp}
+% Define two synonyms:
+\def\maketwodispenvs #1#2#3{
+ \makedispenv{#1}{#3}
+ \makedispenv{#2}{#3}
+}
+% @lisp: indented, narrowed, typewriter font; @example: same as @lisp.
+%
% @smallexample and @smalllisp: use smaller fonts.
% Originally contributed by Pavel@xerox.
-\def\smalllisp{\begingroup
- \def\Esmalllisp{\nonfillfinish\endgroup}%
- \def\Esmallexample{\nonfillfinish\endgroup}%
- \smallexamplefonts
- \lisp
+%
+\maketwodispenvs {lisp}{example}{%
+ \nonfillstart
+ \tt
+ \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+ \gobble % eat return
}
-\let\smallexample = \smalllisp
-
-% @display: same as @lisp except keep current font.
+% @display/@smalldisplay: same as @lisp except keep current font.
%
-\def\display{\begingroup
+\makedispenv {display}{%
\nonfillstart
- \let\Edisplay = \nonfillfinish
\gobble
}
-%
-% @smalldisplay: @display plus smaller fonts.
-%
-\def\smalldisplay{\begingroup
- \def\Esmalldisplay{\nonfillfinish\endgroup}%
- \smallexamplefonts \rm
- \display
-}
-% @format: same as @display except don't narrow margins.
+% @format/@smallformat: same as @display except don't narrow margins.
%
-\def\format{\begingroup
- \let\nonarrowing = t
+\makedispenv{format}{%
+ \let\nonarrowing = t%
\nonfillstart
- \let\Eformat = \nonfillfinish
\gobble
}
-%
-% @smallformat: @format plus smaller fonts.
-%
-\def\smallformat{\begingroup
- \def\Esmallformat{\nonfillfinish\endgroup}%
- \smallexamplefonts \rm
- \format
-}
-% @flushleft (same as @format).
-%
-\def\flushleft{\begingroup \def\Eflushleft{\nonfillfinish\endgroup}\format}
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
+\let\Eflushleft = \afterenvbreak
% @flushright.
%
-\def\flushright{\begingroup
- \let\nonarrowing = t
+\envdef\flushright{%
+ \let\nonarrowing = t%
\nonfillstart
- \let\Eflushright = \nonfillfinish
\advance\leftskip by 0pt plus 1fill
\gobble
}
+\let\Eflushright = \afterenvbreak
% @quotation does normal linebreaking (hence we can't use \nonfillstart)
-% and narrows the margins.
+% and narrows the margins. We keep \parskip nonzero in general, since
+% we're doing normal filling. So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
%
-\def\quotation{%
- \begingroup\inENV %This group ends at the end of the @quotation body
+\envdef\quotation{%
{\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
\parindent=0pt
- % We have retained a nonzero parskip for the environment, since we're
- % doing normal filling. So to avoid extra space below the environment...
- \def\Equotation{\parskip = 0pt \nonfillfinish}%
%
% @cartouche defines \nonarrowing to inhibit narrowing at next level down.
\ifx\nonarrowing\relax
\advance\leftskip by \lispnarrowing
\advance\rightskip by \lispnarrowing
\exdentamount = \lispnarrowing
+ \else
\let\nonarrowing = \relax
\fi
+ \parsearg\quotationlabel
+}
+
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+%
+\def\Equotation{%
+ \par
+ \ifx\quotationauthor\undefined\else
+ % indent a bit.
+ \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+ \fi
+ {\parskip=0pt \afterenvbreak}%
+}
+
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty \else
+ {\bf #1: }%
+ \fi
}
% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
-% If we want to allow any <char> as delimiter,
+% If we want to allow any <char> as delimiter,
% we need the curly braces so that makeinfo sees the @verb command, eg:
% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
%
@@ -4700,7 +5145,7 @@ width0pt\relax} \fi
%
% [Knuth] p. 380
\def\uncatcodespecials{%
- \def\do##1{\catcode`##1=12}\dospecials}
+ \def\do##1{\catcode`##1=\other}\dospecials}
%
% [Knuth] pp. 380,381,391
% Disable Spanish ligatures ?` and !` of \tt font
@@ -4748,6 +5193,8 @@ width0pt\relax} \fi
}
\endgroup
\def\setupverbatim{%
+ \let\nonarrowing = t%
+ \nonfillstart
% Easiest (and conventionally used) font for verbatim
\tt
\def\par{\leavevmode\egroup\box0\endgraf}%
@@ -4761,15 +5208,15 @@ width0pt\relax} \fi
\everypar{\starttabbox}%
}
-% Do the @verb magic: verbatim text is quoted by unique
-% delimiter characters. Before first delimiter expect a
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
% right brace, after last delimiter expect closing brace:
%
% \def\doverb'{'<char>#1<char>'}'{#1}
%
% [Knuth] p. 382; only eat outer {}
\begingroup
- \catcode`[=1\catcode`]=2\catcode`\{=12\catcode`\}=12
+ \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
\gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
\endgroup
%
@@ -4781,18 +5228,11 @@ width0pt\relax} \fi
%
% \def\doverbatim#1@end verbatim{#1}
%
-% For Texinfo it's a lot easier than for LaTeX,
+% For Texinfo it's a lot easier than for LaTeX,
% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
% we need not redefine '\', '{' and '}'.
%
% Inspired by LaTeX's verbatim command set [latex.ltx]
-%% Include LaTeX hack for completeness -- never know
-%% \begingroup
-%% \catcode`|=0 \catcode`[=1
-%% \catcode`]=2\catcode`\{=12\catcode`\}=12\catcode`\ =\active
-%% \catcode`\\=12|gdef|doverbatim#1@end verbatim[
-%% #1|endgroup|def|Everbatim[]|end[verbatim]]
-%% |endgroup
%
\begingroup
\catcode`\ =\active
@@ -4800,697 +5240,383 @@ width0pt\relax} \fi
% ignore everything up to the first ^^M, that's the newline at the end
% of the @verbatim input line itself. Otherwise we get an extra blank
% line in the output.
- \gdef\doverbatim#1^^M#2@end verbatim{#2\end{verbatim}}%
+ \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+ % We really want {...\end verbatim} in the body of the macro, but
+ % without the active space; thus we have to use \xdef and \gobble.
\endgroup
%
-\def\verbatim{%
- \def\Everbatim{\nonfillfinish\endgroup}%
- \begingroup
- \nonfillstart
- \advance\leftskip by -\defbodyindent
- \begingroup\setupverbatim\doverbatim
+\envdef\verbatim{%
+ \setupverbatim\doverbatim
}
+\let\Everbatim = \afterenvbreak
+
% @verbatiminclude FILE - insert text of file in verbatim environment.
%
-% Allow normal characters that we make active in the argument (a file name).
-\def\verbatiminclude{%
- \begingroup
- \catcode`\\=\other
- \catcode`~=\other
- \catcode`^=\other
- \catcode`_=\other
- \catcode`|=\other
- \catcode`<=\other
- \catcode`>=\other
- \catcode`+=\other
- \parsearg\doverbatiminclude
-}
-\def\setupverbatiminclude{%
- \begingroup
- \nonfillstart
- \advance\leftskip by -\defbodyindent
- \begingroup\setupverbatim
-}
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
%
\def\doverbatiminclude#1{%
- % Restore active chars for included file.
- \endgroup
- \begingroup
- \let\value=\expandablevalue
- \def\thisfile{#1}%
- \expandafter\expandafter\setupverbatiminclude\input\thisfile
- \endgroup
- \nonfillfinish
- \endgroup
+ {%
+ \makevalueexpandable
+ \setupverbatim
+ \input #1
+ \afterenvbreak
+ }%
}
% @copying ... @end copying.
-% Save the text away for @insertcopying later. Many commands won't be
-% allowed in this context, but that's ok.
-%
+% Save the text away for @insertcopying later.
+%
% We save the uninterpreted tokens, rather than creating a box.
% Saving the text in a box would be much easier, but then all the
% typesetting commands (@smallbook, font changes, etc.) have to be done
% beforehand -- and a) we want @copying to be done first in the source
% file; b) letting users define the frontmatter in as flexible order as
% possible is very desirable.
-%
-\def\copying{\begingroup
- % Define a command to swallow text until we reach `@end copying'.
- % \ is the escape char in this texinfo.tex file, so it is the
- % delimiter for the command; @ will be the escape char when we read
- % it, but that doesn't matter.
- \long\def\docopying##1\end copying{\gdef\copyingtext{##1}\enddocopying}%
- %
- % We must preserve ^^M's in the input file; see \insertcopying below.
- \catcode`\^^M = \active
- \docopying
-}
-
-% What we do to finish off the copying text.
%
-\def\enddocopying{\endgroup\ignorespaces}
-
-% @insertcopying. Here we must play games with ^^M's. On the one hand,
-% we need them to delimit commands such as `@end quotation', so they
-% must be active. On the other hand, we certainly don't want every
-% end-of-line to be a \par, as would happen with the normal active
-% definition of ^^M. On the third hand, two ^^M's in a row should still
-% generate a \par.
-%
-% Our approach is to make ^^M insert a space and a penalty1 normally;
-% then it can also check if \lastpenalty=1. If it does, then manually
-% do \par.
-%
-% This messes up the normal definitions of @c[omment], so we redefine
-% it. Similarly for @ignore. (These commands are used in the gcc
-% manual for man page generation.)
-%
-% Seems pretty fragile, most line-oriented commands will presumably
-% fail, but for the limited use of getting the copying text (which
-% should be quite simple) inserted, we can hope it's ok.
-%
-{\catcode`\^^M=\active %
-\gdef\insertcopying{\begingroup %
- \parindent = 0pt % looks wrong on title page
- \def^^M{%
- \ifnum \lastpenalty=1 %
- \par %
- \else %
- \space \penalty 1 %
- \fi %
- }%
- %
- % Fix @c[omment] for catcode 13 ^^M's.
- \def\c##1^^M{\ignorespaces}%
- \let\comment = \c %
- %
- % Don't bother jumping through all the hoops that \doignore does, it
- % would be very hard since the catcodes are already set.
- \long\def\ignore##1\end ignore{\ignorespaces}%
- %
- \copyingtext %
-\endgroup}%
+\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+%
+\def\insertcopying{%
+ \begingroup
+ \parindent = 0pt % paragraph indentation looks wrong on title page
+ \scanexp\copyingtext
+ \endgroup
}
\message{defuns,}
% @defun etc.
-% Allow user to change definition object font (\df) internally
-\def\setdeffont#1 {\csname DEF#1\endcsname}
-
\newskip\defbodyindent \defbodyindent=.4in
\newskip\defargsindent \defargsindent=50pt
\newskip\deflastargmargin \deflastargmargin=18pt
-\newcount\parencount
-
-% We want ()&[] to print specially on the defun line.
-%
-\def\activeparens{%
- \catcode`\(=\active \catcode`\)=\active
- \catcode`\&=\active
- \catcode`\[=\active \catcode`\]=\active
-}
-
-% Make control sequences which act like normal parenthesis chars.
-\let\lparen = ( \let\rparen = )
-
-{\activeparens % Now, smart parens don't turn on until &foo (see \amprm)
-
-% Be sure that we always have a definition for `(', etc. For example,
-% if the fn name has parens in it, \boldbrax will not be in effect yet,
-% so TeX would otherwise complain about undefined control sequence.
-\global\let(=\lparen \global\let)=\rparen
-\global\let[=\lbrack \global\let]=\rbrack
-
-\gdef\functionparens{\boldbrax\let&=\amprm\parencount=0 }
-\gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
-% This is used to turn on special parens
-% but make & act ordinary (given that it's active).
-\gdef\boldbraxnoamp{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb\let&=\ampnr}
-
-% Definitions of (, ) and & used in args for functions.
-% This is the definition of ( outside of all parentheses.
-\gdef\oprm#1 {{\rm\char`\(}#1 \bf \let(=\opnested
- \global\advance\parencount by 1
-}
-%
-% This is the definition of ( when already inside a level of parens.
-\gdef\opnested{\char`\(\global\advance\parencount by 1 }
-%
-\gdef\clrm{% Print a paren in roman if it is taking us back to depth of 0.
- % also in that case restore the outer-level definition of (.
- \ifnum \parencount=1 {\rm \char `\)}\sl \let(=\oprm \else \char `\) \fi
- \global\advance \parencount by -1 }
-% If we encounter &foo, then turn on ()-hacking afterwards
-\gdef\amprm#1 {{\rm\&#1}\let(=\oprm \let)=\clrm\ }
-%
-\gdef\normalparens{\boldbrax\let&=\ampnr}
-} % End of definition inside \activeparens
-%% These parens (in \boldbrax) actually are a little bolder than the
-%% contained text. This is especially needed for [ and ]
-\def\opnr{{\sf\char`\(}\global\advance\parencount by 1 }
-\def\clnr{{\sf\char`\)}\global\advance\parencount by -1 }
-\let\ampnr = \&
-\def\lbrb{{\bf\char`\[}}
-\def\rbrb{{\bf\char`\]}}
-
-% Active &'s sneak into the index arguments, so make sure it's defined.
-{
- \catcode`& = \active
- \global\let& = \ampnr
-}
-
-% \defname, which formats the name of the @def (not the args).
-% #1 is the function name.
-% #2 is the type of definition, such as "Function".
-%
-\def\defname#1#2{%
- % How we'll output the type name. Putting it in brackets helps
- % distinguish it from the body text that may end up on the next line
- % just below it.
- \ifempty{#2}%
- \def\defnametype{}%
+% Start the processing of @deffn:
+\def\startdefun{%
+ \ifnum\lastpenalty<10000
+ \medbreak
\else
- \def\defnametype{[\rm #2]}%
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we need to allow a
+ % break somewhere. Check specifically for penalty 10002, inserted
+ % by \defargscommonending, instead of 10000, since the sectioning
+ % commands also insert a nobreak penalty, and we don't want to allow
+ % a break between a section heading and a defun.
+ %
+ \ifnum\lastpenalty=10002 \penalty2000 \fi
+ %
+ % Similarly, after a section heading, do not allow a break.
+ % But do insert the glue.
+ \medskip % preceded by discardable penalty, so not a breakpoint
\fi
%
- % Get the values of \leftskip and \rightskip as they were outside the @def...
- \dimen2=\leftskip
- \advance\dimen2 by -\defbodyindent
- %
- % Figure out values for the paragraph shape.
- \setbox0=\hbox{\hskip \deflastargmargin{\defnametype}}%
- \dimen0=\hsize \advance \dimen0 by -\wd0 % compute size for first line
- \dimen1=\hsize \advance \dimen1 by -\defargsindent % size for continuations
- \parshape 2 0in \dimen0 \defargsindent \dimen1
- %
- % Output arg 2 ("Function" or some such) but stuck inside a box of
- % width 0 so it does not interfere with linebreaking.
- \noindent
- %
- {% Adjust \hsize to exclude the ambient margins,
- % so that \rightline will obey them.
- \advance \hsize by -\dimen2
- \dimen3 = 0pt % was -1.25pc
- \rlap{\rightline{\defnametype\kern\dimen3}}%
- }%
- %
- % Allow all lines to be underfull without complaint:
- \tolerance=10000 \hbadness=10000
- \advance\leftskip by -\defbodyindent
- \exdentamount=\defbodyindent
- {\df #1}\enskip % output function name
- % \defunargs will be called next to output the arguments, if any.
-}
-
-% Common pieces to start any @def...
-% #1 is the \E... control sequence to end the definition (which we define).
-% #2 is the \...x control sequence (which our caller defines).
-% #3 is the control sequence to process the header, such as \defunheader.
-%
-\def\parsebodycommon#1#2#3{%
- \begingroup\inENV
- % If there are two @def commands in a row, we'll have a \nobreak,
- % which is there to keep the function description together with its
- % header. But if there's nothing but headers, we want to allow a
- % break after all. Check for penalty 10002 (inserted by
- % \defargscommonending) instead of 10000, since the sectioning
- % commands insert a \penalty10000, and we don't want to allow a break
- % between a section heading and a defun.
- \ifnum\lastpenalty=10002 \penalty0 \fi
- \medbreak
- %
- % Define the \E... end token that this defining construct specifies
- % so that it will exit this group.
- \def#1{\endgraf\endgroup\medbreak}%
- %
\parindent=0in
\advance\leftskip by \defbodyindent
\exdentamount=\defbodyindent
}
-% Common part of the \...x definitions.
-%
-\def\defxbodycommon{%
- % As with \parsebodycommon above, allow line break if we have multiple
- % x headers in a row. It's not a great place, though.
- \ifnum\lastpenalty=10000 \penalty1000 \fi
+\def\dodefunx#1{%
+ % First, check whether we are in the right environment:
+ \checkenv#1%
%
- \begingroup\obeylines
-}
-
-% Process body of @defun, @deffn, @defmac, etc.
-%
-\def\defparsebody#1#2#3{%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2{\defxbodycommon \activeparens \spacesplit#3}%
- \catcode\equalChar=\active
- \begingroup\obeylines\activeparens
- \spacesplit#3%
-}
-
-% #1, #2, #3 are the common arguments (see \parsebodycommon above).
-% #4, delimited by the space, is the class name.
-%
-\def\defmethparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 {\defxbodycommon \activeparens \spacesplit{#3{##1}}}%
- \begingroup\obeylines\activeparens
- % The \empty here prevents misinterpretation of a construct such as
- % @deffn {whatever} {Enharmonic comma}
- % See comments at \deftpparsebody, although in our case we don't have
- % to remove the \empty afterwards, since it is empty.
- \spacesplit{#3{#4}}\empty
+ % As above, allow line break if we have multiple x headers in a row.
+ % It's not a great place, though.
+ \ifnum\lastpenalty=10002 \penalty3000 \fi
+ %
+ % And now, it's time to reuse the body of the original defun:
+ \expandafter\gobbledefun#1%
}
+\def\gobbledefun#1\startdefun{}
-% Used for @deftypemethod and @deftypeivar.
-% #1, #2, #3 are the common arguments (see \defparsebody).
-% #4, delimited by a space, is the class name.
-% #5 is the method's return type.
+% \printdefunline \deffnheader{text}
%
-\def\deftypemethparsebody#1#2#3#4 #5 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 ##2 {\defxbodycommon \activeparens \spacesplit{#3{##1}{##2}}}%
- \begingroup\obeylines\activeparens
- \spacesplit{#3{#4}{#5}}%
-}
-
-% Used for @deftypeop. The change from \deftypemethparsebody is an
-% extra argument at the beginning which is the `category', instead of it
-% being the hardwired string `Method' or `Instance Variable'. We have
-% to account for this both in the \...x definition and in parsing the
-% input at hand. Thus also need a control sequence (passed as #5) for
-% the \E... definition to assign the category name to.
-%
-\def\deftypeopparsebody#1#2#3#4#5 #6 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 ##2 ##3 {\def#4{##1}%
- \defxbodycommon \activeparens \spacesplit{#3{##2}{##3}}}%
- \begingroup\obeylines\activeparens
- \spacesplit{#3{#5}{#6}}%
+\def\printdefunline#1#2{%
+ \begingroup
+ % call \deffnheader:
+ #1#2 \endheader
+ % common ending:
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty 10002 % signal to \startdefun and \dodefunx
+ % Some of the @defun-type tags do not enable magic parentheses,
+ % rendering the following check redundant. But we don't optimize.
+ \checkparencounts
+ \endgroup
}
-% For @defop.
-\def\defopparsebody #1#2#3#4#5 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 ##2 {\def#4{##1}%
- \defxbodycommon \activeparens \spacesplit{#3{##2}}}%
- \begingroup\obeylines\activeparens
- \spacesplit{#3{#5}}%
-}
+\def\Edefun{\endgraf\medbreak}
-% These parsing functions are similar to the preceding ones
-% except that they do not make parens into active characters.
-% These are used for "variables" since they have no arguments.
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remainnig is to define \deffnheader.
%
-\def\defvarparsebody #1#2#3{%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2{\defxbodycommon \spacesplit#3}%
- \catcode\equalChar=\active
- \begingroup\obeylines
- \spacesplit#3%
-}
-
-% @defopvar.
-\def\defopvarparsebody #1#2#3#4#5 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 ##2 {\def#4{##1}%
- \defxbodycommon \spacesplit{#3{##2}}}%
- \begingroup\obeylines
- \spacesplit{#3{#5}}%
-}
-
-\def\defvrparsebody#1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
- \begingroup\obeylines
- \spacesplit{#3{#4}}%
+\def\makedefun#1{%
+ \expandafter\let\csname E#1\endcsname = \Edefun
+ \edef\temp{\noexpand\domakedefun
+ \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+ \temp
}
-% This loses on `@deftp {Data Type} {struct termios}' -- it thinks the
-% type is just `struct', because we lose the braces in `{struct
-% termios}' when \spacesplit reads its undelimited argument. Sigh.
-% \let\deftpparsebody=\defvrparsebody
+% \domakedefun \deffn \deffnx \deffnheader
%
-% So, to get around this, we put \empty in with the type name. That
-% way, TeX won't find exactly `{...}' as an undelimited argument, and
-% won't strip off the braces.
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
%
-\def\deftpparsebody #1#2#3#4 {%
- \parsebodycommon{#1}{#2}{#3}%
- \def#2##1 {\defxbodycommon \spacesplit{#3{##1}}}%
- \begingroup\obeylines
- \spacesplit{\parsetpheaderline{#3{#4}}}\empty
+\def\domakedefun#1#2#3{%
+ \envdef#1{%
+ \startdefun
+ \parseargusing\activeparens{\printdefunline#3}%
+ }%
+ \def#2{\dodefunx#1}%
+ \def#3%
}
-% Fine, but then we have to eventually remove the \empty *and* the
-% braces (if any). That's what this does.
-%
-\def\removeemptybraces\empty#1\relax{#1}
+%%% Untyped functions:
-% After \spacesplit has done its work, this is called -- #1 is the final
-% thing to call, #2 the type name (which starts with \empty), and #3
-% (which might be empty) the arguments.
-%
-\def\parsetpheaderline#1#2#3{%
- #1{\removeemptybraces#2\relax}{#3}%
-}%
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
-% Split up #2 (the rest of the input line) at the first space token.
-% call #1 with two arguments:
-% the first is all of #2 before the space token,
-% the second is all of #2 after that space token.
-% If #2 contains no space token, all of it is passed as the first arg
-% and the second is passed as empty.
-%
-{\obeylines %
- \gdef\spacesplit#1#2^^M{\endgroup\spacesplitx{#1}#2 \relax\spacesplitx}%
- \long\gdef\spacesplitx#1#2 #3#4\spacesplitx{%
- \ifx\relax #3%
- #1{#2}{}%
- \else %
- #1{#2}{#3#4}%
- \fi}%
-}
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
-% Define @defun.
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-% This is called to end the arguments processing for all the @def... commands.
+% \deffngeneral {subind}category name args
%
-\def\defargscommonending{%
- \interlinepenalty = 10000
- \advance\rightskip by 0pt plus 1fil
- \endgraf
- \nobreak\vskip -\parskip
- \penalty 10002 % signal to \parsebodycommon.
+\def\deffngeneral#1#2 #3 #4\endheader{%
+ % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+ \dosubind{fn}{\code{#3}}{#1}%
+ \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
}
-% This expands the args and terminates the paragraph they comprise.
-%
-\def\defunargs#1{\functionparens \sl
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Set the font temporarily and use \font in case \setfont made \tensl a macro.
-{\tensl\hyphenchar\font=0}%
-#1%
-{\tensl\hyphenchar\font=45}%
-\ifnum\parencount=0 \else \errmessage{Unbalanced parentheses in @def}\fi%
- \defargscommonending
-}
+%%% Typed functions:
-\def\deftypefunargs #1{%
-% Expand, preventing hyphenation at `-' chars.
-% Note that groups don't affect changes in \hyphenchar.
-% Use \boldbraxnoamp, not \functionparens, so that & is not special.
-\boldbraxnoamp
-\tclose{#1}% avoid \code because of side effects on active chars
- \defargscommonending
-}
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
-% Do complete processing of one @defun or @defunx line already parsed.
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
-% @deffn Command forward-char nchars
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
-\def\deffn{\defmethparsebody\Edeffn\deffnx\deffnheader}
-
-\def\deffnheader #1#2#3{\doind {fn}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defunargs{#3}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{fn}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-% @defun == @deffn Function
+%%% Typed variables:
-\def\defun{\defparsebody\Edefun\defunx\defunheader}
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
-\def\defunheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDeffunc}%
-\defunargs {#2}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
-}
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
-% @deftypefun int foobar (int @var{foo}, float @var{bar})
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
-\def\deftypefun{\defparsebody\Edeftypefun\deftypefunx\deftypefunheader}
-
-% #1 is the data type. #2 is the name and args.
-\def\deftypefunheader #1#2{\deftypefunheaderx{#1}#2 \relax}
-% #1 is the data type, #2 the name, #3 the args.
-\def\deftypefunheaderx #1#2 #3\relax{%
-\doind {fn}{\code{#2}}% Make entry in function index
-\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypefun}%
-\deftypefunargs {#3}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{vr}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
}
-% @deftypefn {Library Function} int foobar (int @var{foo}, float @var{bar})
+%%% Untyped variables:
-\def\deftypefn{\defmethparsebody\Edeftypefn\deftypefnx\deftypefnheader}
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
-% \defheaderxcond#1\relax$.$
-% puts #1 in @code, followed by a space, but does nothing if #1 is null.
-\def\defheaderxcond#1#2$.${\ifx#1\relax\else\code{#1#2} \fi}
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
-% #1 is the classification. #2 is the data type. #3 is the name and args.
-\def\deftypefnheader #1#2#3{\deftypefnheaderx{#1}{#2}#3 \relax}
-% #1 is the classification, #2 the data type, #3 the name, #4 the args.
-\def\deftypefnheaderx #1#2#3 #4\relax{%
-\doind {fn}{\code{#3}}% Make entry in function index
-\begingroup
-\normalparens % notably, turn off `&' magic, which prevents
-% at least some C++ text from working
-\defname {\defheaderxcond#2\relax$.$#3}{#1}%
-\deftypefunargs {#4}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
-}
-
-% @defmac == @deffn Macro
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
-\def\defmac{\defparsebody\Edefmac\defmacx\defmacheader}
-
-\def\defmacheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefmac}%
-\defunargs {#2}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
+%%% Type:
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+ \doind{tp}{\code{#2}}%
+ \defname{#1}{}{#2}\defunargs{#3\unskip}%
}
-% @defspec == @deffn Special Form
-
-\def\defspec{\defparsebody\Edefspec\defspecx\defspecheader}
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
-\def\defspecheader #1#2{\doind {fn}{\code{#1}}% Make entry in function index
-\begingroup\defname {#1}{\putwordDefspec}%
-\defunargs {#2}\endgroup %
-\catcode\equalChar=\other % Turn off change made in \defparsebody
-}
-
-% @defop CATEGORY CLASS OPERATION ARG...
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
%
-\def\defop #1 {\def\defoptype{#1}%
-\defopparsebody\Edefop\defopx\defopheader\defoptype}
+% We are followed by (but not passed) the arguments, if any.
%
-\def\defopheader#1#2#3{%
- \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% function index entry
- \begingroup
- \defname{#2}{\defoptype\ \putwordon\ #1}%
- \defunargs{#3}%
- \endgroup
+\def\defname#1#2#3{%
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \advance\leftskip by -\defbodyindent
+ %
+ % How we'll format the type name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \def\temp{#1}%
+ \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+ %
+ % Figure out line sizes for the paragraph shape.
+ % The first line needs space for \box0; but if \rightskip is nonzero,
+ % we need only space for the part of \box0 which exceeds it:
+ \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ % The continuations:
+ \dimen2=\hsize \advance\dimen2 by -\defargsindent
+ % (plain.tex says that \dimen1 should be used only as global.)
+ \parshape 2 0in \dimen0 \defargsindent \dimen2
+ %
+ % Put the type name to the right margin.
+ \noindent
+ \hbox to 0pt{%
+ \hfil\box0 \kern-\hsize
+ % \hsize has to be shortened this way:
+ \kern\leftskip
+ % Intentionally do not respect \rightskip, since we need the space.
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \exdentamount=\defbodyindent
+ {%
+ % defun fonts. We use typewriter by default (used to be bold) because:
+ % . we're printing identifiers, they should be in tt in principle.
+ % . in languages with many accents, such as Czech or French, it's
+ % common to leave accents off identifiers. The result looks ok in
+ % tt, but exceedingly strange in rm.
+ % . we don't want -- and --- to be treated as ligatures.
+ % . this still does not fix the ?` and !` ligatures, but so far no
+ % one has made identifiers using them :).
+ \df \tt
+ \def\temp{#2}% return value type
+ \ifx\temp\empty\else \tclose{\temp} \fi
+ #3% output function name
+ }%
+ {\rm\enskip}% hskip 0.5 em of \tenrm
+ %
+ \boldbrax
+ % arguments will be output next, if any.
}
-% @deftypeop CATEGORY CLASS TYPE OPERATION ARG...
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name. This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable. Prevent hyphenation at `-' chars.
%
-\def\deftypeop #1 {\def\deftypeopcategory{#1}%
- \deftypeopparsebody\Edeftypeop\deftypeopx\deftypeopheader
- \deftypeopcategory}
-%
-% #1 is the class name, #2 the data type, #3 the operation name, #4 the args.
-\def\deftypeopheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$.$#3}
- {\deftypeopcategory\ \putwordon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
+\def\defunargs#1{%
+ % use sl by default (not ttsl),
+ % tt for the names.
+ \df \sl \hyphenchar\font=0
+ %
+ % On the other hand, if an argument has two dashes (for instance), we
+ % want a way to get ttsl. Let's try @var for that.
+ \let\var=\ttslanted
+ #1%
+ \sl\hyphenchar\font=45
}
-% @deftypemethod CLASS TYPE METHOD ARG...
-%
-\def\deftypemethod{%
- \deftypemethparsebody\Edeftypemethod\deftypemethodx\deftypemethodheader}
+% We want ()&[] to print specially on the defun line.
%
-% #1 is the class name, #2 the data type, #3 the method name, #4 the args.
-\def\deftypemethodheader#1#2#3#4{%
- \dosubind{fn}{\code{#3}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{\defheaderxcond#2\relax$.$#3}{\putwordMethodon\ \code{#1}}%
- \deftypefunargs{#4}%
- \endgroup
+\def\activeparens{%
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\[=\active \catcode`\]=\active
+ \catcode`\&=\active
}
-% @deftypeivar CLASS TYPE VARNAME
-%
-\def\deftypeivar{%
- \deftypemethparsebody\Edeftypeivar\deftypeivarx\deftypeivarheader}
-%
-% #1 is the class name, #2 the data type, #3 the variable name.
-\def\deftypeivarheader#1#2#3{%
- \dosubind{vr}{\code{#3}}{\putwordof\ \code{#1}}% entry in variable index
- \begingroup
- \defname{\defheaderxcond#2\relax$.$#3}
- {\putwordInstanceVariableof\ \code{#1}}%
- \defvarargs{#3}%
- \endgroup
-}
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
-% @defmethod == @defop Method
-%
-\def\defmethod{\defmethparsebody\Edefmethod\defmethodx\defmethodheader}
-%
-% #1 is the class name, #2 the method name, #3 the args.
-\def\defmethodheader#1#2#3{%
- \dosubind{fn}{\code{#2}}{\putwordon\ \code{#1}}% entry in function index
- \begingroup
- \defname{#2}{\putwordMethodon\ \code{#1}}%
- \defunargs{#3}%
- \endgroup
-}
+% Be sure that we always have a definition for `(', etc. For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+ \activeparens
+ \global\let(=\lparen \global\let)=\rparen
+ \global\let[=\lbrack \global\let]=\rbrack
+ \global\let& = \&
-% @defcv {Class Option} foo-class foo-flag
+ \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+ \gdef\magicamp{\let&=\amprm}
+}
-\def\defcv #1 {\def\defcvtype{#1}%
-\defopvarparsebody\Edefcv\defcvx\defcvarheader\defcvtype}
+\newcount\parencount
-\def\defcvarheader #1#2#3{%
- \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% variable index entry
- \begingroup
- \defname{#2}{\defcvtype\ \putwordof\ #1}%
- \defvarargs{#3}%
- \endgroup
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\def\parenfont{%
+ \ifampseen
+ % At the first level, print parens in roman,
+ % otherwise use the default font.
+ \ifnum \parencount=1 \rm \fi
+ \else
+ % The \sf parens (in \boldbrax) actually are a little bolder than
+ % the contained text. This is especially needed for [ and ] .
+ \sf
+ \fi
}
-
-% @defivar CLASS VARNAME == @defcv {Instance Variable} CLASS VARNAME
-%
-\def\defivar{\defvrparsebody\Edefivar\defivarx\defivarheader}
-%
-\def\defivarheader#1#2#3{%
- \dosubind{vr}{\code{#2}}{\putwordof\ \code{#1}}% entry in var index
- \begingroup
- \defname{#2}{\putwordInstanceVariableof\ #1}%
- \defvarargs{#3}%
- \endgroup
+\def\infirstlevel#1{%
+ \ifampseen
+ \ifnum\parencount=1
+ #1%
+ \fi
+ \fi
}
+\def\bfafterword#1 {#1 \bf}
-% @defvar
-% First, define the processing that is wanted for arguments of @defvar.
-% This is actually simple: just print them in roman.
-% This must expand the args and terminate the paragraph they make up
-\def\defvarargs #1{\normalparens #1%
- \defargscommonending
+\def\opnr{%
+ \global\advance\parencount by 1
+ {\parenfont(}%
+ \infirstlevel \bfafterword
}
-
-% @defvr Counter foo-count
-
-\def\defvr{\defvrparsebody\Edefvr\defvrx\defvrheader}
-
-\def\defvrheader #1#2#3{\doind {vr}{\code{#2}}%
-\begingroup\defname {#2}{#1}\defvarargs{#3}\endgroup}
-
-% @defvar == @defvr Variable
-
-\def\defvar{\defvarparsebody\Edefvar\defvarx\defvarheader}
-
-\def\defvarheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefvar}%
-\defvarargs {#2}\endgroup %
+\def\clnr{%
+ {\parenfont)}%
+ \infirstlevel \sl
+ \global\advance\parencount by -1
}
-% @defopt == @defvr {User Option}
-
-\def\defopt{\defvarparsebody\Edefopt\defoptx\defoptheader}
-
-\def\defoptheader #1#2{\doind {vr}{\code{#1}}% Make entry in var index
-\begingroup\defname {#1}{\putwordDefopt}%
-\defvarargs {#2}\endgroup %
+\newcount\brackcount
+\def\lbrb{%
+ \global\advance\brackcount by 1
+ {\bf[}%
+}
+\def\rbrb{%
+ {\bf]}%
+ \global\advance\brackcount by -1
}
-% @deftypevar int foobar
-
-\def\deftypevar{\defvarparsebody\Edeftypevar\deftypevarx\deftypevarheader}
-
-% #1 is the data type. #2 is the name, perhaps followed by text that
-% is actually part of the data type, which should not be put into the index.
-\def\deftypevarheader #1#2{%
-\dovarind#2 \relax% Make entry in variables index
-\begingroup\defname {\defheaderxcond#1\relax$.$#2}{\putwordDeftypevar}%
- \defargscommonending
-\endgroup}
-\def\dovarind#1 #2\relax{\doind{vr}{\code{#1}}}
-
-% @deftypevr {Global Flag} int enable
-
-\def\deftypevr{\defvrparsebody\Edeftypevr\deftypevrx\deftypevrheader}
-
-\def\deftypevrheader #1#2#3{\dovarind#3 \relax%
-\begingroup\defname {\defheaderxcond#2\relax$.$#3}{#1}
- \defargscommonending
-\endgroup}
-
-% Now define @deftp
-% Args are printed in bold, a slight difference from @defvar.
-
-\def\deftpargs #1{\bf \defvarargs{#1}}
-
-% @deftp Class window height width ...
-
-\def\deftp{\deftpparsebody\Edeftp\deftpx\deftpheader}
-
-\def\deftpheader #1#2#3{\doind {tp}{\code{#2}}%
-\begingroup\defname {#2}{#1}\deftpargs{#3}\endgroup}
-
-% These definitions are used if you use @defunx (etc.)
-% anywhere other than immediately after a @defun or @defunx.
-%
-\def\defcvx#1 {\errmessage{@defcvx in invalid context}}
-\def\deffnx#1 {\errmessage{@deffnx in invalid context}}
-\def\defivarx#1 {\errmessage{@defivarx in invalid context}}
-\def\defmacx#1 {\errmessage{@defmacx in invalid context}}
-\def\defmethodx#1 {\errmessage{@defmethodx in invalid context}}
-\def\defoptx #1 {\errmessage{@defoptx in invalid context}}
-\def\defopx#1 {\errmessage{@defopx in invalid context}}
-\def\defspecx#1 {\errmessage{@defspecx in invalid context}}
-\def\deftpx#1 {\errmessage{@deftpx in invalid context}}
-\def\deftypefnx#1 {\errmessage{@deftypefnx in invalid context}}
-\def\deftypefunx#1 {\errmessage{@deftypefunx in invalid context}}
-\def\deftypeivarx#1 {\errmessage{@deftypeivarx in invalid context}}
-\def\deftypemethodx#1 {\errmessage{@deftypemethodx in invalid context}}
-\def\deftypeopx#1 {\errmessage{@deftypeopx in invalid context}}
-\def\deftypevarx#1 {\errmessage{@deftypevarx in invalid context}}
-\def\deftypevrx#1 {\errmessage{@deftypevrx in invalid context}}
-\def\defunx#1 {\errmessage{@defunx in invalid context}}
-\def\defvarx#1 {\errmessage{@defvarx in invalid context}}
-\def\defvrx#1 {\errmessage{@defvrx in invalid context}}
+\def\checkparencounts{%
+ \ifnum\parencount=0 \else \badparencount \fi
+ \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+\def\badparencount{%
+ \errmessage{Unbalanced parentheses in @def}%
+ \global\parencount=0
+}
+\def\badbrackcount{%
+ \errmessage{Unbalanced square braces in @def}%
+ \global\brackcount=0
+}
\message{macros,}
@@ -5499,42 +5625,69 @@ width0pt\relax} \fi
% To do this right we need a feature of e-TeX, \scantokens,
% which we arrange to emulate with a temporary file in ordinary TeX.
\ifx\eTeXversion\undefined
- \newwrite\macscribble
- \def\scanmacro#1{%
- \begingroup \newlinechar`\^^M
- % Undo catcode changes of \startcontents and \doprintindex
- \catcode`\@=0 \catcode`\\=\other \escapechar=`\@
- % Append \endinput to make sure that TeX does not see the ending newline.
- \toks0={#1\endinput}%
- \immediate\openout\macscribble=\jobname.tmp
- \immediate\write\macscribble{\the\toks0}%
- \immediate\closeout\macscribble
- \let\xeatspaces\eatspaces
- \input \jobname.tmp
- \endgroup
-}
-\else
-\def\scanmacro#1{%
-\begingroup \newlinechar`\^^M
-% Undo catcode changes of \startcontents and \doprintindex
-\catcode`\@=0 \catcode`\\=\other \escapechar=`\@
-\let\xeatspaces\eatspaces\scantokens{#1\endinput}\endgroup}
+ \newwrite\macscribble
+ \def\scantokens#1{%
+ \toks0={#1}%
+ \immediate\openout\macscribble=\jobname.tmp
+ \immediate\write\macscribble{\the\toks0}%
+ \immediate\closeout\macscribble
+ \input \jobname.tmp
+ }
\fi
+\def\scanmacro#1{%
+ \begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ % ... and \example
+ \spaceisspace
+ %
+ % Append \endinput to make sure that TeX does not see the ending newline.
+ %
+ % I've verified that it is necessary both for e-TeX and for ordinary TeX
+ % --kasal, 29nov03
+ \scantokens{#1\endinput}%
+ \endgroup
+}
+
+\def\scanexp#1{%
+ \edef\temp{\noexpand\scanmacro{#1}}%
+ \temp
+}
+
\newcount\paramno % Count of parameters
\newtoks\macname % Macro name
\newif\ifrecursive % Is it recursive?
-\def\macrolist{} % List of all defined macros in the form
- % \do\macro1\do\macro2...
+
+% List of all defined macros in the form
+% \definedummyword\macro1\definedummyword\macro2...
+% Currently is also contains all @aliases; the list can be split
+% if there is a need.
+\def\macrolist{}
+
+% Add the macro to \macrolist
+\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
+\def\addtomacrolistxxx#1{%
+ \toks0 = \expandafter{\macrolist\definedummyword#1}%
+ \xdef\macrolist{\the\toks0}%
+}
% Utility routines.
-% Thisdoes \let #1 = #2, except with \csnames.
+% This does \let #1 = #2, with \csnames; that is,
+% \let \csname#1\endcsname = \csname#2\endcsname
+% (except of course we have to play expansion games).
+%
\def\cslet#1#2{%
-\expandafter\expandafter
-\expandafter\let
-\expandafter\expandafter
-\csname#1\endcsname
-\csname#2\endcsname}
+ \expandafter\let
+ \csname#1\expandafter\endcsname
+ \csname#2\endcsname
+}
% Trim leading and trailing spaces off a string.
% Concepts from aro-bend problem 15 (see CTAN).
@@ -5561,30 +5714,36 @@ width0pt\relax} \fi
% done by making ^^M (\endlinechar) catcode 12 when reading the macro
% body, and then making it the \newlinechar in \scanmacro.
-\def\macrobodyctxt{%
- \catcode`\~=\other
+\def\scanctxt{%
+ \catcode`\"=\other
+ \catcode`\+=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\@=\other
\catcode`\^=\other
\catcode`\_=\other
\catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\+=\other
+ \catcode`\~=\other
+}
+
+\def\scanargctxt{%
+ \scanctxt
+ \catcode`\\=\other
+ \catcode`\^^M=\other
+}
+
+\def\macrobodyctxt{%
+ \scanctxt
\catcode`\{=\other
\catcode`\}=\other
- \catcode`\@=\other
\catcode`\^^M=\other
- \usembodybackslash}
+ \usembodybackslash
+}
\def\macroargctxt{%
- \catcode`\~=\other
- \catcode`\^=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
- \catcode`\+=\other
- \catcode`\@=\other
- \catcode`\\=\other}
+ \scanctxt
+ \catcode`\\=\other
+}
% \mbodybackslash is the definition of \ in @macro bodies.
% It maps \foo\ => \csname macarg.foo\endcsname => #N
@@ -5615,25 +5774,21 @@ width0pt\relax} \fi
\else \errmessage{Macro name \the\macname\space already defined}\fi
\global\cslet{macsave.\the\macname}{\the\macname}%
\global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
- % Add the macroname to \macrolist
- \toks0 = \expandafter{\macrolist\do}%
- \xdef\macrolist{\the\toks0
- \expandafter\noexpand\csname\the\macname\endcsname}%
+ \addtomacrolist{\the\macname}%
\fi
\begingroup \macrobodyctxt
\ifrecursive \expandafter\parsermacbody
\else \expandafter\parsemacbody
\fi}
-\def\unmacro{\parsearg\dounmacro}
-\def\dounmacro#1{%
+\parseargdef\unmacro{%
\if1\csname ismacro.#1\endcsname
\global\cslet{#1}{macsave.#1}%
\global\expandafter\let \csname ismacro.#1\endcsname=0%
% Remove the macro name from \macrolist:
\begingroup
\expandafter\let\csname#1\endcsname \relax
- \let\do\unmacrodo
+ \let\definedummyword\unmacrodo
\xdef\macrolist{\macrolist}%
\endgroup
\else
@@ -5643,12 +5798,12 @@ width0pt\relax} \fi
% Called by \do from \dounmacro on each macro. The idea is to omit any
% macro definitions that have been changed to \relax.
-%
+%
\def\unmacrodo#1{%
- \ifx#1\relax
+ \ifx #1\relax
% remove this
\else
- \noexpand\do \noexpand #1%
+ \noexpand\definedummyword \noexpand#1%
\fi
}
@@ -5767,25 +5922,23 @@ width0pt\relax} \fi
\expandafter\parsearg
\fi \next}
-% We mant to disable all macros during \shipout so that they are not
-% expanded by \write.
-\def\turnoffmacros{\begingroup \def\do##1{\let\noexpand##1=\relax}%
- \edef\next{\macrolist}\expandafter\endgroup\next}
-
% @alias.
% We need some trickery to remove the optional spaces around the equal
% sign. Just make them active and then expand them all to nothing.
-\def\alias{\begingroup\obeyspaces\parsearg\aliasxxx}
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
\def\aliasxxx #1{\aliasyyy#1\relax}
-\def\aliasyyy #1=#2\relax{\ignoreactivespaces
-\edef\next{\global\let\expandafter\noexpand\csname#1\endcsname=%
- \expandafter\noexpand\csname#2\endcsname}%
-\expandafter\endgroup\next}
+\def\aliasyyy #1=#2\relax{%
+ {%
+ \expandafter\let\obeyedspace=\empty
+ \addtomacrolist{#1}%
+ \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+ }%
+ \next
+}
\message{cross references,}
-% @xref etc.
\newwrite\auxfile
@@ -5797,64 +5950,68 @@ width0pt\relax} \fi
\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
node \samp{\ignorespaces#1{}}}
-% @node's job is to define \lastnode.
-\def\node{\ENVcheck\parsearg\nodezzz}
-\def\nodezzz#1{\nodexxx #1,\finishnodeparse}
-\def\nodexxx#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references. The @node line might or might not have commas, and
+% might or might not have spaces before the first comma, like:
+% @node foo , bar , ...
+% We don't want such trailing spaces in the node name.
+%
+\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+%
+% also remove a trailing comma, in case of something like this:
+% @node Help-Cross, , , Cross-refs
+\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+
\let\nwnode=\node
-\let\lastnode=\relax
-
-% The sectioning commands (@chapter, etc.) call these.
-\def\donoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Ysectionnumberandtype}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\unnumbnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}{Ynothing}%
- \global\let\lastnode=\relax
- \fi
-}
-\def\appendixnoderef{%
- \ifx\lastnode\relax\else
- \expandafter\expandafter\expandafter\setref{\lastnode}%
- {Yappendixletterandtype}%
- \global\let\lastnode=\relax
+\let\lastnode=\empty
+
+% Write a cross-reference definition for the current node. #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+%
+\def\donoderef#1{%
+ \ifx\lastnode\empty\else
+ \setref{\lastnode}{#1}%
+ \global\let\lastnode=\empty
\fi
}
-
% @anchor{NAME} -- define xref target at arbitrary point.
%
\newcount\savesfregister
-\gdef\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
-\gdef\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
-\gdef\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
-% anchor), namely NAME-title (the corresponding @chapter/etc. name),
-% NAME-pg (the page number), and NAME-snt (section number and type).
-% Called from \foonoderef.
-%
-% We have to set \indexdummies so commands such as @code in a section
-% title aren't expanded. It would be nicer not to expand the titles in
-% the first place, but there's so many layers that that is hard to do.
-%
-% Likewise, use \turnoffactive so that punctuation chars such as underscore
-% and backslash work in node names.
-%
-\def\setref#1#2{{%
- \atdummies
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \thissection,
+% or the anchor name.
+% 2) NAME-snt - section number and type, passed as the SNT arg, or
+% empty for anchors.
+% 3) NAME-pg - the page number.
+%
+% This is called from \donoderef, \anchor, and \dofloat. In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof - the text as it should appear in a @listoffloats.
+%
+\def\setref#1#2{%
\pdfmkdest{#1}%
- %
- \turnoffactive
- \dosetq{#1-title}{Ytitle}%
- \dosetq{#1-pg}{Ypagenumber}%
- \dosetq{#1-snt}{#2}%
-}}
+ \iflinks
+ {%
+ \atdummies % preserve commands, but don't expand them
+ \edef\writexrdef##1##2{%
+ \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+ ##1}{##2}}% these are parameters of \writexrdef
+ }%
+ \toks0 = \expandafter{\thissection}%
+ \immediate \writexrdef{title}{\the\toks0 }%
+ \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+ \writexrdef{pg}{\folio}% will be written later, during \shipout
+ }%
+ \fi
+}
% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
% the node name, #2 the name of the Info cross-reference, #3 the printed
@@ -5867,105 +6024,125 @@ width0pt\relax} \fi
\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
\unsepspaces
\def\printedmanual{\ignorespaces #5}%
- \def\printednodename{\ignorespaces #3}%
- \setbox1=\hbox{\printedmanual}%
- \setbox0=\hbox{\printednodename}%
+ \def\printedrefname{\ignorespaces #3}%
+ \setbox1=\hbox{\printedmanual\unskip}%
+ \setbox0=\hbox{\printedrefname\unskip}%
\ifdim \wd0 = 0pt
% No printed node name was explicitly given.
\expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax
% Use the node name inside the square brackets.
- \def\printednodename{\ignorespaces #1}%
+ \def\printedrefname{\ignorespaces #1}%
\else
% Use the actual chapter/section title appear inside
% the square brackets. Use the real section title if we have it.
\ifdim \wd1 > 0pt
% It is in another manual, so we don't have it.
- \def\printednodename{\ignorespaces #1}%
+ \def\printedrefname{\ignorespaces #1}%
\else
\ifhavexrefs
% We know the real title if we have the xref values.
- \def\printednodename{\refx{#1-title}{}}%
+ \def\printedrefname{\refx{#1-title}{}}%
\else
% Otherwise just copy the Info node name.
- \def\printednodename{\ignorespaces #1}%
+ \def\printedrefname{\ignorespaces #1}%
\fi%
\fi
\fi
\fi
%
- % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
- % insert empty discretionaries after hyphens, which means that it will
- % not find a line break at a hyphen in a node names. Since some manuals
- % are best written with fairly long node names, containing hyphens, this
- % is a loss. Therefore, we give the text of the node name again, so it
- % is as if TeX is seeing it for the first time.
+ % Make link in pdf output.
\ifpdf
\leavevmode
\getfilename{#4}%
- {\turnoffactive \otherbackslash
+ {\turnoffactive
+ % See comments at \activebackslashdouble.
+ {\activebackslashdouble \xdef\pdfxrefdest{#1}%
+ \backslashparens\pdfxrefdest}%
+ %
\ifnum\filenamelength>0
\startlink attr{/Border [0 0 0]}%
- goto file{\the\filename.pdf} name{#1}%
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
\else
\startlink attr{/Border [0 0 0]}%
- goto name{#1}%
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
\fi
}%
\linkcolor
\fi
%
- \ifdim \wd1 > 0pt
- \putwordsection{} ``\printednodename'' \putwordin{} \cite{\printedmanual}%
- \else
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\turnoffactive \otherbackslash
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
- % output the `[mynode]' via a macro.
- \xrefprintnodename\printednodename
+ % Float references are printed completely differently: "Figure 1.2"
+ % instead of "[somenode], p.3". We distinguish them by the
+ % LABEL-title being set to a magic string.
+ {%
+ % Have to otherify everything special to allow the \csname to
+ % include an _ in the xref name, etc.
+ \indexnofonts
+ \turnoffactive
+ \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+ \csname XR#1-title\endcsname
+ }%
+ \iffloat\Xthisreftitle
+ % If the user specified the print name (third arg) to the ref,
+ % print it instead of our usual "Figure 1.2".
+ \ifdim\wd0 = 0pt
+ \refx{#1-snt}%
+ \else
+ \printedrefname
+ \fi
%
- % But we always want a comma and a space:
- ,\space
+ % if the user also gave the printed manual name (fifth arg), append
+ % "in MANUALNAME".
+ \ifdim \wd1 > 0pt
+ \space \putwordin{} \cite{\printedmanual}%
+ \fi
+ \else
+ % node/anchor (non-float) references.
%
- % output the `page 3'.
- \turnoffactive \otherbackslash \putwordpage\tie\refx{#1-pg}{}%
+ % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+ % insert empty discretionaries after hyphens, which means that it will
+ % not find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens, this
+ % is a loss. Therefore, we give the text of the node name again, so it
+ % is as if TeX is seeing it for the first time.
+ \ifdim \wd1 > 0pt
+ \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+ \else
+ % _ (for example) has to be the character _ for the purposes of the
+ % control sequence corresponding to the node, but it has to expand
+ % into the usual \leavevmode...\vrule stuff for purposes of
+ % printing. So we \turnoffactive for the \refx-snt, back on for the
+ % printing, back off for the \refx-pg.
+ {\turnoffactive
+ % Only output a following space if the -snt ref is nonempty; for
+ % @unnumbered and @anchor, it won't be.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ }%
+ % output the `[mynode]' via a macro so it can be overridden.
+ \xrefprintnodename\printedrefname
+ %
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \fi
\fi
\endlink
\endgroup}
% This macro is called from \xrefX for the `[nodename]' part of xref
% output. It's a separate macro only so it can be changed more easily,
-% since not square brackets don't work in some documents. Particularly
+% since square brackets don't work well in some documents. Particularly
% one that Bob is working on :).
-%
+%
\def\xrefprintnodename#1{[#1]}
-% \dosetq is called from \setref to do the actual \write (\iflinks).
+% Things referred to by \setref.
%
-\def\dosetq#1#2{%
- {\let\folio=0%
- \edef\next{\write\auxfile{\internalsetq{#1}{#2}}}%
- \iflinks \next \fi
- }%
-}
-
-% \internalsetq{foo}{page} expands into
-% CHARACTERS @xrdef{foo}{...expansion of \page...}
-\def\internalsetq#1#2{@xrdef{#1}{\csname #2\endcsname}}
-
-% Things to be expanded by \internalsetq.
-%
-\def\Ypagenumber{\folio}
-\def\Ytitle{\thissection}
\def\Ynothing{}
-\def\Ysectionnumberandtype{%
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
\ifnum\secno=0
\putwordChapter@tie \the\chapno
\else \ifnum\subsecno=0
@@ -5976,8 +6153,7 @@ width0pt\relax} \fi
\putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
\fi\fi\fi
}
-
-\def\Yappendixletterandtype{%
+\def\Yappendix{%
\ifnum\secno=0
\putwordAppendix@tie @char\the\appendixno{}%
\else \ifnum\subsecno=0
@@ -5990,15 +6166,6 @@ width0pt\relax} \fi
\fi\fi\fi
}
-% Use TeX 3.0's \inputlineno to get the line number, for better error
-% messages, but if we're using an old version of TeX, don't do anything.
-%
-\ifx\inputlineno\thisisundefined
- \let\linenumber = \empty % Pre-3.0.
-\else
- \def\linenumber{\the\inputlineno:\space}
-\fi
-
% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
% If its value is nonempty, SUFFIX is output afterward.
%
@@ -6007,7 +6174,7 @@ width0pt\relax} \fi
\indexnofonts
\otherbackslash
\expandafter\global\expandafter\let\expandafter\thisrefX
- \csname X#1\endcsname
+ \csname XR#1\endcsname
}%
\ifx\thisrefX\relax
% If not defined, say something at least.
@@ -6029,12 +6196,45 @@ width0pt\relax} \fi
#2% Output the suffix in any case.
}
-% This is the macro invoked by entries in the aux file.
+% This is the macro invoked by entries in the aux file. Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions). But if this is a float type, we have more work to do.
%
-\def\xrdef#1{\expandafter\gdef\csname X#1\endcsname}
+\def\xrdef#1#2{%
+ \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+ %
+ % Was that xref control sequence that we just defined for a float?
+ \expandafter\iffloat\csname XR#1\endcsname
+ % it was a float, and we have the (safe) float type in \iffloattype.
+ \expandafter\let\expandafter\floatlist
+ \csname floatlist\iffloattype\endcsname
+ %
+ % Is this the first time we've seen this float type?
+ \expandafter\ifx\floatlist\relax
+ \toks0 = {\do}% yes, so just \do
+ \else
+ % had it before, so preserve previous elements in list.
+ \toks0 = \expandafter{\floatlist\do}%
+ \fi
+ %
+ % Remember this xref in the control sequence \floatlistFLOATTYPE,
+ % for later use in \listoffloats.
+ \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+ \fi
+}
% Read the last existing aux file, if any. No error if none exists.
-\def\readauxfile{\begingroup
+%
+\def\tryauxfile{%
+ \openin 1 \jobname.aux
+ \ifeof 1 \else
+ \readdatafile{aux}%
+ \global\havexrefstrue
+ \fi
+ \closein 1
+}
+
+\def\setupdatafile{%
\catcode`\^^@=\other
\catcode`\^^A=\other
\catcode`\^^B=\other
@@ -6092,41 +6292,39 @@ width0pt\relax} \fi
\catcode`\%=\other
\catcode`+=\other % avoid \+ for paranoia even though we've turned it off
%
- % Make the characters 128-255 be printing characters
+ % This is to support \ in node names and titles, since the \
+ % characters end up in a \csname. It's easier than
+ % leaving it active and making its active definition an actual \
+ % character. What I don't understand is why it works in the *value*
+ % of the xrdef. Seems like it should be a catcode12 \, and that
+ % should not typeset properly. But it works, so I'm moving on for
+ % now. --karl, 15jan04.
+ \catcode`\\=\other
+ %
+ % Make the characters 128-255 be printing characters.
{%
- \count 1=128
+ \count1=128
\def\loop{%
- \catcode\count 1=\other
- \advance\count 1 by 1
- \ifnum \count 1<256 \loop \fi
+ \catcode\count1=\other
+ \advance\count1 by 1
+ \ifnum \count1<256 \loop \fi
}%
}%
%
- % Turn off \ as an escape so we do not lose on
- % entries which were dumped with control sequences in their names.
- % For example, @xrdef{$\leq $-fun}{page ...} made by @defun ^^
- % Reference to such entries still does not work the way one would wish,
- % but at least they do not bomb out when the aux file is read in.
- \catcode`\\=\other
- %
- % @ is our escape character in .aux files.
+ % @ is our escape character in .aux files, and we need braces.
\catcode`\{=1
\catcode`\}=2
\catcode`\@=0
- %
- \openin 1 \jobname.aux
- \ifeof 1 \else
- \closein 1
- \input \jobname.aux
- \global\havexrefstrue
- \global\warnedobstrue
- \fi
- % Open the new aux file. TeX will close it automatically at exit.
- \openout\auxfile=\jobname.aux
-\endgroup}
+}
+\def\readdatafile#1{%
+\begingroup
+ \setupdatafile
+ \input\jobname.#1
+\endgroup}
-% Footnotes.
+\message{insertions,}
+% including footnotes.
\newcount \footnoteno
@@ -6140,19 +6338,19 @@ width0pt\relax} \fi
% @footnotestyle is meaningful for info output only.
\let\footnotestyle=\comment
-\let\ptexfootnote=\footnote
-
{\catcode `\@=11
%
% Auto-number footnotes. Otherwise like plain.
\gdef\footnote{%
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
\global\advance\footnoteno by \@ne
\edef\thisfootno{$^{\the\footnoteno}$}%
%
% In case the footnote comes at the end of a sentence, preserve the
% extra spacing after we do the footnote number.
\let\@sf\empty
- \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
%
% Remove inadvertent blank space before typesetting the footnote number.
\unskip
@@ -6163,17 +6361,12 @@ width0pt\relax} \fi
% Don't bother with the trickery in plain.tex to not require the
% footnote text as a parameter. Our footnotes don't need to be so general.
%
-% Oh yes, they do; otherwise, @ifset and anything else that uses
-% \parseargline fail inside footnotes because the tokens are fixed when
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
% the footnote is read. --karl, 16nov96.
%
-% The start of the footnote looks usually like this:
-\gdef\startfootins{\insert\footins\bgroup}
-%
-% ... but this macro is redefined inside @multitable.
-%
\gdef\dofootnote{%
- \startfootins
+ \insert\footins\bgroup
% We want to typeset this text as a normal paragraph, even if the
% footnote reference occurs in (for example) a display environment.
% So reset some parameters.
@@ -6209,40 +6402,66 @@ width0pt\relax} \fi
}
}%end \catcode `\@=11
-% @| inserts a changebar to the left of the current line. It should
-% surround any changed text. This approach does *not* work if the
-% change spans more than two lines of output. To handle that, we would
-% have adopt a much more difficult approach (putting marks into the main
-% vertical list for the beginning and end of each change).
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished. Otherwise, the insertion
+% would be lost.
+% Similarily, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes. --kasal, 16nov03.
+
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
%
-\def\|{%
- % \vadjust can only be used in horizontal mode.
- \leavevmode
- %
- % Append this vertical mode material after the current line in the output.
- \vadjust{%
- % We want to insert a rule with the height and depth of the current
- % leading; that is exactly what \strutbox is supposed to record.
- \vskip-\baselineskip
- %
- % \vadjust-items are inserted at the left edge of the type. So
- % the \llap here moves out into the left-hand margin.
- \llap{%
- %
- % For a thicker or thinner bar, change the `1pt'.
- \vrule height\baselineskip width1pt
- %
- % This is the space between the bar and the text.
- \hskip 12pt
- }%
- }%
+\def\startsavinginserts{%
+ \ifx \insert\ptexinsert
+ \let\insert\saveinsert
+ \else
+ \let\checkinserts\relax
+ \fi
}
-% For a final copy, take out the rectangles
-% that mark overfull boxes (in case you have decided
-% that the text looks ok even though it passes the margin).
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
%
-\def\finalout{\overfullrule=0pt}
+\def\saveinsert#1{%
+ \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+ \afterassignment\next
+ % swallow the left brace
+ \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+ \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+ {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+ \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
+ \gdef\gobblesave @SAVE{}
+}
+
+% initialization:
+\def\newsaveins #1{%
+ \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+ \next
+}
+\def\newsaveinsX #1{%
+ \csname newbox\endcsname #1%
+ \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+ \checksaveins #1}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
+
% @image. We use the macros from epsf.tex to support this.
% If epsf.tex is not installed and @image is used, we complain.
@@ -6252,12 +6471,12 @@ width0pt\relax} \fi
% undone and the next image would fail.
\openin 1 = epsf.tex
\ifeof 1 \else
- \closein 1
% Do not bother showing banner with epsf.tex v2.7k (available in
% doc/epsf.tex and on ctan).
\def\epsfannounce{\toks0 = }%
\input epsf.tex
\fi
+\closein 1
%
% We will only complain once about lack of epsf.tex.
\newif\ifwarnednoepsf
@@ -6293,7 +6512,7 @@ width0pt\relax} \fi
\nobreak\bigskip
% Usually we'll have text after the image which will insert
% \parskip glue, so insert it here too to equalize the space
- % above and below.
+ % above and below.
\nobreak\vskip\parskip
\nobreak
\line\bgroup\hss
@@ -6313,6 +6532,269 @@ width0pt\relax} \fi
\endgroup}
+% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+% etc. We don't actually implement floating yet, we always include the
+% float "here". But it seemed the best name for the future.
+%
+\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
+
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
+
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
+% this float will not be numbered and cannot be referred to.
+%
+% #2 is the optional xref label. Also must be present for the float to
+% be referable.
+%
+% #3 is the optional positioning argument; for now, it is ignored. It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+%
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+ \let\thiscaption=\empty
+ \let\thisshortcaption=\empty
+ %
+ % don't lose footnotes inside @float.
+ %
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
+ %
+ \startsavinginserts
+ %
+ % We can't be used inside a paragraph.
+ \par
+ %
+ \vtop\bgroup
+ \def\floattype{#1}%
+ \def\floatlabel{#2}%
+ \def\floatloc{#3}% we do nothing with this yet.
+ %
+ \ifx\floattype\empty
+ \let\safefloattype=\empty
+ \else
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ \fi
+ %
+ % If label is given but no type, we handle that as the empty type.
+ \ifx\floatlabel\empty \else
+ % We want each FLOATTYPE to be numbered separately (Figure 1,
+ % Table 1, Figure 2, ...). (And if no label, no number.)
+ %
+ \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+ \global\advance\floatno by 1
+ %
+ {%
+ % This magic value for \thissection is output by \setref as the
+ % XREFLABEL-title value. \xrefX uses it to distinguish float
+ % labels (which have a completely different output format) from
+ % node and anchor labels. And \xrdef uses it to construct the
+ % lists of floats.
+ %
+ \edef\thissection{\floatmagic=\safefloattype}%
+ \setref{\floatlabel}{Yfloat}%
+ }%
+ \fi
+ %
+ % start with \parskip glue, I guess.
+ \vskip\parskip
+ %
+ % Don't suppress indentation if a float happens to start a section.
+ \restorefirstparagraphindent
+}
+
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption: Foo 1.1
+% @float Foo & @caption{Cap}: Foo: Cap
+% @float Foo & no caption: Foo
+% @float ,lbl & Caption{Cap}: 1.1: Cap
+% @float ,lbl & no caption: 1.1
+% @float & @caption{Cap}: Cap
+% @float & no caption:
+%
+\def\Efloat{%
+ \let\floatident = \empty
+ %
+ % In all cases, if we have a float type, it comes first.
+ \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+ %
+ % If we have an xref label, the number comes next.
+ \ifx\floatlabel\empty \else
+ \ifx\floattype\empty \else % if also had float type, need tie first.
+ \appendtomacro\floatident{\tie}%
+ \fi
+ % the number.
+ \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+ \fi
+ %
+ % Start the printed caption with what we've constructed in
+ % \floatident, but keep it separate; we need \floatident again.
+ \let\captionline = \floatident
+ %
+ \ifx\thiscaption\empty \else
+ \ifx\floatident\empty \else
+ \appendtomacro\captionline{: }% had ident, so need a colon between
+ \fi
+ %
+ % caption text.
+ \appendtomacro\captionline{\scanexp\thiscaption}%
+ \fi
+ %
+ % If we have anything to print, print it, with space before.
+ % Eventually this needs to become an \insert.
+ \ifx\captionline\empty \else
+ \vskip.5\parskip
+ \captionline
+ %
+ % Space below caption.
+ \vskip\parskip
+ \fi
+ %
+ % If have an xref label, write the list of floats info. Do this
+ % after the caption, to avoid chance of it being a breakpoint.
+ \ifx\floatlabel\empty \else
+ % Write the text that goes in the lof to the aux file as
+ % \floatlabel-lof. Besides \floatident, we include the short
+ % caption if specified, else the full caption if specified, else nothing.
+ {%
+ \atdummies
+ % since we read the caption text in the macro world, where ^^M
+ % is turned into a normal character, we have to scan it back, so
+ % we don't write the literal three characters "^^M" into the aux file.
+ \scanexp{%
+ \xdef\noexpand\gtemp{%
+ \ifx\thisshortcaption\empty
+ \thiscaption
+ \else
+ \thisshortcaption
+ \fi
+ }%
+ }%
+ \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+ \ifx\gtemp\empty \else : \gtemp \fi}}%
+ }%
+ \fi
+ \egroup % end of \vtop
+ %
+ % place the captured inserts
+ %
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
+ %
+ \checkinserts
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+% @caption, @shortcaption
+%
+\def\caption{\docaption\thiscaption}
+\def\shortcaption{\docaption\thisshortcaption}
+\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+\def\defcaption#1#2{\egroup \def#1{#2}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use. Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+ \ifx#1\relax
+ % Haven't seen this figure type before.
+ \csname newcount\endcsname #1%
+ %
+ % Remember to reset this floatno at the next chap.
+ \expandafter\gdef\expandafter\resetallfloatnos
+ \expandafter{\resetallfloatnos #1=0 }%
+ \fi
+ \let\floatno#1%
+}
+
+% \setref calls this to get the XREFLABEL-snt value. We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
+% first read the @float command.
+%
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref. That is, the magic
+% \thissection value which we \setref above.
+%
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string. If so, #2 will be the
+% (safe) float type for this float. We set \iffloattype to #2.
+%
+\def\doiffloat#1=#2=#3\finish{%
+ \def\temp{#1}%
+ \def\iffloattype{#2}%
+ \ifx\temp\floatmagic
+}
+
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+%
+\parseargdef\listoffloats{%
+ \def\floattype{#1}% floattype
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ %
+ % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+ \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+ \ifhavexrefs
+ % if the user said @listoffloats foo but never @float foo.
+ \message{\linenumber No `\safefloattype' floats to list.}%
+ \fi
+ \else
+ \begingroup
+ \leftskip=\tocindent % indent these entries like a toc
+ \let\do=\listoffloatsdo
+ \csname floatlist\safefloattype\endcsname
+ \endgroup
+ \fi
+}
+
+% This is called on each entry in a list of floats. We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file. We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+%
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+%
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+ % Can't fully expand XR#1-lof because it can contain anything. Just
+ % pass the control sequence. On the other hand, XR#1-pg is just the
+ % page number, and we want to fully expand that so we can get a link
+ % in pdf output.
+ \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+ %
+ % use the same \entry macro we use to generate the TOC and index.
+ \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+ \writeentry
+}}
+
\message{localization,}
% and i18n.
@@ -6321,19 +6803,17 @@ width0pt\relax} \fi
% properly. Single argument is the language abbreviation.
% It would be nice if we could set up a hyphenation file here.
%
-\def\documentlanguage{\parsearg\dodocumentlanguage}
-\def\dodocumentlanguage#1{%
+\parseargdef\documentlanguage{%
\tex % read txi-??.tex file in plain TeX.
- % Read the file if it exists.
- \openin 1 txi-#1.tex
- \ifeof1
- \errhelp = \nolanghelp
- \errmessage{Cannot read language file txi-#1.tex}%
- \let\temp = \relax
- \else
- \def\temp{\input txi-#1.tex }%
- \fi
- \temp
+ % Read the file if it exists.
+ \openin 1 txi-#1.tex
+ \ifeof 1
+ \errhelp = \nolanghelp
+ \errmessage{Cannot read language file txi-#1.tex}%
+ \else
+ \input txi-#1.tex
+ \fi
+ \closein 1
\endgroup
}
\newhelp\nolanghelp{The given language definition file cannot be found or
@@ -6378,10 +6858,10 @@ should work if nowhere else does.}
\fi
}
-% Parameters in order: 1) textheight; 2) textwidth; 3) voffset;
-% 4) hoffset; 5) binding offset; 6) topskip; 7) physical page height; 8)
-% physical page width.
-%
+% Parameters in order: 1) textheight; 2) textwidth;
+% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
+% 7) physical page height; 8) physical page width.
+%
% We also call \setleading{\textleading}, so the caller should define
% \textleading. The caller should also set \parskip.
%
@@ -6427,7 +6907,7 @@ should work if nowhere else does.}
{11in}{8.5in}%
}}
-% Use @smallbook to reset parameters for 7x9.5 (or so) format.
+% Use @smallbook to reset parameters for 7x9.25 trim size.
\def\smallbook{{\globaldefs = 1
\parskip = 2pt plus 1pt
\textleading = 12pt
@@ -6444,12 +6924,30 @@ should work if nowhere else does.}
\defbodyindent = .5cm
}}
+% Use @smallerbook to reset parameters for 6x9 trim size.
+% (Just testing, parameters still in flux.)
+\def\smallerbook{{\globaldefs = 1
+ \parskip = 1.5pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.4in}{4.8in}%
+ {-.2in}{-.4in}%
+ {0pt}{14pt}%
+ {9in}{6in}%
+ %
+ \lispnarrowing = 0.25in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .4cm
+}}
+
% Use @afourpaper to print on European A4 paper.
\def\afourpaper{{\globaldefs = 1
\parskip = 3pt plus 2pt minus 1pt
\textleading = 13.2pt
%
- % Double-side printing via postscript on Laserjet 4050
+ % Double-side printing via postscript on Laserjet 4050
% prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
% To change the settings for a different printer or situation, adjust
% \normaloffset until the front-side and back-side texts align. Then
@@ -6490,7 +6988,7 @@ should work if nowhere else does.}
\tableindent = 12mm
}}
-% A specific text layout, 24x15cm overall, intended for A4 paper.
+% A specific text layout, 24x15cm overall, intended for A4 paper.
\def\afourlatex{{\globaldefs = 1
\afourpaper
\internalpagesizes{237mm}{150mm}%
@@ -6516,8 +7014,7 @@ should work if nowhere else does.}
% Perhaps we should allow setting the margins, \topskip, \parskip,
% and/or leading, also. Or perhaps we should compute them somehow.
%
-\def\pagesizes{\parsearg\pagesizesxxx}
-\def\pagesizesxxx#1{\pagesizesyyy #1,,\finish}
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
\def\pagesizesyyy#1,#2,#3\finish{{%
\setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
\globaldefs = 1
@@ -6564,8 +7061,8 @@ should work if nowhere else does.}
\def\normalplus{+}
\def\normaldollar{$}%$ font-lock fix
-% This macro is used to make a character print one way in ttfont
-% where it can probably just be output, and another way in other fonts,
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
% where something hairier probably needs to be done.
%
% #1 is what to print if we are indeed using \tt; #2 is what to print
@@ -6597,6 +7094,7 @@ should work if nowhere else does.}
\catcode`\_=\active
\def_{\ifusingtt\normalunderscore\_}
+\let\realunder=_
% Subroutine for the previous macro.
\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
@@ -6613,13 +7111,6 @@ should work if nowhere else does.}
\catcode`\$=\active
\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
-% Set up an active definition for =, but don't enable it most of the time.
-{\catcode`\==\active
-\global\def={{\tt \char 61}}}
-
-\catcode`+=\active
-\catcode`\_=\active
-
% If a .fmt file is being used, characters that might appear in a file
% name cannot be active until we have parsed the command line.
% So turn them off again, and have \everyjob (or @setfilename) turn them on.
@@ -6628,23 +7119,25 @@ should work if nowhere else does.}
\catcode`\@=0
-% \rawbackslashxx outputs one backslash character in current font,
+% \backslashcurfont outputs one backslash character in current font,
% as in \char`\\.
-\global\chardef\rawbackslashxx=`\\
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
-% \rawbackslash defines an active \ to do \rawbackslashxx.
+% \rawbackslash defines an active \ to do \backslashcurfont.
% \otherbackslash defines an active \ to be a literal `\' character with
% catcode other.
{\catcode`\\=\active
- @gdef@rawbackslash{@let\=@rawbackslashxx}
+ @gdef@rawbackslash{@let\=@backslashcurfont}
@gdef@otherbackslash{@let\=@realbackslash}
}
-% \realbackslash is an actual character `\' with catcode other.
-{\catcode`\\=\other @gdef@realbackslash{\}}
+% \realbackslash is an actual character `\' with catcode other, and
+% \doublebackslash is two of them (for the pdf outlines).
+{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\rawbackslashxx}}
+\def\normalbackslash{{\tt\backslashcurfont}}
\catcode`\\=\active
@@ -6661,12 +7154,13 @@ should work if nowhere else does.}
@let>=@normalgreater
@let+=@normalplus
@let$=@normaldollar %$ font-lock fix
+ @unsepspaces
}
% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
% the literal character `\'. (Thus, \ is not expandable when this is in
% effect.)
-%
+%
@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
% Make _ and + \other characters, temporarily.
@@ -6683,7 +7177,7 @@ should work if nowhere else does.}
% On the other hand, perhaps the file did not have a `\input texinfo'. Then
% the first `\{ in the file would cause an error. This macro tries to fix
% that, assuming it is called before the first `\' could plausibly occur.
-% Also back turn on active characters that might appear in the input
+% Also turn back on active characters that might appear in the input
% file name, in case not using a pre-dumped format.
%
@gdef@fixbackslash{%
@@ -6695,15 +7189,11 @@ should work if nowhere else does.}
% Say @foo, not \foo, in error messages.
@escapechar = `@@
-% These look ok in all fonts, so just make them not special.
+% These look ok in all fonts, so just make them not special.
@catcode`@& = @other
@catcode`@# = @other
@catcode`@% = @other
-@c Set initial fonts.
-@textfonts
-@rm
-
@c Local variables:
@c eval: (add-hook 'write-file-hooks 'time-stamp)
@@ -6712,3 +7202,9 @@ should work if nowhere else does.}
@c time-stamp-format: "%:y-%02m-%02d.%02H"
@c time-stamp-end: "}"
@c End:
+
+@c vim:sw=2:
+
+@ignore
+ arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore
diff --git a/doc/version.texi b/doc/version.texi
index 7711f31..d69698f 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
-@set UPDATED 20 February 2006
-@set UPDATED-MONTH February 2006
-@set EDITION 2.5.33
-@set VERSION 2.5.33
+@set UPDATED 10 September 2007
+@set UPDATED-MONTH September 2007
+@set EDITION 2.5.34
+@set VERSION 2.5.34
diff --git a/examples/Makefile.in b/examples/Makefile.in
index dff64d8..5e244bb 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,35 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = examples
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +160,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +182,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,39 +190,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
EXTRA_DIST = \
testxxLexer.l \
debflex.awk \
README
-
SUBDIRS = \
manual \
fastwc
-subdir = examples
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = README Makefile.am Makefile.in
-DIST_SUBDIRS = $(SUBDIRS)
all: all-recursive
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits examples/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu examples/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits examples/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
@@ -204,7 +240,13 @@ uninstall-info-am:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -216,7 +258,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -224,7 +266,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -245,7 +293,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -256,14 +304,6 @@ ctags-recursive:
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -272,19 +312,22 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -294,10 +337,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -320,10 +364,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -337,7 +377,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -352,15 +392,17 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- list='$(SUBDIRS)'; for subdir in $$list; do \
+ list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -370,7 +412,6 @@ check: check-recursive
all-am: Makefile
installdirs: installdirs-recursive
installdirs-am:
-
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@@ -382,7 +423,7 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -390,7 +431,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -400,13 +441,15 @@ clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -422,7 +465,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
@@ -441,20 +484,17 @@ uninstall-am: uninstall-info-am
uninstall-info: uninstall-info-recursive
-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \
- clean-generic clean-recursive ctags ctags-recursive distclean \
- distclean-generic distclean-recursive distclean-tags distdir \
- dvi dvi-am dvi-recursive info info-am info-recursive install \
- install-am install-data install-data-am install-data-recursive \
- install-exec install-exec-am install-exec-recursive \
- install-info install-info-am install-info-recursive install-man \
- install-recursive install-strip installcheck installcheck-am \
- installdirs installdirs-am installdirs-recursive \
- maintainer-clean maintainer-clean-generic \
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+ clean clean-generic clean-recursive ctags ctags-recursive \
+ distclean distclean-generic distclean-recursive distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
maintainer-clean-recursive mostlyclean mostlyclean-generic \
- mostlyclean-recursive pdf pdf-am pdf-recursive ps ps-am \
- ps-recursive tags tags-recursive uninstall uninstall-am \
- uninstall-info-am uninstall-info-recursive uninstall-recursive
+ mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/examples/fastwc/Makefile.in b/examples/fastwc/Makefile.in
index e580cbb..21befbe 100644
--- a/examples/fastwc/Makefile.in
+++ b/examples/fastwc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = examples/fastwc
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,7 +181,6 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
EXTRA_DIST = \
wc5.l \
wc4.l \
@@ -172,21 +190,38 @@ EXTRA_DIST = \
mywc.c \
README
-subdir = examples/fastwc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = README Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits examples/fastwc/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu examples/fastwc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits examples/fastwc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -194,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -211,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -229,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -242,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -250,7 +280,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -260,13 +290,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -282,7 +314,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -300,8 +332,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/examples/manual/Makefile.in b/examples/manual/Makefile.in
index 381cd83..44ae535 100644
--- a/examples/manual/Makefile.in
+++ b/examples/manual/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,27 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = examples/manual
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ ChangeLog
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +152,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +174,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,7 +182,6 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
EXTRA_DIST = \
ChangeLog \
Makefile.examples \
@@ -198,21 +217,38 @@ EXTRA_DIST = \
yymore2.lex \
yymoretest.dat
-subdir = examples/manual
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = README ChangeLog Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits examples/manual/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu examples/manual/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits examples/manual/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -220,10 +256,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -237,7 +269,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -255,7 +287,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -268,7 +299,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -276,7 +307,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -286,13 +317,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -308,7 +341,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -326,8 +359,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/filter.c b/filter.c
index 0018721..b0c7bf1 100644
--- a/filter.c
+++ b/filter.c
@@ -153,21 +153,23 @@ bool filter_apply_chain (struct filter * chain)
if (pid == 0) {
/* child */
+
+ /* We need stdin (the FILE* stdin) to connect to this new pipe.
+ * There is no portable way to set stdin to a new file descriptor,
+ * as stdin is not an lvalue on some systems (BSD).
+ * So we dup the new pipe onto the stdin descriptor and use a no-op fseek
+ * to sync the stream. This is a Hail Mary situation. It seems to work.
+ */
close (pipes[1]);
- if (dup2 (pipes[0], 0) == -1)
+ if (dup2 (pipes[0], fileno (stdin)) == -1)
flexfatal (_("dup2(pipes[0],0)"));
close (pipes[0]);
+ fseek (stdin, 0, SEEK_CUR);
/* run as a filter, either internally or by exec */
if (chain->filter_func) {
int r;
- /* setup streams again */
- if ( ! fdopen (0, "r"))
- flexfatal (_("fdopen(0) failed"));
- if (!fdopen (1, "w"))
- flexfatal (_("fdopen(1) failed"));
-
if ((r = chain->filter_func (chain)) == -1)
flexfatal (_("filter_func failed"));
exit (0);
@@ -183,11 +185,10 @@ bool filter_apply_chain (struct filter * chain)
/* Parent */
close (pipes[0]);
- if (dup2 (pipes[1], 1) == -1)
+ if (dup2 (pipes[1], fileno (stdout)) == -1)
flexfatal (_("dup2(pipes[1],1)"));
close (pipes[1]);
- if ( !fdopen (1, "w"))
- flexfatal (_("fdopen(1) failed"));
+ fseek (stdout, 0, SEEK_CUR);
return true;
}
@@ -257,6 +258,7 @@ int filter_tee_header (struct filter *chain)
fputs ("m4_changecom`'m4_dnl\n", to_h);
fputs ("m4_changequote`'m4_dnl\n", to_h);
fputs ("m4_changequote([[,]])[[]]m4_dnl\n", to_h);
+ fputs ("m4_define([[M4_YY_NOOP]])[[]]m4_dnl\n", to_h);
fputs ("m4_define( [[M4_YY_IN_HEADER]],[[]])m4_dnl\n",
to_h);
fprintf (to_h, "#ifndef %sHEADER_H\n", prefix);
@@ -272,6 +274,7 @@ int filter_tee_header (struct filter *chain)
fputs ("m4_changecom`'m4_dnl\n", to_c);
fputs ("m4_changequote`'m4_dnl\n", to_c);
fputs ("m4_changequote([[,]])[[]]m4_dnl\n", to_c);
+ fputs ("m4_define([[M4_YY_NOOP]])[[]]m4_dnl\n", to_c);
fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
outfilename ? outfilename : "<stdout>");
@@ -351,24 +354,43 @@ int filter_fix_linedirs (struct filter *chain)
num = regmatch_strtol (&m[1], buf, NULL, 0);
fname = regmatch_dup (&m[2], buf);
- if (strcmp
- (fname, outfilename ? outfilename : "<stdout>")
- == 0
- || strcmp (fname,
- headerfilename ? headerfilename :
- "<stdout>") == 0) {
+ if (strcmp (fname,
+ outfilename ? outfilename : "<stdout>")
+ == 0
+ || strcmp (fname,
+ headerfilename ? headerfilename : "<stdout>")
+ == 0) {
+
+ char *s1, *s2;
+ char filename[MAXLINE];
+
+ s1 = fname;
+ s2 = filename;
+
+ while ((s2 - filename) < (MAXLINE - 1) && *s1) {
+ /* Escape the backslash */
+ if (*s1 == '\\')
+ *s2++ = '\\';
+ /* Escape the double quote */
+ if (*s1 == '\"')
+ *s2++ = '\\';
+ /* Copy the character as usual */
+ *s2++ = *s1++;
+ }
+
+ *s2 = '\0';
+
/* Adjust the line directives. */
in_gen = true;
- sprintf (buf, "#line %d \"%s\"\n",
- lineno + 1, fname);
- free (fname);
-
+ snprintf (buf, readsz, "#line %d \"%s\"\n",
+ lineno + 1, filename);
}
else {
/* it's a #line directive for code we didn't write */
in_gen = false;
}
+ free (fname);
last_was_blank = false;
}
diff --git a/flex.skl b/flex.skl
index 683ead6..fabb270 100644
--- a/flex.skl
+++ b/flex.skl
@@ -54,6 +54,34 @@ m4_changequote([[, ]])
%# the generated scanner as a C-style comment. This is to aid those who
%# edit the skeleton.
%#
+
+%not-for-header
+%if-c-only
+%if-not-reentrant
+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_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 yyin M4_YY_PREFIX[[in]]
+#define yyleng M4_YY_PREFIX[[leng]]
+#define yylex M4_YY_PREFIX[[lex]]
+#define yylineno M4_YY_PREFIX[[lineno]]
+#define yyout M4_YY_PREFIX[[out]]
+#define yyrestart M4_YY_PREFIX[[restart]]
+#define yytext M4_YY_PREFIX[[text]]
+#define yywrap M4_YY_PREFIX[[wrap]]
+#define yyalloc M4_YY_PREFIX[[alloc]]
+#define yyrealloc M4_YY_PREFIX[[realloc]]
+#define yyfree M4_YY_PREFIX[[free]]
+)
+%endif
+%endif
+%ok-for-header
+
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION FLEX_MAJOR_VERSION
#define YY_FLEX_MINOR_VERSION FLEX_MINOR_VERSION
@@ -106,6 +134,7 @@ m4preproc_define(`M4_GEN_PREFIX',
M4_GEN_PREFIX(`lex')
M4_GEN_PREFIX(`restart')
M4_GEN_PREFIX(`lex_init')
+ M4_GEN_PREFIX(`lex_init_extra')
M4_GEN_PREFIX(`lex_destroy')
M4_GEN_PREFIX(`get_debug')
M4_GEN_PREFIX(`set_debug')
@@ -200,11 +229,12 @@ m4preproc_include(`flexint.h')
#else /* ! __cplusplus */
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
#define YY_USE_CONST
-#endif /* __STDC__ */
+#endif /* defined (__STDC__) */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@@ -302,7 +332,6 @@ m4_define( [[M4_YY_INCR_LINENO]],
}while(0)
]])
-int yylex_init M4_YY_PARAMS(yyscan_t* scanner);
%endif
@@ -412,13 +441,13 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
#define YY_END_OF_BUFFER_CHAR 0
]])
-m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
-[[
/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#define YY_BUF_SIZE 16384
#endif
+m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
+[[
/* The state buf must be large enough to hold one state per character in the main buffer.
*/
#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
@@ -750,9 +779,16 @@ m4_ifdef( [[M4_YY_NO_UNISTD_H]],,
#endif
]])
+m4_ifdef( [[M4_EXTRA_TYPE_DEFS]],
+[[
+#define YY_EXTRA_TYPE M4_EXTRA_TYPE_DEFS
+]],
+[[
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif
+]]
+)
%if-c-only Reentrant structure and macros (non-C++).
%if-reentrant
@@ -793,6 +829,12 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
yy_state_type *yy_state_ptr;
char *yy_full_match;
int yy_lp;
+
+ /* These are only needed for trailing context rules,
+ * but there's no conditional variable for that yet. */
+ int yy_looking_for_trail_begin;
+ int yy_full_lp;
+ int *yy_full_state;
]])
m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
@@ -846,6 +888,10 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
]])
]])
+int yylex_init M4_YY_PARAMS(yyscan_t* scanner);
+
+int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
+
%endif
/* Accessor methods to globals.
@@ -1032,7 +1078,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 (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
%endif
%if-c++-only C++ definition
#define ECHO LexerOutput( yytext, yyleng )
@@ -1140,9 +1186,9 @@ m4_ifdef( [[M4_YY_BISON_LVAL]],
m4_dnl The bison pure parser is used. Redefine yylex to
m4_dnl accept the lval parameter.
- m4_define( [[M4_YY_LEX_PROTO]],
+ m4_define( [[M4_YY_LEX_PROTO]], [[\]]
[[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])
- m4_define( [[M4_YY_LEX_DECLARATION]],
+ m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
[[YYFARGS1(YYSTYPE *,yylval_param)]])
]])
@@ -1150,9 +1196,9 @@ 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_define( [[M4_YY_LEX_PROTO]], [[\]]
[[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])
- m4_define( [[M4_YY_LEX_DECLARATION]],
+ m4_define( [[M4_YY_LEX_DECLARATION]], [[\]]
[[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])
]])
@@ -1235,6 +1281,8 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
/* Create the reject buffer large enough to save one state per allowed character. */
if ( ! YY_G(yy_state_buf) )
YY_G(yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE M4_YY_CALL_LAST_ARG);
+ if ( ! YY_G(yy_state_buf) )
+ YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
]])
if ( ! YY_G(yy_start) )
@@ -1427,6 +1475,8 @@ do_action: /* This label is used only to access EOF actions. */
%if-c++-only
%not-for-header
+/* 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 )
{
yyin = arg_yyin;
@@ -1447,9 +1497,9 @@ yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
yy_start_stack_ptr = yy_start_stack_depth = 0;
yy_start_stack = NULL;
- YY_G(yy_buffer_stack) = 0;
- YY_G(yy_buffer_stack_top) = 0;
- YY_G(yy_buffer_stack_max) = 0;
+ yy_buffer_stack = 0;
+ yy_buffer_stack_top = 0;
+ yy_buffer_stack_max = 0;
m4_ifdef( [[M4_YY_USES_REJECT]],
@@ -1461,13 +1511,18 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
]])
}
+/* The contents of this function are C++ specific, so the YY_G macro is not used.
+ */
yyFlexLexer::~yyFlexLexer()
{
delete [] yy_state_buf;
yyfree( yy_start_stack M4_YY_CALL_LAST_ARG );
yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
+ yyfree( yy_buffer_stack M4_YY_CALL_LAST_ARG );
}
+/* 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 )
@@ -1629,7 +1684,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
/* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- YY_G(yy_n_chars), num_to_read );
+ YY_G(yy_n_chars), (size_t) num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);
}
@@ -1653,6 +1708,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) {
+ /* 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);
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
+ (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, 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()" );
+ }
+
YY_G(yy_n_chars) += number_to_move;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -2186,6 +2250,9 @@ void yyFlexLexer::yyensure_buffer_stack(void)
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*));
@@ -2204,6 +2271,8 @@ void yyFlexLexer::yyensure_buffer_stack(void)
(YY_G(yy_buffer_stack),
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()" );
/* zero only the new slots.*/
memset(YY_G(yy_buffer_stack) + YY_G(yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -2262,7 +2331,7 @@ m4_ifdef( [[M4_YY_NO_SCAN_STRING]],,
%if-c-only
/** Setup the input buffer state to scan a string. The next call to yylex() will
* scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
* M4_YY_DOC_PARAM
* @return the newly allocated buffer state object.
* @note If you want to scan bytes that may contain NUL values, then use
@@ -2347,8 +2416,7 @@ m4_ifdef( [[M4_YY_NO_PUSH_STATE]],,
(void *) YY_G(yy_start_stack), new_size M4_YY_CALL_LAST_ARG );
if ( ! YY_G(yy_start_stack) )
- YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
+ YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
}
YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;
@@ -2716,7 +2784,51 @@ int yylex_init(yyscan_t* ptr_yy_globals)
return yy_init_globals ( *ptr_yy_globals );
}
-%endif
+
+/* yylex_init_extra has the same functionality as yylex_init, but follows the
+ * convention of taking the scanner as the last argument. Note however, that
+ * this is a *pointer* to a scanner, as it will be allocated by this call (and
+ * is the reason, too, why this function also must handle its own declaration).
+ * 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;
+
+ yyset_extra (yy_user_defined, &dummy_yyguts);
+
+ if (ptr_yy_globals == NULL){
+ 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
+
%if-c-only
static int yy_init_globals YYFARGS0(void)
@@ -2954,6 +3066,8 @@ static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *
/* Allocate enough space for the version and name fields */
bytes = th->th_hsize - 14;
th->th_version = (char *) yyalloc (bytes M4_YY_CALL_LAST_ARG);
+ if ( ! th->th_version )
+ YY_FATAL_ERROR( "out of dynamic memory in yytbl_hdr_read()" );
/* we read it all into th_version, and point th_name into that data */
if (fread (th->th_version, 1, bytes, rd->fp) != bytes){
@@ -3033,6 +3147,8 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
else
/* We point to the address of a pointer. */
*dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG);
+ if ( ! p )
+ YY_FATAL_ERROR( "out of dynamic memory in yytbl_data_load()" );
}
/* If it's a struct, we read 2 integers to get one element */
diff --git a/flex.spec b/flex.spec
deleted file mode 100644
index 51171c3..0000000
--- a/flex.spec
+++ /dev/null
@@ -1,54 +0,0 @@
-Summary: fast lexical analyzer generator
-Name: flex
-Version: 2.5.33
-Release: 0
-License: BSD style
-Group: Development/Tools
-Source: ftp://ftp.ee.lbl.gov/%{name}-%{version}.tar.gz
-Prefix: %{_prefix}
-BuildRoot: %{_tmppath}/%{name}-%{version}
-Prereq: /sbin/install-info
-
-%description
-The flex program generates scanners. Scanners are programs which can
-recognize lexical patterns in text. Flex takes pairs of regular
-expressions and C code as input and generates a C source file as
-output. The output file is compiled and linked with a library to
-produce an executable. The executable searches through its input for
-occurrences of the regular expressions. When a match is found, it
-executes the corresponding C code. Flex was designed to work with
-both Yacc and Bison, and is used by many programs as part of their
-build process.
-
-%prep
-%setup -q -n %{name}-%{version}
-
-%build
-%configure
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-%makeinstall
-rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-%post
-/sbin/install-info %{_infodir}/flex.info.gz %{_infodir}/dir
-
-%postun
-if [ "$1" = 0 ]; then
- /sbin/install-info --del %{_infodir}/flex.info.gz %{_infodir}/dir
-fi
-
-%files
-%defattr(-,root,root)
-%doc COPYING NEWS README
-%{_bindir}/*
-%{_mandir}/man1/*
-%{_libdir}/*
-%{_includedir}/FlexLexer.h
-%{_infodir}/flex.info*
-%{_datadir}/locale/*
diff --git a/flex.spec.in b/flex.spec.in
deleted file mode 100644
index 026f021..0000000
--- a/flex.spec.in
+++ /dev/null
@@ -1,54 +0,0 @@
-Summary: fast lexical analyzer generator
-Name: flex
-Version: @VERSION@
-Release: 0
-License: BSD style
-Group: Development/Tools
-Source: ftp://ftp.ee.lbl.gov/%{name}-%{version}.tar.gz
-Prefix: %{_prefix}
-BuildRoot: %{_tmppath}/%{name}-%{version}
-Prereq: /sbin/install-info
-
-%description
-The flex program generates scanners. Scanners are programs which can
-recognize lexical patterns in text. Flex takes pairs of regular
-expressions and C code as input and generates a C source file as
-output. The output file is compiled and linked with a library to
-produce an executable. The executable searches through its input for
-occurrences of the regular expressions. When a match is found, it
-executes the corresponding C code. Flex was designed to work with
-both Yacc and Bison, and is used by many programs as part of their
-build process.
-
-%prep
-%setup -q -n %{name}-%{version}
-
-%build
-%configure
-make
-
-%install
-rm -rf $RPM_BUILD_ROOT
-%makeinstall
-rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
-
-%clean
-rm -rf ${RPM_BUILD_ROOT}
-
-%post
-/sbin/install-info %{_infodir}/flex.info.gz %{_infodir}/dir
-
-%postun
-if [ "$1" = 0 ]; then
- /sbin/install-info --del %{_infodir}/flex.info.gz %{_infodir}/dir
-fi
-
-%files
-%defattr(-,root,root)
-%doc COPYING NEWS README
-%{_bindir}/*
-%{_mandir}/man1/*
-%{_libdir}/*
-%{_includedir}/FlexLexer.h
-%{_infodir}/flex.info*
-%{_datadir}/locale/*
diff --git a/flexdef.h b/flexdef.h
index 2f887f4..d038952 100644
--- a/flexdef.h
+++ b/flexdef.h
@@ -36,7 +36,22 @@
#define FLEXDEF_H 1
#ifdef HAVE_CONFIG_H
-#include "config.h"
+#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
@@ -48,6 +63,12 @@
#include <string.h>
#include <math.h>
#endif
+#ifdef HAVE_ASSERT_H
+#include <assert.h>
+#else
+#define assert(Pred)
+#endif
+
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
@@ -94,7 +115,7 @@
#endif
#ifndef PROTO
-#if __STDC__
+#if defined(__STDC__)
#define PROTO(proto) proto
#else
#define PROTO(proto) ()
@@ -257,7 +278,7 @@
/* The percentage the number of homogeneous out-transitions of a state
* must be of the number of total out-transitions of the state in order
- * that the state's transition table is first compared with a potential
+ * that the state's transition table is first compared with a potential
* template of the most common out-transition instead of with the first
* proto in the proto queue.
*/
@@ -335,7 +356,6 @@
* nowarn - if true (-w), do not generate warnings
* spprdflt - if true (-s), suppress the default rule
* interactive - if true (-I), generate an interactive scanner
- * caseins - if true (-i), generate a case-insensitive scanner
* lex_compat - if true (-l), maximize compatibility with AT&T lex
* posix_compat - if true (-X), maximize compatibility with POSIX lex
* do_yylineno - if true, generate code to maintain yylineno
@@ -377,7 +397,7 @@
extern int printstats, syntaxerror, eofseen, ddebug, trace, nowarn,
spprdflt;
-extern int interactive, caseins, lex_compat, posix_compat, do_yylineno;
+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;
@@ -410,7 +430,7 @@ extern int yymore_really_used, reject_really_used;
* use_stdout - the -t flag
* input_files - array holding names of input files
* num_input_files - size of input_files array
- * program_name - name with which program was invoked
+ * program_name - name with which program was invoked
*
* action_array - array to hold the rule actions
* action_size - size of action_array
@@ -428,7 +448,7 @@ extern const char *skel[];
extern int skel_ind;
extern char *infilename, *outfilename, *headerfilename;
extern int did_outfilename;
-extern char *prefix, *yyclass;
+extern char *prefix, *yyclass, *extra_type;
extern int do_stdinit, use_stdout;
extern char **input_files;
extern int num_input_files;
@@ -719,6 +739,8 @@ extern int yylval;
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 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[]));
@@ -817,7 +839,7 @@ extern void usage PROTO ((void));
extern void action_define PROTO ((const char *defname, int value));
/* Add the given text to the stored actions. */
-extern void add_action PROTO ((char *new_text));
+extern void add_action PROTO ((const char *new_text));
/* True if a string is all lower case. */
extern int all_lower PROTO ((register char *));
@@ -1179,4 +1201,23 @@ int regmatch_len (regmatch_t * m);
int regmatch_strtol (regmatch_t * m, const char *src, char **endptr, int base);
bool regmatch_empty (regmatch_t * m);
+/* From "scanflags.h" */
+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_top() (_sf_stk[_sf_top_ix])
+#define sf_case_ins() (sf_top() & _SF_CASE_INS)
+#define sf_dot_all() (sf_top() & _SF_DOT_ALL)
+#define sf_skip_ws() (sf_top() & _SF_SKIP_WS)
+#define sf_set_case_ins(X) ((X) ? (sf_top() |= _SF_CASE_INS) : (sf_top() &= ~_SF_CASE_INS))
+#define sf_set_dot_all(X) ((X) ? (sf_top() |= _SF_DOT_ALL) : (sf_top() &= ~_SF_DOT_ALL))
+#define sf_set_skip_ws(X) ((X) ? (sf_top() |= _SF_SKIP_WS) : (sf_top() &= ~_SF_SKIP_WS))
+extern void sf_init(void);
+extern void sf_push(void);
+extern void sf_pop(void);
+
+
#endif /* not defined FLEXDEF_H */
diff --git a/flexint.h b/flexint.h
index 4088715..60e9127 100644
--- a/flexint.h
+++ b/flexint.h
@@ -5,7 +5,7 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-#if __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
* if you want the limit (max/min) macros for int types.
diff --git a/gen.c b/gen.c
index b78f595..848e2c5 100644
--- a/gen.c
+++ b/gen.c
@@ -447,9 +447,6 @@ struct yytbl_data *mkecstbl (void)
(flex_int32_t *) calloc (tbl->td_lolen, sizeof (flex_int32_t));
for (i = 1; i < csize; ++i) {
- if (caseins && isupper (i))
- ecgroup[i] = ecgroup[tolower (i)];
-
ecgroup[i] = ABS (ecgroup[i]);
tdata[i] = ecgroup[i];
}
@@ -471,9 +468,6 @@ void genecs ()
out_str_dec (get_int32_decl (), "yy_ec", csize);
for (i = 1; i < csize; ++i) {
- if (caseins && (i >= 'A') && (i <= 'Z'))
- ecgroup[i] = ecgroup[clower (i)];
-
ecgroup[i] = ABS (ecgroup[i]);
mkdata (ecgroup[i]);
}
@@ -531,15 +525,15 @@ void gen_find_action ()
if (variable_trailing_context_rules) {
indent_puts
("if ( yy_act & YY_TRAILING_HEAD_MASK ||");
- indent_puts (" yy_looking_for_trail_begin )");
+ indent_puts (" YY_G(yy_looking_for_trail_begin) )");
indent_up ();
indent_puts ("{");
indent_puts
- ("if ( yy_act == yy_looking_for_trail_begin )");
+ ("if ( yy_act == YY_G(yy_looking_for_trail_begin) )");
indent_up ();
indent_puts ("{");
- indent_puts ("yy_looking_for_trail_begin = 0;");
+ indent_puts ("YY_G(yy_looking_for_trail_begin) = 0;");
indent_puts ("yy_act &= ~YY_TRAILING_HEAD_MASK;");
indent_puts ("break;");
indent_puts ("}");
@@ -553,9 +547,9 @@ void gen_find_action ()
indent_up ();
indent_puts ("{");
indent_puts
- ("yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;");
+ ("YY_G(yy_looking_for_trail_begin) = yy_act & ~YY_TRAILING_MASK;");
indent_puts
- ("yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;");
+ ("YY_G(yy_looking_for_trail_begin) |= YY_TRAILING_HEAD_MASK;");
if (real_reject) {
/* Remember matched text in case we back up
@@ -564,8 +558,8 @@ void gen_find_action ()
indent_puts
("YY_G(yy_full_match) = yy_cp;");
indent_puts
- ("yy_full_state = YY_G(yy_state_ptr);");
- indent_puts ("yy_full_lp = YY_G(yy_lp);");
+ ("YY_G(yy_full_state) = YY_G(yy_state_ptr);");
+ indent_puts ("YY_G(yy_full_lp) = YY_G(yy_lp);");
}
indent_puts ("}");
@@ -576,8 +570,8 @@ void gen_find_action ()
indent_puts ("{");
indent_puts ("YY_G(yy_full_match) = yy_cp;");
indent_puts
- ("yy_full_state = YY_G(yy_state_ptr);");
- indent_puts ("yy_full_lp = YY_G(yy_lp);");
+ ("YY_G(yy_full_state) = YY_G(yy_state_ptr);");
+ indent_puts ("YY_G(yy_full_lp) = YY_G(yy_lp);");
indent_puts ("break;");
indent_puts ("}");
indent_down ();
@@ -869,11 +863,11 @@ void gen_next_state (worry_about_NULs)
if (worry_about_NULs && !nultrans) {
if (useecs)
- (void) sprintf (char_map,
+ snprintf (char_map, sizeof(char_map),
"(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : %d)",
NUL_ec);
else
- (void) sprintf (char_map,
+ snprintf (char_map, sizeof(char_map),
"(*yy_cp ? YY_SC_TO_UI(*yy_cp) : %d)",
NUL_ec);
}
@@ -980,7 +974,7 @@ void gen_NUL_trans ()
else {
char NUL_ec_str[20];
- (void) sprintf (NUL_ec_str, "%d", NUL_ec);
+ snprintf (NUL_ec_str, sizeof(NUL_ec_str), "%d", NUL_ec);
gen_next_compressed_state (NUL_ec_str);
do_indent ();
@@ -1770,7 +1764,7 @@ void make_tables ()
}
if (variable_trailing_context_rules) {
- if (!C_plus_plus) {
+ if (!C_plus_plus && !reentrant) {
outn ("static int yy_looking_for_trail_begin = 0;");
outn ("static int yy_full_lp;");
outn ("static int *yy_full_state;");
@@ -1788,8 +1782,8 @@ void make_tables ()
outn ("yy_cp = YY_G(yy_full_match); /* restore poss. backed-over text */ \\");
if (variable_trailing_context_rules) {
- outn ("YY_G(yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \\");
- outn ("YY_G(yy_state_ptr) = yy_full_state; /* restore orig. state */ \\");
+ outn ("YY_G(yy_lp) = YY_G(yy_full_lp); /* restore orig. accepting pos. */ \\");
+ outn ("YY_G(yy_state_ptr) = YY_G(yy_full_state); /* restore orig. state */ \\");
outn ("yy_current_state = *YY_G(yy_state_ptr); /* restore curr. state */ \\");
}
@@ -1896,7 +1890,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; \\");
diff --git a/install-sh b/install-sh
index 0ec27bc..4d4a951 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,8 @@
#!/bin/sh
-#
# install - install a program, script, or datafile
-#
+
+scriptversion=2005-05-14.22
+
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
# following copyright and license.
@@ -41,13 +42,11 @@
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
-
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
-
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
@@ -59,236 +58,266 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
+chowncmd=
+chgrpcmd=
+stripcmd=
rmcmd="$rmprog -f"
mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
- case $1 in
- -c) instcmd=$cpprog
- shift
- continue;;
-
- -d) dir_arg=true
- shift
- continue;;
-
- -m) chmodcmd="$chmodprog $2"
- shift
- shift
- continue;;
-
- -o) chowncmd="$chownprog $2"
- shift
- shift
- continue;;
-
- -g) chgrpcmd="$chgrpprog $2"
- shift
- shift
- continue;;
-
- -s) stripcmd=$stripprog
- shift
- continue;;
-
- -t=*) transformarg=`echo $1 | sed 's/-t=//'`
- shift
- continue;;
-
- -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
- shift
- continue;;
-
- *) if [ x"$src" = x ]
- then
- src=$1
- else
- # this colon is to work around a 386BSD /bin/sh bug
- :
- dst=$1
- fi
- shift
- continue;;
- esac
-done
-
-if [ x"$src" = x ]
-then
- echo "$0: no input file specified" >&2
- exit 1
-else
- :
-fi
-
-if [ x"$dir_arg" != x ]; then
- dst=$src
- src=""
-
- if [ -d "$dst" ]; then
- instcmd=:
- chmodcmd=""
- else
- instcmd=$mkdirprog
- fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
- if [ -f "$src" ] || [ -d "$src" ]
- then
- :
- else
- echo "$0: $src does not exist" >&2
- exit 1
- fi
-
- if [ x"$dst" = x ]
- then
- echo "$0: no destination specified" >&2
- exit 1
- else
- :
- fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
- if [ -d "$dst" ]
- then
- dst=$dst/`basename "$src"`
- else
- :
- fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-# this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
- '
-IFS="${IFS-$defaultIFS}"
-
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
- pathcomp=$pathcomp$1
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c (ignored)
+-d create directories instead of installing files.
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
+--help display this help and exit.
+--version display version info and exit.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+ case $1 in
+ -c) shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t) dstarg=$2
shift
+ shift
+ continue;;
- if [ ! -d "$pathcomp" ] ;
- then
- $mkdirprog "$pathcomp"
- else
- :
- fi
-
- pathcomp=$pathcomp/
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
+ break;;
+ esac
done
-fi
-
-if [ x"$dir_arg" != x ]
-then
- $doit $instcmd "$dst" &&
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
- if [ x"$transformarg" = x ]
- then
- dstfile=`basename "$dst"`
- else
- dstfile=`basename "$dst" $transformbasename |
- sed $transformarg`$transformbasename
- fi
-
-# don't allow the sed command to completely eliminate the filename
-
- if [ x"$dstfile" = x ]
- then
- dstfile=`basename "$dst"`
- else
- :
- fi
-
-# Make a couple of temp file names in the proper directory.
-
- dsttmp=$dstdir/#inst.$$#
- rmtmp=$dstdir/#rm.$$#
-
-# Trap to clean up temp files at exit.
-
- trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
- trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
- $doit $instcmd "$src" "$dsttmp" &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing. If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
- if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location. We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons. In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
- if [ -f "$dstdir/$dstfile" ]
- then
- $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
- $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
- {
- echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
- (exit 1); exit
- }
- else
- :
- fi
-} &&
-
-# Now rename the file to the real destination.
+if test -z "$1"; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
- $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src ;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ src=
+
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dstarg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dstarg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst ;;
+ esac
-fi &&
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
+ dst=$dst/`basename "$src"`
+ fi
+ fi
+
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
+
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
+ shift
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
+ fi
+ pathcomp=$pathcomp/
+ done
+ fi
+
+ if test -n "$dir_arg"; then
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+ else
+ dstfile=`basename "$dst"`
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+ # Now rename the file to the real destination.
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+ || {
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+ || {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit 1
+ }
+ else
+ :
+ fi
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ }
+ }
+ fi || { (exit 1); exit 1; }
+done
# The final little trick to "correctly" pass the exit status to the exit trap.
-
{
- (exit 0); exit
+ (exit 0); exit 0
}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/m4/Makefile.in b/m4/Makefile.in
index e19c957..bb1b4ea 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,6 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -21,7 +20,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -35,8 +33,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = m4
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -114,6 +130,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -134,6 +152,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -142,21 +161,38 @@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
EXTRA_DIST = codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes-pri.m4 inttypes.m4 inttypes_h.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 nls.m4 po.m4
-subdir = m4
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits m4/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu m4/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits m4/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -164,10 +200,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -181,7 +213,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -199,7 +231,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -212,7 +243,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -220,7 +251,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -230,13 +261,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -252,7 +285,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -270,8 +303,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/main.c b/main.c
index f28c5da..cec2d77 100644
--- a/main.c
+++ b/main.c
@@ -49,7 +49,7 @@ static char *basename2 PROTO ((char *path, int should_strip_ext));
/* these globals are all defined and commented in flexdef.h */
int printstats, syntaxerror, eofseen, ddebug, trace, nowarn, spprdflt;
-int interactive, caseins, lex_compat, posix_compat, do_yylineno,
+int interactive, lex_compat, posix_compat, do_yylineno,
useecs, fulltbl, usemecs;
int fullspd, gen_line_dirs, performance_report, backing_up_report;
int C_plus_plus, long_align, use_read, yytext_is_array, do_yywrap,
@@ -65,7 +65,7 @@ int action_size, defs1_offset, prolog_offset, action_offset,
action_index;
char *infilename = NULL, *outfilename = NULL, *headerfilename = NULL;
int did_outfilename;
-char *prefix, *yyclass;
+char *prefix, *yyclass, *extra_type = NULL;
int do_stdinit, use_stdout;
int onestate[ONE_STACK_SIZE], onesym[ONE_STACK_SIZE];
int onenext[ONE_STACK_SIZE], onedef[ONE_STACK_SIZE], onesp;
@@ -137,6 +137,8 @@ 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[[]]";
/* For debugging. The max number of filters to apply to skeleton. */
static int preproc_level = 1000;
@@ -211,6 +213,7 @@ int main (argc, argv)
#if ENABLE_NLS
#if HAVE_LOCALE_H
setlocale (LC_MESSAGES, "");
+ setlocale (LC_CTYPE, "");
textdomain (PACKAGE);
bindtextdomain (PACKAGE, LOCALEDIR);
#endif
@@ -331,6 +334,9 @@ void check_options ()
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 (!use_stdout) {
FILE *prev_stdout;
@@ -342,7 +348,7 @@ void check_options ()
else
suffix = "c";
- sprintf (outfile_path, outfile_template,
+ snprintf (outfile_path, sizeof(outfile_path), outfile_template,
prefix, suffix);
outfilename = outfile_path;
@@ -391,11 +397,9 @@ void check_options ()
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);
- sprintf (pname, tablesfile_template, prefix);
+ nbytes = strlen (prefix) + strlen (tablesfile_template) + 2;
+ tablesfilename = pname = (char *) calloc (nbytes, 1);
+ snprintf (pname, nbytes, tablesfile_template, prefix);
}
if ((tablesout = fopen (tablesfilename, "w")) == NULL)
@@ -408,7 +412,7 @@ void check_options ()
nbytes = strlen (prefix) + strlen ("tables") + 2;
tablesname = (char *) calloc (nbytes, 1);
- sprintf (tablesname, "%stables", prefix);
+ snprintf (tablesname, nbytes, "%stables", prefix);
yytbl_hdr_init (&hdr, flex_version, tablesname);
if (yytbl_hdr_fwrite (&tableswr, &hdr) <= 0)
@@ -448,9 +452,10 @@ void check_options ()
buf_init(&tmpbuf, sizeof(char));
for (i = 1; i <= lastsc; i++) {
char *str, *fmt = "#define %s %d\n";
+ size_t strsz;
- str = (char*)flex_alloc(strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2);
- sprintf(str, fmt, scname[i], i - 1);
+ str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2);
+ snprintf(str, strsz, fmt, scname[i], i - 1);
buf_strappend(&tmpbuf, str);
free(str);
}
@@ -639,6 +644,7 @@ void flexend (exit_status)
"yylex",
"yylex_destroy",
"yylex_init",
+ "yylex_init_extra",
"yylineno",
"yylloc",
"yylval",
@@ -739,7 +745,7 @@ void flexend (exit_status)
putc ('b', stderr);
if (ddebug)
putc ('d', stderr);
- if (caseins)
+ if (sf_case_ins())
putc ('i', stderr);
if (lex_compat)
putc ('l', stderr);
@@ -928,7 +934,7 @@ void flexinit (argc, argv)
char *arg;
scanopt_t sopt;
- printstats = syntaxerror = trace = spprdflt = caseins = false;
+ printstats = syntaxerror = trace = spprdflt = false;
lex_compat = posix_compat = C_plus_plus = backing_up_report =
ddebug = fulltbl = false;
fullspd = long_align = nowarn = yymore_used = continued_action =
@@ -970,6 +976,8 @@ void flexinit (argc, argv)
buf_append (&m4defs_buf, &m4defs_init_str, 2);
}
+ sf_init ();
+
/* initialize regex lib */
flex_init_regex();
@@ -1085,7 +1093,7 @@ void flexinit (argc, argv)
break;
case OPT_CASE_INSENSITIVE:
- caseins = true;
+ sf_set_case_ins(true);
break;
case OPT_LEX_COMPAT:
@@ -1568,7 +1576,9 @@ void readin ()
}
if (!do_yywrap) {
- outn ("\n#define yywrap(n) 1");
+ if (!C_plus_plus) {
+ outn ("\n#define yywrap(n) 1");
+ }
outn ("#define YY_SKIP_YYWRAP");
}
@@ -1641,6 +1651,10 @@ void readin ()
if (C_plus_plus) {
outn ("\n#include <FlexLexer.h>");
+ if (!do_yywrap) {
+ outn("\nint yyFlexLexer::yywrap() { return 1; }");
+ }
+
if (yyclass) {
outn ("int yyFlexLexer::yylex()");
outn ("\t{");
@@ -1776,7 +1790,7 @@ void usage ()
FILE *f = stdout;
if (!did_outfilename) {
- sprintf (outfile_path, outfile_template,
+ snprintf (outfile_path, sizeof(outfile_path), outfile_template,
prefix, C_plus_plus ? "cc" : "c");
outfilename = outfile_path;
}
diff --git a/misc.c b/misc.c
index 2388437..1009dea 100644
--- a/misc.c
+++ b/misc.c
@@ -102,7 +102,7 @@ void action_define (defname, value)
return;
}
- sprintf (buf, "#define %s %d\n", defname, value);
+ snprintf (buf, sizeof(buf), "#define %s %d\n", defname, value);
add_action (buf);
/* track #defines so we can undef them when we're done. */
@@ -128,13 +128,13 @@ void action_m4_define (const char *defname, const char * value)
return;
}
- sprintf (buf, "m4_define([[%s]],[[%s]])m4_dnl\n", defname, value?value:"");
+ snprintf (buf, sizeof(buf), "m4_define([[%s]],[[%s]])m4_dnl\n", defname, value?value:"");
add_action (buf);
}
/* Append "new_text" to the running buffer. */
void add_action (new_text)
- char *new_text;
+ const char *new_text;
{
int len = strlen (new_text);
@@ -446,7 +446,7 @@ void lerrif (msg, arg)
{
char errmsg[MAXLINE];
- (void) sprintf (errmsg, msg, arg);
+ snprintf (errmsg, sizeof(errmsg), msg, arg);
flexerror (errmsg);
}
@@ -458,7 +458,7 @@ void lerrsf (msg, arg)
{
char errmsg[MAXLINE];
- (void) sprintf (errmsg, msg, arg);
+ snprintf (errmsg, sizeof(errmsg), msg, arg);
flexerror (errmsg);
}
@@ -495,13 +495,13 @@ void line_directive_out (output_file, do_infile)
*s2 = '\0';
if (do_infile)
- sprintf (directive, line_fmt, linenum, filename);
+ snprintf (directive, sizeof(directive), line_fmt, linenum, filename);
else {
if (output_file == stdout)
/* Account for the line directive itself. */
++out_linenum;
- sprintf (directive, line_fmt, out_linenum, filename);
+ snprintf (directive, sizeof(directive), line_fmt, out_linenum, filename);
}
/* If output_file is nil then we should put the directive in
@@ -629,7 +629,7 @@ Char myesc (array)
case 't':
return '\t';
-#if __STDC__
+#if defined (__STDC__)
case 'a':
return '\a';
case 'v':
@@ -835,7 +835,7 @@ char *readable_form (c)
case '\t':
return "\\t";
-#if __STDC__
+#if defined (__STDC__)
case '\a':
return "\\a";
case '\v':
@@ -843,7 +843,7 @@ char *readable_form (c)
#endif
default:
- (void) sprintf (rform, "\\%.3o", (unsigned int) c);
+ snprintf (rform, sizeof(rform), "\\%.3o", (unsigned int) c);
return rform;
}
}
diff --git a/missing b/missing
index 6a37006..894e786 100755
--- a/missing
+++ b/missing
@@ -1,6 +1,10 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-# Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc.
+
+scriptversion=2005-06-08.21
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
@@ -15,8 +19,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -38,18 +42,24 @@ else
configure_ac=configure.in
fi
+msg="missing on your system"
+
case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
shift
"$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case "$1" in
-h|--h|--he|--hel|--help)
echo "\
@@ -74,11 +84,15 @@ Supported PROGRAM values:
lex create \`lex.yy.c', if possible, from existing .c
makeinfo touch the output file
tar try tar, gnutar, gtar, then tar without non-portable flags
- yacc create \`y.tab.[ch]', if possible, from existing .[ch]"
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
;;
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
- echo "missing 0.4 - GNU automake"
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
;;
-*)
@@ -87,14 +101,44 @@ Supported PROGRAM values:
exit 1
;;
- aclocal*)
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+ lex|yacc)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
# We have it, but it failed.
exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
fi
+ ;;
+esac
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+ aclocal*)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`acinclude.m4' or \`${configure_ac}'. You might want
to install the \`Automake' and \`Perl' packages. Grab them from
any GNU archive site."
@@ -102,13 +146,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autoconf)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`${configure_ac}'. You might want to install the
\`Autoconf' and \`GNU m4' packages. Grab them from any GNU
archive site."
@@ -116,13 +155,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autoheader)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`acconfig.h' or \`${configure_ac}'. You might want
to install the \`Autoconf' and \`GNU m4' packages. Grab them
from any GNU archive site."
@@ -140,13 +174,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
automake*)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
You might want to install the \`Automake' and \`Perl' packages.
Grab them from any GNU archive site."
@@ -156,16 +185,11 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
autom4te)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
proper tools for further handling them.
- You can get \`$1Help2man' as part of \`Autoconf' from any GNU
+ You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
@@ -185,7 +209,7 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
bison|yacc)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' $msg. You should only need it if
you modified a \`.y' file. You may need the \`Bison' package
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
@@ -215,7 +239,7 @@ WARNING: \`$1' is missing on your system. You should only need it if
lex|flex)
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a \`.l' file. You may need the \`Flex' package
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
@@ -237,13 +261,8 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
help2man)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a dependency of a manual page. You may need the
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
@@ -262,32 +281,30 @@ WARNING: \`$1' is missing on your system. You should only need it if
;;
makeinfo)
- if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then
- # We have makeinfo, but it failed.
- exit 1
- fi
-
echo 1>&2 "\
-WARNING: \`$1' is missing on your system. You should only need it if
+WARNING: \`$1' is $msg. You should only need it if
you modified a \`.texi' or \`.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy \`make' (AIX,
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
- file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
touch $file
;;
tar)
shift
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- fi
# We have already tried tar in the generic part.
# Look for gnutar/gtar before invocation to avoid ugly error
@@ -323,10 +340,10 @@ WARNING: I can't seem to be able to run \`tar' with the given arguments.
*)
echo 1>&2 "\
-WARNING: \`$1' is needed, and you do not seem to have it handy on your
- system. You might have modified some files without having the
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
proper tools for further handling them. Check the \`README' file,
- it often tells you about the needed prerequirements for installing
+ it often tells you about the needed prerequisites for installing
this package. You may also peek at any GNU archive site, in case
some other package would contain this missing \`$1' program."
exit 1
@@ -334,3 +351,10 @@ WARNING: \`$1' is needed, and you do not seem to have it handy on your
esac
exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/nfa.c b/nfa.c
index 09fedcf..dbd1557 100644
--- a/nfa.c
+++ b/nfa.c
@@ -222,10 +222,10 @@ void finish_rule (mach, variable_trail_rule, headcnt, trailcnt,
if (pcont_act && rule_has_nl[num_rules - 1])
rule_has_nl[num_rules] = true;
- sprintf (action_text, "case %d:\n", num_rules);
+ snprintf (action_text, sizeof(action_text), "case %d:\n", num_rules);
add_action (action_text);
if (rule_has_nl[num_rules]) {
- sprintf (action_text, "/* rule %d can match eol */\n",
+ snprintf (action_text, sizeof(action_text), "/* rule %d can match eol */\n",
num_rules);
add_action (action_text);
}
@@ -257,13 +257,13 @@ 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) {
- sprintf (action_text, "%s = %s + %d;\n",
+ snprintf (action_text, sizeof(action_text), "%s = %s + %d;\n",
scanner_cp, scanner_bp, headcnt);
add_action (action_text);
}
else {
- sprintf (action_text, "%s -= %d;\n",
+ snprintf (action_text, sizeof(action_text), "%s -= %d;\n",
scanner_cp, trailcnt);
add_action (action_text);
}
diff --git a/parse.c b/parse.c
index 08b1e9e..33a5ec2 100644
--- a/parse.c
+++ b/parse.c
@@ -1,41 +1,160 @@
+/* A Bison parser, made by GNU Bison 2.1. */
-/* A Bison parser, made from parse.y
- by GNU Bison version 1.28 */
-
-#define YYBISON 1 /* Identify Bison output. */
-
-#define CHAR 257
-#define NUMBER 258
-#define SECTEND 259
-#define SCDECL 260
-#define XSCDECL 261
-#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_TABLES 270
-#define CCE_ALNUM 271
-#define CCE_ALPHA 272
-#define CCE_BLANK 273
-#define CCE_CNTRL 274
-#define CCE_DIGIT 275
-#define CCE_GRAPH 276
-#define CCE_LOWER 277
-#define CCE_PRINT 278
-#define CCE_PUNCT 279
-#define CCE_SPACE 280
-#define CCE_UPPER 281
-#define CCE_XDIGIT 282
-#define BEGIN_REPEAT_POSIX 283
-#define END_REPEAT_POSIX 284
-#define BEGIN_REPEAT_FLEX 285
-#define END_REPEAT_FLEX 286
-
-#line 29 "parse.y"
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Written by Richard Stallman by simplifying the original so called
+ ``semantic'' parser. */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+ infringing on user name space. This should be done even for local
+ variables, as they might otherwise be expanded by user macros.
+ There are some unavoidable exceptions within include files to
+ define necessary library symbols; they are noted "INFRINGES ON
+ USER NAME SPACE" below. */
+
+/* Identify Bison output. */
+#define YYBISON 1
+
+/* Bison version. */
+#define YYBISON_VERSION "2.1"
+
+/* Skeleton name. */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers. */
+#define YYPURE 0
+
+/* Using locations. */
+#define YYLSP_NEEDED 0
+
+
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ CHAR = 258,
+ NUMBER = 259,
+ SECTEND = 260,
+ SCDECL = 261,
+ XSCDECL = 262,
+ NAME = 263,
+ PREVCCL = 264,
+ EOF_OP = 265,
+ OPTION_OP = 266,
+ OPT_OUTFILE = 267,
+ OPT_PREFIX = 268,
+ OPT_YYCLASS = 269,
+ OPT_HEADER = 270,
+ OPT_EXTRA_TYPE = 271,
+ OPT_TABLES = 272,
+ CCE_ALNUM = 273,
+ CCE_ALPHA = 274,
+ CCE_BLANK = 275,
+ CCE_CNTRL = 276,
+ CCE_DIGIT = 277,
+ CCE_GRAPH = 278,
+ CCE_LOWER = 279,
+ CCE_PRINT = 280,
+ CCE_PUNCT = 281,
+ CCE_SPACE = 282,
+ CCE_UPPER = 283,
+ CCE_XDIGIT = 284,
+ CCE_NEG_ALNUM = 285,
+ CCE_NEG_ALPHA = 286,
+ CCE_NEG_BLANK = 287,
+ CCE_NEG_CNTRL = 288,
+ CCE_NEG_DIGIT = 289,
+ CCE_NEG_GRAPH = 290,
+ CCE_NEG_LOWER = 291,
+ CCE_NEG_PRINT = 292,
+ CCE_NEG_PUNCT = 293,
+ CCE_NEG_SPACE = 294,
+ CCE_NEG_UPPER = 295,
+ CCE_NEG_XDIGIT = 296,
+ CCL_OP_UNION = 297,
+ CCL_OP_DIFF = 298,
+ BEGIN_REPEAT_POSIX = 299,
+ END_REPEAT_POSIX = 300,
+ BEGIN_REPEAT_FLEX = 301,
+ END_REPEAT_FLEX = 302
+ };
+#endif
+/* Tokens. */
+#define CHAR 258
+#define NUMBER 259
+#define SECTEND 260
+#define SCDECL 261
+#define XSCDECL 262
+#define NAME 263
+#define PREVCCL 264
+#define EOF_OP 265
+#define OPTION_OP 266
+#define OPT_OUTFILE 267
+#define OPT_PREFIX 268
+#define OPT_YYCLASS 269
+#define OPT_HEADER 270
+#define OPT_EXTRA_TYPE 271
+#define OPT_TABLES 272
+#define CCE_ALNUM 273
+#define CCE_ALPHA 274
+#define CCE_BLANK 275
+#define CCE_CNTRL 276
+#define CCE_DIGIT 277
+#define CCE_GRAPH 278
+#define CCE_LOWER 279
+#define CCE_PRINT 280
+#define CCE_PUNCT 281
+#define CCE_SPACE 282
+#define CCE_UPPER 283
+#define CCE_XDIGIT 284
+#define CCE_NEG_ALNUM 285
+#define CCE_NEG_ALPHA 286
+#define CCE_NEG_BLANK 287
+#define CCE_NEG_CNTRL 288
+#define CCE_NEG_DIGIT 289
+#define CCE_NEG_GRAPH 290
+#define CCE_NEG_LOWER 291
+#define CCE_NEG_PRINT 292
+#define CCE_NEG_PUNCT 293
+#define CCE_NEG_SPACE 294
+#define CCE_NEG_UPPER 295
+#define CCE_NEG_XDIGIT 296
+#define CCL_OP_UNION 297
+#define CCL_OP_DIFF 298
+#define BEGIN_REPEAT_POSIX 299
+#define END_REPEAT_POSIX 300
+#define BEGIN_REPEAT_FLEX 301
+#define END_REPEAT_FLEX 302
+
+
+
+
+/* Copy the first part of user declarations. */
+#line 34 "parse.y"
/* Copyright (c) 1990 The Regents of the University of California. */
/* All rights reserved. */
@@ -68,55 +187,17 @@
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
-/* Some versions of bison are broken in that they use alloca() but don't
- * declare it properly. The following is the patented (just kidding!)
- * #ifdef chud to fix the problem, courtesy of Francois Pinard.
- */
-#ifdef YYBISON
-/* AIX requires this to be the first thing in the file. What a piece. */
-# ifdef _AIX
- #pragma alloca
-# endif
-#endif
-
#include "flexdef.h"
#include "tables.h"
-/* The remainder of the alloca() cruft has to come after including flexdef.h,
- * so HAVE_ALLOCA_H is (possibly) defined.
- */
-#ifdef YYBISON
-# ifdef __GNUC__
-# ifndef alloca
-# define alloca __builtin_alloca
-# endif
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef __hpux
-void *alloca ();
-# else
-# ifdef __TURBOC__
-# include <malloc.h>
-# else
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* Bletch, ^^^^ that was ugly! */
-
-
-int pat, scnum, eps, headcnt, trailcnt, anyccl, lastchar, i, rulelen;
+int pat, scnum, eps, headcnt, trailcnt, lastchar, i, rulelen;
int trlcontxt, xcluflg, currccl, cclsorted, varlength, variable_trail_rule;
int *scon_stk;
int scon_stk_ptr;
static int madeany = false; /* whether we've made the '.' character class */
+static int ccldot, cclany;
int previous_continued_action; /* whether the previous rule's action was '|' */
#define format_warn3(fmt, a1, a2) \
@@ -135,6 +216,15 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
ccladd( currccl, c ); \
}while(0)
+/* negated class */
+#define CCL_NEG_EXPR(func) \
+ do{ \
+ int c; \
+ for ( c = 0; c < csize; ++c ) \
+ if ( !func(c) ) \
+ ccladd( currccl, c ); \
+ }while(0)
+
/* While POSIX defines isblank(), it's not ANSI C. */
#define IS_BLANK(c) ((c) == ' ' || (c) == '\t')
@@ -146,523 +236,972 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
*/
#define YYSTYPE int
-#ifndef YYSTYPE
-#define YYSTYPE int
+
+
+/* Enabling traces. */
+#ifndef YYDEBUG
+# define YYDEBUG 0
#endif
-#include <stdio.h>
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
+/* Enabling verbose error messages. */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
#endif
+
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
#endif
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+typedef int YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
-#define YYFINAL 120
-#define YYFLAG -32768
-#define YYNTBASE 54
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 286 ? yytranslate[x] : 79)
-
-static const char yytranslate[] = { 0,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 34,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 48, 2, 42, 2, 2, 2, 49,
- 50, 40, 45, 41, 53, 47, 44, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 38,
- 33, 39, 46, 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,
- 51, 2, 52, 37, 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, 35, 43, 36, 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, 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, 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, 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, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 27, 28, 29, 30, 31, 32
-};
-#if YYDEBUG != 0
-static const short yyprhs[] = { 0,
- 0, 6, 7, 11, 14, 15, 17, 19, 21, 23,
- 26, 28, 30, 33, 36, 37, 41, 45, 49, 53,
- 57, 63, 69, 70, 71, 74, 76, 78, 80, 81,
- 86, 90, 91, 95, 97, 99, 101, 104, 108, 111,
- 113, 117, 119, 122, 125, 127, 134, 140, 145, 148,
- 151, 154, 161, 167, 172, 174, 176, 178, 182, 186,
- 188, 192, 197, 202, 205, 208, 209, 211, 213, 215,
- 217, 219, 221, 223, 225, 227, 229, 231, 233, 236
-};
+/* Copy the second part of user declarations. */
-static const short yyrhs[] = { 55,
- 56, 57, 63, 64, 0, 0, 56, 58, 59, 0,
- 56, 60, 0, 0, 1, 0, 5, 0, 6, 0,
- 7, 0, 59, 8, 0, 8, 0, 1, 0, 11,
- 61, 0, 61, 62, 0, 0, 12, 33, 8, 0,
- 13, 33, 8, 0, 14, 33, 8, 0, 15, 33,
- 8, 0, 16, 33, 8, 0, 63, 67, 64, 65,
- 34, 0, 63, 67, 35, 63, 36, 0, 0, 0,
- 37, 70, 0, 70, 0, 10, 0, 1, 0, 0,
- 38, 66, 68, 39, 0, 38, 40, 39, 0, 0,
- 68, 41, 69, 0, 69, 0, 1, 0, 8, 0,
- 72, 71, 0, 72, 71, 42, 0, 71, 42, 0,
- 71, 0, 71, 43, 73, 0, 73, 0, 71, 44,
- 0, 73, 74, 0, 74, 0, 73, 29, 4, 41,
- 4, 30, 0, 73, 29, 4, 41, 30, 0, 73,
- 29, 4, 30, 0, 74, 40, 0, 74, 45, 0,
- 74, 46, 0, 74, 31, 4, 41, 4, 32, 0,
- 74, 31, 4, 41, 32, 0, 74, 31, 4, 32,
- 0, 47, 0, 75, 0, 9, 0, 48, 78, 48,
- 0, 49, 71, 50, 0, 3, 0, 51, 76, 52,
- 0, 51, 37, 76, 52, 0, 76, 3, 53, 3,
- 0, 76, 3, 0, 76, 77, 0, 0, 17, 0,
- 18, 0, 19, 0, 20, 0, 21, 0, 22, 0,
- 23, 0, 24, 0, 25, 0, 26, 0, 27, 0,
- 28, 0, 78, 3, 0, 0
-};
+/* Line 219 of yacc.c. */
+#line 273 "parse.c"
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
#endif
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
- 142, 171, 179, 180, 181, 182, 186, 194, 197, 201,
- 204, 207, 211, 214, 215, 218, 223, 225, 227, 229,
- 233, 235, 237, 240, 253, 289, 313, 336, 340, 344,
- 347, 364, 368, 370, 372, 376, 399, 455, 458, 501,
- 519, 525, 530, 557, 565, 568, 596, 610, 632, 639,
- 645, 651, 679, 693, 712, 734, 755, 765, 768, 771,
- 785, 788, 795, 849, 860, 867, 875, 876, 877, 878,
- 879, 880, 881, 882, 883, 884, 885, 891, 894, 907
-};
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
+# endif
#endif
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+/* The parser invokes alloca or malloc; define the necessary symbols. */
+
+# ifdef YYSTACK_USE_ALLOCA
+# if YYSTACK_USE_ALLOCA
+# ifdef __GNUC__
+# define YYSTACK_ALLOC __builtin_alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if defined (__STDC__) || defined (__cplusplus)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# define YYINCLUDED_STDLIB_H
+# endif
+# endif
+# endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
+# endif
+# else
+# define YYSTACK_ALLOC YYMALLOC
+# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+# endif
+# ifdef __cplusplus
+extern "C" {
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
+ && (defined (__STDC__) || defined (__cplusplus)))
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
+ && (defined (__STDC__) || defined (__cplusplus)))
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifdef __cplusplus
+}
+# endif
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+
+
+#if (! defined (yyoverflow) \
+ && (! defined (__cplusplus) \
+ || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member. */
+union yyalloc
+{
+ short int yyss;
+ YYSTYPE yyvs;
+ };
+
+/* The size of the maximum gap between one aligned stack and the next. */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+ N elements. */
+# define YYSTACK_BYTES(N) \
+ ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO. The source and destination do
+ not overlap. */
+# ifndef YYCOPY
+# if defined (__GNUC__) && 1 < __GNUC__
+# define YYCOPY(To, From, Count) \
+ __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+# else
+# define YYCOPY(To, From, Count) \
+ do \
+ { \
+ YYSIZE_T yyi; \
+ for (yyi = 0; yyi < (Count); yyi++) \
+ (To)[yyi] = (From)[yyi]; \
+ } \
+ while (0)
+# endif
+# endif
+
+/* Relocate STACK from its old location to the new one. The
+ local variables YYSIZE and YYSTACKSIZE give the old and new number of
+ elements in the stack, and YYPTR gives the new location of the
+ stack. Advance YYPTR to a properly aligned location for the next
+ stack. */
+# define YYSTACK_RELOCATE(Stack) \
+ do \
+ { \
+ YYSIZE_T yynewbytes; \
+ YYCOPY (&yyptr->Stack, Stack, yysize); \
+ Stack = &yyptr->Stack; \
+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
+ } \
+ while (0)
-static const char * const yytname[] = { "$","error","$undefined.","CHAR","NUMBER",
-"SECTEND","SCDECL","XSCDECL","NAME","PREVCCL","EOF_OP","OPTION_OP","OPT_OUTFILE",
-"OPT_PREFIX","OPT_YYCLASS","OPT_HEADER","OPT_TABLES","CCE_ALNUM","CCE_ALPHA",
-"CCE_BLANK","CCE_CNTRL","CCE_DIGIT","CCE_GRAPH","CCE_LOWER","CCE_PRINT","CCE_PUNCT",
-"CCE_SPACE","CCE_UPPER","CCE_XDIGIT","BEGIN_REPEAT_POSIX","END_REPEAT_POSIX",
-"BEGIN_REPEAT_FLEX","END_REPEAT_FLEX","'='","'\\n'","'{'","'}'","'^'","'<'",
-"'>'","'*'","','","'$'","'|'","'/'","'+'","'?'","'.'","'\\\"'","'('","')'","'['",
-"']'","'-'","goal","initlex","sect1","sect1end","startconddecl","namelist1",
-"options","optionlist","option","sect2","initforrule","flexrule","scon_stk_ptr",
-"scon","namelist2","sconname","rule","re","re2","series","singleton","fullccl",
-"ccl","ccl_expr","string", NULL
-};
#endif
-static const short yyr1[] = { 0,
- 54, 55, 56, 56, 56, 56, 57, 58, 58, 59,
- 59, 59, 60, 61, 61, 62, 62, 62, 62, 62,
- 63, 63, 63, 64, 65, 65, 65, 65, 66, 67,
- 67, 67, 68, 68, 68, 69, 70, 70, 70, 70,
- 71, 71, 72, 73, 73, 73, 73, 73, 74, 74,
- 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 75, 75, 76, 76, 76, 76, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 78, 78
-};
+#if defined (__STDC__) || defined (__cplusplus)
+ typedef signed char yysigned_char;
+#else
+ typedef short int yysigned_char;
+#endif
-static const short yyr2[] = { 0,
- 5, 0, 3, 2, 0, 1, 1, 1, 1, 2,
- 1, 1, 2, 2, 0, 3, 3, 3, 3, 3,
- 5, 5, 0, 0, 2, 1, 1, 1, 0, 4,
- 3, 0, 3, 1, 1, 1, 2, 3, 2, 1,
- 3, 1, 2, 2, 1, 6, 5, 4, 2, 2,
- 2, 6, 5, 4, 1, 1, 1, 3, 3, 1,
- 3, 4, 4, 2, 2, 0, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 0
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL 3
+/* YYLAST -- Last index in YYTABLE. */
+#define YYLAST 161
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS 69
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS 27
+/* YYNRULES -- Number of rules. */
+#define YYNRULES 97
+/* YYNRULES -- Number of states. */
+#define YYNSTATES 140
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
+#define YYUNDEFTOK 2
+#define YYMAXUTOK 302
+
+#define YYTRANSLATE(YYX) \
+ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
+static const unsigned char yytranslate[] =
+{
+ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 49, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 63, 2, 57, 2, 2, 2,
+ 64, 65, 55, 60, 56, 68, 62, 59, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 53, 48, 54, 61, 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, 66, 2, 67, 52, 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, 50, 58, 51, 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, 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, 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,
+ 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, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47
};
-static const short yydefact[] = { 2,
- 0, 6, 0, 7, 8, 9, 15, 23, 0, 4,
- 13, 32, 12, 11, 3, 0, 0, 0, 0, 0,
- 14, 29, 1, 24, 10, 0, 0, 0, 0, 0,
- 0, 0, 23, 0, 16, 17, 18, 19, 20, 31,
- 35, 36, 0, 34, 32, 28, 60, 57, 27, 0,
- 55, 80, 0, 66, 0, 26, 40, 0, 42, 45,
- 56, 30, 0, 22, 25, 0, 0, 66, 0, 21,
- 39, 0, 43, 37, 0, 44, 0, 49, 50, 51,
- 33, 79, 58, 59, 0, 64, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 61, 65,
- 41, 38, 0, 0, 62, 0, 48, 0, 54, 0,
- 63, 0, 47, 0, 53, 46, 52, 0, 0, 0
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+ YYRHS. */
+static const unsigned short int yyprhs[] =
+{
+ 0, 0, 3, 9, 10, 14, 17, 18, 20, 22,
+ 24, 26, 29, 31, 33, 36, 39, 40, 44, 48,
+ 52, 56, 60, 64, 70, 76, 77, 78, 81, 83,
+ 85, 87, 88, 93, 97, 98, 102, 104, 106, 108,
+ 111, 115, 118, 120, 124, 126, 129, 132, 134, 141,
+ 147, 152, 155, 158, 161, 168, 174, 179, 181, 183,
+ 185, 189, 193, 195, 199, 203, 205, 209, 214, 219,
+ 222, 225, 226, 228, 230, 232, 234, 236, 238, 240,
+ 242, 244, 246, 248, 250, 252, 254, 256, 258, 260,
+ 262, 264, 266, 268, 270, 272, 274, 277
};
-static const short yydefgoto[] = { 118,
- 1, 3, 8, 9, 15, 10, 11, 21, 12, 23,
- 55, 32, 24, 43, 44, 56, 57, 58, 59, 60,
- 61, 69, 100, 66
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yysigned_char yyrhs[] =
+{
+ 70, 0, -1, 71, 72, 73, 79, 80, -1, -1,
+ 72, 74, 75, -1, 72, 76, -1, -1, 1, -1,
+ 5, -1, 6, -1, 7, -1, 75, 8, -1, 8,
+ -1, 1, -1, 11, 77, -1, 77, 78, -1, -1,
+ 12, 48, 8, -1, 16, 48, 8, -1, 13, 48,
+ 8, -1, 14, 48, 8, -1, 15, 48, 8, -1,
+ 17, 48, 8, -1, 79, 83, 80, 81, 49, -1,
+ 79, 83, 50, 79, 51, -1, -1, -1, 52, 86,
+ -1, 86, -1, 10, -1, 1, -1, -1, 53, 82,
+ 84, 54, -1, 53, 55, 54, -1, -1, 84, 56,
+ 85, -1, 85, -1, 1, -1, 8, -1, 88, 87,
+ -1, 88, 87, 57, -1, 87, 57, -1, 87, -1,
+ 87, 58, 89, -1, 89, -1, 87, 59, -1, 89,
+ 90, -1, 90, -1, 89, 44, 4, 56, 4, 45,
+ -1, 89, 44, 4, 56, 45, -1, 89, 44, 4,
+ 45, -1, 90, 55, -1, 90, 60, -1, 90, 61,
+ -1, 90, 46, 4, 56, 4, 47, -1, 90, 46,
+ 4, 56, 47, -1, 90, 46, 4, 47, -1, 62,
+ -1, 91, -1, 9, -1, 63, 95, 63, -1, 64,
+ 87, 65, -1, 3, -1, 91, 43, 92, -1, 91,
+ 42, 92, -1, 92, -1, 66, 93, 67, -1, 66,
+ 52, 93, 67, -1, 93, 3, 68, 3, -1, 93,
+ 3, -1, 93, 94, -1, -1, 18, -1, 19, -1,
+ 20, -1, 21, -1, 22, -1, 23, -1, 24, -1,
+ 25, -1, 26, -1, 27, -1, 29, -1, 28, -1,
+ 30, -1, 31, -1, 32, -1, 33, -1, 34, -1,
+ 35, -1, 37, -1, 38, -1, 39, -1, 41, -1,
+ 36, -1, 40, -1, 95, 3, -1, -1
};
-static const short yypact[] = {-32768,
- 75,-32768, 61,-32768,-32768,-32768,-32768,-32768, 29,-32768,
- 83, 6,-32768,-32768, 24, -19, 9, 32, 37, 46,
--32768, 47,-32768, 57,-32768, 96, 100, 101, 102, 103,
- 73, 30,-32768, -1,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, -28,-32768, 67,-32768,-32768,-32768,-32768, 26,
--32768,-32768, 26, 76, 80,-32768, 58, 26, 42, 38,
--32768,-32768, 107,-32768,-32768, 1, -9,-32768, 0,-32768,
--32768, 26,-32768, 64, 112, 38, 113,-32768,-32768,-32768,
--32768,-32768,-32768,-32768, 36, 65,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
- 42,-32768, -25, 53,-32768, 116,-32768, 3,-32768, 8,
--32768, 90,-32768, 89,-32768,-32768,-32768, 122, 123,-32768
+/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
+static const unsigned short int yyrline[] =
+{
+ 0, 118, 118, 148, 155, 156, 157, 158, 162, 170,
+ 173, 177, 180, 183, 187, 190, 191, 194, 199, 201,
+ 203, 205, 207, 211, 213, 215, 219, 231, 267, 291,
+ 314, 319, 322, 325, 343, 346, 348, 350, 354, 377,
+ 433, 436, 479, 497, 503, 508, 535, 543, 546, 574,
+ 588, 610, 617, 623, 629, 657, 671, 690, 724, 744,
+ 754, 757, 760, 775, 776, 777, 782, 784, 791, 851,
+ 869, 877, 885, 886, 887, 888, 889, 890, 891, 896,
+ 897, 898, 899, 900, 906, 907, 908, 909, 910, 911,
+ 912, 913, 914, 915, 916, 922, 930, 946
};
+#endif
-static const short yypgoto[] = {-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 91, 104,
--32768,-32768,-32768,-32768, 62, 77, -43,-32768, 54, -58,
--32768, 63,-32768,-32768
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+ "$end", "error", "$undefined", "CHAR", "NUMBER", "SECTEND", "SCDECL",
+ "XSCDECL", "NAME", "PREVCCL", "EOF_OP", "OPTION_OP", "OPT_OUTFILE",
+ "OPT_PREFIX", "OPT_YYCLASS", "OPT_HEADER", "OPT_EXTRA_TYPE",
+ "OPT_TABLES", "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_UNION", "CCL_OP_DIFF",
+ "BEGIN_REPEAT_POSIX", "END_REPEAT_POSIX", "BEGIN_REPEAT_FLEX",
+ "END_REPEAT_FLEX", "'='", "'\\n'", "'{'", "'}'", "'^'", "'<'", "'>'",
+ "'*'", "','", "'$'", "'|'", "'/'", "'+'", "'?'", "'.'", "'\"'", "'('",
+ "')'", "'['", "']'", "'-'", "$accept", "goal", "initlex", "sect1",
+ "sect1end", "startconddecl", "namelist1", "options", "optionlist",
+ "option", "sect2", "initforrule", "flexrule", "scon_stk_ptr", "scon",
+ "namelist2", "sconname", "rule", "re", "re2", "series", "singleton",
+ "fullccl", "braceccl", "ccl", "ccl_expr", "string", 0
};
+#endif
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+ token YYLEX-NUM. */
+static const unsigned short int yytoknum[] =
+{
+ 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+ 295, 296, 297, 298, 299, 300, 301, 302, 61, 10,
+ 123, 125, 94, 60, 62, 42, 44, 36, 124, 47,
+ 43, 63, 46, 34, 40, 41, 91, 93, 45
+};
+# endif
-#define YYLAST 131
-
-
-static const short yytable[] = { 46,
- 76, 47, 86, 82, 107, -24, 112, 48, 49, 67,
- 62, 114, 63, 26, 74, 108, 87, 88, 89, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 47, 13,
- 41, 25, 113, 72, 48, 50, 14, 42, 86, 115,
- 84, 27, 76, 22, 47, 51, 52, 53, 83, 54,
- 48, 99, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 28, 4, 5, 6, 77, 29,
- 75, 7, 51, 52, 53, 2, 54, 78, 30, -5,
- -5, -5, 79, 80, 109, -5, 31, 105, 51, 52,
- 53, 33, 54, 110, 16, 17, 18, 19, 20, 71,
- 72, 73, 64, 35, 22, 102, 72, 36, 37, 38,
- 39, 40, 68, 70, 42, 103, 104, 106, 111, 116,
- 117, 119, 120, 45, 81, 101, 65, 34, 0, 0,
- 85
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
+static const unsigned char yyr1[] =
+{
+ 0, 69, 70, 71, 72, 72, 72, 72, 73, 74,
+ 74, 75, 75, 75, 76, 77, 77, 78, 78, 78,
+ 78, 78, 78, 79, 79, 79, 80, 81, 81, 81,
+ 81, 82, 83, 83, 83, 84, 84, 84, 85, 86,
+ 86, 86, 86, 87, 87, 88, 89, 89, 89, 89,
+ 89, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 91, 91, 91, 92, 92, 93, 93,
+ 93, 93, 94, 94, 94, 94, 94, 94, 94, 94,
+ 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
+ 94, 94, 94, 94, 94, 94, 95, 95
};
-static const short yycheck[] = { 1,
- 59, 3, 3, 3, 30, 0, 4, 9, 10, 53,
- 39, 4, 41, 33, 58, 41, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 26, 27, 28, 3, 1,
- 1, 8, 30, 43, 9, 37, 8, 8, 3, 32,
- 50, 33, 101, 38, 3, 47, 48, 49, 48, 51,
- 9, 52, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 33, 5, 6, 7, 31, 33,
- 29, 11, 47, 48, 49, 1, 51, 40, 33, 5,
- 6, 7, 45, 46, 32, 11, 40, 52, 47, 48,
- 49, 35, 51, 41, 12, 13, 14, 15, 16, 42,
- 43, 44, 36, 8, 38, 42, 43, 8, 8, 8,
- 8, 39, 37, 34, 8, 4, 4, 53, 3, 30,
- 32, 0, 0, 33, 63, 72, 50, 24, -1, -1,
- 68
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
+static const unsigned char yyr2[] =
+{
+ 0, 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, 4, 3, 0, 3, 1, 1, 1, 2,
+ 3, 2, 1, 3, 1, 2, 2, 1, 6, 5,
+ 4, 2, 2, 2, 6, 5, 4, 1, 1, 1,
+ 3, 3, 1, 3, 3, 1, 3, 4, 4, 2,
+ 2, 0, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 0
};
-/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/lib/bison.simple"
-/* This file comes from bison-1.28. */
-/* Skeleton output parser for bison,
- Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+ STATE-NUM when YYTABLE doesn't specify something else to do. Zero
+ means the default is an error. */
+static const unsigned char yydefact[] =
+{
+ 3, 0, 0, 1, 7, 0, 8, 9, 10, 16,
+ 25, 0, 5, 14, 34, 13, 12, 4, 0, 0,
+ 0, 0, 0, 0, 15, 31, 2, 26, 11, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 0, 17,
+ 19, 20, 21, 18, 22, 33, 37, 38, 0, 36,
+ 34, 30, 62, 59, 29, 0, 57, 97, 0, 71,
+ 0, 28, 42, 0, 44, 47, 58, 65, 32, 0,
+ 24, 27, 0, 0, 71, 0, 23, 41, 0, 45,
+ 39, 0, 46, 0, 51, 52, 53, 0, 0, 35,
+ 96, 60, 61, 0, 69, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 83, 82, 84, 85, 86,
+ 87, 88, 89, 94, 90, 91, 92, 95, 93, 66,
+ 70, 43, 40, 0, 0, 64, 63, 67, 0, 50,
+ 0, 56, 0, 68, 0, 49, 0, 55, 48, 54
+};
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yysigned_char yydefgoto[] =
+{
+ -1, 1, 2, 5, 10, 11, 17, 12, 13, 24,
+ 14, 26, 60, 36, 27, 48, 49, 61, 62, 63,
+ 64, 65, 66, 67, 75, 120, 72
+};
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+ STATE-NUM. */
+#define YYPACT_NINF -52
+static const short int yypact[] =
+{
+ -52, 17, 103, -52, -52, 113, -52, -52, -52, -52,
+ -52, 48, -52, 114, 6, -52, -52, 42, 7, 12,
+ 58, 77, 88, 89, -52, 43, -52, 73, -52, 130,
+ 131, 132, 133, 134, 135, 90, 91, -52, -1, -52,
+ -52, -52, -52, -52, -52, -52, -52, -52, 40, -52,
+ 44, -52, -52, -52, -52, 39, -52, -52, 39, 93,
+ 97, -52, -12, 39, 49, 61, -31, -52, -52, 139,
+ -52, -52, 1, -51, -52, 0, -52, -52, 39, -52,
+ 75, 144, 61, 145, -52, -52, -52, 84, 84, -52,
+ -52, -52, -52, 50, 83, -52, -52, -52, -52, -52,
+ -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
+ -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
+ -52, 49, -52, -40, 10, -52, -52, -52, 149, -52,
+ 9, -52, -3, -52, 108, -52, 107, -52, -52, -52
+};
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+/* YYPGOTO[NTERM-NUM]. */
+static const short int yypgoto[] =
+{
+ -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
+ 118, 129, -52, -52, -52, -52, 92, 102, -48, -52,
+ 80, -21, -52, 47, 85, -52, -52
+};
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
+/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
+ positive, shift that token. If negative, reduce the rule which
+ number is the opposite. If zero, do what YYDEFACT says.
+ If YYTABLE_NINF, syntax error. */
+#define YYTABLE_NINF -27
+static const short int yytable[] =
+{
+ 51, 136, 52, 94, 90, 129, -26, 78, 53, 54,
+ 73, 87, 88, 134, 92, 80, 130, 3, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 52, 82, 137, 77, 78, 79, 53, 15,
+ 28, 55, 52, 94, 135, 29, 16, 131, 53, 25,
+ 30, 56, 57, 58, 91, 59, 132, 119, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
+ 117, 118, 46, 81, 68, 70, 69, 25, 35, 47,
+ 82, 56, 57, 58, 4, 59, 31, 83, -6, -6,
+ -6, 56, 57, 58, -6, 59, 84, 127, 6, 7,
+ 8, 85, 86, 37, 9, 32, 18, 19, 20, 21,
+ 22, 23, 122, 78, 125, 126, 33, 34, 39, 40,
+ 41, 42, 43, 44, 45, 74, 76, 47, 123, 124,
+ 59, 128, 133, 138, 139, 50, 38, 71, 121, 93,
+ 0, 89
+};
-/* This is the parser code that is written into each bison parser
- when the %semantic_parser declaration is not specified in the grammar.
- It was written by Richard Stallman by simplifying the hairy parser
- used when %semantic_parser is specified. */
-
-#ifndef YYSTACK_USE_ALLOCA
-#ifdef alloca
-#define YYSTACK_USE_ALLOCA
-#else /* alloca not defined */
-#ifdef __GNUC__
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#define YYSTACK_USE_ALLOCA
-#include <alloca.h>
-#else /* not sparc */
-/* We think this test detects Watcom and Microsoft C. */
-/* This used to test MSDOS, but that is a bad idea
- since that symbol is in the user namespace. */
-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#if 0 /* No need for malloc.h, which pollutes the namespace;
- instead, just don't use alloca. */
-#include <malloc.h>
-#endif
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-/* I don't know what this was needed for, but it pollutes the namespace.
- So I turned it off. rms, 2 May 1997. */
-/* #include <malloc.h> */
- #pragma alloca
-#define YYSTACK_USE_ALLOCA
-#else /* not MSDOS, or __TURBOC__, or _AIX */
-#if 0
-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
- and on HPUX 10. Eventually we can turn this on. */
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#endif /* __hpux */
-#endif
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc */
-#endif /* not GNU C */
-#endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
-
-#ifdef YYSTACK_USE_ALLOCA
-#define YYSTACK_ALLOC alloca
-#else
-#define YYSTACK_ALLOC malloc
-#endif
+static const yysigned_char yycheck[] =
+{
+ 1, 4, 3, 3, 3, 45, 0, 58, 9, 10,
+ 58, 42, 43, 4, 65, 63, 56, 0, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 3, 64, 47, 57, 58, 59, 9, 1,
+ 8, 52, 3, 3, 45, 48, 8, 47, 9, 53,
+ 48, 62, 63, 64, 63, 66, 56, 67, 18, 19,
+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
+ 40, 41, 1, 44, 54, 51, 56, 53, 55, 8,
+ 121, 62, 63, 64, 1, 66, 48, 46, 5, 6,
+ 7, 62, 63, 64, 11, 66, 55, 67, 5, 6,
+ 7, 60, 61, 50, 11, 48, 12, 13, 14, 15,
+ 16, 17, 57, 58, 87, 88, 48, 48, 8, 8,
+ 8, 8, 8, 8, 54, 52, 49, 8, 4, 4,
+ 66, 68, 3, 45, 47, 37, 27, 55, 78, 74,
+ -1, 69
+};
-/* Note: there must be only one dollar sign in this file.
- It is replaced by the list of actions, each action
- as one case of the switch. */
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+ symbol of state STATE-NUM. */
+static const unsigned char yystos[] =
+{
+ 0, 70, 71, 0, 1, 72, 5, 6, 7, 11,
+ 73, 74, 76, 77, 79, 1, 8, 75, 12, 13,
+ 14, 15, 16, 17, 78, 53, 80, 83, 8, 48,
+ 48, 48, 48, 48, 48, 55, 82, 50, 80, 8,
+ 8, 8, 8, 8, 8, 54, 1, 8, 84, 85,
+ 79, 1, 3, 9, 10, 52, 62, 63, 64, 66,
+ 81, 86, 87, 88, 89, 90, 91, 92, 54, 56,
+ 51, 86, 95, 87, 52, 93, 49, 57, 58, 59,
+ 87, 44, 90, 46, 55, 60, 61, 42, 43, 85,
+ 3, 63, 65, 93, 3, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 38, 39, 40, 41, 67,
+ 94, 89, 57, 4, 4, 92, 92, 67, 68, 45,
+ 56, 47, 56, 3, 4, 45, 4, 47, 45, 47
+};
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY -2
+#define YYEMPTY (-2)
#define YYEOF 0
+
#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrlab1
-/* Like YYERROR except do call yyerror.
- This remains here temporarily to ease the
- transition to the new meaning of YYERROR, for GCC.
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror. This remains here temporarily
+ to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
+
#define YYFAIL goto yyerrlab
+
#define YYRECOVERING() (!!yyerrstatus)
-#define YYBACKUP(token, value) \
+
+#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
- { yychar = (token), yylval = (value); \
- yychar1 = YYTRANSLATE (yychar); \
+ { \
+ yychar = (Token); \
+ yylval = (Value); \
+ yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
- { yyerror ("syntax error: cannot back up"); YYERROR; } \
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
+ YYERROR; \
+ } \
while (0)
+
#define YYTERROR 1
#define YYERRCODE 256
-#ifndef YYPURE
-#define YYLEX yylex()
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (N) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (0)
#endif
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX yylex(&yylval, &yylloc)
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
#endif
-#else /* not YYLSP_NEEDED */
+
+
+/* YYLEX -- calling `yylex' with the right arguments. */
+
#ifdef YYLEX_PARAM
-#define YYLEX yylex(&yylval, YYLEX_PARAM)
+# define YYLEX yylex (YYLEX_PARAM)
#else
-#define YYLEX yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
+# define YYLEX yylex ()
#endif
-/* If nonreentrant, generate the variables here */
+/* Enable debugging if requested. */
+#if YYDEBUG
-#ifndef YYPURE
+# ifndef YYFPRINTF
+# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+# define YYFPRINTF fprintf
+# endif
-int yychar; /* the lookahead symbol */
-YYSTYPE yylval; /* the semantic value of the */
- /* lookahead symbol */
+# define YYDPRINTF(Args) \
+do { \
+ if (yydebug) \
+ YYFPRINTF Args; \
+} while (0)
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yysymprint (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (0)
+
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included). |
+`------------------------------------------------------------------*/
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc; /* location data for the lookahead */
- /* symbol */
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short int *bottom, short int *top)
+#else
+static void
+yy_stack_print (bottom, top)
+ short int *bottom;
+ short int *top;
#endif
+{
+ YYFPRINTF (stderr, "Stack now");
+ for (/* Nothing. */; bottom <= top; ++bottom)
+ YYFPRINTF (stderr, " %d", *bottom);
+ YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top) \
+do { \
+ if (yydebug) \
+ yy_stack_print ((Bottom), (Top)); \
+} while (0)
+
-int yynerrs; /* number of parse errors so far */
-#endif /* not YYPURE */
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced. |
+`------------------------------------------------*/
-#if YYDEBUG != 0
-int yydebug; /* nonzero means print parse trace */
-/* Since this is uninitialized, it does not stop multiple parsers
- from coexisting. */
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+ int yyrule;
#endif
+{
+ int yyi;
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
+ yyrule - 1, yylno);
+ /* Print the symbols being reduced, and their result. */
+ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+ YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+ YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
+}
+
+# define YY_REDUCE_PRINT(Rule) \
+do { \
+ if (yydebug) \
+ yy_reduce_print (Rule); \
+} while (0)
+
+/* Nonzero means print parse trace. It is left uninitialized so that
+ multiple parsers can coexist. */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
-/* YYINITDEPTH indicates the initial size of the parser's stacks */
+/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
-#define YYINITDEPTH 200
+# define YYINITDEPTH 200
#endif
-/* YYMAXDEPTH is the maximum size the stacks can grow to
- (effective only if the built-in stack extension method is used). */
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+ if the built-in stack extension method is used).
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
+ Do not make this value too large; the results are undefined if
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+ evaluated with infinite-precision integer arithmetic. */
#ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
+# define YYMAXDEPTH 10000
#endif
+
-/* Define __yy_memcpy. Note that the size argument
- should be passed with type unsigned int, because that is what the non-GCC
- definitions require. With GCC, __builtin_memcpy takes an arg
- of type size_t, but it can handle unsigned int. */
-
-#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
-#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
-#else /* not GNU C or C++ */
-#ifndef __cplusplus
-
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (to, from, count)
- char *to;
- char *from;
- unsigned int count;
+
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+# if defined (__GLIBC__) && defined (_STRING_H)
+# define yystrlen strlen
+# else
+/* Return the length of YYSTR. */
+static YYSIZE_T
+# if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+# else
+yystrlen (yystr)
+ const char *yystr;
+# endif
{
- register char *f = from;
- register char *t = to;
- register int i = count;
+ const char *yys = yystr;
+
+ while (*yys++ != '\0')
+ continue;
- while (i-- > 0)
- *t++ = *f++;
+ return yys - yystr - 1;
}
+# endif
+# endif
+
+# ifndef yystpcpy
+# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# define yystpcpy stpcpy
+# else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+ YYDEST. */
+static char *
+# if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+# else
+yystpcpy (yydest, yysrc)
+ char *yydest;
+ const char *yysrc;
+# endif
+{
+ char *yyd = yydest;
+ const char *yys = yysrc;
-#else /* __cplusplus */
+ while ((*yyd++ = *yys++) != '\0')
+ continue;
-/* This is the most reliable way to avoid incompatibilities
- in available built-in functions on various systems. */
-static void
-__yy_memcpy (char *to, char *from, unsigned int count)
+ return yyd - 1;
+}
+# endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
{
- register char *t = to;
- register char *f = from;
- register int i = count;
+ if (*yystr == '"')
+ {
+ size_t yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
+
+ if (! yyres)
+ return yystrlen (yystr);
- while (i-- > 0)
- *t++ = *f++;
+ return yystpcpy (yyres, yystr) - yyres;
}
+# endif
+
+#endif /* YYERROR_VERBOSE */
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE *yyvaluep;
#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+ YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol. |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
+ int yytype;
+ YYSTYPE *yyvaluep;
#endif
+{
+ /* Pacify ``unused variable'' warnings. */
+ (void) yyvaluep;
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+ switch (yytype)
+ {
+
+ default:
+ break;
+ }
+}
-#line 217 "/usr/lib/bison.simple"
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
- into yyparse. The argument should have type void *.
- It should actually point to an object.
- Grammar actions can access the variable by casting it
- to the proper pointer type. */
+/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
-
-/* Prevent warning if -Wstrict-prototypes. */
-#ifdef __GNUC__
-#ifdef YYPARSE_PARAM
-int yyparse (void *);
-#else
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
int yyparse (void);
+#else
+int yyparse ();
#endif
-#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The look-ahead symbol. */
+int yychar;
+
+/* The semantic value of the look-ahead symbol. */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far. */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse. |
+`----------*/
+#ifdef YYPARSE_PARAM
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
+#else
int
-yyparse(YYPARSE_PARAM_ARG)
- YYPARSE_PARAM_DECL
+yyparse ()
+ ;
+#endif
+#endif
{
- register int yystate;
- register int yyn;
- register short *yyssp;
- register YYSTYPE *yyvsp;
- int yyerrstatus; /* number of tokens to shift before error messages enabled */
- int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+
+ int yystate;
+ int yyn;
+ int yyresult;
+ /* Number of tokens to shift before error messages enabled. */
+ int yyerrstatus;
+ /* Look-ahead token as an internal (translated) token number. */
+ int yytoken = 0;
- short yyssa[YYINITDEPTH]; /* the state stack */
- YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+ /* Three stacks and their tools:
+ `yyss': related to states,
+ `yyvs': related to semantic values,
+ `yyls': related to locations.
+
+ Refer to the stacks thru separate pointers, to allow yyoverflow
+ to reallocate them elsewhere. */
+
+ /* The state stack. */
+ short int yyssa[YYINITDEPTH];
+ short int *yyss = yyssa;
+ short int *yyssp;
+
+ /* The semantic value stack. */
+ YYSTYPE yyvsa[YYINITDEPTH];
+ YYSTYPE *yyvs = yyvsa;
+ YYSTYPE *yyvsp;
- short *yyss = yyssa; /* refer to the stacks thru separate pointers */
- YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
-#ifdef YYLSP_NEEDED
- YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
- YYLTYPE *yyls = yylsa;
- YYLTYPE *yylsp;
-#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
-#else
#define YYPOPSTACK (yyvsp--, yyssp--)
-#endif
- int yystacksize = YYINITDEPTH;
- int yyfree_stacks = 0;
+ YYSIZE_T yystacksize = YYINITDEPTH;
-#ifdef YYPURE
- int yychar;
- YYSTYPE yylval;
- int yynerrs;
-#ifdef YYLSP_NEEDED
- YYLTYPE yylloc;
-#endif
-#endif
+ /* The variables used to return semantic value and location from the
+ action routines. */
+ YYSTYPE yyval;
- YYSTYPE yyval; /* the variable used to return */
- /* semantic values from the action */
- /* routines */
+ /* When reducing, the number of symbols on the RHS of the reduced
+ rule. */
int yylen;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Starting parse\n");
-#endif
+ YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
@@ -674,247 +1213,197 @@ yyparse(YYPARSE_PARAM_ARG)
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
- yyssp = yyss - 1;
+ yyssp = yyss;
yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
- yylsp = yyls;
-#endif
-/* Push a new state, which is found in yystate . */
-/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks. */
-yynewstate:
+ goto yysetstate;
- *++yyssp = yystate;
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate. |
+`------------------------------------------------------------*/
+ yynewstate:
+ /* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks.
+ */
+ yyssp++;
- if (yyssp >= yyss + yystacksize - 1)
- {
- /* Give user a chance to reallocate the stack */
- /* Use copies of these so that the &'s don't force the real ones into memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
- YYLTYPE *yyls1 = yyls;
-#endif
+ yysetstate:
+ *yyssp = yystate;
+ if (yyss + yystacksize - 1 <= yyssp)
+ {
/* Get the current used size of the three stacks, in elements. */
- int size = yyssp - yyss + 1;
+ YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
- /* Each stack pointer address is followed by the size of
- the data in use in that stack, in bytes. */
-#ifdef YYLSP_NEEDED
- /* This used to be a conditional around just the two extra args,
- but that might be undefined if yyoverflow is a macro. */
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yyls1, size * sizeof (*yylsp),
- &yystacksize);
-#else
- yyoverflow("parser stack overflow",
- &yyss1, size * sizeof (*yyssp),
- &yyvs1, size * sizeof (*yyvsp),
- &yystacksize);
-#endif
-
- yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
- yyls = yyls1;
-#endif
+ {
+ /* Give user a chance to reallocate the stack. Use copies of
+ these so that the &'s don't force the real ones into
+ memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short int *yyss1 = yyss;
+
+
+ /* Each stack pointer address is followed by the size of the
+ data in use in that stack, in bytes. This used to be a
+ conditional around just the two extra args, but that might
+ be undefined if yyoverflow is a macro. */
+ yyoverflow (YY_("memory exhausted"),
+ &yyss1, yysize * sizeof (*yyssp),
+ &yyvs1, yysize * sizeof (*yyvsp),
+
+ &yystacksize);
+
+ yyss = yyss1;
+ yyvs = yyvs1;
+ }
#else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+ goto yyexhaustedlab;
+# else
/* Extend the stack our own way. */
- if (yystacksize >= YYMAXDEPTH)
- {
- yyerror("parser stack overflow");
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
-#endif
- }
- return 2;
- }
+ if (YYMAXDEPTH <= yystacksize)
+ goto yyexhaustedlab;
yystacksize *= 2;
- if (yystacksize > YYMAXDEPTH)
+ if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
-#ifndef YYSTACK_USE_ALLOCA
- yyfree_stacks = 1;
-#endif
- yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
- __yy_memcpy ((char *)yyss, (char *)yyss1,
- size * (unsigned int) sizeof (*yyssp));
- yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
- __yy_memcpy ((char *)yyvs, (char *)yyvs1,
- size * (unsigned int) sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
- yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
- __yy_memcpy ((char *)yyls, (char *)yyls1,
- size * (unsigned int) sizeof (*yylsp));
-#endif
+
+ {
+ short int *yyss1 = yyss;
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ if (! yyptr)
+ goto yyexhaustedlab;
+ YYSTACK_RELOCATE (yyss);
+ YYSTACK_RELOCATE (yyvs);
+
+# undef YYSTACK_RELOCATE
+ if (yyss1 != yyssa)
+ YYSTACK_FREE (yyss1);
+ }
+# endif
#endif /* no yyoverflow */
- yyssp = yyss + size - 1;
- yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
- yylsp = yyls + size - 1;
-#endif
+ yyssp = yyss + yysize - 1;
+ yyvsp = yyvs + yysize - 1;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
- if (yyssp >= yyss + yystacksize - 1)
+ YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+ (unsigned long int) yystacksize));
+
+ if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Entering state %d\n", yystate);
-#endif
+ YYDPRINTF ((stderr, "Entering state %d\n", yystate));
goto yybackup;
- yybackup:
+
+/*-----------.
+| yybackup. |
+`-----------*/
+yybackup:
/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
+/* Read a look-ahead token if we need one and don't already have one. */
/* yyresume: */
- /* First try to decide what to do without reference to lookahead token. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
- if (yyn == YYFLAG)
+ if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
-
- /* yychar is either YYEMPTY or YYEOF
- or a valid token in external form. */
+ /* Not known => get a look-ahead token if don't already have one. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Reading a token: ");
-#endif
+ YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
- /* Convert token to internal form (in yychar1) for indexing tables with */
-
- if (yychar <= 0) /* This means end of input. */
+ if (yychar <= YYEOF)
{
- yychar1 = 0;
- yychar = YYEOF; /* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Now at end of input.\n");
-#endif
+ yychar = yytoken = YYEOF;
+ YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
- yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
- /* Give the individual parser a way to print the precise meaning
- of a token, for further debugging info. */
-#ifdef YYPRINT
- YYPRINT (stderr, yychar, yylval);
-#endif
- fprintf (stderr, ")\n");
- }
-#endif
+ yytoken = YYTRANSLATE (yychar);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
- yyn += yychar1;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+ /* If the proper action on seeing token YYTOKEN is to reduce or to
+ detect an error, take that action. */
+ yyn += yytoken;
+ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
-
yyn = yytable[yyn];
-
- /* yyn is what to do for this token type in this state.
- Negative => reduce, -yyn is rule number.
- Positive => shift, yyn is new state.
- New state is final state => don't bother to shift,
- just return success.
- 0, or most negative number => error. */
-
- if (yyn < 0)
+ if (yyn <= 0)
{
- if (yyn == YYFLAG)
+ if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
- else if (yyn == 0)
- goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
- /* count tokens shifted since error; after three, turn off error status. */
- if (yyerrstatus) yyerrstatus--;
+
+ /* Count tokens shifted since error; after three, turn off error
+ status. */
+ if (yyerrstatus)
+ yyerrstatus--;
yystate = yyn;
goto yynewstate;
-/* Do the default action for the current state. */
-yydefault:
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state. |
+`-----------------------------------------------------------*/
+yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
+ goto yyreduce;
-/* Do a reduction. yyn is the number of a rule to reduce with. */
+
+/*-----------------------------.
+| yyreduce -- Do a reduction. |
+`-----------------------------*/
yyreduce:
+ /* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
- if (yylen > 0)
- yyval = yyvsp[1-yylen]; /* implement default value of the action */
-
-#if YYDEBUG != 0
- if (yydebug)
- {
- int i;
-
- fprintf (stderr, "Reducing via rule %d (line %d), ",
- yyn, yyrline[yyn]);
- /* Print the symbols being reduced, and their result. */
- for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
- fprintf (stderr, "%s ", yytname[yyrhs[i]]);
- fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
- }
-#endif
+ /* If YYLEN is nonzero, implement the default value of the action:
+ `$$ = $1'.
+ Otherwise, the following line sets YYVAL to garbage.
+ This behavior is undocumented and Bison
+ users should not rely upon it. Assigning to YYVAL
+ unconditionally makes the parser a bit smaller, and it avoids a
+ GCC warning that YYVAL may be used uninitialized. */
+ yyval = yyvsp[1-yylen];
- switch (yyn) {
-case 1:
-#line 143 "parse.y"
-{ /* add default rule */
+ YY_REDUCE_PRINT (yyn);
+ switch (yyn)
+ {
+ case 2:
+#line 119 "parse.y"
+ { /* add default rule */
int def_rule;
pat = cclinit();
@@ -939,82 +1428,103 @@ case 1:
add_action( "ECHO" );
add_action( ";\n\tYY_BREAK\n" );
- ;
- break;}
-case 2:
-#line 172 "parse.y"
-{ /* initialize for processing rules */
+ }
+ break;
+
+ case 3:
+#line 148 "parse.y"
+ { /* initialize for processing rules */
/* Create default DFA start condition. */
scinstal( "INITIAL", false );
- ;
- break;}
-case 6:
-#line 183 "parse.y"
-{ synerr( _("unknown error processing section 1") ); ;
- break;}
-case 7:
-#line 187 "parse.y"
-{
+ }
+ break;
+
+ case 7:
+#line 159 "parse.y"
+ { synerr( _("unknown error processing section 1") ); }
+ break;
+
+ case 8:
+#line 163 "parse.y"
+ {
check_options();
scon_stk = allocate_integer_array( lastsc + 1 );
scon_stk_ptr = 0;
- ;
- break;}
-case 8:
+ }
+ break;
+
+ case 9:
+#line 171 "parse.y"
+ { xcluflg = false; }
+ break;
+
+ case 10:
+#line 174 "parse.y"
+ { xcluflg = true; }
+ break;
+
+ case 11:
+#line 178 "parse.y"
+ { scinstal( nmstr, xcluflg ); }
+ break;
+
+ case 12:
+#line 181 "parse.y"
+ { scinstal( nmstr, xcluflg ); }
+ break;
+
+ case 13:
+#line 184 "parse.y"
+ { synerr( _("bad start condition list") ); }
+ break;
+
+ case 17:
#line 195 "parse.y"
-{ xcluflg = false; ;
- break;}
-case 9:
-#line 198 "parse.y"
-{ xcluflg = true; ;
- break;}
-case 10:
+ {
+ outfilename = copy_string( nmstr );
+ did_outfilename = 1;
+ }
+ break;
+
+ case 18:
+#line 200 "parse.y"
+ { extra_type = copy_string( nmstr ); }
+ break;
+
+ case 19:
#line 202 "parse.y"
-{ scinstal( nmstr, xcluflg ); ;
- break;}
-case 11:
-#line 205 "parse.y"
-{ scinstal( nmstr, xcluflg ); ;
- break;}
-case 12:
+ { prefix = copy_string( nmstr ); }
+ break;
+
+ case 20:
+#line 204 "parse.y"
+ { yyclass = copy_string( nmstr ); }
+ break;
+
+ case 21:
+#line 206 "parse.y"
+ { headerfilename = copy_string( nmstr ); }
+ break;
+
+ case 22:
#line 208 "parse.y"
-{ synerr( _("bad start condition list") ); ;
- break;}
-case 16:
+ { tablesext = true; tablesfilename = copy_string( nmstr ); }
+ break;
+
+ case 23:
+#line 212 "parse.y"
+ { scon_stk_ptr = (yyvsp[-3]); }
+ break;
+
+ case 24:
+#line 214 "parse.y"
+ { scon_stk_ptr = (yyvsp[-3]); }
+ break;
+
+ case 26:
#line 219 "parse.y"
-{
- outfilename = copy_string( nmstr );
- did_outfilename = 1;
- ;
- break;}
-case 17:
-#line 224 "parse.y"
-{ prefix = copy_string( nmstr ); ;
- break;}
-case 18:
-#line 226 "parse.y"
-{ yyclass = copy_string( nmstr ); ;
- break;}
-case 19:
-#line 228 "parse.y"
-{ headerfilename = copy_string( nmstr ); ;
- break;}
-case 20:
-#line 230 "parse.y"
-{ tablesext = true; tablesfilename = copy_string( nmstr ); ;
- break;}
-case 21:
-#line 234 "parse.y"
-{ scon_stk_ptr = yyvsp[-3]; ;
- break;}
-case 22:
-#line 236 "parse.y"
-{ scon_stk_ptr = yyvsp[-3]; ;
- break;}
-case 24:
-#line 241 "parse.y"
-{
+ {
/* Initialize for a parse of one rule. */
trlcontxt = variable_trail_rule = varlength = false;
trailcnt = headcnt = rulelen = 0;
@@ -1023,12 +1533,13 @@ case 24:
in_rule = true;
new_rule();
- ;
- break;}
-case 25:
-#line 254 "parse.y"
-{
- pat = yyvsp[0];
+ }
+ break;
+
+ case 27:
+#line 232 "parse.y"
+ {
+ pat = (yyvsp[0]);
finish_rule( pat, variable_trail_rule,
headcnt, trailcnt , previous_continued_action);
@@ -1060,12 +1571,13 @@ case 25:
pinpoint_message(
"'^' operator results in sub-optimal performance" );
}
- ;
- break;}
-case 26:
-#line 290 "parse.y"
-{
- pat = yyvsp[0];
+ }
+ break;
+
+ case 28:
+#line 268 "parse.y"
+ {
+ pat = (yyvsp[0]);
finish_rule( pat, variable_trail_rule,
headcnt, trailcnt , previous_continued_action);
@@ -1085,11 +1597,12 @@ case 26:
mkbranch( scset[i],
pat );
}
- ;
- break;}
-case 27:
-#line 314 "parse.y"
-{
+ }
+ break;
+
+ case 29:
+#line 292 "parse.y"
+ {
if ( scon_stk_ptr > 0 )
build_eof_action();
@@ -1109,24 +1622,28 @@ case 27:
else
build_eof_action();
}
- ;
- break;}
-case 28:
-#line 337 "parse.y"
-{ synerr( _("unrecognized rule") ); ;
- break;}
-case 29:
-#line 341 "parse.y"
-{ yyval = scon_stk_ptr; ;
- break;}
-case 30:
-#line 345 "parse.y"
-{ yyval = yyvsp[-2]; ;
- break;}
-case 31:
-#line 348 "parse.y"
-{
- yyval = scon_stk_ptr;
+ }
+ break;
+
+ case 30:
+#line 315 "parse.y"
+ { synerr( _("unrecognized rule") ); }
+ break;
+
+ case 31:
+#line 319 "parse.y"
+ { (yyval) = scon_stk_ptr; }
+ break;
+
+ case 32:
+#line 323 "parse.y"
+ { (yyval) = (yyvsp[-2]); }
+ break;
+
+ case 33:
+#line 326 "parse.y"
+ {
+ (yyval) = scon_stk_ptr;
for ( i = 1; i <= lastsc; ++i )
{
@@ -1139,19 +1656,22 @@ case 31:
if ( j > scon_stk_ptr )
scon_stk[++scon_stk_ptr] = i;
}
- ;
- break;}
-case 32:
-#line 365 "parse.y"
-{ yyval = scon_stk_ptr; ;
- break;}
-case 35:
-#line 373 "parse.y"
-{ synerr( _("bad start condition list") ); ;
- break;}
-case 36:
-#line 377 "parse.y"
-{
+ }
+ break;
+
+ case 34:
+#line 343 "parse.y"
+ { (yyval) = scon_stk_ptr; }
+ break;
+
+ case 37:
+#line 351 "parse.y"
+ { synerr( _("bad start condition list") ); }
+ break;
+
+ case 38:
+#line 355 "parse.y"
+ {
if ( (scnum = sclookup( nmstr )) == 0 )
format_pinpoint_message(
"undeclared start condition %s",
@@ -1170,20 +1690,21 @@ case 36:
if ( i > scon_stk_ptr )
scon_stk[++scon_stk_ptr] = scnum;
}
- ;
- break;}
-case 37:
-#line 400 "parse.y"
-{
- if ( transchar[lastst[yyvsp[0]]] != SYM_EPSILON )
+ }
+ break;
+
+ case 39:
+#line 378 "parse.y"
+ {
+ if ( transchar[lastst[(yyvsp[0])]] != SYM_EPSILON )
/* Provide final transition \now/ so it
* will be marked as a trailing context
* state.
*/
- yyvsp[0] = link_machines( yyvsp[0],
+ (yyvsp[0]) = link_machines( (yyvsp[0]),
mkstate( SYM_EPSILON ) );
- mark_beginning_as_normal( yyvsp[0] );
+ mark_beginning_as_normal( (yyvsp[0]) );
current_state_type = STATE_NORMAL;
if ( previous_continued_action )
@@ -1218,7 +1739,7 @@ case 37:
* trail rule, and add_accept() can create
* a new state ...
*/
- add_accept( yyvsp[-1],
+ add_accept( (yyvsp[-1]),
num_rules | YY_TRAILING_HEAD_MASK );
variable_trail_rule = true;
}
@@ -1226,16 +1747,18 @@ case 37:
else
trailcnt = rulelen;
- yyval = link_machines( yyvsp[-1], yyvsp[0] );
- ;
- break;}
-case 38:
-#line 456 "parse.y"
-{ synerr( _("trailing context used twice") ); ;
- break;}
-case 39:
-#line 459 "parse.y"
-{
+ (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) );
+ }
+ break;
+
+ case 40:
+#line 434 "parse.y"
+ { synerr( _("trailing context used twice") ); }
+ break;
+
+ case 41:
+#line 437 "parse.y"
+ {
headcnt = 0;
trailcnt = 1;
rulelen = 1;
@@ -1246,7 +1769,7 @@ case 39:
if ( trlcontxt )
{
synerr( _("trailing context used twice") );
- yyval = mkstate( SYM_EPSILON );
+ (yyval) = mkstate( SYM_EPSILON );
}
else if ( previous_continued_action )
@@ -1265,7 +1788,7 @@ case 39:
/* Again, see the comment in the rule for
* "re2 re" above.
*/
- add_accept( yyvsp[-1],
+ add_accept( (yyvsp[-1]),
num_rules | YY_TRAILING_HEAD_MASK );
variable_trail_rule = true;
}
@@ -1273,14 +1796,15 @@ case 39:
trlcontxt = true;
eps = mkstate( SYM_EPSILON );
- yyval = link_machines( yyvsp[-1],
+ (yyval) = link_machines( (yyvsp[-1]),
link_machines( eps, mkstate( '\n' ) ) );
- ;
- break;}
-case 40:
-#line 502 "parse.y"
-{
- yyval = yyvsp[0];
+ }
+ break;
+
+ case 42:
+#line 480 "parse.y"
+ {
+ (yyval) = (yyvsp[0]);
if ( trlcontxt )
{
@@ -1292,22 +1816,25 @@ case 40:
else
trailcnt = rulelen;
}
- ;
- break;}
-case 41:
-#line 520 "parse.y"
-{
+ }
+ break;
+
+ case 43:
+#line 498 "parse.y"
+ {
varlength = true;
- yyval = mkor( yyvsp[-2], yyvsp[0] );
- ;
- break;}
-case 42:
-#line 526 "parse.y"
-{ yyval = yyvsp[0]; ;
- break;}
-case 43:
-#line 531 "parse.y"
-{
+ (yyval) = mkor( (yyvsp[-2]), (yyvsp[0]) );
+ }
+ break;
+
+ case 44:
+#line 504 "parse.y"
+ { (yyval) = (yyvsp[0]); }
+ break;
+
+ case 45:
+#line 509 "parse.y"
+ {
/* This rule is written separately so the
* reduction will occur before the trailing
* series is parsed.
@@ -1329,639 +1856,838 @@ case 43:
rulelen = 0;
current_state_type = STATE_TRAILING_CONTEXT;
- yyval = yyvsp[-1];
- ;
- break;}
-case 44:
-#line 558 "parse.y"
-{
+ (yyval) = (yyvsp[-1]);
+ }
+ break;
+
+ case 46:
+#line 536 "parse.y"
+ {
/* This is where concatenation of adjacent patterns
* gets done.
*/
- yyval = link_machines( yyvsp[-1], yyvsp[0] );
- ;
- break;}
-case 45:
-#line 566 "parse.y"
-{ yyval = yyvsp[0]; ;
- break;}
-case 46:
-#line 569 "parse.y"
-{
+ (yyval) = link_machines( (yyvsp[-1]), (yyvsp[0]) );
+ }
+ break;
+
+ case 47:
+#line 544 "parse.y"
+ { (yyval) = (yyvsp[0]); }
+ break;
+
+ case 48:
+#line 547 "parse.y"
+ {
varlength = true;
- if ( yyvsp[-3] > yyvsp[-1] || yyvsp[-3] < 0 )
+ if ( (yyvsp[-3]) > (yyvsp[-1]) || (yyvsp[-3]) < 0 )
{
synerr( _("bad iteration values") );
- yyval = yyvsp[-5];
+ (yyval) = (yyvsp[-5]);
}
else
{
- if ( yyvsp[-3] == 0 )
+ if ( (yyvsp[-3]) == 0 )
{
- if ( yyvsp[-1] <= 0 )
+ if ( (yyvsp[-1]) <= 0 )
{
synerr(
_("bad iteration values") );
- yyval = yyvsp[-5];
+ (yyval) = (yyvsp[-5]);
}
else
- yyval = mkopt(
- mkrep( yyvsp[-5], 1, yyvsp[-1] ) );
+ (yyval) = mkopt(
+ mkrep( (yyvsp[-5]), 1, (yyvsp[-1]) ) );
}
else
- yyval = mkrep( yyvsp[-5], yyvsp[-3], yyvsp[-1] );
+ (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) );
}
- ;
- break;}
-case 47:
-#line 597 "parse.y"
-{
+ }
+ break;
+
+ case 49:
+#line 575 "parse.y"
+ {
varlength = true;
- if ( yyvsp[-2] <= 0 )
+ if ( (yyvsp[-2]) <= 0 )
{
synerr( _("iteration value must be positive") );
- yyval = yyvsp[-4];
+ (yyval) = (yyvsp[-4]);
}
else
- yyval = mkrep( yyvsp[-4], yyvsp[-2], INFINITE_REPEAT );
- ;
- break;}
-case 48:
-#line 611 "parse.y"
-{
+ (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT );
+ }
+ break;
+
+ case 50:
+#line 589 "parse.y"
+ {
/* The series could be something like "(foo)",
* in which case we have no idea what its length
* is, so we punt here.
*/
varlength = true;
- if ( yyvsp[-1] <= 0 )
+ if ( (yyvsp[-1]) <= 0 )
{
synerr( _("iteration value must be positive")
);
- yyval = yyvsp[-3];
+ (yyval) = (yyvsp[-3]);
}
else
- yyval = link_machines( yyvsp[-3],
- copysingl( yyvsp[-3], yyvsp[-1] - 1 ) );
- ;
- break;}
-case 49:
-#line 633 "parse.y"
-{
+ (yyval) = link_machines( (yyvsp[-3]),
+ copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) );
+ }
+ break;
+
+ case 51:
+#line 611 "parse.y"
+ {
varlength = true;
- yyval = mkclos( yyvsp[-1] );
- ;
- break;}
-case 50:
-#line 640 "parse.y"
-{
+ (yyval) = mkclos( (yyvsp[-1]) );
+ }
+ break;
+
+ case 52:
+#line 618 "parse.y"
+ {
varlength = true;
- yyval = mkposcl( yyvsp[-1] );
- ;
- break;}
-case 51:
-#line 646 "parse.y"
-{
+ (yyval) = mkposcl( (yyvsp[-1]) );
+ }
+ break;
+
+ case 53:
+#line 624 "parse.y"
+ {
varlength = true;
- yyval = mkopt( yyvsp[-1] );
- ;
- break;}
-case 52:
-#line 652 "parse.y"
-{
+ (yyval) = mkopt( (yyvsp[-1]) );
+ }
+ break;
+
+ case 54:
+#line 630 "parse.y"
+ {
varlength = true;
- if ( yyvsp[-3] > yyvsp[-1] || yyvsp[-3] < 0 )
+ if ( (yyvsp[-3]) > (yyvsp[-1]) || (yyvsp[-3]) < 0 )
{
synerr( _("bad iteration values") );
- yyval = yyvsp[-5];
+ (yyval) = (yyvsp[-5]);
}
else
{
- if ( yyvsp[-3] == 0 )
+ if ( (yyvsp[-3]) == 0 )
{
- if ( yyvsp[-1] <= 0 )
+ if ( (yyvsp[-1]) <= 0 )
{
synerr(
_("bad iteration values") );
- yyval = yyvsp[-5];
+ (yyval) = (yyvsp[-5]);
}
else
- yyval = mkopt(
- mkrep( yyvsp[-5], 1, yyvsp[-1] ) );
+ (yyval) = mkopt(
+ mkrep( (yyvsp[-5]), 1, (yyvsp[-1]) ) );
}
else
- yyval = mkrep( yyvsp[-5], yyvsp[-3], yyvsp[-1] );
+ (yyval) = mkrep( (yyvsp[-5]), (yyvsp[-3]), (yyvsp[-1]) );
}
- ;
- break;}
-case 53:
-#line 680 "parse.y"
-{
+ }
+ break;
+
+ case 55:
+#line 658 "parse.y"
+ {
varlength = true;
- if ( yyvsp[-2] <= 0 )
+ if ( (yyvsp[-2]) <= 0 )
{
synerr( _("iteration value must be positive") );
- yyval = yyvsp[-4];
+ (yyval) = (yyvsp[-4]);
}
else
- yyval = mkrep( yyvsp[-4], yyvsp[-2], INFINITE_REPEAT );
- ;
- break;}
-case 54:
-#line 694 "parse.y"
-{
+ (yyval) = mkrep( (yyvsp[-4]), (yyvsp[-2]), INFINITE_REPEAT );
+ }
+ break;
+
+ case 56:
+#line 672 "parse.y"
+ {
/* The singleton could be something like "(foo)",
* in which case we have no idea what its length
* is, so we punt here.
*/
varlength = true;
- if ( yyvsp[-1] <= 0 )
+ if ( (yyvsp[-1]) <= 0 )
{
synerr( _("iteration value must be positive") );
- yyval = yyvsp[-3];
+ (yyval) = (yyvsp[-3]);
}
else
- yyval = link_machines( yyvsp[-3],
- copysingl( yyvsp[-3], yyvsp[-1] - 1 ) );
- ;
- break;}
-case 55:
-#line 713 "parse.y"
-{
+ (yyval) = link_machines( (yyvsp[-3]),
+ copysingl( (yyvsp[-3]), (yyvsp[-1]) - 1 ) );
+ }
+ break;
+
+ case 57:
+#line 691 "parse.y"
+ {
if ( ! madeany )
{
/* Create the '.' character class. */
- anyccl = cclinit();
- ccladd( anyccl, '\n' );
- cclnegate( anyccl );
+ ccldot = cclinit();
+ ccladd( ccldot, '\n' );
+ cclnegate( ccldot );
+
+ if ( useecs )
+ mkeccl( ccltbl + cclmap[ccldot],
+ ccllen[ccldot], nextecm,
+ ecgroup, csize, csize );
+
+ /* Create the (?s:'.') character class. */
+ cclany = cclinit();
+ cclnegate( cclany );
- if ( useecs )
- mkeccl( ccltbl + cclmap[anyccl],
- ccllen[anyccl], nextecm,
- ecgroup, csize, csize );
+ if ( useecs )
+ mkeccl( ccltbl + cclmap[cclany],
+ ccllen[cclany], nextecm,
+ ecgroup, csize, csize );
madeany = true;
}
++rulelen;
- yyval = mkstate( -anyccl );
- ;
- break;}
-case 56:
-#line 735 "parse.y"
-{
- if ( ! cclsorted )
+ if (sf_dot_all())
+ (yyval) = mkstate( -cclany );
+ else
+ (yyval) = mkstate( -ccldot );
+ }
+ break;
+
+ case 58:
+#line 725 "parse.y"
+ {
/* Sort characters for fast searching. We
* use a shell sort since this list could
* be large.
*/
- cshell( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]], true );
+ cshell( ccltbl + cclmap[(yyvsp[0])], ccllen[(yyvsp[0])], true );
if ( useecs )
- mkeccl( ccltbl + cclmap[yyvsp[0]], ccllen[yyvsp[0]],
+ mkeccl( ccltbl + cclmap[(yyvsp[0])], ccllen[(yyvsp[0])],
nextecm, ecgroup, csize, csize );
++rulelen;
- if (ccl_has_nl[yyvsp[0]])
+ if (ccl_has_nl[(yyvsp[0])])
rule_has_nl[num_rules] = true;
- yyval = mkstate( -yyvsp[0] );
- ;
- break;}
-case 57:
-#line 756 "parse.y"
-{
+ (yyval) = mkstate( -(yyvsp[0]) );
+ }
+ break;
+
+ case 59:
+#line 745 "parse.y"
+ {
++rulelen;
- if (ccl_has_nl[yyvsp[0]])
+ if (ccl_has_nl[(yyvsp[0])])
rule_has_nl[num_rules] = true;
- yyval = mkstate( -yyvsp[0] );
- ;
- break;}
-case 58:
-#line 766 "parse.y"
-{ yyval = yyvsp[-1]; ;
- break;}
-case 59:
-#line 769 "parse.y"
-{ yyval = yyvsp[-1]; ;
- break;}
-case 60:
-#line 772 "parse.y"
-{
- ++rulelen;
+ (yyval) = mkstate( -(yyvsp[0]) );
+ }
+ break;
+
+ case 60:
+#line 755 "parse.y"
+ { (yyval) = (yyvsp[-1]); }
+ break;
- if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
- yyvsp[0] = clower( yyvsp[0] );
+ case 61:
+#line 758 "parse.y"
+ { (yyval) = (yyvsp[-1]); }
+ break;
- if (yyvsp[0] == nlch)
+ case 62:
+#line 761 "parse.y"
+ {
+ ++rulelen;
+
+ if ((yyvsp[0]) == nlch)
rule_has_nl[num_rules] = true;
- yyval = mkstate( yyvsp[0] );
- ;
- break;}
-case 61:
-#line 786 "parse.y"
-{ yyval = yyvsp[-1]; ;
- break;}
-case 62:
-#line 789 "parse.y"
-{
- cclnegate( yyvsp[-1] );
- yyval = yyvsp[-1];
- ;
- break;}
-case 63:
-#line 796 "parse.y"
-{
+ if (sf_case_ins() && has_case((yyvsp[0])))
+ /* create an alternation, as in (a|A) */
+ (yyval) = mkor (mkstate((yyvsp[0])), mkstate(reverse_case((yyvsp[0]))));
+ else
+ (yyval) = mkstate( (yyvsp[0]) );
+ }
+ break;
- if (caseins)
+ case 63:
+#line 775 "parse.y"
+ { (yyval) = ccl_set_diff ((yyvsp[-2]), (yyvsp[0])); }
+ break;
+
+ case 64:
+#line 776 "parse.y"
+ { (yyval) = ccl_set_union ((yyvsp[-2]), (yyvsp[0])); }
+ break;
+
+ case 66:
+#line 782 "parse.y"
+ { (yyval) = (yyvsp[-1]); }
+ break;
+
+ case 67:
+#line 785 "parse.y"
+ {
+ cclnegate( (yyvsp[-1]) );
+ (yyval) = (yyvsp[-1]);
+ }
+ break;
+
+ case 68:
+#line 792 "parse.y"
+ {
+
+ if (sf_case_ins())
{
- /* Squish the character range to lowercase only if BOTH
- * ends of the range are uppercase.
- */
- if (isupper (yyvsp[-2]) && isupper (yyvsp[0]))
- {
- yyvsp[-2] = tolower (yyvsp[-2]);
- yyvsp[0] = tolower (yyvsp[0]);
- }
/* If one end of the range has case and the other
* does not, or the cases are different, then we're not
* sure what range the user is trying to express.
* Examples: [@-z] or [S-t]
*/
- else if (has_case (yyvsp[-2]) != has_case (yyvsp[0])
- || (has_case (yyvsp[-2]) && (b_islower (yyvsp[-2]) != b_islower (yyvsp[0]))))
+ if (has_case ((yyvsp[-2])) != has_case ((yyvsp[0]))
+ || (has_case ((yyvsp[-2])) && (b_islower ((yyvsp[-2])) != b_islower ((yyvsp[0]))))
+ || (has_case ((yyvsp[-2])) && (b_isupper ((yyvsp[-2])) != b_isupper ((yyvsp[0])))))
format_warn3 (
_("the character range [%c-%c] is ambiguous in a case-insensitive scanner"),
- yyvsp[-2], yyvsp[0]);
+ (yyvsp[-2]), (yyvsp[0]));
/* If the range spans uppercase characters but not
* lowercase (or vice-versa), then should we automatically
* include lowercase characters in the range?
* Example: [@-_] spans [a-z] but not [A-Z]
*/
- else if (!has_case (yyvsp[-2]) && !has_case (yyvsp[0]) && !range_covers_case (yyvsp[-2], yyvsp[0]))
+ else if (!has_case ((yyvsp[-2])) && !has_case ((yyvsp[0])) && !range_covers_case ((yyvsp[-2]), (yyvsp[0])))
format_warn3 (
_("the character range [%c-%c] is ambiguous in a case-insensitive scanner"),
- yyvsp[-2], yyvsp[0]);
+ (yyvsp[-2]), (yyvsp[0]));
}
- if ( yyvsp[-2] > yyvsp[0] )
+ if ( (yyvsp[-2]) > (yyvsp[0]) )
synerr( _("negative range in character class") );
else
{
- for ( i = yyvsp[-2]; i <= yyvsp[0]; ++i )
- ccladd( yyvsp[-3], i );
+ for ( i = (yyvsp[-2]); i <= (yyvsp[0]); ++i )
+ ccladd( (yyvsp[-3]), i );
/* Keep track if this ccl is staying in
* alphabetical order.
*/
- cclsorted = cclsorted && (yyvsp[-2] > lastchar);
- lastchar = yyvsp[0];
+ cclsorted = cclsorted && ((yyvsp[-2]) > lastchar);
+ lastchar = (yyvsp[0]);
+
+ /* Do it again for upper/lowercase */
+ if (sf_case_ins() && has_case((yyvsp[-2])) && has_case((yyvsp[0]))){
+ (yyvsp[-2]) = reverse_case ((yyvsp[-2]));
+ (yyvsp[0]) = reverse_case ((yyvsp[0]));
+
+ for ( i = (yyvsp[-2]); i <= (yyvsp[0]); ++i )
+ ccladd( (yyvsp[-3]), i );
+
+ cclsorted = cclsorted && ((yyvsp[-2]) > lastchar);
+ lastchar = (yyvsp[0]);
+ }
+
}
- yyval = yyvsp[-3];
- ;
- break;}
-case 64:
-#line 850 "parse.y"
-{
- if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
- yyvsp[0] = clower( yyvsp[0] );
-
- ccladd( yyvsp[-1], yyvsp[0] );
- cclsorted = cclsorted && (yyvsp[0] > lastchar);
- lastchar = yyvsp[0];
- yyval = yyvsp[-1];
- ;
- break;}
-case 65:
-#line 861 "parse.y"
-{
+ (yyval) = (yyvsp[-3]);
+ }
+ break;
+
+ case 69:
+#line 852 "parse.y"
+ {
+ ccladd( (yyvsp[-1]), (yyvsp[0]) );
+ cclsorted = cclsorted && ((yyvsp[0]) > lastchar);
+ lastchar = (yyvsp[0]);
+
+ /* Do it again for upper/lowercase */
+ if (sf_case_ins() && has_case((yyvsp[0]))){
+ (yyvsp[-1]) = reverse_case ((yyvsp[0]));
+ ccladd ((yyvsp[-1]), reverse_case ((yyvsp[0])));
+
+ cclsorted = cclsorted && ((yyvsp[0]) > lastchar);
+ lastchar = (yyvsp[0]);
+ }
+
+ (yyval) = (yyvsp[-1]);
+ }
+ break;
+
+ case 70:
+#line 870 "parse.y"
+ {
/* Too hard to properly maintain cclsorted. */
cclsorted = false;
- yyval = yyvsp[-1];
- ;
- break;}
-case 66:
-#line 868 "parse.y"
-{
+ (yyval) = (yyvsp[-1]);
+ }
+ break;
+
+ case 71:
+#line 877 "parse.y"
+ {
cclsorted = true;
lastchar = 0;
- currccl = yyval = cclinit();
- ;
- break;}
-case 67:
-#line 875 "parse.y"
-{ CCL_EXPR(isalnum); ;
- break;}
-case 68:
-#line 876 "parse.y"
-{ CCL_EXPR(isalpha); ;
- break;}
-case 69:
-#line 877 "parse.y"
-{ CCL_EXPR(IS_BLANK); ;
- break;}
-case 70:
-#line 878 "parse.y"
-{ CCL_EXPR(iscntrl); ;
- break;}
-case 71:
-#line 879 "parse.y"
-{ CCL_EXPR(isdigit); ;
- break;}
-case 72:
-#line 880 "parse.y"
-{ CCL_EXPR(isgraph); ;
- break;}
-case 73:
-#line 881 "parse.y"
-{ CCL_EXPR(islower); ;
- break;}
-case 74:
-#line 882 "parse.y"
-{ CCL_EXPR(isprint); ;
- break;}
-case 75:
-#line 883 "parse.y"
-{ CCL_EXPR(ispunct); ;
- break;}
-case 76:
-#line 884 "parse.y"
-{ CCL_EXPR(isspace); ;
- break;}
-case 77:
+ currccl = (yyval) = cclinit();
+ }
+ break;
+
+ case 72:
#line 885 "parse.y"
-{
- if ( caseins )
- CCL_EXPR(islower);
- else
- CCL_EXPR(isupper);
- ;
- break;}
-case 78:
+ { CCL_EXPR(isalnum); }
+ break;
+
+ case 73:
+#line 886 "parse.y"
+ { CCL_EXPR(isalpha); }
+ break;
+
+ case 74:
+#line 887 "parse.y"
+ { CCL_EXPR(IS_BLANK); }
+ break;
+
+ case 75:
+#line 888 "parse.y"
+ { CCL_EXPR(iscntrl); }
+ break;
+
+ case 76:
+#line 889 "parse.y"
+ { CCL_EXPR(isdigit); }
+ break;
+
+ case 77:
+#line 890 "parse.y"
+ { CCL_EXPR(isgraph); }
+ break;
+
+ case 78:
#line 891 "parse.y"
-{ CCL_EXPR(isxdigit); ;
- break;}
-case 79:
-#line 895 "parse.y"
-{
- if ( caseins && yyvsp[0] >= 'A' && yyvsp[0] <= 'Z' )
- yyvsp[0] = clower( yyvsp[0] );
+ {
+ CCL_EXPR(islower);
+ if (sf_case_ins())
+ CCL_EXPR(isupper);
+ }
+ break;
+
+ case 79:
+#line 896 "parse.y"
+ { CCL_EXPR(isprint); }
+ break;
+
+ case 80:
+#line 897 "parse.y"
+ { CCL_EXPR(ispunct); }
+ break;
+
+ case 81:
+#line 898 "parse.y"
+ { CCL_EXPR(isspace); }
+ break;
+
+ case 82:
+#line 899 "parse.y"
+ { CCL_EXPR(isxdigit); }
+ break;
+
+ case 83:
+#line 900 "parse.y"
+ {
+ CCL_EXPR(isupper);
+ if (sf_case_ins())
+ CCL_EXPR(islower);
+ }
+ break;
- if ( yyvsp[0] == nlch )
+ case 84:
+#line 906 "parse.y"
+ { CCL_NEG_EXPR(isalnum); }
+ break;
+
+ case 85:
+#line 907 "parse.y"
+ { CCL_NEG_EXPR(isalpha); }
+ break;
+
+ case 86:
+#line 908 "parse.y"
+ { CCL_NEG_EXPR(IS_BLANK); }
+ break;
+
+ case 87:
+#line 909 "parse.y"
+ { CCL_NEG_EXPR(iscntrl); }
+ break;
+
+ case 88:
+#line 910 "parse.y"
+ { CCL_NEG_EXPR(isdigit); }
+ break;
+
+ case 89:
+#line 911 "parse.y"
+ { CCL_NEG_EXPR(isgraph); }
+ break;
+
+ case 90:
+#line 912 "parse.y"
+ { CCL_NEG_EXPR(isprint); }
+ break;
+
+ case 91:
+#line 913 "parse.y"
+ { CCL_NEG_EXPR(ispunct); }
+ break;
+
+ case 92:
+#line 914 "parse.y"
+ { CCL_NEG_EXPR(isspace); }
+ break;
+
+ case 93:
+#line 915 "parse.y"
+ { CCL_NEG_EXPR(isxdigit); }
+ break;
+
+ case 94:
+#line 916 "parse.y"
+ {
+ if ( sf_case_ins() )
+ warn(_("[:^lower:] is ambiguous in case insensitive scanner"));
+ else
+ CCL_NEG_EXPR(islower);
+ }
+ break;
+
+ case 95:
+#line 922 "parse.y"
+ {
+ if ( sf_case_ins() )
+ warn(_("[:^upper:] ambiguous in case insensitive scanner"));
+ else
+ CCL_NEG_EXPR(isupper);
+ }
+ break;
+
+ case 96:
+#line 931 "parse.y"
+ {
+ if ( (yyvsp[0]) == nlch )
rule_has_nl[num_rules] = true;
++rulelen;
- yyval = link_machines( yyvsp[-1], mkstate( yyvsp[0] ) );
- ;
- break;}
-case 80:
-#line 908 "parse.y"
-{ yyval = mkstate( SYM_EPSILON ); ;
- break;}
-}
- /* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/lib/bison.simple"
+ if (sf_case_ins() && has_case((yyvsp[0])))
+ (yyval) = mkor (mkstate((yyvsp[0])), mkstate(reverse_case((yyvsp[0]))));
+ else
+ (yyval) = mkstate ((yyvsp[0]));
+
+ (yyval) = link_machines( (yyvsp[-1]), (yyval));
+ }
+ break;
+
+ case 97:
+#line 946 "parse.y"
+ { (yyval) = mkstate( SYM_EPSILON ); }
+ break;
+
+
+ default: break;
+ }
+
+/* Line 1126 of yacc.c. */
+#line 2423 "parse.c"
yyvsp -= yylen;
yyssp -= yylen;
-#ifdef YYLSP_NEEDED
- yylsp -= yylen;
-#endif
-#if YYDEBUG != 0
- if (yydebug)
- {
- short *ssp1 = yyss - 1;
- fprintf (stderr, "state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
-#endif
+
+ YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
-#ifdef YYLSP_NEEDED
- yylsp++;
- if (yylen == 0)
- {
- yylsp->first_line = yylloc.first_line;
- yylsp->first_column = yylloc.first_column;
- yylsp->last_line = (yylsp-1)->last_line;
- yylsp->last_column = (yylsp-1)->last_column;
- yylsp->text = 0;
- }
- else
- {
- yylsp->last_line = (yylsp+yylen-1)->last_line;
- yylsp->last_column = (yylsp+yylen-1)->last_column;
- }
-#endif
- /* Now "shift" the result of the reduction.
- Determine what state that goes to,
- based on the state we popped back to
- and the rule number reduced by. */
+ /* Now `shift' the result of the reduction. Determine what state
+ that goes to, based on the state we popped back to and the rule
+ number reduced by. */
yyn = yyr1[yyn];
- yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
- if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
- yystate = yydefgoto[yyn - YYNTBASE];
+ yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
-yyerrlab: /* here on detecting error */
- if (! yyerrstatus)
- /* If not already recovering from an error, report this error. */
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+ /* If not already recovering from an error, report this error. */
+ if (!yyerrstatus)
{
++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
yyn = yypact[yystate];
- if (yyn > YYFLAG && yyn < YYLAST)
+ if (YYPACT_NINF < yyn && yyn < YYLAST)
{
- int size = 0;
- char *msg;
- int x, count;
-
- count = 0;
- /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
- if (msg != 0)
- {
- strcpy(msg, "parse error");
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ char *yymsg = 0;
+# define YYERROR_VERBOSE_ARGS_MAXIMUM 5
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
- if (count < 5)
+#if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+#endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= yysize1 < yysize;
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= yysize1 < yysize;
+ yysize = yysize1;
+
+ if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
+ yymsg = (char *) YYSTACK_ALLOC (yysize);
+ if (yymsg)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yymsg;
+ int yyi = 0;
+ while ((*yyp = *yyf))
{
- count = 0;
- for (x = (yyn < 0 ? -yyn : 0);
- x < (sizeof(yytname) / sizeof(char *)); x++)
- if (yycheck[x + yyn] == x)
- {
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
- count++;
- }
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
}
- yyerror(msg);
- free(msg);
+ yyerror (yymsg);
+ YYSTACK_FREE (yymsg);
}
else
- yyerror ("parse error; also virtual memory exceeded");
+ {
+ yyerror (YY_("syntax error"));
+ goto yyexhaustedlab;
+ }
}
else
#endif /* YYERROR_VERBOSE */
- yyerror("parse error");
+ yyerror (YY_("syntax error"));
}
- goto yyerrlab1;
-yyerrlab1: /* here on error raised explicitly by an action */
+
if (yyerrstatus == 3)
{
- /* if just tried and failed to reuse lookahead token after an error, discard it. */
-
- /* return failure if at end of input */
- if (yychar == YYEOF)
- YYABORT;
-
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
- yychar = YYEMPTY;
+ /* If just tried and failed to reuse look-ahead token after an
+ error, discard it. */
+
+ if (yychar <= YYEOF)
+ {
+ /* Return failure if at end of input. */
+ if (yychar == YYEOF)
+ YYABORT;
+ }
+ else
+ {
+ yydestruct ("Error: discarding", yytoken, &yylval);
+ yychar = YYEMPTY;
+ }
}
- /* Else will try to reuse lookahead token
- after shifting the error token. */
+ /* Else will try to reuse look-ahead token after shifting the error
+ token. */
+ goto yyerrlab1;
- yyerrstatus = 3; /* Each real token shifted decrements this */
- goto yyerrhandle;
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR. |
+`---------------------------------------------------*/
+yyerrorlab:
-yyerrdefault: /* current state does not do anything special for the error token. */
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (0)
+ goto yyerrorlab;
-#if 0
- /* This is wrong; only states that explicitly want error tokens
- should shift them. */
- yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
- if (yyn) goto yydefault;
-#endif
+yyvsp -= yylen;
+ yyssp -= yylen;
+ yystate = *yyssp;
+ goto yyerrlab1;
-yyerrpop: /* pop the current state because it cannot handle the error token */
- if (yyssp == yyss) YYABORT;
- yyvsp--;
- yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
- yylsp--;
-#endif
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR. |
+`-------------------------------------------------------------*/
+yyerrlab1:
+ yyerrstatus = 3; /* Each real token shifted decrements this. */
-#if YYDEBUG != 0
- if (yydebug)
+ for (;;)
{
- short *ssp1 = yyss - 1;
- fprintf (stderr, "Error: state stack now");
- while (ssp1 != yyssp)
- fprintf (stderr, " %d", *++ssp1);
- fprintf (stderr, "\n");
- }
-#endif
-
-yyerrhandle:
+ yyn = yypact[yystate];
+ if (yyn != YYPACT_NINF)
+ {
+ yyn += YYTERROR;
+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+ {
+ yyn = yytable[yyn];
+ if (0 < yyn)
+ break;
+ }
+ }
- yyn = yypact[yystate];
- if (yyn == YYFLAG)
- goto yyerrdefault;
+ /* Pop the current state because it cannot handle the error token. */
+ if (yyssp == yyss)
+ YYABORT;
- yyn += YYTERROR;
- if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
- goto yyerrdefault;
- yyn = yytable[yyn];
- if (yyn < 0)
- {
- if (yyn == YYFLAG)
- goto yyerrpop;
- yyn = -yyn;
- goto yyreduce;
+ yydestruct ("Error: popping", yystos[yystate], yyvsp);
+ YYPOPSTACK;
+ yystate = *yyssp;
+ YY_STACK_PRINT (yyss, yyssp);
}
- else if (yyn == 0)
- goto yyerrpop;
if (yyn == YYFINAL)
YYACCEPT;
-#if YYDEBUG != 0
- if (yydebug)
- fprintf(stderr, "Shifting error token, ");
-#endif
-
*++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
- *++yylsp = yylloc;
-#endif
+
+
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
- yyacceptlab:
- /* YYACCEPT comes here. */
- if (yyfree_stacks)
- {
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
+
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here. |
+`-------------------------------------*/
+yyacceptlab:
+ yyresult = 0;
+ goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here. |
+`-----------------------------------*/
+yyabortlab:
+ yyresult = 1;
+ goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
+ yyresult = 2;
+ /* Fall through. */
#endif
- }
- return 0;
- yyabortlab:
- /* YYABORT comes here. */
- if (yyfree_stacks)
+yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ while (yyssp != yyss)
{
- free (yyss);
- free (yyvs);
-#ifdef YYLSP_NEEDED
- free (yyls);
-#endif
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK;
}
- return 1;
+#ifndef yyoverflow
+ if (yyss != yyssa)
+ YYSTACK_FREE (yyss);
+#endif
+ return yyresult;
}
-#line 911 "parse.y"
+
+
+#line 949 "parse.y"
@@ -1984,7 +2710,7 @@ void build_eof_action()
else
{
sceof[scon_stk[i]] = true;
- sprintf( action_text, "case YY_STATE_EOF(%s):\n",
+ snprintf( action_text, sizeof(action_text), "case YY_STATE_EOF(%s):\n",
scname[scon_stk[i]] );
add_action( action_text );
}
@@ -2009,7 +2735,7 @@ const char *msg, arg[];
{
char errmsg[MAXLINE];
- (void) sprintf( errmsg, msg, arg );
+ (void) snprintf( errmsg, sizeof(errmsg), msg, arg );
synerr( errmsg );
}
@@ -2031,7 +2757,7 @@ const char *msg, arg[];
{
char warn_msg[MAXLINE];
- (void) sprintf( warn_msg, msg, arg );
+ snprintf( warn_msg, sizeof(warn_msg), msg, arg );
warn( warn_msg );
}
@@ -2053,7 +2779,7 @@ const char *msg, arg[];
{
char errmsg[MAXLINE];
- (void) sprintf( errmsg, msg, arg );
+ snprintf( errmsg, sizeof(errmsg), msg, arg );
pinpoint_message( errmsg );
}
@@ -2077,7 +2803,7 @@ int line;
if ( ! nowarn )
{
- sprintf( warning, "warning, %s", str );
+ snprintf( warning, sizeof(warning), "warning, %s", str );
line_pinpoint( warning, line );
}
}
@@ -2101,3 +2827,4 @@ void yyerror( msg )
const char *msg;
{
}
+
diff --git a/parse.h b/parse.h
index 8fbb802..393c0eb 100644
--- a/parse.h
+++ b/parse.h
@@ -1,36 +1,139 @@
-#ifndef YYSTYPE
-#define YYSTYPE int
+/* A Bison parser, made by GNU Bison 2.1. */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* Tokens. */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+ /* Put the tokens into the symbol table, so that GDB and other debuggers
+ know about them. */
+ enum yytokentype {
+ CHAR = 258,
+ NUMBER = 259,
+ SECTEND = 260,
+ SCDECL = 261,
+ XSCDECL = 262,
+ NAME = 263,
+ PREVCCL = 264,
+ EOF_OP = 265,
+ OPTION_OP = 266,
+ OPT_OUTFILE = 267,
+ OPT_PREFIX = 268,
+ OPT_YYCLASS = 269,
+ OPT_HEADER = 270,
+ OPT_EXTRA_TYPE = 271,
+ OPT_TABLES = 272,
+ CCE_ALNUM = 273,
+ CCE_ALPHA = 274,
+ CCE_BLANK = 275,
+ CCE_CNTRL = 276,
+ CCE_DIGIT = 277,
+ CCE_GRAPH = 278,
+ CCE_LOWER = 279,
+ CCE_PRINT = 280,
+ CCE_PUNCT = 281,
+ CCE_SPACE = 282,
+ CCE_UPPER = 283,
+ CCE_XDIGIT = 284,
+ CCE_NEG_ALNUM = 285,
+ CCE_NEG_ALPHA = 286,
+ CCE_NEG_BLANK = 287,
+ CCE_NEG_CNTRL = 288,
+ CCE_NEG_DIGIT = 289,
+ CCE_NEG_GRAPH = 290,
+ CCE_NEG_LOWER = 291,
+ CCE_NEG_PRINT = 292,
+ CCE_NEG_PUNCT = 293,
+ CCE_NEG_SPACE = 294,
+ CCE_NEG_UPPER = 295,
+ CCE_NEG_XDIGIT = 296,
+ CCL_OP_UNION = 297,
+ CCL_OP_DIFF = 298,
+ BEGIN_REPEAT_POSIX = 299,
+ END_REPEAT_POSIX = 300,
+ BEGIN_REPEAT_FLEX = 301,
+ END_REPEAT_FLEX = 302
+ };
#endif
-#define CHAR 257
-#define NUMBER 258
-#define SECTEND 259
-#define SCDECL 260
-#define XSCDECL 261
-#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_TABLES 270
-#define CCE_ALNUM 271
-#define CCE_ALPHA 272
-#define CCE_BLANK 273
-#define CCE_CNTRL 274
-#define CCE_DIGIT 275
-#define CCE_GRAPH 276
-#define CCE_LOWER 277
-#define CCE_PRINT 278
-#define CCE_PUNCT 279
-#define CCE_SPACE 280
-#define CCE_UPPER 281
-#define CCE_XDIGIT 282
-#define BEGIN_REPEAT_POSIX 283
-#define END_REPEAT_POSIX 284
-#define BEGIN_REPEAT_FLEX 285
-#define END_REPEAT_FLEX 286
+/* Tokens. */
+#define CHAR 258
+#define NUMBER 259
+#define SECTEND 260
+#define SCDECL 261
+#define XSCDECL 262
+#define NAME 263
+#define PREVCCL 264
+#define EOF_OP 265
+#define OPTION_OP 266
+#define OPT_OUTFILE 267
+#define OPT_PREFIX 268
+#define OPT_YYCLASS 269
+#define OPT_HEADER 270
+#define OPT_EXTRA_TYPE 271
+#define OPT_TABLES 272
+#define CCE_ALNUM 273
+#define CCE_ALPHA 274
+#define CCE_BLANK 275
+#define CCE_CNTRL 276
+#define CCE_DIGIT 277
+#define CCE_GRAPH 278
+#define CCE_LOWER 279
+#define CCE_PRINT 280
+#define CCE_PUNCT 281
+#define CCE_SPACE 282
+#define CCE_UPPER 283
+#define CCE_XDIGIT 284
+#define CCE_NEG_ALNUM 285
+#define CCE_NEG_ALPHA 286
+#define CCE_NEG_BLANK 287
+#define CCE_NEG_CNTRL 288
+#define CCE_NEG_DIGIT 289
+#define CCE_NEG_GRAPH 290
+#define CCE_NEG_LOWER 291
+#define CCE_NEG_PRINT 292
+#define CCE_NEG_PUNCT 293
+#define CCE_NEG_SPACE 294
+#define CCE_NEG_UPPER 295
+#define CCE_NEG_XDIGIT 296
+#define CCL_OP_UNION 297
+#define CCL_OP_DIFF 298
+#define BEGIN_REPEAT_POSIX 299
+#define END_REPEAT_POSIX 300
+#define BEGIN_REPEAT_FLEX 301
+#define END_REPEAT_FLEX 302
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+typedef int YYSTYPE;
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
extern YYSTYPE yylval;
+
+
+
diff --git a/parse.y b/parse.y
index c40d75b..22d5933 100644
--- a/parse.y
+++ b/parse.y
@@ -1,12 +1,17 @@
/* 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
+%token OPTION_OP OPT_OUTFILE OPT_PREFIX OPT_YYCLASS OPT_HEADER OPT_EXTRA_TYPE
%token OPT_TABLES
%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
+%token CCE_NEG_ALNUM CCE_NEG_ALPHA CCE_NEG_BLANK CCE_NEG_CNTRL CCE_NEG_DIGIT CCE_NEG_GRAPH
+%token CCE_NEG_LOWER CCE_NEG_PRINT CCE_NEG_PUNCT CCE_NEG_SPACE CCE_NEG_UPPER CCE_NEG_XDIGIT
+
+%left CCL_OP_DIFF CCL_OP_UNION
+
/*
*POSIX and AT&T lex place the
* precedence of the repeat operator, {}, below that of concatenation.
@@ -58,55 +63,17 @@
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
/* PURPOSE. */
-/* Some versions of bison are broken in that they use alloca() but don't
- * declare it properly. The following is the patented (just kidding!)
- * #ifdef chud to fix the problem, courtesy of Francois Pinard.
- */
-#ifdef YYBISON
-/* AIX requires this to be the first thing in the file. What a piece. */
-# ifdef _AIX
- #pragma alloca
-# endif
-#endif
-
#include "flexdef.h"
#include "tables.h"
-/* The remainder of the alloca() cruft has to come after including flexdef.h,
- * so HAVE_ALLOCA_H is (possibly) defined.
- */
-#ifdef YYBISON
-# ifdef __GNUC__
-# ifndef alloca
-# define alloca __builtin_alloca
-# endif
-# else
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# else
-# ifdef __hpux
-void *alloca ();
-# else
-# ifdef __TURBOC__
-# include <malloc.h>
-# else
-char *alloca ();
-# endif
-# endif
-# endif
-# endif
-#endif
-
-/* Bletch, ^^^^ that was ugly! */
-
-
-int pat, scnum, eps, headcnt, trailcnt, anyccl, lastchar, i, rulelen;
+int pat, scnum, eps, headcnt, trailcnt, lastchar, i, rulelen;
int trlcontxt, xcluflg, currccl, cclsorted, varlength, variable_trail_rule;
int *scon_stk;
int scon_stk_ptr;
static int madeany = false; /* whether we've made the '.' character class */
+static int ccldot, cclany;
int previous_continued_action; /* whether the previous rule's action was '|' */
#define format_warn3(fmt, a1, a2) \
@@ -125,6 +92,15 @@ int previous_continued_action; /* whether the previous rule's action was '|' */
ccladd( currccl, c ); \
}while(0)
+/* negated class */
+#define CCL_NEG_EXPR(func) \
+ do{ \
+ int c; \
+ for ( c = 0; c < csize; ++c ) \
+ if ( !func(c) ) \
+ ccladd( currccl, c ); \
+ }while(0)
+
/* While POSIX defines isblank(), it's not ANSI C. */
#define IS_BLANK(c) ((c) == ' ' || (c) == '\t')
@@ -220,6 +196,8 @@ option : OPT_OUTFILE '=' NAME
outfilename = copy_string( nmstr );
did_outfilename = 1;
}
+ | OPT_EXTRA_TYPE '=' NAME
+ { extra_type = copy_string( nmstr ); }
| OPT_PREFIX '=' NAME
{ prefix = copy_string( nmstr ); }
| OPT_YYCLASS '=' NAME
@@ -714,26 +692,37 @@ singleton : singleton '*'
if ( ! madeany )
{
/* Create the '.' character class. */
- anyccl = cclinit();
- ccladd( anyccl, '\n' );
- cclnegate( anyccl );
+ ccldot = cclinit();
+ ccladd( ccldot, '\n' );
+ cclnegate( ccldot );
+
+ if ( useecs )
+ mkeccl( ccltbl + cclmap[ccldot],
+ ccllen[ccldot], nextecm,
+ ecgroup, csize, csize );
- if ( useecs )
- mkeccl( ccltbl + cclmap[anyccl],
- ccllen[anyccl], nextecm,
- ecgroup, csize, csize );
+ /* Create the (?s:'.') character class. */
+ cclany = cclinit();
+ cclnegate( cclany );
+
+ if ( useecs )
+ mkeccl( ccltbl + cclmap[cclany],
+ ccllen[cclany], nextecm,
+ ecgroup, csize, csize );
madeany = true;
}
++rulelen;
- $$ = mkstate( -anyccl );
+ if (sf_dot_all())
+ $$ = mkstate( -cclany );
+ else
+ $$ = mkstate( -ccldot );
}
| fullccl
{
- if ( ! cclsorted )
/* Sort characters for fast searching. We
* use a shell sort since this list could
* be large.
@@ -772,18 +761,25 @@ singleton : singleton '*'
{
++rulelen;
- if ( caseins && $1 >= 'A' && $1 <= 'Z' )
- $1 = clower( $1 );
-
if ($1 == nlch)
rule_has_nl[num_rules] = true;
- $$ = mkstate( $1 );
+ if (sf_case_ins() && has_case($1))
+ /* create an alternation, as in (a|A) */
+ $$ = mkor (mkstate($1), mkstate(reverse_case($1)));
+ else
+ $$ = mkstate( $1 );
}
;
+fullccl:
+ fullccl CCL_OP_DIFF braceccl { $$ = ccl_set_diff ($1, $3); }
+ | fullccl CCL_OP_UNION braceccl { $$ = ccl_set_union ($1, $3); }
+ | braceccl
+ ;
-fullccl : '[' ccl ']'
- { $$ = $2; }
+braceccl:
+
+ '[' ccl ']' { $$ = $2; }
| '[' '^' ccl ']'
{
@@ -795,24 +791,17 @@ fullccl : '[' ccl ']'
ccl : ccl CHAR '-' CHAR
{
- if (caseins)
+ if (sf_case_ins())
{
- /* Squish the character range to lowercase only if BOTH
- * ends of the range are uppercase.
- */
- if (isupper ($2) && isupper ($4))
- {
- $2 = tolower ($2);
- $4 = tolower ($4);
- }
/* If one end of the range has case and the other
* does not, or the cases are different, then we're not
* sure what range the user is trying to express.
* Examples: [@-z] or [S-t]
*/
- else if (has_case ($2) != has_case ($4)
- || (has_case ($2) && (b_islower ($2) != b_islower ($4))))
+ if (has_case ($2) != has_case ($4)
+ || (has_case ($2) && (b_islower ($2) != b_islower ($4)))
+ || (has_case ($2) && (b_isupper ($2) != b_isupper ($4))))
format_warn3 (
_("the character range [%c-%c] is ambiguous in a case-insensitive scanner"),
$2, $4);
@@ -841,6 +830,19 @@ ccl : ccl CHAR '-' CHAR
*/
cclsorted = cclsorted && ($2 > lastchar);
lastchar = $4;
+
+ /* Do it again for upper/lowercase */
+ if (sf_case_ins() && has_case($2) && has_case($4)){
+ $2 = reverse_case ($2);
+ $4 = reverse_case ($4);
+
+ for ( i = $2; i <= $4; ++i )
+ ccladd( $1, i );
+
+ cclsorted = cclsorted && ($2 > lastchar);
+ lastchar = $4;
+ }
+
}
$$ = $1;
@@ -848,12 +850,19 @@ ccl : ccl CHAR '-' CHAR
| ccl CHAR
{
- if ( caseins && $2 >= 'A' && $2 <= 'Z' )
- $2 = clower( $2 );
-
ccladd( $1, $2 );
cclsorted = cclsorted && ($2 > lastchar);
lastchar = $2;
+
+ /* Do it again for upper/lowercase */
+ if (sf_case_ins() && has_case($2)){
+ $1 = reverse_case ($2);
+ ccladd ($1, reverse_case ($2));
+
+ cclsorted = cclsorted && ($2 > lastchar);
+ lastchar = $2;
+ }
+
$$ = $1;
}
@@ -872,36 +881,65 @@ ccl : ccl CHAR '-' CHAR
}
;
-ccl_expr: CCE_ALNUM { CCL_EXPR(isalnum); }
+ccl_expr:
+ CCE_ALNUM { CCL_EXPR(isalnum); }
| CCE_ALPHA { CCL_EXPR(isalpha); }
| CCE_BLANK { CCL_EXPR(IS_BLANK); }
| CCE_CNTRL { CCL_EXPR(iscntrl); }
| CCE_DIGIT { CCL_EXPR(isdigit); }
| CCE_GRAPH { CCL_EXPR(isgraph); }
- | CCE_LOWER { CCL_EXPR(islower); }
+ | CCE_LOWER {
+ CCL_EXPR(islower);
+ if (sf_case_ins())
+ CCL_EXPR(isupper);
+ }
| CCE_PRINT { CCL_EXPR(isprint); }
| CCE_PUNCT { CCL_EXPR(ispunct); }
| CCE_SPACE { CCL_EXPR(isspace); }
+ | CCE_XDIGIT { CCL_EXPR(isxdigit); }
| CCE_UPPER {
- if ( caseins )
- CCL_EXPR(islower);
+ CCL_EXPR(isupper);
+ if (sf_case_ins())
+ CCL_EXPR(islower);
+ }
+
+ | CCE_NEG_ALNUM { CCL_NEG_EXPR(isalnum); }
+ | CCE_NEG_ALPHA { CCL_NEG_EXPR(isalpha); }
+ | CCE_NEG_BLANK { CCL_NEG_EXPR(IS_BLANK); }
+ | CCE_NEG_CNTRL { CCL_NEG_EXPR(iscntrl); }
+ | CCE_NEG_DIGIT { CCL_NEG_EXPR(isdigit); }
+ | CCE_NEG_GRAPH { CCL_NEG_EXPR(isgraph); }
+ | CCE_NEG_PRINT { CCL_NEG_EXPR(isprint); }
+ | CCE_NEG_PUNCT { CCL_NEG_EXPR(ispunct); }
+ | CCE_NEG_SPACE { CCL_NEG_EXPR(isspace); }
+ | CCE_NEG_XDIGIT { CCL_NEG_EXPR(isxdigit); }
+ | CCE_NEG_LOWER {
+ if ( sf_case_ins() )
+ warn(_("[:^lower:] is ambiguous in case insensitive scanner"));
else
- CCL_EXPR(isupper);
+ CCL_NEG_EXPR(islower);
+ }
+ | CCE_NEG_UPPER {
+ if ( sf_case_ins() )
+ warn(_("[:^upper:] ambiguous in case insensitive scanner"));
+ else
+ CCL_NEG_EXPR(isupper);
}
- | CCE_XDIGIT { CCL_EXPR(isxdigit); }
;
string : string CHAR
{
- if ( caseins && $2 >= 'A' && $2 <= 'Z' )
- $2 = clower( $2 );
-
if ( $2 == nlch )
rule_has_nl[num_rules] = true;
++rulelen;
- $$ = link_machines( $1, mkstate( $2 ) );
+ if (sf_case_ins() && has_case($2))
+ $$ = mkor (mkstate($2), mkstate(reverse_case($2)));
+ else
+ $$ = mkstate ($2);
+
+ $$ = link_machines( $1, $$);
}
|
@@ -930,7 +968,7 @@ void build_eof_action()
else
{
sceof[scon_stk[i]] = true;
- sprintf( action_text, "case YY_STATE_EOF(%s):\n",
+ snprintf( action_text, sizeof(action_text), "case YY_STATE_EOF(%s):\n",
scname[scon_stk[i]] );
add_action( action_text );
}
@@ -955,7 +993,7 @@ const char *msg, arg[];
{
char errmsg[MAXLINE];
- (void) sprintf( errmsg, msg, arg );
+ (void) snprintf( errmsg, sizeof(errmsg), msg, arg );
synerr( errmsg );
}
@@ -977,7 +1015,7 @@ const char *msg, arg[];
{
char warn_msg[MAXLINE];
- (void) sprintf( warn_msg, msg, arg );
+ snprintf( warn_msg, sizeof(warn_msg), msg, arg );
warn( warn_msg );
}
@@ -999,7 +1037,7 @@ const char *msg, arg[];
{
char errmsg[MAXLINE];
- (void) sprintf( errmsg, msg, arg );
+ snprintf( errmsg, sizeof(errmsg), msg, arg );
pinpoint_message( errmsg );
}
@@ -1023,7 +1061,7 @@ int line;
if ( ! nowarn )
{
- sprintf( warning, "warning, %s", str );
+ snprintf( warning, sizeof(warning), "warning, %s", str );
line_pinpoint( warning, line );
}
}
diff --git a/po/Makevars b/po/Makevars
index 91bd774..2ac7ee8 100644
--- a/po/Makevars
+++ b/po/Makevars
@@ -34,7 +34,7 @@ COPYRIGHT_HOLDER =
# It can be your email address, or a mailing list address where translators
# can write to without being subscribed, or the URL of a web page through
# which the translators can contact you.
-MSGID_BUGS_ADDRESS = lex-help@lists.sourceforge.net
+MSGID_BUGS_ADDRESS = flex-devel@lists.sourceforge.net
# This is the list of locale categories, beyond LC_MESSAGES, for which the
# message catalogs shall be used. It is usually empty.
diff --git a/po/ca.gmo b/po/ca.gmo
index 9ad86a5..68cc3cf 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 9eec3e8..8546a31 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,37 +1,40 @@
# Catalan translation of flex message catalogs.
-# Copyright © 2002, 2003 Free Software Foundation, Inc.
-# Jordi Mallach <jordi@sindominio.net>, 2002, 2003.
+# Copyright © 2002, 2003, 2006 Free Software Foundation, Inc.
+# Jordi Mallach <jordi@sindominio.net>, 2002, 2003, 2006.
#
msgid ""
msgstr ""
-"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
-"PO-Revision-Date: 2003-11-07 14:33+0100\n"
+"Project-Id-Version: flex 2.5.33\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
+"PO-Revision-Date: 2006-04-13 22:21+0200\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: dfa.c:61
#, c-format
msgid "State #%d is non-accepting -\n"
-msgstr "L'estat #%d és no-acceptar -\n"
+msgstr "L'estat #%d és no-acceptar -\n"
#: dfa.c:124
msgid "dangerous trailing context"
-msgstr "Context posterior perillós"
+msgstr "Context posterior perillós"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
-msgstr " números de línia associats a la regla:"
+msgstr " números de línia associats a la regla:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " fi de transicions: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -41,7 +44,7 @@ msgstr ""
#: dfa.c:341
msgid "consistency check failed in epsclosure()"
-msgstr "la prova de consistència ha fallat en epsclosure()"
+msgstr "la comprovació de consistència ha fallat en epsclosure()"
#: dfa.c:429
msgid ""
@@ -52,31 +55,27 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Volcat AFD:\n"
+"Bolcat AFD:\n"
"\n"
#: dfa.c:604
msgid "could not create unique end-of-buffer state"
-msgstr "no s'ha pogut crear un estat únic de final-de-buffer"
+msgstr "no s'ha pogut crear un estat únic de final-de-búfer"
#: dfa.c:625
#, c-format
msgid "state # %d:\n"
msgstr "estat # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "No s'ha pogut escriure yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "Ha fallat la prova de consistència en symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
-msgstr "caràcter de transició incorrecte detectat en sympartition()"
+msgstr "caràcter de transició incorrecte detectat en sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -85,32 +84,32 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Classes d'equivalència:\n"
+"Classes d'equivalència:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'estat # %d accepta: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "l'estat # %d accepta: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "No s'ha pogut escriure yyacclist_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "No s'ha pogut escriure yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "No s'ha pogut escriure ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -118,400 +117,413 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Classes de metaequivalència:\n"
+"Classes de metaequivalència:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "No s'ha pogut escriure yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "No s'ha pogut escriure yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "No s'ha pogut escriure yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "No s'ha pogut escriure yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "No s'ha pogut escriure yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "No s'ha pogut escriure ftbl"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "No s'ha pogut escriure ssltbl"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "No s'ha pogut escriure eoltbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "No s'ha pogut escriure yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
-msgstr "la regla no es pot satisfer"
+msgstr "no es pot satisfer la regla"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
-msgstr "S'ha especificat l'opció -s però es pot aplicar la regla per defecte"
+msgstr "S'ha especificat l'opció -s però es pot aplicar la regla per defecte"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
-msgstr "No es pot fer servir -+ amb l'opció -l"
+msgstr "No es pot fer servir -+ amb l'opció -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
-msgstr "No es pot fer servir -f o -F amb l'opció -l"
+msgstr "No es pot fer servir -f o -F amb l'opció -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
-msgstr "No es pot fer servir --reentrant o --bison-bridge amb l'opció -l"
+msgstr "No es pot fer servir --reentrant o --bison-bridge amb l'opció -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF i -Cm no tenen sentit juntes"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
-msgstr "-Cf/-CF i -I són incompatibles"
+msgstr "-Cf/-CF i -I són incompatibles"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
-msgstr "-Cf/-CF són incompatibles amb el mode de compatibilitat amb lex"
+msgstr "-Cf/-CF són incompatibles amb el mode de compatibilitat amb lex"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
-msgstr "-Cf i -CF són mútuament excloents"
+msgstr "-Cf i -CF són mútuament excloents"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
-msgstr "No es pot fer servir -+ amb l'opció -CF"
+msgstr "No es pot fer servir -+ amb l'opció -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
-msgstr "%array incompatible amb l'opció -+"
+msgstr "%array és incompatible amb l'opció -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
-msgstr "Les opcions -+ i --reentrant són mútuament excloents"
+msgstr "Les opcions -+ i --reentrant són mútuament excloents"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
-msgstr "No es suporta «bison bridge» per a l'analitzador de C++"
+msgstr "No es suporta «bison bridge» per a l'analitzador de C++"
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "no s'ha pogut crear %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
-msgstr "no s'ha pogut crear la capçalera de les taules"
+msgstr "no s'ha pogut crear la capçalera de les taules"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "No es pot obrir el fitxer d'esquema %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "error d'entrada al llegir el fitxer d'esquema %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
-msgstr "error al tancar el fitxer d'esquema %s"
+msgstr "s'ha produït un error en tancar el fitxer d'esquema %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
-msgstr "error al crear el fitxer de capçalera %s"
+msgstr "s'ha produït un error en crear el fitxer de capçalera %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
-msgstr "error al escriure el fitxer d'eixida %s"
+msgstr "s'ha produït un error en escriure el fitxer d'eixida %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
-msgstr "error al tancar el fitxer d'eixida %s"
+msgstr "s'ha produït un error en tancar el fitxer d'eixida %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
-msgstr "error al borrar el fitxer d'eixida %s"
+msgstr "s'ha produït un error en suprimir el fitxer d'eixida %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
-msgstr "No hi ha retrocés.\n"
+msgstr "No hi ha retrocés.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
-msgstr "%d estats de retrocés (no-acceptació).\n"
+msgstr "%d estats de retrocés (no-acceptació).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les taules comprimides sempre impliquen un retard.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
-msgstr "error al escriure el fitxer de còpia de seguretat %s"
+msgstr "s'ha produït un error en escriure el fitxer de còpia de seguretat %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
-msgstr "error al tancar el fitxer de còpia de seguretat %s"
+msgstr "s'ha produït un error en tancar el fitxer de còpia de seguretat %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
-msgstr "%s versió %s estadístiques d'ús:\n"
+msgstr "estadístiques d'ús de %s versió %s:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " opcions de l'analitzador: -"
-# NFA == Autómata finit no-determinista. jm
-#: main.c:813
+# NFA == Autómata finit no-determinista. jm
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estats AFN\n"
-# DFA == Autómata finit deterministic. jm
-#: main.c:815
+# DFA == Autómata finit deterministic. jm
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estats AFD (%d paraules)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regles\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
-msgstr " Sense retrocés\n"
+msgstr " Sense retrocés\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
-msgstr " %d estats de retrocés (no-acceptació)\n"
+msgstr " %d estats de retrocés (no-acceptació)\n"
-# Es refereix a còpia de seguretat, o retrocés? jm
-#: main.c:831
+# Es refereix a còpia de seguretat, o retrocés? jm
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
-msgstr " Sempre es realitza còpia de seguretat de les taules comprimides\n"
+msgstr " Sempre es realitza còpia de seguretat de les taules comprimides\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
-msgstr " Utilitzats patrons de principi-de-línia\n"
+msgstr " Utilitzats patrons de principi-de-línia\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
-msgstr " %d/%d condicions d'activació\n"
+msgstr " %d/%d condicions d'activació\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
-msgstr " %d estats èpsilon, %d estats doble èpsilon\n"
+msgstr " %d estats èpsilon, %d estats doble èpsilon\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
-msgstr " sense classes de caràcter\n"
+msgstr " sense classes de caràcter\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
-" les classes de caràcters %d/%d necessitaren %d/%d paraules de magatzement, "
+" les classes de caràcters %d/%d necessitaren %d/%d paraules de magatzement, "
"%d reutilitzades\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
-msgstr " %d parells estat/estat-següent creats\n"
+msgstr " %d parells estat/estat-següent creats\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
-msgstr " %d/%d transicions úniques/duplicades\n"
+msgstr " %d/%d transicions úniques/duplicades\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d entrades de la taula\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrades base-def creades\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pic %d) entrades nxt-chk creades\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pic %d) entrades de plantilla nxt-chk creades\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrades de la tabla buides\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototips creats\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d plantilles creades, %d usos\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
-msgstr " %d/%d classes d'equivalència creades\n"
+msgstr " %d/%d classes d'equivalència creades\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
-msgstr " %d/%d classes de meta-equivalència creades\n"
+msgstr " %d/%d classes de meta-equivalència creades\n"
# Hash? jm
-# segons un company de treballa que estudia a la UOC, allí
-# les "hashtables" s'anomenen "taules de DISPERSIÓ". En aquest context
-# no sé que dir-te. ear
-#: main.c:909
+# segons un company de treballa que estudia a la UOC, allí
+# les "hashtables" s'anomenen "taules de DISPERSIÓ". En aquest context
+# no sé que dir-te. ear
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
-msgstr ""
-" %d (%d desades) col·lisions de localització («hash»), %d AFD iguals\n"
+msgstr " %d (%d desades) col·lisions d'ubicació («hash»), %d AFD iguals\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
-msgstr " es necessiten %d conjunts de relocalització\n"
+msgstr " es necessiten %d conjunts de relocalització\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " es necessiten %d entrades totals de la taula\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Error intern. Els flexopts estan malformats.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
-msgstr "Proveu «%s --help» per a obtindre més informació.\n"
+msgstr "Proveu «%s --help» per a obtindre més informació.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
-msgstr "opció de -C desconeguda «%c»"
+msgstr "opció de -C desconeguda «%c»"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-# Hmm. No se si açò està be. jm
-#: main.c:1459
+# Hmm. No se si açò està be. jm
+#: main.c:1467
msgid "fatal parse error"
-msgstr "error fatal al analitzar sintàcticament"
+msgstr "s'ha produït un error fatal d'anàlisi sintàctic"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
-msgstr "no s'ha pogut crear un fitxer d'informació del retrocés %s"
+msgstr "no s'ha pogut crear un fitxer d'informació del retrocés %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
-"-l l'opció de compatibilitat amb AT&T lex implica una penalització del "
+"-l l'opció de compatibilitat amb AT&T lex implica una penalització del "
"rendiment molt gran\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" i pot ser l'origen real d'altres penalitzacions del rendiment notificades\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
-"l'%%opció yylineno implica una penalització del rendiment NOMÉS en regles "
-"que poden fer coincidir caràcters de nova línia\n"
+"l'%%opció yylineno implica una penalització del rendiment NOMÉS en regles "
+"que poden fer coincidir caràcters de nova línia\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
-msgstr "-I (interactiu) implica una xicoteta penalització del rendiment\n"
+msgstr "-I (interactiu) implica una xicoteta penalització del rendiment\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
-msgstr "yymore() implica una xicoteta penalització del rendiment\n"
+msgstr "yymore() implica una xicoteta penalització del rendiment\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
-msgstr "REJECT implica una penalització del rendiment molt gran\n"
+msgstr "REJECT implica una penalització del rendiment molt gran\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
-"Les regles de context posterior variable implica una penalització del "
+"Les regles de context posterior variable implica una penalització del "
"rendiment molt gran\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT no es pot fer servir amb -f o -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
-msgstr "l'%opció yylineno no es pot fer servir amb REJECT"
+msgstr "l'%opció yylineno no es pot fer servir amb REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Les regles de context posterior variable no es poden utilitzar amb -f o -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
-msgstr "l'%opció yyclass només te sentit per a analitzadors de C++"
+msgstr "l'%opció yyclass només té sentit per a analitzadors de C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
-msgstr "Forma d'ús: %s [OPCIONS] [FITXER]...\n"
+msgstr "Forma d'ús: %s [OPCIONS] [FITXER]...\n"
-# Al grep jo sempre he traduït match com a coincidir. No sé, no m'agrada
-# molt això de text emparellat.
-# Encara que coincident tampoc no m'acaba de convéncer. ear
+# Al grep jo sempre he traduït match com a coincidir. No sé, no m'agrada
+# molt això de text emparellat.
+# Encara que coincident tampoc no m'acaba de convéncer. ear
# I que faig amb "reentrant" i "parser"? jm
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -578,29 +590,31 @@ msgid ""
msgstr ""
"Genera programes que realitzen emparellaments de patrons en text.\n"
"\n"
-"Compressió de taules:\n"
-" -Ca, --align renuncia a taules més grans a canvi de una millor "
-"alineació\n"
-" -Ce, --ecs construeix classes d'equivalència\n"
-" -Cf no comprimeix les taules; utilitza la representació -f\n"
-" -CF no comprimeix les taules; utilitza la representació -F\n"
-" -Cm, --meta-ecs construeix classes de metaequivalència\n"
+"Compressió de taules:\n"
+" -Ca, --align renuncia a taules més grans a canvi de una millor "
+"alineació\n"
+" -Ce, --ecs construeix classes d'equivalència\n"
+" -Cf no comprimeixes les taules; utilitza la representació -"
+"f\n"
+" -CF no comprimeixes les taules; utilitza la representació -"
+"F\n"
+" -Cm, --meta-ecs construeix classes de metaequivalència\n"
" -Cr, --read utilitza read() en lloc de stdio com a entrada de "
"l'analitzador\n"
-" -f, --full genera un analitzador ràpid i gran. El mateix que -Cfr\n"
-" -F, --fast usa una representació alternativa de taules. El mateix "
+" -f, --full genera un analitzador ràpid i gran. El mateix que -Cfr\n"
+" -F, --fast usa una representació alternativa de taules. El mateix "
"que -CFr\n"
-" -Cem compressió per defecte (el mateix que --ecs --meta-ecs)\n"
+" -Cem compressió per defecte (el mateix que --ecs --meta-ecs)\n"
"\n"
-"Depuració:\n"
-" -d, --debug activa el mode de depuració en l'analitzador\n"
-" -b, --backup escriu l'informació dels retrocessos en %s\n"
+"Depuració:\n"
+" -d, --debug activa el mode de depuració en l'analitzador\n"
+" -b, --backup escriu l'informació dels retrocessos en %s\n"
" -p, --perf-report escriu l'informe de rendiment en stderr\n"
" -s, --nodefault suprimeix la regla per defecte de visualitzar "
"(ECHO) el text no emparellat\n"
-" -T, --trace %s hauria d'executar-se en mode traça\n"
-" -w, --nowarn no genera avisos\n"
-" -v, --verbose escriu un resum de les estadístiques de "
+" -T, --trace %s hauria d'executar-se en mode traça\n"
+" -w, --nowarn no generes avisos\n"
+" -v, --verbose escriu un resum de les estadístiques de "
"l'analitzador en stdout\n"
"\n"
"Fitxers:\n"
@@ -608,7 +622,7 @@ msgstr ""
" -S, --skel=FITXER especifica el fitxer d'esquema\n"
" -t, --stdout escriu l'analitzador en stdout en lloc de %s\n"
" --yyclass=NOM nom de la classe C++\n"
-" --header-file=FITXER crea un fitxer de capçaleres de C a més de "
+" --header-file=FITXER crea un fitxer de capçaleres de C a més de "
"l'analitzador\n"
" --tables-file=[FITXER] escriu les taules en FITXER\n"
"\n"
@@ -617,57 +631,57 @@ msgstr ""
" -8, --8bit genera un analitzador de 8 bits\n"
" -B, --batch genera un analitzador no interactiu (el contrari a "
"-I)\n"
-" -i, --case-insensitive Ignora les diferències de majúscules i minúscules "
+" -i, --case-insensitive Ignora les diferències de majúscules i minúscules "
"en els patrons\n"
-" -l, --lex-compat compatibilitat màxima amb el lex original\n"
-" -X, --posix-compat compatibilitat màxima amb el lex POSIX\n"
+" -l, --lex-compat compatibilitat màxima amb el lex original\n"
+" -X, --posix-compat compatibilitat màxima amb el lex POSIX\n"
" -I, --interactive genera un analitzador interactiu (el contrari a -"
"B)\n"
-" --yylineno traçar el compte de línies en yylineno\n"
+" --yylineno traça el compte de línies en yylineno\n"
"\n"
"Codi generat:\n"
" -+, --c++ genera un analitzador de la classe C++\n"
-" -Dmacro[=defn] #define macro defn (defn és «1» per defecte)\n"
+" -Dmacro[=defn] #define macro defn (defn és «1» per defecte)\n"
" -L, --noline suprimeix les directives #line en l'analitzador\n"
-" -P, --prefix=CADENA utilitza CADENA com prefix en comptes de «yy»\n"
+" -P, --prefix=CADENA utilitza CADENA com prefix en comptes de «yy»\n"
" -R, --reentrant genera un analitzador de C reentrant\n"
" --bison-bridge analitzador per a l'analitzador pur de bison\n"
" --bison-locations inclou suport per a yylloc\n"
" --stdinit inicialitza yyin/yyout a stdin/stdout\n"
" --noansi-definitions estil antic de definicions de funcions\n"
-" --noansi-prototypes llista de paràmetres buida als prototips\n"
-" --nounistd no inclou <unistd.h>\n"
-" --noFUNCIÓ no genera una FUNCIÓ en particular\n"
+" --noansi-prototypes llista de paràmetres buida als prototips\n"
+" --nounistd no inclogues <unistd.h>\n"
+" --noFUNCIÓ no generes una FUNCIÓ en particular\n"
"\n"
-"Miscel·lània:\n"
-" -c opció POSIX sense efecte\n"
-" -n opció POSIX sense efecte\n"
+"Miscel·lània:\n"
+" -c opció POSIX sense efecte\n"
+" -n opció POSIX sense efecte\n"
" -?\n"
" -h, --help mostra aquest missatge d'ajuda\n"
-" -V, --version informa de la versió de %s\n"
+" -V, --version informa de la versió de %s\n"
#: misc.c:100 misc.c:126
#, c-format
msgid "name \"%s\" ridiculously long"
-msgstr "el nom «%s» és ridículament llarg"
+msgstr "el nom «%s» és ridículament llarg"
#: misc.c:175
msgid "memory allocation failed in allocate_array()"
-msgstr "ha fallat l'assignació de memòria en allocate_array()"
+msgstr "ha fallat l'assignació de memòria en allocate_array()"
#: misc.c:250
#, c-format
msgid "bad character '%s' detected in check_char()"
-msgstr "caràcter incorrecte «%s» detectat en check_char()"
+msgstr "caràcter incorrecte «%s» detectat en check_char()"
#: misc.c:255
#, c-format
msgid "scanner requires -8 flag to use the character %s"
-msgstr "l'analitzador requereix l'opció -8 per a fer servir el caràcter %s"
+msgstr "l'analitzador requereix l'opció -8 per a fer servir el caràcter %s"
#: misc.c:288
msgid "dynamic memory failure in copy_string()"
-msgstr "errada de la memòria dinàmica en copy_string()"
+msgstr "errada de la memòria dinàmica en copy_string()"
#: misc.c:422
#, c-format
@@ -676,15 +690,15 @@ msgstr "%s: error intern fatal, %s\n"
#: misc.c:875
msgid "attempt to increase array size failed"
-msgstr "ha fallat l'intent d'augmentar el tamany de la matriu"
+msgstr "ha fallat l'intent d'augmentar la mida de la matriu"
#: misc.c:1002
msgid "bad line in skeleton file"
-msgstr "línia incorrecta en el fitxer d'esquema"
+msgstr "línia incorrecta en el fitxer d'esquema"
#: misc.c:1051
msgid "memory allocation failed in yy_flex_xmalloc()"
-msgstr "ha fallat l'assignació de memòria en yy_flex_xmalloc()"
+msgstr "ha fallat l'assignació de memòria en yy_flex_xmalloc()"
#: nfa.c:104
#, c-format
@@ -695,7 +709,7 @@ msgid ""
msgstr ""
"\n"
"\n"
-"********** començant el volcat del afn amb l'estat inicial %d\n"
+"********** s'està començant el bolcat de l'afn amb l'estat inicial %d\n"
#: nfa.c:115
#, c-format
@@ -703,17 +717,18 @@ msgid "state # %4d\t"
msgstr "estat # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
-msgstr "********** final del volcat\n"
+msgstr "********** final del bolcat\n"
#: nfa.c:174
msgid "empty machine in dupmachine()"
-msgstr "màquina buida en dupmachine()"
+msgstr "màquina buida en dupmachine()"
#: nfa.c:240
#, c-format
msgid "Variable trailing context rule at line %d\n"
-msgstr "Regla de context posterior variable en la línia %d\n"
+msgstr "Regla de context posterior variable en la línia %d\n"
#: nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
@@ -722,7 +737,7 @@ msgstr "tipus d'estat incorrecte en mark_beginning_as_normal()"
#: nfa.c:598
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
-msgstr "les regles d'entrada són massa complicades (>= %d estats AFN)"
+msgstr "les regles d'entrada són massa complicades (>= %d estats AFN)"
#: nfa.c:677
msgid "found too many transitions in mkxtion()"
@@ -733,109 +748,128 @@ msgstr "s'han trobat massa transicions en mkxtion()"
msgid "too many rules (> %d)!"
msgstr "massa regles (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
-msgstr "error desconegut al processar la secció 1"
+msgstr "s'ha produït un error desconegut en processar la secció 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
-msgstr "condició de començament incorrecta"
+msgstr "condició de començament incorrecta"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "regla no reconeguda"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "s'ha utilitzat el context posterior dos vegades"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
-msgstr "valors d'iteració incorrectes"
+msgstr "valors d'iteració incorrectes"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
-msgstr "el valor d'iteració ha de ser positiu"
+msgstr "el valor d'iteració ha de ser positiu"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-"el rang de caràcters [%c-%c] és ambigu en un analitzador insensible a les "
-"majúscules i minúscules"
+"el rang de caràcters [%c-%c] és ambigu en un analitzador insensible a les "
+"majúscules i minúscules"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
-msgstr "rang negatiu en classe de caràcter"
+msgstr "rang negatiu en classe de caràcter"
+
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"el rang de caràcters [%c-%c] és ambigu en un analitzador insensible a les "
+"majúscules i minúscules"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"el rang de caràcters [%c-%c] és ambigu en un analitzador insensible a les "
+"majúscules i minúscules"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
-msgstr "La línia d'entrada és massa llarga\n"
+msgstr "La línia d'entrada és massa llarga\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
-msgstr "directiva «%top» malformada"
+msgstr "directiva «%top» malformada"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
-msgstr "directiva «%» no reconeguda"
+msgstr "directiva «%» no reconeguda"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
-msgstr "«|» no emparellat"
+msgstr "«|» no emparellat"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
-msgstr "definició del nom incompleta"
+msgstr "definició del nom incompleta"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
-msgstr "%%opció no reconeguda: %s"
+msgstr "%%opció no reconeguda: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
-msgstr "classe de caràcter incorrecta"
+msgstr "classe de caràcter incorrecta"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
-msgstr "definició no definida {%s}"
+msgstr "definició no definida {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
-msgstr "<condició d'activació> incorrecta: %s"
+msgstr "<condició d'activació> incorrecta: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
-msgstr "falta una cometa"
+msgstr "manca una cometa"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
-msgstr "expressió de la classe de caràcters incorrecta: %s"
+msgstr "expressió de la classe de caràcters incorrecta: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
-msgstr "caràcter incorrecte dins de {}"
+msgstr "caràcter incorrecte dins de {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
-msgstr "falta una }"
+msgstr "manca una }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
-msgstr "EOF trobat dins d'una acció"
+msgstr "s'ha trobat un EOF dins d'una acció"
+
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "s'ha trobat un EOF dins d'una acció"
-#: scan.l:820
+#: scan.l:967
#, c-format
msgid "bad character: %s"
-msgstr "caràcter incorrecte: %s"
+msgstr "caràcter incorrecte: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "no es pot obrir %s"
@@ -843,27 +877,27 @@ msgstr "no es pot obrir %s"
#: scanopt.c:291
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
-msgstr "Forma d'ús: %s [OPCIONS...\n"
+msgstr "Forma d'ús: %s [OPCIONS]...\n"
#: scanopt.c:565
#, c-format
msgid "option `%s' doesn't allow an argument\n"
-msgstr "l'opció «%s» no accepta arguments\n"
+msgstr "l'opció «%s» no accepta arguments\n"
#: scanopt.c:570
#, c-format
msgid "option `%s' requires an argument\n"
-msgstr "l'opció «%s» requereix un argument\n"
+msgstr "l'opció «%s» requereix un argument\n"
#: scanopt.c:574
#, c-format
msgid "option `%s' is ambiguous\n"
-msgstr "l'opció «%s» és ambígua\n"
+msgstr "l'opció «%s» és ambígua\n"
#: scanopt.c:578
#, c-format
msgid "Unrecognized option `%s'\n"
-msgstr "Opció no reconeguda «%s»\n"
+msgstr "Opció no reconeguda «%s»\n"
#: scanopt.c:582
#, c-format
@@ -872,57 +906,61 @@ msgstr "Error desconegut=(%d)\n"
#: sym.c:100
msgid "symbol table memory allocation failed"
-msgstr "ha fallat l'assignació de memòria per a la taula de símbols"
+msgstr "ha fallat l'assignació de memòria per a la taula de símbols"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "el nom ha sigut definit dos vegades"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
-msgstr "la condició d'activació %s ha sigut declarada dos vegades"
+msgstr "la condició d'activació %s ha sigut declarada dos vegades"
#: yylex.c:56
msgid "premature EOF"
msgstr "EOF prematur"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Marcador de fi\n"
#: yylex.c:204
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
-msgstr "*Algo estrany* - terminal: %d val: %d\n"
+msgstr "*Quelcom estrany* - terminal: %d val: %d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "Ha fallat la prova de consistència en symfollowset"
#~ msgid "Can't specify header option if writing to stdout."
-#~ msgstr "No es pot especificar l'opció de capçalera si s'escriu a stdout."
+#~ msgstr "No es pot especificar l'opció de capçalera si s'escriu a stdout."
#~ msgid "unknown -R option '%c'"
-#~ msgstr "opció de -R desconeguda «%c»"
+#~ msgstr "opció de -R desconeguda «%c»"
#~ msgid "-Cf/-CF and %option yylineno are incompatible"
-#~ msgstr "-Cf/-CF i l'%opció yylineno són incompatibles"
+#~ msgstr "-Cf/-CF i l'%opció yylineno són incompatibles"
#~ msgid ""
#~ "For usage, try\n"
#~ "\t%s --help\n"
#~ msgstr ""
-#~ "Per al mode d'ús, proveu\n"
+#~ "Per al mode d'ús, proveu\n"
#~ "\t%s --help\n"
#~ msgid "-P flag must be given separately"
-#~ msgstr "la opció -P s'ha d'especificar per separat"
+#~ msgstr "la opció -P s'ha d'especificar per separat"
#~ msgid "-o flag must be given separately"
-#~ msgstr "l'opció -o s'ha d'especificar per separat"
+#~ msgstr "l'opció -o s'ha d'especificar per separat"
#~ msgid "-S flag must be given separately"
-#~ msgstr "l'opció -S s'ha d'especificar per separat"
+#~ msgstr "l'opció -S s'ha d'especificar per separat"
#~ msgid "-C flag must be given separately"
-#~ msgstr "l'opció -C s'ha de donar per separat"
+#~ msgstr "l'opció -C s'ha de donar per separat"
#~ msgid ""
#~ "%s [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]\n"
@@ -933,35 +971,35 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgstr "\t[--help --version] [fitxer ...]\n"
#~ msgid "\t-b generate backing-up information to %s\n"
-#~ msgstr "\t-b genera la informació dels retrocessos efectuats a %s\n"
+#~ msgstr "\t-b genera la informació dels retrocessos efectuats a %s\n"
#~ msgid "\t-c do-nothing POSIX option\n"
-#~ msgstr "\t-c opció POSIX sense efecte\n"
+#~ msgstr "\t-c opció POSIX sense efecte\n"
#~ msgid "\t-d turn on debug mode in generated scanner\n"
-#~ msgstr "\t-d activa el mode de depuració en l'analitzador generat\n"
+#~ msgstr "\t-d activa el mode de depuració en l'analitzador generat\n"
#~ msgid "\t-f generate fast, large scanner\n"
-#~ msgstr "\t-f genera un analitzador ràpid i gran\n"
+#~ msgstr "\t-f genera un analitzador ràpid i gran\n"
#~ msgid "\t-h produce this help message\n"
#~ msgstr "\t-h mostra aquest missatge d'ajuda\n"
#~ msgid "\t-i generate case-insensitive scanner\n"
-#~ msgstr "\t-i genera un analitzador insensible a majúscules i minúscules\n"
+#~ msgstr "\t-i genera un analitzador insensible a majúscules i minúscules\n"
#~ msgid "\t-l maximal compatibility with original lex\n"
-#~ msgstr "\t-l compatibilitat màxima amb el lex original\n"
+#~ msgstr "\t-l compatibilitat màxima amb el lex original\n"
#~ msgid "\t-n do-nothing POSIX option\n"
-#~ msgstr "\t-n opció POSIX sense efecte\n"
+#~ msgstr "\t-n opció POSIX sense efecte\n"
#~ msgid "\t-p generate performance report to stderr\n"
#~ msgstr "\t-p genera l'informe de rendiment en stderr\n"
-# Al grep jo sempre he traduït match com a coincidir. No sé, no m'agrada
-# molt això de text emparellat.
-# Encara que coincident tampoc no m'acaba de convéncer. ear
+# Al grep jo sempre he traduït match com a coincidir. No sé, no m'agrada
+# molt això de text emparellat.
+# Encara que coincident tampoc no m'acaba de convéncer. ear
#~ msgid "\t-s suppress default rule to ECHO unmatched text\n"
#~ msgstr ""
#~ "\t-s suprimeix la regla per defecte de visualitzar (ECHO) el text no "
@@ -969,10 +1007,10 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgid "\t-t write generated scanner on stdout instead of %s\n"
#~ msgstr ""
-#~ "\t-t escriu l'analitzador generat en l'eixida estàndard en lloc de %s\n"
+#~ "\t-t escriu l'analitzador generat en l'eixida estàndard en lloc de %s\n"
#~ msgid "\t-v write summary of scanner statistics to f\n"
-#~ msgstr "\t-v escriu un resum de les estadístiques en f\n"
+#~ msgstr "\t-v escriu un resum de les estadístiques en f\n"
#~ msgid "\t-w do not generate warnings\n"
#~ msgstr "\t-w no genera avisos\n"
@@ -981,7 +1019,7 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgstr "\t-B genera un analitzador no interactiu (el contrari a -I)\n"
#~ msgid "\t-F use alternative fast scanner representation\n"
-#~ msgstr "\t-F usa la representació alternativa d'analitzador ràpid\n"
+#~ msgstr "\t-F usa la representació alternativa d'analitzador ràpid\n"
#~ msgid "\t-I generate interactive scanner (opposite of -B)\n"
#~ msgstr "\t-I genera analitzador interactiu (el contrari a -B)\n"
@@ -990,10 +1028,10 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgstr "\t-L suprimeix les directives #line en l'analitzador\n"
#~ msgid "\t-T %s should run in trace mode\n"
-#~ msgstr "\t-T %s hauria de executarse en mode traça\n"
+#~ msgstr "\t-T %s hauria de executarse en mode traça\n"
#~ msgid "\t-V report %s version\n"
-#~ msgstr "\t-V informa de la versió de %s\n"
+#~ msgstr "\t-V informa de la versió de %s\n"
#~ msgid "\t-7 generate 7-bit scanner\n"
#~ msgstr "\t-7 genera un analitzador de 7 bits\n"
@@ -1009,28 +1047,28 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgid "\t-C specify degree of table compression (default is -Cem):\n"
#~ msgstr ""
-#~ "\t-C especifica el grau de compressió de la taula (per defecte -Cem):\n"
+#~ "\t-C especifica el grau de compressió de la taula (per defecte -Cem):\n"
#~ msgid "\t\t-Ca trade off larger tables for better memory alignment\n"
#~ msgstr ""
-#~ "\t\t-Ca renuncia a taules més grans a canvi de una millor alineació\n"
-#~ "\t\t de la memòria\n"
+#~ "\t\t-Ca renuncia a taules més grans a canvi de una millor alineació\n"
+#~ "\t\t de la memòria\n"
#~ msgid "\t\t-Ce construct equivalence classes\n"
-#~ msgstr "\t\t-Ce construeix classes d'equivalència\n"
+#~ msgstr "\t\t-Ce construeix classes d'equivalència\n"
#~ msgid "\t\t-Cf do not compress scanner tables; use -f representation\n"
#~ msgstr ""
#~ "\t\t-Cf no comprimeix les taules de l'analitzador; utilitza la "
-#~ "representació -f\n"
+#~ "representació -f\n"
#~ msgid "\t\t-CF do not compress scanner tables; use -F representation\n"
#~ msgstr ""
#~ "\t\t-CF no comprimeix les taules de l'analitzador; utilitza la "
-#~ "representació -F\n"
+#~ "representació -F\n"
#~ msgid "\t\t-Cm construct meta-equivalence classes\n"
-#~ msgstr "\t\t-Cm construeix classes de metaequivalència\n"
+#~ msgstr "\t\t-Cm construeix classes de metaequivalència\n"
#~ msgid "\t\t-Cr use read() instead of stdio for scanner input\n"
#~ msgstr ""
@@ -1040,7 +1078,7 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgstr "\t-o especifica el fitxer d'eixida\n"
#~ msgid "\t-P specify scanner prefix other than \"yy\"\n"
-#~ msgstr "\t-P especifica un prefix de l'analitzador diferent a «yy»\n"
+#~ msgstr "\t-P especifica un prefix de l'analitzador diferent a «yy»\n"
#~ msgid "\t-S specify skeleton file\n"
#~ msgstr "\t-S especifica el fitxer d'esquema\n"
@@ -1049,4 +1087,4 @@ msgstr "*Algo estrany* - terminal: %d val: %d\n"
#~ msgstr "\t--help produeix aquest missatge d'ajuda\n"
#~ msgid "\t--version report %s version\n"
-#~ msgstr "\t--version informa de la versió de %s\n"
+#~ msgstr "\t--version informa de la versió de %s\n"
diff --git a/po/da.gmo b/po/da.gmo
index 3bfbe8d..3725c7a 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 6f5e56d..2ccd5f4 100644
--- a/po/da.po
+++ b/po/da.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2002.3.12a\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2002-03-27 09:12+0100\n"
"Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
"Language-Team: Danish <dansk@klid.dk>\n"
@@ -25,14 +25,17 @@ msgid "dangerous trailing context"
msgstr "farlig efterfølgende kontekst"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " linjenummer for associeret regel:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " ud-overgange: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -65,19 +68,15 @@ msgstr "kunne ikke oprette en unik buffersluttilstand"
msgid "state # %d:\n"
msgstr "tilstand %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr ""
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "konsistenskontrollen mislykkedes i symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "forkert overgangstegn fundet i sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -89,30 +88,30 @@ msgstr ""
"Ækvivalensklasser:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tilstand %d accepterer: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "tilstand %d accepterer: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr ""
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr ""
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
#, fuzzy
msgid "Could not write ecstbl"
msgstr "kunne ikke oprette %s"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -122,387 +121,401 @@ msgstr ""
"\n"
"Meta-ækvivalensklasser:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
-#: gen.c:1360
+#: gen.c:1354
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "kunne ikke oprette %s"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr ""
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr ""
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr ""
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
#, fuzzy
msgid "Could not write ftbl"
msgstr "kunne ikke oprette %s"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "kunne ikke oprette %s"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "kunne ikke oprette %s"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr ""
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "reglen kan ikke matches"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "flaget -s angivet, men standardreglen kan følges"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "-+ kan ikke bruges sammen med flaget -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "-f eller -F kan ikke bruges sammen med -l"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "-R eller -Rb kan ikke bruges sammen med -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF og -Cm kan ikke bruges sammen"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF og -I kan ikke bruges sammen"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF kan ikke bruges i lex-kompatibilitetstilstand"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf og -CF er gensidigt udelukkende"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "-+ kan ikke bruges sammen med flaget -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "-+ kan ikke bruges sammen med %array"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Flagene -+ og -R er gensidigt udelukkende."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "kunne ikke oprette %s"
-#: main.c:415
+#: main.c:419
#, fuzzy
msgid "could not write tables header"
msgstr "kunne ikke oprette %s"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan ikke åbne skabelonfilen %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "fejl ved læsning af skabelonsfilen %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "fejl ved lukning af skabelonfilen %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "fejl ved oprettelsen af headerfilen %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "fejl ved skrivning af udfilen %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "fejl ved lukning af udfilen %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "fejl ved sletning af udfilen %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Ingen sikkerhedskopiering.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimerete tabeller backer alltid tillbaka.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "fejl ved skrivning af sikkerhedskopifilen %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "fejl ved lukning af sikerhedskopifilen %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Statistik over brugaf %s version %s:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " fortolkningsflag: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-tilstand\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-tilstand (%d ord)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regler\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Ingen sikkerhedskopiering\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimerede tabeller bakker altid tilbake\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Begyndelse-af-linje-mønster brugt\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startbetingelse\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontilstande, %d dobbelte epsilontilstande\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " ingen tegnklasser\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d tegnklasser behøvede %d/%d ord for gemning, %d genbrugte\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d par med tilstand/næste-tilstand oprettede\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unikke/duplikerede overgange\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d tabelposter\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base/standard-poster oprettede\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max %d) næste/test-poster oprettede\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max %d) skablon-næste/test-poster oprettede\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tomme tabelposter\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototyper oprettede\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d skabloner oprettede, %d formål\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ækvivalensklasser oprettet\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-ækvivalensklasser oprettede\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d gemte) hash-kollisioner, %d DFA'er er ens\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d opsætninger med omallokeringer krævedes\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d totale tabelposter kræves\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Intern fejl. flexopts er fejlbehæftede.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "ukendt flag til -C \"%c\""
-#: main.c:1184
+#: main.c:1192
#, fuzzy, c-format
msgid "%s %s\n"
msgstr "%s version %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "uoprettelig fejl ved analysen"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kunne ikke oprette sikkerhedskopi af info-fil %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"flaget -l for opførsel som AT&T's lex medfører et væsentligt præstationstab\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " og kan være den egentlige årsag til andre rapporter om dette\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno medfører en væsentlig præstationstab\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) medfører et mindre præstationstab\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() medfører et mindre præstationstab\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT medfører et væsentligt præstationstab\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regler for variabel efterfølgende kontekst medfører et væsentlig "
"præstationstab\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kan ikke bruges sammen med -f eller -F"
-#: main.c:1559
+#: main.c:1567
#, fuzzy, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kan ikke bruges sammen med -f eller -F"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"regler for variabel efterfølgende kontekst kan ikke bruges\n"
"sammen med -f eller -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass er kun meningsfyldt for C++-fortolkere"
-#: main.c:1784
+#: main.c:1798
#, fuzzy, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "%s [FLAG...] [fil...]\n"
-#: main.c:1787
+#: main.c:1801
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -679,6 +692,7 @@ msgid "state # %4d\t"
msgstr "tilstand %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** slut på udskrift\n"
@@ -709,111 +723,126 @@ msgstr "fandt for mange overgange i mkxtion()"
msgid "too many rules (> %d)!"
msgstr "for mange regler (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr ""
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
#, fuzzy
msgid "bad start condition list"
msgstr "forkert <startbetingelse>: %s"
-#: parse.y:337
+#: parse.y:315
#, fuzzy
msgid "unrecognized rule"
msgstr "ukendt %-direktiv"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
#, fuzzy
msgid "trailing context used twice"
msgstr "Regel for variabel efterfølgende kontekst på linje %d\n"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr ""
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr ""
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
#, fuzzy
msgid "negative range in character class"
msgstr " ingen tegnklasser\n"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr "\t-i opret en versalufølsom fortolker\n"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr "\t-i opret en versalufølsom fortolker\n"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr ""
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "ukendt %-direktiv"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "ukendt %-direktiv"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "ufuldstændig navnedefinition"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "ukendt %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "forkert tegnklasse"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "udefinieret definition {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "forkert <startbetingelse>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "citationstegn savnes"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "forkert udtryk for tegnklasse: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "forkert tegn imellem {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "} savnes"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "filslutning mødt inden i en handling"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "filslutning mødt inden i en handling"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "forkert tegn: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "kan ikke åbne %s"
@@ -852,11 +881,11 @@ msgstr ""
msgid "symbol table memory allocation failed"
msgstr "hukommelsestildeling for symboltabel mislykkedes"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "navnet defineret to gange"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "startbetingelse %s deklareret to gange"
@@ -866,6 +895,7 @@ msgid "premature EOF"
msgstr "for tidlig filslut"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Slutmarkering\n"
@@ -874,6 +904,9 @@ msgstr "Slutmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Noget mærkeligt* - tegn: %d værdi: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "konsistenskontrollen mislykkedes i symfollowset"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "Kan ikke angive header-flag hvis der skrives til standard-ud."
@@ -925,9 +958,6 @@ msgstr "*Noget mærkeligt* - tegn: %d værdi: %d\n"
#~ msgid "\t-h produce this help message\n"
#~ msgstr "\t-h vis denne hjælpetekst\n"
-#~ msgid "\t-i generate case-insensitive scanner\n"
-#~ msgstr "\t-i opret en versalufølsom fortolker\n"
-
#~ msgid "\t-l maximal compatibility with original lex\n"
#~ msgstr "\t-l maksimal kompatibilitet med den oprindelige lex\n"
diff --git a/po/de.gmo b/po/de.gmo
index a788df2..d12d4b2 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 0e18d8c..6da5c62 100644
--- a/po/de.po
+++ b/po/de.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.19\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2002-09-11 10:23:07+0200\n"
"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
"Language-Team: German <de@li.org>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "gefährlicher folgender Kontext"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " verbundene Regelzeilennummern"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " Aus-Übergänge: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -64,19 +67,15 @@ msgstr "konnte keinen einzigartigen Ende-des-Puffers-Zustand erzeugen"
msgid "state # %d:\n"
msgstr "Zustand # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Konnte yynxt_tbl[][] nicht schreiben"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "Konstistenzüberprüfung in symfollowset fehlgeschlagen"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "ungültiges Übergangszeichen in sympartition() entdeckt"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,30 +87,30 @@ msgstr ""
"Äquivalenz-Klassen:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "Zustand # %d akzeptiert: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "Zustand # %d akzeptiert: "
-#: gen.c:1163
+#: gen.c:1157
#, fuzzy
msgid "Could not write yyacclist_tbl"
msgstr "Konnte yyacc_tbl nicht schreiben"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Konnte yyacc_tbl nicht schreiben"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Konnte ecstbl nicht schreiben"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -121,386 +120,400 @@ msgstr ""
"\n"
"Meta-Äquivalenz-Klassen:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Konnte yymeta_tbl nicht schreiben"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Konnte yybase_tbl nicht schreiben"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Konnte yydef_tbl nicht schreiben"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Konnte yynxt_tbl nicht schreiben"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Konnte yychk_tbl nicht schreiben"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Konnte ftbl nicht schreiben"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "Konnte ecstbl nicht schreiben"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "Konnte ecstbl nicht schreiben"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Konnte yynultrans_tbl nicht schreiben"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "Regel kann nicht passen"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "»-s«-Option gegeben, aber Vorgabe-Regel kann nicht passen"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Kann nicht »-+« zusammen mit »-l«-Option verwenden"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Kann nicht »-f« oder »-F« mit »-l«-Option verwenden"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Kann nicht »-R« oder »-Rb« mit »-l«-Option verwenden"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "»-Cf«/»-CF« und »-Cm« machen zusammen keinen Sinn"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "»-Cf«/»-CF« und »-I« sind inkompatibel"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "»-Cf«/»-CF« sind inkompatibel mit lex-Kompatibilitätsmodus"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "»-Cf« und »-CF« schließen sich gegenseitig aus"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Kann nicht »-+« zusammen mit »-CF«-Option verwenden"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "»%array« inkompatibel mit »-+«-Option"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Optionen »-+« und »-R« schließen sich gegenseitig aus"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "konnte %s nicht erzeugen"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "konnte Tabellenköpfe nicht schreiben"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "kann Skelett-Datei %s nicht öffnen"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "Eingabefehler beim Lesen der Skelett-Datei %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "Fehler beim Schließen der Skelett-Datei %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "Fehler beim Erstellen der Header-Datei %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "Fehler beim Schreiben der Ausgabe-Datei %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "Fehler beim Schließen der Ausgabe-Datei %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "Fehler beim Löschen der Ausgabe-Datei %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Kein Backing-up.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d Zustände mit Backing-up (nicht akzeptierend).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimierte Tabellen benutzen immer Backing-up.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "Fehler beim Schreiben der Backup-Datei %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "Fehler beim Schließen der Backup-Datei %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s Version %s Benutzungsstatistiken:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " Scanner-Optionen: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-Zustände\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-Zustände (%d Wörter)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d Regeln\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Kein Backing-up.\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d Zustände mit Backing-up (nicht akzeptierend).\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimierte Tabellen benutzen immer Backing-up.\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Zeilenanfang-Muster benutzt\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d Startbedingungen\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d Epsilon-Zustände, %d Doppel-Epsilon-Zustände\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " keine Zeichenklassen\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d Zeichenklassen brauchten %d/%d Speicherwörter, %d wiederbenutzt\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d Zustand/Nächster-Zustand-Paare erzeugt\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d einzigartige/doppelte Übergänge\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d Tabelleneinträge\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d Einträge »base-def« erzeugt\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max. %d) Einträge »nxt-chk« erzeugt\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max. %d) Einträge »template nxt-chk« erzeugt\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d leere Tabelleneinträge\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d Protos erzeugt\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d Schablonen erzeugt, %d Benutzungen\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d Äquivalenz-Klassen erzeugt\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d Meta-Äquivalenz-Klassen erzeugt\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d gespeichert) Hash-Kollisionen, %d DFAs gleich\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d Sätze von Neuallozierungen benötigt\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d Tabelleneinträge insgesamt benötigt\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Interner Fehler. flexopts sind missgestaltet.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Versuchen Sie es mit »%s --help« für mehr Informationen.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "unbekannte »-C«-Option »%c«"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "fataler Parse-Fehler"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "konnte Datei %s mit Informationen zum Backing-up nicht erzeugen"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l AT&T-lex-Kompatibilitätsmodus führt zu großen Geschwindigkeitseinbußen\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" und ist möglicherweise die wirkliche Quelle anderer gemeldeter Einbußen\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno führt zu großen Geschwindigkeitseinbußen\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) führt zu kleineren Geschwindigkeitseinbußen\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() führt zu kleineren Geschwindigkeitseinbußen\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT führt zu großen Geschwindigkeitseinbußen\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regeln mit variablem folgenden Kontext führen zu großen "
"Geschwindigkeitseinbußen\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kann nicht mit »-f« oder »-F« zusammen verwendet werden"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kann nicht mit REJECT zusammen verwendet werden"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"Regeln mit variablem folgenden Kontext können nicht mit »-f« oder »-F« "
"verwendet werden"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ist nur bei C++-Scannern sinnvoll"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Aufruf: %s [OPTIONEN...] [DATEI...]\n"
-#: main.c:1787
+#: main.c:1801
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -686,6 +699,7 @@ msgid "state # %4d\t"
msgstr "Zustand # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** end der Ausgabe\n"
@@ -716,107 +730,120 @@ msgstr "zu viele Übergänge in mkxtion() gefunden"
msgid "too many rules (> %d)!"
msgstr "zu viele Regeln (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "unbekannter Fehler beim Bearbeiten von Abschnitt 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "ungültige Startbedingungs-Liste"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "nicht erkannte Regel"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "folgender Kontext doppelt verwendet"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "ungültige Iterationswerte"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "Iterationswerte müssen positiv sein"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "negativer Bereich in Zeichenklasse"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+
+#: parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Eingabezeile zu lang\n"
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "nicht erkannte '%'-Direktive"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "nicht erkannte '%'-Direktive"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "unvollständige Namensdefinition"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "nicht erkannte %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "ungültige Zeichenklasse"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "undefinierte Definitione {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "ungültige <Startbedingung>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "fehlendes Anführungszeichen"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "ungültiger Zeichenklassenausdruck: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "ungültiges Zeichen innerhalb von {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "fehlende }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "EOF innerhalb einer Aktion angetroffen"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "EOF innerhalb einer Aktion angetroffen"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "ungültiges Zeichen: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "kann %s nicht öffnen"
@@ -855,11 +882,11 @@ msgstr "Unbekannter Fehler=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "Speicheranforderung für Symboltabelle fehlgeschlagen"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "Name zweimal definiert"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "Startbedingung %s zweimal definiert"
@@ -869,6 +896,7 @@ msgid "premature EOF"
msgstr "vorzeitiges EOF"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Endemarkierung\n"
@@ -877,6 +905,9 @@ msgstr "Endemarkierung\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Etwas Seltsames* - tok: %d val: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "Konstistenzüberprüfung in symfollowset fehlgeschlagen"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "Kann Header-Option nicht benutzen wenn Ausgabe nach stdout geht."
diff --git a/po/es.gmo b/po/es.gmo
index 1a85e3f..94831d5 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 35e51e5..e90821e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -10,8 +10,8 @@
msgid ""
msgstr ""
"Project-Id-Version: GNU flex 2.5.8\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2003-01-02 12:06+0100\n"
"Last-Translator: Nicolás García-Pedrajas <ngarcia-pedrajas@acm.org>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -30,14 +30,17 @@ msgid "dangerous trailing context"
msgstr "contexto posterior peligroso"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " números de línea asociados a la regla:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " fin de transiciones: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -83,22 +86,15 @@ msgstr "no se pudo crear un estado único de final-de-buffer"
msgid "state # %d:\n"
msgstr "estado # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr ""
-# Te he corregido un error de tecleo, y puesto entre comillas
-# la llamada a la función em
-# ok, lo de las comillas no lo sabía ng
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "falló el test de consistencia en `symfollowset'"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "carácter de transición erróneo detectado en sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -110,32 +106,32 @@ msgstr ""
"Clases de equivalencia:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "el estado # %d acepta: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "el estado # %d acepta: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr ""
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr ""
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
#, fuzzy
msgid "Could not write ecstbl"
msgstr "no se pudo crear %s"
# ¿No sería mejor "MetaEquivalencia" o "Meta-Equivalencia"? sv
# yo prefiero como está, es el mismo caso de metafísica ng+
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -145,43 +141,43 @@ msgstr ""
"\n"
"Clases de metaequivalencia:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
-#: gen.c:1360
+#: gen.c:1354
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "no se pudo crear %s"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr ""
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr ""
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr ""
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
#, fuzzy
msgid "Could not write ftbl"
msgstr "no se pudo crear %s"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "no se pudo crear %s"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "no se pudo crear %s"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr ""
@@ -192,25 +188,25 @@ msgstr ""
# abierta con una cerrada, por ejemplo, pero no cuando se trata de ver
# si una regla "matches" o no "matches".
# creo que aplicar no qeuda mal ng+
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "la regla no se puede aplicar"
# ## re-redacto el mensaje. sv
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr ""
"se ha especificado la opción -s pero se puede aplicar la regla por defecto"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "No se puede usar -+ con la opción -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "No se pueden usar las opciones -f o -F con la opción -l"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "No se pueden usar las opciones -R o -Rb con la opción -l"
@@ -218,7 +214,7 @@ msgstr "No se pueden usar las opciones -R o -Rb con la opción -l"
# ¿juntos o juntas?
# Creo que está bien así em
# ok ng
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF y -Cm no tienen sentido juntos"
@@ -227,42 +223,42 @@ msgstr "-Cf/-CF y -Cm no tienen sentido juntos"
# entonces lo dejo ng
# Yo creo que en este caso no hace falta porque se leería así:
# "menos ce efe o menos ce efe mayúscula y menos I son incompatibles". sv
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF e -I son incompatibles"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF son incompatibles con el modo de compatibilidad con lex"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf y -CF son mutuamente excluyentes"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "No se puede usar -+ con la opción -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array incompatible con la opción -+"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-+ y -R son mutuamente excluyentes"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "no se pudo crear %s"
-#: main.c:415
+#: main.c:419
#, fuzzy
msgid "could not write tables header"
msgstr "no se pudo crear %s"
@@ -271,7 +267,7 @@ msgstr "no se pudo crear %s"
# lo mismo de antes ng
# Lo mismo que antes :) em
# idem ng+
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "no se puede abrir el archivo de esquema %s"
@@ -292,45 +288,46 @@ msgstr "no se puede abrir el archivo de esquema %s"
# que decida una tercera persona
#
# ## Cambio "leyendo" por "al leer", como en otras traducciones. sv
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "error de entrada al leer el archivo de esquema %s"
# Otra vez :) em
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "error al cerrar el archivo de esquema %s"
# Lo mismo, archivo de seguridad? em
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "error al crear el archivo de cabecera %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "error al escribir el archivo de salida %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "error al cerrar el archivo de salida %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "error al borrar el archivo de salida %s"
# Copia de seguridad? em
# Sugerencia: No hay retroceso. sv
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Sin retroceso.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d estados de retroceso (no-aceptación).\n"
@@ -340,12 +337,13 @@ msgstr "%d estados de retroceso (no-aceptación).\n"
# "Compressed tables are always back up"
# (supuesto que back es irregular y su pasado/participio es back y no backed,
# que ahora mismo no me acuerdo). sv
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Las tablas comprimidas siempre implican un retraso.\n"
# Lo mismo, archivo de seguridad? em
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "error al escribir el archivo de seguridad %s"
@@ -353,45 +351,47 @@ msgstr "error al escribir el archivo de seguridad %s"
# En todas las traducciones que ha aparecido
# he sugerido el uso de copia de seguridad em
# ok ng
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "error al cerrar el archivo de copia de seguridad %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versión %s estadísticas de uso:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " opciones del analizador: -"
# NFA significa non-deterministic finite automata, así que lo he traducido
# por AFN
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estados AFN\n"
# DFA significa deterministic finite autómata, lo he traducido por AFD
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estados AFD {%d palabras}\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d reglas\n"
# Otra vez ;) em
# modificado como en la anterior ng
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Sin retroceso\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d estados de retroceso (no-aceptación)\n"
@@ -399,16 +399,18 @@ msgstr " %d estados de retroceso (no-aceptación)\n"
# FIXME.
# Informar al autor de que esta frase es casi idéntica a una anterior, para
# que sólo haya que traducirla una vez. sv
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Siempre se realiza copia de seguridad de las tablas comprimidas\n"
# Lo mismo "se han usado patrones de comienzo de línea". sv
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Usados patrones de comienzo-de-línea\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condiciones de activación\n"
@@ -421,16 +423,17 @@ msgstr " %d/%d condiciones de activación\n"
# lo de doble épsilon no lo he oído nunca. Creo que hay que dejar el término
# técnico. ng
# Tu mandas, no tengo nada que decir a eso em
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estados épsilon, %d estados doble épsilon\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " sin clases de caracteres\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
@@ -441,13 +444,13 @@ msgstr ""
# ¿Qué tal " se han creado %d pares estado/estado-siguiente"?
# Bueno, mejor no lo hagas hasta que no se sepa cómo queda al lado
# de las otras. sv
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d pares estado/estado-siguiente creados\n"
# ## Añado sendas eses, ya que son transiciones. sv
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transiciones únicas/duplicadas\n"
@@ -456,50 +459,50 @@ msgstr " %d/%d transiciones únicas/duplicadas\n"
# sí, mejor ng
# ¿Que había antes? (¿entradas a la tabla?)
# (entradas *de* la tabla me suena mejor) sv.
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d entradas en la tabla\n"
# ## pongo `comillas' en el base-def. sv
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entradas `base-def' creadas\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pico %d) entradas nxt-chk creadas\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pico %d) entradas de plantilla nxt-chk creadas\n"
# ¿entradas a la tabla o entradas de la tabla? sv
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entradas en la tabla vacías\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototipos creados\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d plantillas creadas, %d usos\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d clases de equivalencia creadas\n"
# "se han creado..." sv
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d clases de metaequivalencia creadas\n"
@@ -517,39 +520,40 @@ msgstr " %d/%d clases de metaequivalencia creadas\n"
# un lugar que se puede determinar mediante una transformación directa de su
# clave, por eso si hay dos claves iguales hay una colisión, porque dos
# registros van al mismo sitio ng+
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
" %d (%d almacenadas) colisiones de localización ('hash'), %d AFDs iguales\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " se necesitan %d conjuntos de relocalización\n"
# Lo mismo que en otro sitio: ¿table entries son entradas a la tabla o
# de la tabla? sv
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " se necesitan %d entradas totales en la tabla\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Error interno. flexopts mal formadas.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Pruebe `%s --help' para más información.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "opción -C desconocida '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
@@ -566,7 +570,7 @@ msgstr "%s %s\n"
# Sugerencia: error fatal. sv
# con comillas es un término medio. Lo de error grave fue una sugerencia
# de Enrique, y croe que queda mejor. ng+
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "error muy grave en el analizador sintáctico"
@@ -589,26 +593,28 @@ msgstr "error muy grave en el analizador sintáctico"
# ##
# ## Eso no es válido ( solución, usa emacs po-mode :) ) em
# ## ok, ya estoy instalando linux otra vez ng+
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
"no se pudo crear el archivo de información de las reglas\n"
"que producen un retroceso del analizador %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l la opción de compatibilidad con AT&T lex implica una penalización del\n"
"rendimiento muy alta\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" y puede ser el origen real de otras penalizaciones del rendimiento "
"notificadas\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -616,49 +622,53 @@ msgid ""
msgstr ""
"la %%opción yylineno implica una penalización del rendimiento muy alta\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interactivo) implica una pequeña penalización del rendimiento\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() implica un pequeña penalización del rendimiento\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT implica una penalización del rendimiento muy alta\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"La existencia de reglas de contexto posterior variable implica una\n"
"penalización del rendimiento muy alta\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT no se puede usar con -f o -F"
-#: main.c:1559
+#: main.c:1567
#, fuzzy, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "la %opción yylineno no se puede usar con -f o -F"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"las reglas de contexto posterior variable no se pueden usar con -f o -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "la %option yyclass sólo tiene sentido para los analizadores en C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uso: %s [OPCIONES] [FICHERO]...\n"
-#: main.c:1787
+#: main.c:1801
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -853,6 +863,7 @@ msgstr "estado # %4d\t"
# Sugerencia: volcado. sv
# ok ng+
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** fin de volcado\n"
@@ -884,82 +895,94 @@ msgstr "encontradas demasiadas transiciones en mkxtion()"
msgid "too many rules (> %d)!"
msgstr "demasiadas reglas (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "error desconocido en el proceso de la sección 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "lista de condiciones de activación incorrecta"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "regla no reconocida"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "contexto posterior usado dos veces"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "valores incorrectos para iteración"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "los valores para iteración deben ser positivos"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "rango negativo en clase caracteres"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"\t-i genera un analizador que no distingue entre mayúsculas y minúsculas\n"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"\t-i genera un analizador que no distingue entre mayúsculas y minúsculas\n"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr ""
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "directiva '%' no reconocida"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directiva '%' no reconocida"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "definición de nombre incompleta"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%opción no reconocida: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "clase de caracteres incorrecta"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "definición no definida {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condición de activación> incorrecta: %s"
# Sugerencia: falta una comilla. sv
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "falta comilla"
@@ -967,30 +990,35 @@ msgstr "falta comilla"
# incorrecta la expresión ... em
# ok, de traducir al final ocurre que acabas hablando al revés,
# como en inglés ng
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "expresión de la clase de caracteres incorrecta: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "carácter incorrecto dentro de {}'s"
# Sugerencia: "falta una }". sv
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "falta }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "Fin de archivo (EOF) encontrado dentro de una acción"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "Fin de archivo (EOF) encontrado dentro de una acción"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "carácter incorrecto: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "no se puede abrir %s"
@@ -1033,12 +1061,12 @@ msgstr "falló la reserva de memoria para la tabla de símbolos"
# hay que procurar evitar esto, siempre nos suena mejor
# el nombre ha sido definido dos veces, ¿qué te parece? em
# mucho mejor, ya lo había pensado, pero no sabía cual era el estilo usual. ng
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "el nombre ha sido definido dos veces"
# Aquí lo mismo 'la condición ... ha sido ..." em
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "la condición de activación %s ha sido declarada dos veces"
@@ -1048,6 +1076,7 @@ msgid "premature EOF"
msgstr "fin de archivo (EOF) prematuro"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Marcador de fin\n"
@@ -1058,6 +1087,12 @@ msgstr "Marcador de fin\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Algo extraño* - terminal: %d val: %d\n"
+# Te he corregido un error de tecleo, y puesto entre comillas
+# la llamada a la función em
+# ok, lo de las comillas no lo sabía ng
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "falló el test de consistencia en `symfollowset'"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr ""
#~ "No se puede especificar una opción de cabecera si se escribe en stdout"
@@ -1129,11 +1164,6 @@ msgstr "*Algo extraño* - terminal: %d val: %d\n"
#~ msgid "\t-h produce this help message\n"
#~ msgstr "\t-h produce este mensaje de ayuda\n"
-#~ msgid "\t-i generate case-insensitive scanner\n"
-#~ msgstr ""
-#~ "\t-i genera un analizador que no distingue entre mayúsculas y "
-#~ "minúsculas\n"
-
#~ msgid "\t-l maximal compatibility with original lex\n"
#~ msgstr "\t-l compatibilidad máxima con el lex original\n"
diff --git a/po/flex.pot b/po/flex.pot
index 6213b15..c940bba 100644
--- a/po/flex.pot
+++ b/po/flex.pot
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,14 +25,17 @@ msgid "dangerous trailing context"
msgstr ""
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr ""
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr ""
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -59,19 +62,15 @@ msgstr ""
msgid "state # %d:\n"
msgstr ""
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr ""
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr ""
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr ""
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -79,404 +78,418 @@ msgid ""
"\n"
msgstr ""
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr ""
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr ""
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr ""
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr ""
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr ""
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
"Meta-Equivalence Classes:\n"
msgstr ""
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr ""
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr ""
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr ""
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr ""
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr ""
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr ""
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr ""
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr ""
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr ""
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr ""
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr ""
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr ""
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr ""
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr ""
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr ""
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr ""
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr ""
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr ""
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr ""
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr ""
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr ""
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr ""
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr ""
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr ""
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr ""
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr ""
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr ""
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr ""
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr ""
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr ""
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr ""
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr ""
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr ""
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr ""
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr ""
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr ""
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr ""
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr ""
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr ""
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr ""
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr ""
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr ""
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr ""
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr ""
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr ""
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr ""
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr ""
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr ""
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr ""
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr ""
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr ""
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr ""
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr ""
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr ""
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr ""
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr ""
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr ""
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr ""
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr ""
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr ""
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr ""
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr ""
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr ""
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr ""
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr ""
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr ""
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr ""
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -596,6 +609,7 @@ msgid "state # %4d\t"
msgstr ""
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr ""
@@ -626,107 +640,119 @@ msgstr ""
msgid "too many rules (> %d)!"
msgstr ""
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr ""
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr ""
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr ""
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr ""
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr ""
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr ""
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr ""
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+
+#: parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr ""
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr ""
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr ""
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr ""
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr ""
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr ""
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr ""
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr ""
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr ""
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr ""
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr ""
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr ""
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr ""
-#: scan.l:820
+#: scan.l:945
+msgid "EOF encountered inside pattern"
+msgstr ""
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr ""
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr ""
@@ -765,11 +791,11 @@ msgstr ""
msgid "symbol table memory allocation failed"
msgstr ""
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr ""
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr ""
@@ -779,6 +805,7 @@ msgid "premature EOF"
msgstr ""
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr ""
diff --git a/po/fr.gmo b/po/fr.gmo
index 4c6583a..25d3f26 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 99a10e2..14ffc0c 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,8 +8,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2004-05-10 08:00-0500\n"
"Last-Translator: Michel Robitaille <robitail@IRO.UMontreal.CA>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -28,14 +28,17 @@ msgid "dangerous trailing context"
msgstr "le contexte traîné est dangereux"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " numéros de ligne associés à la règle :"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " transitions de sortie : "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -68,19 +71,15 @@ msgstr "impossible de créer un seul état de fin de tampon"
msgid "state # %d:\n"
msgstr "état n° %d :\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "ne peut écrire yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "le contrôle de cohérence a échoué dans symfollowset()"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "mauvais caractère de transition détecté dans sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -92,29 +91,29 @@ msgstr ""
"Classes d'Équivalence :\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "l'état n° %d accepte : [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "l'état n° %d accepte : "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "Ne peut écrire yyacclist_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "ne peut écrire yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "ne peut écrire ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -124,336 +123,346 @@ msgstr ""
"\n"
"Classes de Méta-Équivalence :\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "ne peut écire yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "ne peut écrire yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "ne peut écrire yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "ne peut écrire yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "ne peut écrire yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "ne peut écrire ftbl"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "Ne peut écrire ssltbl"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "Ne peut écrire eoltbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "ne peut écrire yynultrnas_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "la règle ne peut être pairée"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "l'option -s est donnée mais la règle par défaut peut être reconnue"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "L'option -+ ne peut être combinée à -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Les options -f et -F ne peuvent être combinées à -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"Les options --reentrant ou --bison-bridge ne peuvent être combinées à "
"l'option -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF et -Cm ne peuvent être spécifiés ensemble"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF et -I sont incompatibles"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
"l'option -Cf/-CF n'est pas compatible avec le mode de compatibilité « lex »"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf et -CF sont mutuellement exclusifs"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "L'option -+ ne peut être combinée à -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array incompatible avec l'option -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Les options +- et --reentrant sont mutuellement exclusives."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "bridge bison n'est pas supporté pour l'analyseur C++"
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "impossible de créer %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "ne peut écrire les tables d'en-tête"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "impossible d'ouvrir le fichier canevas %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erreur lors de la lecture du fichier canevas %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "erreur lors de la fermeture du fichier canevas %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "erreur de création du fichier d'en-tête %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "erreur lors de l'écriture du fichier de sortie %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "erreur lors de la fermeture du fichier de sortie %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "erreur lors de l'effacement du fichier de sortie %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Pas de retour-arrière.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d états avec retour arrière (non-acceptants).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Les tables comprimées font toujours des retours-arrière.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "erreur lors de l'écriture du fichier de sauvegarde %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "erreur lors de la fermeture du fichier de sauvegarde %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "« %s » version %s, statistiques d'utilisation :\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " options de l'analyseur lexical : -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d états NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d états AFD (%d mots)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d règles\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Pas de retour arrière\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d états avec retour arrière (si non-acceptants)\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Les tables comprimées font toujours des retours arrière\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Modèles utilisés en début de ligne\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d conditions de départ\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d états epsilon, %d états double epsilon\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " pas de classes de caractères\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d classes de caractères requises %d/%d mots-mémoire, %d recyclés\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d paires state/nextstate produites\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transitions uniques/dupliquées\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d entrées dans la table\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entrées base-def produites\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max %d) entrées nxt-chk produites\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max %d) entrées de modèle nxt-chk produites\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entrées vides dans la table\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes produits\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modèles produits, %d usages\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes d'équivalence produites\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de méta-équivalence produites\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sauvés) collisions durant dispersion, %d AFD égaux\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d ensembles de réallocations requis\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d entrées requises dans la table, au total\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erreur interne. Les options « flexopts » sont mal composées.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Essayer « %s --help » pour plus d'informations.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "l'option -C « %c » inconnue"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "erreur de lecture fatale"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
"impossible de créer le fichier d'information sur les retours-arrière %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"L'option -l de compatibilité avec le « lex » d'AT&T entraîne une importante\n"
"perte de performance\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " et peuvent être cause d'autres vices de performance observés\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -462,50 +471,54 @@ msgstr ""
"%%option yylineno entraîne une importante perte de performance SEULEMENT\n"
"sur les règles pouvant concorder avec le caractère de retour de chartiot\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "l'option -I (interactif) entraîne une faible perte de performance\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() entraîne une faible baisse de performance\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT entraîne une importante baisse de performance\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Les règles de contexte traîné variable entraînent une importante baisse de\n"
"performance\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ne peut pas être utilisé avec -f ou -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ne peut être utilisé avec REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"les règles de contexte traîné variable ne peuvent pas être utilisées avec\n"
"-f ou -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass n'a de sens qu'avec les analyseurs C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Usage: %s [OPTIONS] [fichier]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -700,6 +713,7 @@ msgid "state # %4d\t"
msgstr "état n° %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** fin du vidage\n"
@@ -730,109 +744,128 @@ msgstr "il y a trop de transitions dans mkxtion()"
msgid "too many rules (> %d)!"
msgstr "trop de règles (> %d) !"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "erreur inconnue de traitement à la section 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "mauvaise liste de conditions de départ"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "règle non reconnue"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "contexte remorqué utilisé deux fois"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "valeurs d'itération erronée"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "valeur d'itération doit être positive"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"l'étendue de caractères [%c-%c] est ambiguë pour un scanner insensible à la "
"casse"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "plage négative dans la classe de caractères"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"l'étendue de caractères [%c-%c] est ambiguë pour un scanner insensible à la "
+"casse"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"l'étendue de caractères [%c-%c] est ambiguë pour un scanner insensible à la "
+"casse"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "ligne d'entrée trop longue\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "directive « %top » mal composée"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directive « % » inconnue"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "« { » non pairé"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "définition de nom incomplète"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%option non-reconnue : %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "mauvaise classe de caractères"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "définition {%s} non-définie"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "mauvaise <condition de départ> : %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "guillemet manquant"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "mauvaise expression de classe de caractères : %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "mauvais caractère entre accolades « {} »"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "« } » non-apparié"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "Fin de fichier rencontrée à l'intérieur d'une action"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "Fin de fichier rencontrée à l'intérieur d'une action"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "mauvais caractère : %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "impossible d'ouvrir %s"
@@ -871,11 +904,11 @@ msgstr "Erreur inconnue=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "échec de l'allocation mémoire de la table des symboles"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "nom défini deux fois"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "condition de départ %s déclarée deux fois"
@@ -885,6 +918,7 @@ msgid "premature EOF"
msgstr "fin de fichier inattendue"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Marqueur de Fin\n"
@@ -893,6 +927,9 @@ msgstr "Marqueur de Fin\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Très bizarre* - tok : %d val : %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "le contrôle de cohérence a échoué dans symfollowset()"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "Ne peut spécifier l'option d'en-tête si en écriture sur stdout"
diff --git a/po/ga.gmo b/po/ga.gmo
index df5a87f..154ad25 100644
--- a/po/ga.gmo
+++ b/po/ga.gmo
Binary files differ
diff --git a/po/ga.po b/po/ga.po
index 928eaf0..c745297 100644
--- a/po/ga.po
+++ b/po/ga.po
@@ -1,15 +1,15 @@
# Irish translations for flex.
# Copyright (C) 2003 Free Software Foundation, Inc.
-# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003.
+# Kevin Patrick Scannell <scannell@SLU.EDU>, 2003, 2006.
#
msgid ""
msgstr ""
-"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
-"PO-Revision-Date: 2003-11-06 13:09-0500\n"
+"Project-Id-Version: flex 2.5.33\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
+"PO-Revision-Date: 2006-03-05 13:09-0500\n"
"Last-Translator: Kevin Patrick Scannell <scannell@SLU.EDU>\n"
-"Language-Team: Irish <ga@li.org>\n"
+"Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -24,25 +24,28 @@ msgid "dangerous trailing context"
msgstr "comhthéacs sraoilleach baolach"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " líne-uimhreacha de na rialacha bainteacha:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " athruithe amach: "
# weak, I know -- KPS
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
msgstr ""
"\n"
-" athruithe plúchta: EOF "
+" athruithe plúchta: comhadchríoch "
#: dfa.c:341
msgid "consistency check failed in epsclosure()"
-msgstr "teipeadh agus ag seiceáil chomhionannais i epsclosure()"
+msgstr "theip ar sheiceáil chomhionannais i epsclosure()"
#: dfa.c:429
msgid ""
@@ -65,19 +68,15 @@ msgstr "níorbh fhéidir staid shainiúil a chruthú ag deireadh maoláin"
msgid "state # %d:\n"
msgstr "staid # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Níorbh fhéidir yynxt_tbl[][] a scríobh"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "teipeadh agus ag seiceáil chomhionannais i symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "carachtar trasdula neamhbhailí i sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -89,29 +88,29 @@ msgstr ""
"Aicmí Coibhéise:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "glacann staid # %d le: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "glacann staid # %d le: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "Níorbh fhéidir yyacclist_tbl a scríobh"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Níorbh fhéidir yyacc_tbl a scríobh"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Níorbh fhéidir ecstbl a scríobh"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -121,333 +120,343 @@ msgstr ""
"\n"
"Aicmí Meiteachoibhéise:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Níorbh fhéidir yymeta_tbl a scríobh"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Níorbh fhéidir yybase_tbl a scríobh"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Níorbh fhéidir yydef_tbl a scríobh"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Níorbh fhéidir yynxt_tbl a scríobh"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Níorbh fhéidir yychk_tbl a scríobh"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Níorbh fhéidir ftbl a scríobh"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "Níorbh fhéidir ssltbl a scríobh"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "Níorbh fhéidir eoltbl a scríobh"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Níorbh fhéidir yynultrans_tbl a scríobh"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "Ní féidir riail chomhoiriúnach a aimsiú"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr ""
-"bhí an rogha -s tugtha ach is féidir an riail loicthe a chur i "
+"bhí an rogha -s tugtha ach is féidir an riail réamhshocraithe a chur i "
"gcomhoiriúnacht"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Níl -+ ar fáil in éineacht leis an rogha -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Níl -f nó -F ar fáil in éineacht leis an rogha -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Níl --reentrant nó --bison-bridge ar fáil in éineacht leis an rogha -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Níl -Cf/-CF agus -Cm comhoiriúnach"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "Níl -Cf/-CF agus -I comhoiriúnach"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
-msgstr "Níl -Cf/-CF ar fáil sa mhodh chomhoiriúnachta lex"
+msgstr "Níl -Cf/-CF ar fáil sa mhód comhoiriúnachta lex"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "Is comheisiatach iad na roghanna -Cf agus -CF"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Níl -+ ar fáil in éineacht leis an rogha -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "níl %array comhoiriúnach leis an rogha -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Is comheisiatach iad na roghanna -+ agus --reentrant"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "níl bison bridge ar fáil don scanóir C++."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "níorbh fhéidir %s a chruthú"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "níorbh fhéidir ceanntásc táblaí a scríobh"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "ní féidir creatchomhad %s a oscailt"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
-msgstr "earráid agus ag léamh creatchomhaid %s"
+msgstr "earráid agus creatchomhaid %s á léamh"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
-msgstr "earráid agus ag dúnadh creatchomhaid %s"
+msgstr "earráid agus creatchomhaid %s á dhúnadh"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
-msgstr "earráid agus ag cruthú comhad ceanntáisc %s"
+msgstr "earráid agus comhad ceanntáisc %s á chruthú"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
-msgstr "earráid agus ag scríobh aschomhaid %s"
+msgstr "earráid agus aschomhaid %s á scríobh"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
-msgstr "earráid agus ag dúnadh aschomhad %s"
+msgstr "earráid agus aschomhad %s á dhúnadh"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
-msgstr "earráid agus ag scriosadh aschomhaid %s"
+msgstr "earráid agus aschomhaid %s á scriosadh"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Ná cúlaítear.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d staid chúlaithe (níl ina staid ghlactha).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
-msgstr "Cúlaíonn táblaí comhdhlúite i gcónaí.\n"
+msgstr "Cúlaíonn táblaí comhbhrúite i gcónaí.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
-msgstr "earráid agus ag scríobh an chomhaid chúlaithe %s"
+msgstr "earráid agus comhad cúltaca %s á scríobh"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
-msgstr "earráid agus ag dúnadh an chomhaid chúlaithe %s"
+msgstr "earráid agus comhad cúltaca %s á dhúnadh"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s leagan %s staitistic d'úsáid:\n"
# fr uses "lexical analyzer"; scanóir seems fine though --KPS
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " roghanna don scanóir: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d staid NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d staid DFA (%d focal)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d riail\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Ná cúlaítear\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d staid chúlaithe (níl ina staid ghlactha)\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
-msgstr " Cúlaíonn táblaí comhdhlúite i gcónaí\n"
+msgstr " Cúlaíonn táblaí comhbhrúite i gcónaí\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Patrúin úsáidte ag ceann líne\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d coinníoll tosaigh\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d staid eipsealóin, %d staid eipsealóin dúbailte\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " níl aon aicme charachtair\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" tá gá le %d/%d aicme charachtair %d/%d focal stórála, %d athúsáidte\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d péire state/nextstate\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d athrú sainiúil/dúblach\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d iontráil sa tábla\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d iontráil base-def\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (buaic %d) iontráil nxt-chk\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (buaic %d) iontráil teimpléid nxt-chk\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d iontráil tábla folamh\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d fréamhshamhail\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d teimpléad, %d i bhfeidhm\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
-msgstr " %d/%d aicme coibhéise\n"
+msgstr " %d/%d aicme choibhéise\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
-msgstr " %d/%d aicme meiteachoibhéise\n"
+msgstr " %d/%d aicme mheiteachoibhéise\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sábháilte) tuairt haiseála, %d DFA comhionann le chéile\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " tá gá le %d sraith athdháilte\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " tá gá le %d iontráil tábla ar fad\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Earráid inmheánach (flexopts míchumtha).\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "rogha -C anaithnid '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "earráid pharsála mharfach"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "níorbh fhéidir comhad %s a chruthú don eolas faoin chúlú"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "is cúis le moilliú mór an rogha -l (comhoiriúnacht le AT&T lex)\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " agus is féidir gur cúis é le fadhbanna luais eile é\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -456,50 +465,54 @@ msgstr ""
"is cúis le moilliú mór an %%rogha yylineno, MÁ tá rialacha ann le línte nua "
"iontu\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "is cúis le moilliú beag an rogha -I (idirghníomhach)\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "is cúis le moilliú beag an fheidhm yymore()\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "is REJECT cúis le moilliú mór\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"is cúis le moilliú na rialacha maidir le comhthéacs sraoilleach "
"athraitheach\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "Níl REJECT ar fáil leis na roghanna -f nó -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "níl %option yylineno ar fáil le REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"níl rialacha maidir le comhthéacs sraoilleach athraitheach ar fáil le -f nó -"
"F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "tá an %option yyclass gan bhrí ach amháin le scanóirí C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Úsáid: %s [ROGHANNA] [COMHAD]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -569,20 +582,20 @@ msgstr ""
"Comhfháscadh táblaí:\n"
" -Ca, --align malartaigh táblaí níos mó d'ailíniú cuimhne níos fearr\n"
" -Ce, --ecs déan aicmí coibhéise\n"
-" -Cf ná comhfháisc táblaí; bain úsáid as léiriú -f\n"
-" -CF ná comhfháisc táblaí; bain úsáid as léiriú -F\n"
+" -Cf ná comhbhrúigh táblaí; bain úsáid as léiriú -f\n"
+" -CF ná comhbhrúigh táblaí; bain úsáid as léiriú -F\n"
" -Cm, --meta-ecs déan aicmí meiteachoibhéise\n"
" -Cr, --read bain úsáid as read() in ionad stdio d'ionchur\n"
-" -f, --full tóg scanóir atá mear agus mór; ar chomhbhrí le -Cfr\n"
-" -F, --fast úsáid léiriú táblaí tánaisteach; ar chomhbhrí le -CFr\n"
-" -Cem comhfháscadh loicthe (ar chomhbhrí le --ecs --meta-ecs)\n"
+" -f, --full tóg scanóir atá mear agus mór; ar comhbhrí le -Cfr\n"
+" -F, --fast úsáid léiriú táblaí tánaisteach; ar comhbhrí le -CFr\n"
+" -Cem comhfháscadh réamhshocraithe (== --ecs --meta-ecs)\n"
"\n"
"Dífhabhtú:\n"
" -d, --debug cuir dífhabhtú ar obair\n"
" -b, --backup scríobh eolas faoin chúlú chuig %s\n"
" -p, --perf-report scríobh tuairisc fheidhmithe chuig stderr\n"
" -s, --nodefault ná déan macalla de théacs neamh-chomhoiriúnach\n"
-" -T, --trace ba chóir do %s a rith i modh loirg\n"
+" -T, --trace ba chóir do %s a rith sa mhód loirg\n"
" -w, --nowarn ná taispeáin rabhaidh\n"
" -v, --verbose taispeáin achoimre ar staitistic scanóra chuig "
"stdout\n"
@@ -593,14 +606,15 @@ msgstr ""
" -t, --stdout scríobh an scanóir chuig stdout in ionad %s\n"
" --yyclass=COMHAD ainm de `class' C++\n"
" --header-file=COMHAD scríobh comhad ceanntáisc C i dteannta an "
-"scanóir\n"
+"scanóra\n"
" --tables-file[=COMHAD] scríobh na táblaí chuig COMHAD\n"
"\n"
"Scanóir:\n"
" -7, --7bit gin scanóir 7-giotán\n"
" -8, --8bit gin scanóir 8-giotán\n"
" -B, --batch gin scanóir baisce (i gcodarsnacht le -I)\n"
-" -i, --case-insensitive déan neamhshuim ar ceannlitreacha/litreacha beaga\n"
+" -i, --case-insensitive déan neamhshuim ar cheannlitreacha/litreacha "
+"beaga\n"
" -l, --lex-compat comhoiriúnacht le lex bunúsach, a mhéad is féidir\n"
" -X, --posix-compat comhoiriúnacht le lex POSIX, a mhéad is féidir\n"
" -I, --interactive gin scanóir idirghníomhach (i gcodarsnacht le -B)\n"
@@ -608,8 +622,7 @@ msgstr ""
"\n"
"Generated code:\n"
" -+, --c++ gin scanóir mar class C++\n"
-" -Dmacra[=sain] #define macra sain (sain='1' trí "
-"mhainneachtain)\n"
+" -Dmacra[=sain] #define macra sain (réamhshocrú: sain='1')\n"
" -L, --noline ná cuir treoracha #line sa scanóir\n"
" -P, --prefix=TEAGHRÁN úsáid TEAGHRÁN mar réimír in ionad \"yy\"\n"
" -R, --reentrant gin scanóir reentrant C\n"
@@ -635,7 +648,7 @@ msgstr "tá an t-ainm \"%s\" i bhfad Éireann rófhada"
#: misc.c:175
msgid "memory allocation failed in allocate_array()"
-msgstr "teipeadh agus ag riaradh cuimhne i allocate_array()"
+msgstr "theip ar dháileadh na cuimhne i allocate_array()"
#: misc.c:250
#, c-format
@@ -649,16 +662,16 @@ msgstr "ní foláir an rogha -8 chun an charachtair %s a úsáid"
#: misc.c:288
msgid "dynamic memory failure in copy_string()"
-msgstr "teipeadh agus ag riaradh cuimhne i copy_string()"
+msgstr "theip ar dháileadh na cuimhne i copy_string()"
#: misc.c:422
#, c-format
msgid "%s: fatal internal error, %s\n"
-msgstr "%s: earráid inmheánach marfach, %s\n"
+msgstr "%s: earráid inmheánach mharfach, %s\n"
#: misc.c:875
msgid "attempt to increase array size failed"
-msgstr "teipeadh agus ag iarraidh an eagair a mhéadú"
+msgstr "theip ar mhéadú an eagair"
#: misc.c:1002
msgid "bad line in skeleton file"
@@ -666,7 +679,7 @@ msgstr "drochlíne i gcreatchomhad"
#: misc.c:1051
msgid "memory allocation failed in yy_flex_xmalloc()"
-msgstr "teipeadh agus ag riaradh cuimhne i yy_flex_xmalloc()"
+msgstr "theip ar dháileadh na cuimhne i yy_flex_xmalloc()"
#: nfa.c:104
#, c-format
@@ -685,6 +698,7 @@ msgid "state # %4d\t"
msgstr "staid # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** i ndeireadh dumpála\n"
@@ -715,109 +729,128 @@ msgstr "an iomarca athruithe i mkxtion()"
msgid "too many rules (> %d)!"
msgstr "an iomarca rialacha (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
-msgstr "earráid anaithnid agus ag próiseáil an chéad pháirt"
+msgstr "earráid anaithnid agus an chéad pháirt á próiseáil"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "is neamhbhailí liosta na coinníollacha tosaigh"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "riail anaithnid"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "baineadh úsáid as comhthéacs sraoilleach faoi dhó"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "luachanna timthrialla neamhbhailí"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "ní foláir luach timthrialla deimhneach"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-"tá an réimse carachtair [%c-%c] débhríoch i scanóir a dhéanann neamhshuim ar "
-"ceannlitreacha agus litreacha beaga"
+"tá an raon carachtair [%c-%c] débhríoch i scanóir a dhéanann neamhshuim ar "
+"cheannlitreacha agus litreacha beaga"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
-msgstr "réimse diúltach in aicme carachtair"
+msgstr "raon diúltach in aicme charachtair"
+
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"tá an raon carachtair [%c-%c] débhríoch i scanóir a dhéanann neamhshuim ar "
+"cheannlitreacha agus litreacha beaga"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"tá an raon carachtair [%c-%c] débhríoch i scanóir a dhéanann neamhshuim ar "
+"cheannlitreacha agus litreacha beaga"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Tá líne an ionchuir rófhada\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "treoir '%top' míchumtha"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "treoir '%' anaithnid"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "'{' corr"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "is neamhiomlán an sainmhíniú ainm"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "rogha %% anaithnid: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "aicme charachtair neamhbhailí"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "sainmhíniú neamhshainithe {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "<coinníoll tosaigh> neamhbhailí: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "comhartha athfhriotal ar iarraidh"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "is neamhbhailí an slonn aicme carachtair: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "carachtar neamhbhailí idir {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "} ar iarraidh."
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
-msgstr "Buaileadh EOF i ngníomh"
+msgstr "Buaileadh comhadchríoch isteach i ngníomh"
+
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "Buaileadh comhadchríoch isteach i ngníomh"
-#: scan.l:820
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "carachtar neamhbhailí: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "ní féidir %s a oscailt"
@@ -830,12 +863,12 @@ msgstr "Úsáid: %s [ROGHANNA]...\n"
#: scanopt.c:565
#, c-format
msgid "option `%s' doesn't allow an argument\n"
-msgstr "ní cheadaítear argóint i ndiaidh an rogha `%s'\n"
+msgstr "ní cheadaítear argóint i ndiaidh na rogha `%s'\n"
#: scanopt.c:570
#, c-format
msgid "option `%s' requires an argument\n"
-msgstr "ní foláir argóint don rogha `%s'\n"
+msgstr "tá argóint de dhíth i ndiaidh na rogha `%s'\n"
#: scanopt.c:574
#, c-format
@@ -854,22 +887,23 @@ msgstr "Earráid anaithnid=(%d)\n"
#: sym.c:100
msgid "symbol table memory allocation failed"
-msgstr "teipeadh agus ag riaradh cuimhne don tábla siombalach"
+msgstr "theip ar dháileadh na cuimhne don tábla siombalach"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "sainmhíníodh an t-ainm faoi dhó"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
-msgstr "fógraíodh an choinníoll tosaigh %s faoi dhó"
+msgstr "fógraíodh an coinníoll tosaigh %s faoi dhó"
#: yylex.c:56
msgid "premature EOF"
-msgstr "EOF gan choinne"
+msgstr "comhadchríoch gan choinne"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Comhartha Deiridh\n"
@@ -877,3 +911,6 @@ msgstr "Comhartha Deiridh\n"
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Rud Éigin Aisteach* - tok: %d val: %d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "theip ar sheiceáil chomhionannais i symfollowset"
diff --git a/po/ko.gmo b/po/ko.gmo
index 92b47e9..26ebaaa 100644
--- a/po/ko.gmo
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
index 16aacc3..2e0e547 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.2\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 1997-02-05 20:30\n"
"Last-Translator: Choi Jun Ho <junker@jazz.snu.ac.kr>\n"
"Language-Team: Korean <ko@li.org>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "À§ÇèÇÑ ÃßÀû ¹®¸Æ"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " °ü·Ã ±ÔÄ¢ Çà¹øÈ£:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " ³ª°¡´Â ÂÊ ÀüÀÌ: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -64,19 +67,15 @@ msgstr "À¯ÀÏÇÑ ¹öÆÛÀÇ ³¡(end-of-buffer)»óŸ¦ ¸¸µé ¼ö ¾ø¾ú½À´Ï´Ù"
msgid "state # %d:\n"
msgstr "»óŹøÈ£ %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr ""
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "symfollowset¿¡¼­ ÀÏ°ü¼º °Ë»ç°¡ ½ÇÆÐÇß½À´Ï´Ù"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "sympartition()¿¡¼­ À߸øµÈ ÀüÀÌ ¹®ÀÚ¸¦ ã¾Ò½À´Ï´Ù"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,30 +87,30 @@ msgstr ""
"µ¿Ä¡·ù:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "»óŹøÈ£ %d´Â [%d]¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "»óŹøÈ£ %d´Â ´ÙÀ½À» ¹Þ¾ÆµéÀÔ´Ï´Ù: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr ""
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr ""
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
#, fuzzy
msgid "Could not write ecstbl"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -121,382 +120,398 @@ msgstr ""
"\n"
"¸ÞŸ-µ¿Ä¡·ùµé:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
-#: gen.c:1360
+#: gen.c:1354
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr ""
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr ""
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr ""
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
#, fuzzy
msgid "Could not write ftbl"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr ""
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "¸Â´Â ±ÔÄ¢À» ãÀ» ¼ö ¾ø½À´Ï´Ù"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "-s ¿É¼ÇÀÌ ÁÖ¾îÁ³Áö¸¸ ±âº» ±ÔÄ¢ÀÌ Àû¿ëµÉ ¼ö ÀÖ½À´Ï´Ù"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "-l¿É¼Ç¿¡´Â -+¿É¼ÇÀ» °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "-l¿É¼Ç¿¡ -f³ª -F¿É¼ÇÀ» ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "-l¿É¼Ç¿¡ -f³ª -F¿É¼ÇÀ» ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF´Â -Cm¿Í °°ÀÌ ¾²¸é Àǹ̰¡ ¾ø½À´Ï´Ù"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF¿Í -I´Â °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF ´Â lexȣȯ ¸ðµå¿Í´Â °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf¿Í -CF´Â °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "-CF¿É¼Ç¿¡ -+¿É¼ÇÀ» °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array´Â -+¿É¼Ç°ú °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-Cf¿Í -CF´Â °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: main.c:415
+#: main.c:419
#, fuzzy
msgid "could not write tables header"
msgstr "%s¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "½ºÄÌ·¹Åæ ÆÄÀÏ %s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "½ºÄÌ·¹Åæ ÆÄÀÏ %s¸¦ Àд µµÁß ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "½ºÄÌ·¹Åæ ÆÄÀÏ %s¸¦ ´Ý´Âµ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:688
+#: main.c:694
#, fuzzy, c-format
msgid "error creating header file %s"
msgstr "¹é¾÷ ÆÄÀÏ %s¸¦ ¾²´Âµ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "Ãâ·ÂÆÄÀÏ %s¸¦ ¾²´Â µ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "Ãâ·ÂÆÄÀÏ %s¸¦ ´Ý´Âµ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "Ãâ·ÂÆÄÀÏ %s¸¦ Áö¿ì´Â µ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "µÇµ¹¸²ÀÌ ¾ø½À´Ï´Ù.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d°³ÀÇ µÇµ¹¸²(¹Þ¾ÆµéÀÌÁö ¾Ê´Â) »óÅÂ.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr " ¾ÐÃàµÈ Å×À̺íÀº Ç×»ó ¹é¾÷ÇÕ´Ï´Ù.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "¹é¾÷ ÆÄÀÏ %s¸¦ ¾²´Âµ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "¹é¾÷ ÆÄÀÏ %s¸¦ ´Ý´Âµ¥ ¿À·ù°¡ ¹ß»ýÇß½À´Ï´Ù"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s ¹öÀü %s »ç¿ë Åë°è:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " ½ºÄ³³Ê ¿É¼Ç: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d°³ÀÇ NFA »óÅÂ\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d°³ÀÇ DFA »óÅ (%d ´Ü¾î)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d°³ÀÇ ±ÔÄ¢\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " µÇµ¹¸²ÀÌ ¾ø½À´Ï´Ù\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d°³ÀÇ µÇµ¹¸²(¹Þ¾ÆµéÀÌÁö ¾Ê´Â) »óÅÂ\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " ¾ÐÃàµÈ Å×À̺íÀº Ç×»ó ¹é¾÷ÇÕ´Ï´Ù\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Çà ½ÃÀÛ(beginning-of-line) À¯ÇüÀ» »ç¿ëÇÏ¿´½À´Ï´Ù\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d°³ÀÇ ½ÃÀÛÁ¶°Ç\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d°³ÀÇ ¿¦½Ç·Ð »óÅÂ, %d°³ÀÇ ÀÌÁß ¿¦½Ç·Ð »óÅÂ\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " ¹®ÀÚ·ù°¡ ¾ø½À´Ï´Ù\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
-msgstr " %d/%d ¹®ÀÚ ÁýÇÕ¿¡ %d/%d°³ÀÇ ÀúÀå¿ë ¹®ÀÚ°¡ ÇÊ¿äÇß°í, %d°³´Â Àç»ç¿ëµÇ¾ú½À´Ï´Ù.\n"
+msgstr ""
+" %d/%d ¹®ÀÚ ÁýÇÕ¿¡ %d/%d°³ÀÇ ÀúÀå¿ë ¹®ÀÚ°¡ ÇÊ¿äÇß°í, %d°³´Â Àç»ç¿ëµÇ¾ú½À´Ï"
+"´Ù.\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d°³ÀÇ »óÅÂ/´ÙÀ½ »óÅ ½ÖÀÌ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d°³ÀÇ À¯ÀÏÇÑ/Áߺ¹µÇ´Â ÀüÀÌ\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d°³ÀÇ Å×ÀÌºí ¿£Æ®¸®\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def ¿£Æ®¸®°¡ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (ÃÖ´ë %d) nxt-chk ¿£Æ®¸®°¡ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (ÃÖ´ë %d) ÅÛÇø®Æ® nxt-chk ¿£Æ®¸®°¡ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d°³ÀÇ ºó Å×ÀÌºí ¿£Æ®¸®\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d°³ÀÇ ¿øÇüÀÌ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d°³ÀÇ ÅÛÇø®Æ®°¡ ¸¸µé¾îÁö°í, %d°³¸¦ ¾¹´Ï´Ù\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d°³ÀÇ µ¿Ä¡·ù°¡ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d ¸ÞŸ µ¿Ä¡·ù°¡ ¸¸µé¾îÁ³½À´Ï´Ù\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d(%d ÀúÀåµÊ)°³ÀÇ ÇØ½Ì Ãæµ¹·Î %d°³ÀÇ DFA°¡ °°°Ô 󸮵˴ϴÙ\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d°³ÀÇ ÀçÇÒ´ç ÁýÇÕÀÌ ÇÊ¿äÇÕ´Ï´Ù\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " ÃÑ %d°³ÀÇ Å×ÀÌºí ¿£Æ®¸®°¡ ÇÊ¿äÇÕ´Ï´Ù\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "¾Ë ¼ö ¾ø´Â -C ¿É¼Ç '%c'"
-#: main.c:1184
+#: main.c:1192
#, fuzzy, c-format
msgid "%s %s\n"
msgstr "%s ¹öÀü %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "Ä¡¸íÀûÀÎ ÆÄ½Ì ¿¡·¯"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "µÇµ¹¸² Á¤º¸ ÆÄÀÏ %s¸¦ ¸¸µé ¼ö ¾ø¾ú½À´Ï´Ù"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex ȣȯ ¿É¼ÇÀº Å« ¼º´É ÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " ±×¸®°í ¾Æ¸¶µµ ´Ù¸¥ º¸°íµÈ ¼º´É ÀúÇÏÀÇ ½ÇÁ¦ ¿øÀÎÀÏ °ÍÀÔ´Ï´Ù\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno´Â Å« ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (´ëÈ­Çü) Àº ¼Ò±Ô¸ðÀÇ ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore()´Â ¼Ò±Ô¸ðÀÇ ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT´Â Å« ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "°¡º¯ ÃßÀû ¹®¸Æ ±ÔÄ¢Àº Å« ¼º´ÉÀúÇϸ¦ ÀÏÀ¸Åµ´Ï´Ù\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT´Â -f³ª -F¿É¼Ç°ú °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:1559
+#: main.c:1567
#, fuzzy, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylinenoÀº -f³ª -F¿É¼Ç°ú °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "°¡º¯ ÃßÀû ¹®¸Æ ±ÔÄ¢Àº -f³ª -F¿É¼Ç°ú °°ÀÌ ¾µ ¼ö ¾ø½À´Ï´Ù"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass´Â C++½ºÄ³³Ê¿¡°Ô¸¸ Àǹ̰¡ ÀÖ½À´Ï´Ù"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr ""
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -619,6 +634,7 @@ msgid "state # %4d\t"
msgstr "»óÅÂ ¹øÈ£ %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** Ãâ·Â ³¡\n"
@@ -649,111 +665,126 @@ msgstr "mkxtion()¿¡ ÀüÀÌ°¡ ³Ê¹« ¸¹½À´Ï´Ù"
msgid "too many rules (> %d)!"
msgstr "±ÔÄ¢ÀÌ ³Ê¹« ¸¹½À´Ï´Ù (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr ""
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
#, fuzzy
msgid "bad start condition list"
msgstr "À߸øµÈ <½ÃÀÛ Á¶°Ç>: %s"
-#: parse.y:337
+#: parse.y:315
#, fuzzy
msgid "unrecognized rule"
msgstr "¾Ë ¼ö ¾ø´Â '%' Áö½ÃÀÚ"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
#, fuzzy
msgid "trailing context used twice"
msgstr "%dÇà¿¡¼­ °¡º¯ ÃßÀû ¹®¸Æ ±ÔÄ¢\n"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr ""
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr ""
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
#, fuzzy
msgid "negative range in character class"
msgstr " ¹®ÀÚ·ù°¡ ¾ø½À´Ï´Ù\n"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr "\t-i ´ë¼Ò¹®ÀÚ ±¸º°¾ø´Â ½ºÄ³³Ê¸¦ ¸¸µì´Ï´Ù\n"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr "\t-i ´ë¼Ò¹®ÀÚ ±¸º°¾ø´Â ½ºÄ³³Ê¸¦ ¸¸µì´Ï´Ù\n"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr ""
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "¾Ë ¼ö ¾ø´Â '%' Áö½ÃÀÚ"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "¾Ë ¼ö ¾ø´Â '%' Áö½ÃÀÚ"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "ºÒ¿ÏÀüÇÑ À̸§ Á¤ÀÇ"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "¾Ë ¼ö ¾ø´Â %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "À߸øµÈ ¹®ÀÚ·ù"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "Á¤ÀǵÇÁö ¾ÊÀº Á¤ÀÇ {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "À߸øµÈ <½ÃÀÛ Á¶°Ç>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "Àοë±âÈ£ ºüÁü"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "À߸øµÈ ¹®ÀÚ ÁýÇÕ ½Ä: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "{}¾ÈÀÇ À߸øµÈ ¹®ÀÚ"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "}ÀÌ ºüÁ³½À´Ï´Ù"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "µ¿ÀÛ µµÁß¿¡ EOF¸¦ ¸¸³µ½À´Ï´Ù"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "µ¿ÀÛ µµÁß¿¡ EOF¸¦ ¸¸³µ½À´Ï´Ù"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "À߸øµÈ ¹®ÀÚ: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "%s¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù"
@@ -792,11 +823,11 @@ msgstr ""
msgid "symbol table memory allocation failed"
msgstr "½Éº¼ Å×ÀÌºí ¸Þ¸ð¸® ÇÒ´çÀÌ ½ÇÆÐÇß½À´Ï´Ù"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "À̸§À» µÎ¹ø Á¤ÀÇÇß½À´Ï´Ù"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "½ÃÀÛÁ¶°Ç %s¸¦ µÎ¹ø ¼±¾ðÇß½À´Ï´Ù"
@@ -806,6 +837,7 @@ msgid "premature EOF"
msgstr "°©ÀÛ½º·± EOF"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Á¾·á Ç¥½Ã\n"
@@ -814,6 +846,9 @@ msgstr "Á¾·á Ç¥½Ã\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*¹«¾ð°¡ ÀÌ»óÇÕ´Ï´Ù* - tok: %d val: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "symfollowset¿¡¼­ ÀÏ°ü¼º °Ë»ç°¡ ½ÇÆÐÇß½À´Ï´Ù"
+
#~ msgid ""
#~ "%s: unknown flag '%c'. For usage, try\n"
#~ "\t%s --help\n"
@@ -838,7 +873,8 @@ msgstr "*¹«¾ð°¡ ÀÌ»óÇÕ´Ï´Ù* - tok: %d val: %d\n"
#~ msgid ""
#~ "%s [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -ooutput -Pprefix -Sskeleton]\n"
-#~ msgstr "%s [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -oÃâ·ÂÆÄÀÏ -PÁ¢µÎ»ç -S½ºÄÌ·¹Åæ]\n"
+#~ msgstr ""
+#~ "%s [-bcdfhilnpstvwBFILTV78+? -C[aefFmr] -oÃâ·ÂÆÄÀÏ -PÁ¢µÎ»ç -S½ºÄÌ·¹Åæ]\n"
#~ msgid "\t[--help --version] [file ...]\n"
#~ msgstr "\t[--help --version] [ÆÄÀÏ ...]\n"
@@ -858,9 +894,6 @@ msgstr "*¹«¾ð°¡ ÀÌ»óÇÕ´Ï´Ù* - tok: %d val: %d\n"
#~ msgid "\t-h produce this help message\n"
#~ msgstr "\t-h ÀÌ µµ¿ò¸» ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÕ´Ï´Ù\n"
-#~ msgid "\t-i generate case-insensitive scanner\n"
-#~ msgstr "\t-i ´ë¼Ò¹®ÀÚ ±¸º°¾ø´Â ½ºÄ³³Ê¸¦ ¸¸µì´Ï´Ù\n"
-
#~ msgid "\t-l maximal compatibility with original lex\n"
#~ msgstr "\t-l ¿À¸®Áö³Î lex¿Í ÃÖ´ëÇÑÀÇ È£È¯¼ºÀ» Á¦°øÇÕ´Ï´Ù\n"
@@ -931,7 +964,8 @@ msgstr "*¹«¾ð°¡ ÀÌ»óÇÕ´Ï´Ù* - tok: %d val: %d\n"
#~ msgstr "\t\t-Cm ¸ÞŸ µ¿Ä¡·ù¸¦ ¸¸µì´Ï´Ù\n"
#~ msgid "\t\t-Cr use read() instead of stdio for scanner input\n"
-#~ msgstr "\t\t-Cr ½ºÄ³³Ê ÀÔ·ÂÀ» stdio¶óÀ̺귯¸® ´ë½Å read()½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÕ´Ï´Ù\n"
+#~ msgstr ""
+#~ "\t\t-Cr ½ºÄ³³Ê ÀÔ·ÂÀ» stdio¶óÀ̺귯¸® ´ë½Å read()½Ã½ºÅÛ ÄÝÀ» »ç¿ëÇÕ´Ï´Ù\n"
#~ msgid "\t-o specify output filename\n"
#~ msgstr "\t-o Ãâ·Â ÆÄÀÏÀ̸§À» ÁöÁ¤ÇÕ´Ï´Ù\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index d056ace..df4f50c 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index e2d56a4..f5a5a79 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,18 +1,19 @@
-# Translation of flex-2.5.31 to Dutch.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# Benno Schulenberg <benno@nietvergeten.nl>, 2005.
+# Translation of flex-2.5.33 to Dutch.
+# Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007.
#
msgid ""
msgstr ""
-"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
-"PO-Revision-Date: 2005-04-14 21:12+0200\n"
-"Last-Translator: Benno Schulenberg <benno@nietvergeten.nl>\n"
+"Project-Id-Version: flex 2.5.33\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
+"PO-Revision-Date: 2007-08-15 00:06+0200\n"
+"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.1\n"
#: dfa.c:61
#, c-format
@@ -24,14 +25,17 @@ msgid "dangerous trailing context"
msgstr "gevaarlijke nakomende context"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " regelnummers van de betrokken regels:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " uit-transities: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -41,7 +45,7 @@ msgstr ""
#: dfa.c:341
msgid "consistency check failed in epsclosure()"
-msgstr "consistentiecontrole faalde in epsclosure()"
+msgstr "consistentiecontrole is mislukt in epsclosure()"
#: dfa.c:429
msgid ""
@@ -64,19 +68,15 @@ msgstr "kon geen unieke toestand voor einde-van-buffer aanmaken"
msgid "state # %d:\n"
msgstr "toestand # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
-msgstr "Kon yynxt_tbl[][] niet schrijven"
-
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "consistentiecontrole faalde in symfollowset"
+msgstr "Kan yynxt_tbl[][] niet schrijven"
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "onjuist transitieteken in sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,29 +88,29 @@ msgstr ""
"Equivalentieklassen:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "toestand # %d accepteert: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "toestand # %d accepteert: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
-msgstr "Kon yyacclist_tbl niet schrijven"
+msgstr "Kan yyacclist_tbl niet schrijven"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
-msgstr "Kon yyacc_tbl niet schrijven"
+msgstr "Kan yyacc_tbl niet schrijven"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
-msgstr "Kon ecstbl niet schrijven"
+msgstr "Kan ecstbl niet schrijven"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -120,334 +120,344 @@ msgstr ""
"\n"
"Meta-equivalentieklassen:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
-msgstr "Kon yymeta_tbl niet schrijven"
+msgstr "Kan yymeta_tbl niet schrijven"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
-msgstr "Kon yybase_tbl niet schrijven"
+msgstr "Kan yybase_tbl niet schrijven"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
-msgstr "Kon yydef_tbl niet schrijven"
+msgstr "Kan yydef_tbl niet schrijven"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
-msgstr "Kon yynxt_tbl niet schrijven"
+msgstr "Kan yynxt_tbl niet schrijven"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
-msgstr "Kon yychk_tbl niet schrijven"
+msgstr "Kan yychk_tbl niet schrijven"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
-msgstr "Kon ftbl niet schrijven"
+msgstr "Kan ftbl niet schrijven"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
-msgstr "Kon ssltbl niet schrijven"
+msgstr "Kan ssltbl niet schrijven"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
-msgstr "Kon eoltbl niet schrijven"
+msgstr "Kan eoltbl niet schrijven"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
-msgstr "Kon yynultrans_tbl niet schrijven"
+msgstr "Kan yynultrans_tbl niet schrijven"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "regel geeft geen overeenkomsten"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "optie -s gegeven, maar de standaardregel geeft overeenkomsten"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Optie -+ gaat niet samen met -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Optie -f of -F gaat niet samen met -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Optie --reentrant of --bison-bridge gaat niet samen met -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "Opties -Cf/-CF en -Cm gaan niet samen"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "Opties -Cf/-CF en -I gaan niet samen"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "Optie -Cf of -CF gaat niet samen met lex-compatibiliteitsmodus"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "Opties -Cf en -CF sluiten elkaar uit"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Optie -+ gaat niet samen met -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "Optie -+ gaat niet samen met %array"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Opties -+ en --reentrant sluiten elkaar uit."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge wordt niet ondersteund voor de C++-scanner."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
-msgstr "kon %s niet aanmaken"
+msgstr "kan %s niet aanmaken"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
-msgstr "kon tabellenkop niet schrijven"
+msgstr "kan tabellenkop niet schrijven"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan skeletbestand %s niet openen"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "invoerfout tijdens lezen van skeletbestand %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "fout tijdens sluiten van skeletbestand %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "fout tijdens aanmaken van headerbestand %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "fout tijdens schrijven van uitvoerbestand %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "fout tijdens sluiten van uitvoerbestand %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "fout tijdens verwijderen van uitvoerbestand %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Terugstappen is niet mogelijk.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d terugstappende (niet-accepterende) toestanden.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Gecomprimeerde tabellen kunnen altijd terugstappen.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "fout tijdens schrijven van terugstapbestand %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "fout tijdens sluiten van terugstapbestand %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versie %s gebruiksstatistieken:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
-msgstr " scanner-opties: -"
+msgstr " scanneropties: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-toestanden\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-toestanden (%d woorden)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regels\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Terugstappen is niet mogelijk\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d terugstappende (niet-accepterende) toestanden\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Gecomprimeerde tabellen kunnen altijd terugstappen\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Begin-van-regel-patronen gebruikt\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvoorwaarden\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
-msgstr " %d epsilon-toestanden, %d dubbele epsilon-toestanden\n"
+msgstr " %d epsilontoestanden, %d dubbele epsilontoestanden\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " geen tekenklassen\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d tekenklassen hadden %d/%d opslagwoorden nodig, %d hergebruikt\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d toestand/volgtoestand-paren aangemaakt\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unieke/dubbele transities\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d tabelitems\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def-items aangemaakt\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (piek %d) nxt-chk-items aangemaakt\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (piek %d) sjabloon-nxt-chk-items aangemaakt\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d lege tabelitems\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototypes aangemaakt\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d sjablonen aangemaakt, %d keer gebruikt\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d equivalentieklassen aangemaakt\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d meta-equivalentieklassen aangemaakt\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d bewaarde) hash-botsingen, %d DFA's gelijk\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d sets van herallocaties waren nodig\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " in totaal %d tabelitems nodig\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
-msgstr "Interne fout, ongeldige flexopts.\n"
+msgstr "*Interne fout*: ongeldige flexopts.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
-msgstr "Probeer '%s --help' voor meer informatie.\n"
+msgstr "Typ '%s --help' voor meer informatie.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "onbekende -C-optie '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "fatale ontleedfout"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kon terugstapbestand %s niet aanmaken"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"de AT&T-lexcompatibiliteitsoptie -l betekent een grote "
"prestatievermindering\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" en zou de eigenlijke bron kunnen zijn van andere gemelde "
"prestatieverminderingen\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -456,46 +466,50 @@ msgstr ""
"de %%optie yylineno betekent een prestatievermindering, maar ALLEEN voor "
"regels die met het regeleindeteken overeen kunnen komen\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "optie -I (interactief) betekent een kleine prestatievermindering\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() betekent een kleine prestatievermindering\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT betekent een grote prestatievermindering\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Variabele nakomende context betekent een grote prestatievermindering\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT gaat niet samen met -f of -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%optie yylineno gaat niet samen met REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "regels met variabele nakomende context gaan niet samen met -f of -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%optie yyclass heeft alleen betekenis voor C++-scanners"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
-msgstr "Gebruik: %s [OPTIES] [BESTAND]...\n"
+msgstr "Gebruik: %s [OPTIE]... [BESTAND]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -563,66 +577,69 @@ msgstr ""
"Genereert patroonherkenningsprogramma's.\n"
"\n"
"Tabelcompressie:\n"
-" -Ca, --align gebruik meer geheugen voor beter uitgelijnde tabellen\n"
-" -Ce, --ecs construeer equivalentieklassen\n"
-" -Cf comprimeer tabellen niet; gebruik de -f-representatie\n"
-" -CF comprimeer tabellen niet; gebruik de -F-representatie\n"
-" -Cm, --meta-ecs construeer meta-equivalentieklassen\n"
-" -Cr, --read gebruik read() in plaats van stdio voor scannerinvoer\n"
-" -f, --full genereer een snelle, grote scanner (zelfde als -Cfr)\n"
-" -F, --fast gebruik alternatieve tabelrepresentatie (als -CFr)\n"
+" -Ca, --align meer geheugen gebruiken voor beter uitgelijnde tabellen\n"
+" -Ce, --ecs equivalentieklassen construeren\n"
+" -Cf tabellen niet comprimeren; de -f-representatie "
+"gebruiken\n"
+" -CF tabellen niet comprimeren; de -F-representatie "
+"gebruiken\n"
+" -Cm, --meta-ecs meta-equivalentieklassen construeren\n"
+" -Cr, --read read() gebruiken in plaats van stdio voor scannerinvoer\n"
+" -f, --full een snelle, grote scanner genereren (zelfde als -Cfr)\n"
+" -F, --fast alternatieve tabelrepresentatie gebruiken (als -CFr)\n"
" -Cem standaardcompressie (zelfde als --ecs --meta-ecs)\n"
"\n"
"Debuggen:\n"
-" -d, --debug zet debugmodus in scanner aan\n"
-" -b, --backup schrijf terugstap-informatie naar %s\n"
-" -p, --perf-report schrijf prestatierapport naar standaardfoutuitvoer\n"
-" -s, --nodefault onderdruk standaardregel om onherkende tekst te "
-"ECHOen\n"
-" -T, --trace voer %s uit in tracemodus\n"
-" -w, --nowarn geef geen waarschuwingen\n"
-" -v, --verbose schrijf scannerstatistieken naar standaarduitvoer\n"
+" -d, --debug debugmodus in scanner aanzetten\n"
+" -b, --backup terugstap-informatie naar %s schrijven\n"
+" -p, --perf-report prestatierapport naar standaardfoutuitvoer schrijven\n"
+" -s, --nodefault standaardregel om onherkende tekst te ECHO-en "
+"uitzetten\n"
+" -T, --trace %s uitvoeren in tracemodus\n"
+" -w, --nowarn geen waarschuwingen geven\n"
+" -v, --verbose scannerstatistieken naar standaarduitvoer schrijven\n"
"\n"
"Bestanden:\n"
-" -o, --outfile=BESTAND gebruik dit uitvoerbestand\n"
-" -S, --skel=BESTAND gebruik dit skeletbestand\n"
-" -t, --stdout schrijf scanner naar standaarduitvoer, niet naar %"
-"s\n"
+" -o, --outfile=BESTAND dit uitvoerbestand gebruiken\n"
+" -S, --skel=BESTAND dit skeletbestand gebruiken\n"
+" -t, --stdout scanner naar standaarduitvoer schrijven, niet naar "
+"%s\n"
" --yyclass=NAAM naam van de C++-klasse\n"
-" --header-file=BESTAND maak behalve de scanner ook een C-"
-"headerbestand\n"
-" --tables-file[=BESTAND] schrijf tabellen (naar dit BESTAND)\n"
+" --header-file=BESTAND behalve de scanner ook een C-headerbestand "
+"maken\n"
+" --tables-file[=BESTAND] tabellen schrijven (naar dit BESTAND)\n"
"\n"
"Scannergedrag:\n"
-" -7, --7bit genereer een 7-bits-scanner\n"
-" -8, --8bit genereer een 8-bits-scanner\n"
-" -B, --batch genereer een batch-scanner (tegengestelde van -I)\n"
-" -i, --case-insensitive negeer hoofd-/kleine letters in patronen\n"
+" -7, --7bit een 7-bits-scanner genereren\n"
+" -8, --8bit een 8-bits-scanner genereren\n"
+" -B, --batch een batch-scanner genereren (tegengestelde van -"
+"I)\n"
+" -i, --case-insensitive hoofd-/kleine letters in patronen negeren\n"
" -l, --lex-compat maximale compatibiliteit met de originele lex\n"
" -X, --posix-compat maximale compatibiliteit met de POSIX lex\n"
-" -I, --interactive genereer een interactieve scanner\n"
-" --yylineno houdt het regelaantal bij in yylineno\n"
+" -I, --interactive een interactieve scanner genereren\n"
+" --yylineno het regelaantal bijhouden in yylineno\n"
"\n"
"Gegenereerde code:\n"
-" -+, --c++ genereer een C++-scannerklasse\n"
+" -+, --c++ een C++-scannerklasse genereren\n"
" -Dmacro[=defn] #define macro defn (standaard defn is '1')\n"
-" -L, --noline onderdruk #line directieven in de scanner\n"
-" -P, --prefix=STRING gebruik STRING als prefix in plaats van \"yy\"\n"
-" -R, --reentrant genereer een herintreedbare C-scanner\n"
-" --bison-bridge genereer een scanner voor zuivere bison-ontleder\n"
-" --bison-locations neem ondersteuning voor yylloc op\n"
-" --stdinit initialiseer yyin/yyout naar standaardin/uitvoer\n"
+" -L, --noline de #line-commado's in de scanner onderdrukken\n"
+" -P, --prefix=STRING STRING gebruiken als prefix in plaats van \"yy\"\n"
+" -R, --reentrant een herintreedbare C-scanner genereren\n"
+" --bison-bridge een scanner voor zuivere bison-ontleder genereren\n"
+" --bison-locations ondersteuning voor yylloc opnemen\n"
+" --stdinit yyin/yyout naar standaardin/uitvoer initialiseren\n"
" --noansi-definitions oude-stijl functiedefinities\n"
" --noansi-prototypes lege parameterlijst in prototypes\n"
-" --nounistd sluit <unistd.h> niet in\n"
-" --noFUNCTIE genereer specifieke FUNCTIE niet\n"
+" --nounistd <unistd.h> niet insluiten\n"
+" --noFUNCTIE specifieke FUNCTIE niet genereren\n"
"\n"
"Varia:\n"
" -c nietsdoende POSIX-optie\n"
" -n nietsdoende POSIX-optie\n"
" -?\n"
-" -h, --help geef dit hulpbericht\n"
-" -V, --version rapporteer de versie van %s\n"
+" -h, --help dit hulpbericht tonen\n"
+" -V, --version de versie van %s tonen\n"
#: misc.c:100 misc.c:126
#, c-format
@@ -641,7 +658,7 @@ msgstr "onjuist teken '%s' in check_char()"
#: misc.c:255
#, c-format
msgid "scanner requires -8 flag to use the character %s"
-msgstr "scanner heeft de vlag -8 nodig om teken %s te kunnen gebruiken"
+msgstr "scanner heeft de optie -8 nodig om teken %s te kunnen gebruiken"
#: misc.c:288
msgid "dynamic memory failure in copy_string()"
@@ -650,7 +667,7 @@ msgstr "dynamische geheugenfout in copy_string()"
#: misc.c:422
#, c-format
msgid "%s: fatal internal error, %s\n"
-msgstr "%s: fatale interne fout, %s\n"
+msgstr "%s: *fatale interne fout*, %s\n"
#: misc.c:875
msgid "attempt to increase array size failed"
@@ -681,6 +698,7 @@ msgid "state # %4d\t"
msgstr "toestand # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** einde van de dump\n"
@@ -711,109 +729,128 @@ msgstr "te veel transities gevonden in mkxtion()"
msgid "too many rules (> %d)!"
msgstr "te veel regels (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "onbekende fout tijdens verwerken van sectie 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "onjuiste lijst van startvoorwaarden"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "onbekende regel"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "nakomende context twee keer gebruikt"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "onjuiste iteratiewaarden"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "iteratiewaarde moet positief zijn"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"het tekenbereik [%c-%c] is niet eenduidig in een hoofdletterongevoelige "
"scanner"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "negatief bereik in tekenklasse"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"het tekenbereik [%c-%c] is niet eenduidig in een hoofdletterongevoelige "
+"scanner"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"het tekenbereik [%c-%c] is niet eenduidig in een hoofdletterongevoelige "
+"scanner"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Invoerregel is te lang\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
-msgstr "verkeerde opbouw van '%top' commando"
+msgstr "verkeerde opbouw van '%top'-commando"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
-msgstr "onbekende '%' stuurcode"
+msgstr "onbekend '%'-commando"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "Ongepaarde '{'"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "onvolledige naamsdefinitie"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "onbekende %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "onjuiste tekenklasse"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "ongedefinieerde definitie {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "onjuiste <startvoorwaarde>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "ontbrekend aanhalingsteken"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "onjuiste expressie '%s' in tekenklasse"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "onjuist teken tussen {}'s"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "ontbrekende }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "EOF bereikt tijdens een actie"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "EOF bereikt tijdens een actie"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "onjuist teken: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "kan %s niet openen"
@@ -821,7 +858,7 @@ msgstr "kan %s niet openen"
#: scanopt.c:291
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
-msgstr "Gebruik: %s [OPTIES]...\n"
+msgstr "Gebruik: %s [OPTIE]...\n"
#: scanopt.c:565
#, c-format
@@ -852,11 +889,11 @@ msgstr "Onbekende fout=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "geheugenreservering voor symbolentabel is mislukt"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "naam twee keer gedefinieerd"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "startvoorwaarde %s is twee keer vermeld"
@@ -866,6 +903,7 @@ msgid "premature EOF"
msgstr "voortijdige EOF"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Eindmarkering\n"
@@ -873,3 +911,6 @@ msgstr "Eindmarkering\n"
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Iets Raars* - token: %d waarde:%d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "consistentiecontrole is mislukt in symfollowset()"
diff --git a/po/pl.gmo b/po/pl.gmo
index 01d3f89..b34504b 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index b1a682c..8d72bb1 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2003-06-19 00:44+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "niebezpieczny kontekst koñcowy"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " numery linii powi±zanych regu³:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " przej¶cia-wyj¶ciowe: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -64,19 +67,15 @@ msgstr "nie mo¿na utworzyæ unikalnego stanu koñca bufora"
msgid "state # %d:\n"
msgstr "stan # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Nie mo¿na zapisaæ yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "kontrola spójno¶ci nie powiod³a siê w symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "wykryto b³êdny znak przej¶cia w sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,29 +87,29 @@ msgstr ""
"Klasy równowa¿no¶ci:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "stan # %d akceptuje: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "stan # %d akceptuje: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "Nie mo¿na zapisaæ yyacclist_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Nie mo¿na zapisaæ yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Nie mo¿na zapisaæ ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -120,330 +119,340 @@ msgstr ""
"\n"
"Klasy meta-równowa¿no¶ci:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Nie mo¿na zapisaæ yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Nie mo¿na zapisaæ yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Nie mo¿na zapisaæ yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Nie mo¿na zapisaæ yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Nie mo¿na zapisaæ yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Nie mo¿na zapisaæ ftbl"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "Nie mo¿na zapisaæ ssltbl"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "Nie mo¿na zapisaæ eoltbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Nie mo¿na zapisaæ yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "nie mo¿na dopasowaæ regu³y"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "podano opcjê -s, ale domy¶lna regu³a mo¿e byæ dopasowana"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Nie mo¿na u¿yæ -+ z opcj± -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Nie mo¿na u¿yæ -f ani -F z opcj± -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Nie mo¿na u¿yæ --reentrant ani --bison-bridge z opcj± -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF i -Cm razem nie maj± sensu"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF i -I s± niekompatybilne"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF s± niekompatybilne z trybem kompatybilno¶ci z leksem"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf i -CF wykluczaj± siê wzajemnie"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Nie mo¿na u¿yæ -+ z opcj± -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array jest niekompatybilne z opcj± -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Opcje -+ i --reentrant wykluczaj± siê wzajemnie."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "pomost dla bisona nie jest obs³ugiwany dla skanera C++."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "nie mo¿na utworzyæ %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "nie mo¿na zapisaæ nag³ówka tablic"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "nie mo¿na otworzyæ pliku szablonu %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "b³±d wej¶cia podczas odczytu pliku szablonu %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "b³±d podczas zamykania pliku szablonu %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "b³±d podczas tworzenia pliku nag³ówkowego %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "b³±d podczas zapisu pliku wyj¶ciowego %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "b³±d podczas zamykania pliku wyj¶ciowego %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "b³±d podczas usuwania pliku wyj¶ciowego %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Bez zapamiêtywania.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d zapamiêtywanych stanów (nie akceptuj±cych).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Skompresowane tablice zawsze zapamiêtuj±.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "b³±d podczas zapisu pliku raportu z zapamiêtywania %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "b³±d podczas zamykania pliku raportu z zapamiêtywania %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s w wersji %s - statystyka u¿ycia:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " opcje skanera: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d stanów NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d stanów DFA (%d s³ów)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regu³\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Bez zapamiêtywania\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d zapamiêtywanych stanów (nie akceptuj±cych)\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Skompresowane tablice zawsze zapamiêtuj±\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " U¿ytych wzorców pocz±tek-linii\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d warunków pocz±tkowych\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d stanów epsilonowych, %d stanów podwójnie epsilonowych\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " bez klas znaków\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d klas znaków potrzebuje %d/%d s³ów pamiêci, %d ponownie u¿ytych\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d utworzonych par stan/nastêpny-stan\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d przej¶æ unikalny/duplikat\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d elementów tablicy\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d utworzonych elementów base-def\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (maksymalnie %d) utworzonych elementów nxt-chk\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (maksymalnie %d) utworzonych szablonowych elementów nxt-chk\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d pustych elementów tablicy\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d utworzonych prototypów\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d utworzonych szablonów, %d u¿yæ\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d utworzonych klas równowa¿no¶ci\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d utworzonych klas meta-równowa¿no¶ci\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d zachowanych) kolizji haszy, %d jednakowych DFA\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d potrzebnych zbiorów realokacji\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d potrzebnych ogó³em elementów tablicy\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "B³±d wewnêtrzny. ¬le sformu³owane flexopts.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "`%s --help' poda wiêcej informacji.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "nieznana opcja -C '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "krytyczny b³±d analizy sk³adni"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "nie mo¿na utworzyæ pliku informacji o zapamiêtywaniu %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "opcja -l zgodno¶ci z leksem AT&T powoduje du¿± stratê wydajno¶ci\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " i mo¿e byæ przyczyn± innych zg³aszanych strat wydajno¶ci\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -452,47 +461,51 @@ msgstr ""
"%%option yylineno powoduje straty wydajno¶ci TYLKO dla regu³ dopasowuj±cych "
"znak koñca linii\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktywny) powoduje ma³± stratê wydajno¶ci\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() powoduje ma³± stratê wydajno¶ci\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT powoduje du¿± stratê wydajno¶ci\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regu³y ze zmiennym koñcowym kontekstem powoduj± du¿± stratê wydajno¶ci\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT nie mo¿e byæ u¿yte z -f ani -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno nie mo¿e byæ u¿yte z REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "regu³y ze zmiennym koñcowym kontekstem nie mog± byæ u¿yte z -f ani -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ma znaczenie tylko dla skanerów C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Sk³adnia: %s [OPCJE] [PLIK]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -683,6 +696,7 @@ msgid "state # %4d\t"
msgstr "stan # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** koniec zrzutu\n"
@@ -713,109 +727,128 @@ msgstr "znaleziono zbyt du¿o przej¶æ w mkxtion()"
msgid "too many rules (> %d)!"
msgstr "zbyt du¿o regu³ (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "nieznany b³±d podczas przetwarzania sekcji 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "b³êdna lista warunków pocz±tkowych"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "nierozpoznana regu³a"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "koñcowy kontekst u¿yty dwukrotnie"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "b³êdne warto¶ci iteracji"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "warto¶æ iteracji musi byæ dodatnia"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"przedzia³ znaków [%c-%c] jest niejednoznaczny w skanerze ignoruj±cym "
"wielko¶æ liter"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "ujemny przedzia³ w klasie znaków"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"przedzia³ znaków [%c-%c] jest niejednoznaczny w skanerze ignoruj±cym "
+"wielko¶æ liter"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"przedzia³ znaków [%c-%c] jest niejednoznaczny w skanerze ignoruj±cym "
+"wielko¶æ liter"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Linia wej¶ciowa zbyt d³uga\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "¼le sformu³owana dyrektywa '%top'"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "nierozpoznana dyrektywa '%'"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "Niesparowany '{'"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "niekompletna definicja nazwy"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "nierozpoznane %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "b³êdna klasa znaków"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "niezdefiniowana definicja {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "b³êdny <warunek pocz±tkowy>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "brak cudzys³owu"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "b³êdne wyra¿enie klasy znaków: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "b³êdny znak wewn±trz {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "brak }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "EOF napotkany wewn±trz akcji"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "EOF napotkany wewn±trz akcji"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "b³êdny znak: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "nie mo¿na otworzyæ %s"
@@ -854,11 +887,11 @@ msgstr "Nieznany b³±d=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "nie uda³o siê przydzieliæ pamiêci dla tablicy symboli"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "nazwa zdefiniowana dwukrotnie"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "warunek pocz±tkowy %s zadeklarowany dwukrotnie"
@@ -868,6 +901,7 @@ msgid "premature EOF"
msgstr "przedwczesny EOF"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Znacznik koñca\n"
@@ -875,3 +909,6 @@ msgstr "Znacznik koñca\n"
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Co¶ dziwnego* - tok: %d val: %d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "kontrola spójno¶ci nie powiod³a siê w symfollowset"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 0162724..f390626 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 4faa7b0..d712cad 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.19\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2003-01-15 02:00-0300\n"
"Last-Translator: Alexandre Folle de Menezes <afmenez@terra.com.br>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "texto final perigoso"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " números de linha de regras associadas:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " transações de saída: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -64,19 +67,15 @@ msgstr "impossível criar um estadp único de final de buffer"
msgid "state # %d:\n"
msgstr "estado # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Impossível escrever yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "verificação de consistência falhou em symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "caractere de transição inválido detectado em sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,30 +87,30 @@ msgstr ""
"Classes de Equivalência:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "estado # %d aceita: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "estado # %d aceita: "
-#: gen.c:1163
+#: gen.c:1157
#, fuzzy
msgid "Could not write yyacclist_tbl"
msgstr "Impossível escrever yyacc_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Impossível escrever yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Impossível escrever ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -121,387 +120,401 @@ msgstr ""
"\n"
"Classes de Meta-Equivalência:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Impossível escrever yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Impossível escrever yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Impossível escrever yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Impossível escrever yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Impossível escrever yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Impossível escrever ftbl"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "Impossível escrever ecstbl"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "Impossível escrever ecstbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Impossível escrever yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "aplicação da regra não gerou nenhum resultado"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "a opção -s foi fornecida, mas a regra padrão pode ser aplicada"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Impossível usar -+ com a opção -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Impossível usar -f ou -F com a opção -l"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Impossível usar -R ou -Rb com a opção -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF e -Cm não fazem sentido juntos"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF e -I são incompatíveis"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF são incompatíveis com o modo de compatibilidade lex"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf e -CF são mutuamente exclusivos"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Impossível usar -+ com a opção -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array é incompatível com a opção -+"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "As opções -+ e -R são mutuamente exclusivas."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "impossível criar %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "impossível escrever o cabeçalho das tabelas"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "impossível abrir o arquivo esqueleto %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "erro lendo o arquivo esqueleto %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "erro fechando o arquivo esqueleto %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "erro criando o arquivo cabeçalho %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "erro escrevendo arquivo de saída %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "erro fechando arquivo de saída %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "erro removendo arquivo de saída %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Impossível restaurar.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d fazendo cópia de segurança de estados (não-aceita).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tabelas compactadas sempre têm cópias de segurança.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "erro escrevendo cópia de segurança %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "erro fechando cópia de segurança %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versão %s estatísticas de uso:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " opções de scanner: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d estados NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d estados DFA (%d palavras)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regras\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Sem cópia de segurança\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d fazendo cópia de segurança de estados (não-aceita)\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tabelas compactadas sempre têm cópias de segurança\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Padrões de início-de-linha usados\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condições de início\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d estados epsilon, %d estados epsilon duplo\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " nenhuma classe de caracteres\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d classes de caracters precisaram de %d/%d palavras de armazenamento, %"
"d reusadas\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d pares estado/próximoestado criados\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d transições únicas/duplicadas\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d entradas de tabela\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d entradas base-def criadas\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (pico %d) entradas nxt-chk criadas\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (pico %d) modelos de entradas nxt-chk criadas\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d entradas vazias na tabela\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d protos criados\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modelos criados, %d usos\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d classes de equivalência criadas\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d classes de meta-equivalência criadas\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d salvas) colisões de hash, %d DFAs iguais\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d conjuntos de realocação necessários\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d total de entradas de tabela necessárias\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Erro interno. flexopts estão malformados.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Tente `%s --help' para maiores informações.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "opção -C '%c' desconecida"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "erro fatal de análise"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "impossível criar cópia de seguranço do arquivo de informações %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"a opção de compatibilidade com lex da AT&T '-l' acarreta em uma grande "
"penalidade na performance\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" e pode ser a fonte real de outras penalidades de performance reportadas\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno acarreta em uma grande penalidade na performance\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interativo) acarreta em uma pequena penalidade na performance\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() acarreta em uma pequena penalidade na performance\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT acarreta em uma grande penalidade na performance\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Variável seguindo regras de contexto implicam em grande perda de "
"performance\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT não pode ser usado com -f ou -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno não pode ser usada com REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"variáveis seguindo regras de contexto não podem ser usadas com -f ou -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass só tem sentido para scanners C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Uso: %s [OPÇÕES] [ARQUIVO]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -624,6 +637,7 @@ msgid "state # %4d\t"
msgstr "estado # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** final do despejo\n"
@@ -654,107 +668,120 @@ msgstr "muitas transições em mkxtion()"
msgid "too many rules (> %d)!"
msgstr "muitas regras (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "erro desconhecido porcessando a seção 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "lista de condições de início inválida"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "regra não reconhecida"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "contexto final usado duas vezes"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "valores de iteração inválidos"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "valor de iteração deve ser positivo"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "faixa negativa na classe de caracteres"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+
+#: parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Linha de entrada muito longa\n"
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "diretiva '%' não reconhecida"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "diretiva '%' não reconhecida"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "definição de nome incompleta"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%opção não reconhecida: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "classe de caractere inválida"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "definição indefinida {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condição de início> inválida: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "faltou aspa"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "expressão de classe de caractere inválida: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "caracater inválido entre {}'s"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "faltou }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "Fim de Arquivo encontrado dentro de uma ação"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "Fim de Arquivo encontrado dentro de uma ação"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "caracter inválido: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "impossível abrir %s"
@@ -793,11 +820,11 @@ msgstr "Erro desconhecido=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "alocação da memória da tabela de símbolos falhou"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "nome definido duas vezes"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "condição de início %s declarada duas vezes"
@@ -807,6 +834,7 @@ msgid "premature EOF"
msgstr "Fim-de-Arquivo prematuro"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Marca de Fim\n"
@@ -815,6 +843,9 @@ msgstr "Marca de Fim\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Algo Estranho* - tok: %d val: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "verificação de consistência falhou em symfollowset"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr ""
#~ "Impossível especificar a opção de cabeçalho se escrevendo em stdout."
diff --git a/po/ro.gmo b/po/ro.gmo
index b5ad6f2..9b77615 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 50ada42..9a74cd4 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2003-11-22 11:07+0200\n"
"Last-Translator: Eugen Hoanca <eugenh@urban-grafx.ro>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "context de sfârºit(trailing) periculos"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " numerele de linie asociate regulii:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " tranziþii exterioare(out): "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -64,19 +67,15 @@ msgstr "nu am putut crea sfârºit unic pentru starea buffer-ului"
msgid "state # %d:\n"
msgstr "stare # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Nu am putut scrie yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "verificare de consistenþã eºuatã în symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "caracter greºit de tranziþie detectat în sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,29 +87,29 @@ msgstr ""
"Clase de Echivalenþã:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "starea # %d acceptã: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "starea # %d acceptã: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "Nu am putut scrie yyacclist_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Nu am putut scrie yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Nu am putut scrie ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -120,332 +119,342 @@ msgstr ""
"\n"
"Clase de Meta-Echivalenþã:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Nu am putut scrie yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Nu am putut scrie yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Nu am putut scrie yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Nu am putut scrie yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Nu am putut scrie yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Nu am putut scrie ftbl"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "Nu am putut scrie ssltbl"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "Nu am putut scrie eoltbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Nu am putut scrie yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "regula nu se potriveºte cu nimic"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "a fost datã opþiunea -s dar regula implicitã se poate potrivi"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "Nu se poate folosi -+ cu opþiunea -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "Nu se poate folosi -f sau -F cu opþiunea -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "Nu se poate folosi --reentrant sau --bison-bridge cu opþiunea -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ºi -Cm nu au sens folosite împreunã"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ºi -I sunt incompatibile"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF sunt incompatibile cu module de compatibilitate lex"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ºi -CF se exclud reciproc"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "Nu se poate folosi -+ cu opþiunea -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array incompatibil cu opþiunea -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Opþiunile -+ and --reentrant se exclud reciproc"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "bridge bison nu este suportat pentru scannerul C++."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "nu am putut crea %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "Nu am putut scrie capul de tabel"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "nu am putut deschide fiºierul schelet %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "eroare de intrare(input) în timpul citirii fiºierului schelet %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "eroare în închiderea fiºierului schelet %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "eroare în crearea fiºierului de header %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "eroare în scrierea fiºierului de output %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "eroare în închiderea fiºierului de output %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "eroare în ºtergerea fiºierului de output %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Nu se revine (backing-up).\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d salvare de (inacceptabile) stãri.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tabelele compresate întotdeauna au back-up.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "eroare în scrierea fiºierului de backup %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "eroare în închiderea fiºierului de backup %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s versiunea %s statistici de folosire:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " opþiuni de scanner: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d stãri NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d stãri DFA (%d cuvinte)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d reguli\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Nu se face backup\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d salvare de (inacceptabile) stãri\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Tabelele compresate întotdeauna au back-up\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Tipare de începuturi de linie folosite\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d condiþii de start\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d stãri epsilon, %d stãri dublu epsilon\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " nici o clasã de caractere\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d clase de caractere necesare %d/%d cuvinte de stocare, %d refolosite\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d perechi de stare/stareurmãtoare create\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d tranziþii unice/duplicate\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d intrãri în tabele\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d base-def intrãri create\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (maxim %d) nxt-chk intrãri create\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (maxim %d) model nxt-chk intrãri create\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d intrãri în tabel goale\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototipuri create\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d modele create, %d folosiri\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d clase de echivalenþã create\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d clase de meta-echivalenþã create\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d salvate) coliziuni disipate(hash), %d egaluri de DFA-uril\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d seturi de realocãri necesare\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d intrãri totale în tabel necesare\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Eroare internã. Opþiunile flex(flexopts) sunt malformate.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Încercaþi `%s --help' pentru mai multe informaþii.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "opþiune -C necunoscutã `%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "eroare fatalã de analizã(parse)"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "nu s-a putut crea fiºierul de informaþii de back-up %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l opþiunea de compatibilitate AT&T lex determinã o scãdere drasticã a "
"performanþei\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr "ºi poate fi sursa realã a altor scãderi de performanþã raportate\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -454,49 +463,53 @@ msgstr ""
"%%opþiunea yylineno determinã o scãdere drasticã a performanþei DOAR în "
"regulile care se potrivesc caracterelor linie_nouã(newline)\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interactiãe) determinã o scãdere minorã a performanþei\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() determinã o scãdere minorã a performanþei\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT determinã o scãdere drasticã a performanþei\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Contextul de sfârºit(trailing) variabil determinã o scãdere drasticã a "
"performanþei\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT nu poate fi folosit cu -f sau -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%opþiunea yylineno nu poate fi folositã cu REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"contextul de sfârºit(trailing) variabil nu poate fi folosit cu -f sau -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%opþunea yyclass este folositoare doar pentru scannerele C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Folosire: %s [OPÞIUNI] [FIªIER]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -685,6 +698,7 @@ msgid "state # %4d\t"
msgstr "stare # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** sfârºit de aducere(dump)\n"
@@ -715,109 +729,128 @@ msgstr "s-au gãsit prea multe tranziþii în mkxtion()"
msgid "too many rules (> %d)!"
msgstr "prea multe reguli (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "eroare necunoscutã în procesarea secþiunii 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "listã de stãri în condiþie proastã"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "regulã necunoscutã"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "context de sfârºit(trailing) utilizat de douã ori"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "valori de iteraþie greºite"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "valoarea iteraþiei trebuie sã fie pozitivã"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"intervalul(range) de caracter [%c %c] este ambiguu într-un scanner caz-"
"insenzitiv"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "domeniu negativ în clasa de caractere"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"intervalul(range) de caracter [%c %c] este ambiguu într-un scanner caz-"
+"insenzitiv"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"intervalul(range) de caracter [%c %c] este ambiguu într-un scanner caz-"
+"insenzitiv"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Linie de intrare(input) prea lungã\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "directivã '%top' malformatã"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "directivã '%' necunoscutã"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "'{' fãrã corespondent"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "definire de nume incompletã"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "%%opþiune necunoscutã: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "clasã de caractere greºitã"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "definiþie nedefinitã {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "<condiþie de start> greºitã: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "menþionare(quote) lipsã"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "expresie clasã caracter greºitã: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "caracter eronat între {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "lipseºte }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "EOF întâlnit în mijlocul acþiunii"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "EOF întâlnit în mijlocul acþiunii"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "caracter eronat: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "nu pot deschide %s"
@@ -856,11 +889,11 @@ msgstr "Eroare necunoscutã=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "alocare de memorie pentru tabela de simboluri eºuatã"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "nume definit de douã ori"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "condiþie de start %s definitã de douã ori"
@@ -870,6 +903,7 @@ msgid "premature EOF"
msgstr "EOF prematur"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Marcaj de sfârºit\n"
@@ -878,6 +912,9 @@ msgstr "Marcaj de sfârºit\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Ceva Ciudat* - tok: %d val: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "verificare de consistenþã eºuatã în symfollowset"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "Nu se poate specifica opþiunea de header dacã se scrie la stdout"
diff --git a/po/ru.gmo b/po/ru.gmo
index 3c73fef..9f6c130 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 8346cf9..c58e3e4 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.19\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2002-09-08 10:54+0400\n"
"Last-Translator: Dmitry S. Sivachenko <mitya@cavia.pp.ru>\n"
"Language-Team: Russian <ru@li.org>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr "ÏÐÁÓÎÙÊ ÚÁÍÙËÁÀÝÉÊ ËÏÎÔÅËÓÔ"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " ÎÏÍÅÒÁ ÓÔÒÏË ÁÓÓÏÃÉÉÒÏ×ÁÎÎÏÇÏ ÐÒÁ×ÉÌÁ:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr ""
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -62,19 +65,15 @@ msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ ÕÎÉËÁÌØÎÏÅ ÓÏÓÔÏÑÎÉÅ ËÏÎÃÁ ÂÕÆÅÒÁ"
msgid "state # %d:\n"
msgstr "ÓÏÓÔÏÑÎÉÅ # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÒÏ×ÅÒËÅ ÎÁ ÃÅÌÏÓÔÎÏÓÔØ × symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "ÏÂÎÁÒÕÖÅÎ ÎÅ×ÅÒÎÙÊ ÐÅÒÅÈÏÄÎÙÊ ÓÉÍ×ÏÌ × sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -86,30 +85,30 @@ msgstr ""
"ëÌÁÓÓÙ ÜË×É×ÁÌÅÎÔÎÏÓÔÉ:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "ÓÏÓÔÏÑÎÉÅ # %d ÄÏÐÕÓËÁÅÔ: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "ÓÏÓÔÏÑÎÉÅ # %d ÄÏÐÕÓËÁÅÔ: "
-#: gen.c:1163
+#: gen.c:1157
#, fuzzy
msgid "Could not write yyacclist_tbl"
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ yyacc_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -119,384 +118,398 @@ msgstr ""
"\n"
"íÅÔÁÜË×É×ÁÌÅÎÔÎÙÈ ëÌÁÓÓÏ×:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "îÅ ÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ ftbl"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ ecstbl"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ ecstbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "îÅ×ÏÚÍÏÖÎÏ ÚÁÐÉÓÁÔØ yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "ÎÅ×ÏÚÎÏÖÎÏ ÐÒÉÍÅÎÉÔØ ÐÒÁ×ÉÌÏ"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "ÕËÁÚÁÎÁ ÏÐÃÉÑ -s, ÎÏ ÐÒÁ×ÉÌÏ ÐÏ ÕÍÏÌÞÁÎÉÀ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÉÍÅÎÅÎÏ"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ -+ Ó ËÌÀÞÅÍ -l ÎÅ×ÏÚÍÏÖÎÏ"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ -f ÉÌÉ -F Ó ËÌÀÞÅÍ -l ÎÅ×ÏÚÍÏÖÎÏ"
-#: main.c:238
+#: main.c:241
#, fuzzy
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ -R ÉÌÉ -Rb Ó ËÌÀÞÅÍ -l ÎÅ×ÏÚÍÏÖÎÏ"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF É -Cm ×ÍÅÓÔÅ ÎÅ ÉÍÅÀÔ ÓÍÙÓÌÁ"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF É -I ÎÅÓÏ×ÍÅÓÔÉÍÙ"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF ÎÅÓÏ×ÍÅÓÔÎÙ Ó ÒÅÖÉÍÏÍ lex-ÓÏ×ÍÅÓÔÉÍÏÓÔÉ"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf É -CF Ñ×ÌÑÀÔÓÑ ×ÚÁÉÍÏÉÓËÌÀÞÁÀÝÉÍÉ"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ -+ Ó ËÌÀÞÅÍ -CF ÎÅ×ÏÚÍÏÖÎÏ"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array ÎÅÓÏ×ÍÅÓÔÉÍ Ó ËÌÀÞÅÍ -+"
-#: main.c:299
+#: main.c:302
#, fuzzy
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "ëÌÀÞÉ -+ É -R Ñ×ÌÑÀÔÓÑ ×ÚÁÉÍÏÉÓËÌÀÞÁÀÝÉÍÉ"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÓÏÚÄÁÔØ %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "ÎÅÕÄÁÅÔÓÑ ÚÁÐÉÓÁÔØ ÚÁÇÏÌÏ×ÏË ÔÁÂÌÉÃ"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ-ËÁÒËÁÓ %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "ÏÛÉÂËÁ ÞÔÅÎÉÑ ÆÁÊÌÁ-ËÁÒËÁÓÁ %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "ÏÛÉÂËÁ ÐÒÉ ÚÁËÒÙÔÉÉ ÆÁÊÌÁ-ËÁÒËÁÓÁ %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "ÏÛÉÂËÁ ÓÏÚÄÁÎÉÑ ÚÁÇÏÌÏ×ÏÞÎÏÇÏ ÆÁÊÌÁ %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ × ×ÙÈÏÄÎÏÊ ÆÁÊÌ %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "ÏÛÉÂËÁ ÚÁËÒÙÔÉÑ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "ÏÛÉÂËÁ ÐÒÉ ÕÄÁÌÅÎÉÉ ×ÙÈÏÄÎÏÇÏ ÆÁÊÌÁ %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr ""
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "×ÏÚ×ÒÁÔ ÎÁ %d (ÎÅÄÏÐÕÓÔÉÍÙÈ) ÓÏÓÔÏÑÎÉÊ.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "óÖÁÔÙÅ ÔÁÂÌÉÃÙ ×ÓÅÇÄÁ ÓÏÈÒÁÎÑÀÔÓÑ.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ ÆÁÊÌÁ %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "ÏÛÉÂËÁ ÐÒÉ ÚÁËÒÙÔÉÉ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ ÆÁÊÌÁ %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "ÓÔÁÔÉÓÔÉËÁ ÉÓÐÏÌØÚÏ×ÁÎÉÑ %s ×ÅÒÓÉÉ %s:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " ÏÐÃÉÉ ÓËÁÎÅÒÁ: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d ÓÏÓÔÏÑÎÉÊ îëá\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d ÓÏÓÔÏÑÎÉÊ äëá (%d ÓÌÏ×)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d ÐÒÁ×ÉÌ\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr ""
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " ÓÏÈÒÁÎÅÎÙ %d (ÎÅÄÏÐÕÓÔÉÍÙÈ) ÓÏÓÔÏÑÎÉÊ\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " óÖÁÔÙÅ ÔÁÂÌÉÃÙ ×ÓÅÇÄÁ ÓÏÈÒÁÎÑÀÔÓÑ\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " éÓÐÏÌØÚÕÀÔÓÑ ÛÁÂÌÏÎÙ ÎÁÞÁÌÁ ÓÔÒÏËÉ\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d ÓÔÁÒÔÏ×ÙÈ ÕÓÌÏ×ÉÊ\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr ""
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " ÏÔÓÕÔÓÔ×ÕÀÔ ËÌÁÓÓÙ ÓÉÍ×ÏÌÏ×\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d ËÌÁÓÓÏ× ÓÉÍ×ÏÌÏ× ÔÒÅÂÕÀÔ %d/%d ÓÌÏ× ÄÌÑ ÈÒÁÎÅÎÉÑ, %d ÐÏ×ÔÏÒÎÏ "
"ÉÓÐÏÌØÚÏ×ÁÎÏ\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " ÓÏÚÄÁÎÏ %d ÐÁÒ ÓÏÓÔÏÑÎÉÅ/ÓÌÅÄ_ÓÏÓÔÏÑÎÉÅ\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d ÕÎÉËÁÌØÎÙÈ/ÐÏ×ÔÏÒÑÀÝÉÈÓÑ ÐÅÒÅÈÏÄÏ×\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d ÜÌÅÍÅÎÔÏ× ÔÁÂÌÉÃÙ\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " ÓÏÚÄÁÎÏ %d/%d base-def ÜÌÅÍÅÎÔÏ×\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " ÓÏÚÄÁÎÏ %d/%d (ÐÉË %d) nxt-chk ÜÌÅÍÅÎÔÏ×\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " ÓÏÚÄÁÎÏ %d/%d (ÐÉË %d) ÛÁÂÌÏÎÎÙÈ nxt-chk ÜÌÅÍÅÎÔÏ×\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d ÐÕÓÔÙÈ ÜÌÅÍÅÎÔÏ× ÔÁÂÌÉÃÙ\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " ÓÏÚÄÁÎÏ %d ÐÒÏÔÏÔÉÐÏ×\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " ÓÏÚÄÁÎÏ %d ÛÁÂÌÏÎÏ×, %d ÉÓÐÏÌØÚÏ×ÁÎÉÊ\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " ÓÏÚÄÁÎÙ ËÌÁÓÓÙ ÜË×É×ÁÌÅÎÔÎÏÓÔÉ %d/%d\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d ÍÅÔÁÜË×É×ÁÌÅÎÔÎÙÈ ËÌÁÓÓÏ× ÓÏÚÄÁÎÏ\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d ÚÁÐÉÓÁÎÏ) ËÏÌÌÉÚÉÊ ÈÜÛ-ÔÁÂÌÉÃÙ, %d ÜË×É×ÁÌÅÎÔÎÙÈ äëá\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " ÔÒÅÂÕÅÔÓÑ %d ÎÁÂÏÒÏ× ÐÏ×ÔÏÒÎÙÈ ÒÁÚÍÅÝÅÎÉÊ\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " ×ÓÅÇÏ ÔÒÅÂÕÅÔÓÑ %d ÜÌÅÍÅÎÔÏ× ÔÁÂÌÉÃÙ\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ. îÅÐÒÁ×ÉÌØÎÏ ÚÁÄÁÎÙ ËÌÀÞÉ flex.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÂÏÌÅÅ ÐÏÄÒÏÂÎÏÇÏ ÏÐÉÓÁÎÉÑ.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ -C ËÌÀÞ '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "ÆÁÔÁÌØÎÁÑ ÏÛÉÂËÁ ÒÁÚÂÏÒÁ"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "ÎÅÕÄÁÅÔÓÑ ÓÏÚÄÁÔØ ÚÁÐÁÓÎÏÊ ÉÎÆÏÒÍÁÃÉÏÎÎÙÊ ÆÁÊÌ %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"ïÐÃÉÑ -l ÓÏ×ÍÅÓÔÉÍÏÓÔÉ Ó AT&T lex ×ÌÅÞÅÔ ÚÎÁÞÉÔÅÌØÎÏÅ ÓÎÉÖÅÎÉÅ "
"ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" É ÔÁËÖÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÔÉÎÎÙÍ ÉÓÔÏÞÎÉËÏÍ ÐÒÏÂÌÅÍ Ó ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØÀ\n"
-#: main.c:1521
+#: main.c:1529
#, fuzzy, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr "%%option yylineno ×ÌÅÞÅÔ ÚÎÁÞÉÔÅÌØÎÏÅ ÓÎÉÖÅÎÉÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (ÉÎÔÅÒÁËÔÉ×ÎÙÊ) ×ÌÅÞÅÔ ÎÅÚÎÁÞÉÔÅÌØÎÏÅ ÓÎÉÖÅÎÉÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() ÐÒÉ×ÏÄÉÔ Ë ÎÅÂÏÌØÛÏÍÕ ÓÎÉÖÅÎÉÀ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT ×ÌÅÞÅÔ ÚÎÁÞÉÔÅÌØÎÏÅ ÓÎÉÖÅÎÉÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ÎÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎ ×ÍÅÓÔÅ Ó -f ÉÌÉ -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ÎÅ ÍÏÖÅÔ ÂÙÔØ ÉÓÐÏÌØÚÏ×ÁÎÏ Ó REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass ÉÍÅÅÔ ÓÍÙÓÌ ÔÏÌØËÏ ÄÌÑ ÓËÁÎÅÒÏ× ÎÁ C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé] [æáêì]...\n"
-#: main.c:1787
+#: main.c:1801
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -685,6 +698,7 @@ msgid "state # %4d\t"
msgstr "ÓÏÓÔÏÑÎÉÅ # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********* ËÏÎÅÃ ÄÁÍÐÁ\n"
@@ -715,107 +729,120 @@ msgstr "ÎÁÊÄÅÎÏ ÓÌÉÛËÏÍ ÍÎÏÇÏ ÐÅÒÅÈÏÄÏ× × mkxtion()"
msgid "too many rules (> %d)!"
msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ÐÒÁ×ÉÌ (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ ÐÒÉ ÏÂÒÁÂÏÔËÅ ÒÁÚÄÅÌÁ 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "ÎÅ×ÅÒÎÙÊ ÓÐÉÓÏË ÎÁÞÁÌØÎÙÈ ÕÓÌÏ×ÉÊ"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÏÅ ÐÒÁ×ÉÌÏ"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "ÚÁÍÙËÁÀÝÉÊ ËÏÎÔÅËÓÔ ÉÓÐÏÌØÚÕÅÔÓÑ Ä×ÁÖÄÙ"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr ""
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr ""
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "ÏÔÒÉÃÁÔÅÌØÎÙÊ ÄÉÁÐÁÚÏÎ × ËÌÁÓÓÅ ÓÉÍ×ÏÌÏ×"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+
+#: parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "óÌÉÛËÏÍ ÄÌÉÎÎÁÑ ×ÈÏÄÎÁÑ ÓÔÒÏËÁ\n"
-#: scan.l:150
+#: scan.l:161
#, fuzzy, c-format
msgid "malformed '%top' directive"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ '%' ÄÉÒÅËÔÉ×Á"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÁÑ '%' ÄÉÒÅËÔÉ×Á"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "ÎÅÐÏÌÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÉÍÅÎÉ"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "ÎÅÒÁÓÐÏÚÎÁÎÎÙÊ %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "ÎÅ×ÅÒÎÙÊ ËÌÁÓÓ ÓÉÍ×ÏÌÁ"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "ÎÅÏÐÒÅÄÅÌÅÎÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "ÎÅ×ÅÒÎÏÅ <ÎÁÞÁÌØÎÏÅ ÕÓÌÏ×ÉÅ>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "ÏÔÓÕÔÓÔ×ÕÀÔ ËÁ×ÙÞËÉ"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "ÎÅ×ÅÒÎÏÅ ×ÙÒÁÖÅÎÉÅ ËÌÁÓÓÁ ÓÉÍ×ÏÌÁ: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ ×ÎÕÔÒÉ {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "ÏÔÓÕÔÓÔ×ÕÅÔ }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "×ÓÔÒÅÞÅÎ EOF ×ÎÕÔÒÉ ÄÅÊÓÔ×ÉÑ"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "×ÓÔÒÅÞÅÎ EOF ×ÎÕÔÒÉ ÄÅÊÓÔ×ÉÑ"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "ÎÅ×ÏÚÍÏÖÎÏ ÏÔËÒÙÔØ %s"
@@ -854,11 +881,11 @@ msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "ÏÛÉÂËÁ ÐÒÉ ×ÙÄÅÌÅÎÉÉ ÐÁÍÑÔÉ ÐÏÄ ÓÉÍ×ÏÌÙ"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "ÉÍÑ ÏÐÒÅÄÅÌÅÎÏ Ä×ÁÖÄÙ"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "ÓÔÁÒÔÏ×ÏÅ ÕÓÌÏ×ÉÅ %s ÏÐÉÓÁÎÏ Ä×ÁÖÄÙ"
@@ -868,6 +895,7 @@ msgid "premature EOF"
msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ËÏÎÅÃ ÆÁÊÌÁ"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "íÅÔËÁ ËÏÎÃÁ\n"
@@ -876,6 +904,9 @@ msgstr "íÅÔËÁ ËÏÎÃÁ\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*þÔÏ-ÔÏ ÎÅ ÔÁË* - tok: %d val: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "ÏÛÉÂËÁ ÐÒÉ ÐÒÏ×ÅÒËÅ ÎÁ ÃÅÌÏÓÔÎÏÓÔØ × symfollowset"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "îÅ×ÏÚÍÏÖÎÏ ÕËÁÚÁÔØ ÐÁÒÁÍÅÔÒ header ÐÒÉ ×Ù×ÏÄÅ ÎÁ stdout."
diff --git a/po/sv.gmo b/po/sv.gmo
index 1eb8a72..1dc8621 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 98bfa7e..0e3897c 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -6,8 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2004-03-21 22:51+0100\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
@@ -25,14 +25,17 @@ msgid "dangerous trailing context"
msgstr "farligt efterföljande sammanhang"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " radnummer för associerad regel:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " utövergångar: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -67,19 +70,15 @@ msgstr "tillstånd %d:\n"
# Det här är ju helt sjukt. Har buggrapporterat detta att det bör
# ersättas med %s
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "Kunde inte skriva yynxt_tbl[][]"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "konsekvenskontrollen misslyckades i symfollowset"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "otillåtet övergångstecken funnet i sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -91,29 +90,29 @@ msgstr ""
"Ekvivalensklasser:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tillstånd %d accepterar: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "tillstånd %d accepterar: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "Kunde inte skriva yyacclist_tbl"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "Kunde inte skriva yyacc_tbl"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "Kunde inte skriva ecstbl"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -123,332 +122,342 @@ msgstr ""
"\n"
"Metaekvivalensklasser:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Kunde inte skriva yymeta_tbl"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "Kunde inte skriva yybase_tbl"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "Kunde inte skriva yydef_tbl"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "Kunde inte skriva yynxt_tbl"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "Kunde inte skriva yychk_tbl"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "Kunde inte skriva ftbl"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "Kunde inte skriva ssltbl"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "Kunde inte skriva eoltbl"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "Kunde inte skriva yynultrans_tbl"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "regeln kan inte matchas"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "flaggan -s angiven men standardregeln kan följas"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "-+ kan inte användas tillsammans med flaggan -l"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "-f eller -F kan inte användas tillsammans med flaggan -l"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"--reentrant eller --bison-bridge kan inte användas tillsammans med flaggan -l"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF och -Cm kan inte användas tillsammans"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF och -I kan inte användas tillsammans"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF kan inte användas i lex-kompatibilitetsläge"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf och -CF är ömsesidigt uteslutande"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "-+ kan inte användas tillsammans med flaggan -CF"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array kan inte användas tillsammans med flaggan -+"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Flaggorna -+ och --reentrant är ömsesidigt uteslutande."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "bisonbrygga stöds inte för C++-inläsaren."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "kunde inte skapa %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "kunde inte skriva tabellhuvud"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "kan inte öppna mallfilen %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "indatafel vid läsande av mallfilen %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "fel vid stängande av mallfilen %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "fel vid skapande av huvudfilen %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "fel vid skrivande av utfilen %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "fel vid stängande av utfilen %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "fel vid borttagning av utfilen %s"
# "Back up" i det här sammanhanget handlar om att flexmaskinen backar.
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Backar inte.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d säkerhetskopierande (icke-accepterande) tillstånd.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Komprimerade tabeller säkerhetskopierar alltid.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "fel när säkerhetskopian %s skulle skrivas"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "fel när säkerhetskopian %s skulle stängas"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "Statistik över användning av %s version %s:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " inläsarflaggor: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA-tillstånd\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA-tillstånd (%d ord)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d regler\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Inget säkerhetskopierande\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d (icke-accepterande) tillstånd för säkerhetskopiering\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Komprimerade tabeller säkerhetskopierar alltid\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Början-av-rad-mönster använda\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d startvillkor\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilontillstånd, %d dubbla epsilontillstånd\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " inga teckenklasser\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr " %d/%d teckenklasser behövde %d/%d ord för lagring, %d återanvända\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d par med tillstånd/nästa-tillstånd skapade\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d unika/duplicerade övergångar\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d tabellposter\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d basstandardposter skapade\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (max %d) poster för nästa kontroll skapade\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (max %d) mallposter för nästa kontroll skapade\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d tomma tabellposter\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototyper skapade\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d mallar skapade, %d användningar\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d ekvivalensklasser skapade\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d metaekvivalensklasser skapade\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d sparade) hashkollisioner, %d DFA lika\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d uppsättningar med omallokeringar krävdes\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d tabellposter krävs totalt\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Internt fel. flexopts är felaktiga.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Prova \"%s --help\" för mer information.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "okänd flagga till -C \"%c\""
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "allvarligt fel vid tolkningen"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "kunde inte skapa filen %s med säkerhetskopieringsinformation"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"flaggan -l för beteende som AT&T:s lex medför en väsentlig prestandaförlust\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr " och kan vara den egentliga orsaken till andra rapporter om detta\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -457,50 +466,54 @@ msgstr ""
"%%option yylineno medför en prestandaförlust ENDAST på regler som kan matcha "
"nyradstecken\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiv) medför en mindre prestandaförlust\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() medför en mindre prestandaförlust\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT medför en väsentlig prestandaförlust\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Regler för varierbar efterföljande sammanhang medför en väsentlig "
"prestandaförlust\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT kan inte användas tillsammans med -f eller -F"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno kan inte användas tillsammans med REJECT"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"regler för varierbar efterföljande kontext kan inte användas\n"
"tillsammans med -f eller -F"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass är bara meningsfull för C++-inläsare"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Användning: %s [FLAGGOR] [FIL]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -685,6 +698,7 @@ msgid "state # %4d\t"
msgstr "tillstånd %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** slut på utskrift\n"
@@ -715,108 +729,125 @@ msgstr "fann för många övergångar i mkxtion()"
msgid "too many rules (> %d)!"
msgstr "för många regler (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "okänt fel vid tolkning av avsnitt 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "felaktig lista med startvillkor"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "okänd regel"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "efterföljande kontext används två gånger"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "felaktiga iterationsvärden"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "iterationsvärde måste vara positivt"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"teckenintervallet [%c-%c] är tvetydigt i en skiftlägesokänslig inläsare"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "negativt intervall i teckenklass"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"teckenintervallet [%c-%c] är tvetydigt i en skiftlägesokänslig inläsare"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"teckenintervallet [%c-%c] är tvetydigt i en skiftlägesokänslig inläsare"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "För lång indatarad\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "felaktigt \"%top\"-direktiv"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "okänt \"%\"-direktiv"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "Ensamt \"{\""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "ofullständig namndefinition"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "okänd %%option: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "otillåten teckenklass"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "odefinierad definition {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "otillåtet <startvillkor>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "citationstecken saknas"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "otillåtet uttryck för teckenklass: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "otillåtet tecken inom {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "} saknas"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "filslut påträffat inuti en handling"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "filslut påträffat inuti en handling"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "otillåtet tecken: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "kan inte öppna %s"
@@ -855,11 +886,11 @@ msgstr "Okänt fel=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "minnesallokering för symboltabell misslyckades"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "namnet definierat två gånger"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "startvillkoret %s deklarerat två gånger"
@@ -869,6 +900,7 @@ msgid "premature EOF"
msgstr "för tidigt filslut"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Slutmarkering\n"
@@ -877,6 +909,9 @@ msgstr "Slutmarkering\n"
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Något märkligt* - tecken: %d värde: %d\n"
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "konsekvenskontrollen misslyckades i symfollowset"
+
#~ msgid "Can't specify header option if writing to stdout."
#~ msgstr "Kan inte ange huvudflagga då utskrift sker till standard ut."
diff --git a/po/tr.gmo b/po/tr.gmo
index d31af07..5e3a664 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 466daa2..258f6e6 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2004-05-16 18:36+0300\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -25,14 +25,17 @@ msgid "dangerous trailing context"
msgstr "izleyen baÄŸlam tehlikeli"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr " alakalı kural satır numaraları:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr " dış-geçişler: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -65,19 +68,15 @@ msgstr "tekil tampon sonu durumu yaratılamadı"
msgid "state # %d:\n"
msgstr "durum # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr "yynxt_tbl[][] yazılamadı"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "symfollowset içindeki tutarlık kontrolü başarısız"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "sympartition() içinde hatalı geçiş karakterleri saptandı"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -89,29 +88,29 @@ msgstr ""
"Denklik Sınıfları:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "durum # %d kabul eder: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr "durum # %d kabul eder: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr "yyacclist_tbl yazılamadı"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr "yyacc_tbl yazılamadı"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
msgstr "ecstbl yazılamadı"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -121,332 +120,342 @@ msgstr ""
"\n"
"Ara-Denklik Sınıfları:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "yymeta_tbl yazılamadı"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
msgstr "yybase_tbl yazılamadı"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr "yydef_tbl yazılamadı"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr "yynxt_tbl yazılamadı"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr "yychk_tbl yazılamadı"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
msgstr "ftbl yazılamadı"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
msgstr "ssltbl yazılamadı"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
msgstr "eoltbl yazılamadı"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr "yynultrans_tbl yazılamadı"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "kural eÅŸlenemedi"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr "-s seçeneği verilmiş fakat öntanımlı kural eşlenebiliyor"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr "-+'yi -l seçeneği ile kullanma"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr "-f veya -F'yi -l seçeneği ile kullanma"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr "-l seçeneği ile --reentrant veya --bison-bridge bir arada kullanılamaz"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ve -Cm birlikte anlam ifade etmiyor"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ve -I uyumsuz"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF lex-uyumluluk kipi ile uyumsuz"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ve -CF bir arada kullanılamaz"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr "-+, -CF seçeneği ile kullanılamaz"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array, -+ seçeneği ile uyumsuz"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "-+ ve --reentrant seçenekleri bir arada kullanılamaz"
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr "bison bridge, C++ tarayıcısı için desteklenmiyor."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "%s oluşturulamadı"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
msgstr "tablo başlığı yazılamadı"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "iskelet dosyası %s açılamadı"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "iskelet dosyası %s okunurken girdi hatası"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "iskelet dosyası %s kapatılırken hata"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "başlık dosyası %s oluşturulurken hata"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "çıktı dosyası %s yazılırken hata"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "çıktı dosyası %s kapatılırken hata"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "çıktı dosyası %s silinirken hata"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr "Yedekleme yok.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d yedeklenen (kabul-etmeyen) durumlar.\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Sıkıştırılmış tablolar daima yedeklidir.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "yedek dosyası %s yazılırken hata"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "yedek dosyası %s kapatılırken hata"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s sürüm %s kullanım istatistikleri:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " tarayıcı seçenekleri: -"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d NFA durumu\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d DFA durumu (%d sözcük)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d kural\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr " Yedekleme yok\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr " %d yedeklenmiÅŸ (kabul-edilmeyen) durum\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr " Sıkıştırılmış tablolar daima yedeklenir\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr " Başlangıç-satırı kalıpları kullanıldı\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d başlangıç şartları\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr " %d epsilon durumu, %d çift epsilon durumu\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " karakter sınıfı yok\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
" %d/%d ihtiyaç duyulan karakter sınıfı %d/%d depolanan sözcük, %d yeniden "
"kullanıldı\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr " %d durumu/sonrakidurum çifti yaratıldı\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr " %d/%d tekil/çift geçişler\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr " %d tablo girdileri\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr " %d/%d temel-tanım girdileri yaratıldı\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr " %d/%d (en yüksek %d) nxt-chk girdileri yaratıldı\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr " %d/%d (en yüksek %d) şablon nxt-chk girdileri yaratıldı\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr " %d boÅŸ tablo girdileri\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr " %d prototip yaratıldı\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr " %d şablon yaratıldı, %d kullanıldı\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr " %d/%d denklik sınıfı yaratıldı\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr " %d/%d ara-denklik sınıfı yaratıldı\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d kaydedildi) saçılma çarpışması, %d DFA denk\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr " %d tekrar ayırım kümesine ihtiyaç var\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr " %d toplam tablo girdisine ihtiyaç var\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "İç hata. flexopt'lar bozuk.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "bilinmeyen -C seçeneği '%c'"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "ölümcül ayrıştırma hatası"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr "yedekleme bilgi dosyası %s oluşturulamadı"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr "-l AT&T lex uyumluluğu seçeneği önemli ölçüde yavaşlamaya yol açar\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" ve belki bildirilen başka performans kayıplarının da kaynağı olabilir\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
@@ -455,47 +464,51 @@ msgstr ""
"yylineno %%seçeneği YALNIZCA yenisatır karakterlerini de eşleyen satırlarda "
"yavaÅŸlar.\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (etkileşimli) küçük ölçekli bir yavaşlamaya neden olur\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() küçük ölçekli bir yavaşlamaya neden olur\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT büyük ölçekli bir yavaşlamaya neden olur\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
"Değişken izleyen bağlam kuralları, büyük ölçekli yavaşlamaya neden olur\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT, -f veya -F ile kullanılamaz"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno, REJECT ile birlikte kullanılamaz"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr "değişken izleme ortamı kuralları, -f veya -F ile birlikte kullanılamaz"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass, sadece C++ tarayıcıları için anlamlıdır"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Kullanım: %s [SEÇENEKLER...] [DOSYA...]\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -679,6 +692,7 @@ msgid "state # %4d\t"
msgstr "durum # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** döküm sonu\n"
@@ -709,109 +723,128 @@ msgstr "mkxtion() içinde çok fazla geçiş bulundu"
msgid "too many rules (> %d)!"
msgstr "çok fazla kural (> %d)!"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "1. bölüm işlenirken bilinmeyen hata oluştu"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "hatalı başlangıç şart listesi"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "bilinmeyen kural"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr "izleyen bağlam iki defa kullanılmış"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr "hatalı yineleme değerleri"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr "yineleme değeri pozitif olmalı"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
"belirsiz anlamlı"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "karakter sınıflarında negatif aralık"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
+"belirsiz anlamlı"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+"[%c-%c] karakter aralığı, büyük/küçük harf farkı gözetmeyen bir tarayıcıda\n"
+"belirsiz anlamlı"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr "Girdi satırı fazla uzun\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr "hatalı `%top' yönergesi"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "'%' yönergesi bilinmiyor"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr "'{' eÅŸleÅŸmiyor"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "eksik isim tanımlaması"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "geçersiz %%seçenek: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "hatalı karakter sınıfı"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "belirsiz tanım {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "hatalı <başlangıç şartı>: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "eksik çift tırnak"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "bozuk karakter sınıfı ifadesi: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "{}'ler içinde hatalı karakter"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "eksik }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "bir eylem içinde EOF ile karşılaşıldı"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "bir eylem içinde EOF ile karşılaşıldı"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "hatalı karakter: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "%s açılamıyor"
@@ -850,11 +883,11 @@ msgstr "Bilinmeyen hata=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "simge tablosu bellek ayırımı başarısız"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "isim iki defa tanımlandı"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "başlangıç şartı %s iki defa bildirildi"
@@ -864,6 +897,7 @@ msgid "premature EOF"
msgstr "erken EOF"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr "Bitiş İşaretçisi\n"
@@ -871,3 +905,6 @@ msgstr "Bitiş İşaretçisi\n"
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Garip Bir Şey* -andaç: %d değer: %d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "symfollowset içindeki tutarlık kontrolü başarısız"
diff --git a/po/vi.gmo b/po/vi.gmo
index 7fdd05a..1a6c4f2 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 7e9a510..5016d27 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -1,47 +1,52 @@
-# Vietnamese translation for flex-2.5.31.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# Clytie Siddall <clytie@riverland.net.au>, 2005.
+# Vietnamese translation for Flex.
+# Copyright © 2006 Free Software Foundation, Inc.
+# Clytie Siddall <clytie@riverland.net.au>, 2005-2006.
#
msgid ""
msgstr ""
-"Project-Id-Version: flex 2.5.31\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
-"PO-Revision-Date: 2005-03-31 16:08+0950\n"
+"Project-Id-Version: flex-2.5.33\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
+"PO-Revision-Date: 2006-07-01 16:57+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
-"Language-Team: Vietnamese <gnomevi-list@lists.sourceforge.net>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+"X-Generator: LocFactoryEditor 1.6b36\n"
#: dfa.c:61
#, c-format
msgid "State #%d is non-accepting -\n"
-msgstr "Tính trạng #%d không phải là loại chấp nhận -\n"
+msgstr "Tình trạng #%d không phải là kiểu chấp nhận -\n"
#: dfa.c:124
msgid "dangerous trailing context"
msgstr "ngữ cảnh theo sau là nguy hiểm"
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
-msgstr " số dòng quy tắc được thích hợp:"
+msgstr " số hiệu dòng quy tắc tương ứng:"
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
-msgstr " việc chuyển tiếp xuất:"
+msgstr " việc chuyển tiếp xuất: "
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
msgstr ""
"\n"
-" chuyển tiếp jam (bị trở ngại?): gặp kết thức tập tin"
+" chuyển tiếp jam (bị trở ngại?): gặp kết thúc tập tin"
#: dfa.c:341
msgid "consistency check failed in epsclosure()"
-msgstr "kiểm tra sự thống nhất trong epsclosure() đã thất bại rồi"
+msgstr "việc kiểm tra sự thống nhất bị lỗi trong epsclosure()"
#: dfa.c:429
msgid ""
@@ -57,26 +62,22 @@ msgstr ""
#: dfa.c:604
msgid "could not create unique end-of-buffer state"
-msgstr "không tạo được tính trạng kết thức bộ đệm độc nhất"
+msgstr "không thể tạo tính trạng kết thúc bộ đệm duy nhất"
#: dfa.c:625
#, c-format
msgid "state # %d:\n"
msgstr "tính trạng # %d:\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
-msgstr "Không ghi được yynxt_tbl[][]"
+msgstr "Không thể ghi « yynxt_tbl[][] »"
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "kiểm tra sự thống nhất trong symfollowset đã thất bại rồi"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
-msgstr "phát hiện ký tự chuyển tiếp sai trong sympartition() rồi"
+msgstr "phát hiện ký tự chuyển tiếp sai trong sympartition()"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -88,29 +89,29 @@ msgstr ""
"Hạng độ tương đương:\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
-msgstr "tính trạng # %d thì chấp nhận: [%d]\n"
+msgstr "tình trạng # %d chấp nhận: [%d]\n"
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
-msgstr "tính trạng # %d thì chấp nhận: "
+msgstr "tính trạng # %d chấp nhận: "
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
-msgstr "Không ghi được yyacclist_tbl"
+msgstr "Không thể ghi « yyacclist_tbl »"
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
-msgstr "Không ghi được yyacc_tbl"
+msgstr "Không thể ghi « yyacc_tbl »"
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
msgid "Could not write ecstbl"
-msgstr "Không ghi được ecstbl"
+msgstr "Không thể ghi « ecstbl »"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
@@ -118,385 +119,401 @@ msgid ""
msgstr ""
"\n"
"\n"
-"Hạng tính loại tương đương mức cao hơn:\n"
+"Hạng siêu tương đương:\n"
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
-msgstr "Không ghi được yymeta_tbl"
+msgstr "Không thể ghi « yymeta_tbl »"
-#: gen.c:1360
+#: gen.c:1354
msgid "Could not write yybase_tbl"
-msgstr "Không ghi được yybase_tbl"
+msgstr "Không thể ghi « yybase_tbl »"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
-msgstr "Không ghi được yydef_tbl"
+msgstr "Không thể ghi « yydef_tbl »"
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
-msgstr "Không ghi được yynxt_tbl"
+msgstr "Không thể ghi « yynxt_tbl »"
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
-msgstr "Không ghi được yychk_tbl"
+msgstr "Không thể ghi « yychk_tbl »"
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
msgid "Could not write ftbl"
-msgstr "Không ghi được ftbl"
+msgstr "Không thể ghi « ftbl »"
-#: gen.c:1630
+#: gen.c:1624
msgid "Could not write ssltbl"
-msgstr "Không ghi được ssltbl"
+msgstr "Không thể ghi « ssltbl »"
-#: gen.c:1681
+#: gen.c:1675
msgid "Could not write eoltbl"
-msgstr "Không ghi được eoltbl"
+msgstr "Không thể ghi « eoltbl »"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
-msgstr "Không ghi được yynultrans_tbl"
+msgstr "Không thể ghi « yynultrans_tbl »"
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
-msgstr "không thể khớp vơi quy tắc ấy"
+msgstr "quy tắc không thể được khớp"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
-msgstr "Ä‘Æ°a ra tùy chá»n -s nhÆ°ng có thể khá»›p vá»›i quy tắc mặc định"
+msgstr "Ä‘Æ°a ra tùy chá»n « -s » còn quy tắc mặc định có thể được khá»›p"
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
-msgstr "Không thể sá»­ dụng ký tÆ° -+ vá»›i tùy chá»n -l"
+msgstr "Không thể dùng ký tÆ° « -+ » vá»›i tùy chá»n « -l »"
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
-msgstr "Không thể sá»­ dụng cá» -f hoặc -F vá»›i tùy chá»n -l "
+msgstr "Không thể dùng cỠ« -f » hoặc « -F » vá»›i tùy chá»n « -l »"
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
-"Không thể sử dụng đối số --reentrant (vào lại) hoặc --bison-bridge (chiếc "
-"cầu bison) vá»›i tùy chá»n -l"
+"Không thể dùng đối số « --reentrant » (Ä‘iá»u vào lại) hoặc « --bison-bridge "
+"» (chiếc cầu bison) vá»›i tùy chá»n « -l »"
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
-msgstr "Hai tùy chá»n -Cf/-CF và -Cm không có ý nghÄ©a vá»›i nhau"
+msgstr "Hai tùy chá»n « -Cf/-CF » và « -Cm » không có ý nghÄ©a vá»›i nhau"
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
-msgstr "Hai tùy chá»n -Cf/-CF và -I không phải là tÆ°Æ¡ng thích vá»›i nhau"
+msgstr "Hai tùy chá»n « -Cf/-CF » và « -I » không tÆ°Æ¡ng thích vá»›i nhau"
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
-"Tùy chá»n -Cf/-CF không phải là tÆ°Æ¡ng thích vá»›i chế Ä‘á»™ lex-compatibility "
-"(tương thích với lex)"
+"Tùy chá»n « -Cf/-CF » không tÆ°Æ¡ng thích vá»›i chế Ä‘á»™ « lex-compatibility "
+"» (tương thích với lex)"
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
-msgstr "Hai tùy chá»n -Cf and -CF là loại từ lẫn nhau"
+msgstr "Hai tùy chá»n « -Cf » and « -CF » loại từ lẫn nhau"
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
-msgstr "Không thể sá»­ dụng ký tá»± -+ vá»›i tùy chá»n -CF "
+msgstr "Không thể dùng ký tá»± « -+ » vá»›i tùy chá»n « -CF »"
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
-msgstr "%array (mảng) không tÆ°Æ¡ng thích vá»›i tùy chá»n -+"
+msgstr "« %array » (mảng) không tÆ°Æ¡ng thích vá»›i tùy chá»n « -+ »"
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
-msgstr "Hai tùy chá»n -+ và --reentrant (vào lại) là loại từ lẫn nhau."
+msgstr ""
+"Hai tùy chá»n « - + » và « --reentrant » (Ä‘iá»u vào lại) loại từ lẫn nhau."
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
-msgstr "không hỗ trợ bison bridge (chiếc cầu bison) cho bộ quét C++."
+msgstr "bison bridge (chiếc cầu bison) không được hỗ trợ với bộ quét C++."
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
-msgstr "không tạo được %s"
+msgstr "không thể tạo %s"
-#: main.c:415
+#: main.c:419
msgid "could not write tables header"
-msgstr "không ghi được dòng đầu bảng"
+msgstr "không thể ghi phần đầu bảng"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
-msgstr "không mở được tập tin khung sÆ°á»n %s"
+msgstr "không thể mở tập tin khung sÆ°á»n %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
-msgstr "gặp lá»—i gõ khi Ä‘á»c tâp tin khung sÆ°á»n %s"
+msgstr "gặp lá»—i nhập khi Ä‘á»c tập tin khung sÆ°á»n %s"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "gặp lá»—i khi đóng tập tin khung sÆ°á»n %s"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
-msgstr "gặp lỗi khi tạo tập tin dòng đầu %s"
+msgstr "gặp lỗi khi tạo tập tin phần đầu %s"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "gặp lỗi khi ghi tập tin xuất %s"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "gặp lỗi khi đóng tập tin xuất %s"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
-msgstr "gặp lỗi khi xóa bỠtập tin xuất %s"
+msgstr "gặp lỗi khi xoá bỠtập tin xuất %s"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
-msgstr "Không lưu trữ.\n"
+msgstr "Không sao lưu.\n"
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
-msgstr "%d đang lưu trữ tính trạng (loại không chấp nhận).\n"
+msgstr "%d đang sao lưu các tình trạng (kiểu không chấp nhận).\n"
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
-msgstr "Bảng nén luôn luôn lưu trữ.\n"
+msgstr "Bảng đã nén luôn luôn sao lưu.\n"
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
-msgstr "găp lỗi khi ghi tập tin lưu trữ %s"
+msgstr "găp lỗi khi ghi tập tin sao lưu %s"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
-msgstr "gặp lỗi khi đóng tập tin lưu trữ %s"
+msgstr "gặp lỗi khi đóng tập tin sao lưu %s"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
-msgstr "phiên bản %s thống kê cách sử dụng %s:\n"
+msgstr "%s phiên bản %s thống kê cách sử dụng:\n"
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
-msgstr " tùy chá»n quét: -"
+msgstr " tùy chá»n bá»™ quét: —"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr " %d/%d tính trạng NFA\n"
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr " %d/%d tính trạng DFA (%d từ)\n"
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d quy tắc\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
-msgstr " Không lưu trữ\n"
+msgstr " Không sao lưu\n"
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
-msgstr " %d lưu trữ tính trạng (loại không chấp nhận)\n"
+msgstr " %d đang sao lưu tình trạng (kiểu không chấp nhận)\n"
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
-msgstr " Bảng nén luôn luôn lưu trữ\n"
+msgstr " Bảng đã nén luôn luôn sao lưu\n"
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
-msgstr " Sử dụng mẫu loại đầu dòng\n"
+msgstr " Dùng mẫu kiểu đầu dòng\n"
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr " %d/%d Ä‘iá»u kiện bắt đầu\n"
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
-msgstr " %d tính trạng épxilông, %d tính trạng épxilông đôi\n"
+msgstr " %d tính trạng épxilông (ε), %d tính trạng épxilông đôi\n"
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr " không có hạng ký tự\n"
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
-msgstr " %d/%d hạng ky tự cần %d/%d từ sức chứa, %d được sử dụng lại\n"
+msgstr " %d/%d hạng ky tự cần thiết %d/%d từ sức chứa, %d được dùng lại\n"
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
-msgstr " tạo %d cặp tính trạng/tính trạng tới rồi\n"
+msgstr " %d cặp tính trạng/tính trạng tới đã được tạo\n"
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
-msgstr " %d/%d việc chuyên tiếp độc nhất/bản sao\n"
+msgstr " %d/%d việc chuyên tiếp duy nhất/trùng\n"
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
-msgstr " %d mục bảng\n"
+msgstr " %d mục nhập bảng\n"
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
-msgstr " tạo %d/%d mục base-def (định nghĩa cơ bản) rồi\n"
+msgstr " %d/%d mục base-def (định nghĩa cơ bản) đã được tạo\n"
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
-msgstr " tạo %d/%d (tối đa %d) mục nxt-chk (kiểm tra tới) rồi\n"
+msgstr " %d/%d (tối đa %d) mục nxt-chk (kiểm tra tới) đã được tạo\n"
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
-msgstr " tạo %d/%d (tối đa %d) mục khuôn mẫu nxt-chk (kiểm tra tới) rồi\n"
+msgstr " %d/%d (tối đa %d) mục biểu mẫu nxt-chk (kiểm tra tới) đã được tạo\n"
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
-msgstr " %d mục bảng trống\n"
+msgstr " %d mục nhập bảng trống\n"
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
-msgstr " tạo %d proto (vật đầu tiên) rồi\n"
+msgstr " %d proto (vật đầu tiên) đã được tạo\n"
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
-msgstr " tạo %d khuôn mẫu, %d lần sử dụng rồi\n"
+msgstr " %d biểu mẫu đã được tạo, %d lần dùng\n"
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
-msgstr " tạo %d/%d hạng loại tương đương rồi\n"
+msgstr " %d/%d hạng kiểu tương đương đã được tạo\n"
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
-msgstr " tạo %d/%d hạng loại tương đương mức cao hơn rồi\n"
+msgstr " %d/%d hạng siêu tương đương đã được tạo\n"
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr " %d (%d được lưu) lần va chạm với băm, %d DFA bằng nhau\n"
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
-msgstr " cần %d bá»™ Ä‘iá»u phân chia lại\n"
+msgstr " cần thiết %d tập Ä‘iá»u phân chia lại\n"
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
-msgstr " cần tổng số %d mục bảng\n"
+msgstr " cần thiết tổng số mục nhập bảng %d\n"
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
-msgstr "Gặp lỗi nội bộ vì những flexopt là khuyết tật.\n"
+msgstr "Gặp lỗi nội bộ vì những flexopt dạng sai.\n"
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
-msgstr "Hãy thử lệnh `%s --help' để xem thông tin thêm.\n"
+msgstr "Hãy thử lệnh « %s --help » (trợ giúp) để xem thông tin thêm.\n"
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
-msgstr "không biết tùy chá»n -C là '%c'"
+msgstr "không biết tùy chá»n « -C » là « %c »"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "gặp lá»—i phân tách nghiêm trá»ng"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
-msgstr "không tạo đươc tập tin thông tin lưu trữ %s"
+msgstr "không thể tạo tập tin thông tin sao lưu %s"
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
-msgstr "Tùy chá»n loại tÆ°Æ¡ng thích -l AT&T lex giảm tốc Ä‘á»™ nhiá»u\n"
+msgstr "Tùy chá»n kiểu tÆ°Æ¡ng thích « -l » AT&T lex giảm hiệu suất nhiá»u\n"
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
-msgstr " thì có lẽ thật gây ra trÆ°á»ng hợp giảm tốc Ä‘á»™ khác\n"
+msgstr " thì có lẽ thật gây ra trÆ°á»ng hợp giảm hiệu suất khác\n"
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
-"%%tùy chá»n yylineno giảm tốc Ä‘á»™ CHỈ vá»›i quy tắc khá»›p vá»›i ký tá»± dòng má»›i "
-"thôi\n"
+"%%tùy chá»n « yylineno » giảm hiệu suất CHỈ vá»›i quy tắc khá»›p vá»›i ký tá»± dòng "
+"mới thôi\n"
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
-msgstr "Tùy chá»n -I (tÆ°Æ¡ng tác) thì giảm tốc đô má»™t ít\n"
+msgstr "Tùy chá»n « -I » (tÆ°Æ¡ng tác) giảm hiệu suất má»™t ít\n"
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
-msgstr "yymore() thì giảm tốc độ một ít\n"
+msgstr "yymore() giảm hiệu suất một ít\n"
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
-msgstr "REJECT (Ä‘uổi ra) thì giảm tốc Ä‘á»™ nhiá»u\n"
+msgstr "REJECT (Ä‘uổi ra) giảm tốc Ä‘á»™ nhiá»u\n"
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
-msgstr "Quy tắc ngữ cảnh theo sau có thể thay đổi thì giảm tốc Ä‘á»™ nhiá»u\n"
+msgstr "Quy tắc ngữ cảnh theo sau biến giảm hiệu suất nhiá»u\n"
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
-msgstr "Không thể sá»­ dụng REJECT (Ä‘uổi ra) vá»›i tùy chá»n -f hoặc -F"
+msgstr "Không cho phép dùng REJECT (Ä‘uổi ra) vá»›i tùy chá»n « -f » hay « -F »"
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
-msgstr "Không thể sá»­ dụng %option (tùy chá»n) yylineno vá»›i REJECT (Ä‘uổi ra)"
+msgstr ""
+"Không cho phép dùng %option (tùy chá»n) « yylineno » vá»›i REJECT (Ä‘uổi ra)"
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
-"không thể sá»­ dụng quy tắc ngữ cảnh theo sau có thể thay đổi vá»›i tùy chá»n -f "
-"hoặc-F"
+"không cho phép dùng quy tắc ngữ cảnh theo sau biến vá»›i tùy chá»n « -f » hay « "
+"-F »"
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
-msgstr "%option (tùy chá»n) yyclass chỉ có ý nghÄ©a cho bá»™ quét C++ "
+msgstr "%option (tùy chá»n) « yyclass » chỉ có ý nghÄ©a vá»›i bá»™ quét C++"
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Cách sử dụng: %s [TUY_CHỌN] [TẬP_TIN]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -561,75 +578,76 @@ msgid ""
" -h, --help produce this help message\n"
" -V, --version report %s version\n"
msgstr ""
-"Tạo ra chương trình thực hiện tiến trình khớp mẫu trong văn bản.\n"
+"Tạo ra chương trình thực hiện tiến trình khớp mẫu trong đoạn chữ.\n"
"\n"
"Cách nén bảng:\n"
-" -Ca, --align \tcó bảng nhá» hÆ¡n còn _canh lá»_ bá»™ nhá»› khá hÆ¡n\n"
-" -Ce, --ecs \tcấu tạo hạng loại tương đương\n"
-" -Cf \tkhông nén bảng; sử dụng cách tiêu biểu -f\n"
-" -CF \tkhông nén bảng; sử dụng cách tiêu biểu -F\n"
-" -Cm, --meta-ecs cấu tạo hạng loại tương đương mức cao hơn\n"
-" -Cr, --read \tsá»­ dụng chức năng read() (_Ä‘á»c_) thay thế\n"
-"\t\t\t\tthiết bị gõ/xuất chuẩn để gõ vào bộ quét\n"
-" -f, --full \tcấu tạo bá»™ quét nhanh và lá»›n; bằng tùy chá»n -Cfr (_đầy "
-"đủ_)\n"
-" -F, --fast \tsá»­ dụng cách tiêu biểu bảng khác; bằng tùy chá»n -CFr "
-"(_nhanh_)\n"
-" -Cem \tphÆ°Æ¡ng pháp nén mặc định (bằng tùy chá»n --ecs --meta-ecs)\n"
+" -Ca, --align\t\tthoả hiệp giữa bảng lớn hơn\n"
+"\tvà Ä‘á»™ _canh lá»_ bá»™ nhá»› khá hÆ¡n\n"
+" -Ce, --ecs \tcấu tạo hạng kiểu tương đương\n"
+" -Cf \tkhông nén bảng; dùng sự tiêu biểu « -f »\n"
+" -CF \tkhông nén bảng; dùng sự cách tiêu biểu « -F »\n"
+" -Cm, --meta-ecs cấu tạo hạng kiểu _siêu_ tương đương\n"
+" -Cr, --read \tdùng chức năng read() (_Ä‘á»c_) thay thế\n"
+"\t\t\t\tthiết bị nhập/xuất chuẩn để nhập bộ quét\n"
+" -f, --full \ttạo ra bộ quét nhanh và lớn; bằng -Cfr (_đầy đủ_)\n"
+" -F, --fast \tdùng sự tiêu biểu bảng xen kẽ; bằng -CFr (_nhanh_)\n"
+" -Cem \tphương pháp nén mặc định;\n"
+"\tbằng « --ecs » « --meta-ecs »)\n"
"\n"
"Gỡ lỗi:\n"
-" -d, --debug \thiệu lực chế độ _gỡ lỗi_ trong bộ quét\n"
-" -b, --backup \tghi thông tin _lưu trữ_ vào %s\n"
-" -p, --perf-report \tghi _thông báo tốc độ_ vào thiết bị lỗi chuẩn\n"
-" -s, --nodefault \tthu hồi (_không_) quy tắc _mặc định_ với văn bản chưa "
-"khá»›p ECHO\n"
-" -T, --trace \t%s nên chạy trong chế độ _theo dõi_\n"
-" -w, --nowarn \t_không_ cấu tạo lá»i _cảnh báo_\n"
-" -v, --verbose \tghi tóm tắt các thống kê bộ quét vào thiết bị xuất chuẩn "
-"(_chi tiêt_)\n"
+" -d, --debug \tbật chế độ _gỡ lỗi_ trong bộ quét\n"
+" -b, --backup \tghi thông tin _sao lưu_ vào %s\n"
+" -p, --perf-report \tghi _thông báo hiệu suất_ vào thiết bị lỗi "
+"chuẩn\n"
+" -s, --nodefault \tthu hồi quy tắc _mặc định_\n"
+"\tđể ECHO (vá»ng) Ä‘oạn chÆ°a khá»›p\n"
+" -T, --trace \t%s nên chạy trong chế độ theo _dấu vết_\n"
+" -w, --nowarn \t_không_ tạo ra lá»i _cảnh báo_\n"
+" -v, --verbose \tghi tóm tắt các thống kê bộ quét\n"
+"\t\t\t\tvào thiết bị xuất chuẩn (_chi tiêt_)\n"
"\n"
"Tập tin:\n"
" -o, --outfile=TẬP_TIN \t\tghi rõ tên _tập tin xuất_\n"
" -S, --skel=TẬP_TIN \t\tghi rõ tập tin _khung sÆ°á»n_\n"
-" -t, --stdout \t\tghi bộ quet trên _thiết bị xuất chuẩn_ thay "
-"thế %s\n"
-" --yyclass=TÊN \t\t\ttên _hạng_ C++\n"
-" --header-file=TẬP_TIN tạo _tập tin dòng đầu_ C thêm vào bộ quét\n"
-" --tables-file[=TẬP_TIN] \t\tghi bảng vào TẬP_TIN ấy\n"
-"\n"
-"Bộ quét:\n"
-" -7, --7bit \t\tcấu tạo bộ quét loại 7-bit\n"
-" -8, --8bit \t\tcấu tạo bộ quét loại 8-bit\n"
-" -B, --batch \tcấu tạo bá»™ quét _theo lô_ (ngược vá»›i tùy chá»n -"
-"I)\n"
-" -i, --case-insensitive\t\t_bá» qua chữ hoa/thÆ°á»ng_ tront mẫu\n"
-" -l, --lex-compat \t\ttối đa độ _tương thích_ với lex gốc\n"
-" -X, --posix-compat \ttối đa độ _tương thích_ với lex _POSIX_\n"
-" -I, --interactive \tcấu tạo bá»™ quét _tÆ°Æ¡ng tác_ (ngược vá»›i tùy chá»n -"
-"B)\n"
-" --yylineno \t\ttheo dõi tổng _số dòng_ trong yylineno\n"
-"\n"
-"Mã đã cấu tạo:\n"
-" -+, --c++ \tcấu tạo hang bộ quét loại C++\n"
-" -Dmacro[=defn] _định nghÄ©a_ macrô #define (lá»i định nghÄ©a mặc "
-"định là '1')\n"
-" -L, --noline \tthu hồi chỉ thị #line trong bộ quét (_không "
-"dòng_)\n"
-" -P, --prefix=CHUá»–I sá»­ dụng CHUá»–I ấy là _tiá»n tố_ thay thế \"yy\"\n"
-" -R, --reentrant \tcấu tạo bộ quét C loại _vào lại_\n"
-" --bison-bridge bộ quét cho trình phân tách thuần tuý loại bison. "
-"(_cầu_)\n"
-" --bison-locations \thỗ trợ yylloc (_vị trí_).\n"
-" --stdinit \tkhởi động yyin/yyout vào thiết bị gõ/xuất "
+" -t, --stdout \t\tghi bộ quet ra _thiết bị xuất chuẩn_\n"
+"\tthay thế ra %s\n"
+" --yyclass=TÊN \t\t\ttên của _hạng_ C++\n"
+" --header-file=TẬP_TIN tạo _tập tin phần đầu_ C thêm vào bộ quét\n"
+" --tables-file[=TẬP_TIN] \t\tghi các bảng vào TẬP_TIN này\n"
+"\n"
+"Ứng xử của bộ quét:\n"
+" -7, --7bit \t\ttạo ra bộ quét kiểu 7-bit\n"
+" -8, --8bit \t\ttạo ra bộ quét kiểu 8-bit\n"
+" -B, --batch \ttạo ra bá»™ quét _bó_ (ngược vá»›i tùy chá»n « -I »)\n"
+" -i, --case-insensitive\t\t_bá» qua chữ hoa/thÆ°á»ng_ trong mẫu\n"
+" -l, --lex-compat \t\tđộ _tương thích_ tối đa với lex gốc\n"
+" -X, --posix-compat \tđộ _tương thích_ tối đa với lex _POSIX_\n"
+" -I, --interactive \ttạo ra bộ quét _tương tác_\n"
+"\t(ngược vá»›i tùy chá»n « -B »)\n"
+" --yylineno \t\ttheo dõi số đếm số dòng trong yylineno\n"
+"\n"
+"Mã đã tạo ra :\n"
+" -+, --c++ \ttạo ra hang bộ quét kiểu C++\n"
+" -Dmacro[=lá»i_định_nghÄ©a] \t_định nghÄ©a_ bá»™ lệnh #define\n"
+"\t\t\t\t\t(lá»i định nghÄ©a mặc định là « 1 »)\n"
+" -L, --noline \tthu hồi các chỉ thị #line trong bộ quét\n"
+"\t(_không dòng_)\n"
+" -P, --prefix=CHUá»–I dùng CHUá»–I này là _tiá»n tố_ thay thế « yy »\n"
+" -R, --reentrant \ttạo ra một bộ quét C kiểu _vào lại_\n"
+" --bison-bridge bộ quét cho trình phân tách thuần tuý kiểu "
+"bison.\n"
+"\t(_cầu_)\n"
+" --bison-locations \tgồm khả năng hỗ trợ yylloc (_địa điểm_).\n"
+" --stdinit \tkhởi động yyin/yyout vào thiết bị nhập/xuất "
"chuẩn\n"
-" --noansi-definitions \t_sự định nghĩa_ chức năng kiểu cũ (_không "
-"ANSI_)\n"
-" --noansi-prototypes \tdanh sách tham số trống trong _vật đầu tiên_ "
-"(_không ANSI_)\n"
+" --noansi-definitions \t_lá»i định nghÄ©a_ chức năng kiểu cÅ©\n"
+"\t(_không ANSI_)\n"
+" --noansi-prototypes \tdanh sách tham số trống trong _vật đầu tiên_\n"
+"\t\t\t\t\t(_không ANSI_)\n"
" --nounistd \t\t_không_ bao gồm <unistd.h>\n"
-" --noCHỨC_NĂNG \t\tkhông cấu tạo một CHỨC NĂNG cá biệt\n"
+" --noCHỨC_NĂNG \t\tkhông tạo ra một CHỨC NĂNG cá biệt\n"
"\n"
-"Linh tinh:\n"
+"Lặt vặt:\n"
" -c \ttùy chá»n POSIX không làm gì\n"
" -n \ttùy chá»n POSIX không làm gì\n"
" -?\n"
@@ -639,26 +657,25 @@ msgstr ""
#: misc.c:100 misc.c:126
#, c-format
msgid "name \"%s\" ridiculously long"
-msgstr "tên \"%s\" quá dài"
+msgstr "tên « %s » quá dài"
#: misc.c:175
msgid "memory allocation failed in allocate_array()"
-msgstr ""
-"việc phân chia bộ nhớ trong allocate_array() (phân chia mảng) đã thất bai rồì"
+msgstr "việc phân chia bộ nhớ bị lỗi trong allocate_array() (phân chia mảng)"
#: misc.c:250
#, c-format
msgid "bad character '%s' detected in check_char()"
-msgstr "phát hiện ký tự sai '%s' trong check_char() (kiểm tra ký tự)"
+msgstr "phát hiện ký tự sai « %s » trong check_char() (kiểm tra ký tự)"
#: misc.c:255
#, c-format
msgid "scanner requires -8 flag to use the character %s"
-msgstr "bộ quét cần đên cơ -8 để sử dụng ký tự %s"
+msgstr "bộ quét cần thiết cỠ« -8 » để dùng ký tự %s"
#: misc.c:288
msgid "dynamic memory failure in copy_string()"
-msgstr "bộ nhớ động thất bại trong copy_string() (sao chép chuỗi)"
+msgstr "bộ nhớ động đã thất bại trong copy_string() (sao chép chuỗi)"
#: misc.c:422
#, c-format
@@ -667,7 +684,7 @@ msgstr "%s: gặp lá»—i nôi bá»™ nghiêm trá»ng, %s\n"
#: misc.c:875
msgid "attempt to increase array size failed"
-msgstr "việc cố tăng cỡ mảng đã thất bại rồi"
+msgstr "việc cố gắng tăng kích cỡ mảng đã thất bại"
#: misc.c:1002
msgid "bad line in skeleton file"
@@ -675,7 +692,7 @@ msgstr "gặp dòng sai trong tập tin khung sÆ°á»n"
#: misc.c:1051
msgid "memory allocation failed in yy_flex_xmalloc()"
-msgstr "việc phân chia bộ nhớ đã thất bại trong yy_flex_xmalloc() rồi"
+msgstr "việc phân chia bộ nhớ bị lỗi trong yy_flex_xmalloc()"
#: nfa.c:104
#, c-format
@@ -694,8 +711,9 @@ msgid "state # %4d\t"
msgstr "tính trạng # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
-msgstr "********** đổ xong rồi\n"
+msgstr "********** đổ xong\n"
#: nfa.c:174
msgid "empty machine in dupmachine()"
@@ -704,132 +722,146 @@ msgstr "máy trống trong dupmachine() (trùng máy)"
#: nfa.c:240
#, c-format
msgid "Variable trailing context rule at line %d\n"
-msgstr "Gặp quy tắc ngữ cảnh theo sau có thể thay đổi tại dòng %d\n"
+msgstr "Gặp quy tắc ngữ cảnh theo sau biến tại dòng %d\n"
#: nfa.c:353
msgid "bad state type in mark_beginning_as_normal()"
msgstr ""
-"loại tính trạng sai trong mark_beginning_as_normal() (đánh dấu cách bắt đầu "
-"là thÆ°á»ng)"
+"kiểu tính trạng sai trong mark_beginning_as_normal() (đánh dấu đầu là thÆ°á»ng)"
#: nfa.c:598
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
-msgstr "quy tắc gõ là quá phức tạp (>= %d tính trạng loại NFA)"
+msgstr "các quy tắc nhập là quá phức tạp (≥ %d tình trạng NFA)"
#: nfa.c:677
msgid "found too many transitions in mkxtion()"
-msgstr "gặp quá nhiá»u việc chuyển tiếp mkxtion()"
+msgstr "gặp quá nhiá»u việc chuyển tiếp trong mkxtion()"
#: nfa.c:703
#, c-format
msgid "too many rules (> %d)!"
-msgstr "quá nhiá»u quy tắc (> %d)!"
+msgstr "quá nhiá»u quy tắc (> %d) !"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
-msgstr "gặp lỗi không biết khi xử lý phần 1"
+msgstr "gặp lỗi không rõ khi xử lý phần 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "danh sách Ä‘iá»u kiện bắt đầu là sai"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
-msgstr "không chấp nhân quy tắc ấy"
+msgstr "gặp quy tắc không được nhận diện"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
-msgstr "ngữ cảnh theo sau được sử dụng hai lần rồi"
+msgstr "ngữ cảnh theo sau đã được dùng hai lần"
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
-msgstr "giá trị lặp lại sai"
+msgstr "gặp giá trị lặp lại sai"
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
-msgstr "giá trị lặp lại phải là dương"
+msgstr "giá trị lặp lại phải là số dương"
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr "phạm vị ký tá»± [%c-%c] là mÆ¡ hồ trong bá»™ quét bá» qua chữ hoa/thÆ°á»ng"
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr "gặp phạm vị âm trong hạng ký tự"
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+#, fuzzy
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr "phạm vị ký tá»± [%c-%c] là mÆ¡ hồ trong bá»™ quét bá» qua chữ hoa/thÆ°á»ng"
+
+#: parse.y:924
+#, fuzzy
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr "phạm vị ký tá»± [%c-%c] là mÆ¡ hồ trong bá»™ quét bá» qua chữ hoa/thÆ°á»ng"
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
-msgstr "Dòng gõ quá dài\n"
+msgstr "dòng nhập quá dài\n"
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
-msgstr "chỉ thị loại '%top' khuyết tật (_đầu_)"
+msgstr "chỉ thị kiểu « %top » dạng sai (_đỉnh_)"
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
-msgstr "không chấp nhận chỉ thị loại '%'"
+msgstr "gặp chỉ thị kiểu « % » không được nhận diện"
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
-msgstr "ChÆ°a khá»›p '{'"
+msgstr "Chưa khớp « { »"
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
-msgstr "chưa đinh nghĩa xong tên"
+msgstr "lá»i Ä‘inh nghÄ©a tên chÆ°a hoàn tất"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
-msgstr "không chấp nhận %%tùy chá»n: %s"
+msgstr "gặp tùy chá»n %% không được nhận diện: %s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "hạng ký tự sai"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "chÆ°a định nghÄ©a lá»i định nghÄ©a {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "<start condition> (điệu kiện bắt đầu) sai: %s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
-msgstr "thiếu dấu trích dẫn"
+msgstr "dấu trích dẫn còn thiếu"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "biểu thức hạng ký tự sai: %s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr "có ký tự sai ở trong hai dấu ngoặc móc {}"
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "thiếu }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
-msgstr "gặp kết thức tập tin ở trong hành động"
+msgstr "gặp kết thúc tập tin ở trong hành động"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "gặp kết thúc tập tin ở trong hành động"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "ký tự sai: %s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
-msgstr "không mở được %s"
+msgstr "không thể mở %s"
#: scanopt.c:291
#, c-format
@@ -839,22 +871,22 @@ msgstr "Cách sử dụng: %s [TÙY_CHỌN]...\n"
#: scanopt.c:565
#, c-format
msgid "option `%s' doesn't allow an argument\n"
-msgstr "tùy chá»n `%s' không cho phép đối số\n"
+msgstr "tùy chá»n « %s » không cho phép đối số\n"
#: scanopt.c:570
#, c-format
msgid "option `%s' requires an argument\n"
-msgstr "tùy chá»n `%s' cần đến đối số\n"
+msgstr "tùy chá»n « %s » cần đến đối số\n"
#: scanopt.c:574
#, c-format
msgid "option `%s' is ambiguous\n"
-msgstr "tùy chá»n `%s' là mÆ¡ hồ\n"
+msgstr "tùy chá»n « %s » là mÆ¡ hồ\n"
#: scanopt.c:578
#, c-format
msgid "Unrecognized option `%s'\n"
-msgstr "Không chấp nhận tùy chá»n `%s'\n"
+msgstr "Gặp tùy chá»n « %s » không được nhận diện\n"
#: scanopt.c:582
#, c-format
@@ -863,26 +895,30 @@ msgstr "Không biết lỗi=(%d)\n"
#: sym.c:100
msgid "symbol table memory allocation failed"
-msgstr "việc phân chia bộ nhớ của bảng ký tự đã thất bại rồi"
+msgstr "việc phân chia bộ nhớ của bảng ký hiệu đã thất bại"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
-msgstr "định nghĩa tên hai lần rồi"
+msgstr "tên đã được định nghĩa hai lần"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
-msgstr "tuyên bố Ä‘iá»u kiện bắt đầu %s hai lần rồi"
+msgstr "Ä‘iá»u kiện bắt đầu %s đã được tuyên bố hai lần"
#: yylex.c:56
msgid "premature EOF"
-msgstr "gặp kết thức tập tin quá sớm"
+msgstr "gặp kết thúc tập tin quá sớm"
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
-msgstr "Dấu kết thức\n"
+msgstr "Dấu kết thúc\n"
#: yylex.c:204
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
-msgstr "*Äiá»u lạ* - hiệu bài: %d giá trị: %d\n"
+msgstr "• Äiá»u lạ • — hiệu bài: %d giá trị: %d\n"
+
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "việc kiểm tra sự thống nhất bị lỗi trong symfollowset"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index bf04159..7755281 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 80e1987..78f132d 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.8\n"
-"Report-Msgid-Bugs-To: lex-help@lists.sourceforge.net\n"
-"POT-Creation-Date: 2006-02-20 21:46-0500\n"
+"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
+"POT-Creation-Date: 2007-12-12 16:05-0500\n"
"PO-Revision-Date: 2002-08-18 10:37+0800\n"
"Last-Translator: Wang Li <charles@linux.net.cn>\n"
"Language-Team: Chinese (simplified) <i18n-translation@lists.linux.net.cn>\n"
@@ -24,14 +24,17 @@ msgid "dangerous trailing context"
msgstr ""
#: dfa.c:166
+#, c-format
msgid " associated rule line numbers:"
msgstr ""
#: dfa.c:202
+#, c-format
msgid " out-transitions: "
msgstr ""
#: dfa.c:210
+#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
@@ -62,19 +65,15 @@ msgstr "ÎÞ·¨´´½¨¶ÀÁ¢µÄ end-of-buffer ״̬"
msgid "state # %d:\n"
msgstr "״̬ # %d£º\n"
-#: dfa.c:800
+#: dfa.c:785
msgid "Could not write yynxt_tbl[][]"
msgstr ""
-#: dfa.c:1023
-msgid "consistency check failed in symfollowset"
-msgstr "symfollowset ÖеÄÒ»ÖÂÐÔ¼ì²éʧ°Ü"
-
-#: dfa.c:1071
+#: dfa.c:1052
msgid "bad transition character detected in sympartition()"
msgstr "ÔÚ sympartition() ¼ì²âµ½´íÎóµÄ±ä»»×Ö·û"
-#: gen.c:484
+#: gen.c:478
msgid ""
"\n"
"\n"
@@ -86,410 +85,424 @@ msgstr ""
"µÈ¼ÛÀࣺ\n"
"\n"
-#: gen.c:668 gen.c:697 gen.c:1221
+#: gen.c:662 gen.c:691 gen.c:1215
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr ""
-#: gen.c:1116
+#: gen.c:1110
#, c-format
msgid "state # %d accepts: "
msgstr ""
-#: gen.c:1163
+#: gen.c:1157
msgid "Could not write yyacclist_tbl"
msgstr ""
-#: gen.c:1239
+#: gen.c:1233
msgid "Could not write yyacc_tbl"
msgstr ""
-#: gen.c:1254 gen.c:1639 gen.c:1662
+#: gen.c:1248 gen.c:1633 gen.c:1656
#, fuzzy
msgid "Could not write ecstbl"
msgstr "ÎÞ·¨´´½¨ %s"
-#: gen.c:1277
+#: gen.c:1271
msgid ""
"\n"
"\n"
"Meta-Equivalence Classes:\n"
msgstr ""
-#: gen.c:1299
+#: gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr ""
-#: gen.c:1360
+#: gen.c:1354
#, fuzzy
msgid "Could not write yybase_tbl"
msgstr "ÎÞ·¨´´½¨ %s"
-#: gen.c:1394
+#: gen.c:1388
msgid "Could not write yydef_tbl"
msgstr ""
-#: gen.c:1434
+#: gen.c:1428
msgid "Could not write yynxt_tbl"
msgstr ""
-#: gen.c:1470
+#: gen.c:1464
msgid "Could not write yychk_tbl"
msgstr ""
-#: gen.c:1624 gen.c:1653
+#: gen.c:1618 gen.c:1647
#, fuzzy
msgid "Could not write ftbl"
msgstr "ÎÞ·¨´´½¨ %s"
-#: gen.c:1630
+#: gen.c:1624
#, fuzzy
msgid "Could not write ssltbl"
msgstr "ÎÞ·¨´´½¨ %s"
-#: gen.c:1681
+#: gen.c:1675
#, fuzzy
msgid "Could not write eoltbl"
msgstr "ÎÞ·¨´´½¨ %s"
-#: gen.c:1741
+#: gen.c:1735
msgid "Could not write yynultrans_tbl"
msgstr ""
-#: main.c:187
+#: main.c:189
msgid "rule cannot be matched"
msgstr "ÎÞ·¨Æ¥Åä¹æÔò"
-#: main.c:192
+#: main.c:194
msgid "-s option given but default rule can be matched"
msgstr ""
-#: main.c:231
+#: main.c:234
msgid "Can't use -+ with -l option"
msgstr ""
-#: main.c:234
+#: main.c:237
msgid "Can't use -f or -F with -l option"
msgstr ""
-#: main.c:238
+#: main.c:241
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
-#: main.c:275
+#: main.c:278
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr ""
-#: main.c:278
+#: main.c:281
msgid "-Cf/-CF and -I are incompatible"
msgstr ""
-#: main.c:282
+#: main.c:285
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr ""
-#: main.c:287
+#: main.c:290
msgid "-Cf and -CF are mutually exclusive"
msgstr ""
-#: main.c:291
+#: main.c:294
msgid "Can't use -+ with -CF option"
msgstr ""
-#: main.c:294
+#: main.c:297
#, c-format
msgid "%array incompatible with -+ option"
msgstr ""
-#: main.c:299
+#: main.c:302
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr ""
-#: main.c:302
+#: main.c:305
msgid "bison bridge not supported for the C++ scanner."
msgstr ""
-#: main.c:354 main.c:402
+#: main.c:360 main.c:406
#, c-format
msgid "could not create %s"
msgstr "ÎÞ·¨´´½¨ %s"
-#: main.c:415
+#: main.c:419
#, fuzzy
msgid "could not write tables header"
msgstr "ÎÞ·¨´´½¨ %s"
-#: main.c:419
+#: main.c:423
#, c-format
msgid "can't open skeleton file %s"
msgstr "ÎÞ·¨´ò¿ª¹Ç¼ÜÎļþ %s"
-#: main.c:500
+#: main.c:505
#, c-format
msgid "input error reading skeleton file %s"
msgstr "¶ÁÈ¡¹Ç¼ÜÎļþ %s ʱÊäÈë´íÎó"
-#: main.c:504
+#: main.c:509
#, c-format
msgid "error closing skeleton file %s"
msgstr "¹Ø±Õ¹Ç¼ÜÎļþ %s ³ö´í"
-#: main.c:688
+#: main.c:694
#, c-format
msgid "error creating header file %s"
msgstr "´´½¨Í·Îļþ %s ³ö´í"
-#: main.c:696
+#: main.c:702
#, c-format
msgid "error writing output file %s"
msgstr "дÈëÊä³öÎļþ %s ³ö´í"
-#: main.c:700
+#: main.c:706
#, c-format
msgid "error closing output file %s"
msgstr "¹Ø±ÕÊä³öÎļþ %s ³ö´í"
-#: main.c:704
+#: main.c:710
#, c-format
msgid "error deleting output file %s"
msgstr "ɾ³ýÊä³öÎļþ %s ³ö´í"
-#: main.c:711
+#: main.c:717
+#, c-format
msgid "No backing up.\n"
msgstr ""
-#: main.c:715
+#: main.c:721
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr ""
-#: main.c:719
+#: main.c:725
+#, c-format
msgid "Compressed tables always back up.\n"
msgstr ""
-#: main.c:722
+#: main.c:728
#, c-format
msgid "error writing backup file %s"
msgstr "дÈ뱸·ÝÎļþ %s ³ö´í"
-#: main.c:726
+#: main.c:732
#, c-format
msgid "error closing backup file %s"
msgstr "¹Ø±Õ±¸·ÝÎļþ %s ³ö´í"
-#: main.c:731
+#: main.c:737
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr ""
-#: main.c:734
+#: main.c:740
+#, c-format
msgid " scanner options: -"
msgstr " ɨÃèÆ÷Ñ¡Ï-"
-#: main.c:813
+#: main.c:819
#, c-format
msgid " %d/%d NFA states\n"
msgstr ""
-#: main.c:815
+#: main.c:821
#, c-format
msgid " %d/%d DFA states (%d words)\n"
msgstr ""
-#: main.c:817
+#: main.c:823
#, c-format
msgid " %d rules\n"
msgstr " %d Ìõ¹æÔò\n"
-#: main.c:822
+#: main.c:828
+#, c-format
msgid " No backing up\n"
msgstr ""
-#: main.c:826
+#: main.c:832
#, c-format
msgid " %d backing-up (non-accepting) states\n"
msgstr ""
-#: main.c:831
+#: main.c:837
+#, c-format
msgid " Compressed tables always back-up\n"
msgstr ""
-#: main.c:835
+#: main.c:841
+#, c-format
msgid " Beginning-of-line patterns used\n"
msgstr ""
-#: main.c:837
+#: main.c:843
#, c-format
msgid " %d/%d start conditions\n"
msgstr ""
-#: main.c:841
+#: main.c:847
#, c-format
msgid " %d epsilon states, %d double epsilon states\n"
msgstr ""
-#: main.c:845
+#: main.c:851
+#, c-format
msgid " no character classes\n"
msgstr ""
-#: main.c:849
+#: main.c:855
#, c-format
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
-#: main.c:854
+#: main.c:860
#, c-format
msgid " %d state/nextstate pairs created\n"
msgstr ""
-#: main.c:857
+#: main.c:863
#, c-format
msgid " %d/%d unique/duplicate transitions\n"
msgstr ""
-#: main.c:862
+#: main.c:868
#, c-format
msgid " %d table entries\n"
msgstr ""
-#: main.c:870
+#: main.c:876
#, c-format
msgid " %d/%d base-def entries created\n"
msgstr ""
-#: main.c:874
+#: main.c:880
#, c-format
msgid " %d/%d (peak %d) nxt-chk entries created\n"
msgstr ""
-#: main.c:878
+#: main.c:884
#, c-format
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
msgstr ""
-#: main.c:882
+#: main.c:888
#, c-format
msgid " %d empty table entries\n"
msgstr ""
-#: main.c:884
+#: main.c:890
#, c-format
msgid " %d protos created\n"
msgstr ""
-#: main.c:887
+#: main.c:893
#, c-format
msgid " %d templates created, %d uses\n"
msgstr ""
-#: main.c:895
+#: main.c:901
#, c-format
msgid " %d/%d equivalence classes created\n"
msgstr ""
-#: main.c:903
+#: main.c:909
#, c-format
msgid " %d/%d meta-equivalence classes created\n"
msgstr ""
-#: main.c:909
+#: main.c:915
#, c-format
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
-#: main.c:911
+#: main.c:917
#, c-format
msgid " %d sets of reallocations needed\n"
msgstr ""
-#: main.c:913
+#: main.c:919
#, c-format
msgid " %d total table entries needed\n"
msgstr ""
-#: main.c:988
+#: main.c:996
+#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr ""
-#: main.c:998
+#: main.c:1006
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr ""
-#: main.c:1055
+#: main.c:1063
#, c-format
msgid "unknown -C option '%c'"
msgstr "δ֪µÄ -C Ñ¡Ïî¡°%c¡±"
-#: main.c:1184
+#: main.c:1192
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"
-#: main.c:1459
+#: main.c:1467
msgid "fatal parse error"
msgstr "ÖÂÃüµÄ½âÎö´íÎó"
-#: main.c:1491
+#: main.c:1499
#, c-format
msgid "could not create backing-up info file %s"
msgstr ""
-#: main.c:1512
+#: main.c:1520
+#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
-#: main.c:1515
+#: main.c:1523
+#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
-#: main.c:1521
+#: main.c:1529
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
-#: main.c:1528
+#: main.c:1536
+#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr ""
-#: main.c:1533
+#: main.c:1541
+#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr ""
-#: main.c:1539
+#: main.c:1547
+#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr ""
-#: main.c:1544
+#: main.c:1552
+#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr ""
-#: main.c:1556
+#: main.c:1564
msgid "REJECT cannot be used with -f or -F"
msgstr ""
-#: main.c:1559
+#: main.c:1567
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr ""
-#: main.c:1562
+#: main.c:1570
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
-#: main.c:1677
+#: main.c:1691
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr ""
-#: main.c:1784
+#: main.c:1798
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Ó÷¨£º%s [Ñ¡Ïî] [Îļþ]...\n"
-#: main.c:1787
+#: main.c:1801
#, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
@@ -612,6 +625,7 @@ msgid "state # %4d\t"
msgstr "״̬ # %4d\t"
#: nfa.c:130
+#, c-format
msgid "********** end of dump\n"
msgstr "********** Êä³ö½áÊø\n"
@@ -642,107 +656,120 @@ msgstr ""
msgid "too many rules (> %d)!"
msgstr "¹æÔò¹ý¶à (> %d)£¡"
-#: parse.y:183
+#: parse.y:159
msgid "unknown error processing section 1"
msgstr "δ֪µÄ´íÎó´¦Àí½Ú 1"
-#: parse.y:208 parse.y:373
+#: parse.y:184 parse.y:351
msgid "bad start condition list"
msgstr "´íÎóµÄÆðʼ״̬Áбí"
-#: parse.y:337
+#: parse.y:315
msgid "unrecognized rule"
msgstr "²»ÄÜʶ±ðµÄ¹æÔò"
-#: parse.y:456 parse.y:469 parse.y:538
+#: parse.y:434 parse.y:447 parse.y:516
msgid "trailing context used twice"
msgstr ""
-#: parse.y:574 parse.y:584 parse.y:657 parse.y:667
+#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
msgid "bad iteration values"
msgstr ""
-#: parse.y:602 parse.y:620 parse.y:685 parse.y:703
+#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
msgid "iteration value must be positive"
msgstr ""
-#: parse.y:817 parse.y:827
+#: parse.y:806 parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
-#: parse.y:832
+#: parse.y:821
msgid "negative range in character class"
msgstr ""
-#: scan.l:71 scan.l:181 scan.l:268 scan.l:410 scan.l:549 scan.l:599
+#: parse.y:918
+msgid "[:^lower:] is ambiguous in case insensitive scanner"
+msgstr ""
+
+#: parse.y:924
+msgid "[:^upper:] ambiguous in case insensitive scanner"
+msgstr ""
+
+#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
msgid "Input line too long\n"
msgstr ""
-#: scan.l:150
+#: scan.l:161
#, c-format
msgid "malformed '%top' directive"
msgstr ""
-#: scan.l:172
+#: scan.l:183
#, no-c-format
msgid "unrecognized '%' directive"
msgstr ""
-#: scan.l:252
+#: scan.l:284
msgid "Unmatched '{'"
msgstr ""
-#: scan.l:285
+#: scan.l:317
msgid "incomplete name definition"
msgstr "²»ÍêÕûµÄÃû³Æ¶¨Òå"
-#: scan.l:418
+#: scan.l:451
#, c-format
msgid "unrecognized %%option: %s"
msgstr "²»ÄÜʶ±ðµÄ %%Ñ¡Ï%s"
-#: scan.l:559 scan.l:678
+#: scan.l:633 scan.l:800
msgid "bad character class"
msgstr "´íÎóµÄ×Ö·ûÀà±ð"
-#: scan.l:606
+#: scan.l:683
#, c-format
msgid "undefined definition {%s}"
msgstr "䶨ÒåµÄ¶¨Òå {%s}"
-#: scan.l:646
+#: scan.l:755
#, c-format
msgid "bad <start condition>: %s"
msgstr "´íÎó <ÆðʼÌõ¼þ>£º%s"
-#: scan.l:659
+#: scan.l:768
msgid "missing quote"
msgstr "ÒÅ©ÒýºÅ"
-#: scan.l:699
+#: scan.l:834
#, c-format
msgid "bad character class expression: %s"
msgstr "´íÎóµÄ×Ö·ûÀà±ð±í´ïʽ£º%s"
-#: scan.l:721
+#: scan.l:856
msgid "bad character inside {}'s"
msgstr ""
-#: scan.l:727
+#: scan.l:862
msgid "missing }"
msgstr "ÒÅ© }"
-#: scan.l:800
+#: scan.l:940
msgid "EOF encountered inside an action"
msgstr "ÔÚ¶¯×÷ÖÐÎļþ½áÊø"
-#: scan.l:820
+#: scan.l:945
+#, fuzzy
+msgid "EOF encountered inside pattern"
+msgstr "ÔÚ¶¯×÷ÖÐÎļþ½áÊø"
+
+#: scan.l:967
#, c-format
msgid "bad character: %s"
msgstr "´íÎóµÄ×Ö·û£º%s"
-#: scan.l:849
+#: scan.l:996
#, c-format
msgid "can't open %s"
msgstr "ÎÞ·¨´ò¿ª %s"
@@ -781,11 +808,11 @@ msgstr "δ֪´íÎó=(%d)\n"
msgid "symbol table memory allocation failed"
msgstr "·ûºÅ±íÄÚ´æ·ÖÅäʧ°Ü"
-#: sym.c:203
+#: sym.c:202
msgid "name defined twice"
msgstr "Ãû³Æ¶¨ÒåÁËÁ½´Î"
-#: sym.c:254
+#: sym.c:253
#, c-format
msgid "start condition %s declared twice"
msgstr "ÆðʼÌõ¼þ %s ÉùÃ÷ÁËÁ½´Î"
@@ -795,6 +822,7 @@ msgid "premature EOF"
msgstr ""
#: yylex.c:198
+#, c-format
msgid "End Marker\n"
msgstr ""
@@ -803,5 +831,8 @@ msgstr ""
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr ""
+#~ msgid "consistency check failed in symfollowset"
+#~ msgstr "symfollowset ÖеÄÒ»ÖÂÐÔ¼ì²éʧ°Ü"
+
#~ msgid "unknown -R option '%c'"
#~ msgstr "δ֪µÄ -R Ñ¡Ïî¡°%c¡±"
diff --git a/regex.c b/regex.c
index d124b4b..5533971 100644
--- a/regex.c
+++ b/regex.c
@@ -59,7 +59,7 @@ void flex_regcomp(regex_t *preg, const char *regex, int cflags)
errbuf = (char*)flex_alloc(errbuf_sz *sizeof(char));
regerror (err, preg, errbuf, errbuf_sz);
- sprintf (errbuf, "regcomp failed: %s\n", errbuf);
+ snprintf (errbuf, errbuf_sz, "regcomp failed: %s\n", errbuf);
flexfatal (errbuf);
free(errbuf);
diff --git a/scan.c b/scan.c
index 1c22e6a..c5baf8f 100644
--- a/scan.c
+++ b/scan.c
@@ -1,12 +1,14 @@
-#define YY_INT_ALIGNED short int
+#line 3 "scan.c"
+
+#define YY_INT_ALIGNED short int
/* A lexical scanner generated by flex */
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 28
+#define YY_FLEX_SUBMINOR_VERSION 34
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
@@ -14,16 +16,13 @@
/* First, we deal with platform-specific or compiler-specific issues. */
/* begin standard C headers. */
-
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
-
/* end standard C headers. */
-
/* flex integer type definitions */
#ifndef FLEXINT_H
@@ -31,7 +30,15 @@
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+
+/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
+ * if you want the limit (max/min) macros for int types.
+ */
+#ifndef __STDC_LIMIT_MACROS
+#define __STDC_LIMIT_MACROS 1
+#endif
+
#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
@@ -77,35 +84,21 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif
-
#endif /* ! FLEXINT_H */
-
-
-
-
-
#ifdef __cplusplus
-/* C++ compilers don't understand traditional function definitions. */
-#ifdef YY_TRADITIONAL_FUNC_DEFS
-#undef YY_TRADITIONAL_FUNC_DEFS
-#endif
-
/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST
#else /* ! __cplusplus */
-/* We're not in a C++ compiler, so by default,
- we generate C99 function defs, unless you explicitly ask
- for traditional defs by defining YY_TRADITIONAL_FUNC_DEFS */
-
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
#define YY_USE_CONST
-#endif /* __STDC__ */
+#endif /* defined (__STDC__) */
#endif /* ! __cplusplus */
#ifdef YY_USE_CONST
@@ -114,24 +107,6 @@ typedef unsigned int flex_uint32_t;
#define yyconst
#endif
-/* For compilers that can't handle prototypes.
- * e.g.,
- * The function prototype
- * int foo(int x, char* y);
- *
- * ...should be written as
- * int foo YY_PARAMS((int x, char* y));
- *
- * ...which could possibly generate
- * int foo ();
- */
-#ifdef YY_NO_PROTOS
-#define YY_PARAMS(proto) ()
-#else
-#define YY_PARAMS(proto) proto
-#endif
-
-
/* Returned upon end-of-file. */
#define YY_NULL 0
@@ -142,70 +117,24 @@ typedef unsigned int flex_uint32_t;
*/
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
-
-
-/* Define these macros to be no-ops. */
-#define YY_G(var) (var)
-#define YY_PROTO_LAST_ARG
-#define YY_PROTO_ONLY_ARG void
-#define YY_DEF_LAST_ARG
-#ifdef YY_TRADITIONAL_FUNC_DEFS
-#define YY_DEF_ONLY_ARG
-#else
-#define YY_DEF_ONLY_ARG void
-#endif
-#define YY_DECL_LAST_ARG
-#define YY_CALL_LAST_ARG
-#define YY_CALL_ONLY_ARG
-
-
-
-/* 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;
- */
-#ifdef YY_TRADITIONAL_FUNC_DEFS
-/* Generate traditional function defs */
-#define YYFARGS0(v) (YY_DEF_ONLY_ARG) YY_DECL_LAST_ARG
-#define YYFARGS1(t1,n1) (n1 YY_DEF_LAST_ARG) t1 n1; YY_DECL_LAST_ARG
-#define YYFARGS2(t1,n1,t2,n2) (n1,n2 YY_DEF_LAST_ARG) t1 n1; t2 n2; YY_DECL_LAST_ARG
-#define YYFARGS3(t1,n1,t2,n2,t3,n3) (n1,n2,n3 YY_DEF_LAST_ARG) t1 n1; t2 n2; t3 n3; YY_DECL_LAST_ARG
-#else
-/* Generate C99 function defs. */
-#define YYFARGS0(v) (YY_DEF_ONLY_ARG)
-#define YYFARGS1(t1,n1) (t1 n1 YY_DEF_LAST_ARG)
-#define YYFARGS2(t1,n1,t2,n2) (t1 n1,t2 n2 YY_DEF_LAST_ARG)
-#define YYFARGS3(t1,n1,t2,n2,t3,n3) (t1 n1,t2 n2,t3 n3 YY_DEF_LAST_ARG)
-#endif
-
/* 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_G(yy_start) = 1 + 2 *
+#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_G(yy_start) - 1) / 2)
+#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 YY_CALL_LAST_ARG )
+#define YY_NEW_FILE yyrestart(yyin )
#define YY_END_OF_BUFFER_CHAR 0
@@ -214,6 +143,9 @@ typedef unsigned int flex_uint32_t;
#define YY_BUF_SIZE 16384
#endif
+/* The state buf must be large enough to hold one state per character in the main buffer.
+ */
+#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
@@ -222,63 +154,29 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
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
-#ifdef 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.
- * 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's not worth it.
- */
-#define YY_LESS_LINENO(n) \
- do { \
- int yyl;\
- for ( yyl = n; yyl < yyleng; ++yyl )\
- if ( yytext[yyl] == '\n' )\
- --yylineno;\
- }while(0)
-#else
-#define YY_LESS_LINENO(n)
-#endif
-
-/* The funky do-while in the following #define is used to turn the definition
- * int a single C statement (which needs a semi-colon terminator). This
- * avoids problems with code like:
- *
- * if ( condition_holds )
- * yyless( 5 );
- * else
- * do_something_else();
- *
- * Prior to using the do-while the compiler would get upset at the
- * "else" because it interpreted the "if" statement as being all
- * done when it reached the ';' after the yyless() call.
- */
-
-/* Return all but the first 'n' matched characters back to the input stream. */
-
+ #define YY_LESS_LINENO(n)
+
+/* Return all but the first "n" matched characters back to the input stream. */
#define yyless(n) \
do \
{ \
/* Undo effects of setting up yytext. */ \
int yyless_macro_arg = (n); \
YY_LESS_LINENO(yyless_macro_arg);\
- *yy_cp = YY_G(yy_hold_char); \
+ *yy_cp = (yy_hold_char); \
YY_RESTORE_YY_MORE_OFFSET \
- YY_G(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
YY_DO_BEFORE_ACTION; /* set up yytext again */ \
} \
while ( 0 )
-#define unput(c) yyunput( c, YY_G(yytext_ptr) YY_CALL_LAST_ARG )
+#define unput(c) yyunput( c, (yytext_ptr) )
/* The following is because we cannot portably get our hands on size_t
* (without autoconf's help, which isn't available because we want
@@ -294,14 +192,8 @@ typedef unsigned int yy_size_t;
#define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state
{
-
FILE *yy_input_file;
-
-
-
-
-
char *yy_ch_buf; /* input buffer */
char *yy_buf_pos; /* current position in input buffer */
@@ -334,12 +226,16 @@ struct yy_buffer_state
*/
int yy_at_bol;
+ 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.
*/
int yy_fill_buffer;
int yy_buffer_status;
+
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
/* When an EOF's been seen but there's still some text to process
@@ -353,126 +249,124 @@ struct yy_buffer_state
* just pointing yyin at a new input file.
*/
#define YY_BUFFER_EOF_PENDING 2
+
};
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-static YY_BUFFER_STATE yy_current_buffer = 0;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-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. */
/* We provide macros for accessing buffer states in case in the
* future we want to put the buffer states in a more general
* "scanner state".
+ *
+ * Returns the top of the stack, or NULL.
*/
-#define YY_CURRENT_BUFFER yy_current_buffer
-
+#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
+ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
+ : NULL)
+/* 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.
+ */
+#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
/* yy_hold_char holds the character lost when yytext is formed. */
static char yy_hold_char;
-
static int yy_n_chars; /* number of characters read into yy_ch_buf */
-
-
int yyleng;
/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 1; /* whether we need to initialize */
+static int yy_init = 0; /* whether we need to initialize */
static int yy_start = 0; /* start state number */
/* Flag which is used to allow yywrap()'s to do buffer switches
* instead of setting up a fresh yyin. A bit of a hack ...
*/
static int yy_did_buffer_switch_on_eof;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
-void yyrestart YY_PARAMS(( FILE *input_file YY_PROTO_LAST_ARG ));
-
-void yy_switch_to_buffer YY_PARAMS(( YY_BUFFER_STATE new_buffer YY_PROTO_LAST_ARG ));
-void yy_load_buffer_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-YY_BUFFER_STATE yy_create_buffer YY_PARAMS(( FILE *file, int size YY_PROTO_LAST_ARG ));
-void yy_delete_buffer YY_PARAMS(( YY_BUFFER_STATE b YY_PROTO_LAST_ARG ));
-void yy_init_buffer YY_PARAMS(( YY_BUFFER_STATE b, FILE *file YY_PROTO_LAST_ARG ));
-void yy_flush_buffer YY_PARAMS(( YY_BUFFER_STATE b YY_PROTO_LAST_ARG ));
+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_G(yy_current_buffer) YY_CALL_LAST_ARG)
+static void yyensure_buffer_stack (void );
+static void yy_load_buffer_state (void );
+static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
-YY_BUFFER_STATE yy_scan_buffer YY_PARAMS(( char *base, yy_size_t size YY_PROTO_LAST_ARG ));
-YY_BUFFER_STATE yy_scan_string YY_PARAMS(( yyconst char *yy_str YY_PROTO_LAST_ARG ));
-YY_BUFFER_STATE yy_scan_bytes YY_PARAMS(( yyconst char *bytes, int len YY_PROTO_LAST_ARG ));
+#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,int len );
-
-void *yyalloc YY_PARAMS(( yy_size_t YY_PROTO_LAST_ARG ));
-void *yyrealloc YY_PARAMS(( void *, yy_size_t YY_PROTO_LAST_ARG ));
-void yyfree YY_PARAMS(( void * YY_PROTO_LAST_ARG ));
+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_G(yy_current_buffer) ) \
- YY_G(yy_current_buffer) = \
- yy_create_buffer( yyin, YY_BUF_SIZE YY_CALL_LAST_ARG); \
- YY_G(yy_current_buffer)->yy_is_interactive = is_interactive; \
+ if ( ! YY_CURRENT_BUFFER ){ \
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
}
#define yy_set_bol(at_bol) \
{ \
- if ( ! YY_G(yy_current_buffer) ) \
- YY_G(yy_current_buffer) = \
- yy_create_buffer( yyin, YY_BUF_SIZE YY_CALL_LAST_ARG); \
- YY_G(yy_current_buffer)->yy_at_bol = at_bol; \
+ if ( ! YY_CURRENT_BUFFER ){\
+ yyensure_buffer_stack (); \
+ YY_CURRENT_BUFFER_LVALUE = \
+ yy_create_buffer(yyin,YY_BUF_SIZE ); \
+ } \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
}
-#define YY_AT_BOL() (YY_G(yy_current_buffer)->yy_at_bol)
+#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
/* Begin user sect3 */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
+
typedef unsigned char YY_CHAR;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#ifndef YY_REENTRANT
+
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-#endif
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
+
typedef int yy_state_type;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
+
extern int yylineno;
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
+
int yylineno = 1;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
+
extern char *yytext;
#define yytext_ptr yytext
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-static yy_state_type yy_get_previous_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-static yy_state_type yy_try_NUL_trans YY_PARAMS(( yy_state_type current_state YY_PROTO_LAST_ARG));
-static int yy_get_next_buffer YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-static void yy_fatal_error YY_PARAMS(( yyconst char msg[] YY_PROTO_LAST_ARG ));
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
+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[] );
/* Done after the current pattern has been matched and before the
* corresponding action - sets up yytext.
*/
#define YY_DO_BEFORE_ACTION \
- YY_G(yytext_ptr) = yy_bp; \
- yyleng = (size_t) (yy_cp - yy_bp); \
- YY_G(yy_hold_char) = *yy_cp; \
+ (yytext_ptr) = yy_bp; \
+ (yytext_ptr) -= (yy_more_len); \
+ yyleng = (size_t) (yy_cp - (yytext_ptr)); \
+ (yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
- YY_G(yy_c_buf_p) = yy_cp;
+ (yy_c_buf_p) = yy_cp;
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#define YY_NUM_RULES 201
-#define YY_END_OF_BUFFER 202
+#define YY_NUM_RULES 251
+#define YY_END_OF_BUFFER 252
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -480,115 +374,269 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[973] =
+static yyconst flex_int16_t yy_acclist[1229] =
{ 0,
- 0, 0, 0, 0, 122, 122, 199, 199, 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,
- 202, 200, 9, 20, 200, 18, 1, 19, 200, 200,
- 200, 200, 17, 143, 135, 136, 143, 128, 143, 142,
- 143, 143, 143, 142, 134, 124, 143, 143, 126, 127,
- 122, 123, 122, 121, 120, 121, 199, 199, 30, 31,
- 30, 30, 30, 30, 30, 30, 37, 36, 38, 200,
- 149, 149, 144, 149, 145, 146, 148, 150, 177, 178,
-
- 177, 175, 174, 176, 151, 153, 151, 152, 151, 156,
- 156, 156, 156, 158, 160, 158, 158, 158, 158, 159,
- 187, 191, 187, 190, 192, 192, 188, 188, 188, 185,
- 186, 200, 117, 200, 23, 24, 23, 22, 193, 195,
- 193, 196, 197, 183, 183, 184, 183, 183, 183, 183,
- 183, 183, 183, 116, 40, 39, 116, 116, 116, 116,
- 41, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 28, 25, 28, 26, 35, 34, 200, 33,
- 32, 9, 20, 0, 18, 1, 19, 0, 0, 0,
-
- 16, 10, 0, 0, 0, 0, 4, 16, 5, 0,
- 2, 17, 135, 136, 0, 0, 0, 130, 0, 0,
- 140, 140, 0, 198, 198, 198, 129, 0, 134, 124,
- 0, 0, 0, 126, 127, 139, 125, 0, 122, 123,
- 121, 120, 120, 118, 119, 199, 199, 30, 31, 30,
- 30, 30, 30, 37, 36, 38, 0, 144, 0, 144,
- 147, 148, 178, 174, 153, 0, 154, 155, 160, 157,
- 187, 191, 0, 189, 0, 180, 188, 188, 188, 0,
- 117, 0, 23, 24, 23, 21, 193, 195, 194, 183,
- 183, 183, 184, 179, 183, 183, 183, 40, 39, 0,
-
- 115, 0, 0, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 42, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 0, 27, 26, 35, 34, 0,
- 16, 10, 0, 14, 0, 0, 0, 0, 0, 4,
- 16, 5, 0, 6, 0, 131, 0, 132, 0, 0,
- 140, 140, 0, 140, 140, 140, 198, 198, 0, 141,
- 125, 133, 0, 139, 0, 118, 119, 30, 30, 30,
- 29, 30, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 188, 188, 179, 179, 183, 183,
-
- 0, 0, 116, 116, 116, 116, 116, 116, 116, 54,
- 116, 116, 116, 59, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 0, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 0, 0,
- 0, 14, 0, 0, 0, 0, 0, 0, 4, 8,
- 5, 0, 140, 140, 140, 140, 140, 140, 198, 141,
- 0, 0, 30, 30, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 188, 188, 183,
- 183, 43, 44, 116, 116, 116, 116, 116, 116, 116,
-
- 116, 116, 116, 60, 61, 116, 116, 116, 116, 66,
- 116, 116, 116, 116, 116, 116, 116, 71, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 80, 0, 0,
- 0, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 0, 15, 0, 0, 0, 0, 0, 8, 8, 8,
- 0, 140, 140, 140, 140, 140, 140, 0, 0, 30,
- 30, 173, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 188, 188, 183, 183, 45, 116,
- 116, 47, 116, 51, 116, 116, 116, 116, 57, 116,
- 116, 62, 116, 116, 116, 116, 116, 116, 116, 116,
-
- 116, 116, 116, 74, 116, 116, 116, 116, 78, 116,
- 0, 0, 0, 0, 116, 116, 116, 116, 116, 116,
- 116, 116, 116, 3, 0, 0, 0, 8, 7, 8,
- 0, 140, 140, 140, 0, 0, 30, 30, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 181, 182, 181, 182, 116, 116, 116, 50, 116, 116,
- 116, 116, 116, 116, 112, 116, 116, 116, 116, 116,
- 116, 116, 116, 110, 116, 73, 116, 76, 116, 77,
- 116, 0, 0, 0, 0, 116, 116, 92, 0, 116,
- 82, 116, 0, 83, 0, 12, 0, 13, 0, 138,
-
- 0, 137, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 116, 116, 116, 116, 116, 116,
- 116, 55, 116, 58, 116, 116, 116, 116, 116, 109,
- 116, 70, 116, 116, 75, 116, 79, 0, 0, 0,
- 0, 90, 111, 0, 0, 0, 0, 0, 0, 116,
- 116, 0, 0, 0, 0, 0, 0, 137, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 116, 116, 116, 116, 116, 116, 116, 56, 116, 116,
- 116, 67, 116, 116, 116, 116, 116, 116, 0, 0,
- 0, 0, 0, 0, 101, 0, 0, 0, 0, 0,
-
- 0, 81, 116, 0, 0, 102, 0, 0, 0, 0,
- 0, 11, 0, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 0, 116, 116, 116, 116, 116,
- 116, 116, 116, 116, 116, 116, 116, 116, 72, 116,
- 116, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 103, 0, 91, 0, 0, 0, 0, 0,
- 104, 172, 116, 116, 116, 116, 116, 116, 116, 116,
- 116, 64, 116, 116, 116, 116, 116, 0, 0, 0,
- 0, 0, 0, 0, 0, 97, 0, 107, 105, 98,
- 0, 0, 0, 108, 106, 116, 116, 116, 116, 116,
-
- 116, 116, 112, 63, 116, 69, 116, 113, 116, 0,
- 0, 0, 0, 0, 0, 93, 95, 0, 94, 96,
- 0, 116, 116, 116, 52, 116, 116, 116, 116, 65,
- 116, 85, 0, 0, 0, 0, 86, 99, 100, 116,
- 116, 116, 116, 116, 116, 116, 114, 84, 0, 88,
- 0, 116, 116, 116, 116, 116, 116, 87, 89, 116,
- 116, 49, 53, 116, 116, 116, 48, 116, 116, 68,
- 46, 0
+ 248, 248, 252, 250, 251, 9, 250, 251, 20, 250,
+ 251, 250, 251, 18, 250, 251, 9, 250, 251, 19,
+ 20, 250, 251, 250, 251, 250, 251, 250, 251, 250,
+ 251, 17, 18, 250, 251, 1, 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, 9, 19, 20, 10, 4, 5,
+ 16, 2, 17, 18, 1, 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,
+ 10, 4, 5, 16, 16, 14, 16, 16, 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, 4, 8, 5, 16, 16, 14, 15, 16,
+
+ 16, 16, 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, 8, 8, 8, 15, 16,
+ 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, 7, 8, 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[1109] =
+ { 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, 20, 24, 26, 28, 30,
+ 32, 36, 41, 44, 48, 51, 54, 58, 61, 66,
+ 71, 75, 79, 82, 85, 88, 92, 97, 101, 104,
+ 107, 111, 115, 118, 121, 124, 128, 132, 136, 140,
+ 144, 147, 150, 153, 156, 159, 162, 165, 168, 171,
+
+ 174, 177, 180, 183, 185, 188, 191, 194, 197, 201,
+ 205, 209, 212, 215, 218, 221, 225, 229, 233, 236,
+ 239, 242, 245, 248, 251, 254, 257, 260, 264, 267,
+ 271, 275, 279, 283, 287, 291, 294, 298, 302, 305,
+ 308, 312, 316, 320, 324, 328, 332, 336, 338, 341,
+ 343, 346, 349, 352, 355, 358, 361, 365, 368, 372,
+ 376, 379, 382, 385, 388, 391, 394, 397, 400, 403,
+ 406, 409, 412, 416, 419, 422, 425, 428, 431, 435,
+ 438, 441, 444, 447, 450, 453, 456, 459, 462, 465,
+ 468, 471, 474, 477, 480, 483, 486, 489, 492, 495,
+
+ 498, 501, 504, 507, 511, 514, 517, 519, 522, 525,
+ 528, 531, 534, 537, 540, 543, 546, 549, 552, 555,
+ 558, 561, 564, 567, 570, 573, 576, 579, 582, 583,
+ 584, 584, 585, 586, 588, 588, 588, 588, 589, 589,
+ 589, 589, 590, 590, 591, 592, 592, 593, 595, 598,
+ 599, 600, 600, 600, 600, 601, 601, 602, 603, 603,
+ 604, 605, 605, 606, 607, 608, 608, 608, 609, 609,
+ 611, 613, 613, 613, 613, 614, 615, 616, 617, 617,
+ 618, 619, 620, 621, 623, 625, 626, 627, 628, 629,
+ 630, 630, 630, 631, 632, 632, 633, 634, 635, 635,
+
+ 636, 636, 637, 638, 639, 640, 641, 642, 642, 643,
+ 644, 645, 646, 647, 648, 648, 649, 649, 650, 651,
+ 652, 653, 654, 655, 655, 656, 656, 657, 658, 659,
+ 660, 661, 662, 663, 663, 663, 664, 665, 666, 667,
+ 668, 669, 669, 670, 670, 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, 699, 700, 701, 702, 702, 703,
+ 704, 705, 706, 707, 708, 709, 710, 711, 711, 712,
+ 712, 712, 712, 713, 713, 714, 715, 716, 717, 718,
+
+ 719, 719, 720, 720, 721, 721, 722, 722, 723, 723,
+ 724, 725, 725, 726, 727, 728, 729, 730, 731, 732,
+ 732, 733, 735, 736, 736, 737, 737, 739, 741, 741,
+ 741, 741, 742, 742, 742, 742, 742, 742, 742, 742,
+ 742, 742, 742, 742, 742, 742, 743, 744, 745, 745,
+ 745, 746, 747, 748, 749, 750, 751, 752, 754, 755,
+ 756, 757, 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, 789, 790, 791, 792, 793, 793, 793, 793,
+
+ 793, 793, 794, 795, 796, 797, 798, 800, 801, 802,
+ 803, 803, 804, 805, 806, 807, 808, 809, 810, 811,
+ 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
+ 812, 812, 812, 812, 812, 812, 812, 812, 812, 812,
+ 812, 812, 812, 812, 812, 812, 812, 813, 814, 815,
+ 816, 817, 818, 819, 820, 821, 822, 823, 824, 825,
+ 826, 827, 829, 831, 832, 833, 834, 835, 837, 838,
+ 839, 840, 841, 842, 843, 844, 846, 847, 848, 849,
+ 850, 851, 852, 853, 854, 855, 857, 858, 859, 860,
+ 861, 862, 863, 864, 865, 866, 866, 866, 866, 866,
+
+ 866, 866, 866, 867, 868, 869, 870, 871, 872, 872,
+ 873, 874, 875, 876, 877, 878, 879, 879, 879, 879,
+ 879, 880, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 880, 880, 880, 880, 880,
+ 880, 880, 880, 880, 880, 881, 882, 884, 885, 886,
+ 888, 889, 891, 892, 893, 894, 895, 897, 898, 899,
+ 900, 902, 903, 904, 905, 906, 907, 908, 909, 910,
+ 911, 912, 913, 915, 916, 917, 918, 919, 921, 922,
+ 923, 924, 925, 926, 927, 928, 929, 930, 931, 931,
+ 931, 931, 931, 932, 932, 932, 932, 933, 934, 935,
+
+ 935, 936, 937, 938, 938, 938, 939, 940, 940, 940,
+ 940, 940, 940, 940, 940, 940, 940, 940, 940, 940,
+ 940, 940, 940, 940, 940, 940, 940, 940, 940, 940,
+ 940, 940, 942, 944, 945, 946, 947, 949, 950, 951,
+ 952, 953, 954, 955, 956, 958, 959, 960, 961, 962,
+ 963, 964, 965, 966, 968, 969, 971, 972, 974, 975,
+ 977, 978, 979, 980, 982, 982, 983, 985, 986, 986,
+ 988, 988, 988, 988, 988, 988, 989, 989, 990, 990,
+ 991, 991, 993, 993, 993, 993, 993, 993, 993, 993,
+ 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
+
+ 993, 993, 993, 993, 993, 993, 993, 994, 995, 996,
+ 997, 998, 999, 1000, 1002, 1003, 1005, 1006, 1007, 1008,
+ 1009, 1010, 1011, 1013, 1014, 1016, 1017, 1018, 1020, 1021,
+ 1023, 1025, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1028,
+ 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029,
+ 1029, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
+ 1030, 1030, 1030, 1030, 1030, 1030, 1031, 1032, 1033, 1034,
+ 1035, 1036, 1037, 1039, 1040, 1041, 1042, 1043, 1045, 1046,
+ 1047, 1048, 1049, 1050, 1051, 1051, 1051, 1052, 1052, 1052,
+
+ 1052, 1052, 1052, 1052, 1054, 1055, 1055, 1055, 1056, 1056,
+ 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1057, 1057,
+ 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077,
+ 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079,
+ 1079, 1079, 1079, 1079, 1080, 1081, 1082, 1083, 1084, 1085,
+ 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1095, 1096,
+ 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1098, 1098, 1100,
+ 1100, 1100, 1100, 1100, 1100, 1101, 1101, 1101, 1101, 1101,
+ 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119,
+ 1121, 1123, 1125, 1125, 1126, 1127, 1128, 1129, 1130, 1131,
+
+ 1132, 1134, 1135, 1136, 1138, 1139, 1140, 1141, 1142, 1143,
+ 1143, 1143, 1144, 1144, 1145, 1146, 1147, 1147, 1147, 1147,
+ 1148, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1151, 1152,
+ 1153, 1154, 1155, 1156, 1157, 1158, 1160, 1162, 1163, 1165,
+ 1166, 1168, 1169, 1170, 1171, 1171, 1172, 1173, 1173, 1173,
+ 1173, 1173, 1173, 1173, 1173, 1174, 1175, 1176, 1178, 1179,
+ 1180, 1181, 1182, 1184, 1185, 1186, 1187, 1188, 1188, 1188,
+ 1188, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196,
+ 1198, 1199, 1199, 1200, 1200, 1201, 1202, 1203, 1204, 1205,
+ 1207, 1208, 1209, 1210, 1211, 1212, 1214, 1216, 1217, 1218,
+
+ 1219, 1221, 1223, 1224, 1225, 1227, 1229, 1229
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -597,16 +645,16 @@ static yyconst flex_int32_t yy_ec[256] =
4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 6, 7, 8, 9, 1, 10, 11,
- 11, 12, 13, 14, 15, 11, 16, 17, 17, 17,
- 17, 17, 17, 17, 18, 19, 20, 21, 1, 22,
- 23, 24, 11, 1, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 48,
- 27, 28, 29, 30, 31, 1, 32, 33, 34, 35,
-
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
- 56, 48, 57, 58, 59, 1, 1, 1, 1, 1,
+ 12, 13, 14, 15, 16, 17, 18, 19, 19, 19,
+ 19, 19, 19, 19, 20, 21, 22, 23, 1, 24,
+ 25, 26, 27, 1, 28, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 44,
+ 53, 54, 55, 56, 57, 1, 58, 59, 60, 61,
+
+ 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 44, 74, 75, 76, 77, 78, 79, 80,
+ 81, 44, 82, 83, 84, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -623,1010 +671,1204 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[60] =
+static yyconst flex_int32_t yy_meta[85] =
{ 0,
1, 1, 2, 1, 3, 4, 1, 1, 1, 5,
- 1, 6, 7, 1, 8, 5, 9, 9, 9, 9,
- 1, 1, 1, 1, 10, 11, 1, 12, 13, 1,
- 14, 15, 15, 15, 15, 15, 15, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
- 16, 16, 16, 16, 16, 16, 17, 1, 18
+ 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
} ;
-static yyconst flex_int16_t yy_base[1070] =
+static yyconst flex_int16_t yy_base[1201] =
{ 0,
- 0, 59, 117, 175, 121, 129, 3236, 3235, 234, 3228,
- 138, 144, 293, 0, 3206, 3205, 145, 152, 187, 193,
- 124, 179, 350, 353, 382, 0, 132, 153, 205, 211,
- 439, 443, 471, 0, 530, 0, 354, 444, 587, 588,
- 3234, 3240, 217, 3240, 3230, 0, 222, 3240, 3229, 151,
- 639, 3219, 0, 3240, 592, 3240, 3227, 3240, 226, 3240,
- 3207, 133, 581, 344, 600, 3240, 3225, 595, 3205, 3240,
- 0, 3240, 3223, 0, 3223, 310, 3221, 3240, 0, 3240,
- 3220, 3240, 0, 3186, 3165, 3161, 0, 3217, 3240, 3215,
- 3240, 449, 3215, 3213, 3240, 3185, 0, 3240, 3240, 3240,
-
- 3211, 3240, 438, 3240, 3240, 3240, 3210, 3240, 594, 3240,
- 3191, 596, 197, 3240, 3240, 3208, 0, 3189, 600, 3240,
- 0, 3240, 3206, 3240, 157, 3196, 0, 3171, 3150, 3240,
- 3240, 463, 3240, 603, 616, 3240, 620, 3189, 0, 3240,
- 3201, 3240, 0, 0, 357, 3240, 3200, 3143, 3240, 3189,
- 0, 3164, 3143, 3240, 3196, 3240, 3194, 3190, 3162, 3161,
- 3240, 583, 575, 597, 3157, 3158, 568, 0, 3155, 3145,
- 3153, 433, 143, 3136, 588, 3151, 3135, 3153, 3139, 3147,
- 3150, 3125, 3240, 3240, 3174, 621, 0, 3240, 3176, 3240,
- 3240, 651, 3240, 3175, 0, 657, 3240, 3174, 625, 3136,
-
- 0, 0, 690, 695, 699, 718, 0, 3129, 0, 628,
- 3240, 0, 667, 3240, 3171, 3116, 658, 3240, 3169, 3135,
- 173, 432, 625, 3240, 358, 0, 3240, 3111, 725, 3240,
- 3166, 3111, 3155, 3144, 3240, 0, 3240, 3129, 0, 3240,
- 0, 0, 3162, 0, 0, 3160, 3240, 0, 3240, 0,
- 3121, 3117, 783, 0, 3158, 3240, 662, 3157, 3155, 3155,
- 3240, 0, 3240, 725, 3240, 811, 3240, 3240, 3240, 3240,
- 0, 3240, 185, 3240, 0, 3240, 0, 3115, 3111, 674,
- 3240, 700, 719, 3240, 726, 3240, 0, 3240, 3240, 0,
- 697, 3095, 3240, 866, 0, 3112, 3108, 3149, 3240, 3144,
-
- 3240, 3109, 3108, 0, 686, 3097, 3097, 623, 3095, 3131,
- 3093, 645, 3092, 3091, 3097, 3107, 636, 3083, 3097, 3085,
- 0, 3082, 3240, 3083, 3084, 708, 3096, 718, 717, 3098,
- 713, 3081, 3080, 895, 3122, 3240, 748, 0, 3240, 3082,
- 0, 0, 938, 3240, 3123, 945, 3076, 3073, 3083, 0,
- 3075, 0, 758, 3240, 766, 3240, 767, 3240, 770, 3075,
- 705, 753, 913, 968, 1011, 1023, 739, 0, 3061, 774,
- 3240, 3240, 3083, 0, 3072, 0, 0, 3081, 3070, 1060,
- 3240, 0, 1119, 3094, 826, 916, 907, 913, 1101, 645,
- 1110, 121, 914, 827, 3078, 3067, 0, 1178, 3076, 3065,
-
- 3059, 3058, 3070, 3075, 3066, 3073, 3062, 3069, 3056, 0,
- 3065, 3048, 3067, 0, 3047, 3054, 3061, 3043, 3058, 3078,
- 3047, 3059, 3054, 3052, 3051, 3042, 3046, 3048, 3049, 3038,
- 3046, 3047, 810, 3037, 3029, 3026, 3044, 3031, 983, 3032,
- 3031, 3024, 3036, 3031, 3024, 3033, 3032, 3018, 3030, 848,
- 1149, 3240, 852, 1153, 1042, 3033, 3024, 3018, 0, 995,
- 0, 3025, 1213, 1147, 1253, 3040, 1186, 1274, 3240, 3240,
- 3014, 3022, 3024, 3008, 0, 3027, 1195, 730, 915, 933,
- 1014, 1136, 1123, 1188, 1189, 1194, 1190, 3021, 3005, 3019,
- 3003, 3240, 3240, 3006, 2994, 3034, 2992, 2995, 3007, 3000,
-
- 1259, 3006, 2991, 0, 0, 3006, 2990, 2991, 3005, 0,
- 3023, 2988, 2996, 3020, 2983, 2978, 2992, 0, 2980, 2996,
- 2987, 2983, 2975, 2990, 2974, 2973, 2977, 0, 813, 2988,
- 2975, 2977, 2987, 2982, 2966, 2971, 2966, 2982, 2962, 2980,
- 3009, 3240, 1214, 1220, 2954, 2963, 2957, 0, 1218, 1224,
- 2983, 2985, 1286, 1298, 1252, 1004, 1009, 2968, 2980, 2952,
- 2966, 3240, 1160, 1256, 1255, 1263, 1203, 1197, 100, 1276,
- 1303, 1304, 1124, 1284, 2950, 2964, 2948, 2962, 0, 2947,
- 183, 0, 2949, 0, 2980, 1279, 2942, 2957, 0, 2949,
- 2942, 0, 2958, 2943, 2952, 2972, 2943, 2936, 2948, 2968,
-
- 2927, 2932, 2929, 0, 2939, 2927, 2927, 2941, 0, 2925,
- 2927, 2923, 2940, 2924, 2924, 2919, 2932, 2936, 2930, 2929,
- 2921, 2932, 2915, 2959, 1229, 2915, 2923, 1337, 3240, 2955,
- 2933, 1299, 1026, 1255, 2932, 2931, 0, 0, 1299, 1315,
- 925, 1320, 1323, 1325, 1324, 1327, 1328, 1329, 1331, 1330,
- 0, 0, 0, 0, 2939, 2917, 2903, 0, 1323, 2906,
- 2914, 2906, 2898, 2896, 2931, 2911, 2900, 2909, 2902, 2905,
- 2904, 2890, 2904, 0, 2905, 0, 2885, 0, 2920, 0,
- 2898, 2902, 2893, 2886, 2899, 2895, 2878, 0, 1341, 2882,
- 0, 2883, 1350, 0, 1350, 3240, 1354, 3240, 2876, 3240,
-
- 2900, 3240, 2902, 2901, 2900, 2899, 2898, 2897, 2896, 2895,
- 2894, 2893, 2892, 1337, 2872, 2874, 2864, 2860, 2862, 2857,
- 2861, 0, 2855, 0, 2867, 2852, 2855, 2851, 2803, 0,
- 2796, 0, 2796, 2776, 0, 317, 0, 2753, 2754, 2751,
- 2728, 0, 0, 2741, 2716, 2725, 1355, 2717, 2732, 2714,
- 2703, 2672, 2652, 2654, 1329, 2646, 1357, 3240, 2630, 2612,
- 2597, 2596, 2578, 2574, 2573, 2572, 2569, 2550, 2545, 2552,
- 2521, 2525, 2513, 2521, 2526, 2520, 2502, 0, 2504, 2496,
- 2502, 0, 2469, 2447, 2448, 2420, 2427, 2430, 2410, 2410,
- 1321, 2407, 2421, 2402, 3240, 2407, 2401, 2399, 2393, 2373,
-
- 2364, 0, 2384, 2378, 2359, 3240, 2364, 2360, 2373, 2350,
- 1394, 3240, 1397, 3240, 3240, 3240, 3240, 3240, 3240, 3240,
- 3240, 3240, 3240, 3240, 2368, 2310, 2298, 2279, 2272, 2257,
- 2226, 2228, 2221, 2210, 2206, 2220, 2206, 2207, 0, 2192,
- 2179, 2185, 2143, 808, 2142, 2135, 2114, 2111, 2121, 2104,
- 2088, 2064, 3240, 2055, 0, 2036, 2035, 2047, 2048, 2036,
- 3240, 3240, 2024, 2015, 2003, 2009, 1995, 1995, 1991, 2005,
- 2001, 0, 1984, 1964, 1975, 1963, 1957, 1932, 1924, 1918,
- 1883, 1881, 1878, 1886, 1891, 3240, 1876, 3240, 3240, 3240,
- 1876, 1871, 1840, 3240, 3240, 1831, 1828, 1803, 1822, 1813,
-
- 1812, 1805, 0, 0, 1812, 0, 1792, 0, 1803, 1803,
- 1784, 1794, 1759, 1737, 1723, 3240, 3240, 1708, 3240, 3240,
- 1707, 1701, 1675, 1663, 0, 1663, 1633, 1630, 1373, 0,
- 1350, 3240, 1369, 1368, 1353, 1356, 3240, 3240, 3240, 1360,
- 1343, 1347, 1330, 1321, 1265, 1247, 0, 3240, 124, 3240,
- 405, 419, 551, 585, 661, 729, 812, 3240, 3240, 911,
- 910, 0, 0, 1013, 1100, 1108, 0, 1192, 1195, 0,
- 0, 3240, 1408, 1426, 1444, 1462, 1480, 1498, 1516, 1534,
- 1552, 1570, 1588, 1606, 1624, 1642, 1660, 1671, 1687, 1697,
- 1713, 1731, 1741, 1757, 1775, 1793, 1811, 1829, 1840, 1856,
-
- 1867, 1883, 1901, 1919, 1932, 1943, 1959, 1977, 1995, 2013,
- 2031, 2042, 2058, 2070, 1352, 2086, 2104, 2120, 2138, 2147,
- 2154, 2170, 2181, 2197, 2215, 2233, 2243, 2251, 2269, 2287,
- 2305, 2323, 2341, 2359, 2377, 2395, 2406, 2422, 2433, 2440,
- 2456, 2469, 2480, 2496, 2514, 2532, 2550, 2561, 2577, 2589,
- 2605, 2623, 2639, 2657, 2675, 2686, 2695, 2711, 2729, 2747,
- 2757, 2765, 2783, 2801, 2819, 2830, 2846, 2864, 2882
+ 0, 84, 167, 250, 171, 184, 174, 179, 192, 233,
+ 196, 200, 334, 0, 3422, 3421, 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, 3456, 3928,
+ 228, 3928, 3451, 0, 322, 3928, 3423, 384, 827, 3396,
+ 0, 159, 3928, 755, 3928, 3389, 3928, 449, 3348, 3928,
+ 3928, 3345, 3330, 222, 408, 442, 764, 3928, 3350, 230,
+ 3328, 3928, 3928, 3928, 3346, 0, 3329, 164, 3324, 3928,
+ 3261, 3239, 3928, 3928, 3290, 239, 119, 3239, 3234, 3167,
+
+ 0, 3248, 3928, 3246, 3928, 476, 3243, 3241, 3928, 3187,
+ 0, 3928, 3928, 3928, 3222, 3928, 464, 3928, 3928, 3928,
+ 3219, 3928, 742, 3928, 3198, 751, 180, 3928, 3928, 3217,
+ 0, 3194, 757, 3928, 0, 3928, 3200, 3928, 415, 3186,
+ 0, 433, 241, 3129, 3123, 3928, 3928, 306, 3928, 323,
+ 3928, 3928, 3174, 3141, 3089, 3082, 0, 3928, 3124, 3928,
+ 0, 3928, 446, 3928, 3122, 3021, 3091, 435, 392, 3050,
+ 3045, 3928, 3080, 3928, 3076, 3072, 565, 575, 3928, 578,
+ 751, 586, 586, 735, 752, 0, 588, 718, 743, 786,
+ 749, 412, 809, 762, 582, 768, 756, 781, 788, 580,
+
+ 3928, 3928, 3071, 588, 3928, 3928, 3068, 3017, 3013, 3928,
+ 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928,
+ 0, 3928, 3061, 3928, 3928, 3928, 3048, 3016, 837, 3928,
+ 3028, 0, 847, 3928, 3027, 787, 793, 0, 718, 785,
+ 788, 0, 792, 0, 891, 472, 3928, 0, 244, 854,
+ 3928, 3026, 2944, 488, 3928, 3006, 3001, 3928, 829, 445,
+ 844, 867, 3928, 765, 0, 2920, 2918, 3928, 2890, 912,
+ 3928, 2954, 2872, 2940, 2928, 3928, 0, 3928, 833, 3928,
+ 0, 0, 2947, 0, 0, 2927, 3928, 3928, 3928, 3928,
+ 839, 849, 3928, 3928, 608, 0, 2911, 3928, 920, 2908,
+
+ 2906, 2906, 3928, 0, 3928, 907, 3928, 968, 3928, 3928,
+ 3928, 3928, 0, 3928, 611, 3928, 0, 3928, 0, 853,
+ 861, 3928, 3928, 769, 3928, 796, 3928, 3928, 3928, 3928,
+ 0, 3928, 3928, 596, 2821, 3928, 0, 3928, 3928, 2899,
+ 3928, 2894, 3928, 868, 869, 0, 888, 744, 834, 886,
+ 886, 2885, 894, 912, 897, 897, 902, 910, 922, 908,
+ 902, 920, 911, 0, 910, 3928, 913, 918, 1014, 932,
+ 1024, 1023, 962, 1019, 948, 1013, 1065, 2890, 3928, 1044,
+ 3928, 3928, 3928, 0, 3928, 3928, 3928, 982, 0, 1014,
+ 1020, 1034, 0, 1028, 0, 0, 1111, 3928, 2565, 1140,
+
+ 863, 3928, 971, 3928, 980, 3928, 1069, 3928, 1031, 912,
+ 1053, 1098, 1178, 1101, 1244, 1049, 0, 3928, 3928, 2476,
+ 1161, 3928, 3928, 1046, 0, 1037, 0, 0, 1062, 1055,
+ 1072, 3928, 1133, 1244, 1245, 1096, 1246, 2535, 1067, 1247,
+ 1248, 1103, 1256, 1255, 1307, 1115, 1109, 0, 1233, 1234,
+ 1251, 1259, 1252, 1262, 1253, 1264, 1259, 0, 1294, 1263,
+ 1299, 0, 1278, 1285, 1294, 1303, 1295, 1307, 2540, 1303,
+ 1317, 1315, 1315, 1316, 1310, 1323, 1327, 1331, 1329, 1341,
+ 1353, 1349, 1347, 1342, 1345, 1365, 1354, 1357, 1358, 1354,
+ 1369, 1366, 1362, 1373, 1374, 1363, 1395, 1377, 1382, 1378,
+
+ 1377, 0, 870, 0, 1145, 1444, 3928, 1153, 1453, 1166,
+ 1387, 1475, 1541, 1577, 234, 2487, 1547, 1622, 3928, 3928,
+ 1381, 1396, 1400, 1388, 2352, 1540, 1545, 1539, 1548, 1546,
+ 1541, 1552, 1561, 1564, 1591, 1553, 1554, 1594, 1604, 1593,
+ 1602, 1607, 1623, 1605, 1634, 1635, 1596, 1586, 3928, 3928,
+ 1620, 1613, 2382, 1617, 1622, 1627, 1631, 1670, 1640, 1639,
+ 1660, 0, 0, 1657, 1646, 1650, 1660, 0, 2328, 1656,
+ 1669, 2282, 1661, 1660, 1670, 0, 1665, 1683, 1676, 1674,
+ 1669, 1689, 1676, 1678, 1684, 0, 1688, 1700, 1697, 1684,
+ 1691, 1689, 1710, 1695, 1719, 1707, 1718, 1708, 1711, 1709,
+
+ 1722, 1719, 0, 1396, 1170, 3928, 1440, 1449, 2244, 934,
+ 2163, 1750, 1786, 1525, 1358, 1719, 1734, 2146, 1734, 1750,
+ 3928, 1751, 1765, 1752, 1753, 1766, 1768, 1764, 1790, 1762,
+ 1806, 1801, 1786, 1811, 1812, 1815, 1819, 1828, 1814, 1832,
+ 1798, 1837, 1834, 1835, 1796, 1827, 0, 1821, 1842, 0,
+ 1831, 0, 2141, 1842, 1828, 1847, 0, 1841, 2069, 1842,
+ 0, 1853, 1848, 1860, 2060, 1855, 1852, 1867, 2057, 1851,
+ 1861, 1865, 0, 1864, 1866, 1868, 1887, 0, 1875, 1877,
+ 1877, 1893, 2005, 1895, 1896, 1893, 1938, 1890, 1891, 1890,
+ 1909, 1895, 1897, 1464, 1899, 1912, 1951, 3928, 1872, 1799,
+
+ 1892, 1906, 1918, 1775, 1760, 3928, 3928, 1938, 1952, 1928,
+ 1950, 1953, 1956, 1954, 1958, 1959, 1960, 1962, 1961, 1963,
+ 1967, 1971, 1964, 1965, 1970, 1991, 1975, 1994, 1995, 2007,
+ 1981, 0, 0, 1749, 1971, 1975, 0, 2008, 1985, 2009,
+ 2005, 2004, 2004, 2005, 1694, 2018, 2017, 2028, 2023, 2028,
+ 2029, 2018, 2034, 0, 2037, 0, 2021, 0, 1657, 0,
+ 2034, 2040, 2026, 0, 2067, 2034, 0, 2043, 2079, 0,
+ 1610, 2048, 2045, 1567, 1567, 3928, 2099, 3928, 2048, 3928,
+ 1595, 3928, 1567, 1562, 1542, 1507, 1438, 1434, 1396, 1384,
+ 1331, 1319, 1305, 2061, 2084, 2097, 2094, 2096, 2100, 2103,
+
+ 2104, 2111, 2119, 2121, 2107, 2123, 2095, 2117, 2114, 2118,
+ 2118, 2118, 2126, 0, 2123, 0, 2118, 2138, 2126, 2131,
+ 2131, 2134, 0, 2136, 0, 2140, 2143, 0, 2158, 0,
+ 0, 0, 2153, 2137, 2153, 2164, 2160, 2178, 2169, 2174,
+ 2186, 2169, 2181, 2189, 2179, 2185, 1251, 1243, 2186, 2240,
+ 3928, 1240, 1237, 1178, 1119, 1115, 1102, 1097, 1047, 1028,
+ 1002, 970, 955, 947, 919, 916, 869, 865, 861, 822,
+ 802, 780, 644, 640, 2200, 2188, 2198, 2192, 2199, 2214,
+ 2218, 2207, 0, 2208, 2218, 2221, 2234, 0, 2219, 2221,
+ 2229, 2224, 2236, 2241, 2246, 2230, 3928, 2237, 2238, 2241,
+
+ 2257, 2241, 2238, 0, 2256, 2261, 2247, 3928, 2250, 2254,
+ 2269, 2254, 2257, 2261, 2282, 2263, 2309, 3928, 2319, 3928,
+ 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928,
+ 598, 441, 437, 432, 395, 374, 261, 245, 239, 199,
+ 152, 137, 165, 2272, 2284, 2287, 2300, 2304, 2293, 2299,
+ 2305, 2299, 2291, 2295, 2311, 2300, 2303, 0, 2308, 2304,
+ 2302, 2306, 2318, 2321, 2324, 2317, 3928, 2311, 0, 2312,
+ 2318, 2334, 2340, 2333, 3928, 2347, 2334, 2342, 2338, 2360,
+ 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928, 3928,
+ 3928, 3928, 128, 2359, 2359, 2346, 2363, 2352, 2355, 2356,
+
+ 0, 2372, 2374, 0, 2363, 2362, 2383, 2380, 2377, 2381,
+ 2388, 3928, 2376, 3928, 3928, 3928, 2386, 2396, 2385, 3928,
+ 3928, 2382, 2403, 2400, 2388, 2394, 2393, 3928, 2399, 2401,
+ 2397, 2419, 2416, 2417, 2419, 0, 0, 2429, 0, 2412,
+ 0, 2427, 3928, 3928, 2420, 3928, 3928, 2423, 2434, 2423,
+ 2434, 2439, 2436, 2442, 2447, 2440, 2436, 0, 2438, 2437,
+ 2437, 2459, 0, 2439, 3928, 3928, 3928, 2461, 2462, 2452,
+ 2459, 3928, 2473, 2465, 2476, 2470, 2476, 2482, 2469, 0,
+ 3928, 2472, 3928, 2484, 2474, 2481, 2479, 2480, 2479, 0,
+ 2493, 3928, 3928, 2495, 2488, 0, 0, 2500, 2486, 2487,
+
+ 0, 0, 2507, 2508, 0, 0, 3928, 2570, 2587, 2604,
+ 2621, 2638, 2655, 2672, 2689, 2706, 2723, 2740, 2757, 2774,
+ 2791, 2808, 2825, 2842, 2859, 2876, 2886, 2895, 2911, 2928,
+ 2939, 2955, 2972, 2989, 3006, 3016, 3032, 3049, 3066, 3080,
+ 3090, 3106, 3123, 3140, 3157, 3168, 2555, 3180, 3197, 3207,
+ 3223, 3230, 3236, 3252, 3269, 3279, 3295, 3312, 3329, 2538,
+ 3339, 3356, 3373, 3390, 3407, 3424, 3441, 3458, 3475, 3485,
+ 3501, 3515, 3525, 3541, 3558, 3575, 3592, 3603, 3615, 3632,
+ 3649, 3659, 3668, 3684, 3701, 3718, 3735, 3752, 2542, 3762,
+ 3779, 3796, 3813, 3830, 3838, 3843, 3859, 3876, 3893, 3910
+
} ;
-static yyconst flex_int16_t yy_def[1070] =
+static yyconst flex_int16_t yy_def[1201] =
{ 0,
- 972, 972, 973, 973, 974, 975, 976, 976, 972, 9,
- 977, 977, 972, 13, 978, 978, 979, 979, 980, 980,
- 981, 981, 982, 982, 972, 25, 983, 983, 984, 984,
- 985, 985, 972, 33, 972, 35, 986, 986, 987, 987,
- 972, 972, 972, 972, 972, 988, 972, 972, 972, 972,
- 989, 972, 990, 972, 972, 972, 972, 972, 972, 972,
- 972, 991, 992, 993, 972, 972, 972, 972, 972, 972,
- 994, 972, 994, 995, 996, 995, 997, 972, 998, 972,
- 998, 972, 999, 999, 999, 998, 1000, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 1001, 972, 972, 972,
-
- 972, 972, 972, 972, 972, 972, 972, 972, 992, 972,
- 972, 992, 1002, 972, 972, 972, 1003, 972, 992, 972,
- 1004, 972, 1004, 972, 1005, 972, 1006, 1006, 1006, 972,
- 972, 1007, 972, 1007, 1008, 972, 1008, 972, 1009, 972,
- 1009, 972, 1010, 1011, 1011, 972, 1011, 1011, 972, 1011,
- 1012, 1012, 1012, 972, 972, 972, 972, 1013, 972, 972,
- 972, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
- 1014, 1014, 1015, 1014, 1014, 1014, 1014, 1014, 1014, 1014,
- 1014, 1014, 972, 972, 1016, 972, 1017, 972, 972, 972,
- 972, 972, 972, 972, 988, 972, 972, 972, 972, 972,
-
- 1018, 1019, 972, 972, 972, 972, 1020, 1018, 1021, 1022,
- 972, 1023, 972, 972, 972, 972, 1024, 972, 972, 972,
- 1025, 1025, 1026, 972, 972, 1027, 972, 1028, 972, 972,
- 972, 972, 972, 972, 972, 1029, 972, 972, 1030, 972,
- 1031, 1032, 1032, 1033, 1034, 1035, 972, 1036, 972, 1037,
- 1037, 1037, 972, 1038, 972, 972, 972, 972, 972, 972,
- 972, 1039, 972, 972, 972, 1040, 972, 972, 972, 972,
- 1041, 972, 1042, 972, 1042, 972, 1043, 1043, 1043, 1044,
- 972, 1044, 1045, 972, 1045, 972, 1046, 972, 972, 1047,
- 1047, 1047, 972, 972, 1048, 1048, 1048, 972, 972, 1049,
-
- 972, 972, 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1051, 972, 972, 1052, 972, 972,
- 1053, 1054, 1055, 972, 972, 972, 972, 972, 972, 1056,
- 1053, 1057, 1058, 972, 1058, 972, 1059, 972, 1059, 972,
- 1060, 1060, 1060, 972, 1060, 1060, 972, 1061, 1062, 972,
- 972, 972, 972, 1063, 972, 1064, 1065, 1066, 1066, 972,
- 972, 380, 380, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1043, 1043, 294, 294, 1048, 1048,
-
- 972, 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 1055,
- 1055, 972, 1055, 1055, 972, 972, 972, 972, 1056, 1067,
- 1057, 972, 364, 1060, 366, 364, 1060, 366, 972, 972,
- 972, 972, 1066, 1066, 383, 972, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1043, 1043, 1048,
- 1048, 972, 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
-
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972,
- 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 972, 972, 1055, 1055, 972, 972, 972, 1067, 1067, 1067,
- 972, 463, 1060, 366, 1060, 1060, 1060, 972, 972, 1066,
- 1066, 972, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1043, 1043, 1048, 1048, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
-
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 972, 972, 972, 972, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 972, 1068, 972, 972, 1067, 972, 1067,
- 972, 1060, 1060, 1060, 972, 972, 1066, 1066, 1040, 1040,
- 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1043, 1043, 1048, 1048, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 972, 972, 972, 972, 1050, 1050, 1050, 972, 1050,
- 1050, 1050, 972, 1050, 1068, 972, 1068, 972, 972, 972,
-
- 972, 972, 1040, 1040, 1040, 1040, 1040, 1040, 1040, 1040,
- 1040, 1040, 1040, 1040, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972, 972,
- 972, 1050, 1050, 972, 972, 972, 972, 972, 972, 1050,
- 1050, 972, 972, 972, 972, 972, 1069, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 1040,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
-
- 972, 1050, 1050, 972, 972, 972, 972, 972, 972, 972,
- 1069, 972, 1069, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 1050, 972, 972, 972, 972, 972,
- 972, 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 1050, 1050, 1050, 1050, 1050,
-
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 972, 972, 972, 972, 972, 972, 972, 972, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972, 972,
- 972, 1050, 1050, 1050, 1050, 1050, 1050, 972, 972, 1050,
- 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050, 1050,
- 1050, 0, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
-
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972
+ 1107, 1107, 1108, 1108, 1109, 1110, 1111, 1111, 1112, 1112,
+ 1113, 1113, 1107, 13, 1114, 1114, 1115, 1115, 1116, 1116,
+ 1117, 1117, 1118, 1118, 1107, 25, 1119, 1119, 1120, 1120,
+ 1121, 1121, 1122, 1122, 1107, 35, 1123, 1123, 1124, 1124,
+ 1114, 1114, 1114, 1114, 1125, 1125, 1126, 1126, 1107, 1107,
+ 1107, 1107, 1107, 1127, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1128, 1128, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1129, 1130, 1131, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1132, 1133, 1132, 1134, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+
+ 1135, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1136, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1130, 1107, 1107, 1130, 1137, 1107, 1107, 1107,
+ 1138, 1107, 1130, 1107, 1139, 1107, 1139, 1107, 1140, 1107,
+ 1141, 1141, 1141, 1107, 1107, 1107, 1107, 1142, 1107, 1142,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1143, 1107, 1143, 1107,
+ 1144, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1145, 1107, 1107, 1107, 1146,
+ 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+ 1147, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
+
+ 1107, 1107, 1148, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1149, 1107, 1149, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1150, 1107, 1107, 1107, 1107, 1107, 1151, 1107, 1107,
+ 1107, 1152, 1107, 1153, 1154, 1155, 1107, 1156, 1156, 1107,
+ 1107, 1107, 1107, 1157, 1107, 1107, 1107, 1107, 1107, 1158,
+ 1158, 1159, 1107, 1107, 1160, 1107, 1107, 1107, 1161, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1162, 1107, 1107, 1107,
+ 1163, 1164, 1164, 1165, 1166, 1167, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1168, 1169, 1107, 1107, 1107, 1107,
+
+ 1107, 1107, 1107, 1170, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1171, 1107, 1172, 1107, 1172, 1107, 1173, 1173,
+ 1173, 1107, 1107, 1174, 1107, 1174, 1107, 1107, 1107, 1107,
+ 1175, 1107, 1107, 1107, 1107, 1107, 1176, 1107, 1107, 1107,
+ 1107, 1177, 1107, 1107, 1107, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1107, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1107, 1107,
+ 1107, 1107, 1107, 1180, 1107, 1107, 1107, 1107, 1181, 1107,
+ 1107, 1107, 1182, 1107, 1183, 1184, 1185, 1107, 1184, 1184,
+
+ 1186, 1107, 1186, 1107, 1187, 1107, 1187, 1107, 1107, 1188,
+ 1188, 1188, 1107, 1188, 1188, 1107, 1189, 1107, 1107, 1190,
+ 1107, 1107, 1107, 1107, 1191, 1107, 1192, 1193, 1107, 1107,
+ 1194, 1107, 1194, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1196, 1196, 1197, 1107, 1107,
+ 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, 1107, 1107, 1107, 1107,
+
+ 1107, 1182, 1198, 1183, 1185, 1185, 1107, 1185, 1185, 1184,
+ 1107, 1107, 1188, 415, 413, 413, 1188, 415, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1195, 1195, 1195, 1195, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1195, 1195, 1195, 1195, 1195, 1195, 1196, 1196, 1107, 1107,
+ 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, 1107, 1107, 1107, 1107, 1107,
+
+ 1107, 1107, 1198, 1198, 1198, 1107, 1185, 1185, 1107, 512,
+ 512, 1188, 415, 1188, 1188, 1188, 1107, 1107, 1107, 1107,
+ 1107, 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, 1107, 1107,
+ 1107, 1107, 1107, 1199, 1107, 1107, 1198, 1107, 1198, 1107,
+
+ 1188, 1188, 1188, 1107, 1107, 1107, 1107, 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, 1107, 1178, 1178, 1178, 1107, 1178,
+ 1107, 1107, 1107, 1107, 1199, 1107, 1199, 1107, 1107, 1107,
+ 1107, 1107, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
+ 1195, 1195, 1195, 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, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1107, 1107, 1107, 1107, 1107, 1107, 1178, 1178,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1200,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 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, 1107, 1107, 1107, 1107, 1107, 1107,
+
+ 1107, 1107, 1107, 1178, 1178, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1200, 1107, 1200, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1195, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1178, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1178, 1178, 1178, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1107, 1107, 1107, 1107, 1178, 1178, 1178, 1178, 1178, 1178,
+ 1178, 1107, 1107, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
+
+ 1178, 1178, 1178, 1178, 1178, 1178, 0, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107
+
} ;
-static yyconst flex_int16_t yy_nxt[3300] =
+static yyconst flex_int16_t yy_nxt[4013] =
{ 0,
- 42, 43, 44, 42, 45, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 46, 46, 42, 42, 42, 42,
- 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
- 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
- 46, 46, 46, 46, 46, 46, 42, 42, 42, 42,
- 47, 48, 42, 49, 42, 50, 42, 51, 42, 42,
- 42, 42, 42, 42, 52, 42, 42, 42, 42, 42,
- 42, 42, 42, 53, 53, 42, 42, 42, 42, 53,
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
-
- 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
- 53, 53, 53, 53, 53, 42, 42, 42, 55, 56,
- 476, 57, 58, 72, 59, 73, 42, 60, 60, 60,
- 75, 72, 60, 73, 133, 645, 134, 76, 61, 88,
- 89, 476, 90, 62, 63, 88, 89, 100, 90, 101,
- 111, 112, 199, 113, 100, 133, 101, 134, 102, 222,
- 223, 103, 103, 103, 103, 102, 274, 485, 103, 103,
- 103, 103, 958, 64, 60, 60, 65, 66, 322, 67,
- 58, 42, 59, 68, 275, 60, 60, 60, 323, 106,
- 60, 107, 108, 200, 274, 106, 69, 107, 108, 362,
-
- 363, 62, 63, 104, 70, 111, 112, 136, 113, 137,
- 104, 268, 275, 136, 109, 137, 138, 656, 192, 193,
- 109, 194, 138, 196, 197, 268, 198, 218, 218, 657,
- 219, 64, 60, 60, 79, 79, 80, 79, 81, 79,
- 79, 79, 79, 79, 79, 82, 79, 79, 79, 79,
- 79, 79, 79, 79, 79, 79, 79, 79, 83, 83,
- 79, 79, 79, 79, 83, 83, 83, 83, 83, 83,
- 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 84, 83, 83, 83, 83, 83, 83, 85,
- 79, 79, 79, 91, 92, 93, 91, 94, 91, 91,
-
- 91, 91, 91, 91, 95, 91, 95, 91, 91, 91,
- 91, 91, 91, 91, 91, 91, 96, 97, 97, 91,
- 91, 91, 91, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
- 97, 97, 97, 97, 97, 97, 97, 97, 97, 91,
- 91, 91, 115, 787, 116, 115, 184, 116, 291, 185,
- 227, 227, 227, 227, 117, 292, 244, 117, 245, 788,
- 186, 186, 186, 186, 367, 367, 118, 119, 120, 118,
- 119, 120, 121, 121, 122, 121, 123, 124, 121, 121,
- 121, 125, 121, 121, 121, 121, 121, 126, 121, 121,
-
- 121, 121, 121, 121, 121, 121, 127, 127, 121, 121,
- 121, 121, 127, 127, 127, 127, 127, 127, 127, 127,
- 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
- 128, 127, 127, 127, 127, 127, 127, 129, 130, 121,
- 131, 140, 959, 141, 142, 140, 184, 141, 142, 185,
- 257, 258, 364, 259, 264, 264, 264, 264, 362, 363,
- 186, 186, 186, 186, 319, 281, 143, 282, 320, 960,
- 143, 144, 145, 146, 144, 147, 144, 144, 144, 148,
- 144, 144, 149, 144, 144, 144, 150, 144, 144, 144,
- 144, 144, 144, 144, 144, 151, 151, 144, 144, 144,
-
- 144, 151, 151, 151, 151, 151, 151, 151, 151, 151,
- 151, 151, 151, 151, 151, 151, 151, 151, 151, 152,
- 151, 151, 151, 151, 151, 151, 153, 144, 144, 144,
- 154, 155, 156, 154, 157, 158, 154, 154, 154, 154,
- 154, 154, 154, 154, 154, 154, 154, 159, 160, 154,
- 154, 154, 161, 154, 154, 154, 154, 154, 154, 154,
- 154, 162, 163, 164, 165, 166, 167, 168, 169, 170,
- 168, 168, 171, 172, 173, 174, 175, 168, 176, 177,
- 178, 179, 180, 181, 168, 182, 154, 154, 154, 188,
- 188, 189, 189, 213, 214, 961, 215, 225, 225, 314,
-
- 216, 229, 230, 236, 231, 281, 308, 282, 232, 310,
- 225, 225, 225, 225, 309, 233, 225, 225, 284, 315,
- 285, 234, 284, 325, 285, 305, 199, 306, 311, 235,
- 354, 307, 355, 326, 962, 226, 327, 337, 337, 337,
- 337, 365, 365, 190, 190, 191, 191, 202, 226, 217,
- 226, 237, 192, 193, 226, 194, 407, 217, 196, 197,
- 358, 198, 359, 257, 258, 476, 259, 200, 213, 214,
- 203, 215, 204, 408, 204, 216, 281, 412, 282, 366,
- 204, 413, 418, 204, 205, 206, 419, 204, 207, 208,
- 482, 343, 344, 209, 345, 210, 343, 344, 291, 345,
-
- 343, 344, 281, 345, 282, 292, 346, 346, 346, 346,
- 963, 346, 346, 346, 346, 346, 346, 346, 346, 343,
- 344, 284, 345, 285, 217, 403, 229, 230, 284, 231,
- 285, 362, 363, 232, 346, 346, 346, 346, 347, 404,
- 233, 264, 264, 264, 264, 348, 234, 426, 432, 429,
- 476, 433, 435, 430, 235, 224, 224, 427, 431, 436,
- 354, 565, 355, 349, 337, 337, 337, 337, 354, 358,
- 355, 359, 358, 463, 359, 470, 470, 470, 470, 362,
- 363, 964, 217, 380, 380, 381, 380, 382, 380, 380,
- 380, 380, 380, 380, 383, 380, 380, 380, 380, 380,
-
- 380, 380, 380, 380, 380, 380, 380, 383, 383, 380,
- 380, 380, 380, 383, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 380,
- 380, 380, 385, 386, 387, 388, 476, 476, 389, 522,
- 542, 965, 543, 390, 452, 523, 543, 391, 611, 880,
- 392, 487, 393, 881, 612, 394, 397, 397, 477, 397,
- 397, 397, 397, 397, 397, 397, 397, 398, 397, 397,
- 397, 397, 397, 397, 397, 397, 397, 397, 397, 397,
- 398, 398, 397, 397, 397, 397, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 397, 397, 397, 439, 440, 476, 441, 464,
- 464, 442, 443, 476, 476, 476, 476, 444, 445, 451,
- 452, 361, 453, 446, 447, 476, 455, 344, 448, 345,
- 966, 479, 480, 476, 454, 454, 454, 454, 478, 967,
- 486, 346, 346, 346, 346, 566, 705, 465, 361, 361,
- 567, 361, 361, 361, 361, 361, 361, 361, 361, 361,
- 361, 361, 361, 361, 361, 361, 361, 361, 361, 361,
- 361, 361, 466, 466, 362, 363, 549, 361, 361, 466,
-
- 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 361, 361, 361, 467, 467, 529,
- 362, 363, 530, 531, 476, 362, 363, 362, 363, 468,
- 468, 468, 468, 455, 344, 568, 345, 468, 778, 362,
- 363, 550, 362, 363, 468, 468, 468, 468, 468, 468,
- 380, 380, 381, 380, 382, 380, 380, 380, 380, 380,
- 380, 383, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 383, 383, 380, 380, 380, 380,
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
-
- 383, 383, 383, 383, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 383, 383, 383, 380, 380, 380, 383,
- 383, 476, 383, 475, 383, 383, 383, 383, 383, 383,
- 476, 383, 383, 383, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 476, 476, 383, 383, 383, 383, 481,
- 451, 452, 968, 453, 544, 452, 476, 453, 483, 649,
- 969, 484, 570, 553, 553, 454, 454, 454, 454, 454,
- 454, 454, 454, 362, 363, 383, 383, 383, 398, 398,
- 476, 398, 398, 398, 398, 398, 398, 398, 398, 569,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 556, 556, 398, 398, 398, 398, 476, 476,
- 476, 639, 362, 363, 476, 476, 542, 476, 543, 549,
- 572, 544, 452, 476, 453, 628, 629, 970, 630, 574,
- 971, 696, 571, 697, 398, 398, 398, 552, 552, 563,
- 573, 564, 643, 644, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 552,
- 552, 552, 552, 552, 552, 552, 552, 552, 552, 554,
- 554, 554, 554, 586, 550, 476, 476, 554, 362, 363,
- 221, 362, 363, 476, 554, 554, 554, 554, 554, 554,
- 557, 557, 557, 557, 640, 587, 476, 957, 557, 641,
-
- 722, 588, 633, 633, 476, 557, 557, 557, 557, 557,
- 557, 642, 362, 363, 634, 634, 634, 634, 660, 476,
- 646, 650, 634, 476, 476, 362, 363, 361, 661, 634,
- 634, 634, 634, 634, 634, 476, 647, 648, 628, 629,
- 476, 630, 703, 476, 476, 476, 704, 476, 476, 476,
- 476, 476, 696, 844, 697, 718, 696, 476, 697, 812,
- 956, 813, 706, 708, 712, 719, 321, 321, 807, 714,
- 845, 808, 709, 707, 955, 744, 745, 710, 711, 713,
- 746, 809, 954, 747, 752, 753, 748, 770, 953, 754,
- 796, 749, 755, 952, 797, 756, 812, 798, 813, 812,
-
- 951, 813, 950, 949, 948, 947, 946, 799, 54, 54,
+ 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, 71, 71, 71, 71,
- 71, 71, 71, 71, 71, 71, 71, 71, 71, 71,
- 71, 71, 71, 71, 74, 74, 74, 74, 74, 74,
- 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
- 74, 74, 77, 77, 77, 77, 77, 77, 77, 77,
- 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
- 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
- 87, 87, 87, 87, 87, 87, 87, 87, 42, 42,
-
- 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
- 42, 42, 42, 42, 42, 42, 99, 99, 99, 99,
- 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 99, 99, 99, 105, 105, 105, 105, 105, 105,
- 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
- 105, 105, 110, 110, 110, 110, 110, 110, 110, 110,
- 110, 110, 110, 110, 110, 110, 110, 110, 110, 110,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 132, 132,
- 132, 132, 132, 132, 132, 132, 132, 132, 132, 132,
-
- 132, 132, 132, 132, 132, 132, 135, 135, 135, 135,
- 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
- 135, 135, 135, 135, 139, 139, 139, 139, 139, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
- 139, 139, 183, 183, 183, 183, 183, 183, 183, 183,
- 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
- 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
- 187, 187, 187, 187, 187, 187, 187, 187, 195, 195,
- 195, 195, 945, 944, 195, 195, 195, 201, 201, 201,
- 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 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, 62, 61,
+ 61, 61, 61, 61, 62, 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, 64, 65,
+ 292, 66, 67, 84, 68, 85, 90, 69, 70, 71,
+ 71, 90, 1028, 71, 72, 87, 84, 993, 85, 50,
+ 73, 992, 88, 71, 94, 310, 95, 102, 103, 292,
+
+ 104, 102, 103, 249, 104, 114, 991, 115, 120, 249,
+ 121, 122, 149, 120, 150, 121, 122, 116, 50, 74,
+ 75, 117, 117, 117, 117, 149, 91, 150, 92, 229,
+ 230, 91, 231, 92, 310, 94, 96, 95, 277, 125,
+ 126, 100, 127, 97, 98, 284, 99, 285, 76, 71,
+ 71, 77, 78, 990, 79, 67, 614, 68, 80, 123,
+ 69, 70, 71, 71, 123, 96, 71, 72, 125, 126,
+ 291, 127, 97, 81, 261, 262, 71, 96, 129, 202,
+ 130, 222, 203, 223, 97, 98, 118, 99, 249, 410,
+ 224, 131, 321, 989, 249, 204, 204, 204, 204, 988,
+
+ 291, 202, 74, 75, 203, 82, 96, 222, 325, 223,
+ 326, 278, 226, 97, 227, 987, 224, 204, 204, 204,
+ 204, 321, 228, 233, 234, 325, 235, 326, 132, 133,
+ 134, 76, 71, 71, 105, 106, 107, 105, 108, 105,
+ 105, 105, 105, 105, 105, 105, 109, 105, 109, 105,
+ 105, 105, 105, 105, 105, 105, 105, 105, 105, 110,
+ 105, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 111, 105, 105, 105, 105,
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+
+ 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
+ 111, 111, 111, 111, 111, 105, 105, 105, 114, 129,
+ 115, 130, 236, 152, 316, 153, 264, 264, 986, 152,
+ 116, 153, 131, 154, 117, 117, 117, 117, 158, 154,
+ 159, 160, 158, 292, 159, 160, 226, 334, 227, 985,
+ 255, 255, 236, 256, 335, 266, 228, 267, 265, 367,
+ 268, 268, 268, 268, 320, 237, 291, 237, 317, 132,
+ 133, 134, 292, 155, 402, 156, 403, 299, 300, 155,
+ 301, 156, 306, 306, 306, 306, 984, 265, 367, 161,
+ 406, 983, 407, 161, 320, 982, 291, 411, 412, 118,
+
+ 135, 135, 136, 135, 137, 138, 135, 135, 135, 139,
+ 135, 135, 135, 135, 135, 135, 135, 140, 135, 135,
+ 135, 135, 135, 135, 135, 135, 135, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 141, 142, 141, 141, 141, 141, 141,
+ 141, 143, 144, 135, 145, 135, 141, 141, 141, 141,
+ 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
+ 141, 141, 141, 142, 141, 141, 141, 141, 141, 141,
+ 143, 146, 135, 147, 163, 164, 206, 165, 207, 163,
+ 164, 166, 165, 344, 212, 212, 166, 334, 217, 352,
+
+ 167, 213, 213, 345, 335, 167, 380, 380, 380, 380,
+ 432, 218, 433, 353, 214, 214, 347, 354, 348, 359,
+ 316, 219, 349, 344, 215, 215, 220, 168, 372, 216,
+ 216, 377, 168, 345, 169, 170, 208, 171, 209, 169,
+ 170, 218, 171, 353, 214, 214, 347, 354, 348, 359,
+ 219, 349, 981, 215, 215, 220, 168, 372, 216, 216,
+ 377, 168, 942, 169, 317, 210, 941, 211, 169, 172,
+ 173, 174, 172, 175, 176, 172, 172, 172, 172, 172,
+ 172, 172, 172, 172, 172, 172, 172, 172, 177, 178,
+ 172, 172, 172, 179, 172, 172, 180, 181, 182, 183,
+
+ 184, 185, 186, 187, 188, 186, 186, 189, 190, 191,
+ 192, 193, 186, 194, 195, 196, 197, 198, 199, 186,
+ 200, 172, 172, 172, 172, 172, 180, 181, 182, 183,
+ 184, 185, 186, 187, 188, 186, 186, 189, 190, 191,
+ 192, 193, 194, 195, 196, 197, 198, 199, 186, 200,
+ 172, 172, 172, 206, 217, 207, 250, 251, 360, 252,
+ 264, 264, 390, 253, 355, 270, 271, 218, 272, 264,
+ 264, 325, 273, 326, 361, 264, 264, 219, 350, 357,
+ 365, 274, 220, 416, 416, 356, 351, 275, 360, 453,
+ 366, 390, 265, 371, 355, 373, 374, 218, 325, 358,
+
+ 326, 265, 940, 208, 361, 209, 219, 265, 350, 357,
+ 365, 220, 375, 362, 356, 376, 351, 363, 453, 276,
+ 366, 265, 388, 371, 939, 373, 374, 391, 358, 392,
+ 265, 236, 210, 394, 211, 238, 265, 254, 229, 230,
+ 368, 231, 375, 362, 938, 376, 254, 363, 233, 234,
+ 369, 235, 388, 370, 239, 250, 251, 391, 252, 392,
+ 409, 236, 253, 394, 426, 402, 413, 403, 240, 241,
+ 368, 604, 242, 243, 237, 429, 237, 244, 454, 245,
+ 369, 245, 370, 937, 239, 414, 414, 936, 430, 446,
+ 409, 935, 397, 398, 426, 399, 411, 412, 240, 241,
+
+ 447, 242, 243, 449, 450, 429, 244, 454, 246, 400,
+ 400, 400, 400, 270, 271, 455, 272, 415, 430, 446,
+ 273, 299, 300, 451, 301, 306, 306, 306, 306, 274,
+ 447, 457, 456, 449, 450, 275, 254, 452, 934, 459,
+ 460, 933, 462, 463, 461, 455, 415, 464, 465, 466,
+ 467, 605, 469, 451, 468, 470, 701, 471, 472, 473,
+ 457, 456, 474, 477, 411, 412, 452, 276, 459, 932,
+ 460, 462, 463, 402, 461, 403, 464, 931, 465, 466,
+ 467, 469, 406, 468, 407, 470, 471, 472, 473, 410,
+ 483, 474, 486, 477, 254, 434, 435, 436, 437, 438,
+
+ 438, 439, 438, 438, 438, 438, 440, 438, 438, 438,
+ 441, 438, 438, 442, 438, 443, 438, 438, 444, 438,
+ 483, 486, 498, 445, 930, 434, 435, 436, 437, 438,
+ 438, 439, 438, 438, 438, 438, 440, 438, 438, 438,
+ 441, 438, 442, 438, 443, 438, 438, 444, 438, 475,
+ 481, 478, 498, 482, 484, 479, 929, 487, 499, 476,
+ 480, 485, 380, 380, 380, 380, 500, 263, 263, 501,
+ 503, 406, 511, 407, 432, 512, 433, 521, 522, 475,
+ 481, 478, 928, 482, 484, 479, 487, 499, 476, 525,
+ 480, 485, 488, 523, 489, 500, 524, 490, 491, 501,
+
+ 503, 927, 511, 492, 493, 411, 412, 521, 522, 494,
+ 495, 530, 506, 507, 496, 508, 513, 513, 525, 517,
+ 517, 497, 488, 523, 489, 525, 524, 490, 491, 509,
+ 509, 509, 509, 492, 493, 432, 528, 433, 494, 495,
+ 530, 510, 398, 496, 399, 534, 547, 606, 514, 607,
+ 548, 926, 410, 411, 412, 507, 925, 607, 400, 400,
+ 400, 400, 520, 520, 520, 520, 528, 510, 398, 924,
+ 399, 697, 698, 923, 699, 534, 547, 514, 410, 410,
+ 548, 410, 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
+
+ 410, 410, 410, 410, 410, 515, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
+ 411, 412, 922, 516, 410, 515, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 515,
+ 515, 515, 515, 515, 515, 515, 515, 515, 515, 410,
+ 410, 410, 518, 518, 518, 518, 525, 525, 525, 525,
+ 525, 518, 518, 518, 518, 518, 518, 525, 525, 549,
+ 550, 529, 526, 527, 551, 536, 552, 553, 531, 554,
+ 555, 921, 532, 556, 920, 533, 411, 412, 535, 915,
+
+ 557, 518, 518, 518, 518, 518, 518, 914, 549, 550,
+ 559, 529, 526, 527, 551, 536, 552, 553, 531, 554,
+ 555, 532, 561, 556, 533, 558, 560, 862, 535, 1107,
+ 557, 562, 563, 564, 537, 538, 539, 540, 566, 559,
+ 541, 861, 565, 568, 569, 542, 570, 571, 572, 543,
+ 573, 561, 544, 860, 545, 558, 560, 546, 574, 575,
+ 562, 576, 563, 564, 537, 538, 539, 540, 566, 577,
+ 541, 565, 578, 568, 569, 542, 570, 571, 572, 543,
+ 573, 544, 579, 545, 580, 582, 546, 583, 574, 575,
+ 581, 576, 584, 585, 586, 587, 588, 604, 589, 577,
+
+ 590, 591, 578, 592, 593, 594, 859, 595, 599, 600,
+ 411, 412, 579, 601, 580, 582, 583, 602, 858, 609,
+ 581, 584, 617, 585, 586, 587, 588, 589, 618, 619,
+ 590, 591, 620, 592, 593, 594, 595, 596, 599, 600,
+ 597, 598, 606, 601, 607, 506, 507, 602, 508, 609,
+ 608, 507, 617, 508, 608, 507, 857, 508, 618, 619,
+ 856, 620, 509, 509, 509, 509, 776, 596, 777, 597,
+ 598, 509, 509, 509, 509, 410, 410, 605, 410, 410,
+ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 410, 410, 410, 410,
+
+ 410, 410, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 411, 412, 855,
+ 611, 410, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
+ 610, 610, 610, 610, 610, 610, 410, 410, 410, 612,
+ 612, 525, 525, 525, 854, 615, 615, 525, 525, 776,
+ 525, 777, 624, 627, 525, 525, 525, 411, 412, 260,
+ 622, 626, 623, 525, 853, 625, 525, 629, 633, 852,
+ 628, 631, 634, 411, 412, 613, 613, 613, 613, 411,
+
+ 412, 630, 624, 627, 613, 613, 613, 613, 613, 613,
+ 622, 626, 623, 525, 625, 525, 525, 629, 633, 628,
+ 851, 631, 634, 849, 525, 645, 525, 525, 637, 525,
+ 646, 630, 635, 632, 613, 613, 613, 613, 613, 613,
+ 616, 616, 616, 616, 636, 525, 638, 642, 639, 616,
+ 616, 616, 616, 616, 616, 645, 525, 525, 637, 646,
+ 647, 652, 635, 632, 648, 644, 846, 640, 650, 651,
+ 641, 653, 829, 657, 636, 638, 643, 642, 639, 616,
+ 616, 616, 616, 616, 616, 654, 658, 659, 660, 663,
+ 647, 652, 661, 648, 662, 644, 640, 650, 651, 641,
+
+ 665, 653, 655, 657, 666, 670, 643, 668, 656, 818,
+ 669, 671, 672, 673, 674, 658, 675, 659, 660, 663,
+ 676, 661, 677, 662, 678, 679, 680, 681, 682, 665,
+ 683, 684, 655, 685, 666, 670, 668, 686, 656, 669,
+ 671, 687, 672, 673, 674, 675, 688, 691, 689, 692,
+ 676, 677, 693, 678, 690, 679, 680, 681, 682, 683,
+ 694, 684, 685, 695, 807, 696, 704, 686, 702, 702,
+ 687, 411, 412, 525, 525, 525, 688, 691, 689, 692,
+ 706, 707, 693, 690, 525, 782, 525, 525, 525, 694,
+ 525, 716, 710, 695, 696, 714, 704, 711, 708, 709,
+
+ 781, 712, 411, 412, 703, 703, 703, 703, 525, 706,
+ 713, 707, 525, 703, 703, 703, 703, 703, 703, 719,
+ 525, 716, 710, 525, 780, 714, 711, 708, 525, 709,
+ 715, 712, 718, 525, 525, 717, 525, 525, 728, 722,
+ 713, 525, 732, 703, 703, 703, 703, 703, 703, 719,
+ 525, 720, 724, 721, 525, 725, 525, 525, 733, 525,
+ 715, 723, 718, 726, 729, 717, 734, 727, 728, 722,
+ 731, 732, 735, 737, 698, 741, 730, 739, 742, 743,
+ 746, 720, 724, 721, 736, 725, 745, 740, 733, 747,
+ 723, 748, 726, 750, 729, 734, 751, 727, 752, 757,
+
+ 731, 754, 735, 737, 741, 755, 730, 739, 742, 743,
+ 746, 756, 758, 759, 736, 745, 740, 760, 762, 747,
+ 761, 748, 763, 750, 764, 751, 766, 767, 752, 757,
+ 754, 768, 770, 771, 755, 772, 773, 774, 693, 778,
+ 756, 758, 759, 779, 411, 412, 410, 760, 762, 761,
+ 525, 763, 697, 698, 764, 699, 766, 767, 411, 412,
+ 525, 768, 770, 771, 772, 785, 773, 774, 693, 778,
+ 411, 412, 525, 779, 525, 525, 525, 783, 525, 784,
+ 525, 525, 525, 525, 525, 525, 525, 525, 786, 525,
+ 788, 792, 525, 525, 769, 785, 794, 525, 789, 787,
+
+ 799, 796, 808, 525, 790, 791, 793, 783, 798, 784,
+ 795, 797, 800, 525, 806, 802, 525, 525, 786, 809,
+ 788, 792, 801, 803, 804, 812, 794, 789, 787, 525,
+ 799, 796, 808, 790, 791, 793, 810, 798, 805, 795,
+ 813, 797, 800, 814, 806, 802, 811, 819, 809, 815,
+ 816, 817, 801, 803, 804, 812, 820, 821, 822, 823,
+ 824, 765, 825, 826, 827, 830, 810, 828, 805, 831,
+ 813, 832, 753, 814, 839, 749, 811, 819, 815, 816,
+ 817, 840, 847, 525, 744, 848, 820, 821, 822, 823,
+ 824, 825, 850, 826, 827, 830, 828, 833, 834, 831,
+
+ 832, 776, 835, 777, 839, 836, 525, 863, 837, 841,
+ 842, 840, 847, 838, 843, 848, 525, 844, 525, 525,
+ 845, 850, 525, 864, 865, 525, 525, 833, 834, 525,
+ 876, 866, 835, 525, 867, 836, 863, 869, 837, 841,
+ 842, 525, 838, 525, 843, 525, 868, 844, 870, 877,
+ 845, 874, 873, 864, 865, 878, 738, 871, 875, 880,
+ 876, 866, 879, 881, 867, 872, 882, 869, 883, 884,
+ 885, 705, 886, 887, 889, 868, 888, 870, 890, 877,
+ 874, 891, 873, 892, 895, 878, 871, 896, 875, 880,
+ 893, 879, 881, 897, 872, 898, 882, 883, 884, 899,
+
+ 885, 886, 900, 887, 889, 888, 894, 902, 890, 903,
+ 904, 891, 901, 892, 895, 905, 896, 906, 410, 907,
+ 893, 908, 525, 897, 909, 898, 912, 910, 944, 899,
+ 913, 916, 900, 945, 947, 894, 902, 911, 946, 903,
+ 904, 901, 918, 948, 919, 905, 943, 906, 907, 949,
+ 951, 908, 950, 952, 909, 912, 953, 910, 944, 913,
+ 916, 954, 956, 945, 947, 955, 911, 946, 957, 700,
+ 958, 959, 960, 948, 961, 943, 962, 963, 964, 949,
+ 951, 950, 965, 952, 966, 969, 953, 967, 968, 970,
+ 972, 954, 956, 971, 955, 973, 974, 667, 957, 958,
+
+ 975, 959, 960, 976, 961, 962, 977, 963, 964, 980,
+ 978, 918, 965, 919, 966, 969, 967, 968, 994, 970,
+ 972, 918, 971, 919, 995, 973, 974, 979, 996, 975,
+ 997, 998, 976, 999, 1000, 977, 1001, 1002, 980, 1003,
+ 978, 1004, 1005, 664, 1006, 1007, 1008, 994, 1009, 1010,
+ 1011, 1012, 1013, 1014, 995, 1015, 979, 1016, 996, 1017,
+ 997, 998, 1018, 999, 1000, 1019, 1001, 1002, 1003, 1020,
+ 1004, 1021, 1005, 1006, 1022, 1007, 1008, 1009, 1010, 1011,
+ 1023, 1012, 1013, 1014, 1026, 1015, 1016, 1027, 1017, 1024,
+ 1029, 1018, 1031, 1025, 1030, 1019, 1032, 649, 1033, 1020,
+
+ 1034, 1021, 1035, 1036, 1022, 1037, 621, 1038, 1039, 1023,
+ 1040, 1041, 1042, 1026, 1043, 1044, 1045, 1027, 1024, 1046,
+ 1029, 1031, 1025, 1047, 1030, 1048, 1032, 1033, 1049, 1034,
+ 1050, 1035, 1051, 1036, 1052, 1037, 1038, 1039, 1053, 1054,
+ 1040, 1041, 1042, 1055, 1043, 1044, 1045, 1056, 1057, 1046,
+ 1058, 1059, 1060, 1047, 1061, 1048, 1062, 1049, 1063, 1064,
+ 1050, 1065, 1051, 1052, 1066, 1067, 1069, 1053, 1054, 1068,
+ 1070, 1071, 1055, 1072, 1073, 1074, 1056, 1057, 1075, 1076,
+ 1058, 1059, 1060, 1077, 1061, 1078, 1062, 1063, 1079, 1064,
+ 1080, 1065, 1081, 1082, 1066, 1067, 1069, 1083, 1068, 1084,
+
+ 1070, 1071, 1085, 1072, 1073, 1074, 1086, 1087, 1075, 1076,
+ 1088, 1089, 1077, 1090, 1078, 1091, 1092, 1093, 1079, 1080,
+ 1094, 1095, 1081, 1082, 1096, 1097, 1083, 1098, 1099, 1084,
+ 1100, 1102, 1085, 1101, 1103, 1104, 1086, 1087, 1105, 1106,
+ 1088, 1089, 410, 1090, 1091, 1092, 417, 1093, 417, 1094,
+ 519, 1095, 519, 1096, 1097, 567, 1098, 525, 1099, 421,
+ 1100, 1102, 1101, 1103, 1104, 364, 364, 398, 1105, 1106,
+ 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 63, 83, 83, 83,
+ 83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 201, 201, 201, 201, 212, 212, 212, 212, 943, 942,
- 212, 212, 212, 221, 941, 221, 221, 221, 221, 221,
- 221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
- 221, 224, 940, 224, 224, 224, 224, 224, 224, 224,
- 224, 224, 224, 224, 224, 224, 224, 224, 224, 228,
- 228, 228, 939, 938, 228, 228, 228, 239, 937, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
- 239, 239, 239, 239, 239, 241, 936, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 242, 935, 242, 242, 242, 242, 242,
-
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 248,
- 934, 248, 248, 248, 933, 248, 248, 248, 932, 931,
- 248, 248, 930, 929, 928, 248, 248, 250, 250, 250,
- 250, 927, 926, 250, 250, 250, 254, 925, 924, 254,
- 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
- 254, 254, 254, 254, 262, 262, 262, 262, 923, 922,
- 262, 262, 262, 267, 921, 267, 267, 267, 267, 267,
- 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
-
- 267, 270, 920, 270, 270, 270, 270, 270, 270, 270,
- 270, 270, 270, 919, 270, 270, 270, 270, 270, 271,
- 918, 271, 917, 916, 271, 271, 271, 271, 915, 914,
- 271, 271, 273, 913, 273, 273, 273, 273, 273, 273,
- 273, 273, 273, 273, 273, 273, 273, 273, 273, 273,
- 277, 277, 277, 277, 912, 911, 277, 277, 277, 280,
- 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
- 280, 280, 280, 280, 280, 280, 280, 283, 283, 283,
- 283, 283, 910, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 283, 283, 283, 287, 909, 287, 908, 287,
-
- 287, 287, 287, 287, 287, 287, 907, 287, 287, 287,
- 287, 287, 287, 289, 906, 289, 289, 289, 289, 289,
- 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
- 289, 290, 905, 290, 290, 290, 904, 290, 290, 290,
- 903, 902, 290, 290, 901, 900, 899, 290, 290, 295,
- 295, 295, 295, 898, 897, 295, 295, 295, 300, 896,
- 300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 300, 304, 304, 895, 304,
- 304, 894, 893, 892, 304, 304, 335, 891, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
-
- 335, 335, 335, 335, 338, 890, 889, 338, 338, 338,
- 338, 338, 338, 338, 338, 338, 338, 338, 338, 338,
- 341, 888, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 341, 342, 887,
- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 342, 350, 350, 886, 885,
- 350, 350, 350, 352, 352, 884, 883, 352, 352, 352,
- 353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
- 353, 353, 353, 353, 353, 353, 353, 353, 212, 212,
- 212, 212, 882, 879, 212, 212, 212, 357, 357, 357,
-
- 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
- 357, 357, 357, 357, 357, 361, 878, 361, 361, 361,
- 361, 361, 361, 361, 361, 361, 361, 877, 361, 361,
- 361, 361, 361, 221, 876, 221, 221, 221, 221, 221,
+ 83, 83, 83, 83, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 89, 89, 89, 89, 89, 89, 89, 89, 89,
+ 89, 89, 89, 89, 89, 89, 89, 89, 93, 93,
+ 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
+ 93, 93, 93, 93, 93, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 50, 50, 50, 50, 50, 50, 50, 50,
+ 50, 50, 50, 50, 50, 50, 50, 50, 50, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+
+ 113, 113, 113, 113, 113, 113, 119, 119, 119, 119,
+ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119,
+ 119, 119, 119, 124, 124, 124, 124, 124, 124, 124,
+ 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
+ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+ 128, 128, 128, 128, 128, 128, 128, 148, 148, 148,
+ 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
+ 148, 148, 148, 148, 151, 151, 151, 151, 151, 151,
+ 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
+ 151, 157, 157, 157, 157, 157, 157, 157, 157, 157,
+
+ 157, 157, 157, 157, 157, 157, 157, 157, 162, 162,
+ 162, 162, 162, 162, 162, 162, 162, 162, 162, 162,
+ 162, 162, 162, 162, 162, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 205, 205, 205, 205, 205, 205, 205, 205,
+ 205, 205, 205, 205, 205, 205, 205, 205, 205, 221,
221, 221, 221, 221, 221, 221, 221, 221, 221, 221,
- 221, 368, 368, 875, 874, 873, 872, 368, 369, 369,
- 369, 369, 871, 870, 369, 369, 369, 869, 369, 374,
- 868, 374, 374, 374, 374, 374, 374, 374, 374, 374,
- 374, 374, 374, 374, 374, 374, 374, 239, 867, 239,
- 239, 239, 239, 239, 239, 239, 239, 239, 239, 239,
-
- 239, 239, 239, 239, 239, 241, 866, 241, 241, 241,
- 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
- 241, 241, 241, 242, 865, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 376, 864, 376, 376, 376, 376, 376, 376, 376,
- 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
- 863, 377, 377, 377, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 377, 377, 377, 377, 246, 246, 246,
- 246, 246, 246, 246, 246, 246, 246, 246, 246, 246,
- 246, 246, 246, 246, 246, 248, 862, 248, 248, 248,
-
- 861, 248, 248, 248, 860, 859, 248, 248, 858, 857,
- 856, 248, 248, 250, 250, 250, 250, 855, 854, 250,
- 250, 250, 254, 853, 852, 254, 254, 254, 254, 254,
- 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
- 262, 262, 262, 262, 851, 850, 262, 262, 262, 384,
- 384, 849, 848, 847, 384, 384, 271, 846, 271, 843,
- 842, 271, 271, 271, 271, 841, 840, 271, 271, 273,
- 839, 273, 273, 273, 273, 273, 273, 273, 273, 273,
- 273, 273, 273, 273, 273, 273, 273, 277, 277, 277,
- 277, 838, 837, 277, 277, 277, 280, 280, 280, 280,
-
- 280, 280, 280, 280, 280, 280, 280, 280, 280, 280,
- 280, 280, 280, 280, 283, 283, 283, 283, 283, 836,
- 283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
- 283, 283, 287, 835, 287, 834, 287, 287, 287, 287,
- 287, 287, 287, 833, 287, 287, 287, 287, 287, 287,
- 290, 832, 290, 290, 290, 831, 290, 290, 290, 830,
- 829, 290, 290, 828, 827, 826, 290, 290, 295, 295,
- 295, 295, 825, 824, 295, 295, 295, 300, 823, 300,
- 300, 300, 300, 300, 300, 300, 300, 300, 300, 300,
- 300, 300, 300, 300, 300, 304, 304, 822, 304, 304,
-
- 821, 820, 819, 304, 304, 335, 818, 335, 335, 335,
- 335, 335, 335, 335, 335, 335, 335, 335, 335, 335,
- 335, 335, 335, 338, 817, 816, 338, 338, 338, 338,
- 338, 338, 338, 338, 338, 338, 338, 338, 338, 341,
- 815, 341, 341, 341, 341, 341, 341, 341, 341, 341,
- 341, 341, 341, 341, 341, 341, 341, 342, 814, 342,
+ 221, 221, 221, 221, 221, 221, 225, 225, 225, 225,
+ 225, 225, 225, 225, 225, 225, 225, 225, 225, 225,
+ 225, 225, 225, 232, 232, 379, 232, 232, 458, 343,
+
+ 340, 232, 248, 248, 337, 248, 248, 302, 300, 302,
+ 248, 260, 297, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 260, 260, 263, 287,
+ 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
+ 263, 263, 263, 263, 263, 269, 269, 269, 283, 269,
+ 269, 424, 423, 422, 269, 281, 271, 281, 281, 281,
+ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
+ 281, 281, 282, 421, 282, 282, 282, 282, 282, 282,
+ 282, 282, 282, 282, 282, 282, 282, 282, 282, 286,
+ 286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+
+ 286, 419, 286, 418, 286, 286, 296, 408, 255, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 304, 304, 404, 304, 304, 251, 234,
+ 230, 304, 309, 387, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 312,
+ 386, 312, 312, 312, 312, 312, 312, 312, 312, 312,
+ 312, 312, 312, 385, 312, 312, 313, 383, 313, 382,
+ 381, 313, 313, 313, 313, 313, 379, 343, 341, 313,
+ 315, 340, 315, 315, 315, 315, 315, 315, 315, 315,
+ 315, 315, 315, 315, 315, 315, 315, 319, 319, 339,
+
+ 319, 319, 338, 318, 337, 319, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 331, 336, 331, 332, 331, 331, 331,
+ 331, 331, 331, 331, 331, 331, 330, 331, 331, 331,
+ 333, 329, 333, 333, 333, 333, 333, 333, 333, 333,
+ 333, 333, 333, 333, 333, 333, 333, 342, 328, 342,
342, 342, 342, 342, 342, 342, 342, 342, 342, 342,
- 342, 342, 342, 342, 342, 450, 450, 450, 450, 450,
- 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
- 450, 450, 450, 459, 459, 459, 459, 810, 806, 459,
-
- 459, 459, 461, 461, 461, 461, 805, 804, 461, 461,
- 461, 353, 353, 353, 353, 353, 353, 353, 353, 353,
- 353, 353, 353, 353, 353, 353, 353, 353, 353, 357,
- 357, 357, 357, 357, 357, 357, 357, 357, 357, 357,
- 357, 357, 357, 357, 357, 357, 357, 361, 803, 361,
- 361, 361, 361, 361, 361, 361, 361, 361, 361, 802,
- 361, 361, 361, 361, 361, 469, 469, 801, 800, 795,
- 794, 469, 369, 369, 369, 369, 793, 792, 369, 369,
- 369, 791, 369, 374, 790, 374, 374, 374, 374, 374,
- 374, 374, 374, 374, 374, 374, 374, 374, 374, 374,
-
- 374, 376, 789, 376, 376, 376, 376, 376, 376, 376,
- 376, 376, 376, 376, 376, 376, 376, 376, 376, 377,
- 786, 377, 377, 377, 377, 377, 377, 377, 377, 377,
- 377, 377, 377, 377, 377, 377, 377, 250, 250, 250,
- 250, 785, 784, 250, 250, 250, 548, 783, 548, 548,
- 548, 548, 548, 548, 548, 548, 548, 548, 548, 548,
- 548, 548, 548, 548, 695, 695, 695, 695, 695, 695,
- 695, 695, 695, 695, 695, 695, 695, 695, 695, 695,
- 695, 695, 811, 811, 811, 811, 811, 811, 811, 811,
- 811, 811, 811, 811, 811, 811, 811, 811, 811, 811,
-
- 782, 781, 780, 779, 778, 777, 776, 775, 774, 773,
- 772, 771, 769, 768, 767, 766, 765, 764, 763, 762,
- 761, 760, 759, 758, 757, 751, 750, 743, 742, 741,
- 740, 739, 738, 737, 736, 735, 734, 733, 732, 731,
- 730, 729, 728, 727, 726, 725, 724, 723, 722, 721,
- 720, 717, 716, 715, 702, 701, 700, 629, 699, 698,
- 624, 694, 693, 692, 691, 690, 689, 688, 687, 686,
- 685, 684, 683, 682, 681, 680, 679, 678, 677, 676,
- 675, 674, 673, 672, 671, 670, 669, 668, 667, 666,
- 665, 664, 663, 662, 659, 658, 655, 654, 653, 652,
-
- 651, 638, 637, 636, 635, 632, 631, 627, 626, 625,
- 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
- 614, 613, 610, 609, 608, 607, 606, 605, 604, 603,
- 602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
- 592, 591, 590, 589, 585, 584, 583, 582, 581, 580,
- 579, 578, 577, 576, 575, 562, 561, 560, 559, 558,
- 555, 551, 547, 546, 545, 541, 540, 539, 538, 537,
- 536, 535, 534, 533, 532, 528, 527, 526, 525, 524,
- 521, 520, 519, 518, 517, 516, 515, 514, 513, 512,
- 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
-
- 501, 500, 499, 498, 497, 496, 495, 494, 493, 492,
- 491, 490, 489, 488, 476, 474, 473, 472, 471, 370,
- 462, 460, 458, 457, 456, 344, 449, 336, 438, 437,
- 434, 428, 425, 424, 423, 422, 421, 420, 417, 416,
- 415, 414, 411, 410, 409, 406, 405, 402, 401, 301,
- 298, 400, 399, 294, 396, 395, 260, 258, 260, 255,
- 379, 378, 247, 243, 375, 373, 372, 371, 230, 370,
- 360, 218, 356, 214, 351, 340, 197, 193, 339, 336,
- 334, 333, 332, 331, 330, 329, 328, 324, 318, 317,
- 316, 313, 312, 303, 302, 301, 299, 298, 297, 296,
-
- 276, 294, 293, 288, 286, 279, 278, 276, 272, 266,
- 269, 266, 265, 263, 261, 258, 260, 256, 255, 253,
- 252, 251, 249, 247, 243, 240, 238, 230, 220, 214,
- 211, 197, 193, 972, 98, 98, 86, 78, 78, 41,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972
-
+ 342, 342, 342, 342, 346, 346, 327, 323, 346, 346,
+ 378, 322, 378, 378, 378, 378, 378, 378, 378, 378,
+ 378, 378, 378, 378, 378, 378, 378, 384, 318, 384,
+
+ 384, 384, 314, 384, 384, 384, 384, 384, 384, 384,
+ 384, 384, 384, 384, 232, 232, 308, 232, 232, 311,
+ 308, 307, 232, 389, 305, 389, 389, 389, 389, 389,
+ 389, 389, 389, 389, 389, 389, 389, 389, 389, 389,
+ 393, 393, 303, 300, 302, 393, 395, 395, 298, 297,
+ 295, 395, 396, 396, 396, 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, 401, 401, 248, 248, 294, 248,
+ 248, 293, 290, 289, 248, 405, 405, 405, 405, 405,
+
+ 405, 405, 405, 405, 405, 405, 405, 405, 405, 405,
+ 405, 405, 410, 288, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 287, 410, 410, 260,
+ 283, 260, 260, 260, 260, 260, 260, 260, 260, 260,
+ 260, 260, 260, 260, 260, 260, 420, 420, 280, 420,
+ 420, 279, 271, 259, 420, 420, 425, 258, 425, 425,
+ 425, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+ 425, 425, 425, 281, 257, 281, 281, 281, 281, 281,
+ 281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
+ 282, 251, 282, 282, 282, 282, 282, 282, 282, 282,
+
+ 282, 282, 282, 282, 282, 282, 282, 427, 247, 427,
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 427, 428, 234, 428, 428, 428, 428,
+ 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
+ 428, 286, 286, 286, 286, 286, 286, 286, 286, 286,
+ 286, 286, 286, 230, 286, 1107, 286, 286, 431, 431,
+ 431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
+ 431, 431, 431, 431, 431, 296, 112, 112, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 304, 304, 1107, 304, 304, 1107, 1107, 1107,
+
+ 304, 313, 1107, 313, 1107, 1107, 313, 313, 313, 313,
+ 313, 1107, 1107, 1107, 313, 315, 1107, 315, 315, 315,
+ 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
+ 315, 315, 319, 319, 1107, 319, 319, 1107, 1107, 1107,
+ 319, 324, 324, 324, 324, 324, 324, 324, 324, 324,
+ 324, 324, 324, 324, 324, 324, 324, 324, 331, 1107,
+ 331, 1107, 331, 331, 331, 331, 331, 331, 331, 331,
+ 331, 1107, 331, 331, 331, 448, 1107, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 448, 342, 1107, 342, 342, 342, 342, 342, 342,
+
+ 342, 342, 342, 342, 342, 342, 342, 342, 342, 346,
+ 346, 1107, 1107, 346, 346, 378, 1107, 378, 378, 378,
+ 378, 378, 378, 378, 378, 378, 378, 378, 378, 378,
+ 378, 378, 384, 1107, 384, 384, 384, 1107, 384, 384,
+ 384, 384, 384, 384, 384, 384, 384, 384, 384, 389,
+ 1107, 389, 389, 389, 389, 389, 389, 389, 389, 389,
+ 389, 389, 389, 389, 389, 389, 502, 502, 1107, 502,
+ 502, 1107, 1107, 1107, 502, 504, 504, 1107, 504, 504,
+ 1107, 1107, 1107, 504, 396, 1107, 396, 396, 396, 396,
+ 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
+
+ 396, 505, 505, 505, 505, 505, 505, 505, 505, 505,
+ 505, 505, 505, 505, 505, 505, 505, 505, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 405, 405, 405, 405, 405,
+ 405, 405, 405, 405, 405, 405, 405, 405, 405, 405,
+ 405, 405, 410, 1107, 410, 410, 410, 410, 410, 410,
+ 410, 410, 410, 410, 410, 410, 1107, 410, 410, 420,
+ 420, 1107, 420, 420, 1107, 1107, 1107, 420, 420, 425,
+ 1107, 425, 425, 425, 425, 425, 425, 425, 425, 425,
+ 425, 425, 425, 425, 425, 425, 427, 1107, 427, 427,
+
+ 427, 427, 427, 427, 427, 427, 427, 427, 427, 427,
+ 427, 427, 427, 428, 1107, 428, 428, 428, 428, 428,
+ 428, 428, 428, 428, 428, 428, 428, 428, 428, 428,
+ 431, 431, 431, 431, 431, 431, 431, 431, 431, 431,
+ 431, 431, 431, 431, 431, 431, 431, 438, 438, 438,
+ 319, 319, 1107, 319, 319, 1107, 1107, 1107, 319, 448,
+ 1107, 448, 448, 448, 448, 448, 448, 448, 448, 448,
+ 448, 448, 448, 448, 448, 448, 603, 1107, 603, 603,
+ 603, 603, 603, 603, 603, 603, 603, 603, 603, 603,
+ 603, 603, 603, 775, 775, 775, 775, 775, 775, 775,
+
+ 775, 775, 775, 775, 775, 775, 775, 775, 775, 775,
+ 917, 917, 917, 917, 917, 917, 917, 917, 917, 917,
+ 917, 917, 917, 917, 917, 917, 917, 49, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107
} ;
-static yyconst flex_int16_t yy_chk[3300] =
+static yyconst flex_int16_t yy_chk[4013] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 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, 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,
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,
- 569, 3, 3, 5, 3, 5, 21, 3, 3, 3,
- 6, 6, 3, 6, 27, 569, 27, 6, 3, 11,
- 11, 392, 11, 3, 3, 12, 12, 17, 12, 17,
- 21, 21, 50, 21, 18, 28, 18, 28, 17, 62,
- 62, 17, 17, 17, 17, 18, 125, 392, 18, 18,
- 18, 18, 949, 3, 3, 3, 4, 4, 173, 4,
- 4, 22, 4, 4, 125, 4, 4, 4, 173, 19,
- 4, 19, 19, 50, 273, 20, 4, 20, 20, 221,
-
- 221, 4, 4, 17, 4, 22, 22, 29, 22, 29,
- 18, 113, 273, 30, 19, 30, 29, 581, 43, 43,
- 20, 43, 30, 47, 47, 113, 47, 59, 59, 581,
- 59, 4, 4, 4, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
- 9, 9, 9, 13, 13, 13, 13, 13, 13, 13,
-
+ 97, 3, 3, 5, 3, 5, 7, 3, 3, 3,
+ 3, 8, 993, 3, 3, 6, 6, 943, 6, 21,
+ 3, 942, 6, 3, 9, 127, 9, 11, 11, 97,
+
+ 11, 12, 12, 62, 12, 17, 941, 17, 19, 62,
+ 19, 19, 27, 20, 27, 20, 20, 17, 22, 3,
+ 3, 17, 17, 17, 17, 28, 7, 28, 7, 51,
+ 51, 8, 51, 8, 127, 10, 9, 10, 80, 21,
+ 21, 10, 21, 9, 9, 88, 9, 88, 3, 3,
+ 3, 4, 4, 940, 4, 4, 515, 4, 4, 19,
+ 4, 4, 4, 4, 20, 9, 4, 4, 22, 22,
+ 96, 22, 9, 4, 74, 74, 4, 10, 23, 37,
+ 23, 45, 37, 45, 10, 10, 17, 10, 249, 515,
+ 45, 23, 143, 939, 249, 37, 37, 37, 37, 938,
+
+ 96, 38, 4, 4, 38, 4, 10, 46, 148, 46,
+ 148, 80, 47, 10, 47, 937, 46, 38, 38, 38,
+ 38, 143, 47, 55, 55, 150, 55, 150, 23, 23,
+ 23, 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,
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, 23, 736, 23, 24, 37, 24, 145, 37,
- 64, 64, 64, 64, 23, 145, 76, 24, 76, 736,
- 37, 37, 37, 37, 225, 225, 23, 23, 23, 24,
- 24, 24, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 18, 24,
+ 18, 24, 58, 29, 139, 29, 75, 75, 936, 30,
+ 18, 30, 24, 29, 18, 18, 18, 18, 31, 30,
+ 31, 31, 32, 169, 32, 32, 48, 163, 48, 935,
+ 68, 68, 58, 68, 163, 76, 48, 76, 75, 192,
+ 76, 76, 76, 76, 142, 58, 168, 58, 139, 24,
+ 24, 24, 169, 29, 246, 29, 246, 106, 106, 30,
+ 106, 30, 117, 117, 117, 117, 934, 75, 192, 31,
+ 254, 933, 254, 32, 142, 932, 168, 260, 260, 18,
+
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
- 25, 31, 951, 31, 31, 32, 38, 32, 32, 38,
- 92, 92, 222, 92, 103, 103, 103, 103, 222, 222,
- 38, 38, 38, 38, 172, 132, 31, 132, 172, 952,
- 32, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
-
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 33, 33, 39, 33, 39, 34,
+ 34, 33, 34, 177, 41, 42, 34, 334, 43, 182,
+
+ 33, 41, 42, 178, 334, 34, 204, 204, 204, 204,
+ 295, 43, 295, 182, 41, 42, 180, 183, 180, 187,
+ 315, 43, 180, 177, 41, 42, 43, 33, 195, 41,
+ 42, 200, 34, 178, 33, 33, 39, 33, 39, 34,
+ 34, 43, 34, 182, 41, 42, 180, 183, 180, 187,
+ 43, 180, 931, 41, 42, 43, 33, 195, 41, 42,
+ 200, 34, 874, 33, 315, 39, 873, 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,
+
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, 39,
- 40, 39, 40, 55, 55, 953, 55, 63, 63, 167,
-
- 55, 65, 65, 68, 65, 134, 163, 134, 65, 164,
- 109, 109, 112, 112, 163, 65, 119, 119, 135, 167,
- 135, 65, 137, 175, 137, 162, 199, 162, 164, 65,
- 210, 162, 210, 175, 954, 63, 175, 186, 186, 186,
- 186, 223, 223, 39, 40, 39, 40, 51, 109, 55,
- 112, 68, 192, 192, 119, 192, 308, 65, 196, 196,
- 217, 196, 217, 257, 257, 390, 257, 199, 213, 213,
- 51, 213, 51, 308, 51, 213, 280, 312, 280, 223,
- 51, 312, 317, 51, 51, 51, 317, 51, 51, 51,
- 390, 203, 203, 51, 203, 51, 204, 204, 291, 204,
-
- 205, 205, 282, 205, 282, 291, 203, 203, 203, 203,
- 955, 204, 204, 204, 204, 205, 205, 205, 205, 206,
- 206, 283, 206, 283, 213, 305, 229, 229, 285, 229,
- 285, 361, 361, 229, 206, 206, 206, 206, 203, 305,
- 229, 264, 264, 264, 264, 205, 229, 326, 329, 328,
- 478, 329, 331, 328, 229, 367, 367, 326, 328, 331,
- 353, 478, 353, 206, 337, 337, 337, 337, 355, 357,
- 355, 357, 359, 362, 359, 370, 370, 370, 370, 362,
- 362, 956, 229, 253, 253, 253, 253, 253, 253, 253,
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
-
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
- 253, 253, 253, 253, 253, 253, 253, 253, 253, 253,
- 253, 253, 266, 266, 266, 266, 385, 394, 266, 433,
- 450, 957, 450, 266, 453, 433, 453, 266, 529, 844,
- 266, 394, 266, 844, 529, 266, 294, 294, 385, 294,
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
-
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 294, 294, 294, 294, 294, 294, 294, 294, 294,
- 294, 294, 294, 294, 294, 334, 334, 387, 334, 363,
- 363, 334, 334, 388, 393, 479, 386, 334, 334, 343,
- 343, 363, 343, 334, 334, 641, 346, 346, 334, 346,
- 960, 387, 388, 480, 343, 343, 343, 343, 386, 961,
- 393, 346, 346, 346, 346, 479, 641, 363, 364, 364,
- 480, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 460, 364, 364, 364,
-
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
- 364, 364, 364, 364, 364, 364, 364, 365, 365, 439,
- 556, 556, 439, 439, 481, 557, 557, 365, 365, 366,
- 366, 366, 366, 455, 455, 481, 455, 366, 964, 366,
- 366, 460, 633, 633, 366, 366, 366, 366, 366, 366,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
-
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 380,
- 380, 380, 380, 380, 380, 380, 380, 380, 380, 383,
- 383, 389, 383, 383, 383, 383, 383, 383, 383, 383,
- 391, 383, 383, 383, 383, 383, 383, 383, 383, 383,
- 383, 383, 383, 483, 573, 383, 383, 383, 383, 389,
- 451, 451, 965, 451, 454, 454, 482, 454, 391, 573,
- 966, 391, 483, 464, 464, 451, 451, 451, 451, 454,
- 454, 454, 454, 464, 464, 383, 383, 383, 398, 398,
- 563, 398, 398, 398, 398, 398, 398, 398, 398, 482,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 467, 467, 398, 398, 398, 398, 484, 485,
- 487, 563, 467, 467, 486, 477, 543, 568, 543, 549,
- 485, 544, 544, 567, 544, 550, 550, 968, 550, 487,
- 969, 625, 484, 625, 398, 398, 398, 463, 463, 477,
- 486, 477, 567, 568, 463, 463, 463, 463, 463, 463,
- 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
- 463, 463, 463, 463, 463, 463, 463, 463, 463, 465,
- 465, 465, 465, 501, 549, 565, 564, 465, 555, 555,
- 555, 634, 634, 566, 465, 465, 465, 465, 465, 465,
- 468, 468, 468, 468, 564, 501, 570, 946, 468, 565,
-
- 945, 501, 553, 553, 574, 468, 468, 468, 468, 468,
- 468, 566, 553, 553, 554, 554, 554, 554, 586, 639,
- 570, 574, 554, 571, 572, 632, 632, 632, 586, 554,
- 554, 554, 554, 554, 554, 640, 571, 572, 628, 628,
- 642, 628, 639, 643, 645, 644, 640, 646, 647, 648,
- 650, 649, 695, 791, 695, 659, 697, 714, 697, 757,
- 944, 757, 642, 644, 648, 659, 1015, 1015, 755, 650,
- 791, 755, 645, 643, 943, 689, 689, 646, 647, 649,
- 689, 755, 942, 689, 693, 693, 689, 714, 941, 693,
- 747, 689, 693, 940, 747, 693, 811, 747, 811, 813,
-
- 936, 813, 935, 934, 933, 931, 929, 747, 973, 973,
- 973, 973, 973, 973, 973, 973, 973, 973, 973, 973,
- 973, 973, 973, 973, 973, 973, 974, 974, 974, 974,
- 974, 974, 974, 974, 974, 974, 974, 974, 974, 974,
- 974, 974, 974, 974, 975, 975, 975, 975, 975, 975,
- 975, 975, 975, 975, 975, 975, 975, 975, 975, 975,
- 975, 975, 976, 976, 976, 976, 976, 976, 976, 976,
- 976, 976, 976, 976, 976, 976, 976, 976, 976, 976,
- 977, 977, 977, 977, 977, 977, 977, 977, 977, 977,
- 977, 977, 977, 977, 977, 977, 977, 977, 978, 978,
-
- 978, 978, 978, 978, 978, 978, 978, 978, 978, 978,
- 978, 978, 978, 978, 978, 978, 979, 979, 979, 979,
- 979, 979, 979, 979, 979, 979, 979, 979, 979, 979,
- 979, 979, 979, 979, 980, 980, 980, 980, 980, 980,
- 980, 980, 980, 980, 980, 980, 980, 980, 980, 980,
- 980, 980, 981, 981, 981, 981, 981, 981, 981, 981,
- 981, 981, 981, 981, 981, 981, 981, 981, 981, 981,
- 982, 982, 982, 982, 982, 982, 982, 982, 982, 982,
- 982, 982, 982, 982, 982, 982, 982, 982, 983, 983,
- 983, 983, 983, 983, 983, 983, 983, 983, 983, 983,
-
- 983, 983, 983, 983, 983, 983, 984, 984, 984, 984,
- 984, 984, 984, 984, 984, 984, 984, 984, 984, 984,
- 984, 984, 984, 984, 985, 985, 985, 985, 985, 985,
- 985, 985, 985, 985, 985, 985, 985, 985, 985, 985,
- 985, 985, 986, 986, 986, 986, 986, 986, 986, 986,
- 986, 986, 986, 986, 986, 986, 986, 986, 986, 986,
- 987, 987, 987, 987, 987, 987, 987, 987, 987, 987,
- 987, 987, 987, 987, 987, 987, 987, 987, 988, 988,
- 988, 988, 928, 927, 988, 988, 988, 989, 989, 989,
- 989, 989, 989, 989, 989, 989, 989, 989, 989, 989,
-
- 989, 989, 989, 989, 990, 990, 990, 990, 926, 924,
- 990, 990, 990, 991, 923, 991, 991, 991, 991, 991,
- 991, 991, 991, 991, 991, 991, 991, 991, 991, 991,
- 991, 992, 922, 992, 992, 992, 992, 992, 992, 992,
- 992, 992, 992, 992, 992, 992, 992, 992, 992, 993,
- 993, 993, 921, 918, 993, 993, 993, 994, 915, 994,
- 994, 994, 994, 994, 994, 994, 994, 994, 994, 994,
- 994, 994, 994, 994, 994, 995, 914, 995, 995, 995,
- 995, 995, 995, 995, 995, 995, 995, 995, 995, 995,
- 995, 995, 995, 996, 913, 996, 996, 996, 996, 996,
-
- 996, 996, 996, 996, 996, 996, 996, 996, 996, 996,
- 996, 997, 997, 997, 997, 997, 997, 997, 997, 997,
- 997, 997, 997, 997, 997, 997, 997, 997, 997, 998,
- 912, 998, 998, 998, 911, 998, 998, 998, 910, 909,
- 998, 998, 907, 905, 902, 998, 998, 999, 999, 999,
- 999, 901, 900, 999, 999, 999, 1000, 899, 898, 1000,
- 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
- 1000, 1000, 1000, 1000, 1001, 1001, 1001, 1001, 897, 896,
- 1001, 1001, 1001, 1002, 893, 1002, 1002, 1002, 1002, 1002,
- 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002,
-
- 1002, 1003, 892, 1003, 1003, 1003, 1003, 1003, 1003, 1003,
- 1003, 1003, 1003, 891, 1003, 1003, 1003, 1003, 1003, 1004,
- 887, 1004, 885, 884, 1004, 1004, 1004, 1004, 883, 882,
- 1004, 1004, 1005, 881, 1005, 1005, 1005, 1005, 1005, 1005,
- 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005,
- 1006, 1006, 1006, 1006, 880, 879, 1006, 1006, 1006, 1007,
- 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007,
- 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1008, 1008, 1008,
- 1008, 1008, 878, 1008, 1008, 1008, 1008, 1008, 1008, 1008,
- 1008, 1008, 1008, 1008, 1008, 1009, 877, 1009, 876, 1009,
-
- 1009, 1009, 1009, 1009, 1009, 1009, 875, 1009, 1009, 1009,
- 1009, 1009, 1009, 1010, 874, 1010, 1010, 1010, 1010, 1010,
- 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010,
- 1010, 1011, 873, 1011, 1011, 1011, 871, 1011, 1011, 1011,
- 870, 869, 1011, 1011, 868, 867, 866, 1011, 1011, 1012,
- 1012, 1012, 1012, 865, 864, 1012, 1012, 1012, 1013, 863,
- 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013,
- 1013, 1013, 1013, 1013, 1013, 1013, 1014, 1014, 860, 1014,
- 1014, 859, 858, 857, 1014, 1014, 1016, 856, 1016, 1016,
- 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016, 1016,
-
- 1016, 1016, 1016, 1016, 1017, 854, 852, 1017, 1017, 1017,
- 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017,
- 1018, 851, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018,
- 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1019, 850,
- 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019, 1019,
- 1019, 1019, 1019, 1019, 1019, 1019, 1020, 1020, 849, 848,
- 1020, 1020, 1020, 1021, 1021, 847, 846, 1021, 1021, 1021,
- 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022,
- 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1022, 1023, 1023,
- 1023, 1023, 845, 843, 1023, 1023, 1023, 1024, 1024, 1024,
-
- 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024,
- 1024, 1024, 1024, 1024, 1024, 1025, 842, 1025, 1025, 1025,
- 1025, 1025, 1025, 1025, 1025, 1025, 1025, 841, 1025, 1025,
- 1025, 1025, 1025, 1026, 840, 1026, 1026, 1026, 1026, 1026,
- 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026, 1026,
- 1026, 1027, 1027, 838, 837, 836, 835, 1027, 1028, 1028,
- 1028, 1028, 834, 833, 1028, 1028, 1028, 832, 1028, 1029,
- 831, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029,
- 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1030, 830, 1030,
- 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1030,
-
- 1030, 1030, 1030, 1030, 1030, 1031, 829, 1031, 1031, 1031,
- 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031, 1031,
- 1031, 1031, 1031, 1032, 828, 1032, 1032, 1032, 1032, 1032,
- 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032, 1032,
- 1032, 1033, 827, 1033, 1033, 1033, 1033, 1033, 1033, 1033,
- 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1033, 1034,
- 826, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1034,
- 1034, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1035, 1035,
- 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035, 1035,
- 1035, 1035, 1035, 1035, 1035, 1036, 825, 1036, 1036, 1036,
-
- 810, 1036, 1036, 1036, 809, 808, 1036, 1036, 807, 805,
- 804, 1036, 1036, 1037, 1037, 1037, 1037, 803, 801, 1037,
- 1037, 1037, 1038, 800, 799, 1038, 1038, 1038, 1038, 1038,
- 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038, 1038,
- 1039, 1039, 1039, 1039, 798, 797, 1039, 1039, 1039, 1040,
- 1040, 796, 794, 793, 1040, 1040, 1041, 792, 1041, 790,
- 789, 1041, 1041, 1041, 1041, 788, 787, 1041, 1041, 1042,
- 786, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042,
- 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1043, 1043, 1043,
- 1043, 785, 784, 1043, 1043, 1043, 1044, 1044, 1044, 1044,
-
- 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044,
- 1044, 1044, 1044, 1044, 1045, 1045, 1045, 1045, 1045, 783,
- 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045,
- 1045, 1045, 1046, 781, 1046, 780, 1046, 1046, 1046, 1046,
- 1046, 1046, 1046, 779, 1046, 1046, 1046, 1046, 1046, 1046,
- 1047, 777, 1047, 1047, 1047, 776, 1047, 1047, 1047, 775,
- 774, 1047, 1047, 773, 772, 771, 1047, 1047, 1048, 1048,
- 1048, 1048, 770, 769, 1048, 1048, 1048, 1049, 768, 1049,
- 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1049,
- 1049, 1049, 1049, 1049, 1049, 1050, 1050, 767, 1050, 1050,
-
- 766, 765, 764, 1050, 1050, 1051, 763, 1051, 1051, 1051,
- 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051,
- 1051, 1051, 1051, 1052, 762, 761, 1052, 1052, 1052, 1052,
- 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1052, 1053,
- 760, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1053,
- 1053, 1053, 1053, 1053, 1053, 1053, 1053, 1054, 759, 1054,
- 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054,
- 1054, 1054, 1054, 1054, 1054, 1055, 1055, 1055, 1055, 1055,
- 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055, 1055,
- 1055, 1055, 1055, 1056, 1056, 1056, 1056, 756, 754, 1056,
-
- 1056, 1056, 1057, 1057, 1057, 1057, 753, 752, 1057, 1057,
- 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058,
- 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1059,
- 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059,
- 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 751, 1060,
- 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 750,
- 1060, 1060, 1060, 1060, 1060, 1061, 1061, 749, 748, 746,
- 745, 1061, 1062, 1062, 1062, 1062, 744, 741, 1062, 1062,
- 1062, 740, 1062, 1063, 739, 1063, 1063, 1063, 1063, 1063,
- 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
-
- 1063, 1064, 738, 1064, 1064, 1064, 1064, 1064, 1064, 1064,
- 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1064, 1065,
- 734, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065,
- 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1066, 1066, 1066,
- 1066, 733, 731, 1066, 1066, 1066, 1067, 729, 1067, 1067,
- 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067,
- 1067, 1067, 1067, 1067, 1068, 1068, 1068, 1068, 1068, 1068,
- 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068,
- 1068, 1068, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069,
- 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069,
-
- 728, 727, 726, 725, 723, 721, 720, 719, 718, 717,
- 716, 715, 713, 712, 711, 710, 709, 708, 707, 706,
- 705, 704, 703, 701, 699, 692, 690, 687, 686, 685,
- 684, 683, 682, 681, 679, 677, 675, 673, 672, 671,
- 670, 669, 668, 667, 666, 665, 664, 663, 662, 661,
- 660, 657, 656, 655, 636, 635, 631, 630, 627, 626,
- 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
- 614, 613, 612, 611, 610, 608, 607, 606, 605, 603,
- 602, 601, 600, 599, 598, 597, 596, 595, 594, 593,
- 591, 590, 588, 587, 585, 583, 580, 578, 577, 576,
-
- 575, 561, 560, 559, 558, 552, 551, 547, 546, 545,
- 541, 540, 539, 538, 537, 536, 535, 534, 533, 532,
- 531, 530, 527, 526, 525, 524, 523, 522, 521, 520,
- 519, 517, 516, 515, 514, 513, 512, 511, 509, 508,
- 507, 506, 503, 502, 500, 499, 498, 497, 496, 495,
- 494, 491, 490, 489, 488, 476, 474, 473, 472, 471,
- 466, 462, 458, 457, 456, 449, 448, 447, 446, 445,
- 444, 443, 442, 441, 440, 438, 437, 436, 435, 434,
- 432, 431, 430, 429, 428, 427, 426, 425, 424, 423,
- 422, 421, 420, 419, 418, 417, 416, 415, 413, 412,
-
- 411, 409, 408, 407, 406, 405, 404, 403, 402, 401,
- 400, 399, 396, 395, 384, 379, 378, 375, 373, 369,
- 360, 351, 349, 348, 347, 345, 340, 335, 333, 332,
- 330, 327, 325, 324, 322, 320, 319, 318, 316, 315,
- 314, 313, 311, 310, 309, 307, 306, 303, 302, 300,
- 298, 297, 296, 292, 279, 278, 260, 259, 258, 255,
- 252, 251, 246, 243, 238, 234, 233, 232, 231, 228,
- 220, 219, 216, 215, 208, 200, 198, 194, 189, 185,
- 182, 181, 180, 179, 178, 177, 176, 174, 171, 170,
- 169, 166, 165, 160, 159, 158, 157, 155, 153, 152,
-
- 150, 148, 147, 141, 138, 129, 128, 126, 123, 118,
- 116, 111, 107, 101, 96, 94, 93, 90, 88, 86,
- 85, 84, 81, 77, 75, 73, 69, 67, 61, 57,
- 52, 49, 45, 41, 16, 15, 10, 8, 7, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972, 972,
- 972, 972, 972, 972, 972, 972, 972, 972, 972
-
+ 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, 64, 64, 188, 64,
+ 123, 123, 239, 64, 184, 77, 77, 44, 77, 126,
+ 126, 324, 77, 324, 189, 133, 133, 44, 181, 185,
+ 191, 77, 44, 264, 264, 184, 181, 77, 188, 348,
+ 191, 239, 123, 194, 184, 196, 197, 44, 326, 185,
+
+ 326, 126, 872, 40, 189, 40, 44, 133, 181, 185,
+ 191, 44, 198, 190, 184, 199, 181, 190, 348, 77,
+ 191, 123, 236, 194, 871, 196, 197, 240, 185, 241,
+ 126, 237, 40, 243, 40, 59, 133, 64, 229, 229,
+ 193, 229, 198, 190, 870, 199, 77, 190, 233, 233,
+ 193, 233, 236, 193, 59, 250, 250, 240, 250, 241,
+ 259, 237, 250, 243, 279, 401, 261, 401, 59, 59,
+ 193, 503, 59, 59, 237, 291, 237, 59, 349, 59,
+ 193, 59, 193, 869, 59, 262, 262, 868, 292, 320,
+ 259, 867, 245, 245, 279, 245, 261, 261, 59, 59,
+
+ 321, 59, 59, 344, 345, 291, 59, 349, 59, 245,
+ 245, 245, 245, 270, 270, 350, 270, 262, 292, 320,
+ 270, 299, 299, 347, 299, 306, 306, 306, 306, 270,
+ 321, 351, 350, 344, 345, 270, 250, 347, 866, 353,
+ 354, 865, 355, 356, 354, 350, 262, 357, 358, 359,
+ 360, 503, 361, 347, 360, 362, 610, 363, 365, 367,
+ 351, 350, 368, 370, 410, 410, 347, 270, 353, 864,
+ 354, 355, 356, 403, 354, 403, 357, 863, 358, 359,
+ 360, 361, 405, 360, 405, 362, 363, 365, 367, 610,
+ 373, 368, 375, 370, 270, 308, 308, 308, 308, 308,
+
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
+ 373, 375, 388, 308, 862, 308, 308, 308, 308, 308,
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 308,
+ 308, 308, 308, 308, 308, 308, 308, 308, 308, 369,
+ 372, 371, 388, 372, 374, 371, 861, 376, 390, 369,
+ 371, 374, 380, 380, 380, 380, 391, 416, 416, 392,
+ 394, 407, 409, 407, 431, 411, 431, 424, 426, 369,
+ 372, 371, 860, 372, 374, 371, 376, 390, 369, 439,
+ 371, 374, 377, 429, 377, 391, 430, 377, 377, 392,
+
+ 394, 859, 409, 377, 377, 411, 411, 424, 426, 377,
+ 377, 439, 397, 397, 377, 397, 412, 412, 436, 414,
+ 414, 377, 377, 429, 377, 442, 430, 377, 377, 397,
+ 397, 397, 397, 377, 377, 433, 436, 433, 377, 377,
+ 439, 400, 400, 377, 400, 442, 446, 505, 412, 505,
+ 447, 858, 412, 414, 414, 508, 857, 508, 400, 400,
+ 400, 400, 421, 421, 421, 421, 436, 510, 510, 856,
+ 510, 605, 605, 855, 605, 442, 446, 412, 413, 413,
+ 447, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 854, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 413, 413, 413, 413, 413, 413, 413, 413,
+ 413, 413, 415, 415, 415, 415, 434, 435, 437, 440,
+ 441, 415, 415, 415, 415, 415, 415, 444, 443, 449,
+ 450, 437, 434, 435, 451, 444, 452, 453, 440, 454,
+ 455, 853, 441, 456, 852, 441, 415, 415, 443, 848,
+
+ 457, 415, 415, 415, 415, 415, 415, 847, 449, 450,
+ 460, 437, 434, 435, 451, 444, 452, 453, 440, 454,
+ 455, 441, 463, 456, 441, 459, 461, 793, 443, 445,
+ 457, 464, 465, 466, 445, 445, 445, 445, 468, 460,
+ 445, 792, 467, 470, 471, 445, 472, 473, 474, 445,
+ 475, 463, 445, 791, 445, 459, 461, 445, 476, 477,
+ 464, 478, 465, 466, 445, 445, 445, 445, 468, 479,
+ 445, 467, 480, 470, 471, 445, 472, 473, 474, 445,
+ 475, 445, 481, 445, 482, 483, 445, 484, 476, 477,
+ 482, 478, 485, 486, 487, 488, 489, 604, 490, 479,
+
+ 491, 492, 480, 493, 494, 495, 790, 496, 498, 499,
+ 615, 615, 481, 500, 482, 483, 484, 501, 789, 511,
+ 482, 485, 521, 486, 487, 488, 489, 490, 522, 523,
+ 491, 492, 524, 493, 494, 495, 496, 497, 498, 499,
+ 497, 497, 607, 500, 607, 506, 506, 501, 506, 511,
+ 608, 608, 521, 608, 509, 509, 788, 509, 522, 523,
+ 787, 524, 506, 506, 506, 506, 694, 497, 694, 497,
+ 497, 509, 509, 509, 509, 512, 512, 604, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 786,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 512,
+ 512, 512, 512, 512, 512, 512, 512, 512, 512, 513,
+ 513, 528, 526, 531, 785, 517, 517, 527, 530, 775,
+ 529, 775, 527, 530, 532, 536, 537, 614, 614, 614,
+ 526, 529, 526, 533, 784, 528, 534, 532, 536, 783,
+ 531, 534, 537, 513, 513, 514, 514, 514, 514, 517,
+
+ 517, 533, 527, 530, 514, 514, 514, 514, 514, 514,
+ 526, 529, 526, 535, 528, 540, 538, 532, 536, 531,
+ 781, 534, 537, 774, 541, 547, 539, 544, 540, 542,
+ 548, 533, 538, 535, 514, 514, 514, 514, 514, 514,
+ 518, 518, 518, 518, 539, 543, 541, 544, 542, 518,
+ 518, 518, 518, 518, 518, 547, 545, 546, 540, 548,
+ 551, 556, 538, 535, 552, 546, 771, 543, 554, 555,
+ 543, 557, 759, 559, 539, 541, 545, 544, 542, 518,
+ 518, 518, 518, 518, 518, 558, 560, 561, 564, 567,
+ 551, 556, 565, 552, 566, 546, 543, 554, 555, 543,
+
+ 570, 557, 558, 559, 571, 575, 545, 573, 558, 745,
+ 574, 577, 578, 579, 580, 560, 581, 561, 564, 567,
+ 582, 565, 583, 566, 584, 585, 587, 588, 589, 570,
+ 590, 591, 558, 592, 571, 575, 573, 593, 558, 574,
+ 577, 594, 578, 579, 580, 581, 595, 597, 596, 598,
+ 582, 583, 599, 584, 596, 585, 587, 588, 589, 590,
+ 600, 591, 592, 601, 734, 602, 617, 593, 612, 612,
+ 594, 616, 616, 622, 624, 625, 595, 597, 596, 598,
+ 619, 620, 599, 596, 630, 705, 628, 623, 626, 600,
+ 627, 630, 624, 601, 602, 628, 617, 625, 622, 623,
+
+ 704, 626, 612, 612, 613, 613, 613, 613, 633, 619,
+ 627, 620, 629, 613, 613, 613, 613, 613, 613, 633,
+ 641, 630, 624, 632, 700, 628, 625, 622, 631, 623,
+ 629, 626, 632, 634, 635, 631, 639, 636, 641, 635,
+ 627, 637, 645, 613, 613, 613, 613, 613, 613, 633,
+ 638, 634, 637, 634, 640, 638, 643, 644, 646, 642,
+ 629, 636, 632, 639, 642, 631, 648, 640, 641, 635,
+ 644, 645, 649, 651, 699, 655, 643, 654, 656, 658,
+ 662, 634, 637, 634, 649, 638, 660, 654, 646, 663,
+ 636, 664, 639, 666, 642, 648, 667, 640, 668, 674,
+
+ 644, 670, 649, 651, 655, 671, 643, 654, 656, 658,
+ 662, 672, 675, 676, 649, 660, 654, 677, 680, 663,
+ 679, 664, 681, 666, 682, 667, 684, 685, 668, 674,
+ 670, 686, 688, 689, 671, 690, 691, 692, 693, 695,
+ 672, 675, 676, 696, 701, 701, 701, 677, 680, 679,
+ 710, 681, 697, 697, 682, 697, 684, 685, 702, 702,
+ 708, 686, 688, 689, 690, 710, 691, 692, 693, 695,
+ 703, 703, 711, 696, 709, 712, 714, 708, 713, 709,
+ 715, 716, 717, 719, 718, 720, 723, 724, 711, 721,
+ 713, 717, 725, 722, 687, 710, 719, 727, 714, 712,
+
+ 724, 721, 735, 731, 715, 716, 718, 708, 723, 709,
+ 720, 722, 725, 726, 731, 727, 728, 729, 711, 736,
+ 713, 717, 726, 728, 729, 739, 719, 714, 712, 730,
+ 724, 721, 735, 715, 716, 718, 738, 723, 730, 720,
+ 740, 722, 725, 741, 731, 727, 738, 746, 736, 742,
+ 743, 744, 726, 728, 729, 739, 747, 748, 749, 750,
+ 751, 683, 752, 753, 755, 761, 738, 757, 730, 762,
+ 740, 763, 669, 741, 766, 665, 738, 746, 742, 743,
+ 744, 768, 772, 794, 659, 773, 747, 748, 749, 750,
+ 751, 752, 779, 753, 755, 761, 757, 765, 765, 762,
+
+ 763, 777, 765, 777, 766, 765, 795, 794, 765, 769,
+ 769, 768, 772, 765, 769, 773, 797, 769, 798, 796,
+ 769, 779, 799, 795, 796, 800, 801, 765, 765, 805,
+ 807, 797, 765, 802, 798, 765, 794, 800, 765, 769,
+ 769, 803, 765, 804, 769, 806, 799, 769, 801, 808,
+ 769, 805, 804, 795, 796, 809, 653, 802, 806, 811,
+ 807, 797, 810, 812, 798, 803, 813, 800, 815, 817,
+ 818, 618, 819, 820, 822, 799, 821, 801, 824, 808,
+ 805, 826, 804, 827, 833, 809, 802, 834, 806, 811,
+ 829, 810, 812, 835, 803, 836, 813, 815, 817, 836,
+
+ 818, 819, 836, 820, 822, 821, 829, 837, 824, 838,
+ 839, 826, 836, 827, 833, 840, 834, 841, 611, 842,
+ 829, 843, 875, 835, 844, 836, 845, 844, 876, 836,
+ 846, 849, 836, 877, 879, 829, 837, 844, 878, 838,
+ 839, 836, 850, 880, 850, 840, 875, 841, 842, 881,
+ 884, 843, 882, 885, 844, 845, 886, 844, 876, 846,
+ 849, 887, 890, 877, 879, 889, 844, 878, 891, 609,
+ 892, 893, 894, 880, 895, 875, 896, 898, 899, 881,
+ 884, 882, 900, 885, 901, 905, 886, 902, 903, 906,
+ 909, 887, 890, 907, 889, 910, 911, 572, 891, 892,
+
+ 912, 893, 894, 913, 895, 896, 914, 898, 899, 916,
+ 915, 917, 900, 917, 901, 905, 902, 903, 944, 906,
+ 909, 919, 907, 919, 945, 910, 911, 915, 946, 912,
+ 947, 948, 913, 949, 950, 914, 951, 952, 916, 953,
+ 915, 954, 955, 569, 956, 957, 959, 944, 960, 961,
+ 962, 963, 964, 965, 945, 966, 915, 968, 946, 970,
+ 947, 948, 971, 949, 950, 972, 951, 952, 953, 973,
+ 954, 974, 955, 956, 976, 957, 959, 960, 961, 962,
+ 977, 963, 964, 965, 979, 966, 968, 980, 970, 978,
+ 994, 971, 996, 978, 995, 972, 997, 553, 998, 973,
+
+ 999, 974, 1000, 1002, 976, 1003, 525, 1005, 1006, 977,
+ 1007, 1008, 1009, 979, 1010, 1011, 1013, 980, 978, 1017,
+ 994, 996, 978, 1018, 995, 1019, 997, 998, 1022, 999,
+ 1023, 1000, 1024, 1002, 1025, 1003, 1005, 1006, 1026, 1027,
+ 1007, 1008, 1009, 1029, 1010, 1011, 1013, 1030, 1031, 1017,
+ 1032, 1033, 1034, 1018, 1035, 1019, 1038, 1022, 1040, 1042,
+ 1023, 1045, 1024, 1025, 1048, 1049, 1051, 1026, 1027, 1050,
+ 1052, 1053, 1029, 1054, 1055, 1056, 1030, 1031, 1057, 1059,
+ 1032, 1033, 1034, 1060, 1035, 1061, 1038, 1040, 1062, 1042,
+ 1064, 1045, 1068, 1069, 1048, 1049, 1051, 1070, 1050, 1071,
+
+ 1052, 1053, 1073, 1054, 1055, 1056, 1074, 1075, 1057, 1059,
+ 1076, 1077, 1060, 1078, 1061, 1079, 1082, 1084, 1062, 1064,
+ 1085, 1086, 1068, 1069, 1087, 1088, 1070, 1089, 1091, 1071,
+ 1094, 1098, 1073, 1095, 1099, 1100, 1074, 1075, 1103, 1104,
+ 1076, 1077, 516, 1078, 1079, 1082, 1160, 1084, 1160, 1085,
+ 1189, 1086, 1189, 1087, 1088, 469, 1089, 438, 1091, 420,
+ 1094, 1098, 1095, 1099, 1100, 1147, 1147, 399, 1103, 1104,
+ 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, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
+ 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1115,
+ 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
+
+ 1115, 1115, 1115, 1115, 1115, 1115, 1116, 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, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
+ 1118, 1118, 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, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
+
+ 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
+ 1122, 1122, 1122, 1122, 1122, 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, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
+ 1125, 1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
+ 1126, 1126, 1126, 1127, 1127, 378, 1127, 1127, 352, 342,
+
+ 340, 1127, 1128, 1128, 335, 1128, 1128, 302, 301, 300,
+ 1128, 1129, 297, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
+ 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 286,
+ 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
+ 1130, 1130, 1130, 1130, 1130, 1131, 1131, 1131, 283, 1131,
+ 1131, 275, 274, 273, 1131, 1132, 272, 1132, 1132, 1132,
+ 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
+ 1132, 1132, 1133, 269, 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, 267, 1134, 266, 1134, 1134, 1135, 257, 256, 1135,
+ 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135,
+ 1135, 1135, 1135, 1136, 1136, 253, 1136, 1136, 252, 235,
+ 231, 1136, 1137, 228, 1137, 1137, 1137, 1137, 1137, 1137,
+ 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1137, 1138,
+ 227, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
+ 1138, 1138, 1138, 223, 1138, 1138, 1139, 209, 1139, 208,
+ 207, 1139, 1139, 1139, 1139, 1139, 203, 176, 175, 1139,
+ 1140, 173, 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1140,
+ 1140, 1140, 1140, 1140, 1140, 1140, 1140, 1141, 1141, 171,
+
+ 1141, 1141, 170, 167, 166, 1141, 1142, 1142, 1142, 1142,
+ 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
+ 1142, 1142, 1142, 1143, 165, 1143, 159, 1143, 1143, 1143,
+ 1143, 1143, 1143, 1143, 1143, 1143, 156, 1143, 1143, 1143,
+ 1144, 155, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
+ 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1145, 154, 1145,
+ 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145, 1145,
+ 1145, 1145, 1145, 1145, 1146, 1146, 153, 145, 1146, 1146,
+ 1148, 144, 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1148,
+ 1148, 1148, 1148, 1148, 1148, 1148, 1148, 1149, 140, 1149,
+
+ 1149, 1149, 137, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
+ 1149, 1149, 1149, 1149, 1150, 1150, 132, 1150, 1150, 130,
+ 125, 121, 1150, 1151, 115, 1151, 1151, 1151, 1151, 1151,
+ 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
+ 1152, 1152, 110, 108, 107, 1152, 1153, 1153, 104, 102,
+ 100, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
+ 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1155,
+ 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
+ 1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156, 99, 1156,
+ 1156, 98, 95, 92, 1156, 1157, 1157, 1157, 1157, 1157,
+
+ 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157, 1157,
+ 1157, 1157, 1158, 91, 1158, 1158, 1158, 1158, 1158, 1158,
+ 1158, 1158, 1158, 1158, 1158, 1158, 89, 1158, 1158, 1159,
+ 87, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
+ 1159, 1159, 1159, 1159, 1159, 1159, 1161, 1161, 85, 1161,
+ 1161, 81, 79, 73, 1161, 1161, 1162, 72, 1162, 1162,
+ 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
+ 1162, 1162, 1162, 1163, 69, 1163, 1163, 1163, 1163, 1163,
+ 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163, 1163,
+ 1164, 66, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
+
+ 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165, 60, 1165,
+ 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
+ 1165, 1165, 1165, 1165, 1166, 57, 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, 53, 1167, 49, 1167, 1167, 1168, 1168,
+ 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
+ 1168, 1168, 1168, 1168, 1168, 1169, 16, 15, 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, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
+ 1181, 1181, 1181, 1181, 1181, 1181, 1182, 1182, 0, 1182,
+ 1182, 0, 0, 0, 1182, 1183, 1183, 0, 1183, 1183,
+ 0, 0, 0, 1183, 1184, 0, 1184, 1184, 1184, 1184,
+ 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184, 1184,
+
+ 1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
+ 1185, 1185, 1185, 1185, 1185, 1185, 1185, 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, 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, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
+ 1198, 1198, 1198, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
+
+ 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
+ 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+
+ 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107,
+ 1107, 1107
} ;
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
extern int yy_flex_debug;
int yy_flex_debug = 0;
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
-#define yymore() yymore_used_but_not_detected
-#define YY_MORE_ADJ 0
+static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
+static char *yy_full_match;
+static int yy_lp;
+#define REJECT \
+{ \
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
+yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
+++(yy_lp); \
+goto find_rule; \
+}
+
+static int yy_more_flag = 0;
+static int yy_more_len = 0;
+#define yymore() ((yy_more_flag) = 1)
+#define YY_MORE_ADJ (yy_more_len)
#define YY_RESTORE_YY_MORE_OFFSET
-#ifndef YY_REENTRANT
char *yytext;
-#endif
#line 1 "scan.l"
-#define INITIAL 0
/* scan.l - scanner for flex input -*-C-*- */
#line 4 "scan.l"
/* Copyright (c) 1990 The Regents of the University of California. */
@@ -1664,6 +1906,7 @@ char *yytext;
#include "parse.h"
extern bool tablesverify, tablesext;
extern int trlcontxt; /* Set in parse.y for each rule. */
+extern const char *escaped_qstart, *escaped_qend;
#define ACTION_ECHO add_action( yytext )
#define ACTION_IFDEF(def, should_define) \
@@ -1672,6 +1915,9 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
action_define( def, 1 ); \
}
+#define ACTION_ECHO_QSTART add_action (escaped_qstart)
+#define ACTION_ECHO_QEND add_action (escaped_qend)
+
#define ACTION_M4_IFDEF(def, should_define) \
do{ \
if ( should_define ) \
@@ -1717,8 +1963,16 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
if ( getenv("POSIXLY_CORRECT") ) \
posix_compat = true;
-#define YY_STACK_USED 1
-#define YY_NO_TOP_STATE 1
+
+
+
+
+
+
+
+#line 1974 "scan.c"
+
+#define INITIAL 0
#define SECT2 1
#define SECT2PROLOG 2
#define SECT3 3
@@ -1728,7 +1982,6 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
#define CARETISBOL 7
#define NUM 8
#define QUOTE 9
-
#define FIRSTCCL 10
#define CCL 11
#define ACTION 12
@@ -1736,93 +1989,27 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
#define COMMENT 14
#define ACTION_STRING 15
#define PERCENT_BRACE_ACTION 16
-
#define OPTION 17
#define LINEDIR 18
#define CODEBLOCK_MATCH_BRACE 19
+#define GROUP_WITH_PARAMS 20
+#define GROUP_MINUS_PARAMS 21
+#define EXTENDED_COMMENT 22
+#define COMMENT_DISCARD 23
-#line 1745 "scan.c"
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
+#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
* down here because we want the user's section 1 to have been scanned first.
* The user has a chance to override it with an option.
*/
-#ifndef YY_NO_UNISTD_H
-
#include <unistd.h>
-
-
-
-#endif /* !YY_NO_UNISTD_H */
+#endif
#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
-/* Accessor methods to globals.
- These are made visible to non-reentrant scanners for convenience. */
-
-#ifndef YY_NO_DESTROY
-int yylex_destroy YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_GET_DEBUG
-int yyget_debug YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_SET_DEBUG
-void yyset_debug YY_PARAMS(( int debug_flag YY_PROTO_LAST_ARG ));
-#endif
-
-#ifndef YY_NO_GET_EXTRA
-YY_EXTRA_TYPE yyget_extra YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_SET_EXTRA
-void yyset_extra YY_PARAMS(( YY_EXTRA_TYPE user_defined YY_PROTO_LAST_ARG ));
-#endif
-
-#ifndef YY_NO_GET_IN
-FILE *yyget_in YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_SET_IN
-void yyset_in YY_PARAMS(( FILE * in_str YY_PROTO_LAST_ARG ));
-#endif
-
-#ifndef YY_NO_GET_OUT
-FILE *yyget_out YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_SET_OUT
-void yyset_out YY_PARAMS(( FILE * out_str YY_PROTO_LAST_ARG ));
-#endif
-
-#ifndef YY_NO_GET_LENG
-int yyget_leng YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_GET_TEXT
-char *yyget_text YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_GET_LINENO
-int yyget_lineno YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-
-#ifndef YY_NO_SET_LINENO
-void yyset_lineno YY_PARAMS(( int line_number YY_PROTO_LAST_ARG ));
-#endif
-
+static int yy_init_globals (void );
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -1830,79 +2017,51 @@ void yyset_lineno YY_PARAMS(( int line_number YY_PROTO_LAST_ARG ));
#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
-extern "C" int yywrap YY_PARAMS(( YY_PROTO_ONLY_ARG ));
+extern "C" int yywrap (void );
#else
-extern int yywrap YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
+extern int yywrap (void );
#endif
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#ifndef YY_NO_UNPUT
-static void yyunput YY_PARAMS(( int c, char *buf_ptr YY_PROTO_LAST_ARG));
#endif
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
+ static void yyunput (int c,char *buf_ptr );
+
#ifndef yytext_ptr
-static void yy_flex_strncpy YY_PARAMS(( char *, yyconst char *, int YY_PROTO_LAST_ARG));
+static void yy_flex_strncpy (char *,yyconst char *,int );
#endif
#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YY_PARAMS(( yyconst char * YY_PROTO_LAST_ARG));
+static int yy_flex_strlen (yyconst char * );
#endif
#ifndef YY_NO_INPUT
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
#ifdef __cplusplus
-static int yyinput YY_PARAMS(( YY_PROTO_ONLY_ARG ));
+static int yyinput (void );
#else
-static int input YY_PARAMS(( YY_PROTO_ONLY_ARG ));
+static int input (void );
#endif
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
-#endif
-
-
-#if YY_STACK_USED
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-static int yy_start_stack_ptr = 0;
-static int yy_start_stack_depth = 0;
-static int *yy_start_stack = 0;
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
-#ifndef YY_NO_PUSH_STATE
-static void yy_push_state YY_PARAMS(( int new_state YY_PROTO_LAST_ARG));
-#endif
-#ifndef YY_NO_POP_STATE
-static void yy_pop_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
-#endif
-#ifndef YY_NO_TOP_STATE
-static int yy_top_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
#endif
-#else
-#define YY_NO_PUSH_STATE 1
-#define YY_NO_POP_STATE 1
-#define YY_NO_TOP_STATE 1
-#endif
-
-
+ static int yy_start_stack_ptr = 0;
+ static int yy_start_stack_depth = 0;
+ static int *yy_start_stack = NULL;
+
+ static void yy_push_state (int new_state );
+
+ static void yy_pop_state (void );
+
/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif
/* Copy whatever the last rule matched to the standard output. */
-
#ifndef ECHO
-
/* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite().
*/
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
-
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
@@ -1910,10 +2069,10 @@ static int yy_top_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
*/
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
- if ( YY_G(yy_current_buffer)->yy_is_interactive ) \
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
- size_t n; \
+ int n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
@@ -1938,7 +2097,6 @@ static int yy_top_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
} \
}\
\
-\
#endif
@@ -1957,38 +2115,21 @@ static int yy_top_state YY_PARAMS(( YY_PROTO_ONLY_ARG ));
/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
-
-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg YY_CALL_LAST_ARG)
-
+#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
/* end tables serialization structures and prototypes */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
/* Default declaration of generated scanner - a define so the user can
* easily add parameters.
*/
#ifndef YY_DECL
+#define YY_DECL_IS_OURS 1
+extern int yylex (void);
-/* If the bison pure parser is used, then bison will provide
- one or two additional arguments. */
-
-
-# define YY_LEX_PROTO YY_PARAMS((YY_PROTO_ONLY_ARG))
-# define YY_LEX_DECLARATION YYFARGS0(void)
-
-
-extern int yylex YY_LEX_PROTO;
-
-#define YY_DECL int yylex YY_LEX_DECLARATION
-
-#endif
-
+#define YY_DECL int yylex (void)
+#endif /* !YY_DECL */
/* Code executed at the beginning of each rule, after yytext and yyleng
* have been set up.
@@ -2004,19 +2145,19 @@ extern int yylex YY_LEX_PROTO;
#define YY_RULE_SETUP \
if ( yyleng > 0 ) \
- YY_G(yy_current_buffer)->yy_at_bol = \
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
(yytext[yyleng - 1] == '\n'); \
YY_USER_ACTION
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
+/** The main scanner function which does all the work.
+ */
YY_DECL
- {
+{
register yy_state_type yy_current_state;
register char *yy_cp, *yy_bp;
register int yy_act;
-
-#line 120 "scan.l"
-#define YY_TABLES_VERIFY 0
+
+#line 131 "scan.l"
static int bracelevel, didadef, indented_code;
static int doing_rule_action = false;
@@ -2027,139 +2168,135 @@ YY_DECL
Char nmdef[MAXLINE];
-#line 2031 "scan.c"
-
+#line 2172 "scan.c"
- if ( YY_G(yy_init) )
+ if ( !(yy_init) )
{
- YY_G(yy_init) = 0;
+ (yy_init) = 1;
#ifdef YY_USER_INIT
YY_USER_INIT;
#endif
-#ifdef YY_USES_REJECT
- if ( ! YY_G(yy_state_buf) )
- YY_G(yy_state_buf) = (yy_state_type *)yyalloc(YY_BUF_SIZE + 2 YY_CALL_LAST_ARG);
-#endif
+ /* Create the reject buffer large enough to save one state per allowed character. */
+ if ( ! (yy_state_buf) )
+ (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE );
+ if ( ! (yy_state_buf) )
+ YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
- if ( ! YY_G(yy_start) )
- YY_G(yy_start) = 1; /* first start state */
+ if ( ! (yy_start) )
+ (yy_start) = 1; /* first start state */
if ( ! yyin )
-
yyin = stdin;
-
if ( ! yyout )
-
yyout = stdout;
+ if ( ! YY_CURRENT_BUFFER ) {
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer(yyin,YY_BUF_SIZE );
+ }
- if ( ! YY_G(yy_current_buffer) )
- YY_G(yy_current_buffer) =
- yy_create_buffer( yyin, YY_BUF_SIZE YY_CALL_LAST_ARG);
-
- yy_load_buffer_state( YY_CALL_ONLY_ARG );
+ yy_load_buffer_state( );
}
while ( 1 ) /* loops until end-of-file is reached */
{
- yy_cp = YY_G(yy_c_buf_p);
+ (yy_more_len) = 0;
+ if ( (yy_more_flag) )
+ {
+ (yy_more_len) = (yy_c_buf_p) - (yytext_ptr);
+ (yy_more_flag) = 0;
+ }
+ yy_cp = (yy_c_buf_p);
/* Support of yytext. */
- *yy_cp = YY_G(yy_hold_char);
+ *yy_cp = (yy_hold_char);
/* yy_bp points to the position in yy_ch_buf of the start of
* the current run.
*/
yy_bp = yy_cp;
- yy_current_state = YY_G(yy_start);
+ yy_current_state = (yy_start);
yy_current_state += YY_AT_BOL();
+
+ (yy_state_ptr) = (yy_state_buf);
+ *(yy_state_ptr)++ = yy_current_state;
+
yy_match:
do
{
register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
- if ( yy_accept[yy_current_state] )
- {
- YY_G(yy_last_accepting_state) = yy_current_state;
- YY_G(yy_last_accepting_cpos) = yy_cp;
- }
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 973 )
+ if ( yy_current_state >= 1108 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ *(yy_state_ptr)++ = yy_current_state;
++yy_cp;
}
- while ( yy_base[yy_current_state] != 3240 );
+ while ( yy_base[yy_current_state] != 3928 );
yy_find_action:
- yy_act = yy_accept[yy_current_state];
- if ( yy_act == 0 )
- { /* have to back up */
- yy_cp = YY_G(yy_last_accepting_cpos);
- yy_current_state = YY_G(yy_last_accepting_state);
- yy_act = yy_accept[yy_current_state];
+ yy_current_state = *--(yy_state_ptr);
+ (yy_lp) = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+ for ( ; ; ) /* until we find what rule we matched */
+ {
+ if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
+ {
+ yy_act = yy_acclist[(yy_lp)];
+ {
+ (yy_full_match) = yy_cp;
+ break;
+ }
+ }
+ --yy_cp;
+ yy_current_state = *--(yy_state_ptr);
+ (yy_lp) = yy_accept[yy_current_state];
}
YY_DO_BEFORE_ACTION;
-#ifdef YY_USE_LINENO
- if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
- {
- int yyl;
- for ( yyl = 0; yyl < yyleng; ++yyl )
- if ( yytext[yyl] == '\n' )
- ++yylineno;
- }
-#endif
-
do_action: /* This label is used only to access EOF actions. */
-
switch ( yy_act )
{ /* beginning of action switch */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = YY_G(yy_hold_char);
- yy_cp = YY_G(yy_last_accepting_cpos);
- yy_current_state = YY_G(yy_last_accepting_state);
- goto yy_find_action;
-
case 1:
YY_RULE_SETUP
-#line 131 "scan.l"
+#line 142 "scan.l"
indented_code = true; BEGIN(CODEBLOCK);
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 132 "scan.l"
+#line 143 "scan.l"
ACTION_ECHO; yy_push_state( COMMENT );
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 133 "scan.l"
+#line 144 "scan.l"
yy_push_state( LINEDIR );
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 134 "scan.l"
+#line 145 "scan.l"
return SCDECL;
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 135 "scan.l"
+#line 146 "scan.l"
return XSCDECL;
YY_BREAK
case 6:
/* rule 6 can match eol */
YY_RULE_SETUP
-#line 136 "scan.l"
+#line 147 "scan.l"
{
++linenum;
line_directive_out( (FILE *) 0, 1 );
@@ -2170,7 +2307,7 @@ YY_RULE_SETUP
case 7:
/* rule 7 can match eol */
YY_RULE_SETUP
-#line 142 "scan.l"
+#line 153 "scan.l"
{
brace_start_line = linenum;
++linenum;
@@ -2181,17 +2318,17 @@ YY_RULE_SETUP
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 150 "scan.l"
+#line 161 "scan.l"
synerr( _("malformed '%top' directive") );
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 152 "scan.l"
+#line 163 "scan.l"
/* discard */
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 154 "scan.l"
+#line 165 "scan.l"
{
sectnum = 2;
bracelevel = 0;
@@ -2204,51 +2341,51 @@ YY_RULE_SETUP
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 163 "scan.l"
+#line 174 "scan.l"
yytext_is_array = false; ++linenum;
YY_BREAK
case 12:
/* rule 12 can match eol */
YY_RULE_SETUP
-#line 164 "scan.l"
+#line 175 "scan.l"
yytext_is_array = true; ++linenum;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 166 "scan.l"
+#line 177 "scan.l"
BEGIN(OPTION); return OPTION_OP;
YY_BREAK
case 14:
/* rule 14 can match eol */
YY_RULE_SETUP
-#line 168 "scan.l"
+#line 179 "scan.l"
++linenum; /* ignore */
YY_BREAK
case 15:
/* rule 15 can match eol */
YY_RULE_SETUP
-#line 169 "scan.l"
+#line 180 "scan.l"
++linenum; /* ignore */
YY_BREAK
/* xgettext: no-c-format */
case 16:
/* rule 16 can match eol */
YY_RULE_SETUP
-#line 172 "scan.l"
+#line 183 "scan.l"
synerr( _( "unrecognized '%' directive" ) );
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 174 "scan.l"
+#line 185 "scan.l"
{
- if(yyleng < MAXLINE)
- {
+ if(yyleng < MAXLINE)
+ {
strcpy( nmstr, yytext );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
}
didadef = false;
@@ -2257,88 +2394,150 @@ YY_RULE_SETUP
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 189 "scan.l"
+#line 200 "scan.l"
RETURNNAME;
YY_BREAK
case 19:
/* rule 19 can match eol */
YY_RULE_SETUP
-#line 190 "scan.l"
+#line 201 "scan.l"
++linenum; /* allows blank lines in section 1 */
YY_BREAK
case 20:
/* rule 20 can match eol */
YY_RULE_SETUP
-#line 191 "scan.l"
+#line 202 "scan.l"
ACTION_ECHO; ++linenum; /* maybe end of comment line */
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 196 "scan.l"
+#line 207 "scan.l"
ACTION_ECHO; yy_pop_state();
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 197 "scan.l"
+#line 208 "scan.l"
ACTION_ECHO;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 198 "scan.l"
-ACTION_ECHO;
+#line 209 "scan.l"
+ACTION_ECHO_QSTART;
YY_BREAK
case 24:
-/* rule 24 can match eol */
YY_RULE_SETUP
-#line 199 "scan.l"
+#line 210 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 25:
+YY_RULE_SETUP
+#line 211 "scan.l"
+ACTION_ECHO;
+ YY_BREAK
+case 26:
+/* rule 26 can match eol */
+YY_RULE_SETUP
+#line 212 "scan.l"
++linenum; ACTION_ECHO;
YY_BREAK
-case 25:
-/* rule 25 can match eol */
+/* This is the same as COMMENT, but is discarded rather than output. */
+case 27:
YY_RULE_SETUP
-#line 203 "scan.l"
+#line 217 "scan.l"
yy_pop_state();
YY_BREAK
-case 26:
+case 28:
YY_RULE_SETUP
-#line 204 "scan.l"
+#line 218 "scan.l"
+;
+ YY_BREAK
+case 29:
+YY_RULE_SETUP
+#line 219 "scan.l"
+;
+ YY_BREAK
+case 30:
+/* rule 30 can match eol */
+YY_RULE_SETUP
+#line 220 "scan.l"
+++linenum;
+ YY_BREAK
+
+
+case 31:
+YY_RULE_SETUP
+#line 224 "scan.l"
+yy_pop_state();
+ YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 225 "scan.l"
+;
+ YY_BREAK
+case 33:
+/* rule 33 can match eol */
+YY_RULE_SETUP
+#line 226 "scan.l"
+++linenum;
+ YY_BREAK
+
+
+case 34:
+/* rule 34 can match eol */
+YY_RULE_SETUP
+#line 230 "scan.l"
+yy_pop_state();
+ YY_BREAK
+case 35:
+YY_RULE_SETUP
+#line 231 "scan.l"
linenum = myctoi( yytext );
YY_BREAK
-case 27:
+case 36:
YY_RULE_SETUP
-#line 206 "scan.l"
+#line 233 "scan.l"
{
flex_free( (void *) infilename );
infilename = copy_string( yytext + 1 );
infilename[strlen( infilename ) - 1] = '\0';
}
YY_BREAK
-case 28:
+case 37:
YY_RULE_SETUP
-#line 211 "scan.l"
+#line 238 "scan.l"
/* ignore spurious characters */
YY_BREAK
-case 29:
-/* rule 29 can match eol */
+case 38:
+/* rule 38 can match eol */
YY_RULE_SETUP
-#line 215 "scan.l"
+#line 242 "scan.l"
++linenum; BEGIN(INITIAL);
YY_BREAK
-case 30:
+case 39:
YY_RULE_SETUP
-#line 217 "scan.l"
+#line 244 "scan.l"
+ACTION_ECHO_QSTART;
+ YY_BREAK
+case 40:
+YY_RULE_SETUP
+#line 245 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 41:
+YY_RULE_SETUP
+#line 246 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 31:
-/* rule 31 can match eol */
+case 42:
+/* rule 42 can match eol */
YY_RULE_SETUP
-#line 219 "scan.l"
+#line 248 "scan.l"
{
++linenum;
ACTION_ECHO;
@@ -2348,9 +2547,9 @@ YY_RULE_SETUP
YY_BREAK
-case 32:
+case 43:
YY_RULE_SETUP
-#line 228 "scan.l"
+#line 257 "scan.l"
{
if( --brace_depth == 0){
/* TODO: Matched. */
@@ -2359,32 +2558,42 @@ YY_RULE_SETUP
buf_strnappend(&top_buf, yytext, yyleng);
}
YY_BREAK
-case 33:
+case 44:
YY_RULE_SETUP
-#line 236 "scan.l"
-{
+#line 265 "scan.l"
+{
brace_depth++;
buf_strnappend(&top_buf, yytext, yyleng);
}
YY_BREAK
-case 34:
-/* rule 34 can match eol */
+case 45:
+/* rule 45 can match eol */
YY_RULE_SETUP
-#line 241 "scan.l"
+#line 270 "scan.l"
{
++linenum;
buf_strnappend(&top_buf, yytext, yyleng);
}
YY_BREAK
-case 35:
+case 46:
YY_RULE_SETUP
-#line 246 "scan.l"
+#line 275 "scan.l"
+buf_strnappend(&top_buf, escaped_qstart, strlen(escaped_qstart));
+ YY_BREAK
+case 47:
+YY_RULE_SETUP
+#line 276 "scan.l"
+buf_strnappend(&top_buf, escaped_qend, strlen(escaped_qend));
+ YY_BREAK
+case 48:
+YY_RULE_SETUP
+#line 278 "scan.l"
{
buf_strnappend(&top_buf, yytext, yyleng);
- }
+ }
YY_BREAK
case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE):
-#line 250 "scan.l"
+#line 282 "scan.l"
{
linenum = brace_start_line;
synerr(_("Unmatched '{'"));
@@ -2393,23 +2602,23 @@ case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE):
YY_BREAK
-case 36:
+case 49:
YY_RULE_SETUP
-#line 259 "scan.l"
+#line 291 "scan.l"
/* separates name and definition */
YY_BREAK
-case 37:
+case 50:
YY_RULE_SETUP
-#line 261 "scan.l"
+#line 293 "scan.l"
{
if(yyleng < MAXLINE)
{
strcpy( (char *) nmdef, yytext );
- }
+ }
else
{
synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ FLEX_EXIT(EXIT_FAILURE);
}
/* Skip trailing whitespace. */
for ( i = strlen( (char *) nmdef ) - 1;
@@ -2423,10 +2632,10 @@ YY_RULE_SETUP
didadef = true;
}
YY_BREAK
-case 38:
-/* rule 38 can match eol */
+case 51:
+/* rule 51 can match eol */
YY_RULE_SETUP
-#line 283 "scan.l"
+#line 315 "scan.l"
{
if ( ! didadef )
synerr( _( "incomplete name definition" ) );
@@ -2436,156 +2645,156 @@ YY_RULE_SETUP
YY_BREAK
-case 39:
-/* rule 39 can match eol */
+case 52:
+/* rule 52 can match eol */
YY_RULE_SETUP
-#line 293 "scan.l"
+#line 325 "scan.l"
++linenum; BEGIN(INITIAL);
YY_BREAK
-case 40:
+case 53:
YY_RULE_SETUP
-#line 294 "scan.l"
+#line 326 "scan.l"
option_sense = true;
YY_BREAK
-case 41:
+case 54:
YY_RULE_SETUP
-#line 296 "scan.l"
+#line 328 "scan.l"
return '=';
YY_BREAK
-case 42:
+case 55:
YY_RULE_SETUP
-#line 298 "scan.l"
+#line 330 "scan.l"
option_sense = ! option_sense;
YY_BREAK
-case 43:
+case 56:
YY_RULE_SETUP
-#line 300 "scan.l"
+#line 332 "scan.l"
csize = option_sense ? 128 : 256;
YY_BREAK
-case 44:
+case 57:
YY_RULE_SETUP
-#line 301 "scan.l"
+#line 333 "scan.l"
csize = option_sense ? 256 : 128;
YY_BREAK
-case 45:
+case 58:
YY_RULE_SETUP
-#line 303 "scan.l"
+#line 335 "scan.l"
long_align = option_sense;
YY_BREAK
-case 46:
+case 59:
YY_RULE_SETUP
-#line 304 "scan.l"
+#line 336 "scan.l"
{
ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
interactive = option_sense;
}
YY_BREAK
-case 47:
+case 60:
YY_RULE_SETUP
-#line 308 "scan.l"
+#line 340 "scan.l"
yytext_is_array = option_sense;
YY_BREAK
-case 48:
+case 61:
YY_RULE_SETUP
-#line 309 "scan.l"
+#line 341 "scan.l"
ansi_func_defs = option_sense;
YY_BREAK
-case 49:
+case 62:
YY_RULE_SETUP
-#line 310 "scan.l"
+#line 342 "scan.l"
ansi_func_protos = option_sense;
YY_BREAK
-case 50:
+case 63:
YY_RULE_SETUP
-#line 311 "scan.l"
+#line 343 "scan.l"
backing_up_report = option_sense;
YY_BREAK
-case 51:
+case 64:
YY_RULE_SETUP
-#line 312 "scan.l"
+#line 344 "scan.l"
interactive = ! option_sense;
YY_BREAK
-case 52:
+case 65:
YY_RULE_SETUP
-#line 313 "scan.l"
+#line 345 "scan.l"
bison_bridge_lval = option_sense;
YY_BREAK
-case 53:
+case 66:
YY_RULE_SETUP
-#line 314 "scan.l"
+#line 346 "scan.l"
{ if((bison_bridge_lloc = option_sense))
bison_bridge_lval = true;
}
YY_BREAK
-case 54:
+case 67:
YY_RULE_SETUP
-#line 317 "scan.l"
+#line 349 "scan.l"
C_plus_plus = option_sense;
YY_BREAK
-case 55:
+case 68:
YY_RULE_SETUP
-#line 318 "scan.l"
-caseins = ! option_sense;
+#line 350 "scan.l"
+sf_set_case_ins(!option_sense);
YY_BREAK
-case 56:
+case 69:
YY_RULE_SETUP
-#line 319 "scan.l"
-caseins = option_sense;
+#line 351 "scan.l"
+sf_set_case_ins(option_sense);
YY_BREAK
-case 57:
+case 70:
YY_RULE_SETUP
-#line 320 "scan.l"
+#line 352 "scan.l"
ddebug = option_sense;
YY_BREAK
-case 58:
+case 71:
YY_RULE_SETUP
-#line 321 "scan.l"
+#line 353 "scan.l"
spprdflt = ! option_sense;
YY_BREAK
-case 59:
+case 72:
YY_RULE_SETUP
-#line 322 "scan.l"
+#line 354 "scan.l"
useecs = option_sense;
YY_BREAK
-case 60:
+case 73:
YY_RULE_SETUP
-#line 323 "scan.l"
+#line 355 "scan.l"
{
useecs = usemecs = false;
use_read = fullspd = true;
}
YY_BREAK
-case 61:
+case 74:
YY_RULE_SETUP
-#line 327 "scan.l"
+#line 359 "scan.l"
{
useecs = usemecs = false;
use_read = fulltbl = true;
}
YY_BREAK
-case 62:
+case 75:
YY_RULE_SETUP
-#line 331 "scan.l"
+#line 363 "scan.l"
ACTION_IFDEF("YY_NO_INPUT", ! option_sense);
YY_BREAK
-case 63:
+case 76:
YY_RULE_SETUP
-#line 332 "scan.l"
+#line 364 "scan.l"
interactive = option_sense;
YY_BREAK
-case 64:
+case 77:
YY_RULE_SETUP
-#line 333 "scan.l"
+#line 365 "scan.l"
lex_compat = option_sense;
YY_BREAK
-case 65:
+case 78:
YY_RULE_SETUP
-#line 334 "scan.l"
+#line 366 "scan.l"
posix_compat = option_sense;
YY_BREAK
-case 66:
+case 79:
YY_RULE_SETUP
-#line 335 "scan.l"
+#line 367 "scan.l"
{
ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
/* Override yywrap */
@@ -2593,273 +2802,278 @@ YY_RULE_SETUP
do_yywrap = false;
}
YY_BREAK
-case 67:
+case 80:
YY_RULE_SETUP
-#line 341 "scan.l"
+#line 373 "scan.l"
usemecs = option_sense;
YY_BREAK
-case 68:
+case 81:
YY_RULE_SETUP
-#line 342 "scan.l"
+#line 374 "scan.l"
{
ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
interactive = !option_sense;
}
YY_BREAK
-case 69:
+case 82:
YY_RULE_SETUP
-#line 346 "scan.l"
+#line 378 "scan.l"
performance_report += option_sense ? 1 : -1;
YY_BREAK
-case 70:
+case 83:
YY_RULE_SETUP
-#line 347 "scan.l"
+#line 379 "scan.l"
yytext_is_array = ! option_sense;
YY_BREAK
-case 71:
+case 84:
YY_RULE_SETUP
-#line 348 "scan.l"
+#line 380 "scan.l"
use_read = option_sense;
YY_BREAK
-case 72:
+case 85:
YY_RULE_SETUP
-#line 349 "scan.l"
+#line 381 "scan.l"
reentrant = option_sense;
YY_BREAK
-case 73:
+case 86:
YY_RULE_SETUP
-#line 350 "scan.l"
+#line 382 "scan.l"
reject_really_used = option_sense;
YY_BREAK
-case 74:
+case 87:
YY_RULE_SETUP
-#line 351 "scan.l"
+#line 383 "scan.l"
ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense );
YY_BREAK
-case 75:
+case 88:
YY_RULE_SETUP
-#line 352 "scan.l"
+#line 384 "scan.l"
do_stdinit = option_sense;
YY_BREAK
-case 76:
+case 89:
YY_RULE_SETUP
-#line 353 "scan.l"
+#line 385 "scan.l"
use_stdout = option_sense;
YY_BREAK
-case 77:
+case 90:
YY_RULE_SETUP
-#line 354 "scan.l"
+#line 386 "scan.l"
ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense);
YY_BREAK
-case 78:
+case 91:
YY_RULE_SETUP
-#line 355 "scan.l"
+#line 387 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense);
YY_BREAK
-case 79:
+case 92:
YY_RULE_SETUP
-#line 356 "scan.l"
+#line 388 "scan.l"
printstats = option_sense;
YY_BREAK
-case 80:
+case 93:
YY_RULE_SETUP
-#line 357 "scan.l"
+#line 389 "scan.l"
nowarn = ! option_sense;
YY_BREAK
-case 81:
+case 94:
YY_RULE_SETUP
-#line 358 "scan.l"
+#line 390 "scan.l"
do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense);
YY_BREAK
-case 82:
+case 95:
YY_RULE_SETUP
-#line 359 "scan.l"
+#line 391 "scan.l"
yymore_really_used = option_sense;
YY_BREAK
-case 83:
+case 96:
YY_RULE_SETUP
-#line 360 "scan.l"
+#line 392 "scan.l"
do_yywrap = option_sense;
YY_BREAK
-case 84:
+case 97:
YY_RULE_SETUP
-#line 362 "scan.l"
+#line 394 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense);
YY_BREAK
-case 85:
+case 98:
YY_RULE_SETUP
-#line 363 "scan.l"
+#line 395 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense);
YY_BREAK
-case 86:
+case 99:
YY_RULE_SETUP
-#line 364 "scan.l"
+#line 396 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense);
YY_BREAK
-case 87:
+case 100:
YY_RULE_SETUP
-#line 366 "scan.l"
+#line 398 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense);
YY_BREAK
-case 88:
+case 101:
YY_RULE_SETUP
-#line 367 "scan.l"
+#line 399 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense);
YY_BREAK
-case 89:
+case 102:
YY_RULE_SETUP
-#line 368 "scan.l"
+#line 400 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense);
YY_BREAK
-case 90:
+case 103:
YY_RULE_SETUP
-#line 370 "scan.l"
+#line 402 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense);
YY_BREAK
-case 91:
+case 104:
YY_RULE_SETUP
-#line 371 "scan.l"
+#line 403 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense);
YY_BREAK
-case 92:
+case 105:
YY_RULE_SETUP
-#line 372 "scan.l"
+#line 404 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense);
YY_BREAK
-case 93:
+case 106:
YY_RULE_SETUP
-#line 374 "scan.l"
+#line 406 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense);
YY_BREAK
-case 94:
+case 107:
YY_RULE_SETUP
-#line 375 "scan.l"
+#line 407 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense);
YY_BREAK
-case 95:
+case 108:
YY_RULE_SETUP
-#line 376 "scan.l"
+#line 408 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense);
YY_BREAK
-case 96:
+case 109:
YY_RULE_SETUP
-#line 377 "scan.l"
+#line 409 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense);
YY_BREAK
-case 97:
+case 110:
YY_RULE_SETUP
-#line 378 "scan.l"
+#line 410 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense);
YY_BREAK
-case 98:
+case 111:
YY_RULE_SETUP
-#line 379 "scan.l"
+#line 411 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense);
YY_BREAK
-case 99:
+case 112:
YY_RULE_SETUP
-#line 380 "scan.l"
+#line 412 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense);
YY_BREAK
-case 100:
+case 113:
YY_RULE_SETUP
-#line 381 "scan.l"
+#line 413 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense);
YY_BREAK
-case 101:
+case 114:
YY_RULE_SETUP
-#line 382 "scan.l"
+#line 414 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense);
YY_BREAK
-case 102:
+case 115:
YY_RULE_SETUP
-#line 383 "scan.l"
+#line 415 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense);
YY_BREAK
-case 103:
+case 116:
YY_RULE_SETUP
-#line 384 "scan.l"
+#line 416 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense);
YY_BREAK
-case 104:
+case 117:
YY_RULE_SETUP
-#line 385 "scan.l"
+#line 417 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense);
YY_BREAK
-case 105:
+case 118:
YY_RULE_SETUP
-#line 386 "scan.l"
+#line 418 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense);
YY_BREAK
-case 106:
+case 119:
YY_RULE_SETUP
-#line 387 "scan.l"
+#line 419 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense);
YY_BREAK
-case 107:
+case 120:
YY_RULE_SETUP
-#line 388 "scan.l"
+#line 420 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense);
YY_BREAK
-case 108:
+case 121:
YY_RULE_SETUP
-#line 389 "scan.l"
+#line 421 "scan.l"
ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense);
YY_BREAK
-case 109:
+case 122:
YY_RULE_SETUP
-#line 391 "scan.l"
+#line 423 "scan.l"
+return OPT_EXTRA_TYPE;
+ YY_BREAK
+case 123:
+YY_RULE_SETUP
+#line 424 "scan.l"
return OPT_OUTFILE;
YY_BREAK
-case 110:
+case 124:
YY_RULE_SETUP
-#line 392 "scan.l"
+#line 425 "scan.l"
return OPT_PREFIX;
YY_BREAK
-case 111:
+case 125:
YY_RULE_SETUP
-#line 393 "scan.l"
+#line 426 "scan.l"
return OPT_YYCLASS;
YY_BREAK
-case 112:
+case 126:
YY_RULE_SETUP
-#line 394 "scan.l"
+#line 427 "scan.l"
return OPT_HEADER;
YY_BREAK
-case 113:
+case 127:
YY_RULE_SETUP
-#line 395 "scan.l"
+#line 428 "scan.l"
return OPT_TABLES;
YY_BREAK
-case 114:
+case 128:
YY_RULE_SETUP
-#line 396 "scan.l"
+#line 429 "scan.l"
{
tablesverify = option_sense;
if(!tablesext && option_sense)
tablesext = true;
}
YY_BREAK
-case 115:
+case 129:
YY_RULE_SETUP
-#line 403 "scan.l"
+#line 436 "scan.l"
{
- if(yyleng-1 < MAXLINE)
- {
+ if(yyleng-1 < MAXLINE)
+ {
strcpy( nmstr, yytext + 1 );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
}
nmstr[strlen( nmstr ) - 1] = '\0';
return NAME;
}
YY_BREAK
-case 116:
+case 130:
YY_RULE_SETUP
-#line 417 "scan.l"
+#line 450 "scan.l"
{
format_synerr( _( "unrecognized %%option: %s" ),
yytext );
@@ -2867,31 +3081,31 @@ YY_RULE_SETUP
}
YY_BREAK
-case 117:
-/* rule 117 can match eol */
+case 131:
+/* rule 131 can match eol */
YY_RULE_SETUP
-#line 424 "scan.l"
+#line 457 "scan.l"
++linenum; BEGIN(INITIAL);
YY_BREAK
-case 118:
+case 132:
YY_RULE_SETUP
-#line 428 "scan.l"
+#line 461 "scan.l"
++bracelevel; yyless( 2 ); /* eat only %{ */
YY_BREAK
-case 119:
+case 133:
YY_RULE_SETUP
-#line 429 "scan.l"
+#line 462 "scan.l"
--bracelevel; yyless( 2 ); /* eat only %} */
YY_BREAK
-case 120:
+case 134:
YY_RULE_SETUP
-#line 431 "scan.l"
+#line 464 "scan.l"
ACTION_ECHO; /* indented code in prolog */
YY_BREAK
-case 121:
+case 135:
YY_RULE_SETUP
-#line 433 "scan.l"
+#line 466 "scan.l"
{ /* non-indented code */
if ( bracelevel <= 0 )
{ /* not in %{ ... %} */
@@ -2904,19 +3118,19 @@ YY_RULE_SETUP
ACTION_ECHO;
}
YY_BREAK
-case 122:
+case 136:
YY_RULE_SETUP
-#line 445 "scan.l"
+#line 478 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 123:
-/* rule 123 can match eol */
+case 137:
+/* rule 137 can match eol */
YY_RULE_SETUP
-#line 446 "scan.l"
+#line 479 "scan.l"
++linenum; ACTION_ECHO;
YY_BREAK
case YY_STATE_EOF(SECT2PROLOG):
-#line 448 "scan.l"
+#line 481 "scan.l"
{
mark_prolog();
sectnum = 0;
@@ -2925,15 +3139,15 @@ case YY_STATE_EOF(SECT2PROLOG):
YY_BREAK
-case 124:
-/* rule 124 can match eol */
+case 138:
+/* rule 138 can match eol */
YY_RULE_SETUP
-#line 456 "scan.l"
+#line 489 "scan.l"
++linenum; /* allow blank lines in section 2 */
YY_BREAK
-case 125:
+case 139:
YY_RULE_SETUP
-#line 458 "scan.l"
+#line 491 "scan.l"
{
indented_code = false;
doing_codeblock = true;
@@ -2941,27 +3155,32 @@ YY_RULE_SETUP
BEGIN(PERCENT_BRACE_ACTION);
}
YY_BREAK
-case 126:
+case 140:
YY_RULE_SETUP
-#line 465 "scan.l"
-BEGIN(SC); return '<';
+#line 498 "scan.l"
+{
+ /* Allow "<" to appear in (?x) patterns. */
+ if (!sf_skip_ws())
+ BEGIN(SC);
+ return '<';
+ }
YY_BREAK
-case 127:
+case 141:
YY_RULE_SETUP
-#line 466 "scan.l"
+#line 504 "scan.l"
return '^';
YY_BREAK
-case 128:
+case 142:
YY_RULE_SETUP
-#line 467 "scan.l"
+#line 505 "scan.l"
BEGIN(QUOTE); return '"';
YY_BREAK
-case 129:
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 143:
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 468 "scan.l"
+#line 506 "scan.l"
{
BEGIN(NUM);
if ( lex_compat || posix_compat )
@@ -2970,18 +3189,18 @@ YY_RULE_SETUP
return BEGIN_REPEAT_FLEX;
}
YY_BREAK
-case 130:
-/* rule 130 can match eol */
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 144:
+/* rule 144 can match eol */
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 475 "scan.l"
+#line 513 "scan.l"
return '$';
YY_BREAK
-case 131:
+case 145:
YY_RULE_SETUP
-#line 477 "scan.l"
+#line 515 "scan.l"
{
bracelevel = 1;
BEGIN(PERCENT_BRACE_ACTION);
@@ -2994,75 +3213,106 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 132:
-/* rule 132 can match eol */
+case 146:
+/* rule 146 can match eol */
YY_RULE_SETUP
-#line 488 "scan.l"
-continued_action = true; ++linenum; return '\n';
+#line 526 "scan.l"
+{
+ 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;
+ yyless(amt);
+ }
+ else {
+ continued_action = true;
+ ++linenum;
+ return '\n';
+ }
+ }
YY_BREAK
-case 133:
+case 147:
YY_RULE_SETUP
-#line 490 "scan.l"
+#line 541 "scan.l"
{
- yyless( yyleng - 2 ); /* put back '/', '*' */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
+
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ yy_push_state(COMMENT_DISCARD);
+ }
+ else{
+ yyless( yyleng - 2 ); /* put back '/', '*' */
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+ }
}
YY_BREAK
-case 134:
+case 148:
YY_RULE_SETUP
-#line 497 "scan.l"
-/* allow indented rules */
+#line 555 "scan.l"
+/* allow indented rules */ ;
YY_BREAK
-case 135:
+case 149:
YY_RULE_SETUP
-#line 499 "scan.l"
+#line 557 "scan.l"
{
- /* This rule is separate from the one below because
- * otherwise we get variable trailing context, so
- * we can't build the scanner using -{f,F}.
- */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
- return '\n';
- }
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ }
+ else{
+ /* This rule is separate from the one below because
+ * otherwise we get variable trailing context, so
+ * we can't build the scanner using -{f,F}.
+ */
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+
+ if ( in_rule )
+ {
+ doing_rule_action = true;
+ in_rule = false;
+ return '\n';
+ }
+ }
}
YY_BREAK
-case 136:
-/* rule 136 can match eol */
+case 150:
+/* rule 150 can match eol */
YY_RULE_SETUP
-#line 516 "scan.l"
+#line 579 "scan.l"
{
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
- unput( '\n' ); /* so <ACTION> sees it */
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
- return '\n';
- }
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ ++linenum;
+ }
+ else{
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+ unput( '\n' ); /* so <ACTION> sees it */
+
+ if ( in_rule )
+ {
+ doing_rule_action = true;
+ in_rule = false;
+ return '\n';
+ }
+ }
}
YY_BREAK
-case 137:
-#line 531 "scan.l"
-case 138:
+case 151:
+#line 600 "scan.l"
+case 152:
YY_RULE_SETUP
-#line 531 "scan.l"
+#line 600 "scan.l"
return EOF_OP;
YY_BREAK
-case 139:
+case 153:
YY_RULE_SETUP
-#line 533 "scan.l"
+#line 602 "scan.l"
{
sectnum = 3;
BEGIN(SECT3);
@@ -3070,26 +3320,31 @@ YY_RULE_SETUP
yyterminate(); /* to stop the parser */
}
YY_BREAK
-case 140:
+case 154:
YY_RULE_SETUP
-#line 540 "scan.l"
+#line 609 "scan.l"
{
int cclval;
- if(yyleng < MAXLINE)
- {
+ if(yyleng < MAXLINE)
+ {
strcpy( nmstr, yytext );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
+ }
/* Check to see if we've already encountered this
* ccl.
*/
- if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
+ if (0 /* <--- This "0" effectively disables the reuse of a
+ * character class (purely based on its source text).
+ * The reason it was disabled is so yacc/bison can parse
+ * ccl operations, such as ccl difference and union.
+ */
+ && (cclval = ccllookup( (Char *) nmstr )) != 0 )
{
if ( input() != ']' )
synerr( _( "bad character class" ) );
@@ -3115,30 +3370,40 @@ YY_RULE_SETUP
}
}
YY_BREAK
+case 155:
+YY_RULE_SETUP
+#line 655 "scan.l"
+return CCL_OP_DIFF;
+ YY_BREAK
+case 156:
+YY_RULE_SETUP
+#line 656 "scan.l"
+return CCL_OP_UNION;
+ YY_BREAK
/* Check for :space: at the end of the rule so we don't
* wrap the expanded regex in '(' ')' -- breaking trailing
* context.
*/
-case 141:
-/* rule 141 can match eol */
+case 157:
+/* rule 157 can match eol */
YY_RULE_SETUP
-#line 586 "scan.l"
+#line 663 "scan.l"
{
register Char *nmdefptr;
int end_is_ws, end_ch;
-
+
end_ch = yytext[yyleng-1];
end_is_ws = end_ch != '}' ? 1 : 0;
- if(yyleng-1 < MAXLINE)
- {
+ if(yyleng-1 < MAXLINE)
+ {
strcpy( nmstr, yytext + 1 );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
+ }
nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if ( (nmdefptr = ndlookup( nmstr )) == 0 )
@@ -3154,7 +3419,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if ( lex_compat || nmdefptr[0] == '^' ||
(len > 0 && nmdefptr[len - 1] == '$')
- || (end_is_ws && trlcontxt))
+ || (end_is_ws && trlcontxt && !sf_skip_ws()))
{ /* don't use ()'s after all */
PUT_BACK_STRING((char *) nmdefptr, 0);
@@ -3171,76 +3436,126 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
}
YY_BREAK
-case 142:
+case 158:
YY_RULE_SETUP
-#line 634 "scan.l"
+#line 711 "scan.l"
+{
+ if (sf_skip_ws())
+ yy_push_state(COMMENT_DISCARD);
+ else{
+ /* Push back the "*" and return "/" as usual. */
+ yyless(1);
+ return '/';
+ }
+ }
+ YY_BREAK
+case 159:
+YY_RULE_SETUP
+#line 721 "scan.l"
+{
+ if (lex_compat || posix_compat){
+ /* Push back the "?#" and treat it like a normal parens. */
+ yyless(1);
+ sf_push();
+ return '(';
+ }
+ else
+ yy_push_state(EXTENDED_COMMENT);
+ }
+ YY_BREAK
+case 160:
+YY_RULE_SETUP
+#line 731 "scan.l"
+{
+ sf_push();
+ if (lex_compat || posix_compat)
+ /* Push back the "?" and treat it like a normal parens. */
+ yyless(1);
+ else
+ BEGIN(GROUP_WITH_PARAMS);
+ return '(';
+ }
+ YY_BREAK
+case 161:
+YY_RULE_SETUP
+#line 740 "scan.l"
+sf_push(); return '(';
+ YY_BREAK
+case 162:
+YY_RULE_SETUP
+#line 741 "scan.l"
+sf_pop(); return ')';
+ YY_BREAK
+case 163:
+YY_RULE_SETUP
+#line 743 "scan.l"
return (unsigned char) yytext[0];
YY_BREAK
-case 143:
+case 164:
YY_RULE_SETUP
-#line 635 "scan.l"
+#line 744 "scan.l"
RETURNCHAR;
YY_BREAK
-case 144:
-/* rule 144 can match eol */
+case 165:
+/* rule 165 can match eol */
YY_RULE_SETUP
-#line 640 "scan.l"
+#line 749 "scan.l"
++linenum; /* Allow blank lines & continuations */
YY_BREAK
-case 145:
+case 166:
YY_RULE_SETUP
-#line 641 "scan.l"
+#line 750 "scan.l"
return (unsigned char) yytext[0];
YY_BREAK
-case 146:
+case 167:
YY_RULE_SETUP
-#line 642 "scan.l"
+#line 751 "scan.l"
BEGIN(SECT2); return '>';
YY_BREAK
-case 147:
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 168:
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 643 "scan.l"
+#line 752 "scan.l"
BEGIN(CARETISBOL); return '>';
YY_BREAK
-case 148:
+case 169:
YY_RULE_SETUP
-#line 644 "scan.l"
+#line 753 "scan.l"
RETURNNAME;
YY_BREAK
-case 149:
+case 170:
YY_RULE_SETUP
-#line 645 "scan.l"
+#line 754 "scan.l"
{
format_synerr( _( "bad <start condition>: %s" ),
yytext );
}
YY_BREAK
-case 150:
+case 171:
YY_RULE_SETUP
-#line 651 "scan.l"
+#line 760 "scan.l"
BEGIN(SECT2); return '^';
YY_BREAK
-case 151:
+case 172:
YY_RULE_SETUP
-#line 655 "scan.l"
+#line 764 "scan.l"
RETURNCHAR;
YY_BREAK
-case 152:
+case 173:
YY_RULE_SETUP
-#line 656 "scan.l"
+#line 765 "scan.l"
BEGIN(SECT2); return '"';
YY_BREAK
-case 153:
-/* rule 153 can match eol */
+case 174:
+/* rule 174 can match eol */
YY_RULE_SETUP
-#line 658 "scan.l"
+#line 767 "scan.l"
{
synerr( _( "missing quote" ) );
BEGIN(SECT2);
@@ -3250,51 +3565,100 @@ YY_RULE_SETUP
YY_BREAK
-case 154:
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 175:
+YY_RULE_SETUP
+#line 776 "scan.l"
+BEGIN(SECT2);
+ YY_BREAK
+case 176:
+YY_RULE_SETUP
+#line 777 "scan.l"
+BEGIN(GROUP_MINUS_PARAMS);
+ YY_BREAK
+case 177:
+YY_RULE_SETUP
+#line 778 "scan.l"
+sf_set_case_ins(1);
+ YY_BREAK
+case 178:
+YY_RULE_SETUP
+#line 779 "scan.l"
+sf_set_dot_all(1);
+ YY_BREAK
+case 179:
+YY_RULE_SETUP
+#line 780 "scan.l"
+sf_set_skip_ws(1);
+ YY_BREAK
+
+
+case 180:
+YY_RULE_SETUP
+#line 783 "scan.l"
+BEGIN(SECT2);
+ YY_BREAK
+case 181:
+YY_RULE_SETUP
+#line 784 "scan.l"
+sf_set_case_ins(0);
+ YY_BREAK
+case 182:
+YY_RULE_SETUP
+#line 785 "scan.l"
+sf_set_dot_all(0);
+ YY_BREAK
+case 183:
+YY_RULE_SETUP
+#line 786 "scan.l"
+sf_set_skip_ws(0);
+ YY_BREAK
+
+
+case 184:
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 668 "scan.l"
+#line 790 "scan.l"
BEGIN(CCL); return '^';
YY_BREAK
-case 155:
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 185:
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 669 "scan.l"
+#line 791 "scan.l"
return '^';
YY_BREAK
-case 156:
+case 186:
YY_RULE_SETUP
-#line 670 "scan.l"
+#line 792 "scan.l"
BEGIN(CCL); RETURNCHAR;
YY_BREAK
-case 157:
-*yy_cp = YY_G(yy_hold_char); /* undo effects of setting up yytext */
-YY_G(yy_c_buf_p) = yy_cp = yy_bp + 1;
+case 187:
+*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
+(yy_c_buf_p) = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
-#line 674 "scan.l"
+#line 796 "scan.l"
return '-';
YY_BREAK
-case 158:
+case 188:
YY_RULE_SETUP
-#line 675 "scan.l"
+#line 797 "scan.l"
RETURNCHAR;
YY_BREAK
-case 159:
+case 189:
YY_RULE_SETUP
-#line 676 "scan.l"
+#line 798 "scan.l"
BEGIN(SECT2); return ']';
YY_BREAK
-case 160:
-/* rule 160 can match eol */
+case 190:
+/* rule 190 can match eol */
YY_RULE_SETUP
-#line 677 "scan.l"
+#line 799 "scan.l"
{
synerr( _( "bad character class" ) );
BEGIN(SECT2);
@@ -3303,69 +3667,129 @@ YY_RULE_SETUP
YY_BREAK
-case 161:
+case 191:
YY_RULE_SETUP
-#line 685 "scan.l"
+#line 807 "scan.l"
BEGIN(CCL); return CCE_ALNUM;
YY_BREAK
-case 162:
+case 192:
YY_RULE_SETUP
-#line 686 "scan.l"
+#line 808 "scan.l"
BEGIN(CCL); return CCE_ALPHA;
YY_BREAK
-case 163:
+case 193:
YY_RULE_SETUP
-#line 687 "scan.l"
+#line 809 "scan.l"
BEGIN(CCL); return CCE_BLANK;
YY_BREAK
-case 164:
+case 194:
YY_RULE_SETUP
-#line 688 "scan.l"
+#line 810 "scan.l"
BEGIN(CCL); return CCE_CNTRL;
YY_BREAK
-case 165:
+case 195:
YY_RULE_SETUP
-#line 689 "scan.l"
+#line 811 "scan.l"
BEGIN(CCL); return CCE_DIGIT;
YY_BREAK
-case 166:
+case 196:
YY_RULE_SETUP
-#line 690 "scan.l"
+#line 812 "scan.l"
BEGIN(CCL); return CCE_GRAPH;
YY_BREAK
-case 167:
+case 197:
YY_RULE_SETUP
-#line 691 "scan.l"
+#line 813 "scan.l"
BEGIN(CCL); return CCE_LOWER;
YY_BREAK
-case 168:
+case 198:
YY_RULE_SETUP
-#line 692 "scan.l"
+#line 814 "scan.l"
BEGIN(CCL); return CCE_PRINT;
YY_BREAK
-case 169:
+case 199:
YY_RULE_SETUP
-#line 693 "scan.l"
+#line 815 "scan.l"
BEGIN(CCL); return CCE_PUNCT;
YY_BREAK
-case 170:
+case 200:
YY_RULE_SETUP
-#line 694 "scan.l"
+#line 816 "scan.l"
BEGIN(CCL); return CCE_SPACE;
YY_BREAK
-case 171:
+case 201:
YY_RULE_SETUP
-#line 695 "scan.l"
+#line 817 "scan.l"
BEGIN(CCL); return CCE_UPPER;
YY_BREAK
-case 172:
+case 202:
YY_RULE_SETUP
-#line 696 "scan.l"
+#line 818 "scan.l"
BEGIN(CCL); return CCE_XDIGIT;
YY_BREAK
-case 173:
+case 203:
+YY_RULE_SETUP
+#line 820 "scan.l"
+BEGIN(CCL); return CCE_NEG_ALNUM;
+ YY_BREAK
+case 204:
+YY_RULE_SETUP
+#line 821 "scan.l"
+BEGIN(CCL); return CCE_NEG_ALPHA;
+ YY_BREAK
+case 205:
+YY_RULE_SETUP
+#line 822 "scan.l"
+BEGIN(CCL); return CCE_NEG_BLANK;
+ YY_BREAK
+case 206:
+YY_RULE_SETUP
+#line 823 "scan.l"
+BEGIN(CCL); return CCE_NEG_CNTRL;
+ YY_BREAK
+case 207:
+YY_RULE_SETUP
+#line 824 "scan.l"
+BEGIN(CCL); return CCE_NEG_DIGIT;
+ YY_BREAK
+case 208:
YY_RULE_SETUP
-#line 697 "scan.l"
+#line 825 "scan.l"
+BEGIN(CCL); return CCE_NEG_GRAPH;
+ YY_BREAK
+case 209:
+YY_RULE_SETUP
+#line 826 "scan.l"
+BEGIN(CCL); return CCE_NEG_LOWER;
+ YY_BREAK
+case 210:
+YY_RULE_SETUP
+#line 827 "scan.l"
+BEGIN(CCL); return CCE_NEG_PRINT;
+ YY_BREAK
+case 211:
+YY_RULE_SETUP
+#line 828 "scan.l"
+BEGIN(CCL); return CCE_NEG_PUNCT;
+ YY_BREAK
+case 212:
+YY_RULE_SETUP
+#line 829 "scan.l"
+BEGIN(CCL); return CCE_NEG_SPACE;
+ YY_BREAK
+case 213:
+YY_RULE_SETUP
+#line 830 "scan.l"
+BEGIN(CCL); return CCE_NEG_UPPER;
+ YY_BREAK
+case 214:
+YY_RULE_SETUP
+#line 831 "scan.l"
+BEGIN(CCL); return CCE_NEG_XDIGIT;
+ YY_BREAK
+case 215:
+YY_RULE_SETUP
+#line 832 "scan.l"
{
format_synerr(
_( "bad character class expression: %s" ),
@@ -3375,22 +3799,22 @@ YY_RULE_SETUP
YY_BREAK
-case 174:
+case 216:
YY_RULE_SETUP
-#line 706 "scan.l"
+#line 841 "scan.l"
{
yylval = myctoi( yytext );
return NUMBER;
}
YY_BREAK
-case 175:
+case 217:
YY_RULE_SETUP
-#line 711 "scan.l"
+#line 846 "scan.l"
return ',';
YY_BREAK
-case 176:
+case 218:
YY_RULE_SETUP
-#line 712 "scan.l"
+#line 847 "scan.l"
{
BEGIN(SECT2);
if ( lex_compat || posix_compat )
@@ -3399,19 +3823,19 @@ YY_RULE_SETUP
return END_REPEAT_FLEX;
}
YY_BREAK
-case 177:
+case 219:
YY_RULE_SETUP
-#line 720 "scan.l"
+#line 855 "scan.l"
{
synerr( _( "bad character inside {}'s" ) );
BEGIN(SECT2);
return '}';
}
YY_BREAK
-case 178:
-/* rule 178 can match eol */
+case 220:
+/* rule 220 can match eol */
YY_RULE_SETUP
-#line 726 "scan.l"
+#line 861 "scan.l"
{
synerr( _( "missing }" ) );
BEGIN(SECT2);
@@ -3421,43 +3845,53 @@ YY_RULE_SETUP
YY_BREAK
-case 179:
+case 221:
YY_RULE_SETUP
-#line 736 "scan.l"
+#line 871 "scan.l"
bracelevel = 0;
YY_BREAK
-case 180:
+case 222:
YY_RULE_SETUP
-#line 738 "scan.l"
+#line 873 "scan.l"
ACTION_ECHO; yy_push_state( COMMENT );
YY_BREAK
-case 181:
+case 223:
YY_RULE_SETUP
-#line 741 "scan.l"
+#line 876 "scan.l"
{
ACTION_ECHO;
CHECK_REJECT(yytext);
}
YY_BREAK
-case 182:
+case 224:
YY_RULE_SETUP
-#line 745 "scan.l"
+#line 880 "scan.l"
{
ACTION_ECHO;
CHECK_YYMORE(yytext);
}
YY_BREAK
-case 183:
+case 225:
YY_RULE_SETUP
-#line 751 "scan.l"
+#line 886 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 226:
+YY_RULE_SETUP
+#line 887 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 227:
+YY_RULE_SETUP
+#line 888 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 184:
-/* rule 184 can match eol */
+case 228:
+/* rule 228 can match eol */
YY_RULE_SETUP
-#line 752 "scan.l"
+#line 889 "scan.l"
{
++linenum;
ACTION_ECHO;
@@ -3475,40 +3909,55 @@ YY_RULE_SETUP
/* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
-case 185:
+case 229:
YY_RULE_SETUP
-#line 770 "scan.l"
+#line 907 "scan.l"
ACTION_ECHO; ++bracelevel;
YY_BREAK
-case 186:
+case 230:
YY_RULE_SETUP
-#line 771 "scan.l"
+#line 908 "scan.l"
ACTION_ECHO; --bracelevel;
YY_BREAK
-case 187:
+case 231:
YY_RULE_SETUP
-#line 772 "scan.l"
+#line 909 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 232:
+YY_RULE_SETUP
+#line 910 "scan.l"
+ACTION_ECHO_QEND;
+ YY_BREAK
+case 233:
+YY_RULE_SETUP
+#line 911 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 188:
+case 234:
YY_RULE_SETUP
-#line 773 "scan.l"
+#line 912 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 189:
+case 235:
+YY_RULE_SETUP
+#line 913 "scan.l"
+ACTION_ECHO;
+ YY_BREAK
+case 236:
YY_RULE_SETUP
-#line 774 "scan.l"
+#line 914 "scan.l"
ACTION_ECHO; /* character constant */
YY_BREAK
-case 190:
+case 237:
YY_RULE_SETUP
-#line 775 "scan.l"
+#line 915 "scan.l"
ACTION_ECHO; BEGIN(ACTION_STRING);
YY_BREAK
-case 191:
-/* rule 191 can match eol */
+case 238:
+/* rule 238 can match eol */
YY_RULE_SETUP
-#line 776 "scan.l"
+#line 916 "scan.l"
{
++linenum;
ACTION_ECHO;
@@ -3522,52 +3971,62 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 192:
+case 239:
YY_RULE_SETUP
-#line 788 "scan.l"
+#line 928 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 193:
+case 240:
YY_RULE_SETUP
-#line 792 "scan.l"
+#line 932 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 194:
+case 241:
YY_RULE_SETUP
-#line 793 "scan.l"
+#line 933 "scan.l"
ACTION_ECHO;
YY_BREAK
-case 195:
-/* rule 195 can match eol */
+case 242:
+/* rule 242 can match eol */
YY_RULE_SETUP
-#line 794 "scan.l"
+#line 934 "scan.l"
++linenum; ACTION_ECHO; BEGIN(ACTION);
YY_BREAK
-case 196:
+case 243:
YY_RULE_SETUP
-#line 795 "scan.l"
+#line 935 "scan.l"
ACTION_ECHO; BEGIN(ACTION);
YY_BREAK
-case 197:
+case 244:
YY_RULE_SETUP
-#line 796 "scan.l"
+#line 936 "scan.l"
ACTION_ECHO;
YY_BREAK
case YY_STATE_EOF(COMMENT):
+case YY_STATE_EOF(COMMENT_DISCARD):
case YY_STATE_EOF(ACTION):
case YY_STATE_EOF(ACTION_STRING):
-#line 799 "scan.l"
+#line 939 "scan.l"
{
synerr( _( "EOF encountered inside an action" ) );
yyterminate();
}
YY_BREAK
-case 198:
+case YY_STATE_EOF(EXTENDED_COMMENT):
+case YY_STATE_EOF(GROUP_WITH_PARAMS):
+case YY_STATE_EOF(GROUP_MINUS_PARAMS):
+#line 944 "scan.l"
+{
+ synerr( _( "EOF encountered inside pattern" ) );
+ yyterminate();
+ }
+ YY_BREAK
+case 245:
YY_RULE_SETUP
-#line 805 "scan.l"
+#line 949 "scan.l"
{
yylval = myesc( (Char *) yytext );
@@ -3578,68 +4037,84 @@ YY_RULE_SETUP
}
YY_BREAK
-case 199:
-/* rule 199 can match eol */
+case 246:
YY_RULE_SETUP
-#line 816 "scan.l"
+#line 960 "scan.l"
+fwrite (escaped_qstart, 1, strlen(escaped_qstart), yyout);
+ YY_BREAK
+case 247:
+YY_RULE_SETUP
+#line 961 "scan.l"
+fwrite (escaped_qend, 1, strlen(escaped_qend), yyout);
+ YY_BREAK
+case 248:
+/* rule 248 can match eol */
+YY_RULE_SETUP
+#line 962 "scan.l"
+ECHO;
+ YY_BREAK
+case 249:
+/* rule 249 can match eol */
+YY_RULE_SETUP
+#line 963 "scan.l"
ECHO;
YY_BREAK
case YY_STATE_EOF(SECT3):
-#line 817 "scan.l"
+#line 964 "scan.l"
sectnum = 0; yyterminate();
YY_BREAK
-case 200:
-/* rule 200 can match eol */
+case 250:
+/* rule 250 can match eol */
YY_RULE_SETUP
-#line 820 "scan.l"
+#line 967 "scan.l"
format_synerr( _( "bad character: %s" ), yytext );
YY_BREAK
-case 201:
+case 251:
YY_RULE_SETUP
-#line 822 "scan.l"
+#line 969 "scan.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 3604 "scan.c"
-case YY_STATE_EOF(INITIAL):
-case YY_STATE_EOF(SECT2):
-case YY_STATE_EOF(CODEBLOCK):
-case YY_STATE_EOF(PICKUPDEF):
-case YY_STATE_EOF(SC):
-case YY_STATE_EOF(CARETISBOL):
-case YY_STATE_EOF(NUM):
-case YY_STATE_EOF(QUOTE):
-case YY_STATE_EOF(FIRSTCCL):
-case YY_STATE_EOF(CCL):
-case YY_STATE_EOF(RECOVER):
-case YY_STATE_EOF(PERCENT_BRACE_ACTION):
-case YY_STATE_EOF(OPTION):
-case YY_STATE_EOF(LINEDIR):
- yyterminate();
+#line 4079 "scan.c"
+ case YY_STATE_EOF(INITIAL):
+ case YY_STATE_EOF(SECT2):
+ case YY_STATE_EOF(CODEBLOCK):
+ case YY_STATE_EOF(PICKUPDEF):
+ case YY_STATE_EOF(SC):
+ case YY_STATE_EOF(CARETISBOL):
+ case YY_STATE_EOF(NUM):
+ case YY_STATE_EOF(QUOTE):
+ case YY_STATE_EOF(FIRSTCCL):
+ case YY_STATE_EOF(CCL):
+ case YY_STATE_EOF(RECOVER):
+ case YY_STATE_EOF(PERCENT_BRACE_ACTION):
+ case YY_STATE_EOF(OPTION):
+ case YY_STATE_EOF(LINEDIR):
+ yyterminate();
case YY_END_OF_BUFFER:
{
/* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - YY_G(yytext_ptr)) - 1;
+ int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
/* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = YY_G(yy_hold_char);
+ *yy_cp = (yy_hold_char);
YY_RESTORE_YY_MORE_OFFSET
- if ( YY_G(yy_current_buffer)->yy_buffer_status == YY_BUFFER_NEW )
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
{
/* We're scanning a new file or input source. It's
* possible that this happened because the user
* just pointed yyin at a new source and called
* yylex(). If so, then we have to assure
- * consistency between yy_current_buffer and our
+ * consistency between YY_CURRENT_BUFFER and our
* globals. Here is the right place to do so, because
* this is the first action (other than possibly a
* back-up) that will match for the new input source.
*/
- YY_G(yy_n_chars) = YY_G(yy_current_buffer)->yy_n_chars;
- YY_G(yy_current_buffer)->yy_input_file = yyin;
- YY_G(yy_current_buffer)->yy_buffer_status = YY_BUFFER_NORMAL;
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
}
/* Note that here we test for yy_c_buf_p "<=" to the position
@@ -3649,13 +4124,13 @@ case YY_STATE_EOF(LINEDIR):
* end-of-buffer state). Contrast this with the test
* in input().
*/
- if ( YY_G(yy_c_buf_p) <= &YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars)] )
+ if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
{ /* This was really a NUL. */
yy_state_type yy_next_state;
- YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + yy_amount_of_matched_text;
+ (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
- yy_current_state = yy_get_previous_state( YY_CALL_ONLY_ARG );
+ yy_current_state = yy_get_previous_state( );
/* Okay, we're now positioned to make the NUL
* transition. We couldn't have
@@ -3666,32 +4141,32 @@ case YY_STATE_EOF(LINEDIR):
* will run more slowly).
*/
- yy_next_state = yy_try_NUL_trans( yy_current_state YY_CALL_LAST_ARG);
+ yy_next_state = yy_try_NUL_trans( yy_current_state );
- yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
if ( yy_next_state )
{
/* Consume the NUL. */
- yy_cp = ++YY_G(yy_c_buf_p);
+ yy_cp = ++(yy_c_buf_p);
yy_current_state = yy_next_state;
goto yy_match;
}
else
{
- yy_cp = YY_G(yy_c_buf_p);
+ yy_cp = (yy_c_buf_p);
goto yy_find_action;
}
}
- else switch ( yy_get_next_buffer( YY_CALL_ONLY_ARG ) )
+ else switch ( yy_get_next_buffer( ) )
{
case EOB_ACT_END_OF_FILE:
{
- YY_G(yy_did_buffer_switch_on_eof) = 0;
+ (yy_did_buffer_switch_on_eof) = 0;
- if ( yywrap( YY_CALL_ONLY_ARG ) )
+ if ( yywrap( ) )
{
/* Note: because we've taken care in
* yy_get_next_buffer() to have set up
@@ -3702,7 +4177,7 @@ case YY_STATE_EOF(LINEDIR):
* YY_NULL, it'll still work - another
* YY_NULL will get returned.
*/
- YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
yy_act = YY_STATE_EOF(YY_START);
goto do_action;
@@ -3710,30 +4185,30 @@ case YY_STATE_EOF(LINEDIR):
else
{
- if ( ! YY_G(yy_did_buffer_switch_on_eof) )
+ if ( ! (yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
}
break;
}
case EOB_ACT_CONTINUE_SCAN:
- YY_G(yy_c_buf_p) =
- YY_G(yytext_ptr) + yy_amount_of_matched_text;
+ (yy_c_buf_p) =
+ (yytext_ptr) + yy_amount_of_matched_text;
- yy_current_state = yy_get_previous_state( YY_CALL_ONLY_ARG );
+ yy_current_state = yy_get_previous_state( );
- yy_cp = YY_G(yy_c_buf_p);
- yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
goto yy_match;
case EOB_ACT_LAST_MATCH:
- YY_G(yy_c_buf_p) =
- &YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars)];
+ (yy_c_buf_p) =
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
- yy_current_state = yy_get_previous_state( YY_CALL_ONLY_ARG );
+ yy_current_state = yy_get_previous_state( );
- yy_cp = YY_G(yy_c_buf_p);
- yy_bp = YY_G(yytext_ptr) + YY_MORE_ADJ;
+ yy_cp = (yy_c_buf_p);
+ yy_bp = (yytext_ptr) + YY_MORE_ADJ;
goto yy_find_action;
}
break;
@@ -3744,13 +4219,7 @@ case YY_STATE_EOF(LINEDIR):
"fatal flex scanner internal error--no action found" );
} /* end of action switch */
} /* end of scanning one token */
- } /* end of yylex */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-
+} /* end of yylex */
/* yy_get_next_buffer - try to read in a new buffer
*
@@ -3759,24 +4228,20 @@ case YY_STATE_EOF(LINEDIR):
* EOB_ACT_CONTINUE_SCAN - continue scanning from current position
* EOB_ACT_END_OF_FILE - end of file
*/
-
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
-static int yy_get_next_buffer YYFARGS0(void)
-
- {
- register char *dest = YY_G(yy_current_buffer)->yy_ch_buf;
- register char *source = YY_G(yytext_ptr);
+static int yy_get_next_buffer (void)
+{
+ register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+ register char *source = (yytext_ptr);
register int number_to_move, i;
int ret_val;
- if ( YY_G(yy_c_buf_p) > &YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars) + 1] )
+ if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
YY_FATAL_ERROR(
"fatal flex scanner internal error--end of buffer missed" );
- if ( YY_G(yy_current_buffer)->yy_fill_buffer == 0 )
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
{ /* Don't try to fill the buffer, so this is an EOF. */
- if ( YY_G(yy_c_buf_p) - YY_G(yytext_ptr) - YY_MORE_ADJ == 1 )
+ if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
{
/* We matched a single character, the EOB, so
* treat this as a final EOF.
@@ -3796,86 +4261,52 @@ static int yy_get_next_buffer YYFARGS0(void)
/* 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_c_buf_p) - (yytext_ptr)) - 1;
for ( i = 0; i < number_to_move; ++i )
*(dest++) = *(source++);
- if ( YY_G(yy_current_buffer)->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+ if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
/* don't do the read, it's not guaranteed to return an EOF,
* just force an EOF
*/
- YY_G(yy_current_buffer)->yy_n_chars = YY_G(yy_n_chars) = 0;
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
else
{
- size_t num_to_read =
- YY_G(yy_current_buffer)->yy_buf_size - number_to_move - 1;
+ int num_to_read =
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 )
{ /* Not enough room in the buffer - grow it. */
-#ifdef YY_USES_REJECT
+
YY_FATAL_ERROR(
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
-#else
-
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_G(yy_current_buffer);
-
- int yy_c_buf_p_offset =
- (int) (YY_G(yy_c_buf_p) - b->yy_ch_buf);
-
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
-
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
-
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- yyrealloc( (void *) b->yy_ch_buf,
- b->yy_buf_size + 2 YY_CALL_LAST_ARG );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = 0;
-
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
- YY_G(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
-
- num_to_read = YY_G(yy_current_buffer)->yy_buf_size -
- number_to_move - 1;
-#endif
}
if ( num_to_read > YY_READ_BUF_SIZE )
num_to_read = YY_READ_BUF_SIZE;
/* Read in more data. */
- YY_INPUT( (&YY_G(yy_current_buffer)->yy_ch_buf[number_to_move]),
- YY_G(yy_n_chars), num_to_read );
+ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
+ (yy_n_chars), (size_t) num_to_read );
- YY_G(yy_current_buffer)->yy_n_chars = YY_G(yy_n_chars);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
- if ( YY_G(yy_n_chars) == 0 )
+ if ( (yy_n_chars) == 0 )
{
if ( number_to_move == YY_MORE_ADJ )
{
ret_val = EOB_ACT_END_OF_FILE;
- yyrestart( yyin YY_CALL_LAST_ARG);
+ yyrestart(yyin );
}
else
{
ret_val = EOB_ACT_LAST_MATCH;
- YY_G(yy_current_buffer)->yy_buffer_status =
+ YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
YY_BUFFER_EOF_PENDING;
}
}
@@ -3883,157 +4314,141 @@ static int yy_get_next_buffer YYFARGS0(void)
else
ret_val = EOB_ACT_CONTINUE_SCAN;
- YY_G(yy_n_chars) += number_to_move;
- YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+ if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+ /* Extend the array by 50%, plus the number we really need. */
+ yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
+ if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+ YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+ }
+
+ (yy_n_chars) += number_to_move;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
- YY_G(yytext_ptr) = &YY_G(yy_current_buffer)->yy_ch_buf[0];
+ (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
return ret_val;
- }
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
+}
/* yy_get_previous_state - get the state just before the EOB char was reached */
-
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
- static yy_state_type yy_get_previous_state YYFARGS0(void)
-
- {
+ static yy_state_type yy_get_previous_state (void)
+{
register yy_state_type yy_current_state;
register char *yy_cp;
-
- yy_current_state = YY_G(yy_start);
+
+ yy_current_state = (yy_start);
yy_current_state += YY_AT_BOL();
- for ( yy_cp = YY_G(yytext_ptr) + YY_MORE_ADJ; yy_cp < YY_G(yy_c_buf_p); ++yy_cp )
+ (yy_state_ptr) = (yy_state_buf);
+ *(yy_state_ptr)++ = yy_current_state;
+
+ for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
{
register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- YY_G(yy_last_accepting_state) = yy_current_state;
- YY_G(yy_last_accepting_cpos) = yy_cp;
- }
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 973 )
+ if ( yy_current_state >= 1108 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+ *(yy_state_ptr)++ = yy_current_state;
}
return yy_current_state;
- }
-
+}
/* yy_try_NUL_trans - try to make a transition on the NUL character
*
* synopsis
* next_state = yy_try_NUL_trans( current_state );
*/
-
- static yy_state_type yy_try_NUL_trans YYFARGS1( yy_state_type, yy_current_state)
-
- {
+ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
+{
register int yy_is_jam;
- register char *yy_cp = YY_G(yy_c_buf_p);
-
+
register YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- YY_G(yy_last_accepting_state) = yy_current_state;
- YY_G(yy_last_accepting_cpos) = yy_cp;
- }
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 973 )
+ if ( yy_current_state >= 1108 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 972);
+ yy_is_jam = (yy_current_state == 1107);
+ if ( ! yy_is_jam )
+ *(yy_state_ptr)++ = yy_current_state;
return yy_is_jam ? 0 : yy_current_state;
- }
-
-
-
-#ifndef YY_NO_UNPUT
- static void yyunput YYFARGS2( int,c, register char *,yy_bp)
+}
- {
- register char *yy_cp = YY_G(yy_c_buf_p);
+ static void yyunput (int c, register char * yy_bp )
+{
+ register char *yy_cp;
+
+ yy_cp = (yy_c_buf_p);
/* undo effects of setting up yytext */
- *yy_cp = YY_G(yy_hold_char);
+ *yy_cp = (yy_hold_char);
- if ( yy_cp < YY_G(yy_current_buffer)->yy_ch_buf + 2 )
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
{ /* need to shift things up to make room */
/* +2 for EOB chars. */
- register int number_to_move = YY_G(yy_n_chars) + 2;
- register char *dest = &YY_G(yy_current_buffer)->yy_ch_buf[
- YY_G(yy_current_buffer)->yy_buf_size + 2];
+ register int number_to_move = (yy_n_chars) + 2;
+ register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
register char *source =
- &YY_G(yy_current_buffer)->yy_ch_buf[number_to_move];
+ &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
- while ( source > YY_G(yy_current_buffer)->yy_ch_buf )
+ while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
*--dest = *--source;
yy_cp += (int) (dest - source);
yy_bp += (int) (dest - source);
- YY_G(yy_current_buffer)->yy_n_chars =
- YY_G(yy_n_chars) = YY_G(yy_current_buffer)->yy_buf_size;
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
- if ( yy_cp < YY_G(yy_current_buffer)->yy_ch_buf + 2 )
+ if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
YY_FATAL_ERROR( "flex scanner push-back overflow" );
}
*--yy_cp = (char) c;
-#ifdef YY_USE_LINENO
- if ( c == '\n' )
- --yylineno;
-#endif
- YY_G(yytext_ptr) = yy_bp;
- YY_G(yy_hold_char) = *yy_cp;
- YY_G(yy_c_buf_p) = yy_cp;
- }
-
-#endif /* ifndef YY_NO_UNPUT */
-
-
+ (yytext_ptr) = yy_bp;
+ (yy_hold_char) = *yy_cp;
+ (yy_c_buf_p) = yy_cp;
+}
#ifndef YY_NO_INPUT
#ifdef __cplusplus
- static int yyinput YYFARGS0(void)
+ static int yyinput (void)
#else
- static int input YYFARGS0(void)
+ static int input (void)
#endif
-
-
- {
+{
int c;
+
+ *(yy_c_buf_p) = (yy_hold_char);
- *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);
-
- if ( *YY_G(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+ if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
{
/* yy_c_buf_p now points to the character we want to return.
* If this occurs *before* the EOB characters, then it's a
* valid NUL; if not, then we've hit the end of the buffer.
*/
- if ( YY_G(yy_c_buf_p) < &YY_G(yy_current_buffer)->yy_ch_buf[YY_G(yy_n_chars)] )
+ if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
/* This was really a NUL. */
- *YY_G(yy_c_buf_p) = '\0';
+ *(yy_c_buf_p) = '\0';
else
{ /* need more input */
- int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);
- ++YY_G(yy_c_buf_p);
+ int offset = (yy_c_buf_p) - (yytext_ptr);
+ ++(yy_c_buf_p);
- switch ( yy_get_next_buffer( YY_CALL_ONLY_ARG ) )
+ switch ( yy_get_next_buffer( ) )
{
case EOB_ACT_LAST_MATCH:
/* This happens because yy_g_n_b()
@@ -4047,99 +4462,113 @@ static int yy_get_next_buffer YYFARGS0(void)
*/
/* Reset buffer status. */
- yyrestart( yyin YY_CALL_LAST_ARG);
+ yyrestart(yyin );
/*FALLTHROUGH*/
case EOB_ACT_END_OF_FILE:
{
- if ( yywrap( YY_CALL_ONLY_ARG ) )
+ if ( yywrap( ) )
return EOF;
- if ( ! YY_G(yy_did_buffer_switch_on_eof) )
+ if ( ! (yy_did_buffer_switch_on_eof) )
YY_NEW_FILE;
#ifdef __cplusplus
- return yyinput(YY_CALL_ONLY_ARG);
+ return yyinput();
#else
- return input(YY_CALL_ONLY_ARG);
+ return input();
#endif
}
case EOB_ACT_CONTINUE_SCAN:
- YY_G(yy_c_buf_p) = YY_G(yytext_ptr) + offset;
+ (yy_c_buf_p) = (yytext_ptr) + offset;
break;
}
}
}
- c = *(unsigned char *) YY_G(yy_c_buf_p); /* cast for 8-bit char's */
- *YY_G(yy_c_buf_p) = '\0'; /* preserve yytext */
- YY_G(yy_hold_char) = *++YY_G(yy_c_buf_p);
+ c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
+ *(yy_c_buf_p) = '\0'; /* preserve yytext */
+ (yy_hold_char) = *++(yy_c_buf_p);
- YY_G(yy_current_buffer)->yy_at_bol = (c == '\n');
+ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
return c;
- }
-
+}
#endif /* ifndef YY_NO_INPUT */
-
-
- void yyrestart YYFARGS1( FILE *,input_file)
-
- {
- if ( ! YY_G(yy_current_buffer) )
- YY_G(yy_current_buffer) =
- yy_create_buffer( yyin, YY_BUF_SIZE YY_CALL_LAST_ARG);
-
- yy_init_buffer( YY_G(yy_current_buffer), input_file YY_CALL_LAST_ARG);
- yy_load_buffer_state( YY_CALL_ONLY_ARG );
+/** Immediately switch to a different input stream.
+ * @param input_file A readable stream.
+ *
+ * @note This function does not reset the start condition to @c INITIAL .
+ */
+ void yyrestart (FILE * input_file )
+{
+
+ if ( ! YY_CURRENT_BUFFER ){
+ yyensure_buffer_stack ();
+ YY_CURRENT_BUFFER_LVALUE =
+ yy_create_buffer(yyin,YY_BUF_SIZE );
}
+ yy_init_buffer(YY_CURRENT_BUFFER,input_file );
+ yy_load_buffer_state( );
+}
- void yy_switch_to_buffer YYFARGS1( YY_BUFFER_STATE ,new_buffer)
-
- {
- if ( YY_G(yy_current_buffer) == new_buffer )
+/** Switch to a different input buffer.
+ * @param new_buffer The new input buffer.
+ *
+ */
+ void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
+{
+
+ /* TODO. We should be able to replace this entire function body
+ * with
+ * yypop_buffer_state();
+ * yypush_buffer_state(new_buffer);
+ */
+ yyensure_buffer_stack ();
+ if ( YY_CURRENT_BUFFER == new_buffer )
return;
- if ( YY_G(yy_current_buffer) )
+ if ( YY_CURRENT_BUFFER )
{
/* Flush out information for old buffer. */
- *YY_G(yy_c_buf_p) = YY_G(yy_hold_char);
- YY_G(yy_current_buffer)->yy_buf_pos = YY_G(yy_c_buf_p);
- YY_G(yy_current_buffer)->yy_n_chars = YY_G(yy_n_chars);
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
}
- YY_G(yy_current_buffer) = new_buffer;
- yy_load_buffer_state( YY_CALL_ONLY_ARG );
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+ yy_load_buffer_state( );
/* We don't actually know whether we did this switch during
* EOF (yywrap()) processing, but the only time this flag
* is looked at is after yywrap() is called, so it's safe
* to go ahead and always set it.
*/
- YY_G(yy_did_buffer_switch_on_eof) = 1;
- }
-
-
-
- void yy_load_buffer_state YYFARGS0(void)
-
- {
- YY_G(yy_n_chars) = YY_G(yy_current_buffer)->yy_n_chars;
- YY_G(yytext_ptr) = YY_G(yy_c_buf_p) = YY_G(yy_current_buffer)->yy_buf_pos;
- yyin = YY_G(yy_current_buffer)->yy_input_file;
- YY_G(yy_hold_char) = *YY_G(yy_c_buf_p);
- }
-
+ (yy_did_buffer_switch_on_eof) = 1;
+}
- YY_BUFFER_STATE yy_create_buffer YYFARGS2( FILE *,file, int ,size)
+static void yy_load_buffer_state (void)
+{
+ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+ (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+ yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+ (yy_hold_char) = *(yy_c_buf_p);
+}
- {
+/** Allocate and initialize an input buffer state.
+ * @param file A readable stream.
+ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
+ *
+ * @return the allocated buffer state.
+ */
+ YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
+{
YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) YY_CALL_LAST_ARG );
+
+ b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
@@ -4148,75 +4577,75 @@ static int yy_get_next_buffer 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 YY_CALL_LAST_ARG );
+ b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
if ( ! b->yy_ch_buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
b->yy_is_our_buffer = 1;
- yy_init_buffer( b, file YY_CALL_LAST_ARG);
+ yy_init_buffer(b,file );
return b;
- }
-
-
- void yy_delete_buffer YYFARGS1( YY_BUFFER_STATE ,b)
+}
- {
+/** Destroy the buffer.
+ * @param b a buffer created with yy_create_buffer()
+ *
+ */
+ void yy_delete_buffer (YY_BUFFER_STATE b )
+{
+
if ( ! b )
return;
- if ( b == YY_G(yy_current_buffer) )
- YY_G(yy_current_buffer) = (YY_BUFFER_STATE) 0;
+ if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
+ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
if ( b->yy_is_our_buffer )
- yyfree( (void *) b->yy_ch_buf YY_CALL_LAST_ARG );
-
- yyfree( (void *) b YY_CALL_LAST_ARG );
- }
-
+ yyfree((void *) b->yy_ch_buf );
+ yyfree((void *) b );
+}
-#ifndef YY_ALWAYS_INTERACTIVE
-#ifndef YY_NEVER_INTERACTIVE
#ifndef __cplusplus
-extern int isatty YY_PARAMS(( int ));
+extern int isatty (int );
#endif /* __cplusplus */
-#endif /* !YY_NEVER_INTERACTIVE */
-#endif /* !YY_ALWAYS_INTERACTIVE */
-
-
-
- void yy_init_buffer YYFARGS2( YY_BUFFER_STATE ,b, FILE *,file)
-
+
+/* Initializes or reinitializes a buffer.
+ * This function is sometimes called more than once on the same buffer,
+ * such as during a yyrestart() or at EOF.
+ */
+ static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
- {
+{
int oerrno = errno;
-
- yy_flush_buffer( b YY_CALL_LAST_ARG);
+
+ yy_flush_buffer(b );
b->yy_input_file = file;
b->yy_fill_buffer = 1;
+ /* If b is the current buffer, then yy_init_buffer was _probably_
+ * called from yyrestart() or through yy_get_next_buffer.
+ * In that case, we don't want to reset the lineno or column.
+ */
+ if (b != YY_CURRENT_BUFFER){
+ b->yy_bs_lineno = 1;
+ b->yy_bs_column = 0;
+ }
-#if YY_ALWAYS_INTERACTIVE
- b->yy_is_interactive = 1;
-#else
-#if YY_NEVER_INTERACTIVE
- b->yy_is_interactive = 0;
-#else
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-#endif
-#endif
-
+ b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+
errno = oerrno;
- }
-
-
- void yy_flush_buffer YYFARGS1( YY_BUFFER_STATE ,b)
+}
- {
- if ( ! b )
+/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
+ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
+ *
+ */
+ void yy_flush_buffer (YY_BUFFER_STATE b )
+{
+ if ( ! b )
return;
b->yy_n_chars = 0;
@@ -4233,24 +4662,125 @@ extern int isatty YY_PARAMS(( int ));
b->yy_at_bol = 1;
b->yy_buffer_status = YY_BUFFER_NEW;
- if ( b == YY_G(yy_current_buffer) )
- yy_load_buffer_state( YY_CALL_ONLY_ARG );
+ if ( b == YY_CURRENT_BUFFER )
+ yy_load_buffer_state( );
+}
+
+/** Pushes the new state onto the stack. The new state becomes
+ * the current state. This function will allocate the stack
+ * if necessary.
+ * @param new_buffer The new state.
+ *
+ */
+void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
+{
+ if (new_buffer == NULL)
+ return;
+
+ yyensure_buffer_stack();
+
+ /* This block is copied from yy_switch_to_buffer. */
+ if ( YY_CURRENT_BUFFER )
+ {
+ /* Flush out information for old buffer. */
+ *(yy_c_buf_p) = (yy_hold_char);
+ YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
+ YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+ }
+
+ /* Only push if top exists. Otherwise, replace top. */
+ if (YY_CURRENT_BUFFER)
+ (yy_buffer_stack_top)++;
+ YY_CURRENT_BUFFER_LVALUE = new_buffer;
+
+ /* copied from yy_switch_to_buffer. */
+ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
+}
+
+/** Removes and deletes the top of the stack, if present.
+ * The next element becomes the new top.
+ *
+ */
+void yypop_buffer_state (void)
+{
+ if (!YY_CURRENT_BUFFER)
+ return;
+
+ yy_delete_buffer(YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ if ((yy_buffer_stack_top) > 0)
+ --(yy_buffer_stack_top);
+
+ if (YY_CURRENT_BUFFER) {
+ yy_load_buffer_state( );
+ (yy_did_buffer_switch_on_eof) = 1;
}
+}
+/* Allocates the stack if it does not exist.
+ * Guarantees space for at least one push.
+ */
+static void yyensure_buffer_stack (void)
+{
+ int num_to_alloc;
+
+ if (!(yy_buffer_stack)) {
+
+ /* First allocation is just for 2 elements, since we don't know if this
+ * 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;
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
+ (num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+ if ( ! (yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+ memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
+
+ (yy_buffer_stack_max) = num_to_alloc;
+ (yy_buffer_stack_top) = 0;
+ return;
+ }
-#ifndef YY_NO_SCAN_BUFFER
+ if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)
- {
- YY_BUFFER_STATE b;
+ /* Increase the buffer to prepare for a possible push. */
+ int grow_size = 8 /* arbitrary grow size */;
+ num_to_alloc = (yy_buffer_stack_max) + grow_size;
+ (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
+ ((yy_buffer_stack),
+ num_to_alloc * sizeof(struct yy_buffer_state*)
+ );
+ if ( ! (yy_buffer_stack) )
+ YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+
+ /* zero only the new slots.*/
+ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
+ (yy_buffer_stack_max) = num_to_alloc;
+ }
+}
+
+/** Setup the input buffer state to scan directly from a user-specified character buffer.
+ * @param base the character buffer
+ * @param size the size in bytes of the character buffer
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
+{
+ YY_BUFFER_STATE b;
+
if ( size < 2 ||
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;
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) YY_CALL_LAST_ARG );
+ b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
if ( ! b )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
@@ -4264,49 +4794,51 @@ YY_BUFFER_STATE yy_scan_buffer YYFARGS2( char *,base, yy_size_t ,size)
b->yy_fill_buffer = 0;
b->yy_buffer_status = YY_BUFFER_NEW;
- yy_switch_to_buffer( b YY_CALL_LAST_ARG );
+ yy_switch_to_buffer(b );
return b;
- }
-
-#endif
-
-
-#ifndef YY_NO_SCAN_STRING
-
-YY_BUFFER_STATE yy_scan_string YYFARGS1( yyconst char *,yy_str)
- {
- int len;
- for ( len = 0; yy_str[len]; ++len )
- ;
-
- return yy_scan_bytes( yy_str, len YY_CALL_LAST_ARG);
- }
-
-#endif
-
+}
-#ifndef YY_NO_SCAN_BYTES
+/** Setup the input buffer state to scan a string. The next call to yylex() will
+ * scan from a @e copy of @a str.
+ * @param yystr a NUL-terminated string to scan
+ *
+ * @return the newly allocated buffer state object.
+ * @note If you want to scan bytes that may contain NUL values, then use
+ * yy_scan_bytes() instead.
+ */
+YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+{
+
+ return yy_scan_bytes(yystr,strlen(yystr) );
+}
-YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,bytes, int ,len)
- {
+/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
+ * scan from a @e copy of @a bytes.
+ * @param bytes the byte buffer to scan
+ * @param len the number of bytes in the buffer pointed to by @a bytes.
+ *
+ * @return the newly allocated buffer state object.
+ */
+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
+{
YY_BUFFER_STATE b;
char *buf;
yy_size_t n;
int i;
-
+
/* Get memory for full buffer, including space for trailing EOB's. */
- n = len + 2;
- buf = (char *) yyalloc( n YY_CALL_LAST_ARG );
+ n = _yybytes_len + 2;
+ buf = (char *) yyalloc(n );
if ( ! buf )
YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
- for ( i = 0; i < len; ++i )
- buf[i] = bytes[i];
+ for ( i = 0; i < _yybytes_len; ++i )
+ buf[i] = yybytes[i];
- buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+ buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
- b = yy_scan_buffer( buf, n YY_CALL_LAST_ARG);
+ b = yy_scan_buffer(buf,n );
if ( ! b )
YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
@@ -4316,75 +4848,49 @@ YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,bytes, int ,len)
b->yy_is_our_buffer = 1;
return b;
- }
-
-#endif
-
-
-#ifndef YY_NO_PUSH_STATE
-
- static void yy_push_state YYFARGS1( int ,new_state)
+}
- {
- if ( YY_G(yy_start_stack_ptr) >= YY_G(yy_start_stack_depth) )
+ static void yy_push_state (int new_state )
+{
+ if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
{
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 );
+ (yy_start_stack_depth) += YY_START_STACK_INCR;
+ new_size = (yy_start_stack_depth) * sizeof( int );
- if ( ! YY_G(yy_start_stack) )
- YY_G(yy_start_stack) = (int *) yyalloc( new_size YY_CALL_LAST_ARG );
+ if ( ! (yy_start_stack) )
+ (yy_start_stack) = (int *) yyalloc(new_size );
else
- YY_G(yy_start_stack) = (int *) yyrealloc(
- (void *) YY_G(yy_start_stack), new_size YY_CALL_LAST_ARG );
+ (yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size );
- if ( ! YY_G(yy_start_stack) )
- YY_FATAL_ERROR(
- "out of memory expanding start-condition stack" );
+ if ( ! (yy_start_stack) )
+ YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
}
- YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;
+ (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
BEGIN(new_state);
- }
-#endif
-
-
-#ifndef YY_NO_POP_STATE
-
- static void yy_pop_state YYFARGS0(void)
+}
- {
- if ( --YY_G(yy_start_stack_ptr) < 0 )
+ static void yy_pop_state (void)
+{
+ if ( --(yy_start_stack_ptr) < 0 )
YY_FATAL_ERROR( "start-condition stack underflow" );
- BEGIN(YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)]);
- }
-#endif
-
-
-#ifndef YY_NO_TOP_STATE
-
- static int yy_top_state YYFARGS0(void)
-
- {
- return YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr) - 1];
- }
-#endif
+ BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
+}
#ifndef YY_EXIT_FAILURE
#define YY_EXIT_FAILURE 2
#endif
-
-static void yy_fatal_error YYFARGS1(yyconst char*, msg)
- {
- (void) fprintf( stderr, "%s\n", msg );
+static void yy_fatal_error (yyconst char* msg )
+{
+ (void) fprintf( stderr, "%s\n", msg );
exit( YY_EXIT_FAILURE );
- }
-
+}
/* Redefine yyless() so it works in section 3 code. */
@@ -4395,156 +4901,191 @@ static void yy_fatal_error YYFARGS1(yyconst char*, msg)
/* Undo effects of setting up yytext. */ \
int yyless_macro_arg = (n); \
YY_LESS_LINENO(yyless_macro_arg);\
- yytext[yyleng] = YY_G(yy_hold_char); \
- YY_G(yy_c_buf_p) = yytext + yyless_macro_arg; \
- YY_G(yy_hold_char) = *YY_G(yy_c_buf_p); \
- *YY_G(yy_c_buf_p) = '\0'; \
+ yytext[yyleng] = (yy_hold_char); \
+ (yy_c_buf_p) = yytext + yyless_macro_arg; \
+ (yy_hold_char) = *(yy_c_buf_p); \
+ *(yy_c_buf_p) = '\0'; \
yyleng = yyless_macro_arg; \
} \
while ( 0 )
-
-
/* Accessor methods (get/set functions) to struct members. */
-
-
-#ifndef YY_NO_GET_LINENO
-int yyget_lineno YYFARGS0(void)
+/** Get the current line number.
+ *
+ */
+int yyget_lineno (void)
{
+
return yylineno;
}
-#endif /* !YY_NO_GET_LINENO */
-#ifndef YY_NO_GET_IN
-FILE *yyget_in YYFARGS0(void)
+/** Get the input stream.
+ *
+ */
+FILE *yyget_in (void)
{
- return yyin;
+ return yyin;
}
-#endif /* !YY_NO_GET_IN */
-#ifndef YY_NO_GET_OUT
-FILE *yyget_out YYFARGS0(void)
+/** Get the output stream.
+ *
+ */
+FILE *yyget_out (void)
{
- return yyout;
+ return yyout;
}
-#endif /* !YY_NO_GET_OUT */
-#ifndef YY_NO_GET_LENG
-int yyget_leng YYFARGS0(void)
+/** Get the length of the current token.
+ *
+ */
+int yyget_leng (void)
{
- return yyleng;
+ return yyleng;
}
-#endif /* !YY_NO_GET_LENG */
-#ifndef YY_NO_GET_TEXT
-char *yyget_text YYFARGS0(void)
+/** Get the current token.
+ *
+ */
+
+char *yyget_text (void)
{
- return yytext;
+ return yytext;
}
-#endif /* !YY_NO_GET_TEXT */
-
-#ifndef YY_NO_SET_LINENO
-void yyset_lineno YYFARGS1( int ,line_number)
+/** Set the current line number.
+ * @param line_number
+ *
+ */
+void yyset_lineno (int line_number )
{
+
yylineno = line_number;
}
-#endif /* !YY_NO_SET_LINENO */
-
-#ifndef YY_NO_SET_IN
-void yyset_in YYFARGS1( FILE * ,in_str)
+/** Set the input stream. This does not discard the current
+ * input buffer.
+ * @param in_str A readable stream.
+ *
+ * @see yy_switch_to_buffer
+ */
+void yyset_in (FILE * in_str )
{
- yyin = in_str ;
+ yyin = in_str ;
}
-#endif /* !YY_NO_SET_IN */
-#ifndef YY_NO_SET_OUT
-void yyset_out YYFARGS1( FILE * ,out_str)
+void yyset_out (FILE * out_str )
{
- yyout = out_str ;
+ yyout = out_str ;
}
-#endif /* !YY_NO_SET_OUT */
-
-#ifndef YY_NO_GET_DEBUG
-int yyget_debug YYFARGS0(void)
+int yyget_debug (void)
{
- return yy_flex_debug;
+ return yy_flex_debug;
}
-#endif /* !YY_NO_GET_DEBUG */
-#ifndef YY_NO_SET_DEBUG
-void yyset_debug YYFARGS1( int ,bdebug)
+void yyset_debug (int bdebug )
{
- yy_flex_debug = bdebug ;
+ yy_flex_debug = bdebug ;
}
-#endif /* !YY_NO_SET_DEBUG */
+static int yy_init_globals (void)
+{
+ /* Initialization is the same as for the non-reentrant scanner.
+ * This function is called from yylex_destroy(), so don't allocate here.
+ */
+ (yy_buffer_stack) = 0;
+ (yy_buffer_stack_top) = 0;
+ (yy_buffer_stack_max) = 0;
+ (yy_c_buf_p) = (char *) 0;
+ (yy_init) = 0;
+ (yy_start) = 0;
+
+ (yy_start_stack_ptr) = 0;
+ (yy_start_stack_depth) = 0;
+ (yy_start_stack) = NULL;
+
+ (yy_state_buf) = 0;
+ (yy_state_ptr) = 0;
+ (yy_full_match) = 0;
+ (yy_lp) = 0;
+
+/* Defined in main.c */
+#ifdef YY_STDINIT
+ yyin = stdin;
+ yyout = stdout;
+#else
+ yyin = (FILE *) 0;
+ yyout = (FILE *) 0;
+#endif
+ /* For future reference: Set errno on error, since we are called by
+ * yylex_init()
+ */
+ return 0;
+}
/* yylex_destroy is for both reentrant and non-reentrant scanners. */
-int yylex_destroy YYFARGS0(void)
+int yylex_destroy (void)
{
- /* Destroy the current (main) buffer. */
- yy_delete_buffer( YY_G(yy_current_buffer) YY_CALL_LAST_ARG );
- YY_G(yy_current_buffer) = NULL;
+
+ /* Pop the buffer stack, destroying each element. */
+ while(YY_CURRENT_BUFFER){
+ yy_delete_buffer(YY_CURRENT_BUFFER );
+ YY_CURRENT_BUFFER_LVALUE = NULL;
+ yypop_buffer_state();
+ }
+
+ /* Destroy the stack itself. */
+ yyfree((yy_buffer_stack) );
+ (yy_buffer_stack) = NULL;
-#if defined(YY_STACK_USED) || defined(YY_REENTRANT)
/* Destroy the start condition stack. */
- if (YY_G(yy_start_stack) ){
- yyfree( YY_G(yy_start_stack) YY_CALL_LAST_ARG );
- YY_G(yy_start_stack) = NULL;
- }
-#endif
+ yyfree((yy_start_stack) );
+ (yy_start_stack) = NULL;
-#ifdef YY_USES_REJECT
- yyfree ( YY_G(yy_state_buf) YY_CALL_LAST_ARG);
-#endif
+ yyfree ( (yy_state_buf) );
+ (yy_state_buf) = NULL;
+
+ /* Reset the globals. This is important in a non-reentrant scanner so the next time
+ * yylex() is called, initialization will occur. */
+ yy_init_globals( );
return 0;
}
-
-
-/* Internal utility routines. */
+/*
+ * Internal utility routines.
+ */
#ifndef yytext_ptr
-static void yy_flex_strncpy YYFARGS3( char*,s1, yyconst char *,s2, int,n)
- {
+static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+{
register int i;
for ( i = 0; i < n; ++i )
s1[i] = s2[i];
- }
+}
#endif
#ifdef YY_NEED_STRLEN
-static int yy_flex_strlen YYFARGS1( yyconst char *,s)
- {
+static int yy_flex_strlen (yyconst char * s )
+{
register int n;
for ( n = 0; s[n]; ++n )
;
return n;
- }
+}
#endif
-/* You may override yyalloc by defining YY_NO_FLEX_ALLOC and linking to
- * your own version */
-#ifndef YY_NO_FLEX_ALLOC
-void *yyalloc YYFARGS1( yy_size_t ,size)
- {
+void *yyalloc (yy_size_t size )
+{
return (void *) malloc( size );
- }
-#endif
+}
-/* You may override yyrealloc by defining YY_NO_FLEX_REALLOC and linking
- * to your own version. */
-#ifndef YY_NO_FLEX_REALLOC
-void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size)
- {
+void *yyrealloc (void * ptr, yy_size_t size )
+{
/* 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
@@ -4553,34 +5094,17 @@ void *yyrealloc YYFARGS2( void *,ptr, yy_size_t ,size)
* as though doing an assignment.
*/
return (void *) realloc( (char *) ptr, size );
- }
-#endif
+}
-/* You may override yyfree by defining YY_NO_FLEX_FREE and linking to
- * your own version.*/
-#ifndef YY_NO_FLEX_FREE
-void yyfree YYFARGS1( void *,ptr)
- {
+void yyfree (void * ptr )
+{
free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
- }
-#endif
+}
#define YYTABLES_NAME "yytables"
-#if YY_MAIN
-int main YY_PARAMS((void));
+#line 969 "scan.l"
-int main ()
- {
-
- yylex();
-
- return 0;
- }
-#endif
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
-#line 822 "scan.l"
-#ifndef yyIN_HEADER /* YY-DISCARD-FROM-HEADER */
@@ -4642,4 +5166,4 @@ void *ptr;
if ( ptr )
free( ptr );
}
-#endif /* !yyIN_HEADER YY-END-DISCARD-FROM-HEADER */
+
diff --git a/scan.l b/scan.l
index fe9a0fc..2315876 100644
--- a/scan.l
+++ b/scan.l
@@ -36,6 +36,7 @@
#include "parse.h"
extern bool tablesverify, tablesext;
extern int trlcontxt; /* Set in parse.y for each rule. */
+extern const char *escaped_qstart, *escaped_qend;
#define ACTION_ECHO add_action( yytext )
#define ACTION_IFDEF(def, should_define) \
@@ -44,6 +45,9 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
action_define( def, 1 ); \
}
+#define ACTION_ECHO_QSTART add_action (escaped_qstart)
+#define ACTION_ECHO_QEND add_action (escaped_qend)
+
#define ACTION_M4_IFDEF(def, should_define) \
do{ \
if ( should_define ) \
@@ -97,6 +101,10 @@ extern int trlcontxt; /* Set in parse.y for each rule. */
%x SECT2 SECT2PROLOG SECT3 CODEBLOCK PICKUPDEF SC CARETISBOL NUM QUOTE
%x FIRSTCCL CCL ACTION RECOVER COMMENT ACTION_STRING PERCENT_BRACE_ACTION
%x OPTION LINEDIR CODEBLOCK_MATCH_BRACE
+%x GROUP_WITH_PARAMS
+%x GROUP_MINUS_PARAMS
+%x EXTENDED_COMMENT
+%x COMMENT_DISCARD
WS [[:blank:]]+
OPTWS [[:blank:]]*
@@ -113,10 +121,13 @@ ESCSEQ (\\([^\n]|[0-7]{1,3}|x[[:xdigit:]]{1,2}))
FIRST_CCL_CHAR ([^\\\n]|{ESCSEQ})
CCL_CHAR ([^\\\n\]]|{ESCSEQ})
-CCL_EXPR ("[:"[[:alpha:]]+":]")
+CCL_EXPR ("[:"^?[[:alpha:]]+":]")
LEXOPT [aceknopr]
+M4QSTART "[["
+M4QEND "]]"
+
%%
static int bracelevel, didadef, indented_code;
static int doing_rule_action = false;
@@ -146,7 +157,7 @@ LEXOPT [aceknopr]
brace_depth = 1;
yy_push_state(CODEBLOCK_MATCH_BRACE);
}
-
+
^"%top".* synerr( _("malformed '%top' directive") );
{WS} /* discard */
@@ -172,14 +183,14 @@ LEXOPT [aceknopr]
^"%"[^sxaceknopr{}].* synerr( _( "unrecognized '%' directive" ) );
^{NAME} {
- if(yyleng < MAXLINE)
- {
+ if(yyleng < MAXLINE)
+ {
strcpy( nmstr, yytext );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
}
didadef = false;
@@ -195,8 +206,24 @@ LEXOPT [aceknopr]
<COMMENT>{
"*/" ACTION_ECHO; yy_pop_state();
"*" ACTION_ECHO;
- [^*\n]+ ACTION_ECHO;
- [^*\n]*{NL} ++linenum; ACTION_ECHO;
+ {M4QSTART} ACTION_ECHO_QSTART;
+ {M4QEND} ACTION_ECHO_QEND;
+ [^*\n] ACTION_ECHO;
+ {NL} ++linenum; ACTION_ECHO;
+}
+
+<COMMENT_DISCARD>{
+ /* This is the same as COMMENT, but is discarded rather than output. */
+ "*/" yy_pop_state();
+ "*" ;
+ [^*\n] ;
+ {NL} ++linenum;
+}
+
+<EXTENDED_COMMENT>{
+ ")" yy_pop_state();
+ [^\n\)]+ ;
+ {NL} ++linenum;
}
<LINEDIR>{
@@ -214,7 +241,9 @@ LEXOPT [aceknopr]
<CODEBLOCK>{
^"%}".*{NL} ++linenum; BEGIN(INITIAL);
- {NAME}|{NOT_NAME}|. ACTION_ECHO;
+ {M4QSTART} ACTION_ECHO_QSTART;
+ {M4QEND} ACTION_ECHO_QEND;
+ . ACTION_ECHO;
{NL} {
++linenum;
@@ -233,7 +262,7 @@ LEXOPT [aceknopr]
buf_strnappend(&top_buf, yytext, yyleng);
}
- "{" {
+ "{" {
brace_depth++;
buf_strnappend(&top_buf, yytext, yyleng);
}
@@ -243,9 +272,12 @@ LEXOPT [aceknopr]
buf_strnappend(&top_buf, yytext, yyleng);
}
- [^{}\r\n]+ {
+ {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);
- }
+ }
<<EOF>> {
linenum = brace_start_line;
@@ -262,11 +294,11 @@ LEXOPT [aceknopr]
if(yyleng < MAXLINE)
{
strcpy( (char *) nmdef, yytext );
- }
+ }
else
{
synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ FLEX_EXIT(EXIT_FAILURE);
}
/* Skip trailing whitespace. */
for ( i = strlen( (char *) nmdef ) - 1;
@@ -315,8 +347,8 @@ LEXOPT [aceknopr]
bison_bridge_lval = true;
}
"c++" C_plus_plus = option_sense;
- caseful|case-sensitive caseins = ! option_sense;
- caseless|case-insensitive caseins = option_sense;
+ caseful|case-sensitive sf_set_case_ins(!option_sense);
+ caseless|case-insensitive sf_set_case_ins(option_sense);
debug ddebug = option_sense;
default spprdflt = ! option_sense;
ecs useecs = option_sense;
@@ -388,6 +420,7 @@ LEXOPT [aceknopr]
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;
@@ -401,14 +434,14 @@ LEXOPT [aceknopr]
\"[^"\n]*\" {
- if(yyleng-1 < MAXLINE)
- {
+ if(yyleng-1 < MAXLINE)
+ {
strcpy( nmstr, yytext + 1 );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
}
nmstr[strlen( nmstr ) - 1] = '\0';
return NAME;
@@ -442,7 +475,7 @@ LEXOPT [aceknopr]
ACTION_ECHO;
}
- .* ACTION_ECHO;
+ . ACTION_ECHO;
{NL} ++linenum; ACTION_ECHO;
<<EOF>> {
@@ -462,7 +495,12 @@ LEXOPT [aceknopr]
BEGIN(PERCENT_BRACE_ACTION);
}
- ^{OPTWS}"<" BEGIN(SC); return '<';
+ ^{OPTWS}"<" {
+ /* Allow "<" to appear in (?x) patterns. */
+ if (!sf_skip_ws())
+ BEGIN(SC);
+ return '<';
+ }
^{OPTWS}"^" return '^';
\" BEGIN(QUOTE); return '"';
"{"/[[:digit:]] {
@@ -485,46 +523,77 @@ LEXOPT [aceknopr]
return '\n';
}
}
- {WS}"|".*{NL} continued_action = true; ++linenum; return '\n';
+ {WS}"|".*{NL} {
+ 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;
+ yyless(amt);
+ }
+ else {
+ continued_action = true;
+ ++linenum;
+ return '\n';
+ }
+ }
^{WS}"/*" {
- yyless( yyleng - 2 ); /* put back '/', '*' */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
+
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ yy_push_state(COMMENT_DISCARD);
+ }
+ else{
+ yyless( yyleng - 2 ); /* put back '/', '*' */
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+ }
}
- ^{WS} /* allow indented rules */
+ ^{WS} /* allow indented rules */ ;
{WS} {
- /* This rule is separate from the one below because
- * otherwise we get variable trailing context, so
- * we can't build the scanner using -{f,F}.
- */
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
- return '\n';
- }
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ }
+ else{
+ /* This rule is separate from the one below because
+ * otherwise we get variable trailing context, so
+ * we can't build the scanner using -{f,F}.
+ */
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+
+ if ( in_rule )
+ {
+ doing_rule_action = true;
+ in_rule = false;
+ return '\n';
+ }
+ }
}
{OPTWS}{NL} {
- bracelevel = 0;
- continued_action = false;
- BEGIN(ACTION);
- unput( '\n' ); /* so <ACTION> sees it */
-
- if ( in_rule )
- {
- doing_rule_action = true;
- in_rule = false;
- return '\n';
- }
+ if (sf_skip_ws()){
+ /* We're in the middle of a (?x: ) pattern. */
+ ++linenum;
+ }
+ else{
+ bracelevel = 0;
+ continued_action = false;
+ BEGIN(ACTION);
+ unput( '\n' ); /* so <ACTION> sees it */
+
+ if ( in_rule )
+ {
+ doing_rule_action = true;
+ in_rule = false;
+ return '\n';
+ }
+ }
}
^{OPTWS}"<<EOF>>" |
@@ -540,20 +609,25 @@ LEXOPT [aceknopr]
"["({FIRST_CCL_CHAR}|{CCL_EXPR})({CCL_CHAR}|{CCL_EXPR})* {
int cclval;
- if(yyleng < MAXLINE)
- {
+ if(yyleng < MAXLINE)
+ {
strcpy( nmstr, yytext );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
+ }
/* Check to see if we've already encountered this
* ccl.
*/
- if ( (cclval = ccllookup( (Char *) nmstr )) != 0 )
+ if (0 /* <--- This "0" effectively disables the reuse of a
+ * character class (purely based on its source text).
+ * The reason it was disabled is so yacc/bison can parse
+ * ccl operations, such as ccl difference and union.
+ */
+ && (cclval = ccllookup( (Char *) nmstr )) != 0 )
{
if ( input() != ']' )
synerr( _( "bad character class" ) );
@@ -578,6 +652,9 @@ LEXOPT [aceknopr]
return '[';
}
}
+ "{-}" return CCL_OP_DIFF;
+ "{+}" return CCL_OP_UNION;
+
/* Check for :space: at the end of the rule so we don't
* wrap the expanded regex in '(' ')' -- breaking trailing
@@ -586,19 +663,19 @@ LEXOPT [aceknopr]
"{"{NAME}"}"[[:space:]]? {
register Char *nmdefptr;
int end_is_ws, end_ch;
-
+
end_ch = yytext[yyleng-1];
end_is_ws = end_ch != '}' ? 1 : 0;
- if(yyleng-1 < MAXLINE)
- {
+ if(yyleng-1 < MAXLINE)
+ {
strcpy( nmstr, yytext + 1 );
- }
- else
- {
- synerr( _("Input line too long\n"));
- FLEX_EXIT(EXIT_FAILURE);
- }
+ }
+ else
+ {
+ synerr( _("Input line too long\n"));
+ FLEX_EXIT(EXIT_FAILURE);
+ }
nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if ( (nmdefptr = ndlookup( nmstr )) == 0 )
@@ -614,7 +691,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
if ( lex_compat || nmdefptr[0] == '^' ||
(len > 0 && nmdefptr[len - 1] == '$')
- || (end_is_ws && trlcontxt))
+ || (end_is_ws && trlcontxt && !sf_skip_ws()))
{ /* don't use ()'s after all */
PUT_BACK_STRING((char *) nmdefptr, 0);
@@ -631,6 +708,38 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
}
+ "/*" {
+ if (sf_skip_ws())
+ yy_push_state(COMMENT_DISCARD);
+ else{
+ /* Push back the "*" and return "/" as usual. */
+ yyless(1);
+ return '/';
+ }
+ }
+
+ "(?#" {
+ if (lex_compat || posix_compat){
+ /* Push back the "?#" and treat it like a normal parens. */
+ yyless(1);
+ sf_push();
+ return '(';
+ }
+ else
+ yy_push_state(EXTENDED_COMMENT);
+ }
+ "(?" {
+ sf_push();
+ if (lex_compat || posix_compat)
+ /* Push back the "?" and treat it like a normal parens. */
+ yyless(1);
+ else
+ BEGIN(GROUP_WITH_PARAMS);
+ return '(';
+ }
+ "(" sf_push(); return '(';
+ ")" sf_pop(); return ')';
+
[/|*+?.(){}] return (unsigned char) yytext[0];
. RETURNCHAR;
}
@@ -663,6 +772,19 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
}
+<GROUP_WITH_PARAMS>{
+ ":" BEGIN(SECT2);
+ "-" BEGIN(GROUP_MINUS_PARAMS);
+ i sf_set_case_ins(1);
+ s sf_set_dot_all(1);
+ x sf_set_skip_ws(1);
+}
+<GROUP_MINUS_PARAMS>{
+ ":" BEGIN(SECT2);
+ i sf_set_case_ins(0);
+ s sf_set_dot_all(0);
+ x sf_set_skip_ws(0);
+}
<FIRSTCCL>{
"^"/[^-\]\n] BEGIN(CCL); return '^';
@@ -694,6 +816,19 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
"[:space:]" BEGIN(CCL); return CCE_SPACE;
"[:upper:]" BEGIN(CCL); return CCE_UPPER;
"[:xdigit:]" BEGIN(CCL); return CCE_XDIGIT;
+
+ "[:^alnum:]" BEGIN(CCL); return CCE_NEG_ALNUM;
+ "[:^alpha:]" BEGIN(CCL); return CCE_NEG_ALPHA;
+ "[:^blank:]" BEGIN(CCL); return CCE_NEG_BLANK;
+ "[:^cntrl:]" BEGIN(CCL); return CCE_NEG_CNTRL;
+ "[:^digit:]" BEGIN(CCL); return CCE_NEG_DIGIT;
+ "[:^graph:]" BEGIN(CCL); return CCE_NEG_GRAPH;
+ "[:^lower:]" BEGIN(CCL); return CCE_NEG_LOWER;
+ "[:^print:]" BEGIN(CCL); return CCE_NEG_PRINT;
+ "[:^punct:]" BEGIN(CCL); return CCE_NEG_PUNCT;
+ "[:^space:]" BEGIN(CCL); return CCE_NEG_SPACE;
+ "[:^upper:]" BEGIN(CCL); return CCE_NEG_UPPER;
+ "[:^xdigit:]" BEGIN(CCL); return CCE_NEG_XDIGIT;
{CCL_EXPR} {
format_synerr(
_( "bad character class expression: %s" ),
@@ -748,7 +883,9 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
}
}
- {NAME}|{NOT_NAME}|. ACTION_ECHO;
+ {M4QSTART} ACTION_ECHO_QEND;
+ {M4QEND} ACTION_ECHO_QEND;
+ . ACTION_ECHO;
{NL} {
++linenum;
ACTION_ECHO;
@@ -769,7 +906,10 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<ACTION>{
"{" ACTION_ECHO; ++bracelevel;
"}" ACTION_ECHO; --bracelevel;
- [^[:alpha:]_{}"'/\n]+ ACTION_ECHO;
+ {M4QSTART} ACTION_ECHO_QEND;
+ {M4QEND} ACTION_ECHO_QEND;
+ [^[:alpha:]_{}"'/\n\[\]]+ ACTION_ECHO;
+ [\[\]] ACTION_ECHO;
{NAME} ACTION_ECHO;
"'"([^'\\\n]|\\.)*"'" ACTION_ECHO; /* character constant */
\" ACTION_ECHO; BEGIN(ACTION_STRING);
@@ -796,11 +936,15 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
. ACTION_ECHO;
}
-<COMMENT,ACTION,ACTION_STRING><<EOF>> {
+<COMMENT,COMMENT_DISCARD,ACTION,ACTION_STRING><<EOF>> {
synerr( _( "EOF encountered inside an action" ) );
yyterminate();
}
+<EXTENDED_COMMENT,GROUP_WITH_PARAMS,GROUP_MINUS_PARAMS><<EOF>> {
+ synerr( _( "EOF encountered inside pattern" ) );
+ yyterminate();
+ }
<SECT2,QUOTE,FIRSTCCL,CCL>{ESCSEQ} {
yylval = myesc( (Char *) yytext );
@@ -813,7 +957,10 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
<SECT3>{
- .*(\n?) ECHO;
+ {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();
}
diff --git a/scanflags.c b/scanflags.c
new file mode 100644
index 0000000..20ff501
--- /dev/null
+++ b/scanflags.c
@@ -0,0 +1,66 @@
+/* scanflags - flags used by scanning. */
+
+/* Copyright (c) 1990 The Regents of the University of California. */
+/* All rights reserved. */
+
+/* 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. */
+
+/* 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. */
+
+#include "flexdef.h"
+
+scanflags_t* _sf_stk = NULL;
+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));
+
+ // copy the top element
+ _sf_stk[_sf_top_ix + 1] = _sf_stk[_sf_top_ix];
+ ++_sf_top_ix;
+}
+
+void
+sf_pop (void)
+{
+ assert(_sf_top_ix > 0);
+ --_sf_top_ix;
+}
+
+/* one-time initialization. Should be called before any sf_ functions. */
+void
+sf_init (void)
+{
+ assert(_sf_stk == NULL);
+ _sf_stk = (scanflags_t*) flex_alloc ( sizeof(scanflags_t) * (_sf_max = 32));
+ _sf_stk[_sf_top_ix] = 0;
+}
+
+/* vim:set expandtab cindent tabstop=4 softtabstop=4 shiftwidth=4 textwidth=0: */
diff --git a/scanopt.c b/scanopt.c
index cc7f631..2c8d593 100644
--- a/scanopt.c
+++ b/scanopt.c
@@ -789,12 +789,12 @@ int scanopt (svoid, arg, optindex)
}
optarg = pstart + 1;
- arglen = 0;
- while (optarg[arglen])
- arglen++;
-
- if (arglen == 0)
+ if (!*optarg) {
optarg = NULL;
+ arglen = 0;
+ }
+ else
+ arglen = strlen (optarg);
}
/* At this point, we have a long or short option matched at opt_offset into
@@ -812,13 +812,16 @@ int scanopt (svoid, arg, optindex)
/* case: no args allowed */
if (auxp->flags & ARG_NONE) {
- if (optarg) {
+ if (optarg && !is_short) {
scanopt_err (s, opt_offset, is_short, errcode =
SCANOPT_ERR_ARG_NOT_ALLOWED);
INC_INDEX (s, 1);
return errcode;
}
- INC_INDEX (s, 1);
+ else if (!optarg)
+ INC_INDEX (s, 1);
+ else
+ s->subscript++;
return optp->r_val;
}
diff --git a/skel.c b/skel.c
index fe06557..c45b296 100644
--- a/skel.c
+++ b/skel.c
@@ -59,10 +59,38 @@ const char *skel[] = {
"%# the generated scanner as a C-style comment. This is to aid those who",
"%# edit the skeleton.",
"%#",
+ "",
+ "%not-for-header",
+ "%if-c-only",
+ "%if-not-reentrant",
+ "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_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 yyin M4_YY_PREFIX[[in]]",
+ "#define yyleng M4_YY_PREFIX[[leng]]",
+ "#define yylex M4_YY_PREFIX[[lex]]",
+ "#define yylineno M4_YY_PREFIX[[lineno]]",
+ "#define yyout M4_YY_PREFIX[[out]]",
+ "#define yyrestart M4_YY_PREFIX[[restart]]",
+ "#define yytext M4_YY_PREFIX[[text]]",
+ "#define yywrap M4_YY_PREFIX[[wrap]]",
+ "#define yyalloc M4_YY_PREFIX[[alloc]]",
+ "#define yyrealloc M4_YY_PREFIX[[realloc]]",
+ "#define yyfree M4_YY_PREFIX[[free]]",
+ ")",
+ "%endif",
+ "%endif",
+ "%ok-for-header",
+ "",
"#define FLEX_SCANNER",
"#define YY_FLEX_MAJOR_VERSION 2",
"#define YY_FLEX_MINOR_VERSION 5",
- "#define YY_FLEX_SUBMINOR_VERSION 33",
+ "#define YY_FLEX_SUBMINOR_VERSION 34",
"#if YY_FLEX_SUBMINOR_VERSION > 0",
"#define FLEX_BETA",
"#endif",
@@ -110,6 +138,7 @@ const char *skel[] = {
" m4_define(yy[[lex]], [[M4_YY_PREFIX[[lex]]m4_ifelse($#,0,,[[($@)]])]])",
" m4_define(yy[[restart]], [[M4_YY_PREFIX[[restart]]m4_ifelse($#,0,,[[($@)]])]])",
" m4_define(yy[[lex_init]], [[M4_YY_PREFIX[[lex_init]]m4_ifelse($#,0,,[[($@)]])]])",
+ " m4_define(yy[[lex_init_extra]], [[M4_YY_PREFIX[[lex_init_extra]]m4_ifelse($#,0,,[[($@)]])]])",
" m4_define(yy[[lex_destroy]], [[M4_YY_PREFIX[[lex_destroy]]m4_ifelse($#,0,,[[($@)]])]])",
" m4_define(yy[[get_debug]], [[M4_YY_PREFIX[[get_debug]]m4_ifelse($#,0,,[[($@)]])]])",
" m4_define(yy[[set_debug]], [[M4_YY_PREFIX[[set_debug]]m4_ifelse($#,0,,[[($@)]])]])",
@@ -192,7 +221,7 @@ const char *skel[] = {
"",
"/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */",
"",
- "#if __STDC_VERSION__ >= 199901L",
+ "#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L",
"",
"/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,",
" * if you want the limit (max/min) macros for int types. ",
@@ -267,11 +296,12 @@ const char *skel[] = {
"",
"#else /* ! __cplusplus */",
"",
- "#if __STDC__",
+ "/* C99 requires __STDC__ to be defined as 1. */",
+ "#if defined (__STDC__)",
"",
"#define YY_USE_CONST",
"",
- "#endif /* __STDC__ */",
+ "#endif /* defined (__STDC__) */",
"#endif /* ! __cplusplus */",
"",
"#ifdef YY_USE_CONST",
@@ -369,7 +399,6 @@ const char *skel[] = {
" }while(0)",
"]])",
"",
- "int yylex_init M4_YY_PARAMS(yyscan_t* scanner);",
"%endif",
"",
"",
@@ -479,13 +508,13 @@ const char *skel[] = {
"#define YY_END_OF_BUFFER_CHAR 0",
"]])",
"",
- "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],",
- "[[",
"/* Size of default input buffer. */",
"#ifndef YY_BUF_SIZE",
"#define YY_BUF_SIZE 16384",
"#endif",
"",
+ "m4_ifdef( [[M4_YY_NOT_IN_HEADER]],",
+ "[[",
"/* The state buf must be large enough to hold one state per character in the main buffer.",
" */",
"#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))",
@@ -817,9 +846,16 @@ const char *skel[] = {
"#endif",
"]])",
"",
+ "m4_ifdef( [[M4_EXTRA_TYPE_DEFS]],",
+ "[[",
+ "#define YY_EXTRA_TYPE M4_EXTRA_TYPE_DEFS",
+ "]],",
+ "[[",
"#ifndef YY_EXTRA_TYPE",
"#define YY_EXTRA_TYPE void *",
"#endif",
+ "]]",
+ ")",
"",
"%if-c-only Reentrant structure and macros (non-C++).",
"%if-reentrant",
@@ -860,6 +896,12 @@ const char *skel[] = {
" yy_state_type *yy_state_ptr;",
" char *yy_full_match;",
" int yy_lp;",
+ "",
+ " /* These are only needed for trailing context rules,",
+ " * but there's no conditional variable for that yet. */",
+ " int yy_looking_for_trail_begin;",
+ " int yy_full_lp;",
+ " int *yy_full_state;",
"]])",
"",
"m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],",
@@ -913,6 +955,10 @@ const char *skel[] = {
" ]])",
"]])",
"",
+ "int yylex_init M4_YY_PARAMS(yyscan_t* scanner);",
+ "",
+ "int yylex_init_extra M4_YY_PARAMS( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);",
+ "",
"%endif",
"",
"/* Accessor methods to globals.",
@@ -1099,7 +1145,7 @@ const char *skel[] = {
"/* This used to be an fputs(), but since the string might contain NUL's,",
" * we now use fwrite().",
" */",
- "#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )",
+ "#define ECHO fwrite( yytext, yyleng, 1, yyout )",
"%endif",
"%if-c++-only C++ definition",
"#define ECHO LexerOutput( yytext, yyleng )",
@@ -1351,9 +1397,9 @@ const char *skel[] = {
" m4_dnl The bison pure parser is used. Redefine yylex to",
" m4_dnl accept the lval parameter.",
"",
- " m4_define( [[M4_YY_LEX_PROTO]],",
+ " m4_define( [[M4_YY_LEX_PROTO]], [[\\]]",
" [[M4_YY_PARAMS(YYSTYPE * yylval_param M4_YY_PROTO_LAST_ARG)]])",
- " m4_define( [[M4_YY_LEX_DECLARATION]],",
+ " m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]",
" [[YYFARGS1(YYSTYPE *,yylval_param)]])",
"]])",
"",
@@ -1361,9 +1407,9 @@ const char *skel[] = {
"[[",
" m4_dnl Locations are used. yylex should also accept the ylloc parameter.",
"",
- " m4_define( [[M4_YY_LEX_PROTO]],",
+ " m4_define( [[M4_YY_LEX_PROTO]], [[\\]]",
" [[M4_YY_PARAMS(YYSTYPE * yylval_param, YYLTYPE * yylloc_param M4_YY_PROTO_LAST_ARG)]])",
- " m4_define( [[M4_YY_LEX_DECLARATION]],",
+ " m4_define( [[M4_YY_LEX_DECLARATION]], [[\\]]",
" [[YYFARGS2(YYSTYPE *,yylval_param, YYLTYPE *,yylloc_param)]])",
"]])",
"",
@@ -1446,6 +1492,8 @@ const char *skel[] = {
" /* Create the reject buffer large enough to save one state per allowed character. */",
" if ( ! YY_G(yy_state_buf) )",
" YY_G(yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE M4_YY_CALL_LAST_ARG);",
+ " if ( ! YY_G(yy_state_buf) )",
+ " YY_FATAL_ERROR( \"out of dynamic memory in yylex()\" );",
"]])",
"",
" if ( ! YY_G(yy_start) )",
@@ -1638,6 +1686,8 @@ const char *skel[] = {
"",
"%if-c++-only",
"%not-for-header",
+ "/* 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 )",
"{",
" yyin = arg_yyin;",
@@ -1658,9 +1708,9 @@ const char *skel[] = {
" yy_start_stack_ptr = yy_start_stack_depth = 0;",
" yy_start_stack = NULL;",
"",
- " YY_G(yy_buffer_stack) = 0;",
- " YY_G(yy_buffer_stack_top) = 0;",
- " YY_G(yy_buffer_stack_max) = 0;",
+ " yy_buffer_stack = 0;",
+ " yy_buffer_stack_top = 0;",
+ " yy_buffer_stack_max = 0;",
"",
"",
"m4_ifdef( [[M4_YY_USES_REJECT]],",
@@ -1672,13 +1722,18 @@ const char *skel[] = {
"]])",
"}",
"",
+ "/* The contents of this function are C++ specific, so the YY_G macro is not used.",
+ " */",
"yyFlexLexer::~yyFlexLexer()",
"{",
" delete [] yy_state_buf;",
" yyfree( yy_start_stack M4_YY_CALL_LAST_ARG );",
" yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);",
+ " yyfree( yy_buffer_stack M4_YY_CALL_LAST_ARG );",
"}",
"",
+ "/* 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 )",
@@ -1840,7 +1895,7 @@ const char *skel[] = {
"",
" /* Read in more data. */",
" YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),",
- " YY_G(yy_n_chars), num_to_read );",
+ " YY_G(yy_n_chars), (size_t) num_to_read );",
"",
" YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);",
" }",
@@ -1864,6 +1919,15 @@ const char *skel[] = {
" 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) {",
+ " /* 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);",
+ " YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(",
+ " (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, 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()\" );",
+ " }",
+ "",
" YY_G(yy_n_chars) += number_to_move;",
" YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;",
" YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[YY_G(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;",
@@ -2397,6 +2461,9 @@ const char *skel[] = {
" 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*));",
" ",
@@ -2415,6 +2482,8 @@ const char *skel[] = {
" (YY_G(yy_buffer_stack),",
" 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()\" );",
"",
" /* zero only the new slots.*/",
" memset(YY_G(yy_buffer_stack) + YY_G(yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));",
@@ -2473,7 +2542,7 @@ const char *skel[] = {
"%if-c-only",
"/** Setup the input buffer state to scan a string. The next call to yylex() will",
" * scan from a @e copy of @a str.",
- " * @param str a NUL-terminated string to scan",
+ " * @param yystr a NUL-terminated string to scan",
" * M4_YY_DOC_PARAM",
" * @return the newly allocated buffer state object.",
" * @note If you want to scan bytes that may contain NUL values, then use",
@@ -2558,8 +2627,7 @@ const char *skel[] = {
" (void *) YY_G(yy_start_stack), new_size M4_YY_CALL_LAST_ARG );",
"",
" if ( ! YY_G(yy_start_stack) )",
- " YY_FATAL_ERROR(",
- " \"out of memory expanding start-condition stack\" );",
+ " YY_FATAL_ERROR( \"out of memory expanding start-condition stack\" );",
" }",
"",
" YY_G(yy_start_stack)[YY_G(yy_start_stack_ptr)++] = YY_START;",
@@ -2927,7 +2995,51 @@ const char *skel[] = {
" return yy_init_globals ( *ptr_yy_globals );",
"}",
"",
- "%endif",
+ "",
+ "/* yylex_init_extra has the same functionality as yylex_init, but follows the",
+ " * convention of taking the scanner as the last argument. Note however, that",
+ " * this is a *pointer* to a scanner, as it will be allocated by this call (and",
+ " * is the reason, too, why this function also must handle its own declaration).",
+ " * 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;",
+ "",
+ " yyset_extra (yy_user_defined, &dummy_yyguts);",
+ "",
+ " if (ptr_yy_globals == NULL){",
+ " 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",
+ "",
"",
"%if-c-only",
"static int yy_init_globals YYFARGS0(void)",
@@ -3235,6 +3347,8 @@ const char *skel[] = {
" /* Allocate enough space for the version and name fields */",
" bytes = th->th_hsize - 14;",
" th->th_version = (char *) yyalloc (bytes M4_YY_CALL_LAST_ARG);",
+ " if ( ! th->th_version )",
+ " YY_FATAL_ERROR( \"out of dynamic memory in yytbl_hdr_read()\" );",
"",
" /* we read it all into th_version, and point th_name into that data */",
" if (fread (th->th_version, 1, bytes, rd->fp) != bytes){",
@@ -3314,6 +3428,8 @@ const char *skel[] = {
" else",
" /* We point to the address of a pointer. */",
" *dmap->dm_arr = p = (void *) yyalloc (bytes M4_YY_CALL_LAST_ARG);",
+ " if ( ! p )",
+ " YY_FATAL_ERROR( \"out of dynamic memory in yytbl_data_load()\" );",
" }",
"",
" /* If it's a struct, we read 2 integers to get one element */",
diff --git a/sym.c b/sym.c
index 7aecae9..8d0b2e9 100644
--- a/sym.c
+++ b/sym.c
@@ -168,7 +168,6 @@ static struct hash_entry *findsym (sym, table, table_size)
return &empty_entry;
}
-
/* hashfunct - compute the hash value for "str" and hash size "hash_size" */
static int hashfunct (str, hash_size)
diff --git a/tables.c b/tables.c
index ddfd78e..daa2e87 100644
--- a/tables.c
+++ b/tables.c
@@ -141,7 +141,7 @@ static int yytbl_write_pad64 (struct yytbl_writer *wr)
*/
int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th)
{
- size_t sz, rv;
+ int sz, rv;
int bwritten = 0;
if (yytbl_write32 (wr, th->th_magic) < 0
@@ -173,7 +173,7 @@ int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th)
bwritten += rv;
/* Sanity check */
- if (bwritten != th->th_hsize)
+ if (bwritten != (int) th->th_hsize)
flex_die (_("pad64 failed"));
return bwritten;
@@ -187,7 +187,7 @@ int yytbl_hdr_fwrite (struct yytbl_writer *wr, const struct yytbl_hdr *th)
*/
int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
{
- size_t rv;
+ int rv;
flex_int32_t bwritten = 0;
flex_int32_t i, total_len;
fpos_t pos;
@@ -231,7 +231,7 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
}
/* Sanity check */
- if (bwritten != (12 + total_len * YYTDFLAGS2BYTES (td->td_flags))) {
+ if (bwritten != (int) (12 + total_len * YYTDFLAGS2BYTES (td->td_flags))) {
flex_die (_("insanity detected"));
return -1;
}
@@ -265,7 +265,7 @@ int yytbl_data_fwrite (struct yytbl_writer *wr, struct yytbl_data *td)
*/
int yytbl_writen (struct yytbl_writer *wr, void *v, flex_int32_t len)
{
- size_t rv;
+ int rv;
rv = fwrite (v, 1, len, wr->out);
if (rv != len)
@@ -467,11 +467,11 @@ void yytbl_data_compress (struct yytbl_data *tbl)
newsz = min_int_size (tbl);
- if (newsz == YYTDFLAGS2BYTES (tbl->td_flags))
+ if (newsz == (int) YYTDFLAGS2BYTES (tbl->td_flags))
/* No change in this table needed. */
return;
- if (newsz > YYTDFLAGS2BYTES (tbl->td_flags)) {
+ if (newsz > (int) YYTDFLAGS2BYTES (tbl->td_flags)) {
flex_die (_("detected negative compression"));
return;
}
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ef8b473..33c20bd 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -26,6 +26,11 @@ dist_noinst_SCRIPTS = \
create-test
DIST_SUBDIRS = \
+ test-concatenated-options \
+ test-c++-yywrap \
+ test-extended \
+ test-ccl \
+ test-quotes \
test-rescan-r \
test-rescan-nr \
test-basic-nr \
@@ -64,11 +69,17 @@ DIST_SUBDIRS = \
test-string-nr \
test-string-r \
test-yyextra \
+ test-alloc-extra \
test-noansi-nr \
test-noansi-r \
test-table-opts
SUBDIRS = \
+ test-concatenated-options \
+ test-c++-yywrap \
+ test-extended \
+ test-ccl \
+ test-quotes \
test-rescan-r \
test-rescan-nr \
test-basic-nr \
@@ -105,6 +116,7 @@ SUBDIRS = \
test-string-nr \
test-string-r \
test-yyextra \
+ test-alloc-extra \
test-noansi-nr \
test-noansi-r \
test-top \
@@ -119,10 +131,10 @@ check-local: clean
echo Executing test "$$dir" ; \
( cd "$$dir" && $(MAKE) test > OUTPUT 2>&1 ) ; \
case $$? in \
- 0 ) echo Test "$$DIR" succeeded.; \
+ 0 ) echo Test "$$dir" succeeded.; \
NOK=0$$NOK;\
;; \
- * ) echo Test "$$DIR" FAILED. See "$$dir"/OUTPUT for details. ; \
+ * ) echo Test "$$dir" FAILED. See "$$dir"/OUTPUT for details. ; \
NFAIL=0$$NFAIL; \
;; \
esac; \
diff --git a/tests/Makefile.in b/tests/Makefile.in
index e02f649..79d0142 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -42,7 +42,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +55,36 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests
+DIST_COMMON = README $(dist_noinst_SCRIPTS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SCRIPTS = $(dist_noinst_SCRIPTS)
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-exec-recursive install-info-recursive \
+ install-recursive installcheck-recursive installdirs-recursive \
+ pdf-recursive ps-recursive uninstall-info-recursive \
+ uninstall-recursive
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +162,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +184,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,16 +192,18 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
EXTRA_DIST = \
README
-
dist_noinst_SCRIPTS = \
create-test
-
DIST_SUBDIRS = \
+ test-concatenated-options \
+ test-c++-yywrap \
+ test-extended \
+ test-ccl \
+ test-quotes \
test-rescan-r \
test-rescan-nr \
test-basic-nr \
@@ -210,12 +242,17 @@ DIST_SUBDIRS = \
test-string-nr \
test-string-r \
test-yyextra \
+ test-alloc-extra \
test-noansi-nr \
test-noansi-r \
test-table-opts
-
SUBDIRS = \
+ test-concatenated-options \
+ test-c++-yywrap \
+ test-extended \
+ test-ccl \
+ test-quotes \
test-rescan-r \
test-rescan-nr \
test-basic-nr \
@@ -252,34 +289,44 @@ SUBDIRS = \
test-string-nr \
test-string-r \
test-yyextra \
+ test-alloc-extra \
test-noansi-nr \
test-noansi-r \
test-top \
test-table-opts
-subdir = tests
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SCRIPTS = $(dist_noinst_SCRIPTS)
-
-DIST_SOURCES =
-
-RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \
- ps-recursive install-info-recursive uninstall-info-recursive \
- all-recursive install-data-recursive install-exec-recursive \
- installdirs-recursive install-recursive uninstall-recursive \
- check-recursive installcheck-recursive
-DIST_COMMON = README $(dist_noinst_SCRIPTS) Makefile.am Makefile.in
all: all-recursive
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
# This directory's subdirectories are mostly independent; you can cd
@@ -289,7 +336,13 @@ uninstall-info-am:
# (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -301,7 +354,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -309,7 +362,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
- @set fnord $$MAKEFLAGS; amf=$$2; \
+ @failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
dot_seen=no; \
case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -330,7 +389,7 @@ maintainer-clean-recursive:
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+ || eval $$failcom; \
done && test -z "$$fail"
tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -341,14 +400,6 @@ ctags-recursive:
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
done
-ETAGS = etags
-ETAGSFLAGS =
-
-CTAGS = ctags
-CTAGSFLAGS =
-
-tags: TAGS
-
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -357,19 +408,22 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
- if (etags --etags-include --version) >/dev/null 2>&1; then \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
include_option=--etags-include; \
+ empty_fix=.; \
else \
include_option=--include; \
+ empty_fix=; \
fi; \
list='$(SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -f $$subdir/TAGS && \
+ test ! -f $$subdir/TAGS || \
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
fi; \
done; \
@@ -379,10 +433,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$tags $$unique
-
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -405,10 +460,6 @@ GTAGS:
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -422,7 +473,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -439,13 +490,15 @@ distdir: $(DISTFILES)
done
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
if test "$$subdir" = .; then :; else \
- test -d $(distdir)/$$subdir \
- || mkdir $(distdir)/$$subdir \
+ test -d "$(distdir)/$$subdir" \
+ || $(mkdir_p) "$(distdir)/$$subdir" \
|| exit 1; \
+ distdir=`$(am__cd) $(distdir) && pwd`; \
+ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
(cd $$subdir && \
$(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$(top_distdir)" \
- distdir=../$(distdir)/$$subdir \
+ top_distdir="$$top_distdir" \
+ distdir="$$distdir/$$subdir" \
distdir) \
|| exit 1; \
fi; \
@@ -456,7 +509,6 @@ check: check-recursive
all-am: Makefile $(SCRIPTS)
installdirs: installdirs-recursive
installdirs-am:
-
install: install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
@@ -468,7 +520,7 @@ install-am: all-am
installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -476,7 +528,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -486,13 +538,15 @@ clean: clean-recursive
clean-am: clean-generic mostlyclean-am
distclean: distclean-recursive
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic distclean-tags
dvi: dvi-recursive
dvi-am:
+html: html-recursive
+
info: info-recursive
info-am:
@@ -508,7 +562,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-recursive
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-recursive
@@ -529,19 +583,16 @@ uninstall-info: uninstall-info-recursive
.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
check-local clean clean-generic clean-recursive ctags \
- ctags-recursive distclean distclean-generic distclean-recursive \
- distclean-tags distdir dvi dvi-am dvi-recursive info info-am \
- info-recursive install install-am install-data install-data-am \
- install-data-recursive install-exec install-exec-am \
- install-exec-recursive install-info install-info-am \
- install-info-recursive install-man install-recursive \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am installdirs-recursive maintainer-clean \
- maintainer-clean-generic maintainer-clean-recursive mostlyclean \
- mostlyclean-generic mostlyclean-recursive pdf pdf-am \
- pdf-recursive ps ps-am ps-recursive tags tags-recursive \
- uninstall uninstall-am uninstall-info-am \
- uninstall-info-recursive uninstall-recursive
+ ctags-recursive distclean distclean-generic \
+ distclean-recursive distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-exec install-exec-am install-info \
+ install-info-am install-man install-strip installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic maintainer-clean-recursive \
+ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
+ pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+ uninstall-info-am
# clean up before running the test suite so we dont test old builds of test code
@@ -553,10 +604,10 @@ check-local: clean
echo Executing test "$$dir" ; \
( cd "$$dir" && $(MAKE) test > OUTPUT 2>&1 ) ; \
case $$? in \
- 0 ) echo Test "$$DIR" succeeded.; \
+ 0 ) echo Test "$$dir" succeeded.; \
NOK=0$$NOK;\
;; \
- * ) echo Test "$$DIR" FAILED. See "$$dir"/OUTPUT for details. ; \
+ * ) echo Test "$$dir" FAILED. See "$$dir"/OUTPUT for details. ; \
NFAIL=0$$NFAIL; \
;; \
esac; \
diff --git a/tests/TEMPLATE/Makefile.am b/tests/TEMPLATE/Makefile.am
index e9d4cf8..5495991 100644
--- a/tests/TEMPLATE/Makefile.am
+++ b/tests/TEMPLATE/Makefile.am
@@ -24,7 +24,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l parser.y test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h TEMPLATE OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/TEMPLATE/Makefile.in b/tests/TEMPLATE/Makefile.in
index 2579993..50da6d1 100644
--- a/tests/TEMPLATE/Makefile.in
+++ b/tests/TEMPLATE/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/TEMPLATE
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l parser.y test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h TEMPLATE OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = TEMPLATE
-subdir = tests/TEMPLATE
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/TEMPLATE/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/TEMPLATE/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/TEMPLATE/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/create-test b/tests/create-test
index 60d57f2..05e6864 100755
--- a/tests/create-test
+++ b/tests/create-test
@@ -22,21 +22,12 @@ for i in $TESTFILES ; do
cp TEMPLATE/$i $1/$i
done
-# Modify .cvsignore
echo "$1" >> "$1"/.cvsignore
-# Modify top-level configure.in
-sed '/--new-test-here--/i\
-tests/'"$1"'/Makefile' < ../configure.in > configure.in.tmp
+sed -i '/--new-test-here--/i\
+tests/'"$1"'/Makefile' ../configure.in
-mv configure.in.tmp ../configure.in
+sed -i '/^\(DIST_\)\?SUBDIRS/a\
+ '"$1"' \\' Makefile.am
-# Modify Makefile.am
-sed '/^\(DIST_\)\?SUBDIRS/a\
- '"$1"' \\' < Makefile.am > Makefile.am.tmp
-
-mv Makefile.am.tmp Makefile.am
-
-# Modify new-test/Makefile.am
-sed "s:TEMPLATE:$1:g" < "$1"/Makefile.am > "$1"/Makefile.am.tmp
-mv "$1"/Makefile.am.tmp "$1"/Makefile.am
+sed -i "s:TEMPLATE:$1:g" "$1"/Makefile.am
diff --git a/tests/test-alloc-extra/Makefile.am b/tests/test-alloc-extra/Makefile.am
new file mode 100644
index 0000000..e149d0d
--- /dev/null
+++ b/tests/test-alloc-extra/Makefile.am
@@ -0,0 +1,49 @@
+# 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.
+
+
+FLEX = $(top_builddir)/flex
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o # parser.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+#LDFLAGS = $(top_srcdir)/libfl.a
+#LFLAGS = --header="scanner.h"
+#YFLAGS = --defines --output=parser.c
+
+testname = test-alloc-extra
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+parser.c: $(srcdir)/parser.y
+ $(BISON) $(YFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-alloc-extra/Makefile.in b/tests/test-alloc-extra/Makefile.in
new file mode 100644
index 0000000..1a3dbbc
--- /dev/null
+++ b/tests/test-alloc-extra/Makefile.in
@@ -0,0 +1,362 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-alloc-extra
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o # parser.o
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+#LDFLAGS = $(top_srcdir)/libfl.a
+#LFLAGS = --header="scanner.h"
+#YFLAGS = --defines --output=parser.c
+testname = test-alloc-extra
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-alloc-extra/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-alloc-extra/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+parser.c: $(srcdir)/parser.y
+ $(BISON) $(YFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-alloc-extra/scanner.l b/tests/test-alloc-extra/scanner.l
new file mode 100644
index 0000000..bedd43b
--- /dev/null
+++ b/tests/test-alloc-extra/scanner.l
@@ -0,0 +1,123 @@
+/*
+ * 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.
+ */
+
+%{
+/* A file to build "scanner.c". */
+/* This tests that we can use "yyextra".
+ We buffer all input into a growable array, then print it.
+ We run diff on the input and output.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "config.h"
+
+
+/* We'll store the entire input in this buffer, growing as necessary. */
+struct Check {
+ char foo;
+ char *bar;
+ char qux;
+};
+
+/* Save char into junk array at next position. */
+static void check_extra ( yyscan_t scanner );
+
+/* Special yyalloc */
+void *yyalloc ( size_t size, yyscan_t scanner );
+
+%}
+
+%option 8bit outfile="scanner.c" prefix="test"
+%option nounput nomain noyywrap nodefault
+%option warn
+%option extra-type="struct Check *"
+%option reentrant
+%option noyyalloc
+
+
+%%
+
+.|\r|\n { check_extra (yyscanner); }
+
+%%
+
+int main(void);
+
+int
+main ()
+{
+ yyscan_t scanner;
+ struct Check check;
+
+ check.foo = 'a';
+ check.bar = NULL;
+ check.qux = 'z';
+
+ testlex_init_extra(&check, &scanner);
+ testset_in(stdin, scanner);
+ testset_out(stdout, scanner);
+
+ /* Test to confirm that yyalloc was called from
+ * yylex_init_extra with the yyextra argument.
+ */
+ check_extra(scanner);
+
+ testlex(scanner);
+
+ testlex_destroy(scanner);
+ return 0;
+}
+
+void *yyalloc(size_t size, yyscan_t scanner)
+{
+ struct Check *check;
+ check = testget_extra(scanner);
+
+ if (!check->bar)
+ check->bar = "Hello World";
+
+ check_extra(scanner);
+
+ return malloc(size);
+}
+
+/* Save char into junk array at next position. */
+static void check_extra(yyscan_t scanner)
+{
+ struct Check *check;
+ check = testget_extra(scanner);
+
+ if (check->foo != 'a') {
+ fprintf(stderr, "foo is not 'a'\n");
+ exit(1);
+ }
+ if (strcmp(check->bar, "Hello World") != 0) {
+ fprintf(stderr, "bar is not Hello World\n");
+ exit(1);
+ }
+ if (check->qux != 'z') {
+ fprintf(stderr, "qux is not 'z'\n");
+ exit(1);
+ }
+}
diff --git a/tests/test-alloc-extra/test.input b/tests/test-alloc-extra/test.input
new file mode 100644
index 0000000..243df29
--- /dev/null
+++ b/tests/test-alloc-extra/test.input
@@ -0,0 +1,795 @@
+
+ THE UNITED STATES CONSTITUTION
+ _________________________________________________________________
+
+ (See Note 1)
+
+ We the People of the United States, in Order to form a more perfect
+ Union, establish Justice, insure domestic Tranquility, provide for the
+ common defence, promote the general Welfare, and secure the Blessings
+ of Liberty to ourselves and our Posterity, do ordain and establish
+ this Constitution for the United States of America.
+
+Article. I.
+
+ Section 1.
+
+ All legislative Powers herein granted shall be vested in a Congress of
+ the United States, which shall consist of a Senate and House of
+ Representatives.
+
+ Section. 2.
+
+ Clause 1: The House of Representatives shall be composed of Members
+ chosen every second Year by the People of the several States, and the
+ Electors in each State shall have the Qualifications requisite for
+ Electors of the most numerous Branch of the State Legislature.
+
+ Clause 2: No Person shall be a Representative who shall not have
+ attained to the Age of twenty five Years, and been seven Years a
+ Citizen of the United States, and who shall not, when elected, be an
+ Inhabitant of that State in which he shall be chosen.
+
+ Clause 3: Representatives and direct Taxes shall be apportioned among
+ the several States which may be included within this Union, according
+ to their respective Numbers, which shall be determined by adding to
+ the whole Number of free Persons, including those bound to Service for
+ a Term of Years, and excluding Indians not taxed, three fifths of all
+ other Persons. (See Note 2) The actual Enumeration shall be made
+ within three Years after the first Meeting of the Congress of the
+ United States, and within every subsequent Term of ten Years, in such
+ Manner as they shall by Law direct. The Number of Representatives
+ shall not exceed one for every thirty Thousand, but each State shall
+ have at Least one Representative; and until such enumeration shall be
+ made, the State of New Hampshire shall be entitled to chuse three,
+ Massachusetts eight, Rhode-Island and Providence Plantations one,
+ Connecticut five, New-York six, New Jersey four, Pennsylvania eight,
+ Delaware one, Maryland six, Virginia ten, North Carolina five, South
+ Carolina five, and Georgia three.
+
+ Clause 4: When vacancies happen in the Representation from any State,
+ the Executive Authority thereof shall issue Writs of Election to fill
+ such Vacancies.
+
+ Clause 5: The House of Representatives shall chuse their Speaker and
+ other Officers; and shall have the sole Power of Impeachment.
+
+ Section. 3.
+
+ Clause 1: The Senate of the United States shall be composed of two
+ Senators from each State, chosen by the Legislature thereof, (See Note
+ 3) for six Years; and each Senator shall have one Vote.
+
+ Clause 2: Immediately after they shall be assembled in Consequence of
+ the first Election, they shall be divided as equally as may be into
+ three Classes. The Seats of the Senators of the first Class shall be
+ vacated at the Expiration of the second Year, of the second Class at
+ the Expiration of the fourth Year, and of the third Class at the
+ Expiration of the sixth Year, so that one third may be chosen every
+ second Year; and if Vacancies happen by Resignation, or otherwise,
+ during the Recess of the Legislature of any State, the Executive
+ thereof may make temporary Appointments until the next Meeting of the
+ Legislature, which shall then fill such Vacancies. (See Note 4)
+
+ Clause 3: No Person shall be a Senator who shall not have attained to
+ the Age of thirty Years, and been nine Years a Citizen of the United
+ States, and who shall not, when elected, be an Inhabitant of that
+ State for which he shall be chosen.
+
+ Clause 4: The Vice President of the United States shall be President
+ of the Senate, but shall have no Vote, unless they be equally divided.
+
+ Clause 5: The Senate shall chuse their other Officers, and also a
+ President pro tempore, in the Absence of the Vice President, or when
+ he shall exercise the Office of President of the United States.
+
+ Clause 6: The Senate shall have the sole Power to try all
+ Impeachments. When sitting for that Purpose, they shall be on Oath or
+ Affirmation. When the President of the United States is tried, the
+ Chief Justice shall preside: And no Person shall be convicted without
+ the Concurrence of two thirds of the Members present.
+
+ Clause 7: Judgment in Cases of Impeachment shall not extend further
+ than to removal from Office, and disqualification to hold and enjoy
+ any Office of honor, Trust or Profit under the United States: but the
+ Party convicted shall nevertheless be liable and subject to
+ Indictment, Trial, Judgment and Punishment, according to Law.
+
+ Section. 4.
+
+ Clause 1: The Times, Places and Manner of holding Elections for
+ Senators and Representatives, shall be prescribed in each State by the
+ Legislature thereof; but the Congress may at any time by Law make or
+ alter such Regulations, except as to the Places of chusing Senators.
+
+ Clause 2: The Congress shall assemble at least once in every Year, and
+ such Meeting shall be on the first Monday in December, (See Note 5)
+ unless they shall by Law appoint a different Day.
+
+ Section. 5.
+
+ Clause 1: Each House shall be the Judge of the Elections, Returns and
+ Qualifications of its own Members, and a Majority of each shall
+ constitute a Quorum to do Business; but a smaller Number may adjourn
+ from day to day, and may be authorized to compel the Attendance of
+ absent Members, in such Manner, and under such Penalties as each House
+ may provide.
+
+ Clause 2: Each House may determine the Rules of its Proceedings,
+ punish its Members for disorderly Behaviour, and, with the Concurrence
+ of two thirds, expel a Member.
+
+ Clause 3: Each House shall keep a Journal of its Proceedings, and from
+ time to time publish the same, excepting such Parts as may in their
+ Judgment require Secrecy; and the Yeas and Nays of the Members of
+ either House on any question shall, at the Desire of one fifth of
+ those Present, be entered on the Journal.
+
+ Clause 4: Neither House, during the Session of Congress, shall,
+ without the Consent of the other, adjourn for more than three days,
+ nor to any other Place than that in which the two Houses shall be
+ sitting.
+
+ Section. 6.
+
+ Clause 1: The Senators and Representatives shall receive a
+ Compensation for their Services, to be ascertained by Law, and paid
+ out of the Treasury of the United States. (See Note 6) They shall in
+ all Cases, except Treason, Felony and Breach of the Peace,
+ beprivileged from Arrest during their Attendance at the Session of
+ their respective Houses, and in going to and returning from the same;
+ and for any Speech or Debate in either House, they shall not be
+ questioned in any other Place.
+
+ Clause 2: No Senator or Representative shall, during the Time for
+ which he was elected, be appointed to any civil Office under the
+ Authority of the United States, which shall have been created, or the
+ Emoluments whereof shall have been encreased during such time; and no
+ Person holding any Office under the United States, shall be a Member
+ of either House during his Continuance in Office.
+
+ Section. 7.
+
+ Clause 1: All Bills for raising Revenue shall originate in the House
+ of Representatives; but the Senate may propose or concur with
+ Amendments as on other Bills.
+
+ Clause 2: Every Bill which shall have passed the House of
+ Representatives and the Senate, shall, before it become a Law, be
+ presented to the President of the United States; If he approve he
+ shall sign it, but if not he shall return it, with his Objections to
+ that House in which it shall have originated, who shall enter the
+ Objections at large on their Journal, and proceed to reconsider it. If
+ after such Reconsideration two thirds of that House shall agree to
+ pass the Bill, it shall be sent, together with the Objections, to the
+ other House, by which it shall likewise be reconsidered, and if
+ approved by two thirds of that House, it shall become a Law. But in
+ all such Cases the Votes of both Houses shall be determined by yeas
+ and Nays, and the Names of the Persons voting for and against the Bill
+ shall be entered on the Journal of each House respectively. If any
+ Bill shall not be returned by the President within ten Days (Sundays
+ excepted) after it shall have been presented to him, the Same shall be
+ a Law, in like Manner as if he had signed it, unless the Congress by
+ their Adjournment prevent its Return, in which Case it shall not be a
+ Law.
+
+ Clause 3: Every Order, Resolution, or Vote to which the Concurrence of
+ the Senate and House of Representatives may be necessary (except on a
+ question of Adjournment) shall be presented to the President of the
+ United States; and before the Same shall take Effect, shall be
+ approved by him, or being disapproved by him, shall be repassed by two
+ thirds of the Senate and House of Representatives, according to the
+ Rules and Limitations prescribed in the Case of a Bill.
+
+ Section. 8.
+
+ Clause 1: The Congress shall have Power To lay and collect Taxes,
+ Duties, Imposts and Excises, to pay the Debts and provide for the
+ common Defence and general Welfare of the United States; but all
+ Duties, Imposts and Excises shall be uniform throughout the United
+ States;
+
+ Clause 2: To borrow Money on the credit of the United States;
+
+ Clause 3: To regulate Commerce with foreign Nations, and among the
+ several States, and with the Indian Tribes;
+
+ Clause 4: To establish an uniform Rule of Naturalization, and uniform
+ Laws on the subject of Bankruptcies throughout the United States;
+
+ Clause 5: To coin Money, regulate the Value thereof, and of foreign
+ Coin, and fix the Standard of Weights and Measures;
+
+ Clause 6: To provide for the Punishment of counterfeiting the
+ Securities and current Coin of the United States;
+
+ Clause 7: To establish Post Offices and post Roads;
+
+ Clause 8: To promote the Progress of Science and useful Arts, by
+ securing for limited Times to Authors and Inventors the exclusive
+ Right to their respective Writings and Discoveries;
+
+ Clause 9: To constitute Tribunals inferior to the supreme Court;
+
+ Clause 10: To define and punish Piracies and Felonies committed on the
+ high Seas, and Offences against the Law of Nations;
+
+ Clause 11: To declare War, grant Letters of Marque and Reprisal, and
+ make Rules concerning Captures on Land and Water;
+
+ Clause 12: To raise and support Armies, but no Appropriation of Money
+ to that Use shall be for a longer Term than two Years;
+
+ Clause 13: To provide and maintain a Navy;
+
+ Clause 14: To make Rules for the Government and Regulation of the land
+ and naval Forces;
+
+ Clause 15: To provide for calling forth the Militia to execute the
+ Laws of the Union, suppress Insurrections and repel Invasions;
+
+ Clause 16: To provide for organizing, arming, and disciplining, the
+ Militia, and for governing such Part of them as may be employed in the
+ Service of the United States, reserving to the States respectively,
+ the Appointment of the Officers, and the Authority of training the
+ Militia according to the discipline prescribed by Congress;
+
+ Clause 17: To exercise exclusive Legislation in all Cases whatsoever,
+ over such District (not exceeding ten Miles square) as may, byCession
+ of particular States, and the Acceptance of Congress, become the Seat
+ of the Government of the United States, and to exercise like Authority
+ over all Places purchased by the Consent of the Legislature of the
+ State in which the Same shall be, for the Erection of Forts,
+ Magazines, Arsenals, dock-Yards, and other needful Buildings;--And
+
+ Clause 18: To make all Laws which shall be necessary and proper for
+ carrying into Execution the foregoing Powers, and all other Powers
+ vested by this Constitution in the Government of the United States, or
+ in any Department or Officer thereof.
+
+ Section. 9.
+
+ Clause 1: The Migration or Importation of such Persons as any of the
+ States now existing shall think proper to admit, shall not be
+ prohibited by the Congress prior to the Year one thousand eight
+ hundred and eight, but a Tax or duty may be imposed on such
+ Importation, not exceeding ten dollars for each Person.
+
+ Clause 2: The Privilege of the Writ of Habeas Corpus shall not be
+ suspended, unless when in Cases of Rebellion or Invasion the public
+ Safety may require it.
+
+ Clause 3: No Bill of Attainder or ex post facto Law shall be passed.
+
+ Clause 4: No Capitation, or other direct, Tax shall be laid, unless in
+ Proportion to the Census or Enumeration herein before directed to be
+ taken. (See Note 7)
+
+ Clause 5: No Tax or Duty shall be laid on Articles exported from any
+ State.
+
+ Clause 6: No Preference shall be given by any Regulation of Commerce
+ or Revenue to the Ports of one State over those of another: nor shall
+ Vessels bound to, or from, one State, be obliged to enter, clear, or
+ pay Duties in another.
+
+ Clause 7: No Money shall be drawn from the Treasury, but in
+ Consequence of Appropriations made by Law; and a regular Statement and
+ Account of the Receipts and Expenditures of all public Money shall be
+ published from time to time.
+
+ Clause 8: No Title of Nobility shall be granted by the United States:
+ And no Person holding any Office of Profit or Trust under them, shall,
+ without the Consent of the Congress, accept of any present, Emolument,
+ Office, or Title, of any kind whatever, from any King, Prince, or
+ foreign State.
+
+ Section. 10.
+
+ Clause 1: No State shall enter into any Treaty, Alliance, or
+ Confederation; grant Letters of Marque and Reprisal; coin Money; emit
+ Bills of Credit; make any Thing but gold and silver Coin a Tender in
+ Payment of Debts; pass any Bill of Attainder, ex post facto Law, or
+ Law impairing the Obligation of Contracts, or grant any Title of
+ Nobility.
+
+ Clause 2: No State shall, without the Consent of the Congress, lay any
+ Imposts or Duties on Imports or Exports, except what may be absolutely
+ necessary for executing it's inspection Laws: and the net Produce of
+ all Duties and Imposts, laid by any State on Imports or Exports, shall
+ be for the Use of the Treasury of the United States; and all such Laws
+ shall be subject to the Revision and Controul of the Congress.
+
+ Clause 3: No State shall, without the Consent of Congress, lay any
+ Duty of Tonnage, keep Troops, or Ships of War in time of Peace, enter
+ into any Agreement or Compact with another State, or with a foreign
+ Power, or engage in War, unless actually invaded, or in such imminent
+ Danger as will not admit of delay.
+
+Article. II.
+
+ Section. 1.
+
+ Clause 1: The executive Power shall be vested in a President of the
+ United States of America. He shall hold his Office during the Term of
+ four Years, and, together with the Vice President, chosen for the same
+ Term, be elected, as follows
+
+ Clause 2: Each State shall appoint, in such Manner as the Legislature
+ thereof may direct, a Number of Electors, equal to the whole Number of
+ Senators and Representatives to which the State may be entitled in the
+ Congress: but no Senator or Representative, or Person holding an
+ Office of Trust or Profit under the United States, shall be appointed
+ an Elector.
+
+ Clause 3: The Electors shall meet in their respective States, and vote
+ by Ballot for two Persons, of whom one at least shall not be an
+ Inhabitant of the same State with themselves. And they shall make a
+ List of all the Persons voted for, and of the Number of Votes for
+ each; which List they shall sign and certify, and transmit sealed to
+ the Seat of the Government of the United States, directed to the
+ President of the Senate. The President of the Senate shall, in the
+ Presence of the Senate and House of Representatives, open all the
+ Certificates, and the Votes shall then be counted. The Person having
+ the greatest Number of Votes shall be the President, if such Number be
+ a Majority of the whole Number of Electors appointed; and if there be
+ more than one who have such Majority, and have an equal Number of
+ Votes, then the House of Representatives shall immediately chuse by
+ Ballot one of them for President; and if no Person have a Majority,
+ then from the five highest on the List the said House shall in like
+ Manner chuse the President. But in chusing the President, the Votes
+ shall be taken by States, the Representation from each State having
+ one Vote; A quorum for this Purpose shall consist of a Member or
+ Members from two thirds of the States, and a Majority of all the
+ States shall be necessary to a Choice. In every Case, after the Choice
+ of the President, the Person having the greatest Number of Votes of
+ the Electors shall be the Vice President. But if there should remain
+ two or more who have equal Votes, the Senate shall chuse from them by
+ Ballot the Vice President. (See Note 8)
+
+ Clause 4: The Congress may determine the Time of chusing the Electors,
+ and the Day on which they shall give their Votes; which Day shall be
+ the same throughout the United States.
+
+ Clause 5: No Person except a natural born Citizen, or a Citizen of the
+ United States, at the time of the Adoption of this Constitution, shall
+ be eligible to the Office of President; neither shall any Person be
+ eligible to that Office who shall not have attained to the Age of
+ thirty five Years, and been fourteen Years a Resident within the
+ United States.
+
+ Clause 6: In Case of the Removal of the President from Office, or of
+ his Death, Resignation, or Inability to discharge the Powers and
+ Duties of the said Office, (See Note 9) the Same shall devolve on the
+ VicePresident, and the Congress may by Law provide for the Case of
+ Removal, Death, Resignation or Inability, both of the President and
+ Vice President, declaring what Officer shall then act as President,
+ and such Officer shall act accordingly, until the Disability be
+ removed, or a President shall be elected.
+
+ Clause 7: The President shall, at stated Times, receive for his
+ Services, a Compensation, which shall neither be encreased nor
+ diminished during the Period for which he shall have been elected, and
+ he shall not receive within that Period any other Emolument from the
+ United States, or any of them.
+
+ Clause 8: Before he enter on the Execution of his Office, he shall
+ take the following Oath or Affirmation:--"I do solemnly swear (or
+ affirm) that I will faithfully execute the Office of President of the
+ United States, and will to the best of my Ability, preserve, protect
+ and defend the Constitution of the United States."
+
+ Section. 2.
+
+ Clause 1: The President shall be Commander in Chief of the Army and
+ Navy of the United States, and of the Militia of the several States,
+ when called into the actual Service of the United States; he may
+ require the Opinion, in writing, of the principal Officer in each of
+ the executive Departments, upon any Subject relating to the Duties of
+ their respective Offices, and he shall have Power to grant Reprieves
+ and Pardons for Offences against the United States, except in Cases of
+ Impeachment.
+
+ Clause 2: He shall have Power, by and with the Advice and Consent of
+ the Senate, to make Treaties, provided two thirds of the Senators
+ present concur; and he shall nominate, and by and with the Advice and
+ Consent of the Senate, shall appoint Ambassadors, other public
+ Ministers and Consuls, Judges of the supreme Court, and all other
+ Officers of the United States, whose Appointments are not herein
+ otherwise provided for, and which shall be established by Law: but the
+ Congress may by Law vest the Appointment of such inferior Officers, as
+ they think proper, in the President alone, in the Courts of Law, or in
+ the Heads of Departments.
+
+ Clause 3: The President shall have Power to fill up all Vacancies that
+ may happen during the Recess of the Senate, by granting Commissions
+ which shall expire at the End of their next Session.
+
+ Section. 3.
+
+ He shall from time to time give to the Congress Information of the
+ State of the Union, and recommend to their Consideration such Measures
+ as he shall judge necessary and expedient; he may, on extraordinary
+ Occasions, convene both Houses, or either of them, and in Case of
+ Disagreement between them, with Respect to the Time of Adjournment, he
+ may adjourn them to such Time as he shall think proper; he shall
+ receive Ambassadors and other public Ministers; he shall take Care
+ that the Laws be faithfully executed, and shall Commission all the
+ Officers of the United States.
+
+ Section. 4.
+
+ The President, Vice President and all civil Officers of the United
+ States, shall be removed from Office on Impeachment for, and
+ Conviction of, Treason, Bribery, or other high Crimes and
+ Misdemeanors.
+
+Article. III.
+
+ Section. 1.
+
+ The judicial Power of the United States, shall be vested in one
+ supreme Court, and in such inferior Courts as the Congress may from
+ time to time ordain and establish. The Judges, both of the supreme and
+ inferior Courts, shall hold their Offices during good Behaviour, and
+ shall, at stated Times, receive for their Services, a Compensation,
+ which shall not be diminished during their Continuance in Office.
+
+ Section. 2.
+
+ Clause 1: The judicial Power shall extend to all Cases, in Law and
+ Equity, arising under this Constitution, the Laws of the United
+ States, and Treaties made, or which shall be made, under their
+ Authority;--to all Cases affecting Ambassadors, other public Ministers
+ and Consuls;--to all Cases of admiralty and maritime Jurisdiction;--to
+ Controversies to which the United States shall be a Party;--to
+ Controversies between two or more States;--between a State and
+ Citizens of another State; (See Note 10)--between Citizens of
+ different States, --between Citizens of the same State claiming Lands
+ under Grants of different States, and between a State, or the Citizens
+ thereof, and foreign States, Citizens or Subjects.
+
+ Clause 2: In all Cases affecting Ambassadors, other public Ministers
+ and Consuls, and those in which a State shall be Party, the supreme
+ Court shall have original Jurisdiction. In all the other Cases before
+ mentioned, the supreme Court shall have appellate Jurisdiction, both
+ as to Law and Fact, with such Exceptions, and under such Regulations
+ as the Congress shall make.
+
+ Clause 3: The Trial of all Crimes, except in Cases of Impeachment,
+ shall be by Jury; and such Trial shall be held in the State where the
+ said Crimes shall have been committed; but when not committed within
+ any State, the Trial shall be at such Place or Places as the Congress
+ may by Law have directed.
+
+ Section. 3.
+
+ Clause 1: Treason against the United States, shall consist only in
+ levying War against them, or in adhering to their Enemies, giving them
+ Aid and Comfort. No Person shall be convicted of Treason unless on the
+ Testimony of two Witnesses to the same overt Act, or on Confession in
+ open Court.
+
+ Clause 2: The Congress shall have Power to declare the Punishment of
+ Treason, but no Attainder of Treason shall work Corruption of Blood,
+ or Forfeiture except during the Life of the Person attainted.
+
+Article. IV.
+
+ Section. 1.
+
+ Full Faith and Credit shall be given in each State to the public Acts,
+ Records, and judicial Proceedings of every other State. And the
+ Congress may by general Laws prescribe the Manner in which such Acts,
+ Records and Proceedings shall be proved, and the Effect thereof.
+
+ Section. 2.
+
+ Clause 1: The Citizens of each State shall be entitled to all
+ Privileges and Immunities of Citizens in the several States.
+
+ Clause 2: A Person charged in any State with Treason, Felony, or other
+ Crime, who shall flee from Justice, and be found in another State,
+ shall on Demand of the executive Authority of the State from which he
+ fled, be delivered up, to be removed to the State having Jurisdiction
+ of the Crime.
+
+ Clause 3: No Person held to Service or Labour in one State, under the
+ Laws thereof, escaping into another, shall, in Consequence of any Law
+ or Regulation therein, be discharged from such Service or Labour, but
+ shall be delivered up on Claim of the Party to whom such Service or
+ Labour may be due. (See Note 11)
+
+ Section. 3.
+
+ Clause 1: New States may be admitted by the Congress into this Union;
+ but no new State shall be formed or erected within the Jurisdiction of
+ any other State; nor any State be formed by the Junction of two or
+ more States, or Parts of States, without the Consent of the
+ Legislatures of the States concerned as well as of the Congress.
+
+ Clause 2: The Congress shall have Power to dispose of and make all
+ needful Rules and Regulations respecting the Territory or other
+ Property belonging to the United States; and nothing in this
+ Constitution shall be so construed as to Prejudice any Claims of the
+ United States, or of any particular State.
+
+ Section. 4.
+
+ The United States shall guarantee to every State in this Union a
+ Republican Form of Government, and shall protect each of them against
+ Invasion; and on Application of the Legislature, or of the Executive
+ (when the Legislature cannot be convened) against domestic Violence.
+
+Article. V.
+
+ The Congress, whenever two thirds of both Houses shall deem it
+ necessary, shall propose [1]Amendments to this Constitution, or, on
+ the Application of the Legislatures of two thirds of the several
+ States, shall call a Convention for proposing Amendments, which, in
+ either Case, shall be valid to all Intents and Purposes, as Part of
+ this Constitution, when ratified by the Legislatures of three fourths
+ of the several States, or by Conventions in three fourths thereof, as
+ the one or the other Mode of Ratification may be proposed by the
+ Congress; Provided that no Amendment which may be made prior to the
+ Year One thousand eight hundred and eight shall in any Manner affect
+ the first and fourth Clauses in the Ninth Section of the first
+ Article; and that no State, without its Consent, shall be deprived of
+ its equal Suffrage in the Senate.
+
+Article. VI.
+
+ Clause 1: All Debts contracted and Engagements entered into, before
+ the Adoption of this Constitution, shall be as valid against the
+ United States under this Constitution, as under the Confederation.
+
+ Clause 2: This Constitution, and the Laws of the United States which
+ shall be made in Pursuance thereof; and all Treaties made, or which
+ shall be made, under the Authority of the United States, shall be the
+ supreme Law of the Land; and the Judges in every State shall be bound
+ thereby, any Thing in the Constitution or Laws of any State to the
+ Contrary notwithstanding.
+
+ Clause 3: The Senators and Representatives before mentioned, and the
+ Members of the several State Legislatures, and all executive and
+ judicial Officers, both of the United States and of the several
+ States, shall be bound by Oath or Affirmation, to support this
+ Constitution; but no religious Test shall ever be required as a
+ Qualification to any Office or public Trust under the United States.
+
+Article. VII.
+
+ The Ratification of the Conventions of nine States, shall be
+ sufficient for the Establishment of this Constitution between the
+ States so ratifying the Same.
+
+ done in Convention by the Unanimous Consent of the States present the
+ Seventeenth Day of September in the Year of our Lord one thousand
+ seven hundred and Eighty seven and of the Independence of the United
+ States of America the Twelfth In witness whereof We have hereunto
+ subscribed our Names,
+
+ GO WASHINGTON--Presidt. and deputy from Virginia
+
+ [Signed also by the deputies of twelve States.]
+
+ Delaware
+
+ Geo: Read
+ Gunning Bedford jun
+ John Dickinson
+ Richard Bassett
+ Jaco: Broom
+
+ Maryland
+
+ James MCHenry
+ Dan of ST ThoS. Jenifer
+ DanL Carroll.
+
+ Virginia
+
+ John Blair--
+ James Madison Jr.
+
+ North Carolina
+
+ WM Blount
+ RichD. Dobbs Spaight.
+ Hu Williamson
+
+ South Carolina
+
+ J. Rutledge
+ Charles 1ACotesworth Pinckney
+ Charles Pinckney
+ Pierce Butler.
+
+ Georgia
+
+ William Few
+ Abr Baldwin
+
+ New Hampshire
+
+ John Langdon
+ Nicholas Gilman
+
+ Massachusetts
+
+ Nathaniel Gorham
+ Rufus King
+
+ Connecticut
+ WM. SamL. Johnson
+ Roger Sherman
+
+ New York
+
+ Alexander Hamilton
+
+ New Jersey
+
+ Wil: Livingston
+ David Brearley.
+ WM. Paterson.
+ Jona: Dayton
+
+ Pennsylvania
+
+ B Franklin
+ Thomas Mifflin
+ RobT Morris
+ Geo. Clymer
+ ThoS. FitzSimons
+ Jared Ingersoll
+ James Wilson.
+ Gouv Morris
+
+ Attest William Jackson Secretary
+
+ NOTES
+
+ Note 1: This text of the Constitution follows the engrossed copy
+ signed by Gen. Washington and the deputies from 12 States. The small
+ superior figures preceding the paragraphs designate Clauses, and were
+ not in the original and have no reference to footnotes.
+
+ The Constitution was adopted by a convention of the States on
+ September 17, 1787, and was subsequently ratified by the several
+ States, on the following dates: Delaware, December 7, 1787;
+ Pennsylvania, December 12, 1787; New Jersey, December 18, 1787;
+ Georgia, January 2, 1788; Connecticut, January 9, 1788; Massachusetts,
+ February 6, 1788; Maryland, April 28, 1788; South Carolina, May 23,
+ 1788; New Hampshire, June 21, 1788.
+
+ Ratification was completed on June 21, 1788.
+
+ The Constitution was subsequently ratified by Virginia, June 25, 1788;
+ New York, July 26, 1788; North Carolina, November 21, 1789; Rhode
+ Island, May 29, 1790; and Vermont, January 10, 1791.
+
+ In May 1785, a committee of Congress made a report recommending an
+ alteration in the Articles of Confederation, but no action was taken
+ on it, and it was left to the State Legislatures to proceed in the
+ matter. In January 1786, the Legislature of Virginia passed a
+ resolution providing for the appointment of five commissioners, who,
+ or any three of them, should meet such commissioners as might be
+ appointed in the other States of the Union, at a time and place to be
+ agreed upon, to take into consideration the trade of the United
+ States; to consider how far a uniform system in their commercial
+ regulations may be necessary to their common interest and their
+ permanent harmony; and to report to the several States such an act,
+ relative to this great object, as, when ratified by them, will enable
+ the United States in Congress effectually to provide for the same. The
+ Virginia commissioners, after some correspondence, fixed the first
+ Monday in September as the time, and the city of Annapolis as the
+ place for the meeting, but only four other States were represented,
+ viz: Delaware, New York, New Jersey, and Pennsylvania; the
+ commissioners appointed by Massachusetts, New Hampshire, North
+ Carolina, and Rhode Island failed to attend. Under the circumstances
+ of so partial a representation, the commissioners present agreed upon
+ a report, (drawn by Mr. Hamilton, of New York,) expressing their
+ unanimous conviction that it might essentially tend to advance the
+ interests of the Union if the States by which they were respectively
+ delegated would concur, and use their endeavors to procure the
+ concurrence of the other States, in the appointment of commissioners
+ to meet at Philadelphia on the Second Monday of May following, to take
+ into consideration the situation of the United States; to devise such
+ further provisions as should appear to them necessary to render the
+ Constitution of the Federal Government adequate to the exigencies of
+ the Union; and to report such an act for that purpose to the United
+ States in Congress assembled as, when agreed to by them and afterwards
+ confirmed by the Legislatures of every State, would effectually
+ provide for the same.
+
+ Congress, on the 21st of February, 1787, adopted a resolution in favor
+ of a convention, and the Legislatures of those States which had not
+ already done so (with the exception of Rhode Island) promptly
+ appointed delegates. On the 25th of May, seven States having convened,
+ George Washington, of Virginia, was unanimously elected President, and
+ the consideration of the proposed constitution was commenced. On the
+ 17th of September, 1787, the Constitution as engrossed and agreed upon
+ was signed by all the members present, except Mr. Gerry of
+ Massachusetts, and Messrs. Mason and Randolph, of Virginia. The
+ president of the convention transmitted it to Congress, with a
+ resolution stating how the proposed Federal Government should be put
+ in operation, and an explanatory letter. Congress, on the 28th of
+ September, 1787, directed the Constitution so framed, with the
+ resolutions and letter concerning the same, to "be transmitted to the
+ several Legislatures in order to be submitted to a convention of
+ delegates chosen in each State by the people thereof, in conformity to
+ the resolves of the convention."
+
+ On the 4th of March, 1789, the day which had been fixed for commencing
+ the operations of Government under the new Constitution, it had been
+ ratified by the conventions chosen in each State to consider it, as
+ follows: Delaware, December 7, 1787; Pennsylvania, December 12, 1787;
+ New Jersey, December 18, 1787; Georgia, January 2, 1788; Connecticut,
+ January 9, 1788; Massachusetts, February 6, 1788; Maryland, April 28,
+ 1788; South Carolina, May 23, 1788; New Hampshire, June 21, 1788;
+ Virginia, June 25, 1788; and New York, July 26, 1788.
+
+ The President informed Congress, on the 28th of January, 1790, that
+ North Carolina had ratified the Constitution November 21, 1789; and he
+ informed Congress on the 1st of June, 1790, that Rhode Island had
+ ratified the Constitution May 29, 1790. Vermont, in convention,
+ ratified the Constitution January 10, 1791, and was, by an act of
+ Congress approved February 18, 1791, "received and admitted into this
+ Union as a new and entire member of the United States."
+
+ Note 2: The part of this Clause relating to the mode of apportionment
+ of representatives among the several States has been affected by
+ Section 2 of amendment XIV, and as to taxes on incomes without
+ apportionment by amendment XVI.
+
+ Note 3: This Clause has been affected by Clause 1 of amendment XVII.
+
+ Note 4: This Clause has been affected by Clause 2 of amendment XVIII.
+
+ Note 5: This Clause has been affected by amendment XX.
+
+ Note 6: This Clause has been affected by amendment XXVII.
+
+ Note 7: This Clause has been affected by amendment XVI.
+
+ Note 8: This Clause has been superseded by amendment XII.
+
+ Note 9: This Clause has been affected by amendment XXV.
+
+ Note 10: This Clause has been affected by amendment XI.
+
+ Note 11: This Clause has been affected by amendment XIII.
+
+ Note 12: The first ten amendments to the Constitution of the United
+ States (and two others, one of which failed of ratification and the
+ other which later became the 27th amendment) were proposed to the
+ legislatures of the several States by the First Congress on September
+ 25, 1789. The first ten amendments were ratified by the following
+ States, and the notifications of ratification by the Governors thereof
+ were successively communicated by the President to Congress: New
+ Jersey, November 20, 1789; Maryland, December 19, 1789; North
+ Carolina, December 22, 1789; South Carolina, January 19, 1790; New
+ Hampshire, January 25, 1790; Delaware, January 28, 1790; New York,
+ February 24, 1790; Pennsylvania, March 10, 1790; Rhode Island, June 7,
+ 1790; Vermont, November 3, 1791; and Virginia, December 15, 1791.
+
+ Ratification was completed on December 15, 1791.
+
+ The amendments were subsequently ratified by the legislatures of
+ Massachusetts, March 2, 1939; Georgia, March 18, 1939; and
+ Connecticut, April 19, 1939.
+
+ Note 13: Only the 13th, 14th, 15th, and 16th articles of amendment had
+ numbers assigned to them at the time of ratification.
+
+ Note 14: This sentence has been superseded by section 3 of amendment
+ XX.
+
+ Note 15: See amendment XIX and section 1 of amendment XXVI.
+
+ Note 16: Repealed by section 1 of amendment XXI.
+
+References
+
+ 1. http://www.house.gov/Constitution/Amend.html
diff --git a/tests/test-array-nr/Makefile.am b/tests/test-array-nr/Makefile.am
index 4b1fe86..80ce175 100644
--- a/tests/test-array-nr/Makefile.am
+++ b/tests/test-array-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-array-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-array-nr/Makefile.in b/tests/test-array-nr/Makefile.in
index 31c0f6f..005f2e6 100644
--- a/tests/test-array-nr/Makefile.in
+++ b/tests/test-array-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-array-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-array-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-array-nr
-subdir = tests/test-array-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-array-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-array-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-array-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-array-r/Makefile.am b/tests/test-array-r/Makefile.am
index 5a2fa21..ff06a98 100644
--- a/tests/test-array-r/Makefile.am
+++ b/tests/test-array-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-array-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-array-r/Makefile.in b/tests/test-array-r/Makefile.in
index 2b34f7b..2b61b55 100644
--- a/tests/test-array-r/Makefile.in
+++ b/tests/test-array-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-array-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-array-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-array-r
-subdir = tests/test-array-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-array-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-array-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-array-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-basic-nr/Makefile.am b/tests/test-basic-nr/Makefile.am
index bdf6340..0563f4d 100644
--- a/tests/test-basic-nr/Makefile.am
+++ b/tests/test-basic-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-basic-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-basic-nr/Makefile.in b/tests/test-basic-nr/Makefile.in
index 515c13f..9e1dd9c 100644
--- a/tests/test-basic-nr/Makefile.in
+++ b/tests/test-basic-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-basic-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-basic-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-basic-nr
-subdir = tests/test-basic-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-basic-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-basic-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-basic-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-basic-r/Makefile.am b/tests/test-basic-r/Makefile.am
index 2907190..7137347 100644
--- a/tests/test-basic-r/Makefile.am
+++ b/tests/test-basic-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-basic-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-basic-r/Makefile.in b/tests/test-basic-r/Makefile.in
index 2c369de..b46bee8 100644
--- a/tests/test-basic-r/Makefile.in
+++ b/tests/test-basic-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-basic-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-basic-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-basic-r
-subdir = tests/test-basic-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-basic-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-basic-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-basic-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-bison-nr/Makefile.am b/tests/test-bison-nr/Makefile.am
index 6874df6..b251572 100644
--- a/tests/test-bison-nr/Makefile.am
+++ b/tests/test-bison-nr/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o parser.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-bison-nr/Makefile.in b/tests/test-bison-nr/Makefile.in
index c8b97a0..25e40a5 100644
--- a/tests/test-bison-nr/Makefile.in
+++ b/tests/test-bison-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-bison-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,36 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o parser.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
YFLAGS = --defines --output=parser.c --name-prefix="test"
-
testname = test-bison-nr
-subdir = tests/test-bison-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-bison-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-bison-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-bison-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -199,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -216,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -234,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -247,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -256,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -266,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -288,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -306,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-bison-yylloc/Makefile.am b/tests/test-bison-yylloc/Makefile.am
index 7f26f4d..3be8907 100644
--- a/tests/test-bison-yylloc/Makefile.am
+++ b/tests/test-bison-yylloc/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-yylloc $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o parser.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-bison-yylloc/Makefile.in b/tests/test-bison-yylloc/Makefile.in
index 77d2705..c9dd923 100644
--- a/tests/test-bison-yylloc/Makefile.in
+++ b/tests/test-bison-yylloc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-bison-yylloc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,36 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-yylloc $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o parser.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
YFLAGS = --defines --output=parser.c --name-prefix="test"
-
testname = test-bison-yylloc
-subdir = tests/test-bison-yylloc
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-bison-yylloc/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-bison-yylloc/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-bison-yylloc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -199,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -216,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -234,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -247,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -256,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -266,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -288,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -306,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-bison-yylval/Makefile.am b/tests/test-bison-yylval/Makefile.am
index de3071a..e55e8a7 100644
--- a/tests/test-bison-yylval/Makefile.am
+++ b/tests/test-bison-yylval/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-yylval $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = parser.o scanner.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-bison-yylval/Makefile.in b/tests/test-bison-yylval/Makefile.in
index 29e9e4f..db638cb 100644
--- a/tests/test-bison-yylval/Makefile.in
+++ b/tests/test-bison-yylval/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-bison-yylval
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,36 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l parser.y test.input main.c
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-bison-yylval $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = parser.o scanner.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
YFLAGS = --defines --output=parser.c --name-prefix="test"
-
testname = test-bison-yylval
-subdir = tests/test-bison-yylval
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-bison-yylval/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-bison-yylval/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-bison-yylval/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -199,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -216,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -234,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -247,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -256,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -266,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -288,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -306,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-c++-basic/Makefile.am b/tests/test-c++-basic/Makefile.am
index 1fc579d..dcb76ed 100644
--- a/tests/test-c++-basic/Makefile.am
+++ b/tests/test-c++-basic/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp scanner.h test-c++-basic OUTPUT $(OBJS)
+CLEANFILES = scanner.cpp scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
@@ -36,7 +36,7 @@ scanner.cpp: $(srcdir)/scanner.l
$(FLEX) $(LFLAGS) $<
$(testname)$(EXEEXT): $(OBJS)
- $(CXX) -o $@ $(LDFLAGS) $(OBJS)
+ $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
test: $(testname)$(EXEEXT)
./$(testname)$(EXEEXT) < $(srcdir)/test.input
diff --git a/tests/test-c++-basic/Makefile.in b/tests/test-c++-basic/Makefile.in
index 8c13b22..11a0345 100644
--- a/tests/test-c++-basic/Makefile.in
+++ b/tests/test-c++-basic/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-c++-basic
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp scanner.h test-c++-basic OUTPUT $(OBJS)
+CLEANFILES = scanner.cpp scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
LFLAGS = -+
-
#LDFLAGS =
testname = test-c++-basic
-subdir = tests/test-c++-basic
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-c++-basic/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-c++-basic/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-c++-basic/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
@@ -317,7 +346,7 @@ scanner.cpp: $(srcdir)/scanner.l
$(FLEX) $(LFLAGS) $<
$(testname)$(EXEEXT): $(OBJS)
- $(CXX) -o $@ $(LDFLAGS) $(OBJS)
+ $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
test: $(testname)$(EXEEXT)
./$(testname)$(EXEEXT) < $(srcdir)/test.input
diff --git a/tests/test-c++-multiple-scanners/Makefile.am b/tests/test-c++-multiple-scanners/Makefile.am
index 97f863c..418e87a 100644
--- a/tests/test-c++-multiple-scanners/Makefile.am
+++ b/tests/test-c++-multiple-scanners/Makefile.am
@@ -24,7 +24,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner-1.l scanner-2.l main.cpp test.input
-CLEANFILES = scanner-1.cpp test-c++-multiple-scanners OUTPUT $(OBJS) scanner-2.cpp
+CLEANFILES = scanner-1.cpp $(testname)$(EXEEXT) OUTPUT $(OBJS) scanner-2.cpp
OBJS = scanner-1.o scanner-2.o main.o
AM_CXXFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-c++-multiple-scanners/Makefile.in b/tests/test-c++-multiple-scanners/Makefile.in
index 1a1ef13..ad1565f 100644
--- a/tests/test-c++-multiple-scanners/Makefile.in
+++ b/tests/test-c++-multiple-scanners/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-c++-multiple-scanners
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
builddir = @builddir@
-
EXTRA_DIST = scanner-1.l scanner-2.l main.cpp test.input
-CLEANFILES = scanner-1.cpp test-c++-multiple-scanners OUTPUT $(OBJS) scanner-2.cpp
+CLEANFILES = scanner-1.cpp $(testname)$(EXEEXT) OUTPUT $(OBJS) scanner-2.cpp
OBJS = scanner-1.o scanner-2.o main.o
-
AM_CXXFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-c++-multiple-scanners
-subdir = tests/test-c++-multiple-scanners
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-c++-multiple-scanners/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-c++-multiple-scanners/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-c++-multiple-scanners/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-c++-multiple-scanners/main.cpp b/tests/test-c++-multiple-scanners/main.cpp
index aa89949..08fe2c1 100644
--- a/tests/test-c++-multiple-scanners/main.cpp
+++ b/tests/test-c++-multiple-scanners/main.cpp
@@ -47,6 +47,8 @@ main ( int argc, char** argv )
S2_ok = S2->yylex();
}
printf("TEST RETURNING OK.\n");
+ delete S1;
+ delete S2;
return 0;
}
diff --git a/tests/test-c++-multiple-scanners/scanner-2.l b/tests/test-c++-multiple-scanners/scanner-2.l
index db84402..15faf26 100644
--- a/tests/test-c++-multiple-scanners/scanner-2.l
+++ b/tests/test-c++-multiple-scanners/scanner-2.l
@@ -25,7 +25,7 @@
%}
%option 8bit outfile="scanner-2.cpp" prefix="S2_"
-%option nounput nomain noyywrap
+%option nounput nomain
%option warn stack noyy_top_state
%x OFF
@@ -41,3 +41,8 @@ off yy_push_state(OFF); return 4;
<OFF>.|\n yy_pop_state(); return 7;
%%
+int S2_FlexLexer::yywrap()
+{
+ std::cout << "NOW WRAPPING." << std::endl;
+ return 1;
+}
diff --git a/tests/test-c++-yywrap/Makefile.am b/tests/test-c++-yywrap/Makefile.am
new file mode 100644
index 0000000..c79d102
--- /dev/null
+++ b/tests/test-c++-yywrap/Makefile.am
@@ -0,0 +1,45 @@
+# 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.
+
+
+FLEX = $(top_builddir)/flex
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.cpp scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+LFLAGS = -+
+#LDFLAGS =
+
+testname = test-c++-yywrap
+
+scanner.cpp: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CXX) -o $@ $(LDFLAGS) $(OBJS)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) $(srcdir)/test.input $(srcdir)/test.input $(srcdir)/test.input
+
+.cpp.o:
+ $(CXX) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-c++-yywrap/Makefile.in b/tests/test-c++-yywrap/Makefile.in
new file mode 100644
index 0000000..bd2a82e
--- /dev/null
+++ b/tests/test-c++-yywrap/Makefile.in
@@ -0,0 +1,358 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-c++-yywrap
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.cpp scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
+LFLAGS = -+
+#LDFLAGS =
+testname = test-c++-yywrap
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-c++-yywrap/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-c++-yywrap/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+scanner.cpp: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CXX) -o $@ $(LDFLAGS) $(OBJS)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) $(srcdir)/test.input $(srcdir)/test.input $(srcdir)/test.input
+
+.cpp.o:
+ $(CXX) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-c++-yywrap/scanner.l b/tests/test-c++-yywrap/scanner.l
new file mode 100644
index 0000000..433ad08
--- /dev/null
+++ b/tests/test-c++-yywrap/scanner.l
@@ -0,0 +1,70 @@
+/*
+ * 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.
+ */
+
+%{
+
+#include "config.h"
+#include <fstream>
+
+%}
+
+%option 8bit outfile="scanner.cpp" prefix="test"
+%option nounput nomain
+%option warn c++
+
+
+%%
+
+. { }
+
+%%
+
+#define MAX_FILES 10
+
+char *files[MAX_FILES] = { 0 };
+int filecounter = 0;
+
+int testFlexLexer::yywrap()
+{
+ if (filecounter-- > 0) {
+ std::cout << "NOW WRAPPING TO READ " << files[filecounter] << std::endl;
+ std::ifstream *ifs = new std::ifstream(files[filecounter]);
+ switch_streams(ifs);
+ return 0;
+ }
+ return 1;
+}
+
+int
+main (int argc, char *argv[])
+{
+ for (int i = 1; i < argc && i <= MAX_FILES; i++) {
+ files[i-1] = argv[i];
+ filecounter++;
+ }
+ testFlexLexer* f = new testFlexLexer;
+ f->yywrap();
+ f->yylex();
+ std::cout << "TEST RETURNING OK." << std::endl;
+ return 0;
+}
diff --git a/tests/test-c++-yywrap/test.input b/tests/test-c++-yywrap/test.input
new file mode 100644
index 0000000..7288a40
--- /dev/null
+++ b/tests/test-c++-yywrap/test.input
@@ -0,0 +1,2 @@
+0000 foo 1111 foo 0000 bar
+0000 foo 1111 foo 0000 bar
diff --git a/tests/test-c-cpp-nr/Makefile.am b/tests/test-c-cpp-nr/Makefile.am
index 6e17e09..0aea014 100644
--- a/tests/test-c-cpp-nr/Makefile.am
+++ b/tests/test-c-cpp-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp test-c-cpp-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.cpp $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-c-cpp-nr/Makefile.in b/tests/test-c-cpp-nr/Makefile.in
index 37fb0a7..cc285b4 100644
--- a/tests/test-c-cpp-nr/Makefile.in
+++ b/tests/test-c-cpp-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-c-cpp-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp test-c-cpp-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.cpp $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-c-cpp-nr
-subdir = tests/test-c-cpp-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-c-cpp-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-c-cpp-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-c-cpp-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-c-cpp-nr/scanner.l b/tests/test-c-cpp-nr/scanner.l
index 63543e4..e184008 100644
--- a/tests/test-c-cpp-nr/scanner.l
+++ b/tests/test-c-cpp-nr/scanner.l
@@ -51,6 +51,7 @@ main ()
yyin = stdin;
yyout = stdout;
yylex();
+ yylex_destroy();
printf("TEST RETURNING OK.\n");
return 0;
}
diff --git a/tests/test-c-cpp-r/Makefile.am b/tests/test-c-cpp-r/Makefile.am
index a0b9299..0b53170 100644
--- a/tests/test-c-cpp-r/Makefile.am
+++ b/tests/test-c-cpp-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp test-c-cpp-r $(OBJS) OUTPUT
+CLEANFILES = scanner.cpp $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-c-cpp-r/Makefile.in b/tests/test-c-cpp-r/Makefile.in
index d4a870d..8378fc2 100644
--- a/tests/test-c-cpp-r/Makefile.in
+++ b/tests/test-c-cpp-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-c-cpp-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.cpp test-c-cpp-r $(OBJS) OUTPUT
+CLEANFILES = scanner.cpp $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-c-cpp-r
-subdir = tests/test-c-cpp-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-c-cpp-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-c-cpp-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-c-cpp-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-ccl/Makefile.am b/tests/test-ccl/Makefile.am
new file mode 100644
index 0000000..e78df6a
--- /dev/null
+++ b/tests/test-ccl/Makefile.am
@@ -0,0 +1,44 @@
+# 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.
+
+FLEX = $(top_builddir)/flex
+
+builddir = @builddir@
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+
+testname = test-ccl
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-ccl/Makefile.in b/tests/test-ccl/Makefile.in
new file mode 100644
index 0000000..162e8c6
--- /dev/null
+++ b/tests/test-ccl/Makefile.in
@@ -0,0 +1,357 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-ccl
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex
+builddir = @builddir@
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+testname = test-ccl
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-ccl/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-ccl/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-ccl/scanner.l b/tests/test-ccl/scanner.l
new file mode 100644
index 0000000..330278a
--- /dev/null
+++ b/tests/test-ccl/scanner.l
@@ -0,0 +1,95 @@
+/*
+ * 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.
+ */
+
+%{
+/* A template scanner file to build "scanner.c". */
+#include <stdio.h>
+#include <stdlib.h>
+#include "config.h"
+/*#include "parser.h" */
+
+#define err_abort() do{printf("ERROR: flex line %d. input line %d.\n", __LINE__, yylineno); abort();} while(0)
+#define a_ok() do{printf("OK: flex line %d. input line %d.\n", __LINE__, yylineno); return 1;}while(0)
+%}
+
+%option 8bit outfile="scanner.c" prefix="test"
+%option nounput nomain noyywrap
+%option warn
+
+
+%%
+
+^"^alpha:"[[:^alpha:]]+@alpha@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^digit:"[[:^digit:]]+@digit@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^alnum:"[[:^alnum:]]+@alnum@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^upper:"[[:^upper:]]+@upper@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^lower:"[[:^lower:]]+@lower@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^space:"[[:^space:]]+@space@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^blank:"[[:^blank:]]+@blank@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^punct:"[[:^punct:]]+@punct@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^cntrl:"[[:^cntrl:]]+@cntrl@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^xdigit:"[[:^xdigit:]]+@xdigit@\n printf("OK: %s", yytext); ++yylineno; return 1;
+
+^"a-d:"[[:alpha:]]{-}[[:digit:]]+@a-d@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"l-xyz:"([[:lower:]]{-}[xyz])+@l-xyz@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"abcd-bc:"([abcd]{-}[bc])+@abcd-bc@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"abcde-b-c:"([abcde]{-}[b]{-}[c])+@abcde-b-c@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"^XY-^XYZ:"([^XY]{-}[^XYZ])+@^XY-^XYZ@\n printf("OK: %s", yytext); ++yylineno; return 1;
+
+^"a+d:"([[:alpha:]]{+}[[:digit:]])+"@a+d@"\n a_ok();
+^"a-u+Q:"([[:alpha:]]{-}[[:upper:]]{+}[Q])+"@a-u+Q@"\n a_ok();
+
+^"ia:"(?i:a)+@ia@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"iabc:"(?i:abc)+@iabc@\n printf("OK: %s", yytext); ++yylineno; return 1;
+^"ia-c:"(?i:[a-c]+)@ia-c@\n printf("OK: %s", yytext); ++yylineno; return 1;
+
+ /* We don't want this one to match. */
+^"check-a:"(?i:(?-i:A))@\n err_abort();
+^"check-a:"(?i:(?-i:(?i:A)))@\n printf("OK: %s", yytext); ++yylineno; return 1;
+
+ /* We don't want this one to match. */
+^"dot-all-1:"(?-s:XXX.*)@dot-all-1@\n err_abort();
+^"dot-all-1:"(?s:XXX.*)@dot-all-1@\n a_ok();
+
+^"x1:"(?x: a | b )+@x1@\n a_ok();
+^"x2:"(?x: a |
+ (?# Comment )
+ b
+ )+@x2@\n a_ok();
+
+
+.|\n { err_abort(); }
+%%
+
+int main(void);
+
+int
+main ()
+{
+ yyin = stdin;
+ yyout = stdout;
+ while (yylex())
+ ;
+ printf("TEST RETURNING OK.\n");
+ return 0;
+}
diff --git a/tests/test-ccl/test.input b/tests/test-ccl/test.input
new file mode 100644
index 0000000..b318fe6
--- /dev/null
+++ b/tests/test-ccl/test.input
@@ -0,0 +1,27 @@
+^alpha:0123456789 ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@alpha@
+^digit:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@digit@
+^alnum:~!@#$%^&*(){}[]':;"<>,./?\+=_-`@alnum@
+^upper:abcdefghijklmnopqrstuvwxyz0123456789 ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@upper@
+^lower:ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@lower@
+^space:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF~!@#$%^&*(){}[]':;"<>,./?\+=_-`@space@
+^blank:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF~!@#$%^&*(){}[]':;"<>,./?\+=_-`@blank@
+^punct:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF Z@punct@
+^cntrl:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF~!@#$%^&*(){}[]':;"<>,./?\+=_-`@cntrl@
+^xdigit:ghijklmnopqrstuvwxyzGHIJKLMNOPQRSTUVWXYZ ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@xdigit@
+a-d:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@a-d@
+l-xyz:abcdefghijklmnopqrstuvw@l-xyz@
+abcd-bc:aaaaddddaaaa@abcd-bc@
+abcde-b-c:aaaaddddeeee@abcde-b-c@
+^XY-^XYZ:ZZZZZZZZZZZ@^XY-^XYZ@
+a+d:abc0123xyz789@a+d@
+a-u+Q:abcQQQQxyz@a-u+Q@
+ia:AaAa@ia@
+iabc:ABCabcAbCaBc@iabc@
+ia-c:ABCabcAbCaBc@ia-c@
+check-a:a@
+dot-all-1:XXX junk
+ junk
+ junk
+ @dot-all-1@
+x1:abaabb@x1@
+x2:abaabb@x2@
diff --git a/tests/test-concatenated-options/Makefile.am b/tests/test-concatenated-options/Makefile.am
new file mode 100644
index 0000000..e392073
--- /dev/null
+++ b/tests/test-concatenated-options/Makefile.am
@@ -0,0 +1,33 @@
+# 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.
+
+FLEX = $(top_builddir)/flex$(EXEEXT)
+
+CLEANFILES = OUTPUT
+
+# The test below just wants to know if flex can process multiple
+# concatenated options. The -c and -n options both do nothing, so we
+# group them together to see if flex will still function. We write the
+# output to /dev/null since we don't really care what flex produces,
+# just that it runs successfully.
+
+test:
+ echo %% | $(FLEX) -cn -o /dev/null
diff --git a/tests/test-concatenated-options/Makefile.in b/tests/test-concatenated-options/Makefile.in
new file mode 100644
index 0000000..827632b
--- /dev/null
+++ b/tests/test-concatenated-options/Makefile.in
@@ -0,0 +1,348 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-concatenated-options
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex$(EXEEXT)
+CLEANFILES = OUTPUT
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-concatenated-options/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-concatenated-options/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+# The test below just wants to know if flex can process multiple
+# concatenated options. The -c and -n options both do nothing, so we
+# group them together to see if flex will still function. We write the
+# output to /dev/null since we don't really care what flex produces,
+# just that it runs successfully.
+
+test:
+ echo %% | $(FLEX) -cn -o /dev/null
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-debug-nr/Makefile.am b/tests/test-debug-nr/Makefile.am
index 40d59e8..c89f1fd 100644
--- a/tests/test-debug-nr/Makefile.am
+++ b/tests/test-debug-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-debug-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-debug-nr/Makefile.in b/tests/test-debug-nr/Makefile.in
index 20e2a54..68bf3c3 100644
--- a/tests/test-debug-nr/Makefile.in
+++ b/tests/test-debug-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-debug-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,33 +181,46 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-debug-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
testname = test-debug-nr
-subdir = tests/test-debug-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-debug-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-debug-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-debug-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -196,10 +228,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -213,7 +241,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -231,7 +259,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -244,7 +271,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -253,7 +280,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -263,13 +290,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -285,7 +314,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -303,8 +332,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-debug-r/Makefile.am b/tests/test-debug-r/Makefile.am
index 1937139..a63b390 100644
--- a/tests/test-debug-r/Makefile.am
+++ b/tests/test-debug-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-debug-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-debug-r/Makefile.in b/tests/test-debug-r/Makefile.in
index 711853e..b753231 100644
--- a/tests/test-debug-r/Makefile.in
+++ b/tests/test-debug-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-debug-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,33 +181,46 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-debug-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
testname = test-debug-r
-subdir = tests/test-debug-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-debug-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-debug-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-debug-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -196,10 +228,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -213,7 +241,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -231,7 +259,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -244,7 +271,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -253,7 +280,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -263,13 +290,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -285,7 +314,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -303,8 +332,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-extended/Makefile.am b/tests/test-extended/Makefile.am
new file mode 100644
index 0000000..92841f0
--- /dev/null
+++ b/tests/test-extended/Makefile.am
@@ -0,0 +1,44 @@
+# 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.
+
+FLEX = $(top_builddir)/flex
+
+builddir = @builddir@
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+
+testname = test-extended
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input | diff -q $(srcdir)/test.input -
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-extended/Makefile.in b/tests/test-extended/Makefile.in
new file mode 100644
index 0000000..06088dd
--- /dev/null
+++ b/tests/test-extended/Makefile.in
@@ -0,0 +1,357 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-extended
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex
+builddir = @builddir@
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+testname = test-extended
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-extended/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-extended/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input | diff -q $(srcdir)/test.input -
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-extended/scanner.l b/tests/test-extended/scanner.l
new file mode 100644
index 0000000..222c7dd
--- /dev/null
+++ b/tests/test-extended/scanner.l
@@ -0,0 +1,73 @@
+/*
+ * 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.
+ */
+
+%{
+/* This test is for correctness of extended (?...) patterns. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "config.h"
+
+%}
+
+%option 8bit outfile="scanner.c" prefix="test"
+%option nounput nomain noyywrap
+%option warn
+
+
+%%
+
+ /* Output should match the input. */
+
+abc(?# Single Line Comment )def ECHO;
+ghi(?#
+ multi-line
+ comment
+ )jkl ECHO;
+
+mno(?#
+ multi-line //
+ comment with ##
+ ~~!@#$ %^&*(@-_+=\|,.<>/ ?: ;
+ punctuation
+ )pqr ECHO;
+(?# Start of a rule.)stu ECHO;
+vwxyz(?#End of a rule.) ECHO;
+A(?x: B
+ /* comment */
+ C D) ECHO;
+
+\n ECHO;
+%%
+
+int main(void);
+
+int
+main ()
+{
+ yyin = stdin;
+ yyout = stdout;
+ yylex();
+ //printf("TEST RETURNING OK.\n");
+ return 0;
+}
diff --git a/tests/test-extended/test.input b/tests/test-extended/test.input
new file mode 100644
index 0000000..829e23d
--- /dev/null
+++ b/tests/test-extended/test.input
@@ -0,0 +1,2 @@
+abcdefghijklmnopqrstuvwxyz
+ABCD
diff --git a/tests/test-header-nr/Makefile.am b/tests/test-header-nr/Makefile.am
index 2227acd..2c12192 100644
--- a/tests/test-header-nr/Makefile.am
+++ b/tests/test-header-nr/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-header-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-header-nr/Makefile.in b/tests/test-header-nr/Makefile.in
index 8ba266c..90528d4 100644
--- a/tests/test-header-nr/Makefile.in
+++ b/tests/test-header-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-header-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,36 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-header-nr $(OBJS) OUTPUT
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) $(OBJS) OUTPUT
OBJS = scanner.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-header-nr
-subdir = tests/test-header-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-header-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-header-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-header-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -199,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -216,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -234,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -247,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -256,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -266,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -288,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -306,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-header-r/Makefile.am b/tests/test-header-r/Makefile.am
index aa86bc1..106403f 100644
--- a/tests/test-header-r/Makefile.am
+++ b/tests/test-header-r/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-header-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-header-r/Makefile.in b/tests/test-header-r/Makefile.in
index 976c38f..42015ea 100644
--- a/tests/test-header-r/Makefile.in
+++ b/tests/test-header-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-header-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-header-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
LFLAGS = --header="scanner.h"
-
#YFLAGS = --defines --output=parser.c
testname = test-header-r
-subdir = tests/test-header-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-header-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-header-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-header-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-include-by-buffer/Makefile.am b/tests/test-include-by-buffer/Makefile.am
index 9274823..aaaf7f3 100644
--- a/tests/test-include-by-buffer/Makefile.am
+++ b/tests/test-include-by-buffer/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-buffer OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-include-by-buffer/Makefile.in b/tests/test-include-by-buffer/Makefile.in
index f829ede..f1d6181 100644
--- a/tests/test-include-by-buffer/Makefile.in
+++ b/tests/test-include-by-buffer/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-include-by-buffer
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-buffer OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-include-by-buffer
-subdir = tests/test-include-by-buffer
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-include-by-buffer/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-include-by-buffer/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-include-by-buffer/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-include-by-push/Makefile.am b/tests/test-include-by-push/Makefile.am
index 46f700d..bef63bc 100644
--- a/tests/test-include-by-push/Makefile.am
+++ b/tests/test-include-by-push/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-push OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-include-by-push/Makefile.in b/tests/test-include-by-push/Makefile.in
index 0bfd5a4..16ca418 100644
--- a/tests/test-include-by-push/Makefile.in
+++ b/tests/test-include-by-push/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-include-by-push
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-push OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-include-by-push
-subdir = tests/test-include-by-push
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-include-by-push/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-include-by-push/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-include-by-push/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-include-by-reentrant/Makefile.am b/tests/test-include-by-reentrant/Makefile.am
index 1ce6346..e5a4e63 100644
--- a/tests/test-include-by-reentrant/Makefile.am
+++ b/tests/test-include-by-reentrant/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-reentrant OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-include-by-reentrant/Makefile.in b/tests/test-include-by-reentrant/Makefile.in
index 39376b1..c6bd8d2 100644
--- a/tests/test-include-by-reentrant/Makefile.in
+++ b/tests/test-include-by-reentrant/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-include-by-reentrant
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-include-by-reentrant OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-include-by-reentrant
-subdir = tests/test-include-by-reentrant
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-include-by-reentrant/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-include-by-reentrant/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-include-by-reentrant/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-linedir-r/Makefile.am b/tests/test-linedir-r/Makefile.am
index 746f5ab..c25df06 100644
--- a/tests/test-linedir-r/Makefile.am
+++ b/tests/test-linedir-r/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input main.c check-lines.awk
-CLEANFILES = scanner.c scanner.h test-linedir-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
@@ -46,8 +46,8 @@ $(testname)$(EXEEXT): $(OBJS)
test: $(testname)$(EXEEXT)
./$(testname)$(EXEEXT) < $(srcdir)/test.input
- cat -n scanner.c | grep '#line' | grep scanner.c | awk -f $(srcdir)/check-lines.awk
- cat -n scanner.h | grep '#line' | grep scanner.h | awk -f $(srcdir)/check-lines.awk
+ cat -n scanner.c | grep '#line' | grep scanner.c | $(AWK) -f $(srcdir)/check-lines.awk
+ cat -n scanner.h | grep '#line' | grep scanner.h | $(AWK) -f $(srcdir)/check-lines.awk
.c.o:
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-linedir-r/Makefile.in b/tests/test-linedir-r/Makefile.in
index c712342..de28edd 100644
--- a/tests/test-linedir-r/Makefile.in
+++ b/tests/test-linedir-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-linedir-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input main.c check-lines.awk
-CLEANFILES = scanner.c scanner.h test-linedir-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
LFLAGS = --header="scanner.h"
-
#YFLAGS = --defines --output=parser.c
testname = test-linedir-r
-subdir = tests/test-linedir-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-linedir-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-linedir-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-linedir-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
@@ -327,8 +355,8 @@ $(testname)$(EXEEXT): $(OBJS)
test: $(testname)$(EXEEXT)
./$(testname)$(EXEEXT) < $(srcdir)/test.input
- cat -n scanner.c | grep '#line' | grep scanner.c | awk -f $(srcdir)/check-lines.awk
- cat -n scanner.h | grep '#line' | grep scanner.h | awk -f $(srcdir)/check-lines.awk
+ cat -n scanner.c | grep '#line' | grep scanner.c | $(AWK) -f $(srcdir)/check-lines.awk
+ cat -n scanner.h | grep '#line' | grep scanner.h | $(AWK) -f $(srcdir)/check-lines.awk
.c.o:
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-lineno-nr/Makefile.am b/tests/test-lineno-nr/Makefile.am
index 8ccf49d..35b28dc 100644
--- a/tests/test-lineno-nr/Makefile.am
+++ b/tests/test-lineno-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-lineno-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-lineno-nr/Makefile.in b/tests/test-lineno-nr/Makefile.in
index 989d626..f58dfcc 100644
--- a/tests/test-lineno-nr/Makefile.in
+++ b/tests/test-lineno-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-lineno-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,32 +181,45 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-lineno-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
testname = test-lineno-nr
-subdir = tests/test-lineno-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-lineno-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-lineno-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-lineno-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -195,10 +227,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -212,7 +240,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -230,7 +258,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -243,7 +270,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -252,7 +279,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -262,13 +289,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -284,7 +313,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -302,8 +331,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-lineno-r/Makefile.am b/tests/test-lineno-r/Makefile.am
index 2ea85f6..3ee4980 100644
--- a/tests/test-lineno-r/Makefile.am
+++ b/tests/test-lineno-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-lineno-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-lineno-r/Makefile.in b/tests/test-lineno-r/Makefile.in
index 377fe4b..0da1558 100644
--- a/tests/test-lineno-r/Makefile.in
+++ b/tests/test-lineno-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-lineno-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,32 +181,45 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-lineno-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
testname = test-lineno-r
-subdir = tests/test-lineno-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-lineno-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-lineno-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-lineno-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -195,10 +227,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -212,7 +240,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -230,7 +258,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -243,7 +270,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -252,7 +279,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -262,13 +289,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -284,7 +313,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -302,8 +331,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-mem-nr/Makefile.am b/tests/test-mem-nr/Makefile.am
index a79fe07..5d1f87d 100644
--- a/tests/test-mem-nr/Makefile.am
+++ b/tests/test-mem-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-mem-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-mem-nr/Makefile.in b/tests/test-mem-nr/Makefile.in
index 52d7c6e..9c80cc8 100644
--- a/tests/test-mem-nr/Makefile.in
+++ b/tests/test-mem-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-mem-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,33 +181,46 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-mem-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
testname = test-mem-nr
-subdir = tests/test-mem-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-mem-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-mem-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-mem-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -196,10 +228,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -213,7 +241,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -231,7 +259,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -244,7 +271,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -253,7 +280,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -263,13 +290,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -285,7 +314,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -303,8 +332,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-mem-r/Makefile.am b/tests/test-mem-r/Makefile.am
index 85db163..91d55fd 100644
--- a/tests/test-mem-r/Makefile.am
+++ b/tests/test-mem-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-mem-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-mem-r/Makefile.in b/tests/test-mem-r/Makefile.in
index 46c30a5..738acab 100644
--- a/tests/test-mem-r/Makefile.in
+++ b/tests/test-mem-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-mem-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,33 +181,46 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-mem-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
testname = test-mem-r
-subdir = tests/test-mem-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-mem-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-mem-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-mem-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -196,10 +228,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -213,7 +241,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -231,7 +259,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -244,7 +271,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -253,7 +280,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -263,13 +290,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -285,7 +314,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -303,8 +332,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-multiple-scanners-nr/Makefile.am b/tests/test-multiple-scanners-nr/Makefile.am
index 52ef100..6299d6a 100644
--- a/tests/test-multiple-scanners-nr/Makefile.am
+++ b/tests/test-multiple-scanners-nr/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner-1.l scanner-2.l main.c
-CLEANFILES = scanner-1.c scanner-1.h test-multiple-scanners-nr OUTPUT $(OBJS) scanner-2.c scanner-2.h
+CLEANFILES = scanner-1.c scanner-1.h $(testname)$(EXEEXT) OUTPUT $(OBJS) scanner-2.c scanner-2.h
OBJS = scanner-1.o scanner-2.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-multiple-scanners-nr/Makefile.in b/tests/test-multiple-scanners-nr/Makefile.in
index c307c3a..1cd7d35 100644
--- a/tests/test-multiple-scanners-nr/Makefile.in
+++ b/tests/test-multiple-scanners-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-multiple-scanners-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,36 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner-1.l scanner-2.l main.c
-CLEANFILES = scanner-1.c scanner-1.h test-multiple-scanners-nr OUTPUT $(OBJS) scanner-2.c scanner-2.h
+CLEANFILES = scanner-1.c scanner-1.h $(testname)$(EXEEXT) OUTPUT $(OBJS) scanner-2.c scanner-2.h
OBJS = scanner-1.o scanner-2.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-multiple-scanners-nr
-subdir = tests/test-multiple-scanners-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-multiple-scanners-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-multiple-scanners-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-multiple-scanners-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -199,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -216,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -234,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -247,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -256,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -266,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -288,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -306,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-multiple-scanners-r/Makefile.am b/tests/test-multiple-scanners-r/Makefile.am
index 6ece425..e2e777e 100644
--- a/tests/test-multiple-scanners-r/Makefile.am
+++ b/tests/test-multiple-scanners-r/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner-1.l scanner-2.l main.c
-CLEANFILES = scanner-1.c scanner-1.h test-multiple-scanners-r OUTPUT\
+CLEANFILES = scanner-1.c scanner-1.h $(testname)$(EXEEXT) OUTPUT\
$(OBJS) scanner-2.c scanner-2.h scanner-1.tables \
scanner-2.tables
OBJS = scanner-1.o scanner-2.o main.o
diff --git a/tests/test-multiple-scanners-r/Makefile.in b/tests/test-multiple-scanners-r/Makefile.in
index 6d52d08..da99f90 100644
--- a/tests/test-multiple-scanners-r/Makefile.in
+++ b/tests/test-multiple-scanners-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-multiple-scanners-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,39 +181,51 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner-1.l scanner-2.l main.c
-CLEANFILES = scanner-1.c scanner-1.h test-multiple-scanners-r OUTPUT\
+CLEANFILES = scanner-1.c scanner-1.h $(testname)$(EXEEXT) OUTPUT\
$(OBJS) scanner-2.c scanner-2.h scanner-1.tables \
scanner-2.tables
OBJS = scanner-1.o scanner-2.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-multiple-scanners-r
-subdir = tests/test-multiple-scanners-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-multiple-scanners-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-multiple-scanners-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-multiple-scanners-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -202,10 +233,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -219,7 +246,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -237,7 +264,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -250,7 +276,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -259,7 +285,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -269,13 +295,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -291,7 +319,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -309,8 +337,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-noansi-nr/Makefile.am b/tests/test-noansi-nr/Makefile.am
index e357503..39ee4a2 100644
--- a/tests/test-noansi-nr/Makefile.am
+++ b/tests/test-noansi-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-noansi-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-noansi-nr/Makefile.in b/tests/test-noansi-nr/Makefile.in
index c7f9afa..cf9167c 100644
--- a/tests/test-noansi-nr/Makefile.in
+++ b/tests/test-noansi-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-noansi-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-noansi-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-noansi-nr
-subdir = tests/test-noansi-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-noansi-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-noansi-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-noansi-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-noansi-r/Makefile.am b/tests/test-noansi-r/Makefile.am
index c0a33df..9e44f4a 100644
--- a/tests/test-noansi-r/Makefile.am
+++ b/tests/test-noansi-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-noansi-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-noansi-r/Makefile.in b/tests/test-noansi-r/Makefile.in
index fc3b019..58ddaec 100644
--- a/tests/test-noansi-r/Makefile.in
+++ b/tests/test-noansi-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-noansi-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c parser.c parser.h test-noansi-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#YFLAGS = --defines --output=parser.c
testname = test-noansi-r
-subdir = tests/test-noansi-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-noansi-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-noansi-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-noansi-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-posix/Makefile.am b/tests/test-posix/Makefile.am
index ffdc15e..ef12c04 100644
--- a/tests/test-posix/Makefile.am
+++ b/tests/test-posix/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h test-posix OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-posix/Makefile.in b/tests/test-posix/Makefile.in
index aa94e92..13b1276 100644
--- a/tests/test-posix/Makefile.in
+++ b/tests/test-posix/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-posix
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h test-posix OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
testname = test-posix
-subdir = tests/test-posix
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-posix/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-posix/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-posix/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-posixly-correct/Makefile.am b/tests/test-posixly-correct/Makefile.am
index 5ccbea0..d8f4cce 100644
--- a/tests/test-posixly-correct/Makefile.am
+++ b/tests/test-posixly-correct/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h test-posixly-correct OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-posixly-correct/Makefile.in b/tests/test-posixly-correct/Makefile.in
index 2e9b4d1..8a41f97 100644
--- a/tests/test-posixly-correct/Makefile.in
+++ b/tests/test-posixly-correct/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-posixly-correct
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h test-posixly-correct OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
testname = test-posixly-correct
-subdir = tests/test-posixly-correct
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-posixly-correct/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-posixly-correct/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-posixly-correct/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-prefix-nr/Makefile.am b/tests/test-prefix-nr/Makefile.am
index 2fcdcaf..8b2d467 100644
--- a/tests/test-prefix-nr/Makefile.am
+++ b/tests/test-prefix-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-prefix-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-prefix-nr/Makefile.in b/tests/test-prefix-nr/Makefile.in
index eb35737..b755786 100644
--- a/tests/test-prefix-nr/Makefile.in
+++ b/tests/test-prefix-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-prefix-nr
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-prefix-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-prefix-nr
-subdir = tests/test-prefix-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = README Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-prefix-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-prefix-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-prefix-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-prefix-r/Makefile.am b/tests/test-prefix-r/Makefile.am
index 531c919..7e08ef6 100644
--- a/tests/test-prefix-r/Makefile.am
+++ b/tests/test-prefix-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-prefix-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-prefix-r/Makefile.in b/tests/test-prefix-r/Makefile.in
index 3033f11..3dc83bf 100644
--- a/tests/test-prefix-r/Makefile.in
+++ b/tests/test-prefix-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-prefix-r
+DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-prefix-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-prefix-r
-subdir = tests/test-prefix-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = README Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-prefix-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-prefix-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-prefix-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-pthread/Makefile.am b/tests/test-pthread/Makefile.am
index e011ebd..7d2d062 100644
--- a/tests/test-pthread/Makefile.am
+++ b/tests/test-pthread/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input test-4.input test-5.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-pthread OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-pthread/Makefile.in b/tests/test-pthread/Makefile.in
index 02596d0..c872479 100644
--- a/tests/test-pthread/Makefile.in
+++ b/tests/test-pthread/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-pthread
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,34 +181,47 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test-1.input test-2.input test-3.input test-4.input test-5.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-pthread OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-pthread
-subdir = tests/test-pthread
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-pthread/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-pthread/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-pthread/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -197,10 +229,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -214,7 +242,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -232,7 +260,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -245,7 +272,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -254,7 +281,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -264,13 +291,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -286,7 +315,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -304,8 +333,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-pthread/scanner.l b/tests/test-pthread/scanner.l
index 9207a9d..8603873 100644
--- a/tests/test-pthread/scanner.l
+++ b/tests/test-pthread/scanner.l
@@ -35,9 +35,9 @@
*/
#include <stdio.h>
#include <stdlib.h>
-#include "config.h"
+#include <config.h>
-#ifdef HAVE_LIBPTHREAD
+#ifdef HAVE_PTHREAD_H
#include <pthread.h>
#endif
@@ -84,10 +84,10 @@ static int process_text(char* s, yyscan_t scanner)
return (int)(*s) + (int) *(s + yyget_leng(scanner)-1);
}
-int main(void);
+int main(int ARGC, char *ARGV[]);
#ifndef HAVE_LIBPTHREAD
- int main () {
+ int main (int ARGC, char *ARGV[]) {
printf(
"TEST ABORTED because pthread library not available \n"
"-- This is expected on some systems. It is not a flex error.\n" );
@@ -120,7 +120,7 @@ void * thread_func ( void* arg )
for( i =0 ; i < N_SCANS ; i++ )
{
- int main(void);
+ int main(int ARGC, char *ARGV[]);
int next;
yyscan_t scanner;
@@ -150,23 +150,23 @@ void * thread_func ( void* arg )
return NULL;
}
-int main ()
+int main (int ARGC, char *ARGV[])
{
int i;
pthread_t threads[N_THREADS];
- if( argc < 2 ) {
+ if( ARGC < 2 ) {
fprintf(stderr,"*** Error: No filenames specified.\n");
exit(-1);
}
/* Allocate and initialize the locks. One for each filename in ARGV. */
- file_locks = (pthread_mutex_t*)malloc( (argc-1) * sizeof(pthread_mutex_t));
- for( i = 0; i < argc-1; i++)
+ file_locks = (pthread_mutex_t*)malloc( (ARGC-1) * sizeof(pthread_mutex_t));
+ for( i = 0; i < ARGC-1; i++)
pthread_mutex_init( &file_locks[i], NULL );
- n_files = argc -1;
- filenames = argv + 1;
+ n_files = ARGC -1;
+ filenames = ARGV + 1;
next_file = 0;
/* prevent threads from starting until all threads have been created. */
@@ -190,7 +190,7 @@ int main ()
printf("Thread %d done.\n", i ); fflush(stdout);
}
- for( i = 0; i < argc-1; i++)
+ for( i = 0; i < ARGC-1; i++)
pthread_mutex_destroy( &file_locks[i] );
pthread_mutex_destroy( &next_lock );
diff --git a/tests/test-quotes/Makefile.am b/tests/test-quotes/Makefile.am
new file mode 100644
index 0000000..f726b7e
--- /dev/null
+++ b/tests/test-quotes/Makefile.am
@@ -0,0 +1,47 @@
+# 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.
+
+FLEX = $(top_builddir)/flex
+
+builddir = @builddir@
+
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = l.out c.out scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+
+testname = test-quotes
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ grep TEST_XXX < $(srcdir)/scanner.l | sed 's/^ *//' > l.out
+ grep TEST_XXX < scanner.c | sed 's/^ *//' > c.out
+ diff -q l.out c.out
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
diff --git a/tests/test-quotes/Makefile.in b/tests/test-quotes/Makefile.in
new file mode 100644
index 0000000..d81327c
--- /dev/null
+++ b/tests/test-quotes/Makefile.in
@@ -0,0 +1,360 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# 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.
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = tests/test-quotes
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BISON = @BISON@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GMSGFMT = @GMSGFMT@
+HELP2MAN = @HELP2MAN@
+INDENT = @INDENT@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LDFLAGS = @LDFLAGS@
+LEX = @LEX@
+LEXLIB = @LEXLIB@
+LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+M4 = @M4@
+MAKEINFO = @MAKEINFO@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+YACC = @YACC@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+FLEX = $(top_builddir)/flex
+builddir = @builddir@
+EXTRA_DIST = scanner.l test.input
+CLEANFILES = l.out c.out scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
+OBJS = scanner.o
+AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
+testname = test-quotes
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .o
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-quotes/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnits tests/test-quotes/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-info-am
+
+
+scanner.c: $(srcdir)/scanner.l
+ $(FLEX) $(LFLAGS) $<
+
+$(testname)$(EXEEXT): $(OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(OBJS) $(LOADLIBES)
+
+test: $(testname)$(EXEEXT)
+ grep TEST_XXX < $(srcdir)/scanner.l | sed 's/^ *//' > l.out
+ grep TEST_XXX < scanner.c | sed 's/^ *//' > c.out
+ diff -q l.out c.out
+ ./$(testname)$(EXEEXT) < $(srcdir)/test.input
+
+.c.o:
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/test-quotes/scanner.l b/tests/test-quotes/scanner.l
new file mode 100644
index 0000000..0c7c482
--- /dev/null
+++ b/tests/test-quotes/scanner.l
@@ -0,0 +1,101 @@
+/*
+ * 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.
+ */
+
+/* The point of this test is to be sure our M4 madness does not
+ * interfere with user code. I particular, we are looking
+ * for instances of M4 quotes, [[ and ]], in here to make it through the flex
+ * machinery unscathed.
+ */
+
+/* sect 1 [ 1 ] TEST_XXX */
+/* sect 1 [[ 2 ]] TEST_XXX */
+/* sect 1 [[[ 3 ]]] TEST_XXX */
+/* sect 1 [[[[ 4 ]]]] TEST_XXX */
+/* sect 1 ]] unmatched [[ TEST_XXX */
+
+%{
+/* A template scanner file to build "scanner.c". */
+#include <stdio.h>
+#include <stdlib.h>
+#include "config.h"
+/*#include "parser.h" */
+
+/* sect 1 block [ 1 ] TEST_XXX */
+/* sect 1 block [[ 2 ]] TEST_XXX */
+/* sect 1 block [[[ 3 ]]] TEST_XXX */
+/* sect 1 block [[[[ 4 ]]]] TEST_XXX */
+/* sect 1 block ]] unmatched [[ TEST_XXX */
+
+static int a[1] = {0};
+static int b[1] = {0};
+static int c[1] = {0};
+
+static int foo (int i){
+ return a[b[c[i]]]; /* sect 1 code TEST_XXX */
+}
+%}
+
+%option 8bit outfile="scanner.c" prefix="test"
+%option nounput nomain noyywrap
+%option warn
+
+
+%%
+
+a /* action comment [ 1 ] */ ;
+b /* action comment [[ 2 ]] */ ;
+c /* action comment [[[ 3 ]]] */ ;
+d /* action comment [[[[ 4 ]]]] */ ;
+e /* action comment ]] unmatched [[ */ ;
+f return 1+foo(a[b[c[0]]]);
+.|\n {
+ /* action block [ 1 ] TEST_XXX */
+ /* action block [[ 2 ]] TEST_XXX */
+ /* action block [[[ 3 ]]] TEST_XXX */
+ /* action block [[[[ 4 ]]]] TEST_XXX */
+ /* action block ]] unmatched [[ TEST_XXX */
+ return 1+foo(a[b[c[0]]]); // TEST_XXX
+ }
+%%
+
+/* sect 3 [ 1 ] TEST_XXX */
+/* sect 3 [[ 2 ]] TEST_XXX */
+/* sect 3 [[[ 3 ]]] TEST_XXX */
+/* sect 3 [[[[ 4 ]]]] TEST_XXX */
+/* sect 3 ]] unmatched [[ TEST_XXX */
+static int bar (int i){
+ return c[b[a[i]]]; /* sect 3 code TEST_XXX */
+}
+int main(void);
+
+int
+main ()
+{
+ yyin = stdin;
+ yyout = stdout;
+ while (yylex())
+ ;
+ printf("TEST RETURNING OK.\n");
+ return bar(0);
+}
+
diff --git a/tests/test-quotes/test.input b/tests/test-quotes/test.input
new file mode 100644
index 0000000..7288a40
--- /dev/null
+++ b/tests/test-quotes/test.input
@@ -0,0 +1,2 @@
+0000 foo 1111 foo 0000 bar
+0000 foo 1111 foo 0000 bar
diff --git a/tests/test-reject/Makefile.am b/tests/test-reject/Makefile.am
index 2a9c3e2..64de331 100644
--- a/tests/test-reject/Makefile.am
+++ b/tests/test-reject/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-reject-* OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT)-* OUTPUT $(OBJS)
OBJS = test-reject-nr.o test-reject-r.o test-reject-ver.o \
test-reject-ser.o
@@ -65,5 +65,16 @@ test: $(tests)
./$(testname)-ver$(EXEEXT) $(testname)-ver.tables < $(srcdir)/test.input
./$(testname)-ser$(EXEEXT) $(testname)-ser.tables < $(srcdir)/test.input
-.c.o:
+test-reject-nr.o: test-reject-nr.c
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+
+test-reject-ver.o: test-reject-ver.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-reject-ser.o: test-reject-ser.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-reject-r.o: test-reject-r.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_IS_REENTRANT $(CFLAGS) $<
+
+
diff --git a/tests/test-reject/Makefile.in b/tests/test-reject/Makefile.in
index e58032d..f7055f0 100644
--- a/tests/test-reject/Makefile.in
+++ b/tests/test-reject/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-reject
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c test-reject-* OUTPUT $(OBJS)
+CLEANFILES = scanner.c $(testname)$(EXEEXT)-* OUTPUT $(OBJS)
OBJS = test-reject-nr.o test-reject-r.o test-reject-ver.o \
test-reject-ser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
tests = test-reject-nr$(EXEEXT) test-reject-r$(EXEEXT) \
test-reject-ser$(EXEEXT) test-reject-ver$(EXEEXT)
testname = test-reject
-subdir = tests/test-reject
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-reject/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-reject/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-reject/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
@@ -348,8 +376,17 @@ test: $(tests)
./$(testname)-ver$(EXEEXT) $(testname)-ver.tables < $(srcdir)/test.input
./$(testname)-ser$(EXEEXT) $(testname)-ser.tables < $(srcdir)/test.input
-.c.o:
+test-reject-nr.o: test-reject-nr.c
$(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+
+test-reject-ver.o: test-reject-ver.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-reject-ser.o: test-reject-ser.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-reject-r.o: test-reject-r.c
+ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_IS_REENTRANT $(CFLAGS) $<
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
diff --git a/tests/test-reject/scanner.l b/tests/test-reject/scanner.l
index a90a1fa..25dab60 100644
--- a/tests/test-reject/scanner.l
+++ b/tests/test-reject/scanner.l
@@ -46,13 +46,11 @@ int main ( int argc, char** argv )
void *yyscanner=0;
M4_YY_DECL_GUTS_VAR();
-m4_ifdef( [[M4_YY_REENTRANT]],
-[[
+#ifdef TEST_IS_REENTRANT
yylex_init(&yyscanner);
-]])
+#endif
-m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
-[[
+#ifdef TEST_HAS_TABLES_EXTERNAL
if((fp = fopen(argv[1],"r"))== NULL)
yy_fatal_error("could not open tables file for reading" M4_YY_CALL_LAST_ARG);
@@ -60,7 +58,7 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
yy_fatal_error("yytables_fload returned < 0" M4_YY_CALL_LAST_ARG);
if(M4_YY_TABLES_VERIFY)
exit(0);
-]])
+#endif
if(argc > 2){
if((fp = fopen(argv[2],"r"))== NULL)
@@ -70,10 +68,9 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
while(yylex(M4_YY_CALL_ONLY_ARG) != 0)
;
-m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
-[[
+#ifdef TEST_HAS_TABLES_EXTERNAL
yytables_destroy(M4_YY_CALL_ONLY_ARG);
-]])
+#endif
yylex_destroy(M4_YY_CALL_ONLY_ARG);
if(argc < 0) /* silence the compiler */
diff --git a/tests/test-rescan-nr/Makefile.am b/tests/test-rescan-nr/Makefile.am
index 326c582..5e3b88e 100644
--- a/tests/test-rescan-nr/Makefile.am
+++ b/tests/test-rescan-nr/Makefile.am
@@ -24,7 +24,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-rescan-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-rescan-nr/Makefile.in b/tests/test-rescan-nr/Makefile.in
index 7ed4a96..582257c 100644
--- a/tests/test-rescan-nr/Makefile.in
+++ b/tests/test-rescan-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-rescan-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-rescan-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-rescan-nr
-subdir = tests/test-rescan-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-rescan-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-rescan-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-rescan-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-rescan-r/Makefile.am b/tests/test-rescan-r/Makefile.am
index 9ff7735..2108512 100644
--- a/tests/test-rescan-r/Makefile.am
+++ b/tests/test-rescan-r/Makefile.am
@@ -24,7 +24,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-rescan-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-rescan-r/Makefile.in b/tests/test-rescan-r/Makefile.in
index d17ae0b..2d7958c 100644
--- a/tests/test-rescan-r/Makefile.in
+++ b/tests/test-rescan-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-rescan-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h test-rescan-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(builddir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-rescan-r
-subdir = tests/test-rescan-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-rescan-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-rescan-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-rescan-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-string-nr/Makefile.am b/tests/test-string-nr/Makefile.am
index 3fd33bf..dbf8e0f 100644
--- a/tests/test-string-nr/Makefile.am
+++ b/tests/test-string-nr/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-string-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-string-nr/Makefile.in b/tests/test-string-nr/Makefile.in
index aef8ef7..71f81f5 100644
--- a/tests/test-string-nr/Makefile.in
+++ b/tests/test-string-nr/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-string-nr
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-string-nr OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-string-nr
-subdir = tests/test-string-nr
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-string-nr/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-string-nr/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-string-nr/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-string-r/Makefile.am b/tests/test-string-r/Makefile.am
index e2c1e0f..2c93007 100644
--- a/tests/test-string-r/Makefile.am
+++ b/tests/test-string-r/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-string-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-string-r/Makefile.in b/tests/test-string-r/Makefile.in
index 3e9da61..8909408 100644
--- a/tests/test-string-r/Makefile.in
+++ b/tests/test-string-r/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-string-r
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-string-r OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-string-r
-subdir = tests/test-string-r
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-string-r/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-string-r/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-string-r/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-table-opts/Makefile.am b/tests/test-table-opts/Makefile.am
index 4380e3d..a52f617 100644
--- a/tests/test-table-opts/Makefile.am
+++ b/tests/test-table-opts/Makefile.am
@@ -28,7 +28,6 @@
# 'test-mul' checks that we can store multiple tables in a single file.
# ------------------------------------------------
-
FLEX = $(top_builddir)/flex
testname := test-table-opts
@@ -63,12 +62,11 @@ sertables := $(addsuffix .tables,$(sertests))
alltables := $(addsuffix .tables,$(alltests))
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c OUTPUT test-*.o test-*.c test-*.tables \
- all-ser.tables core $(alltests)
+CLEANFILES = scanner.c OUTPUT $(allobj) $(allsrc) $(alltables) \
+ all-ser.tables $(allexe)
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-test: test-table-opts
-test-table-opts: $(alltests)
+test: test-opt test-ser test-ver test-mul
test-opt-r%.c: $(srcdir)/scanner.l
$(FLEX) -L -P $(subst -,_,$(basename $(@F))) --reentrant $* -o $@ $<
@@ -122,8 +120,13 @@ test-mul: $(serexe)
./$$t all-ser.tables < $(srcdir)/test.input || { echo $$t FAILED; exit 1; } ; \
done
-.c.o:
- $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+test-opt-nr-%.o: test-opt-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+test-ser-nr-%.o: test-ser-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+test-ver-nr-%.o: test-ver-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-opt-r-%.o: test-opt-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_IS_REENTRANT $(CFLAGS) $<
+test-ser-r-%.o: test-ser-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT $(CFLAGS) $<
+test-ver-r-%.o: test-ver-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT $(CFLAGS) $<
-.PHONY: test-table-opts test test-opt test-ser test-ver test-mul
+.PHONY: test test-opt test-ser test-ver test-mul
.SECONDARY: $(allobj) $(allsrc)
diff --git a/tests/test-table-opts/Makefile.in b/tests/test-table-opts/Makefile.in
index d5e9538..5a25f4f 100644
--- a/tests/test-table-opts/Makefile.in
+++ b/tests/test-table-opts/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -43,7 +43,6 @@
# 'test-ser' deserializes the tables at runtime.
# 'test-mul' checks that we can store multiple tables in a single file.
# ------------------------------------------------
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -51,7 +50,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -65,8 +63,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-table-opts
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -144,6 +160,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -164,6 +182,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -171,9 +190,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
testname := test-table-opts
allopts := -Ca -Ce -Cf -CF -Cm -Cem -Cae -Caef -CaeF -Cam -Caem
@@ -204,28 +221,43 @@ allobj := $(optobj) $(verobj) $(serobj)
# the .tables files
sertables := $(addsuffix .tables,$(sertests))
alltables := $(addsuffix .tables,$(alltests))
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c OUTPUT test-*.o test-*.c test-*.tables \
- all-ser.tables core $(alltests)
+CLEANFILES = scanner.c OUTPUT $(allobj) $(allsrc) $(alltables) \
+ all-ser.tables $(allexe)
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-subdir = tests/test-table-opts
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-table-opts/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-table-opts/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-table-opts/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -233,10 +265,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -250,7 +278,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -268,7 +296,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -281,7 +308,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -290,7 +317,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -300,13 +327,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -322,7 +351,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -340,8 +369,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
@@ -349,8 +378,7 @@ uninstall-am: uninstall-info-am
uninstall-info-am
-test: test-table-opts
-test-table-opts: $(alltests)
+test: test-opt test-ser test-ver test-mul
test-opt-r%.c: $(srcdir)/scanner.l
$(FLEX) -L -P $(subst -,_,$(basename $(@F))) --reentrant $* -o $@ $<
@@ -404,10 +432,15 @@ test-mul: $(serexe)
./$$t all-ser.tables < $(srcdir)/test.input || { echo $$t FAILED; exit 1; } ; \
done
-.c.o:
- $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+test-opt-nr-%.o: test-opt-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $<
+test-ser-nr-%.o: test-ser-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+test-ver-nr-%.o: test-ver-nr-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL $(CFLAGS) $<
+
+test-opt-r-%.o: test-opt-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_IS_REENTRANT $(CFLAGS) $<
+test-ser-r-%.o: test-ser-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT $(CFLAGS) $<
+test-ver-r-%.o: test-ver-r-%.c ; $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT $(CFLAGS) $<
-.PHONY: test-table-opts test test-opt test-ser test-ver test-mul
+.PHONY: test test-opt test-ser test-ver test-mul
.SECONDARY: $(allobj) $(allsrc)
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/test-table-opts/scanner.l b/tests/test-table-opts/scanner.l
index 5b3255f..a9a87c6 100644
--- a/tests/test-table-opts/scanner.l
+++ b/tests/test-table-opts/scanner.l
@@ -48,13 +48,11 @@ int main ( int argc, char** argv )
void *yyscanner=0;
M4_YY_DECL_GUTS_VAR();
-m4_ifdef( [[M4_YY_REENTRANT]],
-[[
+#ifdef TEST_IS_REENTRANT
yylex_init(&yyscanner);
-]])
+#endif
-m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
-[[
+#ifdef TEST_HAS_TABLES_EXTERNAL
if((fp = fopen(argv[1],"r"))== NULL)
yy_fatal_error("could not open tables file for reading" M4_YY_CALL_LAST_ARG);
@@ -62,7 +60,7 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
yy_fatal_error("yytables_fload returned < 0" M4_YY_CALL_LAST_ARG);
if(M4_YY_TABLES_VERIFY)
exit(0);
-]])
+#endif
if(argc > 2){
if((fp = fopen(argv[2],"r"))== NULL)
@@ -72,10 +70,9 @@ m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
while(yylex(M4_YY_CALL_ONLY_ARG) != 0)
;
-m4_ifdef( [[YY_TABLES_EXTERNAL]],
-[[
+#ifdef TEST_HAS_TABLES_EXTERNAL
yytables_destroy(M4_YY_CALL_ONLY_ARG);
-]])
+#endif
yylex_destroy(M4_YY_CALL_ONLY_ARG);
if(argc < 0) /* silence the compiler */
diff --git a/tests/test-top/Makefile.am b/tests/test-top/Makefile.am
index 51e6d6b..f855545 100644
--- a/tests/test-top/Makefile.am
+++ b/tests/test-top/Makefile.am
@@ -25,7 +25,7 @@ FLEX = $(top_builddir)/flex
builddir = @builddir@
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-top OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
diff --git a/tests/test-top/Makefile.in b/tests/test-top/Makefile.in
index 5c0fd39..633ccb1 100644
--- a/tests/test-top/Makefile.in
+++ b/tests/test-top/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-top
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,37 +181,49 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
builddir = @builddir@
-
EXTRA_DIST = scanner.l test.input main.c
-CLEANFILES = scanner.c scanner.h test-top OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o main.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir) -I$(builddir)
#LDFLAGS = $(top_srcdir)/libfl.a
LFLAGS = --header="scanner.h"
-
#YFLAGS = --defines --output=parser.c
testname = test-top
-subdir = tests/test-top
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-top/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-top/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-top/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -200,10 +231,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -217,7 +244,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -235,7 +262,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -248,7 +274,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -257,7 +283,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -267,13 +293,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -289,7 +317,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -307,8 +335,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tests/test-yyextra/Makefile.am b/tests/test-yyextra/Makefile.am
index 440c08b..96ec982 100644
--- a/tests/test-yyextra/Makefile.am
+++ b/tests/test-yyextra/Makefile.am
@@ -23,7 +23,7 @@
FLEX = $(top_builddir)/flex
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-yyextra OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
diff --git a/tests/test-yyextra/Makefile.in b/tests/test-yyextra/Makefile.in
index 41a2250..77bac20 100644
--- a/tests/test-yyextra/Makefile.in
+++ b/tests/test-yyextra/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -34,7 +34,6 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE.
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -42,7 +41,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -56,8 +54,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tests/test-yyextra
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -135,6 +151,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -155,6 +173,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -162,35 +181,48 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
-
FLEX = $(top_builddir)/flex
-
EXTRA_DIST = scanner.l test.input
-CLEANFILES = scanner.c scanner.h parser.c parser.h test-yyextra OUTPUT $(OBJS)
+CLEANFILES = scanner.c scanner.h parser.c parser.h $(testname)$(EXEEXT) OUTPUT $(OBJS)
OBJS = scanner.o # parser.o
-
AM_CPPFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_builddir)
-
#LDFLAGS = $(top_srcdir)/libfl.a
#LFLAGS = --header="scanner.h"
#YFLAGS = --defines --output=parser.c
testname = test-yyextra
-subdir = tests/test-yyextra
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
.SUFFIXES: .c .o
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/test-yyextra/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/test-yyextra/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tests/test-yyextra/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -198,10 +230,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ../..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -215,7 +243,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -233,7 +261,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -246,7 +273,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -255,7 +282,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -265,13 +292,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -287,7 +316,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -305,8 +334,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 9f9893b..6660419 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.7.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,7 +13,6 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
@@ -21,7 +20,6 @@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
@@ -35,8 +33,26 @@ POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
+build_triplet = @build@
host_triplet = @host@
+subdir = tools
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
@@ -114,6 +130,8 @@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
@@ -134,6 +152,7 @@ libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
+mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
@@ -145,21 +164,38 @@ EXTRA_DIST = \
cvsauthors \
cvs2cl.pl
-subdir = tools
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-DIST_SOURCES =
-DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tools/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu tools/Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+ $(AUTOMAKE) --gnits tools/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
uninstall-info-am:
tags: TAGS
TAGS:
@@ -167,10 +203,6 @@ TAGS:
ctags: CTAGS
CTAGS:
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = ..
-distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -184,7 +216,7 @@ distdir: $(DISTFILES)
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
@@ -202,7 +234,6 @@ distdir: $(DISTFILES)
check-am: all-am
check: check-am
all-am: Makefile
-
installdirs:
install: install-am
install-exec: install-exec-am
@@ -215,7 +246,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -223,7 +254,7 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -233,13 +264,15 @@ clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-
+ -rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
@@ -255,7 +288,7 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -273,8 +306,8 @@ ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic distclean \
- distclean-generic distdir dvi dvi-am info info-am install \
- install-am install-data install-data-am install-exec \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
diff --git a/tools/cvsauthors b/tools/cvsauthors
index 0c19a14..e71dc48 100644
--- a/tools/cvsauthors
+++ b/tools/cvsauthors
@@ -1,3 +1,5 @@
+sodabrew:'Aaron Stone <sodabrew@users.sourceforge.net>'
+john43:'John Millaway <john43@users.sourceforge.net>'
millaway:'John Millaway <millaway@acm.org>'
wlestes:'Will Estes <wlestes@users.sourceforge.net>'
vern:'Vern Paxson <vern@ee.lbl.gov>'