Import flex 2.5.37.
This commit is contained in:
parent
6916e47018
commit
13a0f001a6
241
INSTALL
241
INSTALL
@ -1,16 +1,25 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
|
||||
Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved. This file is offered as-is,
|
||||
without warranty of any kind.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
These are generic installation instructions.
|
||||
Briefly, the shell commands `./configure; make; make install' should
|
||||
configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package. Some packages provide this
|
||||
`INSTALL' file but do not implement all of the features documented
|
||||
below. The lack of an optional feature in a given package is not
|
||||
necessarily a bug. More recommendations for GNU packages can be found
|
||||
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
@ -23,9 +32,9 @@ debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.)
|
||||
cache files.
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
`./configure' to configure the package for your system.
|
||||
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Optionally, type `make check' to run any self-tests that come with
|
||||
the package.
|
||||
the package, generally using the just-built uninstalled binaries.
|
||||
|
||||
4. Type `make install' to install the programs and any data files and
|
||||
documentation.
|
||||
documentation. When installing into a prefix owned by root, it is
|
||||
recommended that the package be configured and built as a regular
|
||||
user, and only the `make install' phase executed with root
|
||||
privileges.
|
||||
|
||||
5. You can remove the program binaries and object files from the
|
||||
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||
this time using the binaries in their final installed location.
|
||||
This target does not install anything. Running this target as a
|
||||
regular user, particularly if the prior `make install' required
|
||||
root privileges, verifies that the installation completed
|
||||
correctly.
|
||||
|
||||
6. You can remove the program binaries and object files from the
|
||||
source code directory by typing `make clean'. To also remove the
|
||||
files that `configure' created (so you can compile the package for
|
||||
a different kind of computer), type `make distclean'. There is
|
||||
@ -67,45 +83,69 @@ The simplest way to compile this package is:
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
7. Often, you can also type `make uninstall' to remove the installed
|
||||
files again. In practice, not all packages have tested that
|
||||
uninstallation works correctly, even though it is required by the
|
||||
GNU Coding Standards.
|
||||
|
||||
8. Some packages, particularly those that use Automake, provide `make
|
||||
distcheck', which can by used by developers to test that all other
|
||||
targets like `make install' and `make uninstall' work correctly.
|
||||
This target is generally not run by end users.
|
||||
|
||||
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
|
||||
is an example:
|
||||
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
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
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
source code in the directory that `configure' is in and in `..'. This
|
||||
is known as a "VPATH" build.
|
||||
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
|
||||
On MacOS X 10.5 and later systems, you can create libraries and
|
||||
executables that work on multiple system types--known as "fat" or
|
||||
"universal" binaries--by specifying multiple `-arch' options to the
|
||||
compiler but only a single `-arch' option to the preprocessor. Like
|
||||
this:
|
||||
|
||||
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||
CPP="gcc -E" CXXCPP="g++ -E"
|
||||
|
||||
This is not guaranteed to produce working output in all cases, you
|
||||
may have to build one architecture at a time and combine the results
|
||||
using the `lipo' tool if you have problems.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
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'.
|
||||
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||
absolute file name.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
@ -116,16 +156,47 @@ 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=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.
|
||||
you can set and what kinds of files go in them. In general, the
|
||||
default for these options is expressed in terms of `${prefix}', so that
|
||||
specifying just `--prefix' will affect all of the other directory
|
||||
specifications that were not explicitly provided.
|
||||
|
||||
The most portable way to affect installation locations is to pass the
|
||||
correct locations to `configure'; however, many packages provide one or
|
||||
both of the following shortcuts of passing variable assignments to the
|
||||
`make install' command line to change installation locations without
|
||||
having to reconfigure or recompile.
|
||||
|
||||
The first method involves providing an override variable for each
|
||||
affected directory. For example, `make install
|
||||
prefix=/alternate/directory' will choose an alternate location for all
|
||||
directory configuration variables that were expressed in terms of
|
||||
`${prefix}'. Any directories that were specified during `configure',
|
||||
but not in terms of `${prefix}', must each be overridden at install
|
||||
time for the entire installation to be relocated. The approach of
|
||||
makefile variable overrides for each directory variable is required by
|
||||
the GNU Coding Standards, and ideally causes no recompilation.
|
||||
However, some platforms have known limitations with the semantics of
|
||||
shared libraries that end up requiring recompilation when using this
|
||||
method, particularly noticeable in packages that use GNU Libtool.
|
||||
|
||||
The second method involves providing the `DESTDIR' variable. For
|
||||
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||
`/alternate/directory' before all installation names. The approach of
|
||||
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||
does not work on platforms that have drive letters. On the other hand,
|
||||
it does better at avoiding recompilation issues, and works well even
|
||||
when some directory options were not specified in terms of `${prefix}'
|
||||
at `configure' time.
|
||||
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
If the package supports it, you can cause programs to be installed
|
||||
with an extra prefix or suffix on their names by giving `configure' the
|
||||
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,14 +208,53 @@ find the X include and library files automatically, but if it doesn't,
|
||||
you can use the `configure' options `--x-includes=DIR' and
|
||||
`--x-libraries=DIR' to specify their locations.
|
||||
|
||||
Some packages offer the ability to configure how verbose the
|
||||
execution of `make' will be. For these packages, running `./configure
|
||||
--enable-silent-rules' sets the default to minimal output, which can be
|
||||
overridden with `make V=1'; while running `./configure
|
||||
--disable-silent-rules' sets the default to verbose, which can be
|
||||
overridden with `make V=0'.
|
||||
|
||||
Particular systems
|
||||
==================
|
||||
|
||||
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||
CC is not installed, it is recommended to use the following options in
|
||||
order to use an ANSI C compiler:
|
||||
|
||||
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||
|
||||
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||
|
||||
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||
to try
|
||||
|
||||
./configure CC="cc"
|
||||
|
||||
and if that doesn't work, try
|
||||
|
||||
./configure CC="cc -nodtk"
|
||||
|
||||
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||
directory contains several dysfunctional programs; working variants of
|
||||
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||
in your `PATH', put it _after_ `/usr/bin'.
|
||||
|
||||
On Haiku, software installed for all users goes in `/boot/common',
|
||||
not `/usr/local'. It is recommended to use the following options:
|
||||
|
||||
./configure --prefix=/boot/common
|
||||
|
||||
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:
|
||||
|
||||
@ -152,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
where SYSTEM can have one of these forms:
|
||||
|
||||
OS KERNEL-OS
|
||||
OS
|
||||
KERNEL-OS
|
||||
|
||||
See the file `config.sub' for the possible values of each field. If
|
||||
`config.sub' isn't included in this package, then this package doesn't
|
||||
@ -170,9 +281,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.
|
||||
@ -181,7 +292,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
|
||||
@ -190,21 +301,29 @@ them in the `configure' command line, using `VAR=value'. For example:
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
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:
|
||||
overridden in the site shell script).
|
||||
|
||||
/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||
|
||||
Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
|
||||
configuration-related scripts to be executed by `/bin/bash'.
|
||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/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'
|
||||
Print a summary of the options to `configure', and exit.
|
||||
Print a summary of all of the options to `configure', and exit.
|
||||
|
||||
`--help=short'
|
||||
`--help=recursive'
|
||||
Print a summary of the options unique to this package's
|
||||
`configure', and exit. The `short' variant lists options used
|
||||
only in the top level, while the `recursive' variant lists options
|
||||
also present in any nested packages.
|
||||
|
||||
`--version'
|
||||
`-V'
|
||||
@ -231,6 +350,16 @@ configuration-related scripts to be executed by `/bin/bash'.
|
||||
Look for the package's source code in directory DIR. Usually
|
||||
`configure' can determine that directory automatically.
|
||||
|
||||
`--prefix=DIR'
|
||||
Use DIR as the installation prefix. *note Installation Names::
|
||||
for more details, including other options available for fine-tuning
|
||||
the installation locations.
|
||||
|
||||
`--no-create'
|
||||
`-n'
|
||||
Run the configure checks, but stop before creating any output
|
||||
files.
|
||||
|
||||
`configure' also accepts some other, not widely useful, options. Run
|
||||
`configure --help' for more details.
|
||||
|
||||
|
30
Makefile.am
30
Makefile.am
@ -66,6 +66,9 @@ flex_SOURCES = \
|
||||
filter.c \
|
||||
regex.c
|
||||
|
||||
|
||||
LDADD = lib/libcompat.a
|
||||
|
||||
libfl_a_SOURCES = \
|
||||
libmain.c \
|
||||
libyywrap.c
|
||||
@ -90,21 +93,22 @@ noinst_HEADERS = \
|
||||
include_HEADERS = \
|
||||
FlexLexer.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
.indent.pro \
|
||||
dist_doc_DATA = \
|
||||
AUTHORS \
|
||||
COPYING \
|
||||
INSTALL \
|
||||
NEWS \
|
||||
ONEWS \
|
||||
README \
|
||||
README.cvs \
|
||||
THANKS \
|
||||
TODO \
|
||||
TODO
|
||||
|
||||
EXTRA_DIST = \
|
||||
.indent.pro \
|
||||
ABOUT-NLS \
|
||||
INSTALL \
|
||||
autogen.sh \
|
||||
flex.skl \
|
||||
mkskel.sh \
|
||||
ABOUT-NLS \
|
||||
config.rpath \
|
||||
gettext.h
|
||||
|
||||
@ -112,9 +116,9 @@ BUILT_SOURCES = \
|
||||
skel.c
|
||||
|
||||
SUBDIRS = \
|
||||
lib \
|
||||
. \
|
||||
doc \
|
||||
m4 \
|
||||
examples \
|
||||
po \
|
||||
tools \
|
||||
@ -154,11 +158,11 @@ 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 the ChangeLog, but only if we're inside a cvs working directory
|
||||
# Create the ChangeLog, but only if we're inside a git working directory
|
||||
|
||||
ChangeLog: $(srcdir)/tools/cvsauthors $(srcdir)/tools/cvs2cl.pl
|
||||
if [ -d CVS ] ; then \
|
||||
sh $(srcdir)/tools/cvs2cl.pl -F trunk -U $(srcdir)/tools/cvsauthors \
|
||||
ChangeLog: $(srcdir)/tools/git2cl
|
||||
if [ -d $(srcdir)/.git ] ; then \
|
||||
$(srcdir)/tools/git2cl > $@ \
|
||||
; fi
|
||||
|
||||
# Run GNU indent on sources. Don't run this unless all the sources compile cleanly.
|
||||
@ -205,4 +209,8 @@ indent:
|
||||
done \
|
||||
fi
|
||||
|
||||
install-exec-hook:
|
||||
cd $(DESTDIR)/$(bindir) && \
|
||||
$(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT)
|
||||
|
||||
.PHONY: ChangeLog tags indent
|
||||
|
589
Makefile.in
589
Makefile.in
File diff suppressed because it is too large
Load Diff
30
NEWS
30
NEWS
@ -3,6 +3,36 @@ changes between releases of flex.
|
||||
|
||||
See the file COPYING for copying conditions.
|
||||
|
||||
* version 2.5.37 released 2012-08-03
|
||||
|
||||
** Import flex into git. See
|
||||
git://flex.git.sourceforge.net/gitroot/flex/flex.
|
||||
|
||||
** Fix make install target to not fail when the flex++ program is
|
||||
already installed
|
||||
|
||||
** New translations from the translation project: de, fi, pl, vi
|
||||
|
||||
* version 2.5.36 released 2012-07-20
|
||||
|
||||
** various portability fixes that quiet compiler warnings on 64-bit
|
||||
hosts
|
||||
|
||||
** various manual fixes, including correcting the name of a %option and
|
||||
updating some simple examples to use ANSI C syntax
|
||||
|
||||
** various bug fixes that prevent certain error conditions from
|
||||
persisting when they should not persist
|
||||
|
||||
** improvements to the test suite so it behaves better when linking
|
||||
compiled files
|
||||
|
||||
** new translations from the translation project: ca, da, es, fi, fr,
|
||||
ga, ko, pt_br, ro, ru, sv, tr, zh_cn
|
||||
|
||||
** the flex distribution is now built with automake 1.10.1 and automake
|
||||
2.61
|
||||
|
||||
* version 2.5.35 released 2008-02-26
|
||||
|
||||
** fixed bug that prevented flex from accepting certain comments in the
|
||||
|
@ -16,15 +16,15 @@ files needed to make building flex easy are included. You don't have
|
||||
that in the cvs tree.
|
||||
|
||||
You will need various external tools in order to build the distribution. Here is
|
||||
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
|
||||
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 GNU autoconf (yes, it *must* be GNU m4)
|
||||
GNU autoconf 2.59 and GNU automake 1.9.6; for generating Makefiles etc.
|
||||
GNU autoconf 2.60 and GNU automake 1.10; for generating Makefiles etc.
|
||||
GNU gettext 0.14.5; for i18n
|
||||
flex (latest beta release); for bootstrap of scan.l
|
||||
help2man 1.36; to generate the flex man page
|
||||
|
25
buf.c
25
buf.c
@ -74,6 +74,8 @@ struct Buf *buf_prints (struct Buf *buf, const char *fmt, const char *s)
|
||||
size_t tsz;
|
||||
|
||||
t = flex_alloc (tsz = strlen (fmt) + strlen (s) + 1);
|
||||
if (!t)
|
||||
flexfatal (_("Allocation of buffer to print string failed"));
|
||||
snprintf (t, tsz, fmt, s);
|
||||
buf = buf_strappend (buf, t);
|
||||
flex_free (t);
|
||||
@ -88,11 +90,20 @@ 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 (tsz = strlen (fmt) + strlen (filename) + (int)(1 + log10(lineno>=0?lineno:-lineno)) + 1);
|
||||
snprintf (t, tsz, fmt, lineno, filename);
|
||||
char *dst, *src, *t;
|
||||
|
||||
t = flex_alloc (strlen ("#line \"\"\n") + /* constant parts */
|
||||
2 * strlen (filename) + /* filename with possibly all backslashes escaped */
|
||||
(int) (1 + log10 (abs (lineno))) + /* line number */
|
||||
1); /* NUL */
|
||||
if (!t)
|
||||
flexfatal (_("Allocation of buffer for line directive failed"));
|
||||
for (dst = t + sprintf (t, "#line %d \"", lineno), src = filename; *src; *dst++ = *src++)
|
||||
if (*src == '\\') /* escape backslashes */
|
||||
*dst++ = '\\';
|
||||
*dst++ = '"';
|
||||
*dst++ = '\n';
|
||||
*dst = '\0';
|
||||
buf = buf_strappend (buf, t);
|
||||
flex_free (t);
|
||||
return buf;
|
||||
@ -162,6 +173,8 @@ struct Buf *buf_m4_define (struct Buf *buf, const char* def, const char* val)
|
||||
|
||||
val = val?val:"";
|
||||
str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + strlen(val) + 2);
|
||||
if (!str)
|
||||
flexfatal (_("Allocation of buffer for m4 def failed"));
|
||||
|
||||
snprintf(str, strsz, fmt, def, val);
|
||||
buf_append(buf, &str, 1);
|
||||
@ -180,6 +193,8 @@ struct Buf *buf_m4_undefine (struct Buf *buf, const char* def)
|
||||
size_t strsz;
|
||||
|
||||
str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(def) + 2);
|
||||
if (!str)
|
||||
flexfatal (_("Allocation of buffer for m4 undef failed"));
|
||||
|
||||
snprintf(str, strsz, fmt, def);
|
||||
buf_append(buf, &str, 1);
|
||||
|
21
compile
21
compile
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand `-c -o'.
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
scriptversion=2009-10-06.20; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
|
||||
# Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
@ -17,8 +18,7 @@ scriptversion=2005-05-14.22
|
||||
# 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.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -103,13 +103,13 @@ if test -z "$ofile" || test -z "$cfile"; then
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use `[/.-]' here to ensure that we don't use the same name
|
||||
# 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
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
@ -124,9 +124,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
mv "$cofile" "$ofile"
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
mv "${cofile}bj" "$ofile"
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
@ -138,5 +138,6 @@ exit $ret
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
15
conf.in
15
conf.in
@ -85,6 +85,9 @@
|
||||
/* Define to 1 if you have the `regcomp' function. */
|
||||
#undef HAVE_REGCOMP
|
||||
|
||||
/* Define to 1 if you have the <regex.h> header file. */
|
||||
#undef HAVE_REGEX_H
|
||||
|
||||
/* Define to 1 if you have the `setlocale' function. */
|
||||
#undef HAVE_SETLOCALE
|
||||
|
||||
@ -139,9 +142,12 @@
|
||||
/* Define to 1 if the system has the type `_Bool'. */
|
||||
#undef HAVE__BOOL
|
||||
|
||||
/* Define to the GNU M4 executable name. */
|
||||
/* Define to the m4 executable name. */
|
||||
#undef M4
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
@ -157,12 +163,15 @@
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#undef PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#undef PACKAGE_URL
|
||||
|
||||
/* 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.
|
||||
automatically deduced at runtime.
|
||||
STACK_DIRECTION > 0 => grows toward higher addresses
|
||||
STACK_DIRECTION < 0 => grows toward lower addresses
|
||||
STACK_DIRECTION = 0 => direction of growth unknown */
|
||||
@ -190,7 +199,7 @@
|
||||
/* Define to rpl_realloc if the replacement function should be used. */
|
||||
#undef realloc
|
||||
|
||||
/* Define to `unsigned' if <sys/types.h> does not define. */
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||
#undef size_t
|
||||
|
||||
/* Define as `fork' if `vfork' does not work. */
|
||||
|
191
config.guess
vendored
191
config.guess
vendored
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2005-08-03'
|
||||
timestamp='2009-06-10'
|
||||
|
||||
# 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
|
||||
@ -55,8 +56,8 @@ version="\
|
||||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -106,7 +107,7 @@ set_cc_for_build='
|
||||
trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
|
||||
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" ; } ||
|
||||
{ tmp=`(umask 077 && mktemp -d "$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 ; } ;
|
||||
@ -160,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
arm*) machine=arm-unknown ;;
|
||||
sh3el) machine=shl-unknown ;;
|
||||
sh3eb) machine=sh-unknown ;;
|
||||
sh5el) machine=sh5le-unknown ;;
|
||||
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
|
||||
esac
|
||||
# The Operating System including object format, if it has switched
|
||||
@ -168,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||
eval $set_cc_for_build
|
||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep __ELF__ >/dev/null
|
||||
| grep -q __ELF__
|
||||
then
|
||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||
# Return netbsd for either. FIX?
|
||||
@ -206,8 +208,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:SolidBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
macppc:MirBSD:*:*)
|
||||
echo powerppc-unknown-mirbsd${UNAME_RELEASE}
|
||||
echo powerpc-unknown-mirbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:MirBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
|
||||
@ -319,14 +324,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||
case `/usr/bin/uname -p` in
|
||||
sparc) echo sparc-icl-nx7; exit ;;
|
||||
esac ;;
|
||||
s390x:SunOS:*:*)
|
||||
echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4H:SunOS:5.*:*)
|
||||
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
i86pc:SunOS:5.*:*)
|
||||
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||
eval $set_cc_for_build
|
||||
SUN_ARCH="i386"
|
||||
# If there is a compiler, see if it is configured for 64-bit objects.
|
||||
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
||||
# This test works for both compilers.
|
||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
SUN_ARCH="x86_64"
|
||||
fi
|
||||
fi
|
||||
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
exit ;;
|
||||
sun4*:SunOS:6*:*)
|
||||
# According to config.sub, this is the proper way to canonicalize
|
||||
@ -527,7 +548,7 @@ EOF
|
||||
echo rs6000-ibm-aix3.2
|
||||
fi
|
||||
exit ;;
|
||||
*:AIX:*:[45])
|
||||
*:AIX:*:[456])
|
||||
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
|
||||
IBM_ARCH=rs6000
|
||||
@ -635,7 +656,7 @@ EOF
|
||||
# => hppa64-hp-hpux11.23
|
||||
|
||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||
grep __LP64__ >/dev/null
|
||||
grep -q __LP64__
|
||||
then
|
||||
HP_ARCH="hppa2.0w"
|
||||
else
|
||||
@ -764,12 +785,19 @@ EOF
|
||||
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:FreeBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
|
||||
case ${UNAME_MACHINE} in
|
||||
pc98)
|
||||
echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
amd64)
|
||||
echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
*)
|
||||
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
|
||||
esac
|
||||
exit ;;
|
||||
i*:CYGWIN*:*)
|
||||
echo ${UNAME_MACHINE}-pc-cygwin
|
||||
exit ;;
|
||||
i*:MINGW*:*)
|
||||
*:MINGW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-mingw32
|
||||
exit ;;
|
||||
i*:windows32*:*)
|
||||
@ -779,12 +807,24 @@ EOF
|
||||
i*:PW*:*)
|
||||
echo ${UNAME_MACHINE}-pc-pw32
|
||||
exit ;;
|
||||
x86:Interix*:[34]*)
|
||||
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
|
||||
exit ;;
|
||||
*:Interix*:[3456]*)
|
||||
case ${UNAME_MACHINE} in
|
||||
x86)
|
||||
echo i586-pc-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
EM64T | authenticamd | genuineintel)
|
||||
echo x86_64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
IA64)
|
||||
echo ia64-unknown-interix${UNAME_RELEASE}
|
||||
exit ;;
|
||||
esac ;;
|
||||
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
|
||||
echo i${UNAME_MACHINE}-pc-mks
|
||||
exit ;;
|
||||
8664:Windows_NT:*)
|
||||
echo x86_64-pc-mks
|
||||
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
|
||||
@ -815,6 +855,16 @@ EOF
|
||||
echo ${UNAME_MACHINE}-pc-minix
|
||||
exit ;;
|
||||
arm*:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||
| grep -q __ARM_EABI__
|
||||
then
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
else
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnueabi
|
||||
fi
|
||||
exit ;;
|
||||
avr32*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
cris:Linux:*:*)
|
||||
@ -835,42 +885,27 @@ EOF
|
||||
m68*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
mips:Linux:*:*)
|
||||
mips:Linux:*:* | mips64:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips
|
||||
#undef mipsel
|
||||
#undef ${UNAME_MACHINE}
|
||||
#undef ${UNAME_MACHINE}el
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mipsel
|
||||
CPU=${UNAME_MACHINE}el
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips
|
||||
CPU=${UNAME_MACHINE}
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
mips64:Linux:*:*)
|
||||
eval $set_cc_for_build
|
||||
sed 's/^ //' << EOF >$dummy.c
|
||||
#undef CPU
|
||||
#undef mips64
|
||||
#undef mips64el
|
||||
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||
CPU=mips64el
|
||||
#else
|
||||
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||
CPU=mips64
|
||||
#else
|
||||
CPU=
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^CPU/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
|
||||
;;
|
||||
or32:Linux:*:*)
|
||||
@ -892,10 +927,13 @@ EOF
|
||||
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
|
||||
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||
exit ;;
|
||||
padre:Linux:*:*)
|
||||
echo sparc-unknown-linux-gnu
|
||||
exit ;;
|
||||
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||
# Look for CPU level
|
||||
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||
@ -919,9 +957,15 @@ EOF
|
||||
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
exit ;;
|
||||
vax:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-dec-linux-gnu
|
||||
exit ;;
|
||||
x86_64:Linux:*:*)
|
||||
echo x86_64-unknown-linux-gnu
|
||||
exit ;;
|
||||
xtensa*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||
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
|
||||
@ -937,17 +981,6 @@ EOF
|
||||
elf32-i386)
|
||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||
;;
|
||||
a.out-i386-linux)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
||||
exit ;;
|
||||
coff-i386)
|
||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||
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 ;;
|
||||
esac
|
||||
# Determine whether the default compiler is a.out or elf
|
||||
eval $set_cc_for_build
|
||||
@ -964,7 +997,7 @@ EOF
|
||||
LIBC=gnulibc1
|
||||
# endif
|
||||
#else
|
||||
#ifdef __INTEL_COMPILER
|
||||
#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
|
||||
LIBC=gnu
|
||||
#else
|
||||
LIBC=gnuaout
|
||||
@ -974,7 +1007,11 @@ EOF
|
||||
LIBC=dietlibc
|
||||
#endif
|
||||
EOF
|
||||
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
|
||||
eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
|
||||
/^LIBC/{
|
||||
s: ::g
|
||||
p
|
||||
}'`"
|
||||
test x"${LIBC}" != x && {
|
||||
echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
|
||||
exit
|
||||
@ -1009,7 +1046,7 @@ EOF
|
||||
i*86:syllable:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-syllable
|
||||
exit ;;
|
||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
|
||||
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
||||
echo i386-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
i*86:*DOS:*:*)
|
||||
@ -1053,8 +1090,11 @@ EOF
|
||||
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
|
||||
# the processor, so we play safe by assuming i586.
|
||||
# Note: whatever this is, it MUST be the same as what config.sub
|
||||
# prints for the "djgpp" host, or else GDB configury will decide that
|
||||
# this is a cross-build.
|
||||
echo i586-pc-msdosdjgpp
|
||||
exit ;;
|
||||
Intel:Mach:3*:*)
|
||||
echo i386-pc-mach3
|
||||
@ -1092,6 +1132,16 @@ EOF
|
||||
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
||||
OS_REL='.3'
|
||||
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; }
|
||||
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; }
|
||||
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
||||
&& { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
|
||||
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||
echo m68k-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1104,7 +1154,7 @@ EOF
|
||||
rs6000:LynxOS:2.*:*)
|
||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
|
||||
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
||||
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SM[BE]S:UNIX_SV:*:*)
|
||||
@ -1167,6 +1217,9 @@ EOF
|
||||
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
||||
echo i586-pc-beos
|
||||
exit ;;
|
||||
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||
echo i586-pc-haiku
|
||||
exit ;;
|
||||
SX-4:SUPER-UX:*:*)
|
||||
echo sx4-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1176,6 +1229,15 @@ EOF
|
||||
SX-6:SUPER-UX:*:*)
|
||||
echo sx6-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-7:SUPER-UX:*:*)
|
||||
echo sx7-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-8:SUPER-UX:*:*)
|
||||
echo sx8-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-8R:SUPER-UX:*:*)
|
||||
echo sx8r-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
Power*:Rhapsody:*:*)
|
||||
echo powerpc-apple-rhapsody${UNAME_RELEASE}
|
||||
exit ;;
|
||||
@ -1185,7 +1247,6 @@ EOF
|
||||
*:Darwin:*:*)
|
||||
UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
|
||||
case $UNAME_PROCESSOR in
|
||||
*86) UNAME_PROCESSOR=i686 ;;
|
||||
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||
esac
|
||||
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
|
||||
@ -1264,6 +1325,12 @@ EOF
|
||||
i*86:skyos:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
|
||||
exit ;;
|
||||
i*86:rdos:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-rdos
|
||||
exit ;;
|
||||
i*86:AROS:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-aros
|
||||
exit ;;
|
||||
esac
|
||||
|
||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||
@ -1424,9 +1491,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
|
||||
|
||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||
and
|
||||
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
|
||||
If the version you run ($0) is already up to date, please
|
||||
send the following data and any information you think might be
|
||||
|
210
config.sub
vendored
210
config.sub
vendored
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2005-07-08'
|
||||
timestamp='2009-06-11'
|
||||
|
||||
# This file is (in principle) common to ALL GNU software.
|
||||
# The presence of a machine in this file suggests that SOME GNU software
|
||||
@ -71,8 +72,8 @@ 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, 2002, 2003, 2004, 2005
|
||||
Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
@ -119,8 +120,10 @@ 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* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
|
||||
kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
|
||||
uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
|
||||
kopensolaris*-gnu* | \
|
||||
storm-chaos* | os2-emx* | rtmk-nova*)
|
||||
os=-$maybe_os
|
||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||
;;
|
||||
@ -150,6 +153,9 @@ case $os in
|
||||
os=
|
||||
basic_machine=$1
|
||||
;;
|
||||
-bluegene*)
|
||||
os=-cnk
|
||||
;;
|
||||
-sim | -cisco | -oki | -wec | -winbond)
|
||||
os=
|
||||
basic_machine=$1
|
||||
@ -171,6 +177,10 @@ case $os in
|
||||
-hiux*)
|
||||
os=-hiuxwe2
|
||||
;;
|
||||
-sco6)
|
||||
os=-sco5v6
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5)
|
||||
os=-sco3.2v5
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
@ -187,6 +197,10 @@ case $os in
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco5v6*)
|
||||
# Don't forget version if it is 3.2v4 or newer.
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
;;
|
||||
-sco*)
|
||||
os=-sco3.2v2
|
||||
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
|
||||
@ -231,20 +245,24 @@ case $basic_machine in
|
||||
| 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 \
|
||||
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
|
||||
| bfin \
|
||||
| c4x | clipper \
|
||||
| d10v | d30v | dlx | dsp16xx \
|
||||
| fr30 | frv \
|
||||
| fido | fr30 | frv \
|
||||
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||
| i370 | i860 | i960 | ia64 \
|
||||
| ip2k | iq2000 \
|
||||
| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
|
||||
| lm32 \
|
||||
| m32c | m32r | m32rle | m68000 | m68k | m88k \
|
||||
| maxq | mb | microblaze | mcore | mep | metag \
|
||||
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||
| mips16 \
|
||||
| mips64 | mips64el \
|
||||
| mips64vr | mips64vrel \
|
||||
| mips64octeon | mips64octeonel \
|
||||
| mips64orion | mips64orionel \
|
||||
| mips64r5900 | mips64r5900el \
|
||||
| mips64vr | mips64vrel \
|
||||
| mips64vr4100 | mips64vr4100el \
|
||||
| mips64vr4300 | mips64vr4300el \
|
||||
| mips64vr5000 | mips64vr5000el \
|
||||
@ -257,26 +275,26 @@ case $basic_machine in
|
||||
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||
| mipstx39 | mipstx39el \
|
||||
| mn10200 | mn10300 \
|
||||
| ms1 \
|
||||
| moxie \
|
||||
| mt \
|
||||
| msp430 \
|
||||
| nios | nios2 \
|
||||
| ns16k | ns32k \
|
||||
| or32 \
|
||||
| pdp10 | pdp11 | pj | pjl \
|
||||
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
|
||||
| pyramid \
|
||||
| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| score \
|
||||
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
|
||||
| sh64 | sh64le \
|
||||
| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b \
|
||||
| strongarm \
|
||||
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
|
||||
| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
|
||||
| spu | strongarm \
|
||||
| tahoe | thumb | tic4x | tic80 | tron \
|
||||
| v850 | v850e \
|
||||
| we32k \
|
||||
| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||
| z8k)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
m32c)
|
||||
| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
|
||||
| z8k | z80)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
m6811 | m68hc11 | m6812 | m68hc12)
|
||||
@ -286,6 +304,9 @@ case $basic_machine in
|
||||
;;
|
||||
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
|
||||
;;
|
||||
ms1)
|
||||
basic_machine=mt-unknown
|
||||
;;
|
||||
|
||||
# We use `pc' rather than `unknown'
|
||||
# because (1) that's what they normally are, and
|
||||
@ -305,25 +326,28 @@ case $basic_machine in
|
||||
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
|
||||
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
|
||||
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
|
||||
| avr-* \
|
||||
| avr-* | avr32-* \
|
||||
| bfin-* | bs2000-* \
|
||||
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
|
||||
| clipper-* | craynv-* | cydra-* \
|
||||
| d10v-* | d30v-* | dlx-* \
|
||||
| elxsi-* \
|
||||
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
|
||||
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
|
||||
| h8300-* | h8500-* \
|
||||
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
|
||||
| i*86-* | i860-* | i960-* | ia64-* \
|
||||
| ip2k-* | iq2000-* \
|
||||
| m32r-* | m32rle-* \
|
||||
| lm32-* \
|
||||
| m32c-* | m32r-* | m32rle-* \
|
||||
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* \
|
||||
| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
|
||||
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
|
||||
| mips16-* \
|
||||
| mips64-* | mips64el-* \
|
||||
| mips64vr-* | mips64vrel-* \
|
||||
| mips64octeon-* | mips64octeonel-* \
|
||||
| mips64orion-* | mips64orionel-* \
|
||||
| mips64r5900-* | mips64r5900el-* \
|
||||
| mips64vr-* | mips64vrel-* \
|
||||
| mips64vr4100-* | mips64vr4100el-* \
|
||||
| mips64vr4300-* | mips64vr4300el-* \
|
||||
| mips64vr5000-* | mips64vr5000el-* \
|
||||
@ -336,30 +360,33 @@ case $basic_machine in
|
||||
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
|
||||
| mipstx39-* | mipstx39el-* \
|
||||
| mmix-* \
|
||||
| ms1-* \
|
||||
| mt-* \
|
||||
| msp430-* \
|
||||
| nios-* | nios2-* \
|
||||
| none-* | np1-* | ns16k-* | ns32k-* \
|
||||
| orion-* \
|
||||
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
|
||||
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
|
||||
| pyramid-* \
|
||||
| romp-* | rs6000-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
|
||||
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
|
||||
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
|
||||
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
|
||||
| sparclite-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
|
||||
| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
|
||||
| tahoe-* | thumb-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
|
||||
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
|
||||
| tron-* \
|
||||
| v850-* | v850e-* | vax-* \
|
||||
| we32k-* \
|
||||
| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||
| xstormy16-* | xtensa-* \
|
||||
| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
|
||||
| xstormy16-* | xtensa*-* \
|
||||
| ymp-* \
|
||||
| z8k-*)
|
||||
| z8k-* | z80-*)
|
||||
;;
|
||||
m32c-*)
|
||||
# Recognize the basic CPU types without company name, with glob match.
|
||||
xtensa*)
|
||||
basic_machine=$basic_machine-unknown
|
||||
;;
|
||||
# Recognize the various machine names and aliases which stand
|
||||
# for a CPU type and a company and sometimes even an OS.
|
||||
@ -423,6 +450,10 @@ case $basic_machine in
|
||||
basic_machine=m68k-apollo
|
||||
os=-bsd
|
||||
;;
|
||||
aros)
|
||||
basic_machine=i386-pc
|
||||
os=-aros
|
||||
;;
|
||||
aux)
|
||||
basic_machine=m68k-apple
|
||||
os=-aux
|
||||
@ -431,10 +462,26 @@ case $basic_machine in
|
||||
basic_machine=ns32k-sequent
|
||||
os=-dynix
|
||||
;;
|
||||
blackfin)
|
||||
basic_machine=bfin-unknown
|
||||
os=-linux
|
||||
;;
|
||||
blackfin-*)
|
||||
basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
bluegene*)
|
||||
basic_machine=powerpc-ibm
|
||||
os=-cnk
|
||||
;;
|
||||
c90)
|
||||
basic_machine=c90-cray
|
||||
os=-unicos
|
||||
;;
|
||||
cegcc)
|
||||
basic_machine=arm-unknown
|
||||
os=-cegcc
|
||||
;;
|
||||
convex-c1)
|
||||
basic_machine=c1-convex
|
||||
os=-bsd
|
||||
@ -463,8 +510,8 @@ case $basic_machine in
|
||||
basic_machine=craynv-cray
|
||||
os=-unicosmp
|
||||
;;
|
||||
cr16c)
|
||||
basic_machine=cr16c-unknown
|
||||
cr16)
|
||||
basic_machine=cr16-unknown
|
||||
os=-elf
|
||||
;;
|
||||
crds | unos)
|
||||
@ -502,6 +549,10 @@ case $basic_machine in
|
||||
basic_machine=m88k-motorola
|
||||
os=-sysv3
|
||||
;;
|
||||
dicos)
|
||||
basic_machine=i686-pc
|
||||
os=-dicos
|
||||
;;
|
||||
djgpp)
|
||||
basic_machine=i586-pc
|
||||
os=-msdosdjgpp
|
||||
@ -656,6 +707,14 @@ case $basic_machine in
|
||||
basic_machine=m68k-isi
|
||||
os=-sysv
|
||||
;;
|
||||
m68knommu)
|
||||
basic_machine=m68k-unknown
|
||||
os=-linux
|
||||
;;
|
||||
m68knommu-*)
|
||||
basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
m88k-omron*)
|
||||
basic_machine=m88k-omron
|
||||
;;
|
||||
@ -671,6 +730,10 @@ case $basic_machine in
|
||||
basic_machine=i386-pc
|
||||
os=-mingw32
|
||||
;;
|
||||
mingw32ce)
|
||||
basic_machine=arm-unknown
|
||||
os=-mingw32ce
|
||||
;;
|
||||
miniframe)
|
||||
basic_machine=m68000-convergent
|
||||
;;
|
||||
@ -696,6 +759,9 @@ case $basic_machine in
|
||||
basic_machine=i386-pc
|
||||
os=-msdos
|
||||
;;
|
||||
ms1-*)
|
||||
basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
|
||||
;;
|
||||
mvs)
|
||||
basic_machine=i370-ibm
|
||||
os=-mvs
|
||||
@ -794,6 +860,14 @@ case $basic_machine in
|
||||
basic_machine=i860-intel
|
||||
os=-osf
|
||||
;;
|
||||
parisc)
|
||||
basic_machine=hppa-unknown
|
||||
os=-linux
|
||||
;;
|
||||
parisc-*)
|
||||
basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
os=-linux
|
||||
;;
|
||||
pbd)
|
||||
basic_machine=sparc-tti
|
||||
;;
|
||||
@ -803,6 +877,12 @@ case $basic_machine in
|
||||
pc532 | pc532-*)
|
||||
basic_machine=ns32k-pc532
|
||||
;;
|
||||
pc98)
|
||||
basic_machine=i386-pc
|
||||
;;
|
||||
pc98-*)
|
||||
basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||
;;
|
||||
pentium | p5 | k5 | k6 | nexgen | viac3)
|
||||
basic_machine=i586-pc
|
||||
;;
|
||||
@ -859,6 +939,10 @@ case $basic_machine in
|
||||
basic_machine=i586-unknown
|
||||
os=-pw32
|
||||
;;
|
||||
rdos)
|
||||
basic_machine=i386-pc
|
||||
os=-rdos
|
||||
;;
|
||||
rom68k)
|
||||
basic_machine=m68k-rom68k
|
||||
os=-coff
|
||||
@ -885,6 +969,10 @@ case $basic_machine in
|
||||
sb1el)
|
||||
basic_machine=mipsisa64sb1el-unknown
|
||||
;;
|
||||
sde)
|
||||
basic_machine=mipsisa32-sde
|
||||
os=-elf
|
||||
;;
|
||||
sei)
|
||||
basic_machine=mips-sei
|
||||
os=-seiux
|
||||
@ -896,6 +984,9 @@ case $basic_machine in
|
||||
basic_machine=sh-hitachi
|
||||
os=-hms
|
||||
;;
|
||||
sh5el)
|
||||
basic_machine=sh5le-unknown
|
||||
;;
|
||||
sh64)
|
||||
basic_machine=sh64-unknown
|
||||
;;
|
||||
@ -985,6 +1076,10 @@ case $basic_machine in
|
||||
basic_machine=tic6x-unknown
|
||||
os=-coff
|
||||
;;
|
||||
tile*)
|
||||
basic_machine=tile-unknown
|
||||
os=-linux-gnu
|
||||
;;
|
||||
tx39)
|
||||
basic_machine=mipstx39-unknown
|
||||
;;
|
||||
@ -1060,6 +1155,10 @@ case $basic_machine in
|
||||
basic_machine=z8k-unknown
|
||||
os=-sim
|
||||
;;
|
||||
z80-*-coff)
|
||||
basic_machine=z80-unknown
|
||||
os=-sim
|
||||
;;
|
||||
none)
|
||||
basic_machine=none-none
|
||||
os=-none
|
||||
@ -1098,10 +1197,10 @@ case $basic_machine in
|
||||
we32k)
|
||||
basic_machine=we32k-att
|
||||
;;
|
||||
sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
|
||||
basic_machine=sh-unknown
|
||||
;;
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b)
|
||||
sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
|
||||
basic_machine=sparc-sun
|
||||
;;
|
||||
cydra)
|
||||
@ -1168,27 +1267,30 @@ case $os in
|
||||
# Each alternative MUST END IN A *, to match a version number.
|
||||
# -sysv* is not here because it comes later, after sysvr4.
|
||||
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
|
||||
| -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
|
||||
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
|
||||
| -kopensolaris* \
|
||||
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
|
||||
| -aos* \
|
||||
| -aos* | -aros* \
|
||||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -openbsd* | -solidbsd* \
|
||||
| -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* \
|
||||
| -chorusos* | -chorusrdb* | -cegcc* \
|
||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||
| -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
|
||||
| -mingw32* | -linux-gnu* | -linux-newlib* | -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* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku*)
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
@ -1318,6 +1420,9 @@ case $os in
|
||||
-zvmoe)
|
||||
os=-zvmoe
|
||||
;;
|
||||
-dicos*)
|
||||
os=-dicos
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
@ -1340,6 +1445,12 @@ else
|
||||
# system, and we'll never get to this point.
|
||||
|
||||
case $basic_machine in
|
||||
score-*)
|
||||
os=-elf
|
||||
;;
|
||||
spu-*)
|
||||
os=-elf
|
||||
;;
|
||||
*-acorn)
|
||||
os=-riscix1.2
|
||||
;;
|
||||
@ -1349,9 +1460,9 @@ case $basic_machine in
|
||||
arm*-semi)
|
||||
os=-aout
|
||||
;;
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
c4x-* | tic4x-*)
|
||||
os=-coff
|
||||
;;
|
||||
# This must come before the *-dec entry.
|
||||
pdp10-*)
|
||||
os=-tops20
|
||||
@ -1377,6 +1488,9 @@ case $basic_machine in
|
||||
m68*-cisco)
|
||||
os=-aout
|
||||
;;
|
||||
mep-*)
|
||||
os=-elf
|
||||
;;
|
||||
mips*-cisco)
|
||||
os=-elf
|
||||
;;
|
||||
@ -1506,7 +1620,7 @@ case $basic_machine in
|
||||
-sunos*)
|
||||
vendor=sun
|
||||
;;
|
||||
-aix*)
|
||||
-cnk*|-aix*)
|
||||
vendor=ibm
|
||||
;;
|
||||
-beos*)
|
||||
|
45
configure.in
45
configure.in
@ -24,22 +24,22 @@
|
||||
|
||||
# autoconf requirements and initialization
|
||||
|
||||
AC_PREREQ(2.59)
|
||||
AC_INIT([the fast lexical analyser generator], [2.5.35],
|
||||
AC_INIT([the fast lexical analyser generator], [2.5.37],
|
||||
[flex-help@lists.sourceforge.net], [flex])
|
||||
AC_CONFIG_SRCDIR([scan.l])
|
||||
AM_INIT_AUTOMAKE([gnits dist-bzip2])
|
||||
AM_INIT_AUTOMAKE([gnits dist-bzip2 1.10])
|
||||
AC_CONFIG_HEADER([config.h:conf.in])
|
||||
AC_CONFIG_LIBOBJ_DIR([lib])
|
||||
|
||||
# checks for programs
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION(0.12)
|
||||
|
||||
AC_PROG_YACC
|
||||
AM_PROG_LEX
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AM_PROG_CC_C_O
|
||||
AC_PROG_LN_S
|
||||
AC_PROG_RANLIB
|
||||
AC_PROG_AWK
|
||||
@ -48,22 +48,16 @@ AC_PROG_INSTALL
|
||||
AC_PATH_PROG(BISON, bison,bison)
|
||||
AC_PATH_PROG(HELP2MAN, help2man, help2man)
|
||||
|
||||
# Check for a GNU m4 that supports --prefix-builtins
|
||||
# Check for a m4 that supports -P
|
||||
|
||||
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
|
||||
*prefix-builtins*) AC_MSG_RESULT(yes) ;;
|
||||
*) AC_MSG_RESULT(no) ;
|
||||
AC_MSG_ERROR([GNU M4 1.4 is required]) ;;
|
||||
esac
|
||||
else
|
||||
AC_MSG_ERROR([GNU M4 1.4 is required]) ;
|
||||
fi
|
||||
|
||||
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the GNU M4 executable name.])
|
||||
AC_CACHE_CHECK([for m4 that supports -P], [ac_cv_path_M4],
|
||||
[AC_PATH_PROGS_FEATURE_CHECK([M4], [gm4 gnum4 m4],
|
||||
[[m4out=`echo 'm''4_divnum' | $ac_path_M4 -P`]
|
||||
[test "x$m4out" = x0 \
|
||||
&& ac_cv_path_M4=$ac_path_M4 ac_path_M4_found=:]],
|
||||
[AC_MSG_ERROR([could not find m4 that supports -P])])])
|
||||
AC_SUBST([M4], [$ac_cv_path_M4])
|
||||
AC_DEFINE_UNQUOTED([M4], ["$M4"], [Define to the m4 executable name.])
|
||||
|
||||
AC_PATH_PROG(INDENT, indent, indent)
|
||||
# if INDENT is set to 'indent' then we didn't find indent
|
||||
@ -79,13 +73,13 @@ else
|
||||
AC_MSG_WARN(no indent program found: make indent target will not function)
|
||||
fi
|
||||
|
||||
# checks for libraries
|
||||
# checks for headers
|
||||
|
||||
AC_FUNC_ALLOCA
|
||||
AC_HEADER_STDC
|
||||
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)
|
||||
AC_CHECK_HEADERS([inttypes.h libintl.h limits.h locale.h malloc.h netinet/in.h regex.h stddef.h stdlib.h string.h strings.h unistd.h])
|
||||
|
||||
# checks for libraries
|
||||
|
||||
# The test test-pthread uses libpthread, so we check for it here, but
|
||||
# all we need is the preprocessor symbol defined since we don't need
|
||||
@ -97,6 +91,8 @@ AC_DEFINE([HAVE_LIBPTHREAD], 0, [pthread library] )
|
||||
)
|
||||
AC_CHECK_HEADERS([pthread.h])
|
||||
|
||||
AC_CHECK_LIB(m, log10)
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
|
||||
AC_HEADER_STDBOOL
|
||||
@ -105,6 +101,7 @@ AC_TYPE_SIZE_T
|
||||
|
||||
# Checks for library functions.
|
||||
|
||||
AC_FUNC_ALLOCA
|
||||
AC_FUNC_FORK
|
||||
AC_FUNC_MALLOC
|
||||
AC_FUNC_REALLOC
|
||||
@ -116,7 +113,7 @@ doc/Makefile
|
||||
examples/Makefile
|
||||
examples/fastwc/Makefile
|
||||
examples/manual/Makefile
|
||||
m4/Makefile
|
||||
lib/Makefile
|
||||
po/Makefile.in
|
||||
tools/Makefile
|
||||
tests/Makefile
|
||||
|
172
depcomp
172
depcomp
@ -1,9 +1,10 @@
|
||||
#! /bin/sh
|
||||
# depcomp - compile a program generating dependencies as side-effects
|
||||
|
||||
scriptversion=2005-07-09.11
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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
|
||||
@ -16,9 +17,7 @@ scriptversion=2005-07-09.11
|
||||
# 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.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -86,12 +85,34 @@ if test "$depmode" = dashXmstdout; then
|
||||
depmode=dashmstdout
|
||||
fi
|
||||
|
||||
cygpath_u="cygpath -u -f -"
|
||||
if test "$depmode" = msvcmsys; then
|
||||
# This is just like msvisualcpp but w/o cygpath translation.
|
||||
# Just convert the backslash-escaped backslashes to single forward
|
||||
# slashes to satisfy depend.m4
|
||||
cygpath_u="sed s,\\\\\\\\,/,g"
|
||||
depmode=msvisualcpp
|
||||
fi
|
||||
|
||||
case "$depmode" in
|
||||
gcc3)
|
||||
## gcc 3 implements dependency tracking that does exactly what
|
||||
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||
"$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
|
||||
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||
## the command line argument order; so add the flags where they
|
||||
## appear in depend2.am. Note that the slowdown incurred here
|
||||
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||
for arg
|
||||
do
|
||||
case $arg in
|
||||
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||
*) set fnord "$@" "$arg" ;;
|
||||
esac
|
||||
shift # fnord
|
||||
shift # $arg
|
||||
done
|
||||
"$@"
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
@ -178,14 +199,14 @@ sgi)
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
|
||||
tr '
|
||||
' ' ' >> $depfile
|
||||
echo >> $depfile
|
||||
' ' ' >> "$depfile"
|
||||
echo >> "$depfile"
|
||||
|
||||
# The second pass generates a dummy entry for each header file.
|
||||
tr ' ' '
|
||||
' < "$tmpdepfile" \
|
||||
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||
>> $depfile
|
||||
>> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
@ -201,34 +222,39 @@ aix)
|
||||
# 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"
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$base.u
|
||||
tmpdepfile3=$dir.libs/$base.u
|
||||
"$@" -Wc,-M
|
||||
else
|
||||
tmpdepfile1=$dir$base.u
|
||||
tmpdepfile2=$dir$base.u
|
||||
tmpdepfile3=$dir$base.u
|
||||
"$@" -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"
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
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:'.
|
||||
sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
|
||||
sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
||||
# That's a tab and a space in the [].
|
||||
sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
# The sourcefile does not contain any dependencies, so just
|
||||
# store a dummy comment line, to avoid errors with the Makefile
|
||||
@ -276,6 +302,51 @@ icc)
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
hp2)
|
||||
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||
# compilers, which have integrated preprocessors. The correct option
|
||||
# to use with these is +Maked; it writes dependencies to a file named
|
||||
# 'foo.d', which lands next to the object file, wherever that
|
||||
# happens to be.
|
||||
# Much of this is similar to the tru64 case; see comments there.
|
||||
dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
|
||||
test "x$dir" = "x$object" && dir=
|
||||
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
||||
if test "$libtool" = yes; then
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir.libs/$base.d
|
||||
"$@" -Wc,+Maked
|
||||
else
|
||||
tmpdepfile1=$dir$base.d
|
||||
tmpdepfile2=$dir$base.d
|
||||
"$@" +Maked
|
||||
fi
|
||||
stat=$?
|
||||
if test $stat -eq 0; then :
|
||||
else
|
||||
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||
exit $stat
|
||||
fi
|
||||
|
||||
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||
do
|
||||
test -f "$tmpdepfile" && break
|
||||
done
|
||||
if test -f "$tmpdepfile"; then
|
||||
sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||
# Add `dependent.h:' lines.
|
||||
sed -ne '2,${
|
||||
s/^ *//
|
||||
s/ \\*$//
|
||||
s/$/:/
|
||||
p
|
||||
}' "$tmpdepfile" >> "$depfile"
|
||||
else
|
||||
echo "#dummy" > "$depfile"
|
||||
fi
|
||||
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||
;;
|
||||
|
||||
tru64)
|
||||
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
|
||||
@ -288,13 +359,13 @@ tru64)
|
||||
|
||||
if test "$libtool" = yes; then
|
||||
# With Tru64 cc, shared objects can also be used to make a
|
||||
# static library. This mecanism is used in libtool 1.4 series to
|
||||
# static library. This mechanism 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
|
||||
# compilations output dependencies 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
|
||||
@ -345,7 +416,7 @@ dashmstdout)
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
@ -396,32 +467,39 @@ makedepend)
|
||||
"$@" || exit $?
|
||||
# Remove any Libtool call
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
# X makedepend
|
||||
shift
|
||||
cleared=no
|
||||
for arg in "$@"; do
|
||||
cleared=no eat=no
|
||||
for arg
|
||||
do
|
||||
case $cleared in
|
||||
no)
|
||||
set ""; shift
|
||||
cleared=yes ;;
|
||||
esac
|
||||
if test $eat = yes; then
|
||||
eat=no
|
||||
continue
|
||||
fi
|
||||
case "$arg" in
|
||||
-D*|-I*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
# Strip any option that makedepend may not understand. Remove
|
||||
# the object too, otherwise makedepend will parse it as a source file.
|
||||
-arch)
|
||||
eat=yes ;;
|
||||
-*|$object)
|
||||
;;
|
||||
*)
|
||||
set fnord "$@" "$arg"; shift ;;
|
||||
esac
|
||||
done
|
||||
obj_suffix="`echo $object | sed 's/^.*\././'`"
|
||||
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||
touch "$tmpdepfile"
|
||||
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||
rm -f "$depfile"
|
||||
@ -441,7 +519,7 @@ cpp)
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test $1 != '--mode=compile'; do
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
@ -479,13 +557,27 @@ cpp)
|
||||
|
||||
msvisualcpp)
|
||||
# Important note: in order to support this mode, a compiler *must*
|
||||
# always write the preprocessed file to stdout, regardless of -o,
|
||||
# because we must use -o when running libtool.
|
||||
# always write the preprocessed file to stdout.
|
||||
"$@" || exit $?
|
||||
|
||||
# Remove the call to Libtool.
|
||||
if test "$libtool" = yes; then
|
||||
while test "X$1" != 'X--mode=compile'; do
|
||||
shift
|
||||
done
|
||||
shift
|
||||
fi
|
||||
|
||||
IFS=" "
|
||||
for arg
|
||||
do
|
||||
case "$arg" in
|
||||
-o)
|
||||
shift
|
||||
;;
|
||||
$object)
|
||||
shift
|
||||
;;
|
||||
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||
set fnord "$@"
|
||||
shift
|
||||
@ -498,16 +590,23 @@ msvisualcpp)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
"$@" -E |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
|
||||
"$@" -E 2>/dev/null |
|
||||
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||
rm -f "$depfile"
|
||||
echo "$object : \\" > "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
|
||||
echo " " >> "$depfile"
|
||||
. "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||
rm -f "$tmpdepfile"
|
||||
;;
|
||||
|
||||
msvcmsys)
|
||||
# This case exists only to let depend.m4 do its work. It works by
|
||||
# looking at the text of this script. This case will never be run,
|
||||
# since it is checked for above.
|
||||
exit 1
|
||||
;;
|
||||
|
||||
none)
|
||||
exec "$@"
|
||||
;;
|
||||
@ -526,5 +625,6 @@ exit 0
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
13
dfa.c
13
dfa.c
@ -161,7 +161,7 @@ void dump_associated_rules (file, ds)
|
||||
}
|
||||
}
|
||||
|
||||
bubble (rule_set, num_associated_rules);
|
||||
qsort (&rule_set [1], num_associated_rules, sizeof (rule_set [1]), intcmp);
|
||||
|
||||
fprintf (file, _(" associated rule line numbers:"));
|
||||
|
||||
@ -835,10 +835,8 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
|
||||
if (!didsort) {
|
||||
/* We sort the states in sns so we
|
||||
* can compare it to oldsns quickly.
|
||||
* We use bubble because there probably
|
||||
* aren't very many states.
|
||||
*/
|
||||
bubble (sns, numstates);
|
||||
qsort (&sns [1], numstates, sizeof (sns [1]), intcmp);
|
||||
didsort = 1;
|
||||
}
|
||||
|
||||
@ -873,7 +871,7 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
|
||||
*/
|
||||
|
||||
if (!didsort)
|
||||
bubble (sns, numstates);
|
||||
qsort (&sns [1], numstates, sizeof (sns [1]), intcmp);
|
||||
|
||||
for (i = 1; i <= numstates; ++i)
|
||||
dss[newds][i] = sns[i];
|
||||
@ -893,11 +891,10 @@ int snstods (sns, numstates, accset, nacc, hashval, newds_addr)
|
||||
else if (reject) {
|
||||
/* We sort the accepting set in increasing order so the
|
||||
* disambiguating rule that the first rule listed is considered
|
||||
* match in the event of ties will work. We use a bubble
|
||||
* sort since the list is probably quite small.
|
||||
* match in the event of ties will work.
|
||||
*/
|
||||
|
||||
bubble (accset, nacc);
|
||||
qsort (&accset [1], nacc, sizeof (accset [1]), intcmp);
|
||||
|
||||
dfaacc[newds].dfaacc_set =
|
||||
allocate_integer_array (nacc + 1);
|
||||
|
@ -1,16 +0,0 @@
|
||||
help2man = @HELP2MAN@
|
||||
|
||||
info_TEXINFOS = flex.texi
|
||||
dist_man_MANS = flex.1
|
||||
EXTRA_DIST = flex.pdf
|
||||
|
||||
CLEANFILES = \
|
||||
flex.hks \
|
||||
flex.ops
|
||||
|
||||
$(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
|
560
doc/Makefile.in
560
doc/Makefile.in
@ -1,560 +0,0 @@
|
||||
# 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@
|
||||
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 = 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@
|
||||
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@
|
||||
help2man = @HELP2MAN@
|
||||
info_TEXINFOS = flex.texi
|
||||
dist_man_MANS = flex.1
|
||||
EXTRA_DIST = flex.pdf
|
||||
CLEANFILES = \
|
||||
flex.hks \
|
||||
flex.ops
|
||||
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.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) --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:
|
||||
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) $<
|
||||
|
||||
.texi.pdf:
|
||||
TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
|
||||
MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
|
||||
$(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 $(srcdir)/version.texi \
|
||||
|| (echo "Updating $(srcdir)/version.texi"; \
|
||||
cp vti.tmp $(srcdir)/version.texi)
|
||||
-@rm -f vti.tmp
|
||||
@cp $(srcdir)/version.texi $@
|
||||
|
||||
mostlyclean-vti:
|
||||
-rm -f vti.tmp
|
||||
|
||||
maintainer-clean-vti:
|
||||
-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)
|
||||
@if (install-info --version && \
|
||||
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"; \
|
||||
done; \
|
||||
else :; fi
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(INFO_DEPS)'; \
|
||||
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 " 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/\(.*\)"`; \
|
||||
test -f $(distdir)/$$relfile || \
|
||||
cp -p $$file $(distdir)/$$relfile; \
|
||||
done; \
|
||||
done
|
||||
|
||||
mostlyclean-aminfo:
|
||||
-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.html
|
||||
|
||||
maintainer-clean-aminfo:
|
||||
@list='$(INFO_DEPS)'; for i in $$list; do \
|
||||
i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
|
||||
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
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
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 \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
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"; \
|
||||
done
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
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"; \
|
||||
done
|
||||
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
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-info
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(INFO_DEPS) $(MANS)
|
||||
installdirs:
|
||||
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
|
||||
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: $(DVIS)
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am: $(HTMLS)
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am: $(INFO_DEPS)
|
||||
|
||||
install-data-am: install-info-am install-man
|
||||
|
||||
install-exec-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am: $(INFO_DEPS)
|
||||
@$(NORMAL_INSTALL)
|
||||
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"; \
|
||||
else : ; fi; \
|
||||
done; \
|
||||
done
|
||||
@$(POST_INSTALL)
|
||||
@if (install-info --version && \
|
||||
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" || :;\
|
||||
done; \
|
||||
else : ; fi
|
||||
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
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am: $(PDFS)
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am: $(PSS)
|
||||
|
||||
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 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.
|
||||
.NOEXPORT:
|
165
doc/flex.1
165
doc/flex.1
@ -1,165 +0,0 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36.
|
||||
.TH FLEX "1" "February 2008" "flex 2.5.35" "User Commands"
|
||||
.SH NAME
|
||||
flex \- the fast lexical analyser generator
|
||||
.SH SYNOPSIS
|
||||
.B flex
|
||||
[\fIOPTIONS\fR] [\fIFILE\fR]...
|
||||
.SH DESCRIPTION
|
||||
Generates programs that perform pattern\-matching on text.
|
||||
.SS "Table Compression:"
|
||||
.TP
|
||||
\fB\-Ca\fR, \fB\-\-align\fR
|
||||
trade off larger tables for better memory alignment
|
||||
.TP
|
||||
\fB\-Ce\fR, \fB\-\-ecs\fR
|
||||
construct equivalence classes
|
||||
.TP
|
||||
\fB\-Cf\fR
|
||||
do not compress tables; use \fB\-f\fR representation
|
||||
.TP
|
||||
\fB\-CF\fR
|
||||
do not compress tables; use \fB\-F\fR representation
|
||||
.TP
|
||||
\fB\-Cm\fR, \fB\-\-meta\-ecs\fR
|
||||
construct meta\-equivalence classes
|
||||
.TP
|
||||
\fB\-Cr\fR, \fB\-\-read\fR
|
||||
use read() instead of stdio for scanner input
|
||||
.TP
|
||||
\fB\-f\fR, \fB\-\-full\fR
|
||||
generate fast, large scanner. Same as \fB\-Cfr\fR
|
||||
.TP
|
||||
\fB\-F\fR, \fB\-\-fast\fR
|
||||
use alternate table representation. Same as \fB\-CFr\fR
|
||||
.TP
|
||||
\fB\-Cem\fR
|
||||
default compression (same as \fB\-\-ecs\fR \fB\-\-meta\-ecs\fR)
|
||||
.SS "Debugging:"
|
||||
.TP
|
||||
\fB\-d\fR, \fB\-\-debug\fR
|
||||
enable debug mode in scanner
|
||||
.TP
|
||||
\fB\-b\fR, \fB\-\-backup\fR
|
||||
write backing\-up information to lex.backup
|
||||
.TP
|
||||
\fB\-p\fR, \fB\-\-perf\-report\fR
|
||||
write performance report to stderr
|
||||
.TP
|
||||
\fB\-s\fR, \fB\-\-nodefault\fR
|
||||
suppress default rule to ECHO unmatched text
|
||||
.TP
|
||||
\fB\-T\fR, \fB\-\-trace\fR
|
||||
flex should run in trace mode
|
||||
.TP
|
||||
\fB\-w\fR, \fB\-\-nowarn\fR
|
||||
do not generate warnings
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
write summary of scanner statistics to stdout
|
||||
.SS "Files:"
|
||||
.TP
|
||||
\fB\-o\fR, \fB\-\-outfile\fR=\fIFILE\fR
|
||||
specify output filename
|
||||
.TP
|
||||
\fB\-S\fR, \fB\-\-skel\fR=\fIFILE\fR
|
||||
specify skeleton file
|
||||
.TP
|
||||
\fB\-t\fR, \fB\-\-stdout\fR
|
||||
write scanner on stdout instead of lex.yy.c
|
||||
.TP
|
||||
\fB\-\-yyclass\fR=\fINAME\fR
|
||||
name of C++ class
|
||||
.TP
|
||||
\fB\-\-header\-file\fR=\fIFILE\fR
|
||||
create a C header file in addition to the scanner
|
||||
.HP
|
||||
\fB\-\-tables\-file\fR[=\fIFILE\fR] write tables to FILE
|
||||
.SS "Scanner behavior:"
|
||||
.TP
|
||||
\fB\-7\fR, \fB\-\-7bit\fR
|
||||
generate 7\-bit scanner
|
||||
.TP
|
||||
\fB\-8\fR, \fB\-\-8bit\fR
|
||||
generate 8\-bit scanner
|
||||
.TP
|
||||
\fB\-B\fR, \fB\-\-batch\fR
|
||||
generate batch scanner (opposite of \fB\-I\fR)
|
||||
.TP
|
||||
\fB\-i\fR, \fB\-\-case\-insensitive\fR
|
||||
ignore case in patterns
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-lex\-compat\fR
|
||||
maximal compatibility with original lex
|
||||
.TP
|
||||
\fB\-X\fR, \fB\-\-posix\-compat\fR
|
||||
maximal compatibility with POSIX lex
|
||||
.TP
|
||||
\fB\-I\fR, \fB\-\-interactive\fR
|
||||
generate interactive scanner (opposite of \fB\-B\fR)
|
||||
.TP
|
||||
\fB\-\-yylineno\fR
|
||||
track line count in yylineno
|
||||
.SS "Generated code:"
|
||||
.TP
|
||||
\-+, \fB\-\-c\fR++
|
||||
generate C++ scanner class
|
||||
.TP
|
||||
\fB\-Dmacro\fR[=\fIdefn\fR]
|
||||
#define macro defn (default defn is '1')
|
||||
.TP
|
||||
\fB\-L\fR, \fB\-\-noline\fR
|
||||
suppress #line directives in scanner
|
||||
.TP
|
||||
\fB\-P\fR, \fB\-\-prefix\fR=\fISTRING\fR
|
||||
use STRING as prefix instead of "yy"
|
||||
.TP
|
||||
\fB\-R\fR, \fB\-\-reentrant\fR
|
||||
generate a reentrant C scanner
|
||||
.TP
|
||||
\fB\-\-bison\-bridge\fR
|
||||
scanner for bison pure parser.
|
||||
.TP
|
||||
\fB\-\-bison\-locations\fR
|
||||
include yylloc support.
|
||||
.TP
|
||||
\fB\-\-stdinit\fR
|
||||
initialize yyin/yyout to stdin/stdout
|
||||
.HP
|
||||
\fB\-\-noansi\-definitions\fR old\-style function definitions
|
||||
.TP
|
||||
\fB\-\-noansi\-prototypes\fR
|
||||
empty parameter list in prototypes
|
||||
.TP
|
||||
\fB\-\-nounistd\fR
|
||||
do not include <unistd.h>
|
||||
.TP
|
||||
\fB\-\-noFUNCTION\fR
|
||||
do not generate a particular FUNCTION
|
||||
.SS "Miscellaneous:"
|
||||
.TP
|
||||
\fB\-c\fR
|
||||
do\-nothing POSIX option
|
||||
.TP
|
||||
\fB\-n\fR
|
||||
do\-nothing POSIX option
|
||||
.HP
|
||||
\-?
|
||||
.TP
|
||||
\fB\-h\fR, \fB\-\-help\fR
|
||||
produce this help message
|
||||
.TP
|
||||
\fB\-V\fR, \fB\-\-version\fR
|
||||
report flex version
|
||||
.SH "SEE ALSO"
|
||||
The full documentation for
|
||||
.B flex
|
||||
is maintained as a Texinfo manual. If the
|
||||
.B info
|
||||
and
|
||||
.B flex
|
||||
programs are properly installed at your site, the command
|
||||
.IP
|
||||
.B info flex
|
||||
.PP
|
||||
should give you access to the complete manual.
|
282
doc/flex.info
282
doc/flex.info
@ -1,282 +0,0 @@
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Indirect:
|
||||
flex.info-1: 1620
|
||||
flex.info-2: 287921
|
||||
|
||||
Tag Table:
|
||||
(Indirect)
|
||||
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
|
7683
doc/flex.info-1
7683
doc/flex.info-1
File diff suppressed because it is too large
Load Diff
BIN
doc/flex.info-2
BIN
doc/flex.info-2
Binary file not shown.
201
doc/mdate-sh
201
doc/mdate-sh
@ -1,201 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Get modification time of a file or directory and pretty-print it.
|
||||
|
||||
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
|
||||
# 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 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
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
LC_TIME=C
|
||||
export LC_TIME
|
||||
|
||||
# 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
|
||||
ls_command='ls -L -l -d'
|
||||
else
|
||||
ls_command='ls -l -d'
|
||||
fi
|
||||
|
||||
# A `ls -l' line looks as follows on OS/2.
|
||||
# drwxrwx--- 0 Aug 11 2001 foo
|
||||
# This differs from Unix, which adds ownership information.
|
||||
# drwxrwx--- 2 root root 4096 Aug 11 2001 foo
|
||||
#
|
||||
# To find the date, we split the line on spaces and iterate on words
|
||||
# until we find a month. This cannot work with files whose owner is a
|
||||
# user named `Jan', or `Feb', etc. However, it's unlikely that `/'
|
||||
# will be owned by a user whose name is a month. So we first look at
|
||||
# the extended ls output of the root directory to decide how many
|
||||
# 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 -l -d /`
|
||||
|
||||
# Find which argument is the month.
|
||||
month=
|
||||
command=
|
||||
until test $month
|
||||
do
|
||||
shift
|
||||
# Add another shift to the command.
|
||||
command="$command shift;"
|
||||
case $1 in
|
||||
Jan) month=January; nummonth=1;;
|
||||
Feb) month=February; nummonth=2;;
|
||||
Mar) month=March; nummonth=3;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Get the extended ls output of the file or directory.
|
||||
set dummy x`eval "$ls_command \"\$save_arg1\""`
|
||||
|
||||
# Remove all preceding arguments
|
||||
eval $command
|
||||
|
||||
# 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;;
|
||||
Apr) month=April; nummonth=4;;
|
||||
May) month=May; nummonth=5;;
|
||||
Jun) month=June; nummonth=6;;
|
||||
Jul) month=July; nummonth=7;;
|
||||
Aug) month=August; nummonth=8;;
|
||||
Sep) month=September; nummonth=9;;
|
||||
Oct) month=October; nummonth=10;;
|
||||
Nov) month=November; nummonth=11;;
|
||||
Dec) month=December; nummonth=12;;
|
||||
esac
|
||||
|
||||
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.
|
||||
case $3 in
|
||||
*:*) set `date`; eval year=\$$#
|
||||
case $2 in
|
||||
Jan) nummonthtod=1;;
|
||||
Feb) nummonthtod=2;;
|
||||
Mar) nummonthtod=3;;
|
||||
Apr) nummonthtod=4;;
|
||||
May) nummonthtod=5;;
|
||||
Jun) nummonthtod=6;;
|
||||
Jul) nummonthtod=7;;
|
||||
Aug) nummonthtod=8;;
|
||||
Sep) nummonthtod=9;;
|
||||
Oct) nummonthtod=10;;
|
||||
Nov) nummonthtod=11;;
|
||||
Dec) nummonthtod=12;;
|
||||
esac
|
||||
# For the first six month of the year the time notation can also
|
||||
# be used for files modified in the last year.
|
||||
if (expr $nummonth \> $nummonthtod) > /dev/null;
|
||||
then
|
||||
year=`expr $year - 1`
|
||||
fi;;
|
||||
*) year=$3;;
|
||||
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:
|
@ -1,4 +0,0 @@
|
||||
@set UPDATED 10 September 2007
|
||||
@set UPDATED-MONTH September 2007
|
||||
@set EDITION 2.5.35
|
||||
@set VERSION 2.5.35
|
33
filter.c
33
filter.c
@ -48,6 +48,8 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
|
||||
|
||||
/* allocate and initialize new filter */
|
||||
f = (struct filter *) flex_alloc (sizeof (struct filter));
|
||||
if (!f)
|
||||
flexerror (_("flex_alloc failed (f) in filter_create_ext"));
|
||||
memset (f, 0, sizeof (*f));
|
||||
f->filter_func = NULL;
|
||||
f->extra = NULL;
|
||||
@ -67,6 +69,8 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
|
||||
f->argv =
|
||||
(const char **) flex_alloc (sizeof (char *) *
|
||||
(max_args + 1));
|
||||
if (!f->argv)
|
||||
flexerror (_("flex_alloc failed (f->argv) in filter_create_ext"));
|
||||
f->argv[f->argc++] = cmd;
|
||||
|
||||
va_start (ap, cmd);
|
||||
@ -104,6 +108,8 @@ struct filter *filter_create_int (struct filter *chain,
|
||||
|
||||
/* allocate and initialize new filter */
|
||||
f = (struct filter *) flex_alloc (sizeof (struct filter));
|
||||
if (!f)
|
||||
flexerror (_("flex_alloc failed in filter_create_int"));
|
||||
memset (f, 0, sizeof (*f));
|
||||
f->next = NULL;
|
||||
f->argc = 0;
|
||||
@ -129,6 +135,10 @@ struct filter *filter_create_int (struct filter *chain,
|
||||
bool filter_apply_chain (struct filter * chain)
|
||||
{
|
||||
int pid, pipes[2];
|
||||
int r;
|
||||
const int readsz = 512;
|
||||
char *buf;
|
||||
|
||||
|
||||
/* Tricky recursion, since we want to begin the chain
|
||||
* at the END. Why? Because we need all the forked processes
|
||||
@ -145,6 +155,7 @@ bool filter_apply_chain (struct filter * chain)
|
||||
fflush (stdout);
|
||||
fflush (stderr);
|
||||
|
||||
|
||||
if (pipe (pipes) == -1)
|
||||
flexerror (_("pipe failed"));
|
||||
|
||||
@ -161,6 +172,7 @@ bool filter_apply_chain (struct filter * chain)
|
||||
* to sync the stream. This is a Hail Mary situation. It seems to work.
|
||||
*/
|
||||
close (pipes[1]);
|
||||
clearerr(stdin);
|
||||
if (dup2 (pipes[0], fileno (stdin)) == -1)
|
||||
flexfatal (_("dup2(pipes[0],0)"));
|
||||
close (pipes[0]);
|
||||
@ -177,7 +189,8 @@ bool filter_apply_chain (struct filter * chain)
|
||||
else {
|
||||
execvp (chain->argv[0],
|
||||
(char **const) (chain->argv));
|
||||
flexfatal (_("exec failed"));
|
||||
lerrsf_fatal ( _("exec of %s failed"),
|
||||
chain->argv[0]);
|
||||
}
|
||||
|
||||
exit (1);
|
||||
@ -279,6 +292,8 @@ int filter_tee_header (struct filter *chain)
|
||||
outfilename ? outfilename : "<stdout>");
|
||||
|
||||
buf = (char *) flex_alloc (readsz);
|
||||
if (!buf)
|
||||
flexerror (_("flex_alloc failed in filter_tee_header"));
|
||||
while (fgets (buf, readsz, stdin)) {
|
||||
fputs (buf, to_c);
|
||||
if (write_header)
|
||||
@ -296,13 +311,13 @@ int filter_tee_header (struct filter *chain)
|
||||
fputs ("m4_undefine( [[M4_YY_IN_HEADER]])m4_dnl\n", to_h);
|
||||
|
||||
fflush (to_h);
|
||||
if (ferror (to_h))
|
||||
lerrsf (_("error writing output file %s"),
|
||||
(char *) chain->extra);
|
||||
if (ferror (to_h))
|
||||
lerrsf (_("error writing output file %s"),
|
||||
(char *) chain->extra);
|
||||
|
||||
else if (fclose (to_h))
|
||||
lerrsf (_("error closing output file %s"),
|
||||
(char *) chain->extra);
|
||||
else if (fclose (to_h))
|
||||
lerrsf (_("error closing output file %s"),
|
||||
(char *) chain->extra);
|
||||
}
|
||||
|
||||
fflush (to_c);
|
||||
@ -338,6 +353,8 @@ int filter_fix_linedirs (struct filter *chain)
|
||||
return 0;
|
||||
|
||||
buf = (char *) flex_alloc (readsz);
|
||||
if (!buf)
|
||||
flexerror (_("flex_alloc failed in filter_fix_linedirs"));
|
||||
|
||||
while (fgets (buf, readsz, stdin)) {
|
||||
|
||||
@ -345,7 +362,7 @@ int filter_fix_linedirs (struct filter *chain)
|
||||
|
||||
/* Check for #line directive. */
|
||||
if (buf[0] == '#'
|
||||
&& regexec (®ex_linedir, buf, 3, m, 0) == 0) {
|
||||
&& regexec (®ex_linedir, buf, 3, m, 0) == 0) {
|
||||
|
||||
int num;
|
||||
char *fname;
|
||||
|
122
flex.skl
122
flex.skl
@ -218,6 +218,7 @@ m4preproc_include(`flexint.h')
|
||||
#include <iostream>
|
||||
#include <errno.h>
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
/* end standard C++ headers. */
|
||||
%endif
|
||||
@ -288,6 +289,8 @@ typedef void* yyscan_t;
|
||||
|
||||
%# Declare yyguts variable
|
||||
m4_define( [[M4_YY_DECL_GUTS_VAR]], [[struct yyguts_t * yyg = (struct yyguts_t*)yyscanner]])
|
||||
%# Perform a noop access on yyguts to prevent unused variable complains
|
||||
m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[(void)yyg]])
|
||||
%# For use wherever a Global is accessed or assigned.
|
||||
m4_define( [[YY_G]], [[yyg->$1]])
|
||||
|
||||
@ -345,6 +348,7 @@ m4_define( [[M4_YY_INCR_LINENO]],
|
||||
|
||||
%# Define these macros to be no-ops.
|
||||
m4_define( [[M4_YY_DECL_GUTS_VAR]], [[m4_dnl]])
|
||||
m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[m4_dnl]])
|
||||
m4_define( [[YY_G]], [[($1)]])
|
||||
m4_define( [[M4_YY_PROTO_LAST_ARG]])
|
||||
m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])
|
||||
@ -459,8 +463,13 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||
typedef struct yy_buffer_state *YY_BUFFER_STATE;
|
||||
#endif
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
#endif
|
||||
|
||||
%if-not-reentrant
|
||||
extern int yyleng;
|
||||
extern yy_size_t yyleng;
|
||||
%endif
|
||||
|
||||
%if-c-only
|
||||
@ -522,11 +531,6 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||
#define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )
|
||||
]])
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
#endif
|
||||
|
||||
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
||||
#define YY_STRUCT_YY_BUFFER_STATE
|
||||
struct yy_buffer_state
|
||||
@ -551,7 +555,7 @@ struct yy_buffer_state
|
||||
/* Number of characters read into yy_ch_buf, not including EOB
|
||||
* characters.
|
||||
*/
|
||||
int yy_n_chars;
|
||||
yy_size_t yy_n_chars;
|
||||
|
||||
/* Whether we "own" the buffer - i.e., we know we created it,
|
||||
* and can realloc() it to grow it, and should free() it to
|
||||
@ -640,8 +644,8 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||
%not-for-header
|
||||
/* yy_hold_char holds the character lost when yytext is formed. */
|
||||
static char yy_hold_char;
|
||||
static int yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
int yyleng;
|
||||
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
yy_size_t yyleng;
|
||||
|
||||
/* Points to current character in buffer. */
|
||||
static char *yy_c_buf_p = (char *) 0;
|
||||
@ -677,7 +681,7 @@ m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
|
||||
|
||||
YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );
|
||||
YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );
|
||||
YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG );
|
||||
YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, yy_size_t len M4_YY_PROTO_LAST_ARG );
|
||||
|
||||
%endif
|
||||
|
||||
@ -803,8 +807,8 @@ struct yyguts_t
|
||||
size_t yy_buffer_stack_max; /**< capacity of stack. */
|
||||
YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
|
||||
char yy_hold_char;
|
||||
int yy_n_chars;
|
||||
int yyleng_r;
|
||||
yy_size_t yy_n_chars;
|
||||
yy_size_t yyleng_r;
|
||||
char *yy_c_buf_p;
|
||||
int yy_init;
|
||||
int yy_start;
|
||||
@ -941,7 +945,7 @@ void yyset_out M4_YY_PARAMS( FILE * out_str M4_YY_PROTO_LAST_ARG );
|
||||
|
||||
m4_ifdef( [[M4_YY_NO_GET_LENG]],,
|
||||
[[
|
||||
int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
|
||||
yy_size_t yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
|
||||
]])
|
||||
|
||||
m4_ifdef( [[M4_YY_NO_GET_TEXT]],,
|
||||
@ -959,6 +963,22 @@ m4_ifdef( [[M4_YY_NO_SET_LINENO]],,
|
||||
void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );
|
||||
]])
|
||||
|
||||
m4_ifdef( [[M4_YY_REENTRANT]],
|
||||
[[
|
||||
m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,
|
||||
[[
|
||||
int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );
|
||||
]])
|
||||
]])
|
||||
|
||||
m4_ifdef( [[M4_YY_REENTRANT]],
|
||||
[[
|
||||
m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,
|
||||
[[
|
||||
void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );
|
||||
]])
|
||||
]])
|
||||
|
||||
%if-bison-bridge
|
||||
m4_ifdef( [[M4_YY_NO_GET_LVAL]],,
|
||||
[[
|
||||
@ -1074,7 +1094,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 fwrite( yytext, yyleng, 1, yyout )
|
||||
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
|
||||
%endif
|
||||
%if-c++-only C++ definition
|
||||
#define ECHO LexerOutput( yytext, yyleng )
|
||||
@ -1629,7 +1649,7 @@ int yyFlexLexer::yy_get_next_buffer()
|
||||
|
||||
else
|
||||
{
|
||||
int num_to_read =
|
||||
yy_size_t num_to_read =
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
|
||||
|
||||
while ( num_to_read <= 0 )
|
||||
@ -1641,14 +1661,14 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||
]],
|
||||
[[
|
||||
/* just a shorter name for the current buffer */
|
||||
YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
|
||||
YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
|
||||
|
||||
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;
|
||||
yy_size_t new_size = b->yy_buf_size * 2;
|
||||
|
||||
if ( new_size <= 0 )
|
||||
b->yy_buf_size += b->yy_buf_size / 8;
|
||||
@ -1680,7 +1700,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), (size_t) num_to_read );
|
||||
YY_G(yy_n_chars), num_to_read );
|
||||
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);
|
||||
}
|
||||
@ -1764,6 +1784,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||
M4_YY_DECL_GUTS_VAR(); /* This var may be unused depending upon options. */
|
||||
%% [17.0] code to find the next state, and perhaps do backing up, goes here
|
||||
|
||||
M4_YY_NOOP_GUTS_VAR();
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
|
||||
@ -1788,7 +1809,7 @@ m4_ifdef( [[M4_YY_NO_UNPUT]],,
|
||||
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
|
||||
{ /* need to shift things up to make room */
|
||||
/* +2 for EOB chars. */
|
||||
register int number_to_move = YY_G(yy_n_chars) + 2;
|
||||
register yy_size_t number_to_move = YY_G(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 =
|
||||
@ -1854,7 +1875,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
|
||||
|
||||
else
|
||||
{ /* need more input */
|
||||
int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);
|
||||
yy_size_t offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);
|
||||
++YY_G(yy_c_buf_p);
|
||||
|
||||
switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )
|
||||
@ -2050,25 +2071,6 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
}
|
||||
|
||||
|
||||
%if-c-only
|
||||
m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]],,
|
||||
[[
|
||||
m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,
|
||||
[[
|
||||
#ifndef __cplusplus
|
||||
extern int isatty M4_YY_PARAMS( int );
|
||||
#endif /* __cplusplus */
|
||||
]])
|
||||
]])
|
||||
%endif
|
||||
|
||||
%if-c++-only
|
||||
m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,
|
||||
[[
|
||||
extern "C" int isatty M4_YY_PARAMS( int );
|
||||
]])
|
||||
%endif
|
||||
|
||||
/* 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.
|
||||
@ -2233,7 +2235,7 @@ static void yyensure_buffer_stack YYFARGS0(void)
|
||||
void yyFlexLexer::yyensure_buffer_stack(void)
|
||||
%endif
|
||||
{
|
||||
int num_to_alloc;
|
||||
yy_size_t num_to_alloc;
|
||||
M4_YY_DECL_GUTS_VAR();
|
||||
|
||||
if (!YY_G(yy_buffer_stack)) {
|
||||
@ -2348,12 +2350,12 @@ m4_ifdef( [[M4_YY_NO_SCAN_BYTES]],,
|
||||
%if-c-only
|
||||
/** 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.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
||||
* M4_YY_DOC_PARAM
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len)
|
||||
YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yybytes_len)
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
char *buf;
|
||||
@ -2579,7 +2581,7 @@ m4_ifdef( [[M4_YY_NO_GET_LENG]],,
|
||||
/** Get the length of the current token.
|
||||
* M4_YY_DOC_PARAM
|
||||
*/
|
||||
int yyget_leng YYFARGS0(void)
|
||||
yy_size_t yyget_leng YYFARGS0(void)
|
||||
{
|
||||
M4_YY_DECL_GUTS_VAR();
|
||||
return yyleng;
|
||||
@ -2627,7 +2629,7 @@ void yyset_lineno YYFARGS1( int ,line_number)
|
||||
[[
|
||||
/* lineno is only valid if an input buffer exists. */
|
||||
if (! YY_CURRENT_BUFFER )
|
||||
yy_fatal_error( "yyset_lineno called with no buffer" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
|
||||
]])
|
||||
yylineno = line_number;
|
||||
}
|
||||
@ -2649,7 +2651,7 @@ void yyset_column YYFARGS1( int , column_no)
|
||||
[[
|
||||
/* column is only valid if an input buffer exists. */
|
||||
if (! YY_CURRENT_BUFFER )
|
||||
yy_fatal_error( "yyset_column called with no buffer" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "yyset_column called with no buffer" );
|
||||
]])
|
||||
yycolumn = column_no;
|
||||
}
|
||||
@ -3044,7 +3046,7 @@ static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *
|
||||
return -1;
|
||||
|
||||
if (th->th_magic != YYTBL_MAGIC){
|
||||
yy_fatal_error("bad magic number" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "bad magic number" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3055,7 +3057,7 @@ static int yytbl_hdr_read YYFARGS2(struct yytbl_hdr *, th, struct yytbl_reader *
|
||||
|
||||
/* Sanity check on header size. Greater than 1k suggests some funny business. */
|
||||
if (th->th_hsize < 16 || th->th_hsize > 1024){
|
||||
yy_fatal_error("insane header size detected" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "insane header size detected" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3120,7 +3122,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
transdmap = yytbl_dmap_lookup (dmap, YYTD_ID_TRANSITION M4_YY_CALL_LAST_ARG);
|
||||
|
||||
if ((dmap = yytbl_dmap_lookup (dmap, td.td_id M4_YY_CALL_LAST_ARG)) == NULL){
|
||||
yy_fatal_error("table id not found in map." /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "table id not found in map." ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3187,7 +3189,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
t32 = t8;
|
||||
break;
|
||||
default:
|
||||
yy_fatal_error("invalid td_flags" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "invalid td_flags" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@ -3207,26 +3209,26 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
case sizeof (flex_int32_t):
|
||||
if (M4_YY_TABLES_VERIFY){
|
||||
if( ((flex_int32_t *) v)[0] != (flex_int32_t) t32)
|
||||
yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int32_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at YYTD_STRUCT flex_int32_t" );
|
||||
}else
|
||||
((flex_int32_t *) v)[0] = (flex_int32_t) t32;
|
||||
break;
|
||||
case sizeof (flex_int16_t):
|
||||
if (M4_YY_TABLES_VERIFY ){
|
||||
if(((flex_int16_t *) v)[0] != (flex_int16_t) t32)
|
||||
yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int16_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at YYTD_STRUCT flex_int16_t" );
|
||||
}else
|
||||
((flex_int16_t *) v)[0] = (flex_int16_t) t32;
|
||||
break;
|
||||
case sizeof(flex_int8_t):
|
||||
if (M4_YY_TABLES_VERIFY ){
|
||||
if( ((flex_int8_t *) v)[0] != (flex_int8_t) t32)
|
||||
yy_fatal_error("tables verification failed at YYTD_STRUCT flex_int8_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at YYTD_STRUCT flex_int8_t" );
|
||||
}else
|
||||
((flex_int8_t *) v)[0] = (flex_int8_t) t32;
|
||||
break;
|
||||
default:
|
||||
yy_fatal_error("invalid dmap->dm_sz for struct" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "invalid dmap->dm_sz for struct" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3240,7 +3242,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
|
||||
|
||||
if (!transdmap){
|
||||
yy_fatal_error("transition table not found" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "transition table not found" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -3251,7 +3253,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
|
||||
if(M4_YY_TABLES_VERIFY ){
|
||||
if( ((struct yy_trans_info **) p)[0] != v)
|
||||
yy_fatal_error("tables verification failed at YYTD_PTRANS" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at YYTD_PTRANS" );
|
||||
}else
|
||||
((struct yy_trans_info **) p)[0] = v;
|
||||
|
||||
@ -3264,7 +3266,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
case sizeof (flex_int32_t):
|
||||
if(M4_YY_TABLES_VERIFY ){
|
||||
if( ((flex_int32_t *) p)[0] != (flex_int32_t) t32)
|
||||
yy_fatal_error("tables verification failed at flex_int32_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at flex_int32_t" );
|
||||
}else
|
||||
((flex_int32_t *) p)[0] = (flex_int32_t) t32;
|
||||
p = ((flex_int32_t *) p) + 1;
|
||||
@ -3272,7 +3274,7 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
case sizeof (flex_int16_t):
|
||||
if(M4_YY_TABLES_VERIFY ){
|
||||
if( ((flex_int16_t *) p)[0] != (flex_int16_t) t32)
|
||||
yy_fatal_error("tables verification failed at flex_int16_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at flex_int16_t" );
|
||||
}else
|
||||
((flex_int16_t *) p)[0] = (flex_int16_t) t32;
|
||||
p = ((flex_int16_t *) p) + 1;
|
||||
@ -3280,13 +3282,13 @@ static int yytbl_data_load YYFARGS2(struct yytbl_dmap *, dmap, struct yytbl_read
|
||||
case sizeof (flex_int8_t):
|
||||
if(M4_YY_TABLES_VERIFY ){
|
||||
if( ((flex_int8_t *) p)[0] != (flex_int8_t) t32)
|
||||
yy_fatal_error("tables verification failed at flex_int8_t" M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "tables verification failed at flex_int8_t" );
|
||||
}else
|
||||
((flex_int8_t *) p)[0] = (flex_int8_t) t32;
|
||||
p = ((flex_int8_t *) p) + 1;
|
||||
break;
|
||||
default:
|
||||
yy_fatal_error("invalid dmap->dm_sz for plain int" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);
|
||||
YY_FATAL_ERROR( "invalid dmap->dm_sz for plain int" ); /* TODO: not fatal. */
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
14
flexdef.h
14
flexdef.h
@ -91,7 +91,9 @@ char *alloca ();
|
||||
#define true 1
|
||||
#define false 0
|
||||
#endif
|
||||
#ifdef HAVE_REGEX_H
|
||||
#include <regex.h>
|
||||
#endif
|
||||
#include "flexint.h"
|
||||
|
||||
/* We use gettext. So, when we write strings which should be translated, we mark them with _() */
|
||||
@ -414,7 +416,6 @@ extern int yymore_really_used, reject_really_used;
|
||||
* dataline - number of contiguous lines of data in current data
|
||||
* statement. Used to generate readable -f output
|
||||
* linenum - current input line number
|
||||
* out_linenum - current output line number
|
||||
* skelfile - the skeleton file
|
||||
* skel - compiled-in skeleton array
|
||||
* skel_ind - index into "skel" array, if skelfile is nil
|
||||
@ -442,7 +443,7 @@ extern int yymore_really_used, reject_really_used;
|
||||
* to "action_array"
|
||||
*/
|
||||
|
||||
extern int datapos, dataline, linenum, out_linenum;
|
||||
extern int datapos, dataline, linenum;
|
||||
extern FILE *skelfile, *yyin, *backing_up_file;
|
||||
extern const char *skel[];
|
||||
extern int skel_ind;
|
||||
@ -847,8 +848,8 @@ extern int all_lower PROTO ((register char *));
|
||||
/* True if a string is all upper case. */
|
||||
extern int all_upper PROTO ((register char *));
|
||||
|
||||
/* Bubble sort an integer array. */
|
||||
extern void bubble PROTO ((int[], int));
|
||||
/* Compare two integers for use by qsort. */
|
||||
extern int intcmp PROTO ((const void *, const void *));
|
||||
|
||||
/* Check a character to make sure it's in the expected range. */
|
||||
extern void check_char PROTO ((int c));
|
||||
@ -862,8 +863,8 @@ extern char *copy_string PROTO ((register const char *));
|
||||
/* Returns a dynamically allocated copy of a (potentially) unsigned string. */
|
||||
extern Char *copy_unsigned_string PROTO ((register Char *));
|
||||
|
||||
/* Shell sort a character array. */
|
||||
extern void cshell PROTO ((Char[], int, int));
|
||||
/* Compare two characters for use by qsort with '\0' sorting last. */
|
||||
extern int cclcmp PROTO ((const void *, const void *));
|
||||
|
||||
/* Finish up a block of data declarations. */
|
||||
extern void dataend PROTO ((void));
|
||||
@ -937,7 +938,6 @@ extern void out PROTO ((const char *));
|
||||
extern void out_dec PROTO ((const char *, int));
|
||||
extern void out_dec2 PROTO ((const char *, int, int));
|
||||
extern void out_hex PROTO ((const char *, unsigned int));
|
||||
extern void out_line_count PROTO ((const char *));
|
||||
extern void out_str PROTO ((const char *, const char *));
|
||||
extern void out_str3
|
||||
PROTO ((const char *, const char *, const char *, const char *));
|
||||
|
@ -28,7 +28,6 @@ typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@ -59,5 +58,6 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
2
gen.c
2
gen.c
@ -1890,7 +1890,7 @@ void make_tables ()
|
||||
outn ("\tif ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \\");
|
||||
outn ("\t\t{ \\");
|
||||
outn ("\t\tint c = '*'; \\");
|
||||
outn ("\t\tint n; \\");
|
||||
outn ("\t\tsize_t 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; \\");
|
||||
|
511
install-sh
511
install-sh
@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
# install - install a program, script, or datafile
|
||||
|
||||
scriptversion=2005-05-14.22
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# This originates from X11R5 (mit/util/scripts/install.sh), which was
|
||||
# later released in X11R6 (xc/config/util/install.sh) with the
|
||||
@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
|
||||
# when there is no Makefile.
|
||||
#
|
||||
# This script is compatible with the BSD install script, but was written
|
||||
# from scratch. It can only install one file at a time, a restriction
|
||||
# shared with many OS's install programs.
|
||||
# from scratch.
|
||||
|
||||
nl='
|
||||
'
|
||||
IFS=" "" $nl"
|
||||
|
||||
# set DOITPROG to echo to test this script
|
||||
|
||||
# Don't use :- since 4.3BSD and earlier shells don't like it.
|
||||
doit="${DOITPROG-}"
|
||||
doit=${DOITPROG-}
|
||||
if test -z "$doit"; then
|
||||
doit_exec=exec
|
||||
else
|
||||
doit_exec=$doit
|
||||
fi
|
||||
|
||||
# put in absolute paths if you don't have them in your path; or use env. vars.
|
||||
# Put in absolute file names if you don't have them in your path;
|
||||
# or use environment vars.
|
||||
|
||||
mvprog="${MVPROG-mv}"
|
||||
cpprog="${CPPROG-cp}"
|
||||
chmodprog="${CHMODPROG-chmod}"
|
||||
chownprog="${CHOWNPROG-chown}"
|
||||
chgrpprog="${CHGRPPROG-chgrp}"
|
||||
stripprog="${STRIPPROG-strip}"
|
||||
rmprog="${RMPROG-rm}"
|
||||
mkdirprog="${MKDIRPROG-mkdir}"
|
||||
chgrpprog=${CHGRPPROG-chgrp}
|
||||
chmodprog=${CHMODPROG-chmod}
|
||||
chownprog=${CHOWNPROG-chown}
|
||||
cmpprog=${CMPPROG-cmp}
|
||||
cpprog=${CPPROG-cp}
|
||||
mkdirprog=${MKDIRPROG-mkdir}
|
||||
mvprog=${MVPROG-mv}
|
||||
rmprog=${RMPROG-rm}
|
||||
stripprog=${STRIPPROG-strip}
|
||||
|
||||
posix_glob='?'
|
||||
initialize_posix_glob='
|
||||
test "$posix_glob" != "?" || {
|
||||
if (set -f) 2>/dev/null; then
|
||||
posix_glob=
|
||||
else
|
||||
posix_glob=:
|
||||
fi
|
||||
}
|
||||
'
|
||||
|
||||
posix_mkdir=
|
||||
|
||||
# Desired mode of installed file.
|
||||
mode=0755
|
||||
|
||||
chmodcmd="$chmodprog 0755"
|
||||
chowncmd=
|
||||
chgrpcmd=
|
||||
stripcmd=
|
||||
chmodcmd=$chmodprog
|
||||
chowncmd=
|
||||
mvcmd=$mvprog
|
||||
rmcmd="$rmprog -f"
|
||||
mvcmd="$mvprog"
|
||||
stripcmd=
|
||||
|
||||
src=
|
||||
dst=
|
||||
dir_arg=
|
||||
dstarg=
|
||||
dst_arg=
|
||||
|
||||
copy_on_change=false
|
||||
no_target_directory=
|
||||
|
||||
usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
usage="\
|
||||
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
|
||||
or: $0 [OPTION]... SRCFILES... DIRECTORY
|
||||
or: $0 [OPTION]... -t DIRECTORY SRCFILES...
|
||||
or: $0 [OPTION]... -d DIRECTORIES...
|
||||
@ -80,81 +110,86 @@ 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.
|
||||
--help display this help and exit.
|
||||
--version display version info and exit.
|
||||
|
||||
-c (ignored)
|
||||
-C install only if different (preserve the last data modification time)
|
||||
-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.
|
||||
|
||||
Environment variables override the default commands:
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
|
||||
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
|
||||
RMPROG STRIPPROG
|
||||
"
|
||||
|
||||
while test -n "$1"; do
|
||||
while test $# -ne 0; do
|
||||
case $1 in
|
||||
-c) shift
|
||||
continue;;
|
||||
-c) ;;
|
||||
|
||||
-d) dir_arg=true
|
||||
shift
|
||||
continue;;
|
||||
-C) copy_on_change=true;;
|
||||
|
||||
-d) dir_arg=true;;
|
||||
|
||||
-g) chgrpcmd="$chgrpprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
shift;;
|
||||
|
||||
--help) echo "$usage"; exit $?;;
|
||||
|
||||
-m) chmodcmd="$chmodprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
-m) mode=$2
|
||||
case $mode in
|
||||
*' '* | *' '* | *'
|
||||
'* | *'*'* | *'?'* | *'['*)
|
||||
echo "$0: invalid mode: $mode" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
shift;;
|
||||
|
||||
-o) chowncmd="$chownprog $2"
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
shift;;
|
||||
|
||||
-s) stripcmd=$stripprog
|
||||
shift
|
||||
continue;;
|
||||
-s) stripcmd=$stripprog;;
|
||||
|
||||
-t) dstarg=$2
|
||||
shift
|
||||
shift
|
||||
continue;;
|
||||
-t) dst_arg=$2
|
||||
shift;;
|
||||
|
||||
-T) no_target_directory=true
|
||||
shift
|
||||
continue;;
|
||||
-T) no_target_directory=true;;
|
||||
|
||||
--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
|
||||
--) shift
|
||||
break;;
|
||||
|
||||
-*) echo "$0: invalid option: $1" >&2
|
||||
exit 1;;
|
||||
|
||||
*) break;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$1"; then
|
||||
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
|
||||
# When -d is used, all remaining arguments are directories to create.
|
||||
# When -t is used, the destination is already specified.
|
||||
# Otherwise, the last argument is the destination. Remove it from $@.
|
||||
for arg
|
||||
do
|
||||
if test -n "$dst_arg"; then
|
||||
# $@ is not empty: it contains at least $arg.
|
||||
set fnord "$@" "$dst_arg"
|
||||
shift # fnord
|
||||
fi
|
||||
shift # arg
|
||||
dst_arg=$arg
|
||||
done
|
||||
fi
|
||||
|
||||
if test $# -eq 0; then
|
||||
if test -z "$dir_arg"; then
|
||||
echo "$0: no input file specified." >&2
|
||||
exit 1
|
||||
@ -164,24 +199,47 @@ if test -z "$1"; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if test -z "$dir_arg"; then
|
||||
trap '(exit $?); exit' 1 2 13 15
|
||||
|
||||
# Set umask so as not to create temps with too-generous modes.
|
||||
# However, 'strip' requires both read and write access to temps.
|
||||
case $mode in
|
||||
# Optimize common cases.
|
||||
*644) cp_umask=133;;
|
||||
*755) cp_umask=22;;
|
||||
|
||||
*[0-7])
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw='% 200'
|
||||
fi
|
||||
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
|
||||
*)
|
||||
if test -z "$stripcmd"; then
|
||||
u_plus_rw=
|
||||
else
|
||||
u_plus_rw=,u+rw
|
||||
fi
|
||||
cp_umask=$mode$u_plus_rw;;
|
||||
esac
|
||||
fi
|
||||
|
||||
for src
|
||||
do
|
||||
# Protect names starting with `-'.
|
||||
case $src in
|
||||
-*) src=./$src ;;
|
||||
-*) src=./$src;;
|
||||
esac
|
||||
|
||||
if test -n "$dir_arg"; then
|
||||
dst=$src
|
||||
src=
|
||||
|
||||
if test -d "$dst"; then
|
||||
mkdircmd=:
|
||||
chmodcmd=
|
||||
else
|
||||
mkdircmd=$mkdirprog
|
||||
fi
|
||||
dstdir=$dst
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
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 '*'.
|
||||
@ -190,71 +248,199 @@ do
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -z "$dstarg"; then
|
||||
if test -z "$dst_arg"; then
|
||||
echo "$0: no destination specified." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
dst=$dstarg
|
||||
dst=$dst_arg
|
||||
# Protect names starting with `-'.
|
||||
case $dst in
|
||||
-*) dst=./$dst ;;
|
||||
-*) dst=./$dst;;
|
||||
esac
|
||||
|
||||
# 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
|
||||
echo "$0: $dst_arg: Is a directory" >&2
|
||||
exit 1
|
||||
fi
|
||||
dst=$dst/`basename "$src"`
|
||||
dstdir=$dst
|
||||
dst=$dstdir/`basename "$src"`
|
||||
dstdir_status=0
|
||||
else
|
||||
# Prefer dirname, but fall back on a substitute if dirname fails.
|
||||
dstdir=`
|
||||
(dirname "$dst") 2>/dev/null ||
|
||||
expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
|
||||
X"$dst" : 'X\(//\)[^/]' \| \
|
||||
X"$dst" : 'X\(//\)$' \| \
|
||||
X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
|
||||
echo X"$dst" |
|
||||
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)[^/].*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\/\)$/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
/^X\(\/\).*/{
|
||||
s//\1/
|
||||
q
|
||||
}
|
||||
s/.*/./; q'
|
||||
`
|
||||
|
||||
test -d "$dstdir"
|
||||
dstdir_status=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# This sed command emulates the dirname command.
|
||||
dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
|
||||
obsolete_mkdir_used=false
|
||||
|
||||
# Make sure that the destination directory exists.
|
||||
if test $dstdir_status != 0; then
|
||||
case $posix_mkdir in
|
||||
'')
|
||||
# Create intermediate dirs using mode 755 as modified by the umask.
|
||||
# This is like FreeBSD 'install' as of 1997-10-28.
|
||||
umask=`umask`
|
||||
case $stripcmd.$umask in
|
||||
# Optimize common cases.
|
||||
*[2367][2367]) mkdir_umask=$umask;;
|
||||
.*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
|
||||
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if test ! -d "$dstdir"; then
|
||||
defaultIFS='
|
||||
'
|
||||
IFS="${IFS-$defaultIFS}"
|
||||
*[0-7])
|
||||
mkdir_umask=`expr $umask + 22 \
|
||||
- $umask % 100 % 40 + $umask % 20 \
|
||||
- $umask % 10 % 4 + $umask % 2
|
||||
`;;
|
||||
*) mkdir_umask=$umask,go-w;;
|
||||
esac
|
||||
|
||||
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
|
||||
# With -d, create the new directory with the user-specified mode.
|
||||
# Otherwise, rely on $mkdir_umask.
|
||||
if test -n "$dir_arg"; then
|
||||
mkdir_mode=-m$mode
|
||||
else
|
||||
mkdir_mode=
|
||||
fi
|
||||
|
||||
pathcomp=
|
||||
posix_mkdir=false
|
||||
case $umask in
|
||||
*[123567][0-7][0-7])
|
||||
# POSIX mkdir -p sets u+wx bits regardless of umask, which
|
||||
# is incompatible with FreeBSD 'install' when (umask & 300) != 0.
|
||||
;;
|
||||
*)
|
||||
tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
|
||||
trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
|
||||
|
||||
while test $# -ne 0 ; do
|
||||
pathcomp=$pathcomp$1
|
||||
if (umask $mkdir_umask &&
|
||||
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
|
||||
then
|
||||
if test -z "$dir_arg" || {
|
||||
# Check for POSIX incompatibilities with -m.
|
||||
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
|
||||
# other-writeable bit of parent directory when it shouldn't.
|
||||
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
|
||||
ls_ld_tmpdir=`ls -ld "$tmpdir"`
|
||||
case $ls_ld_tmpdir in
|
||||
d????-?r-*) different_mode=700;;
|
||||
d????-?--*) different_mode=755;;
|
||||
*) false;;
|
||||
esac &&
|
||||
$mkdirprog -m$different_mode -p -- "$tmpdir" && {
|
||||
ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
|
||||
test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
|
||||
}
|
||||
}
|
||||
then posix_mkdir=:
|
||||
fi
|
||||
rmdir "$tmpdir/d" "$tmpdir"
|
||||
else
|
||||
# Remove any dirs left behind by ancient mkdir implementations.
|
||||
rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
|
||||
fi
|
||||
trap '' 0;;
|
||||
esac;;
|
||||
esac
|
||||
|
||||
if
|
||||
$posix_mkdir && (
|
||||
umask $mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
|
||||
)
|
||||
then :
|
||||
else
|
||||
|
||||
# The umask is ridiculous, or mkdir does not conform to POSIX,
|
||||
# or it failed possibly due to a race condition. Create the
|
||||
# directory the slow way, step by step, checking for races as we go.
|
||||
|
||||
case $dstdir in
|
||||
/*) prefix='/';;
|
||||
-*) prefix='./';;
|
||||
*) prefix='';;
|
||||
esac
|
||||
|
||||
eval "$initialize_posix_glob"
|
||||
|
||||
oIFS=$IFS
|
||||
IFS=/
|
||||
$posix_glob set -f
|
||||
set fnord $dstdir
|
||||
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
|
||||
$posix_glob set +f
|
||||
IFS=$oIFS
|
||||
|
||||
prefixes=
|
||||
|
||||
for d
|
||||
do
|
||||
test -z "$d" && continue
|
||||
|
||||
prefix=$prefix$d
|
||||
if test -d "$prefix"; then
|
||||
prefixes=
|
||||
else
|
||||
if $posix_mkdir; then
|
||||
(umask=$mkdir_umask &&
|
||||
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
|
||||
# Don't fail if two instances are running concurrently.
|
||||
test -d "$prefix" || exit 1
|
||||
else
|
||||
case $prefix in
|
||||
*\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
|
||||
*) qprefix=$prefix;;
|
||||
esac
|
||||
prefixes="$prefixes '$qprefix'"
|
||||
fi
|
||||
fi
|
||||
prefix=$prefix/
|
||||
done
|
||||
|
||||
if test -n "$prefixes"; then
|
||||
# Don't fail if two instances are running concurrently.
|
||||
(umask $mkdir_umask &&
|
||||
eval "\$doit_exec \$mkdirprog $prefixes") ||
|
||||
test -d "$dstdir" || exit 1
|
||||
obsolete_mkdir_used=true
|
||||
fi
|
||||
pathcomp=$pathcomp/
|
||||
done
|
||||
fi
|
||||
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"; }
|
||||
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
|
||||
{ test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
|
||||
test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
|
||||
else
|
||||
dstfile=`basename "$dst"`
|
||||
|
||||
# Make a couple of temp file names in the proper directory.
|
||||
dsttmp=$dstdir/_inst.$$_
|
||||
@ -262,10 +448,9 @@ do
|
||||
|
||||
# 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" &&
|
||||
(umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
|
||||
|
||||
# and set any options; do chmod last to preserve setuid bits.
|
||||
#
|
||||
@ -273,51 +458,63 @@ do
|
||||
# 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"; } &&
|
||||
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
|
||||
{ test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
|
||||
{ test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
|
||||
{ test -z "$chmodcmd" || $doit $chmodcmd $mode "$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.
|
||||
# If -C, don't bother to copy if it wouldn't change the file.
|
||||
if $copy_on_change &&
|
||||
old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
|
||||
new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
|
||||
|
||||
# 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
|
||||
} &&
|
||||
eval "$initialize_posix_glob" &&
|
||||
$posix_glob set -f &&
|
||||
set X $old && old=:$2:$4:$5:$6 &&
|
||||
set X $new && new=:$2:$4:$5:$6 &&
|
||||
$posix_glob set +f &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
|
||||
}
|
||||
}
|
||||
fi || { (exit 1); exit 1; }
|
||||
test "$old" = "$new" &&
|
||||
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
|
||||
then
|
||||
rm -f "$dsttmp"
|
||||
else
|
||||
# Rename the file to the real destination.
|
||||
$doit $mvcmd -f "$dsttmp" "$dst" 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.
|
||||
{
|
||||
test ! -f "$dst" ||
|
||||
$doit $rmcmd -f "$dst" 2>/dev/null ||
|
||||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
|
||||
{ $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
|
||||
} ||
|
||||
{ echo "$0: cannot unlink or rename $dst" >&2
|
||||
(exit 1); exit 1
|
||||
}
|
||||
} &&
|
||||
|
||||
# Now rename the file to the real destination.
|
||||
$doit $mvcmd "$dsttmp" "$dst"
|
||||
}
|
||||
fi || exit 1
|
||||
|
||||
trap '' 0
|
||||
fi
|
||||
done
|
||||
|
||||
# The final little trick to "correctly" pass the exit status to the exit trap.
|
||||
{
|
||||
(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: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
@ -1 +0,0 @@
|
||||
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
|
316
m4/Makefile.in
316
m4/Makefile.in
@ -1,316 +0,0 @@
|
||||
# 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@
|
||||
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 = 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@
|
||||
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@
|
||||
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
|
||||
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 m4/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(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:
|
||||
|
||||
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:
|
||||
|
||||
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
|
||||
|
||||
# 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:
|
14
main.c
14
main.c
@ -57,7 +57,7 @@ int C_plus_plus, long_align, use_read, yytext_is_array, do_yywrap,
|
||||
int reentrant, bison_bridge_lval, bison_bridge_lloc;
|
||||
int yymore_used, reject, real_reject, continued_action, in_rule;
|
||||
int yymore_really_used, reject_really_used;
|
||||
int datapos, dataline, linenum, out_linenum;
|
||||
int datapos, dataline, linenum;
|
||||
FILE *skelfile = NULL;
|
||||
int skel_ind = 0;
|
||||
char *action_array;
|
||||
@ -455,6 +455,8 @@ void check_options ()
|
||||
size_t strsz;
|
||||
|
||||
str = (char*)flex_alloc(strsz = strlen(fmt) + strlen(scname[i]) + (int)(1 + log10(i)) + 2);
|
||||
if (!str)
|
||||
flexfatal(_("allocation of macro definition failed"));
|
||||
snprintf(str, strsz, fmt, scname[i], i - 1);
|
||||
buf_strappend(&tmpbuf, str);
|
||||
free(str);
|
||||
@ -1441,7 +1443,7 @@ void flexinit (argc, argv)
|
||||
num_backing_up = onesp = numprots = 0;
|
||||
variable_trailing_context_rules = bol_needed = false;
|
||||
|
||||
out_linenum = linenum = sectnum = 1;
|
||||
linenum = sectnum = 1;
|
||||
firstprot = NIL;
|
||||
|
||||
/* Used in mkprot() so that the first proto goes in slot 1
|
||||
@ -1576,9 +1578,11 @@ void readin ()
|
||||
}
|
||||
|
||||
if (!do_yywrap) {
|
||||
if (!C_plus_plus) {
|
||||
outn ("\n#define yywrap(n) 1");
|
||||
}
|
||||
if (!C_plus_plus)
|
||||
if (reentrant)
|
||||
outn ("\n#define yywrap(yyscanner) 1");
|
||||
else
|
||||
outn ("\n#define yywrap() 1");
|
||||
outn ("#define YY_SKIP_YYWRAP");
|
||||
}
|
||||
|
||||
|
140
misc.c
140
misc.c
@ -61,6 +61,8 @@ static void sko_push(bool dc)
|
||||
if(!sko_stack){
|
||||
sko_sz = 1;
|
||||
sko_stack = (struct sko_state*)flex_alloc(sizeof(struct sko_state)*sko_sz);
|
||||
if (!sko_stack)
|
||||
flexfatal(_("allocation of sko_stack failed"));
|
||||
sko_len = 0;
|
||||
}
|
||||
if(sko_len >= sko_sz){
|
||||
@ -184,7 +186,7 @@ int all_lower (str)
|
||||
register char *str;
|
||||
{
|
||||
while (*str) {
|
||||
if (!isascii ((Char) * str) || !islower (*str))
|
||||
if (!isascii ((Char) * str) || !islower ((Char) * str))
|
||||
return 0;
|
||||
++str;
|
||||
}
|
||||
@ -199,7 +201,7 @@ int all_upper (str)
|
||||
register char *str;
|
||||
{
|
||||
while (*str) {
|
||||
if (!isascii ((Char) * str) || !isupper (*str))
|
||||
if (!isascii ((Char) * str) || !isupper ((Char) * str))
|
||||
return 0;
|
||||
++str;
|
||||
}
|
||||
@ -208,33 +210,11 @@ int all_upper (str)
|
||||
}
|
||||
|
||||
|
||||
/* bubble - bubble sort an integer array in increasing order
|
||||
*
|
||||
* synopsis
|
||||
* int v[n], n;
|
||||
* void bubble( v, n );
|
||||
*
|
||||
* description
|
||||
* sorts the first n elements of array v and replaces them in
|
||||
* increasing order.
|
||||
*
|
||||
* passed
|
||||
* v - the array to be sorted
|
||||
* n - the number of elements of 'v' to be sorted
|
||||
*/
|
||||
/* intcmp - compares two integers for use by qsort. */
|
||||
|
||||
void bubble (v, n)
|
||||
int v[], n;
|
||||
int intcmp (const void *a, const void *b)
|
||||
{
|
||||
register int i, j, k;
|
||||
|
||||
for (i = n; i > 1; --i)
|
||||
for (j = 1; j < i; ++j)
|
||||
if (v[j] > v[j + 1]) { /* compare */
|
||||
k = v[j]; /* exchange */
|
||||
v[j] = v[j + 1];
|
||||
v[j + 1] = k;
|
||||
}
|
||||
return *(const int *) a - *(const int *) b;
|
||||
}
|
||||
|
||||
|
||||
@ -314,52 +294,17 @@ Char *copy_unsigned_string (str)
|
||||
}
|
||||
|
||||
|
||||
/* cshell - shell sort a character array in increasing order
|
||||
*
|
||||
* synopsis
|
||||
*
|
||||
* Char v[n];
|
||||
* int n, special_case_0;
|
||||
* cshell( v, n, special_case_0 );
|
||||
*
|
||||
* description
|
||||
* Does a shell sort of the first n elements of array v.
|
||||
* If special_case_0 is true, then any element equal to 0
|
||||
* is instead assumed to have infinite weight.
|
||||
*
|
||||
* passed
|
||||
* v - array to be sorted
|
||||
* n - number of elements of v to be sorted
|
||||
*/
|
||||
/* cclcmp - compares two characters for use by qsort with '\0' sorting last. */
|
||||
|
||||
void cshell (v, n, special_case_0)
|
||||
Char v[];
|
||||
int n, special_case_0;
|
||||
int cclcmp (const void *a, const void *b)
|
||||
{
|
||||
int gap, i, j, jg;
|
||||
Char k;
|
||||
|
||||
for (gap = n / 2; gap > 0; gap = gap / 2)
|
||||
for (i = gap; i < n; ++i)
|
||||
for (j = i - gap; j >= 0; j = j - gap) {
|
||||
jg = j + gap;
|
||||
|
||||
if (special_case_0) {
|
||||
if (v[jg] == 0)
|
||||
break;
|
||||
|
||||
else if (v[j] != 0
|
||||
&& v[j] <= v[jg])
|
||||
break;
|
||||
}
|
||||
|
||||
else if (v[j] <= v[jg])
|
||||
break;
|
||||
|
||||
k = v[j];
|
||||
v[j] = v[jg];
|
||||
v[jg] = k;
|
||||
}
|
||||
if (!*(const Char *) a)
|
||||
return 1;
|
||||
else
|
||||
if (!*(const Char *) b)
|
||||
return - 1;
|
||||
else
|
||||
return *(const Char *) a - *(const Char *) b;
|
||||
}
|
||||
|
||||
|
||||
@ -454,15 +399,29 @@ void lerrif (msg, arg)
|
||||
/* lerrsf - report an error message formatted with one string argument */
|
||||
|
||||
void lerrsf (msg, arg)
|
||||
const char *msg, arg[];
|
||||
const char *msg, arg[];
|
||||
{
|
||||
char errmsg[MAXLINE];
|
||||
|
||||
snprintf (errmsg, sizeof(errmsg), msg, arg);
|
||||
snprintf (errmsg, sizeof(errmsg)-1, msg, arg);
|
||||
errmsg[sizeof(errmsg)-1] = 0; /* ensure NULL termination */
|
||||
flexerror (errmsg);
|
||||
}
|
||||
|
||||
|
||||
/* lerrsf_fatal - as lerrsf, but call flexfatal */
|
||||
|
||||
void lerrsf_fatal (msg, arg)
|
||||
const char *msg, arg[];
|
||||
{
|
||||
char errmsg[MAXLINE];
|
||||
|
||||
snprintf (errmsg, sizeof(errmsg)-1, msg, arg);
|
||||
errmsg[sizeof(errmsg)-1] = 0; /* ensure NULL termination */
|
||||
flexfatal (errmsg);
|
||||
}
|
||||
|
||||
|
||||
/* line_directive_out - spit out a "#line" statement */
|
||||
|
||||
void line_directive_out (output_file, do_infile)
|
||||
@ -497,11 +456,7 @@ void line_directive_out (output_file, do_infile)
|
||||
if (do_infile)
|
||||
snprintf (directive, sizeof(directive), line_fmt, linenum, filename);
|
||||
else {
|
||||
if (output_file == stdout)
|
||||
/* Account for the line directive itself. */
|
||||
++out_linenum;
|
||||
|
||||
snprintf (directive, sizeof(directive), line_fmt, out_linenum, filename);
|
||||
snprintf (directive, sizeof(directive), line_fmt, 0, filename);
|
||||
}
|
||||
|
||||
/* If output_file is nil then we should put the directive in
|
||||
@ -675,7 +630,7 @@ Char myesc (array)
|
||||
int sptr = 2;
|
||||
|
||||
while (isascii (array[sptr]) &&
|
||||
isxdigit ((char) array[sptr]))
|
||||
isxdigit (array[sptr]))
|
||||
/* Don't increment inside loop control
|
||||
* because if isdigit() is a macro it might
|
||||
* expand into multiple increments ...
|
||||
@ -718,7 +673,6 @@ void out (str)
|
||||
const char *str;
|
||||
{
|
||||
fputs (str, stdout);
|
||||
out_line_count (str);
|
||||
}
|
||||
|
||||
void out_dec (fmt, n)
|
||||
@ -726,7 +680,6 @@ void out_dec (fmt, n)
|
||||
int n;
|
||||
{
|
||||
fprintf (stdout, fmt, n);
|
||||
out_line_count (fmt);
|
||||
}
|
||||
|
||||
void out_dec2 (fmt, n1, n2)
|
||||
@ -734,7 +687,6 @@ void out_dec2 (fmt, n1, n2)
|
||||
int n1, n2;
|
||||
{
|
||||
fprintf (stdout, fmt, n1, n2);
|
||||
out_line_count (fmt);
|
||||
}
|
||||
|
||||
void out_hex (fmt, x)
|
||||
@ -742,35 +694,18 @@ void out_hex (fmt, x)
|
||||
unsigned int x;
|
||||
{
|
||||
fprintf (stdout, fmt, x);
|
||||
out_line_count (fmt);
|
||||
}
|
||||
|
||||
void out_line_count (str)
|
||||
const char *str;
|
||||
{
|
||||
register int i;
|
||||
|
||||
for (i = 0; str[i]; ++i)
|
||||
if (str[i] == '\n')
|
||||
++out_linenum;
|
||||
}
|
||||
|
||||
void out_str (fmt, str)
|
||||
const char *fmt, str[];
|
||||
{
|
||||
fprintf (stdout,fmt, str);
|
||||
out_line_count (fmt);
|
||||
out_line_count (str);
|
||||
}
|
||||
|
||||
void out_str3 (fmt, s1, s2, s3)
|
||||
const char *fmt, s1[], s2[], s3[];
|
||||
{
|
||||
fprintf (stdout,fmt, s1, s2, s3);
|
||||
out_line_count (fmt);
|
||||
out_line_count (s1);
|
||||
out_line_count (s2);
|
||||
out_line_count (s3);
|
||||
}
|
||||
|
||||
void out_str_dec (fmt, str, n)
|
||||
@ -778,17 +713,12 @@ void out_str_dec (fmt, str, n)
|
||||
int n;
|
||||
{
|
||||
fprintf (stdout,fmt, str, n);
|
||||
out_line_count (fmt);
|
||||
out_line_count (str);
|
||||
}
|
||||
|
||||
void outc (c)
|
||||
int c;
|
||||
{
|
||||
fputc (c, stdout);
|
||||
|
||||
if (c == '\n')
|
||||
++out_linenum;
|
||||
}
|
||||
|
||||
void outn (str)
|
||||
@ -796,8 +726,6 @@ void outn (str)
|
||||
{
|
||||
fputs (str,stdout);
|
||||
fputc('\n',stdout);
|
||||
out_line_count (str);
|
||||
++out_linenum;
|
||||
}
|
||||
|
||||
/** Print "m4_define( [[def]], [[val]])m4_dnl\n".
|
||||
|
104
missing
104
missing
@ -1,10 +1,10 @@
|
||||
#! /bin/sh
|
||||
# Common stub for a few missing GNU programs while installing.
|
||||
|
||||
scriptversion=2005-06-08.21
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
|
||||
# Free Software Foundation, Inc.
|
||||
# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
|
||||
# 2008, 2009 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
|
||||
@ -18,9 +18,7 @@ scriptversion=2005-06-08.21
|
||||
# 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.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# As a special exception to the GNU General Public License, if you
|
||||
# distribute this file as part of a program that contains a
|
||||
@ -33,6 +31,8 @@ if test $# -eq 0; then
|
||||
fi
|
||||
|
||||
run=:
|
||||
sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
|
||||
sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
|
||||
|
||||
# In the cases where this matters, `missing' is being run in the
|
||||
# srcdir already.
|
||||
@ -44,7 +44,7 @@ fi
|
||||
|
||||
msg="missing on your system"
|
||||
|
||||
case "$1" in
|
||||
case $1 in
|
||||
--run)
|
||||
# Try to run requested program, and just exit if it succeeds.
|
||||
run=
|
||||
@ -77,6 +77,7 @@ Supported PROGRAM values:
|
||||
aclocal touch file \`aclocal.m4'
|
||||
autoconf touch file \`configure'
|
||||
autoheader touch file \`config.h.in'
|
||||
autom4te touch the output file, or create a stub one
|
||||
automake touch all \`Makefile.in' files
|
||||
bison create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
flex create \`lex.yy.c', if possible, from existing .c
|
||||
@ -86,6 +87,9 @@ Supported PROGRAM values:
|
||||
tar try tar, gnutar, gtar, then tar without non-portable flags
|
||||
yacc create \`y.tab.[ch]', if possible, from existing .[ch]
|
||||
|
||||
Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
|
||||
\`g' are ignored when checking the name.
|
||||
|
||||
Send bug reports to <bug-automake@gnu.org>."
|
||||
exit $?
|
||||
;;
|
||||
@ -103,15 +107,22 @@ Send bug reports to <bug-automake@gnu.org>."
|
||||
|
||||
esac
|
||||
|
||||
# normalize program name to check for.
|
||||
program=`echo "$1" | sed '
|
||||
s/^gnu-//; t
|
||||
s/^gnu//; t
|
||||
s/^g//; t'`
|
||||
|
||||
# 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)
|
||||
# the program). This is about non-GNU programs, so use $1 not
|
||||
# $program.
|
||||
case $1 in
|
||||
lex*|yacc*)
|
||||
# Not GNU programs, they don't have --version.
|
||||
;;
|
||||
|
||||
tar)
|
||||
tar*)
|
||||
if test -n "$run"; then
|
||||
echo 1>&2 "ERROR: \`tar' requires --run"
|
||||
exit 1
|
||||
@ -135,7 +146,7 @@ esac
|
||||
|
||||
# If it does not exist, or fails to run (possibly an outdated version),
|
||||
# try to emulate it.
|
||||
case "$1" in
|
||||
case $program in
|
||||
aclocal*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
@ -145,7 +156,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch aclocal.m4
|
||||
;;
|
||||
|
||||
autoconf)
|
||||
autoconf*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`${configure_ac}'. You might want to install the
|
||||
@ -154,7 +165,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch configure
|
||||
;;
|
||||
|
||||
autoheader)
|
||||
autoheader*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified \`acconfig.h' or \`${configure_ac}'. You might want
|
||||
@ -164,7 +175,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
test -z "$files" && files="config.h"
|
||||
touch_files=
|
||||
for f in $files; do
|
||||
case "$f" in
|
||||
case $f in
|
||||
*:*) touch_files="$touch_files "`echo "$f" |
|
||||
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
|
||||
*) touch_files="$touch_files $f.in";;
|
||||
@ -184,7 +195,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
while read f; do touch "$f"; done
|
||||
;;
|
||||
|
||||
autom4te)
|
||||
autom4te*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is needed, but is $msg.
|
||||
You might have modified some files without having the
|
||||
@ -192,8 +203,8 @@ WARNING: \`$1' is needed, but is $msg.
|
||||
You can get \`$1' as part of \`Autoconf' from any GNU
|
||||
archive site."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
|
||||
test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
@ -207,80 +218,78 @@ WARNING: \`$1' is needed, but is $msg.
|
||||
fi
|
||||
;;
|
||||
|
||||
bison|yacc)
|
||||
bison*|yacc*)
|
||||
echo 1>&2 "\
|
||||
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."
|
||||
rm -f y.tab.c y.tab.h
|
||||
if [ $# -ne 1 ]; then
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
case $LASTARG in
|
||||
*.y)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.c
|
||||
fi
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" y.tab.h
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f y.tab.h ]; then
|
||||
if test ! -f y.tab.h; then
|
||||
echo >y.tab.h
|
||||
fi
|
||||
if [ ! -f y.tab.c ]; then
|
||||
if test ! -f y.tab.c; then
|
||||
echo 'main() { return 0; }' >y.tab.c
|
||||
fi
|
||||
;;
|
||||
|
||||
lex|flex)
|
||||
lex*|flex*)
|
||||
echo 1>&2 "\
|
||||
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."
|
||||
rm -f lex.yy.c
|
||||
if [ $# -ne 1 ]; then
|
||||
if test $# -ne 1; then
|
||||
eval LASTARG="\${$#}"
|
||||
case "$LASTARG" in
|
||||
case $LASTARG in
|
||||
*.l)
|
||||
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
|
||||
if [ -f "$SRCFILE" ]; then
|
||||
if test -f "$SRCFILE"; then
|
||||
cp "$SRCFILE" lex.yy.c
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -f lex.yy.c ]; then
|
||||
if test ! -f lex.yy.c; then
|
||||
echo 'main() { return 0; }' >lex.yy.c
|
||||
fi
|
||||
;;
|
||||
|
||||
help2man)
|
||||
help2man*)
|
||||
echo 1>&2 "\
|
||||
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."
|
||||
|
||||
file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
|
||||
if test -z "$file"; then
|
||||
file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
|
||||
fi
|
||||
if [ -f "$file" ]; then
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -f "$file"; then
|
||||
touch $file
|
||||
else
|
||||
test -z "$file" || exec >$file
|
||||
echo ".ab help2man is required to generate this page"
|
||||
exit 1
|
||||
exit $?
|
||||
fi
|
||||
;;
|
||||
|
||||
makeinfo)
|
||||
makeinfo*)
|
||||
echo 1>&2 "\
|
||||
WARNING: \`$1' is $msg. You should only need it if
|
||||
you modified a \`.texi' or \`.texinfo' file, or any other file
|
||||
@ -289,11 +298,17 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
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'`
|
||||
file=`echo "$*" | sed -n "$sed_output"`
|
||||
test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
|
||||
if test -z "$file"; then
|
||||
# ... or it is the one specified with @setfilename ...
|
||||
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
|
||||
file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
|
||||
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
|
||||
@ -303,7 +318,7 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
touch $file
|
||||
;;
|
||||
|
||||
tar)
|
||||
tar*)
|
||||
shift
|
||||
|
||||
# We have already tried tar in the generic part.
|
||||
@ -317,13 +332,13 @@ WARNING: \`$1' is $msg. You should only need it if
|
||||
fi
|
||||
firstarg="$1"
|
||||
if shift; then
|
||||
case "$firstarg" in
|
||||
case $firstarg in
|
||||
*o*)
|
||||
firstarg=`echo "$firstarg" | sed s/o//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
;;
|
||||
esac
|
||||
case "$firstarg" in
|
||||
case $firstarg in
|
||||
*h*)
|
||||
firstarg=`echo "$firstarg" | sed s/h//`
|
||||
tar "$firstarg" "$@" && exit 0
|
||||
@ -356,5 +371,6 @@ exit 0
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-end: "$"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
|
45
parse.h
45
parse.h
@ -1,27 +1,37 @@
|
||||
/* 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.
|
||||
/* A Bison parser, made by GNU Bison 2.4.1. */
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
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.
|
||||
|
||||
the Free Software Foundation, either version 3 of the License, 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. */
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
/* 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
|
||||
@ -126,14 +136,13 @@
|
||||
|
||||
|
||||
|
||||
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef int YYSTYPE;
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
#endif
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
|
||||
|
||||
|
10
parse.y
10
parse.y
@ -723,11 +723,9 @@ singleton : singleton '*'
|
||||
|
||||
| fullccl
|
||||
{
|
||||
/* Sort characters for fast searching. We
|
||||
* use a shell sort since this list could
|
||||
* be large.
|
||||
/* Sort characters for fast searching.
|
||||
*/
|
||||
cshell( ccltbl + cclmap[$1], ccllen[$1], true );
|
||||
qsort( ccltbl + cclmap[$1], ccllen[$1], sizeof (*ccltbl), cclcmp );
|
||||
|
||||
if ( useecs )
|
||||
mkeccl( ccltbl + cclmap[$1], ccllen[$1],
|
||||
@ -968,6 +966,10 @@ void build_eof_action()
|
||||
else
|
||||
{
|
||||
sceof[scon_stk[i]] = true;
|
||||
|
||||
if (previous_continued_action /* && previous action was regular */)
|
||||
add_action("YY_RULE_SETUP\n");
|
||||
|
||||
snprintf( action_text, sizeof(action_text), "case YY_STATE_EOF(%s):\n",
|
||||
scname[scon_stk[i]] );
|
||||
add_action( action_text );
|
||||
|
16
regex.c
16
regex.c
@ -55,14 +55,20 @@ void flex_regcomp(regex_t *preg, const char *regex, int cflags)
|
||||
|
||||
if ((err = regcomp (preg, regex, cflags)) != 0) {
|
||||
const int errbuf_sz = 200;
|
||||
char * errbuf=0;
|
||||
char *errbuf, *rxerr;
|
||||
|
||||
errbuf = (char*)flex_alloc(errbuf_sz *sizeof(char));
|
||||
regerror (err, preg, errbuf, errbuf_sz);
|
||||
snprintf (errbuf, errbuf_sz, "regcomp failed: %s\n", errbuf);
|
||||
errbuf = (char*)flex_alloc(errbuf_sz *sizeof(char));
|
||||
if (!errbuf)
|
||||
flexfatal(_("Unable to allocate buffer to report regcomp"));
|
||||
rxerr = (char*)flex_alloc(errbuf_sz *sizeof(char));
|
||||
if (!rxerr)
|
||||
flexfatal(_("Unable to allocate buffer for regerror"));
|
||||
regerror (err, preg, rxerr, errbuf_sz);
|
||||
snprintf (errbuf, errbuf_sz, "regcomp for \"%s\" failed: %s", regex, rxerr);
|
||||
|
||||
flexfatal (errbuf);
|
||||
free(errbuf);
|
||||
free(rxerr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -80,6 +86,8 @@ char *regmatch_dup (regmatch_t * m, const char *src)
|
||||
return NULL;
|
||||
len = m->rm_eo - m->rm_so;
|
||||
str = (char *) flex_alloc ((len + 1) * sizeof (char));
|
||||
if (!str)
|
||||
flexfatal(_("Unable to allocate a copy of the match"));
|
||||
strncpy (str, src + m->rm_so, len);
|
||||
str[len] = 0;
|
||||
return str;
|
||||
|
71
scan.c
71
scan.c
@ -8,7 +8,7 @@
|
||||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
#define YY_FLEX_SUBMINOR_VERSION 35
|
||||
#define YY_FLEX_SUBMINOR_VERSION 36
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
@ -53,7 +53,6 @@ typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@ -84,6 +83,8 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -152,7 +153,12 @@ typedef unsigned int flex_uint32_t;
|
||||
typedef struct yy_buffer_state *YY_BUFFER_STATE;
|
||||
#endif
|
||||
|
||||
extern int yyleng;
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
#endif
|
||||
|
||||
extern yy_size_t yyleng;
|
||||
|
||||
extern FILE *yyin, *yyout;
|
||||
|
||||
@ -178,11 +184,6 @@ extern FILE *yyin, *yyout;
|
||||
|
||||
#define unput(c) yyunput( c, (yytext_ptr) )
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
#endif
|
||||
|
||||
#ifndef YY_STRUCT_YY_BUFFER_STATE
|
||||
#define YY_STRUCT_YY_BUFFER_STATE
|
||||
struct yy_buffer_state
|
||||
@ -200,7 +201,7 @@ struct yy_buffer_state
|
||||
/* Number of characters read into yy_ch_buf, not including EOB
|
||||
* characters.
|
||||
*/
|
||||
int yy_n_chars;
|
||||
yy_size_t yy_n_chars;
|
||||
|
||||
/* Whether we "own" the buffer - i.e., we know we created it,
|
||||
* and can realloc() it to grow it, and should free() it to
|
||||
@ -270,8 +271,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
|
||||
|
||||
/* yy_hold_char holds the character lost when yytext is formed. */
|
||||
static char yy_hold_char;
|
||||
static int yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
int yyleng;
|
||||
static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
|
||||
yy_size_t yyleng;
|
||||
|
||||
/* Points to current character in buffer. */
|
||||
static char *yy_c_buf_p = (char *) 0;
|
||||
@ -299,7 +300,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
|
||||
|
||||
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
|
||||
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
|
||||
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len );
|
||||
|
||||
void *yyalloc (yy_size_t );
|
||||
void *yyrealloc (void *,yy_size_t );
|
||||
@ -1973,7 +1974,7 @@ extern const char *escaped_qstart, *escaped_qend;
|
||||
|
||||
|
||||
|
||||
#line 1977 "scan.c"
|
||||
#line 1978 "scan.c"
|
||||
|
||||
#define INITIAL 0
|
||||
#define SECT2 1
|
||||
@ -2035,7 +2036,7 @@ FILE *yyget_out (void );
|
||||
|
||||
void yyset_out (FILE * out_str );
|
||||
|
||||
int yyget_leng (void );
|
||||
yy_size_t yyget_leng (void );
|
||||
|
||||
char *yyget_text (void );
|
||||
|
||||
@ -2093,7 +2094,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
||||
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@ -2104,7 +2105,7 @@ static int input (void );
|
||||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
||||
{ \
|
||||
int c = '*'; \
|
||||
int n; \
|
||||
size_t n; \
|
||||
for ( n = 0; n < max_size && \
|
||||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
||||
buf[n] = (char) c; \
|
||||
@ -2200,7 +2201,7 @@ YY_DECL
|
||||
Char nmdef[MAXLINE];
|
||||
|
||||
|
||||
#line 2204 "scan.c"
|
||||
#line 2205 "scan.c"
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
@ -2416,7 +2417,7 @@ YY_RULE_SETUP
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
synerr( _("Definition name too long\n"));
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -2649,7 +2650,7 @@ YY_RULE_SETUP
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
format_synerr( _("Definition value for {%s} too long\n"), nmstr);
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
/* Skip trailing whitespace. */
|
||||
@ -3096,7 +3097,7 @@ YY_RULE_SETUP
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
synerr( _("Option line too long\n"));
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
nmstr[strlen( nmstr ) - 1] = '\0';
|
||||
@ -3908,7 +3909,7 @@ YY_RULE_SETUP
|
||||
case 225:
|
||||
YY_RULE_SETUP
|
||||
#line 886 "scan.l"
|
||||
ACTION_ECHO_QEND;
|
||||
ACTION_ECHO_QSTART;
|
||||
YY_BREAK
|
||||
case 226:
|
||||
YY_RULE_SETUP
|
||||
@ -3954,7 +3955,7 @@ ACTION_ECHO; --bracelevel;
|
||||
case 231:
|
||||
YY_RULE_SETUP
|
||||
#line 909 "scan.l"
|
||||
ACTION_ECHO_QEND;
|
||||
ACTION_ECHO_QSTART;
|
||||
YY_BREAK
|
||||
case 232:
|
||||
YY_RULE_SETUP
|
||||
@ -4107,7 +4108,7 @@ YY_RULE_SETUP
|
||||
#line 969 "scan.l"
|
||||
YY_FATAL_ERROR( "flex scanner jammed" );
|
||||
YY_BREAK
|
||||
#line 4111 "scan.c"
|
||||
#line 4112 "scan.c"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
case YY_STATE_EOF(SECT2):
|
||||
case YY_STATE_EOF(CODEBLOCK):
|
||||
@ -4306,7 +4307,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
else
|
||||
{
|
||||
int num_to_read =
|
||||
yy_size_t num_to_read =
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
|
||||
|
||||
while ( num_to_read <= 0 )
|
||||
@ -4322,7 +4323,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
/* Read in more data. */
|
||||
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
|
||||
(yy_n_chars), (size_t) num_to_read );
|
||||
(yy_n_chars), num_to_read );
|
||||
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
|
||||
}
|
||||
@ -4413,7 +4414,7 @@ static int yy_get_next_buffer (void)
|
||||
if ( ! yy_is_jam )
|
||||
*(yy_state_ptr)++ = yy_current_state;
|
||||
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
|
||||
static void yyunput (int c, register char * yy_bp )
|
||||
@ -4428,7 +4429,7 @@ static int yy_get_next_buffer (void)
|
||||
if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
|
||||
{ /* need to shift things up to make room */
|
||||
/* +2 for EOB chars. */
|
||||
register int number_to_move = (yy_n_chars) + 2;
|
||||
register yy_size_t 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 =
|
||||
@ -4477,7 +4478,7 @@ static int yy_get_next_buffer (void)
|
||||
|
||||
else
|
||||
{ /* need more input */
|
||||
int offset = (yy_c_buf_p) - (yytext_ptr);
|
||||
yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
|
||||
++(yy_c_buf_p);
|
||||
|
||||
switch ( yy_get_next_buffer( ) )
|
||||
@ -4639,10 +4640,6 @@ static void yy_load_buffer_state (void)
|
||||
yyfree((void *) b );
|
||||
}
|
||||
|
||||
#ifndef __cplusplus
|
||||
extern int isatty (int );
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/* 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.
|
||||
@ -4755,7 +4752,7 @@ void yypop_buffer_state (void)
|
||||
*/
|
||||
static void yyensure_buffer_stack (void)
|
||||
{
|
||||
int num_to_alloc;
|
||||
yy_size_t num_to_alloc;
|
||||
|
||||
if (!(yy_buffer_stack)) {
|
||||
|
||||
@ -4847,12 +4844,12 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
|
||||
/** 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.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_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 yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
char *buf;
|
||||
@ -4971,7 +4968,7 @@ FILE *yyget_out (void)
|
||||
/** Get the length of the current token.
|
||||
*
|
||||
*/
|
||||
int yyget_leng (void)
|
||||
yy_size_t yyget_leng (void)
|
||||
{
|
||||
return yyleng;
|
||||
}
|
||||
|
10
scan.l
10
scan.l
@ -189,7 +189,7 @@ M4QEND "]]"
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
synerr( _("Definition name too long\n"));
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ M4QEND "]]"
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
format_synerr( _("Definition value for {%s} too long\n"), nmstr);
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
/* Skip trailing whitespace. */
|
||||
@ -440,7 +440,7 @@ M4QEND "]]"
|
||||
}
|
||||
else
|
||||
{
|
||||
synerr( _("Input line too long\n"));
|
||||
synerr( _("Option line too long\n"));
|
||||
FLEX_EXIT(EXIT_FAILURE);
|
||||
}
|
||||
nmstr[strlen( nmstr ) - 1] = '\0';
|
||||
@ -883,7 +883,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
|
||||
}
|
||||
}
|
||||
|
||||
{M4QSTART} ACTION_ECHO_QEND;
|
||||
{M4QSTART} ACTION_ECHO_QSTART;
|
||||
{M4QEND} ACTION_ECHO_QEND;
|
||||
. ACTION_ECHO;
|
||||
{NL} {
|
||||
@ -906,7 +906,7 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
|
||||
<ACTION>{
|
||||
"{" ACTION_ECHO; ++bracelevel;
|
||||
"}" ACTION_ECHO; --bracelevel;
|
||||
{M4QSTART} ACTION_ECHO_QEND;
|
||||
{M4QSTART} ACTION_ECHO_QSTART;
|
||||
{M4QEND} ACTION_ECHO_QEND;
|
||||
[^[:alpha:]_{}"'/\n\[\]]+ ACTION_ECHO;
|
||||
[\[\]] ACTION_ECHO;
|
||||
|
@ -60,6 +60,9 @@ sf_init (void)
|
||||
{
|
||||
assert(_sf_stk == NULL);
|
||||
_sf_stk = (scanflags_t*) flex_alloc ( sizeof(scanflags_t) * (_sf_max = 32));
|
||||
if (!_sf_stk)
|
||||
lerrsf_fatal(_("Unable to allocate %ld of stack"),
|
||||
(long)sizeof(scanflags_t));
|
||||
_sf_stk[_sf_top_ix] = 0;
|
||||
}
|
||||
|
||||
|
11
scanopt.c
11
scanopt.c
@ -189,7 +189,7 @@ scanopt_t *scanopt_init (options, argc, argv, flags)
|
||||
s->aux = (struct _aux *) malloc (s->optc * sizeof (struct _aux));
|
||||
|
||||
for (i = 0; i < s->optc; i++) {
|
||||
const char *p, *pname;
|
||||
const Char *p, *pname;
|
||||
const struct optspec_t *opt;
|
||||
struct _aux *aux;
|
||||
|
||||
@ -200,11 +200,11 @@ scanopt_t *scanopt_init (options, argc, argv, flags)
|
||||
|
||||
if (opt->opt_fmt[0] == '-' && opt->opt_fmt[1] == '-') {
|
||||
aux->flags |= IS_LONG;
|
||||
pname = opt->opt_fmt + 2;
|
||||
pname = (const Char *)(opt->opt_fmt + 2);
|
||||
s->has_long = 1;
|
||||
}
|
||||
else {
|
||||
pname = opt->opt_fmt + 1;
|
||||
pname = (const Char *)(opt->opt_fmt + 1);
|
||||
s->has_short = 1;
|
||||
}
|
||||
aux->printlen = strlen (opt->opt_fmt);
|
||||
@ -481,7 +481,7 @@ int scanopt_usage (scanner, fp, usage)
|
||||
|
||||
while (*p && n < maxlen[1]
|
||||
&& *p != '\n') {
|
||||
if (isspace (*p)
|
||||
if (isspace ((Char)(*p))
|
||||
|| *p == '-') lastws =
|
||||
p;
|
||||
n++;
|
||||
@ -504,8 +504,7 @@ int scanopt_usage (scanner, fp, usage)
|
||||
if (lastws) {
|
||||
fprintf (fp,
|
||||
"%.*s\n",
|
||||
lastws -
|
||||
pstart,
|
||||
(int)(lastws - pstart),
|
||||
pstart);
|
||||
pstart =
|
||||
lastws + 1;
|
||||
|
126
skel.c
126
skel.c
@ -90,7 +90,7 @@ const char *skel[] = {
|
||||
"#define FLEX_SCANNER",
|
||||
"#define YY_FLEX_MAJOR_VERSION 2",
|
||||
"#define YY_FLEX_MINOR_VERSION 5",
|
||||
"#define YY_FLEX_SUBMINOR_VERSION 35",
|
||||
"#define YY_FLEX_SUBMINOR_VERSION 37",
|
||||
"#if YY_FLEX_SUBMINOR_VERSION > 0",
|
||||
"#define FLEX_BETA",
|
||||
"#endif",
|
||||
@ -244,7 +244,6 @@ const char *skel[] = {
|
||||
"typedef unsigned char flex_uint8_t; ",
|
||||
"typedef unsigned short int flex_uint16_t;",
|
||||
"typedef unsigned int flex_uint32_t;",
|
||||
"#endif /* ! C99 */",
|
||||
"",
|
||||
"/* Limits of integral types. */",
|
||||
"#ifndef INT8_MIN",
|
||||
@ -275,6 +274,7 @@ const char *skel[] = {
|
||||
"#define UINT32_MAX (4294967295U)",
|
||||
"#endif",
|
||||
"",
|
||||
"#endif /* ! C99 */",
|
||||
"",
|
||||
"#endif /* ! FLEXINT_H */",
|
||||
"",
|
||||
@ -285,6 +285,7 @@ const char *skel[] = {
|
||||
"#include <iostream> ",
|
||||
"#include <errno.h>",
|
||||
"#include <cstdlib>",
|
||||
"#include <cstdio>",
|
||||
"#include <cstring>",
|
||||
"/* end standard C++ headers. */",
|
||||
"%endif",
|
||||
@ -355,6 +356,8 @@ const char *skel[] = {
|
||||
"",
|
||||
"%# Declare yyguts variable",
|
||||
"m4_define( [[M4_YY_DECL_GUTS_VAR]], [[struct yyguts_t * yyg = (struct yyguts_t*)yyscanner]])",
|
||||
"%# Perform a noop access on yyguts to prevent unused variable complains",
|
||||
"m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[(void)yyg]])",
|
||||
"%# For use wherever a Global is accessed or assigned.",
|
||||
"m4_define( [[YY_G]], [[yyg->$1]])",
|
||||
"",
|
||||
@ -412,6 +415,7 @@ const char *skel[] = {
|
||||
"",
|
||||
"%# Define these macros to be no-ops.",
|
||||
"m4_define( [[M4_YY_DECL_GUTS_VAR]], [[m4_dnl]])",
|
||||
"m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[m4_dnl]])",
|
||||
"m4_define( [[YY_G]], [[($1)]])",
|
||||
"m4_define( [[M4_YY_PROTO_LAST_ARG]])",
|
||||
"m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])",
|
||||
@ -526,8 +530,13 @@ const char *skel[] = {
|
||||
"typedef struct yy_buffer_state *YY_BUFFER_STATE;",
|
||||
"#endif",
|
||||
"",
|
||||
"#ifndef YY_TYPEDEF_YY_SIZE_T",
|
||||
"#define YY_TYPEDEF_YY_SIZE_T",
|
||||
"typedef size_t yy_size_t;",
|
||||
"#endif",
|
||||
"",
|
||||
"%if-not-reentrant",
|
||||
"extern int yyleng;",
|
||||
"extern yy_size_t yyleng;",
|
||||
"%endif",
|
||||
"",
|
||||
"%if-c-only",
|
||||
@ -589,11 +598,6 @@ const char *skel[] = {
|
||||
"#define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )",
|
||||
"]])",
|
||||
"",
|
||||
"#ifndef YY_TYPEDEF_YY_SIZE_T",
|
||||
"#define YY_TYPEDEF_YY_SIZE_T",
|
||||
"typedef size_t yy_size_t;",
|
||||
"#endif",
|
||||
"",
|
||||
"#ifndef YY_STRUCT_YY_BUFFER_STATE",
|
||||
"#define YY_STRUCT_YY_BUFFER_STATE",
|
||||
"struct yy_buffer_state",
|
||||
@ -618,7 +622,7 @@ const char *skel[] = {
|
||||
" /* Number of characters read into yy_ch_buf, not including EOB",
|
||||
" * characters.",
|
||||
" */",
|
||||
" int yy_n_chars;",
|
||||
" yy_size_t yy_n_chars;",
|
||||
"",
|
||||
" /* Whether we \"own\" the buffer - i.e., we know we created it,",
|
||||
" * and can realloc() it to grow it, and should free() it to",
|
||||
@ -707,8 +711,8 @@ const char *skel[] = {
|
||||
"%not-for-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;",
|
||||
"static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */",
|
||||
"yy_size_t yyleng;",
|
||||
"",
|
||||
"/* Points to current character in buffer. */",
|
||||
"static char *yy_c_buf_p = (char *) 0;",
|
||||
@ -744,7 +748,7 @@ const char *skel[] = {
|
||||
"",
|
||||
"YY_BUFFER_STATE yy_scan_buffer M4_YY_PARAMS( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );",
|
||||
"YY_BUFFER_STATE yy_scan_string M4_YY_PARAMS( yyconst char *yy_str M4_YY_PROTO_LAST_ARG );",
|
||||
"YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, int len M4_YY_PROTO_LAST_ARG );",
|
||||
"YY_BUFFER_STATE yy_scan_bytes M4_YY_PARAMS( yyconst char *bytes, yy_size_t len M4_YY_PROTO_LAST_ARG );",
|
||||
"",
|
||||
"%endif",
|
||||
"",
|
||||
@ -870,8 +874,8 @@ const char *skel[] = {
|
||||
" size_t yy_buffer_stack_max; /**< capacity of stack. */",
|
||||
" YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */",
|
||||
" char yy_hold_char;",
|
||||
" int yy_n_chars;",
|
||||
" int yyleng_r;",
|
||||
" yy_size_t yy_n_chars;",
|
||||
" yy_size_t yyleng_r;",
|
||||
" char *yy_c_buf_p;",
|
||||
" int yy_init;",
|
||||
" int yy_start;",
|
||||
@ -1008,7 +1012,7 @@ const char *skel[] = {
|
||||
"",
|
||||
"m4_ifdef( [[M4_YY_NO_GET_LENG]],,",
|
||||
"[[",
|
||||
"int yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
|
||||
"yy_size_t yyget_leng M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
|
||||
"]])",
|
||||
"",
|
||||
"m4_ifdef( [[M4_YY_NO_GET_TEXT]],,",
|
||||
@ -1026,6 +1030,22 @@ const char *skel[] = {
|
||||
"void yyset_lineno M4_YY_PARAMS( int line_number M4_YY_PROTO_LAST_ARG );",
|
||||
"]])",
|
||||
"",
|
||||
"m4_ifdef( [[M4_YY_REENTRANT]],",
|
||||
"[[",
|
||||
"m4_ifdef( [[M4_YY_NO_GET_COLUMN]],,",
|
||||
"[[",
|
||||
"int yyget_column M4_YY_PARAMS( M4_YY_PROTO_ONLY_ARG );",
|
||||
"]])",
|
||||
"]])",
|
||||
"",
|
||||
"m4_ifdef( [[M4_YY_REENTRANT]],",
|
||||
"[[",
|
||||
"m4_ifdef( [[M4_YY_NO_SET_COLUMN]],,",
|
||||
"[[",
|
||||
"void yyset_column M4_YY_PARAMS( int column_no M4_YY_PROTO_LAST_ARG );",
|
||||
"]])",
|
||||
"]])",
|
||||
"",
|
||||
"%if-bison-bridge",
|
||||
"m4_ifdef( [[M4_YY_NO_GET_LVAL]],,",
|
||||
"[[",
|
||||
@ -1141,7 +1161,7 @@ const char *skel[] = {
|
||||
"/* This used to be an fputs(), but since the string might contain NUL's,",
|
||||
" * we now use fwrite().",
|
||||
" */",
|
||||
"#define ECHO fwrite( yytext, yyleng, 1, yyout )",
|
||||
"#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)",
|
||||
"%endif",
|
||||
"%if-c++-only C++ definition",
|
||||
"#define ECHO LexerOutput( yytext, yyleng )",
|
||||
@ -1840,7 +1860,7 @@ const char *skel[] = {
|
||||
"",
|
||||
" else",
|
||||
" {",
|
||||
" int num_to_read =",
|
||||
" yy_size_t num_to_read =",
|
||||
" YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;",
|
||||
"",
|
||||
" while ( num_to_read <= 0 )",
|
||||
@ -1852,14 +1872,14 @@ const char *skel[] = {
|
||||
"]],",
|
||||
"[[",
|
||||
" /* just a shorter name for the current buffer */",
|
||||
" YY_BUFFER_STATE b = YY_CURRENT_BUFFER;",
|
||||
" YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;",
|
||||
"",
|
||||
" 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;",
|
||||
" yy_size_t new_size = b->yy_buf_size * 2;",
|
||||
"",
|
||||
" if ( new_size <= 0 )",
|
||||
" b->yy_buf_size += b->yy_buf_size / 8;",
|
||||
@ -1891,7 +1911,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), (size_t) num_to_read );",
|
||||
" YY_G(yy_n_chars), num_to_read );",
|
||||
"",
|
||||
" YY_CURRENT_BUFFER_LVALUE->yy_n_chars = YY_G(yy_n_chars);",
|
||||
" }",
|
||||
@ -1975,6 +1995,7 @@ const char *skel[] = {
|
||||
" M4_YY_DECL_GUTS_VAR(); /* This var may be unused depending upon options. */",
|
||||
"%% [17.0] code to find the next state, and perhaps do backing up, goes here",
|
||||
"",
|
||||
" M4_YY_NOOP_GUTS_VAR();",
|
||||
" return yy_is_jam ? 0 : yy_current_state;",
|
||||
"}",
|
||||
"",
|
||||
@ -1999,7 +2020,7 @@ const char *skel[] = {
|
||||
" 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 yy_size_t number_to_move = YY_G(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 =",
|
||||
@ -2065,7 +2086,7 @@ const char *skel[] = {
|
||||
"",
|
||||
" else",
|
||||
" { /* need more input */",
|
||||
" int offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);",
|
||||
" yy_size_t offset = YY_G(yy_c_buf_p) - YY_G(yytext_ptr);",
|
||||
" ++YY_G(yy_c_buf_p);",
|
||||
"",
|
||||
" switch ( yy_get_next_buffer( M4_YY_CALL_ONLY_ARG ) )",
|
||||
@ -2261,25 +2282,6 @@ const char *skel[] = {
|
||||
"}",
|
||||
"",
|
||||
"",
|
||||
"%if-c-only",
|
||||
"m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]],,",
|
||||
"[[",
|
||||
" m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,",
|
||||
" [[",
|
||||
"#ifndef __cplusplus",
|
||||
"extern int isatty M4_YY_PARAMS( int );",
|
||||
"#endif /* __cplusplus */",
|
||||
" ]])",
|
||||
"]])",
|
||||
"%endif",
|
||||
"",
|
||||
"%if-c++-only",
|
||||
"m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]],,",
|
||||
"[[",
|
||||
"extern \"C\" int isatty M4_YY_PARAMS( int );",
|
||||
"]])",
|
||||
"%endif",
|
||||
"",
|
||||
"/* 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.",
|
||||
@ -2444,7 +2446,7 @@ const char *skel[] = {
|
||||
"void yyFlexLexer::yyensure_buffer_stack(void)",
|
||||
"%endif",
|
||||
"{",
|
||||
" int num_to_alloc;",
|
||||
" yy_size_t num_to_alloc;",
|
||||
" M4_YY_DECL_GUTS_VAR();",
|
||||
"",
|
||||
" if (!YY_G(yy_buffer_stack)) {",
|
||||
@ -2559,12 +2561,12 @@ const char *skel[] = {
|
||||
"%if-c-only",
|
||||
"/** 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.",
|
||||
" * @param yybytes the byte buffer to scan",
|
||||
" * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.",
|
||||
" * M4_YY_DOC_PARAM",
|
||||
" * @return the newly allocated buffer state object.",
|
||||
" */",
|
||||
"YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, int ,_yybytes_len)",
|
||||
"YY_BUFFER_STATE yy_scan_bytes YYFARGS2( yyconst char *,yybytes, yy_size_t ,_yybytes_len)",
|
||||
"{",
|
||||
" YY_BUFFER_STATE b;",
|
||||
" char *buf;",
|
||||
@ -2790,7 +2792,7 @@ const char *skel[] = {
|
||||
"/** Get the length of the current token.",
|
||||
" * M4_YY_DOC_PARAM",
|
||||
" */",
|
||||
"int yyget_leng YYFARGS0(void)",
|
||||
"yy_size_t yyget_leng YYFARGS0(void)",
|
||||
"{",
|
||||
" M4_YY_DECL_GUTS_VAR();",
|
||||
" return yyleng;",
|
||||
@ -2838,7 +2840,7 @@ const char *skel[] = {
|
||||
" [[",
|
||||
" /* lineno is only valid if an input buffer exists. */",
|
||||
" if (! YY_CURRENT_BUFFER )",
|
||||
" yy_fatal_error( \"yyset_lineno called with no buffer\" M4_YY_CALL_LAST_ARG); ",
|
||||
" YY_FATAL_ERROR( \"yyset_lineno called with no buffer\" );",
|
||||
" ]])",
|
||||
" yylineno = line_number;",
|
||||
"}",
|
||||
@ -2860,7 +2862,7 @@ const char *skel[] = {
|
||||
" [[",
|
||||
" /* column is only valid if an input buffer exists. */",
|
||||
" if (! YY_CURRENT_BUFFER )",
|
||||
" yy_fatal_error( \"yyset_column called with no buffer\" M4_YY_CALL_LAST_ARG); ",
|
||||
" YY_FATAL_ERROR( \"yyset_column called with no buffer\" );",
|
||||
" ]])",
|
||||
" yycolumn = column_no;",
|
||||
"}",
|
||||
@ -3325,7 +3327,7 @@ const char *skel[] = {
|
||||
" return -1;",
|
||||
"",
|
||||
" if (th->th_magic != YYTBL_MAGIC){",
|
||||
" yy_fatal_error(\"bad magic number\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"bad magic number\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
"",
|
||||
@ -3336,7 +3338,7 @@ const char *skel[] = {
|
||||
"",
|
||||
" /* Sanity check on header size. Greater than 1k suggests some funny business. */",
|
||||
" if (th->th_hsize < 16 || th->th_hsize > 1024){",
|
||||
" yy_fatal_error(\"insane header size detected\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"insane header size detected\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
"",
|
||||
@ -3401,7 +3403,7 @@ const char *skel[] = {
|
||||
" transdmap = yytbl_dmap_lookup (dmap, YYTD_ID_TRANSITION M4_YY_CALL_LAST_ARG);",
|
||||
"",
|
||||
" if ((dmap = yytbl_dmap_lookup (dmap, td.td_id M4_YY_CALL_LAST_ARG)) == NULL){",
|
||||
" yy_fatal_error(\"table id not found in map.\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"table id not found in map.\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
"",
|
||||
@ -3468,7 +3470,7 @@ const char *skel[] = {
|
||||
" t32 = t8;",
|
||||
" break;",
|
||||
" default: ",
|
||||
" yy_fatal_error(\"invalid td_flags\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"invalid td_flags\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
" }",
|
||||
@ -3488,26 +3490,26 @@ const char *skel[] = {
|
||||
" case sizeof (flex_int32_t):",
|
||||
" if (M4_YY_TABLES_VERIFY){",
|
||||
" if( ((flex_int32_t *) v)[0] != (flex_int32_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at YYTD_STRUCT flex_int32_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int32_t\" );",
|
||||
" }else",
|
||||
" ((flex_int32_t *) v)[0] = (flex_int32_t) t32;",
|
||||
" break;",
|
||||
" case sizeof (flex_int16_t):",
|
||||
" if (M4_YY_TABLES_VERIFY ){",
|
||||
" if(((flex_int16_t *) v)[0] != (flex_int16_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at YYTD_STRUCT flex_int16_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int16_t\" );",
|
||||
" }else",
|
||||
" ((flex_int16_t *) v)[0] = (flex_int16_t) t32;",
|
||||
" break;",
|
||||
" case sizeof(flex_int8_t):",
|
||||
" if (M4_YY_TABLES_VERIFY ){",
|
||||
" if( ((flex_int8_t *) v)[0] != (flex_int8_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at YYTD_STRUCT flex_int8_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at YYTD_STRUCT flex_int8_t\" );",
|
||||
" }else",
|
||||
" ((flex_int8_t *) v)[0] = (flex_int8_t) t32;",
|
||||
" break;",
|
||||
" default:",
|
||||
" yy_fatal_error(\"invalid dmap->dm_sz for struct\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"invalid dmap->dm_sz for struct\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
"",
|
||||
@ -3521,7 +3523,7 @@ const char *skel[] = {
|
||||
"",
|
||||
"",
|
||||
" if (!transdmap){",
|
||||
" yy_fatal_error(\"transition table not found\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"transition table not found\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
" ",
|
||||
@ -3532,7 +3534,7 @@ const char *skel[] = {
|
||||
"",
|
||||
" if(M4_YY_TABLES_VERIFY ){",
|
||||
" if( ((struct yy_trans_info **) p)[0] != v)",
|
||||
" yy_fatal_error(\"tables verification failed at YYTD_PTRANS\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at YYTD_PTRANS\" );",
|
||||
" }else",
|
||||
" ((struct yy_trans_info **) p)[0] = v;",
|
||||
" ",
|
||||
@ -3545,7 +3547,7 @@ const char *skel[] = {
|
||||
" case sizeof (flex_int32_t):",
|
||||
" if(M4_YY_TABLES_VERIFY ){",
|
||||
" if( ((flex_int32_t *) p)[0] != (flex_int32_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at flex_int32_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at flex_int32_t\" );",
|
||||
" }else",
|
||||
" ((flex_int32_t *) p)[0] = (flex_int32_t) t32;",
|
||||
" p = ((flex_int32_t *) p) + 1;",
|
||||
@ -3553,7 +3555,7 @@ const char *skel[] = {
|
||||
" case sizeof (flex_int16_t):",
|
||||
" if(M4_YY_TABLES_VERIFY ){",
|
||||
" if( ((flex_int16_t *) p)[0] != (flex_int16_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at flex_int16_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at flex_int16_t\" );",
|
||||
" }else",
|
||||
" ((flex_int16_t *) p)[0] = (flex_int16_t) t32;",
|
||||
" p = ((flex_int16_t *) p) + 1;",
|
||||
@ -3561,13 +3563,13 @@ const char *skel[] = {
|
||||
" case sizeof (flex_int8_t):",
|
||||
" if(M4_YY_TABLES_VERIFY ){",
|
||||
" if( ((flex_int8_t *) p)[0] != (flex_int8_t) t32)",
|
||||
" yy_fatal_error(\"tables verification failed at flex_int8_t\" M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"tables verification failed at flex_int8_t\" );",
|
||||
" }else",
|
||||
" ((flex_int8_t *) p)[0] = (flex_int8_t) t32;",
|
||||
" p = ((flex_int8_t *) p) + 1;",
|
||||
" break;",
|
||||
" default:",
|
||||
" yy_fatal_error(\"invalid dmap->dm_sz for plain int\" /*TODO: not fatal.*/ M4_YY_CALL_LAST_ARG);",
|
||||
" YY_FATAL_ERROR( \"invalid dmap->dm_sz for plain int\" ); /* TODO: not fatal. */",
|
||||
" return -1;",
|
||||
" }",
|
||||
" }",
|
||||
|
5
tables.c
5
tables.c
@ -57,8 +57,10 @@ int yytbl_write16 (struct yytbl_writer *wr, flex_uint16_t v);
|
||||
int yytbl_write8 (struct yytbl_writer *wr, flex_uint8_t v);
|
||||
int yytbl_writen (struct yytbl_writer *wr, void *v, flex_int32_t len);
|
||||
static flex_int32_t yytbl_data_geti (const struct yytbl_data *tbl, int i);
|
||||
/* XXX Not used
|
||||
static flex_int32_t yytbl_data_getijk (const struct yytbl_data *tbl, int i,
|
||||
int j, int k);
|
||||
*/
|
||||
|
||||
|
||||
/** Initialize the table writer.
|
||||
@ -330,6 +332,8 @@ int yytbl_write8 (struct yytbl_writer *wr, flex_uint8_t v)
|
||||
}
|
||||
|
||||
|
||||
/* XXX Not Used */
|
||||
#if 0
|
||||
/** Extract data element [i][j] from array data tables.
|
||||
* @param tbl data table
|
||||
* @param i index into higher dimension array. i should be zero for one-dimensional arrays.
|
||||
@ -364,6 +368,7 @@ static flex_int32_t yytbl_data_getijk (const struct yytbl_data *tbl, int i,
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* Not used */
|
||||
|
||||
/** Extract data element [i] from array data tables treated as a single flat array of integers.
|
||||
* Be careful for 2-dimensional arrays or for YYTD_ID_TRANSITION, which is an array
|
||||
|
222
ylwrap
Executable file
222
ylwrap
Executable file
@ -0,0 +1,222 @@
|
||||
#! /bin/sh
|
||||
# ylwrap - wrapper for lex/yacc invocations.
|
||||
|
||||
scriptversion=2009-04-28.21; # UTC
|
||||
|
||||
# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
|
||||
# 2007, 2009 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# 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 files given. Try \`$0 --help' for more information." 1>&2
|
||||
exit 1
|
||||
;;
|
||||
--basedir)
|
||||
basedir=$2
|
||||
shift 2
|
||||
;;
|
||||
-h|--h*)
|
||||
cat <<\EOF
|
||||
Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
|
||||
|
||||
Wrapper for lex/yacc invocations, renaming files as desired.
|
||||
|
||||
INPUT is the input file
|
||||
OUTPUT is one file PROG generates
|
||||
DESIRED is the file we actually want instead of OUTPUT
|
||||
PROGRAM is program to run
|
||||
ARGS are passed to PROG
|
||||
|
||||
Any number of OUTPUT,DESIRED pairs may be used.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v|--v*)
|
||||
echo "ylwrap $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
# The input.
|
||||
input="$1"
|
||||
shift
|
||||
case "$input" in
|
||||
[\\/]* | ?:[\\/]*)
|
||||
# Absolute path; do nothing.
|
||||
;;
|
||||
*)
|
||||
# Relative path. Make it absolute.
|
||||
input="`pwd`/$input"
|
||||
;;
|
||||
esac
|
||||
|
||||
pairlist=
|
||||
while test "$#" -ne 0; do
|
||||
if test "$1" = "--"; then
|
||||
shift
|
||||
break
|
||||
fi
|
||||
pairlist="$pairlist $1"
|
||||
shift
|
||||
done
|
||||
|
||||
# The program to run.
|
||||
prog="$1"
|
||||
shift
|
||||
# Make any relative path in $prog absolute.
|
||||
case "$prog" in
|
||||
[\\/]* | ?:[\\/]*) ;;
|
||||
*[\\/]*) prog="`pwd`/$prog" ;;
|
||||
esac
|
||||
|
||||
# FIXME: add hostname here for parallel makes that run commands on
|
||||
# other machines. But that might take us over the 14-char limit.
|
||||
dirname=ylwrap$$
|
||||
trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
|
||||
mkdir $dirname || exit 1
|
||||
|
||||
cd $dirname
|
||||
|
||||
case $# in
|
||||
0) "$prog" "$input" ;;
|
||||
*) "$prog" "$@" "$input" ;;
|
||||
esac
|
||||
ret=$?
|
||||
|
||||
if test $ret -eq 0; then
|
||||
set X $pairlist
|
||||
shift
|
||||
first=yes
|
||||
# Since DOS filename conventions don't allow two dots,
|
||||
# the DOS version of Bison writes out y_tab.c instead of y.tab.c
|
||||
# and y_tab.h instead of y.tab.h. Test to see if this is the case.
|
||||
y_tab_nodot="no"
|
||||
if test -f y_tab.c || test -f y_tab.h; then
|
||||
y_tab_nodot="yes"
|
||||
fi
|
||||
|
||||
# The directory holding the input.
|
||||
input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
|
||||
# Quote $INPUT_DIR so we can use it in a regexp.
|
||||
# FIXME: really we should care about more than `.' and `\'.
|
||||
input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
|
||||
|
||||
while test "$#" -ne 0; do
|
||||
from="$1"
|
||||
# Handle y_tab.c and y_tab.h output by DOS
|
||||
if test $y_tab_nodot = "yes"; then
|
||||
if test $from = "y.tab.c"; then
|
||||
from="y_tab.c"
|
||||
else
|
||||
if test $from = "y.tab.h"; then
|
||||
from="y_tab.h"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if test -f "$from"; then
|
||||
# If $2 is an absolute path name, then just use that,
|
||||
# otherwise prepend `../'.
|
||||
case "$2" in
|
||||
[\\/]* | ?:[\\/]*) target="$2";;
|
||||
*) target="../$2";;
|
||||
esac
|
||||
|
||||
# We do not want to overwrite a header file if it hasn't
|
||||
# changed. This avoid useless recompilations. However the
|
||||
# parser itself (the first file) should always be updated,
|
||||
# because it is the destination of the .y.c rule in the
|
||||
# Makefile. Divert the output of all other files to a temporary
|
||||
# file so we can compare them to existing versions.
|
||||
if test $first = no; then
|
||||
realtarget="$target"
|
||||
target="tmp-`echo $target | sed s/.*[\\/]//g`"
|
||||
fi
|
||||
# Edit out `#line' or `#' directives.
|
||||
#
|
||||
# We don't want the resulting debug information to point at
|
||||
# an absolute srcdir; it is better for it to just mention the
|
||||
# .y file with no path.
|
||||
#
|
||||
# We want to use the real output file name, not yy.lex.c for
|
||||
# instance.
|
||||
#
|
||||
# We want the include guards to be adjusted too.
|
||||
FROM=`echo "$from" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||
TARGET=`echo "$2" | sed \
|
||||
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
|
||||
-e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
|
||||
|
||||
sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
|
||||
-e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
|
||||
|
||||
# Check whether header files must be updated.
|
||||
if test $first = no; then
|
||||
if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
|
||||
echo "$2" is unchanged
|
||||
rm -f "$target"
|
||||
else
|
||||
echo updating "$2"
|
||||
mv -f "$target" "$realtarget"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
# A missing file is only an error for the first file. This
|
||||
# is a blatant hack to let us support using "yacc -d". If -d
|
||||
# is not specified, we don't want an error when the header
|
||||
# file is "missing".
|
||||
if test $first = yes; then
|
||||
ret=1
|
||||
fi
|
||||
fi
|
||||
shift
|
||||
shift
|
||||
first=no
|
||||
done
|
||||
else
|
||||
ret=$?
|
||||
fi
|
||||
|
||||
# Remove the directory.
|
||||
cd ..
|
||||
rm -rf $dirname
|
||||
|
||||
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-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
Loading…
x
Reference in New Issue
Block a user