Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
585889745c | ||
|
|
f8fd9731d4 | ||
|
|
695cab8a1e | ||
|
|
c842b49f83 | ||
|
|
8521281aef | ||
|
|
219db78e6a | ||
|
|
efeb6ef019 | ||
|
|
31b751703f | ||
|
|
d7cb3bf631 | ||
|
|
5cb26ac3f9 | ||
|
|
c9ade3f92b | ||
|
|
ca94d99782 | ||
|
|
d45bd0692e | ||
|
|
2eb82096a4 | ||
|
|
d694cb8d3f | ||
|
|
9cfe5b9b09 | ||
|
|
0f2a58a818 | ||
|
|
b101188a76 | ||
|
|
d5574c7387 | ||
|
|
feeba9873f | ||
|
|
9a501a4238 | ||
|
|
e7b3a67adf | ||
|
|
01f4aaddd9 | ||
|
|
e6fa974cd7 | ||
|
|
30788806b9 | ||
|
|
6711981a2d | ||
|
|
abe63d33d1 | ||
|
|
feac8a6abf | ||
|
|
2ab6a3baf7 | ||
|
|
90bf7c7bcb | ||
|
|
f858b63e23 | ||
|
|
5f41ac5a99 | ||
|
|
cd01f7ff4e | ||
|
|
cdb639cd7b | ||
|
|
ef4f78f43b | ||
|
|
c0ca7faab9 | ||
|
|
e58cdd1de0 | ||
|
|
673f2caf34 | ||
|
|
2cce209b58 | ||
|
|
bb9f458eb1 | ||
|
|
f754c608ff | ||
|
|
f1bfe65b3d | ||
|
|
a05e39ae47 | ||
|
|
f0161f217e | ||
|
|
a631f5da8d | ||
|
|
8b1fbf674f | ||
|
|
d3de49f842 | ||
|
|
98018e3f58 | ||
|
|
21121feec9 | ||
|
|
4c7e3a5a67 | ||
|
|
a752d7c1c2 | ||
|
|
60b578fdaa | ||
|
|
b33fd4c43a | ||
|
|
3971b6146a | ||
|
|
67b3e44872 | ||
|
|
6a6e69af76 | ||
|
|
dcd8e8b401 | ||
|
|
e1f6b4a263 | ||
|
|
5574881ff4 | ||
|
|
ec4f23d5d2 | ||
|
|
1985bb3c7a | ||
|
|
4081efa083 | ||
|
|
d5023f5a48 | ||
|
|
e104f5589c | ||
|
|
6aa652b089 | ||
|
|
e63c0bb6b6 | ||
|
|
c42de062bb | ||
|
|
065c9fbe22 | ||
|
|
ff7bc8af46 | ||
|
|
c0508df61d | ||
|
|
e7d45afc6a | ||
|
|
c984ab0fd0 | ||
|
|
aa775c8711 | ||
|
|
23882383d4 | ||
|
|
08e1b25b0e | ||
|
|
87472f5aa7 | ||
|
|
12d2f86080 | ||
|
|
ea1faa2d09 | ||
|
|
11b7512664 | ||
|
|
3c0f34cf12 | ||
|
|
661d603b65 | ||
|
|
a17d79e9c7 | ||
|
|
0db9f8903a | ||
|
|
37a6184dab | ||
|
|
24fd055133 | ||
|
|
1d62d3eb24 | ||
|
|
4b5111d977 | ||
|
|
f2943389fd | ||
|
|
71d3525ad2 | ||
|
|
dd1afa37e1 | ||
|
|
b84ad149c9 | ||
|
|
08e19c55ca | ||
|
|
e199cb6bdf | ||
|
|
7e06407175 | ||
|
|
931d29bdea | ||
|
|
b115f389b2 | ||
|
|
a657f0c6f5 | ||
|
|
fb731ac022 | ||
|
|
d64a5263cf | ||
|
|
24e73c4446 | ||
|
|
aa50a492fc | ||
|
|
c1ed5df2f6 | ||
|
|
535524ea6b | ||
|
|
3f2b9a4d63 | ||
|
|
7af066b952 | ||
|
|
e784a805ef | ||
|
|
0f370436e1 | ||
|
|
19cffb0ff0 | ||
|
|
36c2c0a2e8 | ||
|
|
faa877a843 | ||
|
|
8a044dbe6d | ||
|
|
ef32155253 | ||
|
|
ea4b0a129e | ||
|
|
6bebb264a9 | ||
|
|
c55bf919cc | ||
|
|
8bd14f1387 | ||
|
|
90c62441b3 | ||
|
|
9e00f250f6 | ||
|
|
b4735d6925 | ||
|
|
71b9c0cedc | ||
|
|
2c0152a0c3 | ||
|
|
1f3db3aeb3 | ||
|
|
db4f5e0fe5 | ||
|
|
2ae437ad54 | ||
|
|
2b290d8ebd | ||
|
|
3a70bac04a | ||
|
|
2c7e34bb95 | ||
|
|
596a221844 | ||
|
|
0be3198908 | ||
|
|
5cadd124f8 | ||
|
|
7284970311 | ||
|
|
2c3f463909 | ||
|
|
af72e9e222 | ||
|
|
385766c5cf | ||
|
|
5dfc45ef5a |
+3
-3
@@ -1,6 +1,6 @@
|
||||
*.orig
|
||||
*.rej
|
||||
*.tar.bz2
|
||||
*.sig
|
||||
*.tar.gz
|
||||
*.tar.lz
|
||||
*~
|
||||
@@ -14,12 +14,12 @@ Makefile.in
|
||||
aclocal.m4
|
||||
autom4te.cache
|
||||
autoscan.log
|
||||
build-aux/
|
||||
config.log
|
||||
config.status
|
||||
configure
|
||||
configure.scan
|
||||
flex-*/
|
||||
libtool
|
||||
stamp-*
|
||||
m4/
|
||||
build-aux/
|
||||
stamp-*
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
Aaron Stone <sodabrew@users.sourceforge.net>
|
||||
Akim Demaille <akim@lrde.epita.fr>
|
||||
Alastair Hughes <hobbitalastair@gmail.com>
|
||||
Alex Kennedy <alexzanderkennedy@gmail.com>
|
||||
Alexis La Goutte <alexis.lagoutte@gmail.com>
|
||||
Bastian Köcher <git@kchr.de>
|
||||
Christoph Junghans <ottxor@gentoo.org>
|
||||
Christos Zoulas <christos@zoulas.com>
|
||||
Cyril Brulebois <kibi@debian.org>
|
||||
Demi Obenour <demiobenour@gmail.com>
|
||||
Dennis Clarke <dclarke@blastwave.org>
|
||||
Egor Pugin <egor.pugin@gmail.com>
|
||||
Elias Pipping <pipping@users.sourceforge.net>
|
||||
Explorer09 <explorer09@gmail.com>
|
||||
Hans-Bernhard Broeker <HBBroeker@T-Online.de>
|
||||
Harald van Dijk <harald@gigawatt.nl>
|
||||
Hugh Sasse <hgs@dmu.ac.uk>
|
||||
Jaska Uimonen <jaska.uimonen@helsinki.fi>
|
||||
Jeff Smith <whydoubt@gmail.com>
|
||||
John Millaway <john43@users.sourceforge.net>
|
||||
Manoj Srivastava <srivasta@golden-gryphon.com>
|
||||
Mariusz Pluciński <mplucinski@mplucinski.com>
|
||||
Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
|
||||
Michael McConville <mmcconville@mykolab.com> <mmcco@mykolab.com>
|
||||
Michael Reed <m.reed@mykolab.com>
|
||||
Michael van Elst <mlelstv@NetBSD.org>
|
||||
Mightyjo <mightyjo@gmail.com>
|
||||
Mike Frysinger <vapier@gentoo.org>
|
||||
OBATA Akio <obache@NetBSD.org>
|
||||
Robert Larice <Robert.Larice@t-online.de> rlar <rlar>
|
||||
Robert Larice <Robert.Larice@t-online.de> Robert.Larice Robert Larice <Robert.Larice@t-online.de>
|
||||
Robert Minsk <rminsk@users.sourceforge.net>
|
||||
Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
Sean McBride <sean@rogue-research.com>
|
||||
Serguey Parkhomovsky <sergueyparkhomovsky@gmail.com> <xindigo@gmail.com>
|
||||
Simon Sobisch <simonsobisch@web.de>
|
||||
Stefan Reinauer <stefan.reinauer@coreboot.org>
|
||||
Thomas Klausner <wiz@NetBSD.org>
|
||||
Till Varoquaux <till.varoquaux@gmail.com>
|
||||
Tobias Klauser <tklauser@distanz.ch>
|
||||
Todd C. Miller <Todd.Miller@courtesan.com>
|
||||
Translation Project <coordinator@translationproject.org> <coordinators@translationproject.org>
|
||||
Translation Project <coordinator@translationproject.org> <translation@translationproject.org>
|
||||
Vern Paxson <vern@ee.lbl.gov>
|
||||
Will Estes <westes575@gmail.com> <wlestes@users.sourceforge.net>
|
||||
Yuri <yuri@tsoft.com>
|
||||
luistung <dongliang1986@gmail.com>
|
||||
lukeallardyce <lukeallardyce@users.sourceforge.net>
|
||||
nomis52 <nomis52@users.sourceforge.net>
|
||||
viktor.shepel <shepelvictor@bigmir.net>
|
||||
+1
-1
@@ -1 +1 @@
|
||||
2.6.3
|
||||
2.6.4
|
||||
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
language: c
|
||||
|
||||
compiler:
|
||||
- gcc
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- autoconf
|
||||
- bison
|
||||
- gcc-6
|
||||
- help2man
|
||||
- lzip
|
||||
- texinfo
|
||||
- texlive
|
||||
|
||||
before_script:
|
||||
- ./.travis/install-gettext.sh
|
||||
- ./.travis/install-automake.sh
|
||||
- export PATH=$HOME/bin:$PATH
|
||||
|
||||
script: ./autogen.sh && ./configure && make && make check && make distcheck
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
wget -nv https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz
|
||||
|
||||
# Verify tarball against hard-coded hashes. GPG signatures require an external
|
||||
# keyserver which might be offline, which is undesirable for build server use.
|
||||
# It's equally secure to just hard-code hashes, provided they're trusted (i.e.
|
||||
# you verify a hash against a GPG signature once).
|
||||
echo 'd3cd5fc9bbea9f977b51799180cde5d253dcba96 *automake-1.15.1.tar.gz'|
|
||||
sha1sum -c || :
|
||||
printf '%s *automake-1.15.1.tar.gz\n' \
|
||||
f0d4717ebe2c76cec5d487de090f6e1c0f784b0d382fd964ffa846287e2a364a\
|
||||
52531a26ab98b7033ac04ed302a247b3b114299def54819a03439bfc962ff61b|
|
||||
sha512sum -c || :
|
||||
|
||||
tar xf automake-1.15.1.tar.gz
|
||||
cd automake-1.15.1
|
||||
# Don't flood Travis CI build log with dependency packages unless error occurs.
|
||||
./configure --quiet --prefix="$HOME" ||
|
||||
{ s=$? && cat config.log && (exit $s); }
|
||||
make -s V=0 >/dev/null 2>&1 || make -s V=1
|
||||
make -s install >make_install.log 2>&1 ||
|
||||
{ s=$? && cat make_install.log && (exit $s); }
|
||||
rm make_install.log || :
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash -ex
|
||||
|
||||
wget -nv https://ftp.gnu.org/gnu/gettext/gettext-0.19.8.1.tar.lz
|
||||
|
||||
# Verify tarball against hard-coded hashes. GPG signatures require an external
|
||||
# keyserver which might be offline, which is undesirable for build server use.
|
||||
# It's equally secure to just hard-code hashes, provided they're trusted (i.e.
|
||||
# you verify a hash against a GPG signature once).
|
||||
echo '404e072c455f79be4a2458863c19fb55a217771e *gettext-0.19.8.1.tar.lz'|
|
||||
sha1sum -c || :
|
||||
printf '%s *gettext-0.19.8.1.tar.lz\n' \
|
||||
27c7a15be1ffd30a0182e264d0bf896850a295160872e1b1b9d1e9a15bc486cd\
|
||||
93465c131f948206fa0bbe2e3eacfc8489dd0cfc5ea5dcf05eff3829e27fc60f|
|
||||
sha512sum -c || :
|
||||
|
||||
tar xf gettext-0.19.8.1.tar.lz
|
||||
cd gettext-0.19.8.1
|
||||
# Don't flood Travis CI build log with dependency packages unless error occurs.
|
||||
# libacl is not used in this Travis build system.
|
||||
./configure --quiet --prefix="$HOME" --disable-acl ||
|
||||
{ s=$? && cat config.log && (exit $s); }
|
||||
make -s V=0 >/dev/null 2>&1 || make -s V=1
|
||||
make -s install >make_install.log 2>&1 ||
|
||||
{ s=$? && cat make_install.log && (exit $s); }
|
||||
rm make_install.log || :
|
||||
+30
-3
@@ -38,8 +38,11 @@ dist_doc_DATA = \
|
||||
README.md
|
||||
|
||||
EXTRA_DIST = \
|
||||
.indent.pro \
|
||||
autogen.sh
|
||||
.indent.pro
|
||||
|
||||
dist_noinst_SCRIPTS = \
|
||||
autogen.sh \
|
||||
po/update_linguas.sh
|
||||
|
||||
SUBDIRS = \
|
||||
src \
|
||||
@@ -49,6 +52,29 @@ SUBDIRS = \
|
||||
tests \
|
||||
tools
|
||||
|
||||
# Convenience targets to build libfl only
|
||||
# These are actually wrappers around automake- and libtool-generated targets
|
||||
|
||||
libfl:
|
||||
cd src && $(MAKE) $(AM_MAKEFLAGS) libfl.la libfl.pc
|
||||
|
||||
install-libfl:
|
||||
cd src && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) lib_LTLIBRARIES=libfl.la \
|
||||
pkgconfig_DATA=libfl.pc install-libLTLIBRARIES install-pkgconfigDATA
|
||||
|
||||
uninstall-libfl:
|
||||
cd src && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
lib_LTLIBRARIES=libfl.la pkgconfig_DATA=libfl.pc \
|
||||
uninstall-libLTLIBRARIES uninstall-pkgconfigDATA
|
||||
|
||||
# libfl.pc is cleaned via 'distclean' target
|
||||
clean-libfl:
|
||||
cd src && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) lib_LTLIBRARIES=libfl.la clean-libLTLIBRARIES \
|
||||
clean-libtool
|
||||
|
||||
# Create the ChangeLog, but only if we're inside a git working directory
|
||||
|
||||
ChangeLog: $(srcdir)/tools/git2cl
|
||||
@@ -63,4 +89,5 @@ install-exec-hook:
|
||||
cd $(DESTDIR)$(bindir) && \
|
||||
$(LN_S) -f flex$(EXEEXT) flex++$(EXEEXT)
|
||||
|
||||
.PHONY: ChangeLog indent
|
||||
.PHONY: libfl install-libfl uninstall-libfl clean-libfl \
|
||||
ChangeLog indent
|
||||
|
||||
@@ -1,5 +1,59 @@
|
||||
flex NEWS
|
||||
|
||||
* Noteworthy changes in release ?.? (????-??-??) [?]
|
||||
|
||||
** build
|
||||
|
||||
*** Flex now includes its own <config.h> header before including
|
||||
system headers so that any system specific features detected by
|
||||
configure are taken into account during compilation of flex
|
||||
itself.
|
||||
|
||||
*** The flex build system now includes Makefile targets at the top
|
||||
level to allow just building and installing libfl.
|
||||
|
||||
*** The flex distribution now includes a file, src/libfl.pc, to allow
|
||||
using pkgconfig to find out what flags to use when building
|
||||
against libfl from flex.
|
||||
|
||||
*** Various edge cases, mostly involving out-of-tree builds have been
|
||||
accounted for in the autotools build system.
|
||||
|
||||
*** A crash during building on NetBSD has been fixed.
|
||||
|
||||
*** Flex is now automatically built by travis-ci. That should increase
|
||||
the visibility of bugs and help prevent regressions.
|
||||
|
||||
** documentation
|
||||
|
||||
*** new bg, pt, uk translations from the translation project
|
||||
|
||||
** scanner
|
||||
|
||||
*** Some memory leaks have been fixed.
|
||||
|
||||
*** A long standing bug that effected expressions of the form c{i,j}
|
||||
where 'c' is a character and {i,j} describes the number of times
|
||||
to match against 'c' when case sensitivity was turned on has been
|
||||
fixed.
|
||||
|
||||
*** New option: --backup-file allows setting the name of the file
|
||||
written containing backing up information. Useful if you need
|
||||
backing up information from multiple scanners in the same
|
||||
directory.
|
||||
|
||||
*** flex emits correct line number directives when line numbers refer
|
||||
to the file containing the line number directives.
|
||||
|
||||
*** The options {no,}yy{get,set}_column are now supported.
|
||||
|
||||
** test
|
||||
|
||||
*** Generating the various tableoptions make rules is now more portable.
|
||||
|
||||
*** Tests of the options -C*f and -C*F will now run correctly on
|
||||
filesystems that are not case sensitive.
|
||||
|
||||
* Noteworthy changes in release 2.6.4 (2017-05-06) [stable]
|
||||
|
||||
** build
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
[](https://travis-ci.org/westes/flex)
|
||||
|
||||
This is flex, the fast lexical analyzer generator.
|
||||
|
||||
flex is a tool for generating scanners: programs which recognize
|
||||
lexical patterns in text.
|
||||
|
||||
The flex codebase is kept in
|
||||
[Git on GitHub.](https://github.com/westes/flex)
|
||||
[Git on GitHub.](https://github.com/westes/flex) Source releases of flex with some intermediate files already built can be found on [the github releases page.](https://github.com/westes/flex/releases)
|
||||
|
||||
Use GitHub's [issues](https://github.com/westes/flex/issues) and
|
||||
[pull request](https://github.com/westes/flex) features to file bugs
|
||||
@@ -19,9 +21,10 @@ There are several mailing lists available as well:
|
||||
* flex-devel@lists.sourceforge.net - where you can discuss development
|
||||
of flex itself
|
||||
|
||||
Find information on subscribing to the mailing lists at:
|
||||
|
||||
http://sourceforge.net/mail/?group_id=97492
|
||||
Find information on subscribing to the mailing lists or search in the
|
||||
archive at: https://sourceforge.net/p/flex/mailman/
|
||||
Note: Posting is only allowed from addresses that are subscribed to
|
||||
the lists.
|
||||
|
||||
The flex distribution contains the following files which may be of
|
||||
interest:
|
||||
@@ -33,7 +36,7 @@ interest:
|
||||
* COPYING - flex's copyright and license.
|
||||
* doc/ - user documentation.
|
||||
* examples/ - containing examples of some possible flex scanners and a
|
||||
few other things. See the file examples/README for more
|
||||
few other things. See the file examples/README for more
|
||||
details.
|
||||
* tests/ - regression tests. See TESTS/README for details.
|
||||
* po/ - internationalization support files.
|
||||
@@ -43,7 +46,7 @@ repository:
|
||||
|
||||
* compiler suite - flex is built with gcc
|
||||
* bash, or a good Bourne-style shell
|
||||
* m4 - m4 -p needs to work; GNU m4 and a few others are suitable
|
||||
* m4 - `m4 -P` needs to work; GNU m4 and a few others are suitable
|
||||
* GNU bison; to generate parse.c from parse.y
|
||||
* autoconf; for handling the build system
|
||||
* automake; for Makefile generation
|
||||
@@ -74,12 +77,14 @@ in the top level of the flex source tree.
|
||||
This script calls the various tools needed to get flex ready for the
|
||||
GNU-style configure script to be able to work.
|
||||
|
||||
From this point on, building flex follows the usual routine:
|
||||
From this point on, building flex follows the usual routine:
|
||||
|
||||
```bash
|
||||
configure && make && make install
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
This file is part of flex.
|
||||
|
||||
This code is derived from software contributed to Berkeley by
|
||||
|
||||
+20
-16
@@ -25,10 +25,12 @@
|
||||
# autoconf requirements and initialization
|
||||
|
||||
AC_INIT([the fast lexical analyser generator],[2.6.4],[flex-help@lists.sourceforge.net],[flex])
|
||||
AC_PREREQ([2.60])
|
||||
AC_CONFIG_SRCDIR([src/scan.l])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
LT_INIT
|
||||
AM_INIT_AUTOMAKE([1.11.3 -Wno-portability foreign check-news std-options dist-lzip parallel-tests subdir-objects])
|
||||
AM_INIT_AUTOMAKE([1.15 -Wno-portability foreign std-options dist-lzip parallel-tests subdir-objects])
|
||||
AC_CONFIG_HEADER([src/config.h])
|
||||
AC_CONFIG_LIBOBJ_DIR([lib])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
@@ -38,7 +40,7 @@ AC_SUBST(SHARED_VERSION_INFO)
|
||||
# checks for programs
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.18])
|
||||
AM_GNU_GETTEXT_VERSION([0.19.7])
|
||||
AC_PROG_YACC
|
||||
AS_IF([test "$YACC" != 'bison -y'], [
|
||||
YACC="\${top_srcdir}/build-aux/missing bison -y"
|
||||
@@ -54,6 +56,9 @@ AC_PROG_LN_S
|
||||
AC_PROG_AWK
|
||||
AC_PROG_INSTALL
|
||||
|
||||
pkgconfigdir=${libdir}/pkgconfig
|
||||
AC_SUBST(pkgconfigdir)
|
||||
|
||||
# allow passing a variable `WARNINGFLAGS',
|
||||
# either when invoking `configure', or when invoking `make'
|
||||
# default to something useful if GCC was detected
|
||||
@@ -153,21 +158,19 @@ AC_FUNC_REALLOC
|
||||
AS_IF([test "$cross_compiling" = yes],
|
||||
AC_MSG_WARN([result $ac_cv_func_realloc_0_nonnull guessed because of cross compilation]))
|
||||
|
||||
AC_CHECK_FUNCS([dup2 dnl
|
||||
memset dnl
|
||||
regcomp dnl
|
||||
strcasecmp dnl
|
||||
strchr dnl
|
||||
strdup dnl
|
||||
strtol dnl
|
||||
], [], [AC_MSG_ERROR(required library function not found on your system)])
|
||||
dnl Autoheader (<= 2.69) bug: "dnl" comments in a quoted argument of
|
||||
dnl AC_CHECK_FUNCS will expand wierdly in config.h.in.
|
||||
dnl (https://lists.gnu.org/archive/html/bug-autoconf/2018-02/msg00005.html)
|
||||
|
||||
# Optional library functions
|
||||
AC_CHECK_FUNCS([dnl
|
||||
pow dnl Used only by "examples/manual/expr"
|
||||
setlocale dnl Needed only if NLS is enabled
|
||||
reallocarray dnl OpenBSD function. We have replacement if not available.
|
||||
])
|
||||
AC_CHECK_FUNCS([dup2 memset regcomp strcasecmp strchr strdup strtol], [],
|
||||
[AC_MSG_ERROR(required library function not found on your system)])
|
||||
|
||||
# Optional library functions:
|
||||
# pow - Used only by "examples/manual/expr".
|
||||
# setlocale - Needed only if NLS is enabled.
|
||||
# reallocarr - NetBSD function. Use reallocarray if not available.
|
||||
# reallocarray - OpenBSD function. We have replacement if not available.
|
||||
AC_CHECK_FUNCS([pow setlocale reallocarr reallocarray])
|
||||
|
||||
AC_CONFIG_FILES(
|
||||
Makefile
|
||||
@@ -176,6 +179,7 @@ examples/Makefile
|
||||
examples/fastwc/Makefile
|
||||
examples/manual/Makefile
|
||||
po/Makefile.in
|
||||
src/libfl.pc
|
||||
src/Makefile
|
||||
tools/Makefile
|
||||
tests/Makefile
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ MAINTAINERCLEANFILES = flex.1
|
||||
CLEANFILES = *.aux *.cp *.cps *.fn *.fns *.hk *.hks *.ky *.log \
|
||||
*.op *.ops *.pg *.toc *.tp *.tps *.vr *.vrs
|
||||
|
||||
flex.1: $(top_srcdir)/configure.ac $(top_srcdir)/src/flex.skl $(top_srcdir)/src/options.c $(top_srcdir)/src/options.h | $(FLEX)
|
||||
flex.1: $(top_srcdir)/configure.ac $(top_srcdir)/src/cpp-flex.skl $(top_srcdir)/src/options.c $(top_srcdir)/src/options.h | $(FLEX)
|
||||
$(HELP2MAN) --name='$(PACKAGE_NAME)' --section=1 \
|
||||
--source='The Flex Project' --manual='Programming' \
|
||||
--output=$@ $(FLEX) \
|
||||
|
||||
+128
-10
@@ -192,7 +192,7 @@ FAQ
|
||||
* How can I build a two-pass scanner?::
|
||||
* How do I match any string not matched in the preceding rules?::
|
||||
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
|
||||
* Is there a way to make flex treat NULL like a regular character?::
|
||||
* Is there a way to make flex treat NUL like a regular character?::
|
||||
* Whenever flex can not match the input it says "flex scanner jammed".::
|
||||
* Why doesn't flex have non-greedy operators like perl does?::
|
||||
* Memory leak - 16386 bytes allocated by malloc.::
|
||||
@@ -269,6 +269,7 @@ Appendices
|
||||
* Bison Bridge::
|
||||
* M4 Dependency::
|
||||
* Common Patterns::
|
||||
* Adding More Target Languages
|
||||
|
||||
Indices
|
||||
|
||||
@@ -734,7 +735,7 @@ if X is @samp{a}, @samp{b}, @samp{f}, @samp{n}, @samp{r}, @samp{t}, or
|
||||
@samp{v}, then the ANSI-C interpretation of @samp{\x}. Otherwise, a
|
||||
literal @samp{X} (used to escape operators such as @samp{*})
|
||||
|
||||
@cindex NULL character in patterns, syntax of
|
||||
@cindex NUL character in patterns, syntax of
|
||||
@item \0
|
||||
a NUL character (ASCII code 0)
|
||||
|
||||
@@ -1978,15 +1979,23 @@ as though you had used
|
||||
@deftypefun void yy_pop_state ()
|
||||
pops the top of the stack and switches to it via
|
||||
@code{BEGIN}.
|
||||
The program execution aborts, if there is no state on the stack.
|
||||
@end deftypefun
|
||||
|
||||
@deftypefun int yy_top_state ()
|
||||
returns the top of the stack without altering the stack's contents.
|
||||
returns the top of the stack without altering the stack's contents
|
||||
if a top state on the stack exists or the current state via
|
||||
@code{YY_START}
|
||||
otherwise.
|
||||
@end deftypefun
|
||||
|
||||
@cindex memory, for start condition stacks
|
||||
The start condition stack grows dynamically and so has no built-in size
|
||||
limitation. If memory is exhausted, program execution aborts.
|
||||
The stack is not automatically reset. The function
|
||||
@code{yylex_destroy}
|
||||
should be called to reset and destroy the state stack which then frees
|
||||
other resources used by the scanner.
|
||||
|
||||
To use start condition stacks, your scanner must include a @code{%option
|
||||
stack} directive (@pxref{Scanner Options}).
|
||||
@@ -5140,10 +5149,10 @@ the version of flex that was used to create the serialized tables.
|
||||
|
||||
@item th_name[]
|
||||
Contains the name of this table set. The default is @samp{yytables},
|
||||
and is prefixed accordingly, e.g., @samp{footables}. Must be NULL-terminated.
|
||||
and is prefixed accordingly, e.g., @samp{footables}. Must be NUL-terminated.
|
||||
|
||||
@item th_pad64[]
|
||||
Zero or more NULL bytes, padding the entire header to the next 64-bit boundary
|
||||
Zero or more NUL bytes, padding the entire header to the next 64-bit boundary
|
||||
as calculated from the beginning of the header.
|
||||
@end table
|
||||
|
||||
@@ -5231,7 +5240,7 @@ The table data. This array may be a one- or two-dimensional array, of type
|
||||
@code{td_flags}, @code{td_hilen}, and @code{td_lolen} fields.
|
||||
|
||||
@item td_pad64[]
|
||||
Zero or more NULL bytes, padding the entire table to the next 64-bit boundary as
|
||||
Zero or more NUL bytes, padding the entire table to the next 64-bit boundary as
|
||||
calculated from the beginning of this table.
|
||||
@end table
|
||||
|
||||
@@ -5439,7 +5448,7 @@ publish them here.
|
||||
* How can I build a two-pass scanner?::
|
||||
* How do I match any string not matched in the preceding rules?::
|
||||
* I am trying to port code from AT&T lex that uses yysptr and yysbuf.::
|
||||
* Is there a way to make flex treat NULL like a regular character?::
|
||||
* Is there a way to make flex treat NUL like a regular character?::
|
||||
* Whenever flex can not match the input it says "flex scanner jammed".::
|
||||
* Why doesn't flex have non-greedy operators like perl does?::
|
||||
* Memory leak - 16386 bytes allocated by malloc.::
|
||||
@@ -6052,8 +6061,8 @@ what they're doing, and then replace @code{input()} with an appropriate definiti
|
||||
@code{YY_INPUT}. You shouldn't need to (and must not) replace
|
||||
@code{flex}'s @code{unput()} function.
|
||||
|
||||
@node Is there a way to make flex treat NULL like a regular character?
|
||||
@unnumberedsec Is there a way to make flex treat NULL like a regular character?
|
||||
@node Is there a way to make flex treat NUL like a regular character?
|
||||
@unnumberedsec Is there a way to make flex treat NUL like a regular character?
|
||||
|
||||
Yes, @samp{\0} and @samp{\x00} should both do the trick. Perhaps you have an ancient
|
||||
version of @code{flex}. The latest release is version @value{VERSION}.
|
||||
@@ -7689,6 +7698,7 @@ to declare local variables.
|
||||
@end example
|
||||
|
||||
@c TODO: Evaluate this faq.
|
||||
@c Note that the file is now named cpp-flex.skl
|
||||
@node unnamed-faq-87
|
||||
@unnumberedsec unnamed-faq-87
|
||||
@example
|
||||
@@ -8158,6 +8168,7 @@ See @ref{Top, , , bison, the GNU Bison Manual}.
|
||||
* Bison Bridge::
|
||||
* M4 Dependency::
|
||||
* Common Patterns::
|
||||
* Retargeting Flex::
|
||||
@end menu
|
||||
|
||||
@node Makefiles and Flex, Bison Bridge, Appendices, Appendices
|
||||
@@ -8404,7 +8415,7 @@ removing such sequences from your code.
|
||||
@code{m4} is only required at the time you run @code{flex}. The generated
|
||||
scanner is ordinary C or C++, and does @emph{not} require @code{m4}.
|
||||
|
||||
@node Common Patterns, ,M4 Dependency, Appendices
|
||||
@node Common Patterns,Retargeting Flex,M4 Dependency, Appendices
|
||||
@section Common Patterns
|
||||
@cindex patterns, common
|
||||
|
||||
@@ -8552,6 +8563,113 @@ to appear in a URI, including spaces and control characters. See
|
||||
@end table
|
||||
|
||||
|
||||
@node Retargeting Flex, ,Common Patterns, Appendices
|
||||
@section Retargeting Flex
|
||||
@cindex retargeting
|
||||
@cindex language independence
|
||||
|
||||
This appendix describes how to add support for a new target language
|
||||
to Flex.
|
||||
|
||||
The flex code has been factored to isolate knowledge of the specifics
|
||||
of each target language from the logic for building the lexer state
|
||||
tables.
|
||||
|
||||
The only assumption that is absolutely baked into all of Flex is that
|
||||
the bodies of initializers for arrays of integers consist of decimal
|
||||
numeric literals separated by commas (and optional whitespace).
|
||||
|
||||
Otherwise, knowledge of each target langage's syntax lives in two
|
||||
places: (1) a table of language-specific syntax-generator methods,
|
||||
and (2) A language-specific skeleton file.
|
||||
|
||||
For example: The methods for the C and C++ back end live in a source
|
||||
file named @file{cpp_backend.c} (so named because both languages use the C
|
||||
preprocessor), and in a skeleton file named @file{cpp-flex.skl}.
|
||||
|
||||
All the code that accesses language-specific code generators goes
|
||||
through a global pointer named "backend" to a method table. The
|
||||
results of these generators are used to fill in some parts of the
|
||||
language-specific skeleton file and conditionalize others.
|
||||
|
||||
Read the definition of struct backend_t in @file{src/flexdefs.h}, and
|
||||
attached comments, to get a feel for the methods. Don't worry
|
||||
about understandng table generator names at first.
|
||||
|
||||
To write support for a language, you'll want to do the following
|
||||
steps:
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
Clone one of the existing back-end/skeleton pairs. If the language
|
||||
you are supporting is named @var{foo}, you should create files named
|
||||
@file{foo_backend.c} and @file{foo-flex.skl}.
|
||||
|
||||
@item
|
||||
Add @file{foo_backend.c} to COMMON_SOURCES in @file{src/Makefile.am}. Add the
|
||||
name of your skeleton file to EXTRA_DIST.
|
||||
|
||||
@item
|
||||
Add a production to @file{src/Makefile.am} parallel to the one that
|
||||
produces @file{cpp-skel.h}. Your objective is to make a string list
|
||||
initializer from your skeleton file that can be linked with flex and
|
||||
is pointed at by the skel nember of your language back end.
|
||||
|
||||
@item
|
||||
Add some logic to @file{main.c} that enables the new back end with a
|
||||
new command-line option. Following this step you should be
|
||||
able to run Flex on a specification and get code out in the
|
||||
language of whatever back end you cloned.
|
||||
|
||||
@item
|
||||
The interesting part: mutate your new back end and skeleton so they
|
||||
produce code in your desired target langage.
|
||||
|
||||
@item
|
||||
Add a test suite for your back end. You should be able to clone
|
||||
one of the existing sets of test loads to get good coverage. Note
|
||||
that is highly unlikely your back end will be accepted into the
|
||||
flex distribution without a test suite.
|
||||
@end enumerate
|
||||
|
||||
Syntactically C-like languages such as Go, Rust, and Java should be easy
|
||||
targets. Almost anything generally descended from Algol shouldn't be
|
||||
much more difficult; this certainly includes the whole
|
||||
Pascal/Modula/Oberon family.
|
||||
|
||||
A hint about the interesting part:
|
||||
|
||||
@itemize
|
||||
@item
|
||||
Don't bother supporting non-reentrant parser generation.
|
||||
The interface of original Lex with all those globals hanging out
|
||||
needs to be supported in C for backwards compatibility, but
|
||||
there is no need to carry it forward.
|
||||
@end itemize
|
||||
|
||||
The following assumptions in the code might trip you up and
|
||||
require fixes outside a back end.
|
||||
|
||||
@enumerate
|
||||
@item
|
||||
The item separator in data initializers is a comma.
|
||||
|
||||
@item
|
||||
The language has a case-arm syntax that looks like
|
||||
a (possibly empty) prefix, followed by a value
|
||||
expression, followed by a colon.
|
||||
|
||||
@item
|
||||
Either case arms can be stacked as in C; that is, there is
|
||||
an implicit fallthrough if the case arm has no code. Or,
|
||||
there is an explicit fallthrough keyword that enables this,
|
||||
as in Go.
|
||||
@end enumerate
|
||||
|
||||
By putting a @code{yyterminate()} call in the fallthrough member
|
||||
and a null pointer in the endcase member, you could handle
|
||||
languages like Pascal.
|
||||
|
||||
@node Indices, , Appendices, Top
|
||||
@unnumbered Indices
|
||||
|
||||
|
||||
+2
-23
@@ -1,23 +1,2 @@
|
||||
ca
|
||||
da
|
||||
de
|
||||
en@quot
|
||||
en@boldquot
|
||||
eo
|
||||
es
|
||||
fi
|
||||
fr
|
||||
ga
|
||||
hr
|
||||
ko
|
||||
nl
|
||||
pl
|
||||
pt_BR
|
||||
ro
|
||||
ru
|
||||
sr
|
||||
sv
|
||||
tr
|
||||
vi
|
||||
zh_CN
|
||||
zh_TW
|
||||
# List of available languages.
|
||||
bg ca da de en@boldquot en@quot eo es fi fr ga hr ko nl pl pt pt_BR ro ru sr sv tr uk vi zh_CN zh_TW
|
||||
|
||||
@@ -0,0 +1,932 @@
|
||||
# Bulgarian translation of flex po-file.
|
||||
# Copyright (C) 2019 The Flex Project (msgids)
|
||||
# This file is distributed under the same license as the flex package.
|
||||
# Alexander Shopov <ash@kambanaria.org>, 2019.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: flex 2.5.38\n"
|
||||
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2014-02-11 16:15-0500\n"
|
||||
"PO-Revision-Date: 2019-06-20 18:39+0200\n"
|
||||
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
|
||||
"Language-Team: Bulgarian <dict@ludost.net>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: buf.c:78
|
||||
msgid "Allocation of buffer to print string failed"
|
||||
msgstr "Неуспешно заделяне на буфер за отпечатване на низ"
|
||||
|
||||
#: buf.c:100
|
||||
msgid "Allocation of buffer for line directive failed"
|
||||
msgstr "Неуспешно заделяне на буфер за редова директива"
|
||||
|
||||
#: buf.c:177
|
||||
msgid "Allocation of buffer for m4 def failed"
|
||||
msgstr "Неуспешно заделяне на буфер за добавяне на дефиниция за „m4“"
|
||||
|
||||
#: buf.c:197
|
||||
msgid "Allocation of buffer for m4 undef failed"
|
||||
msgstr "Неуспешно заделяне на буфер за премахване на дефиниция за „m4“"
|
||||
|
||||
#: dfa.c:61
|
||||
#, c-format
|
||||
msgid "State #%d is non-accepting -\n"
|
||||
msgstr "Състояние №%d не приема —\n"
|
||||
|
||||
#: dfa.c:124
|
||||
msgid "dangerous trailing context"
|
||||
msgstr "опасен последващ контекст"
|
||||
|
||||
#: dfa.c:166
|
||||
#, c-format
|
||||
msgid " associated rule line numbers:"
|
||||
msgstr " номера на редове на съответното правило:"
|
||||
|
||||
#: dfa.c:202
|
||||
#, c-format
|
||||
msgid " out-transitions: "
|
||||
msgstr " изходни преходи: "
|
||||
|
||||
#: dfa.c:210
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" jam-transitions: EOF "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" същински преходи: край на файл"
|
||||
|
||||
#: dfa.c:341
|
||||
msgid "consistency check failed in epsclosure()"
|
||||
msgstr "неуспешна проверка за консистентност в „epsclosure()“"
|
||||
|
||||
#: dfa.c:429
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"DFA Dump:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Извеждане на ДКА:\n"
|
||||
"\n"
|
||||
|
||||
#: dfa.c:604
|
||||
msgid "could not create unique end-of-buffer state"
|
||||
msgstr "уникалното състояние за край на буфер не може да се създаде"
|
||||
|
||||
#: dfa.c:625
|
||||
#, c-format
|
||||
msgid "state # %d:\n"
|
||||
msgstr "състояние №%d:\n"
|
||||
|
||||
#: dfa.c:785
|
||||
msgid "Could not write yynxt_tbl[][]"
|
||||
msgstr "„yynxt_tbl[][]“ не може да се запише"
|
||||
|
||||
#: dfa.c:1049
|
||||
msgid "bad transition character detected in sympartition()"
|
||||
msgstr "в „sympartition()“ има неправилен знак за преход"
|
||||
|
||||
#: gen.c:478
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Equivalence Classes:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Класове на еквивалентност:\n"
|
||||
"\n"
|
||||
|
||||
#: gen.c:662 gen.c:691 gen.c:1215
|
||||
#, c-format
|
||||
msgid "state # %d accepts: [%d]\n"
|
||||
msgstr "състояние №%d приема: [%d]\n"
|
||||
|
||||
#: gen.c:1110
|
||||
#, c-format
|
||||
msgid "state # %d accepts: "
|
||||
msgstr "състояние №%d приема: "
|
||||
|
||||
#: gen.c:1157
|
||||
msgid "Could not write yyacclist_tbl"
|
||||
msgstr "„yyacclist_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1233
|
||||
msgid "Could not write yyacc_tbl"
|
||||
msgstr "„yyacc_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1248 gen.c:1633 gen.c:1656
|
||||
msgid "Could not write ecstbl"
|
||||
msgstr "„ecstbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1271
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Meta-Equivalence Classes:\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Класове за мета-еквивалентност:\n"
|
||||
|
||||
#: gen.c:1293
|
||||
msgid "Could not write yymeta_tbl"
|
||||
msgstr "„yymeta_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1354
|
||||
msgid "Could not write yybase_tbl"
|
||||
msgstr "„yybase_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1388
|
||||
msgid "Could not write yydef_tbl"
|
||||
msgstr "„yydef_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1428
|
||||
msgid "Could not write yynxt_tbl"
|
||||
msgstr "„yynxt_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1464
|
||||
msgid "Could not write yychk_tbl"
|
||||
msgstr "„yychk_tbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1618 gen.c:1647
|
||||
msgid "Could not write ftbl"
|
||||
msgstr "„ftbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1624
|
||||
msgid "Could not write ssltbl"
|
||||
msgstr "„ssltbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1675
|
||||
msgid "Could not write eoltbl"
|
||||
msgstr "„eoltbl“ не може да се запише"
|
||||
|
||||
#: gen.c:1735
|
||||
msgid "Could not write yynultrans_tbl"
|
||||
msgstr "„yynultrans_tbl“ не може да се запише"
|
||||
|
||||
#: main.c:191
|
||||
msgid "rule cannot be matched"
|
||||
msgstr "правилото не напасва"
|
||||
|
||||
#: main.c:196
|
||||
msgid "-s option given but default rule can be matched"
|
||||
msgstr "зададена е опцията „-s“, но стандартното правило напасва"
|
||||
|
||||
#: main.c:236
|
||||
msgid "Can't use -+ with -l option"
|
||||
msgstr "опциите „-+“ и „-l“ са несъвместими"
|
||||
|
||||
#: main.c:239
|
||||
msgid "Can't use -f or -F with -l option"
|
||||
msgstr "опциите „-f“/„-F“ и „-l“ са несъвместими"
|
||||
|
||||
#: main.c:243
|
||||
msgid "Can't use --reentrant or --bison-bridge with -l option"
|
||||
msgstr "опциите „--reentrant“/„--bison-bridge“ и „-l“ са несъвместими"
|
||||
|
||||
#: main.c:275
|
||||
msgid "-Cf/-CF and -Cm don't make sense together"
|
||||
msgstr "опциите „-Cf“/„-CF“ и „-Cm“ са несъвместими"
|
||||
|
||||
#: main.c:278
|
||||
msgid "-Cf/-CF and -I are incompatible"
|
||||
msgstr "опциите „-Cf“/„-CF“ и „-I“ са несъвместими"
|
||||
|
||||
#: main.c:282
|
||||
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
|
||||
msgstr "опциите „-Cf“/„-CF“ са несъвместими с режима за съвместимост с „lex“"
|
||||
|
||||
#: main.c:287
|
||||
msgid "-Cf and -CF are mutually exclusive"
|
||||
msgstr "опциите „-Cf“ и „-CF“ са несъвместими"
|
||||
|
||||
#: main.c:291
|
||||
msgid "Can't use -+ with -CF option"
|
||||
msgstr "опциите „-+“ и „-CF“ са несъвместими"
|
||||
|
||||
#: main.c:294
|
||||
#, c-format
|
||||
msgid "%array incompatible with -+ option"
|
||||
msgstr "опцията „-+“ e несъвместима с декларация „%array“"
|
||||
|
||||
#: main.c:299
|
||||
msgid "Options -+ and --reentrant are mutually exclusive."
|
||||
msgstr "Опциите „-+“ и „--reentrant“ са несъвместими."
|
||||
|
||||
#: main.c:302
|
||||
msgid "bison bridge not supported for the C++ scanner."
|
||||
msgstr "анализатори, които са на C++, не поддържат допълнителната поддръжка за „bison“."
|
||||
|
||||
#: main.c:357 main.c:403
|
||||
#, c-format
|
||||
msgid "could not create %s"
|
||||
msgstr "„%s“ не може да се създаде"
|
||||
|
||||
#: main.c:416
|
||||
msgid "could not write tables header"
|
||||
msgstr "заглавният файл за таблиците не може за се запише"
|
||||
|
||||
#: main.c:420
|
||||
#, c-format
|
||||
msgid "can't open skeleton file %s"
|
||||
msgstr "файлът-скеле „%s“ не може да се отвори"
|
||||
|
||||
#: main.c:456
|
||||
msgid "allocation of macro definition failed"
|
||||
msgstr "неуспешно заделяне на памет за дефиниция на макрос"
|
||||
|
||||
#: main.c:504
|
||||
#, c-format
|
||||
msgid "input error reading skeleton file %s"
|
||||
msgstr "входна грешка при изчитане на файла-скеле „%s“"
|
||||
|
||||
#: main.c:508
|
||||
#, c-format
|
||||
msgid "error closing skeleton file %s"
|
||||
msgstr "грешка при затваряне на файла-скеле „%s“"
|
||||
|
||||
#: main.c:693
|
||||
#, c-format
|
||||
msgid "error creating header file %s"
|
||||
msgstr "грешка при създаването на заглавен файл „%s“"
|
||||
|
||||
#: main.c:701
|
||||
#, c-format
|
||||
msgid "error writing output file %s"
|
||||
msgstr "грешка при записването на изходния файл „%s“"
|
||||
|
||||
#: main.c:705
|
||||
#, c-format
|
||||
msgid "error closing output file %s"
|
||||
msgstr "грешка при затварянето на изходния файл „%s“"
|
||||
|
||||
#: main.c:709
|
||||
#, c-format
|
||||
msgid "error deleting output file %s"
|
||||
msgstr "грешка при изтриването на изходния файл „%s“"
|
||||
|
||||
#: main.c:716
|
||||
#, c-format
|
||||
msgid "No backing up.\n"
|
||||
msgstr "Без връщане назад.\n"
|
||||
|
||||
#: main.c:720
|
||||
#, c-format
|
||||
msgid "%d backing up (non-accepting) states.\n"
|
||||
msgstr "%d състояния за връщане (без приемане)\n"
|
||||
|
||||
#: main.c:724
|
||||
#, c-format
|
||||
msgid "Compressed tables always back up.\n"
|
||||
msgstr "Компресираните таблици винаги водят до връщане назад.\n"
|
||||
|
||||
#: main.c:727
|
||||
#, c-format
|
||||
msgid "error writing backup file %s"
|
||||
msgstr "грешка при записа на файла с връщанията назад „%s“"
|
||||
|
||||
#: main.c:731
|
||||
#, c-format
|
||||
msgid "error closing backup file %s"
|
||||
msgstr "грешка при затварянето на файла с връщанията назад „%s“"
|
||||
|
||||
#: main.c:736
|
||||
#, c-format
|
||||
msgid "%s version %s usage statistics:\n"
|
||||
msgstr "Статистика за употреба на %s, версия %s:\n"
|
||||
|
||||
#: main.c:739
|
||||
#, c-format
|
||||
msgid " scanner options: -"
|
||||
msgstr " опции на лексическия анализатор: -"
|
||||
|
||||
#: main.c:818
|
||||
#, c-format
|
||||
msgid " %d/%d NFA states\n"
|
||||
msgstr " %d/%d състояния на НКА\n"
|
||||
|
||||
#: main.c:820
|
||||
#, c-format
|
||||
msgid " %d/%d DFA states (%d words)\n"
|
||||
msgstr " %d/%d състояния на ДКА (%d думи)\n"
|
||||
|
||||
#: main.c:822
|
||||
#, c-format
|
||||
msgid " %d rules\n"
|
||||
msgstr " %d правила\n"
|
||||
|
||||
#: main.c:827
|
||||
#, c-format
|
||||
msgid " No backing up\n"
|
||||
msgstr " Без връщане назад\n"
|
||||
|
||||
#: main.c:831
|
||||
#, c-format
|
||||
msgid " %d backing-up (non-accepting) states\n"
|
||||
msgstr " %d състояния за връщане (без приемане)\n"
|
||||
|
||||
#: main.c:836
|
||||
#, c-format
|
||||
msgid " Compressed tables always back-up\n"
|
||||
msgstr " Компресираните таблици винаги водят до връщане\n"
|
||||
|
||||
#: main.c:840
|
||||
#, c-format
|
||||
msgid " Beginning-of-line patterns used\n"
|
||||
msgstr " Използвани са правила за начало на ред\n"
|
||||
|
||||
#: main.c:842
|
||||
#, c-format
|
||||
msgid " %d/%d start conditions\n"
|
||||
msgstr " %d/%d начални състояния\n"
|
||||
|
||||
#: main.c:846
|
||||
#, c-format
|
||||
msgid " %d epsilon states, %d double epsilon states\n"
|
||||
msgstr " %d ε-състояния, %d двойни ε-състояния\n"
|
||||
|
||||
#: main.c:850
|
||||
#, c-format
|
||||
msgid " no character classes\n"
|
||||
msgstr " няма класове знаци\n"
|
||||
|
||||
#: main.c:854
|
||||
#, c-format
|
||||
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
|
||||
msgstr " %d/%d класове за знаци изискваха %d/%d думи за съхранение, преизползвани са %d\n"
|
||||
|
||||
#: main.c:859
|
||||
#, c-format
|
||||
msgid " %d state/nextstate pairs created\n"
|
||||
msgstr " %d двойки състояние/преход\n"
|
||||
|
||||
#: main.c:862
|
||||
#, c-format
|
||||
msgid " %d/%d unique/duplicate transitions\n"
|
||||
msgstr " %d/%d уникални/повтарящи се преходи\n"
|
||||
|
||||
#: main.c:867
|
||||
#, c-format
|
||||
msgid " %d table entries\n"
|
||||
msgstr " %d таблични записи\n"
|
||||
|
||||
#: main.c:875
|
||||
#, c-format
|
||||
msgid " %d/%d base-def entries created\n"
|
||||
msgstr " %d/%d записи за основни дефиниции\n"
|
||||
|
||||
#: main.c:879
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) nxt-chk entries created\n"
|
||||
msgstr " %d/%d (максимум %d) записи\n"
|
||||
|
||||
#: main.c:883
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
|
||||
msgstr " %d/%d (максимум %d) шаблонни записи\n"
|
||||
|
||||
#: main.c:887
|
||||
#, c-format
|
||||
msgid " %d empty table entries\n"
|
||||
msgstr " %d празни таблични записи\n"
|
||||
|
||||
#: main.c:889
|
||||
#, c-format
|
||||
msgid " %d protos created\n"
|
||||
msgstr " %d създадени прототипи\n"
|
||||
|
||||
#: main.c:892
|
||||
#, c-format
|
||||
msgid " %d templates created, %d uses\n"
|
||||
msgstr " %d създадени шаблони, %d употреби\n"
|
||||
|
||||
#: main.c:900
|
||||
#, c-format
|
||||
msgid " %d/%d equivalence classes created\n"
|
||||
msgstr " създадени са %d/%d класове за еквивалентност\n"
|
||||
|
||||
#: main.c:908
|
||||
#, c-format
|
||||
msgid " %d/%d meta-equivalence classes created\n"
|
||||
msgstr " създадени са %d/%d класове за мета-еквивалентност\n"
|
||||
|
||||
#: main.c:914
|
||||
#, c-format
|
||||
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
|
||||
msgstr " %d (%d запазени) конфликти по суми, %d ДКА са еднакви\n"
|
||||
|
||||
#: main.c:916
|
||||
#, c-format
|
||||
msgid " %d sets of reallocations needed\n"
|
||||
msgstr " необходими са %d пъти заделяния на памет наново\n"
|
||||
|
||||
#: main.c:918
|
||||
#, c-format
|
||||
msgid " %d total table entries needed\n"
|
||||
msgstr " необходими са общо %d записи в таблица\n"
|
||||
|
||||
#: main.c:995
|
||||
#, c-format
|
||||
msgid "Internal error. flexopts are malformed.\n"
|
||||
msgstr "Вътрешна грешка. Неправилни опции за flex.\n"
|
||||
|
||||
#: main.c:1005
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "За повече информация изпълнете „%s --help“.\n"
|
||||
|
||||
#: main.c:1062
|
||||
#, c-format
|
||||
msgid "unknown -C option '%c'"
|
||||
msgstr "непозната опция към „-C“: „%c“"
|
||||
|
||||
#: main.c:1191
|
||||
#, c-format
|
||||
msgid "%s %s\n"
|
||||
msgstr "%s %s\n"
|
||||
|
||||
#: main.c:1466
|
||||
msgid "fatal parse error"
|
||||
msgstr "фатална грешка на анализатора"
|
||||
|
||||
#: main.c:1498
|
||||
#, c-format
|
||||
msgid "could not create backing-up info file %s"
|
||||
msgstr "файлът с информация за връщане назад не може да се създаде: „%s“"
|
||||
|
||||
#: main.c:1519
|
||||
#, c-format
|
||||
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
|
||||
msgstr "опцията за съвместимост с „lex“ на AT&T: „-l“, води до голяма загуба на производителност\n"
|
||||
|
||||
#: main.c:1522
|
||||
#, c-format
|
||||
msgid " and may be the actual source of other reported performance penalties\n"
|
||||
msgstr " и може да доведе до допълнителни проблеми с производителността\n"
|
||||
|
||||
#: main.c:1528
|
||||
#, c-format
|
||||
msgid "%%option yylineno entails a performance penalty ONLY on rules that can match newline characters\n"
|
||||
msgstr "директивата за „%%option“ — „yylineno“ води до загуба на производителност, само за правилата, които напасват знак за нов ред\n"
|
||||
|
||||
#: main.c:1535
|
||||
#, c-format
|
||||
msgid "-I (interactive) entails a minor performance penalty\n"
|
||||
msgstr "„-I“ (интерактивният режим) води до малка загуба на производителност\n"
|
||||
|
||||
#: main.c:1540
|
||||
#, c-format
|
||||
msgid "yymore() entails a minor performance penalty\n"
|
||||
msgstr "„yymore()“ води до малка загуба на производителност\n"
|
||||
|
||||
#: main.c:1546
|
||||
#, c-format
|
||||
msgid "REJECT entails a large performance penalty\n"
|
||||
msgstr "Отхвърлянето (REJECT) води до голяма загуба на производителност\n"
|
||||
|
||||
#: main.c:1551
|
||||
#, c-format
|
||||
msgid "Variable trailing context rules entail a large performance penalty\n"
|
||||
msgstr "Правила с последващ контекст, който не е константен, водят до голяма загуба на производителност\n"
|
||||
|
||||
#: main.c:1563
|
||||
msgid "REJECT cannot be used with -f or -F"
|
||||
msgstr "Отхвърлянето (REJECT) е несъвместимо с „-f“ или „-F“"
|
||||
|
||||
#: main.c:1566
|
||||
#, c-format
|
||||
msgid "%option yylineno cannot be used with REJECT"
|
||||
msgstr "директивата за „%option“ — „yylineno“ е несъвместима с отхвърляне (REJECT)"
|
||||
|
||||
#: main.c:1569
|
||||
msgid "variable trailing context rules cannot be used with -f or -F"
|
||||
msgstr "правила с последващ контекст, който не е константен, не може да се ползват заедно с „-f“ или „-F“"
|
||||
|
||||
#: main.c:1692
|
||||
#, c-format
|
||||
msgid "%option yyclass only meaningful for C++ scanners"
|
||||
msgstr "директивата за „%option“ — „yyclass“ важи само за анализаторите, които са на C++"
|
||||
|
||||
#: main.c:1799
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS] [FILE]...\n"
|
||||
msgstr "Употреба: %s [ОПЦИЯ] [ФАЙЛ]…\n"
|
||||
|
||||
#: main.c:1802
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Generates programs that perform pattern-matching on text.\n"
|
||||
"\n"
|
||||
"Table Compression:\n"
|
||||
" -Ca, --align trade off larger tables for better memory alignment\n"
|
||||
" -Ce, --ecs construct equivalence classes\n"
|
||||
" -Cf do not compress tables; use -f representation\n"
|
||||
" -CF do not compress tables; use -F representation\n"
|
||||
" -Cm, --meta-ecs construct meta-equivalence classes\n"
|
||||
" -Cr, --read use read() instead of stdio for scanner input\n"
|
||||
" -f, --full generate fast, large scanner. Same as -Cfr\n"
|
||||
" -F, --fast use alternate table representation. Same as -CFr\n"
|
||||
" -Cem default compression (same as --ecs --meta-ecs)\n"
|
||||
"\n"
|
||||
"Debugging:\n"
|
||||
" -d, --debug enable debug mode in scanner\n"
|
||||
" -b, --backup write backing-up information to %s\n"
|
||||
" -p, --perf-report write performance report to stderr\n"
|
||||
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
|
||||
" -T, --trace %s should run in trace mode\n"
|
||||
" -w, --nowarn do not generate warnings\n"
|
||||
" -v, --verbose write summary of scanner statistics to stdout\n"
|
||||
"\n"
|
||||
"Files:\n"
|
||||
" -o, --outfile=FILE specify output filename\n"
|
||||
" -S, --skel=FILE specify skeleton file\n"
|
||||
" -t, --stdout write scanner on stdout instead of %s\n"
|
||||
" --yyclass=NAME name of C++ class\n"
|
||||
" --header-file=FILE create a C header file in addition to the scanner\n"
|
||||
" --tables-file[=FILE] write tables to FILE\n"
|
||||
"\n"
|
||||
"Scanner behavior:\n"
|
||||
" -7, --7bit generate 7-bit scanner\n"
|
||||
" -8, --8bit generate 8-bit scanner\n"
|
||||
" -B, --batch generate batch scanner (opposite of -I)\n"
|
||||
" -i, --case-insensitive ignore case in patterns\n"
|
||||
" -l, --lex-compat maximal compatibility with original lex\n"
|
||||
" -X, --posix-compat maximal compatibility with POSIX lex\n"
|
||||
" -I, --interactive generate interactive scanner (opposite of -B)\n"
|
||||
" --yylineno track line count in yylineno\n"
|
||||
"\n"
|
||||
"Generated code:\n"
|
||||
" -+, --c++ generate C++ scanner class\n"
|
||||
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
|
||||
" -L, --noline suppress #line directives in scanner\n"
|
||||
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
|
||||
" -R, --reentrant generate a reentrant C scanner\n"
|
||||
" --bison-bridge scanner for bison pure parser.\n"
|
||||
" --bison-locations include yylloc support.\n"
|
||||
" --stdinit initialize yyin/yyout to stdin/stdout\n"
|
||||
" --noansi-definitions old-style function definitions\n"
|
||||
" --noansi-prototypes empty parameter list in prototypes\n"
|
||||
" --nounistd do not include <unistd.h>\n"
|
||||
" --noFUNCTION do not generate a particular FUNCTION\n"
|
||||
"\n"
|
||||
"Miscellaneous:\n"
|
||||
" -c do-nothing POSIX option\n"
|
||||
" -n do-nothing POSIX option\n"
|
||||
" -?\n"
|
||||
" -h, --help produce this help message\n"
|
||||
" -V, --version report %s version\n"
|
||||
msgstr ""
|
||||
"Генериране на програма за лексически анализ на текст.\n"
|
||||
"\n"
|
||||
"Компресиране на таблиците\n"
|
||||
" -Ca, --align по-точно подравняване в паметта, но по-големи таблици\n"
|
||||
" -Ce, --ecs създаване на класовете за еквивалентност\n"
|
||||
" -Cf без компресия на таблиците, представяне както с „-f“\n"
|
||||
" -CF без компресия на таблиците, представяне както с „-F“\n"
|
||||
" -Cm, --meta-ecs създаване на класовете за мета-еквивалентност\n"
|
||||
" -Cr, --read четене чрез „read()“, а не от стандартния вход\n"
|
||||
" -f, --full генериране на голям, но бърз анализатор, (≡„-Cfr“)\n"
|
||||
" -F, --fast алтернативно представяне на таблиците (≡„-CFr“)\n"
|
||||
" -Cem стандартна компресия (≡„--ecs --meta-ecs“)\n"
|
||||
"\n"
|
||||
"Изчистване на грешки:\n"
|
||||
" -d, --debug режим на изчистване на грешки в анализатора\n"
|
||||
" -b, --backup запазване на информацията за връщане назад в „%s“\n"
|
||||
" -p, --perf-report доклад-производителността към стандартната грешка\n"
|
||||
" -s, --nodefault потискане на стандартното правило за извеждане на\n"
|
||||
" текста, който не напасва\n"
|
||||
" -T, --trace „%s“ да се изпълнява в режим на трасиране\n"
|
||||
" -w, --nowarn без предупреждения\n"
|
||||
" -v, --verbose доклад-статистика за анализатора към стандартния изход\n"
|
||||
"\n"
|
||||
"Файлове:\n"
|
||||
" -o, --outfile=ФАЙЛ задаване на изходния ФАЙЛ\n"
|
||||
" -S, --skel=ФАЙЛ задаване на ФАЙЛа-скеле\n"
|
||||
" -t, --stdout извеждане на анализатора на стандартния изход, а\n"
|
||||
" не в „%s“\n"
|
||||
" --yyclass=ИМЕ ИМЕ на клас за C++\n"
|
||||
" --header-file=ФАЙЛ създаване и на заглавен файл на Cr\n"
|
||||
" --tables-file[=ФАЙЛ] извеждане на таблиците във ФАЙЛа\n"
|
||||
"\n"
|
||||
"Поведение на анализатора:\n"
|
||||
" -7, --7bit анализатор за 7-битов вход\n"
|
||||
" -8, --8bit анализатор за 8-битов вход\n"
|
||||
" -B, --batch пакетен анализатор (обратното на „-I“)\n"
|
||||
" -i, --case-insensitive без разлика между главни и малки знаци\n"
|
||||
" -l, --lex-compat максимална съвместимост с оригиналния „lex“\n"
|
||||
" -X, --posix-compat максимална съвместимост с „lex“ по POSIX\n"
|
||||
" -I, --interactive интерактивен анализатор (обратното на „-B“)\n"
|
||||
" --yylineno следене на броя на редовете чрез „yylineno“\n"
|
||||
"\n"
|
||||
"Генериран код:\n"
|
||||
" -+, --c++ генериране на анализатор като клас на C++\n"
|
||||
" -DМАКРОС[=ДЕФИНИЦИЯ] „#define МАКРОС ДЕФИНИЦИЯ“ (стандартно\n"
|
||||
" ДЕФИНИЦИЯта е „1“)\n"
|
||||
" -L, --noline без директиви „#line“ в анализатора\n"
|
||||
" -P, --prefix=НИЗ използване на този НИЗ за префикс вместо обичайния „yy“\n"
|
||||
" -R, --reentrant анализатор на C с възможност за повторно извикване\n"
|
||||
" --bison-bridge допълнителна поддръжка за „bison“\n"
|
||||
" --bison-locations поддръжка на „yylloc“\n"
|
||||
" --stdinit първоначалните стойности на „yyin“ и „yyout“ да са\n"
|
||||
" съответно стандартният вход и изход\n"
|
||||
" --noansi-definitions\n"
|
||||
" остаряло дефиниране на функциите на C (преди ANSI)\n"
|
||||
" --noansi-prototypes празен списък с параметри в прототипите\n"
|
||||
" --nounistd без ползване на „<unistd.h>“\n"
|
||||
" --noФУНКЦИЯ без създаването на определена ФУНКЦИЯ\n"
|
||||
"\n"
|
||||
"Други:\n"
|
||||
" -c опция по POSIX, която не прави нищо\n"
|
||||
" -n опция по POSIX, която не прави нищо\n"
|
||||
" -?\n"
|
||||
" -h, --help извеждане на това помощно съобщение\n"
|
||||
" -V, --version извеждане на версията на „%s“\n"
|
||||
|
||||
#: misc.c:65
|
||||
msgid "allocation of sko_stack failed"
|
||||
msgstr "неуспешно заделяне на памет за „sko_stack“"
|
||||
|
||||
#: misc.c:102 misc.c:128
|
||||
#, c-format
|
||||
msgid "name \"%s\" ridiculously long"
|
||||
msgstr "прекалено дълго име: „%s“"
|
||||
|
||||
#: misc.c:177
|
||||
msgid "memory allocation failed in allocate_array()"
|
||||
msgstr "неуспешно заделяне на памет в „allocate_array()“"
|
||||
|
||||
#: misc.c:230
|
||||
#, c-format
|
||||
msgid "bad character '%s' detected in check_char()"
|
||||
msgstr "„check_char()“ се натъкна на неправилен знак: „%s“"
|
||||
|
||||
#: misc.c:235
|
||||
#, c-format
|
||||
msgid "scanner requires -8 flag to use the character %s"
|
||||
msgstr "опцията „-8“ е задължителна, за да ползвате знака „%s“ в анализатора"
|
||||
|
||||
#: misc.c:268
|
||||
msgid "dynamic memory failure in copy_string()"
|
||||
msgstr "проблем с динамичната памет в „copy_string()“"
|
||||
|
||||
#: misc.c:367
|
||||
#, c-format
|
||||
msgid "%s: fatal internal error, %s\n"
|
||||
msgstr "%s: фатална вътрешна грешка — %s\n"
|
||||
|
||||
#: misc.c:803
|
||||
msgid "attempt to increase array size failed"
|
||||
msgstr "неуспешен опит за увеличаване на размер на масив"
|
||||
|
||||
#: misc.c:930
|
||||
msgid "bad line in skeleton file"
|
||||
msgstr "неправилен файл във файл-скеле"
|
||||
|
||||
#: misc.c:979
|
||||
msgid "memory allocation failed in yy_flex_xmalloc()"
|
||||
msgstr "неуспешно заделяне на памет в „yy_flex_xmalloc()“"
|
||||
|
||||
#: nfa.c:104
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"********** beginning dump of nfa with start state %d\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"•••••••••• начало на извеждането на НКА с начално състояние %d\n"
|
||||
|
||||
#: nfa.c:115
|
||||
#, c-format
|
||||
msgid "state # %4d\t"
|
||||
msgstr "състояние №%4d"
|
||||
|
||||
#: nfa.c:130
|
||||
#, c-format
|
||||
msgid "********** end of dump\n"
|
||||
msgstr "•••••••••• край на извеждането\n"
|
||||
|
||||
#: nfa.c:174
|
||||
msgid "empty machine in dupmachine()"
|
||||
msgstr "празен автомат в „dupmachine()“"
|
||||
|
||||
#: nfa.c:240
|
||||
#, c-format
|
||||
msgid "Variable trailing context rule at line %d\n"
|
||||
msgstr "Правило с последващ контекст, който не е константен, на ред %d\n"
|
||||
|
||||
#: nfa.c:364
|
||||
msgid "bad state type in mark_beginning_as_normal()"
|
||||
msgstr "неправилен вид състояние в „mark_beginning_as_normal()“"
|
||||
|
||||
#: nfa.c:609
|
||||
#, c-format
|
||||
msgid "input rules are too complicated (>= %d NFA states)"
|
||||
msgstr "входните правила са прекалено сложни (≥ %d състояния на НКА)"
|
||||
|
||||
#: nfa.c:688
|
||||
msgid "found too many transitions in mkxtion()"
|
||||
msgstr "прекалено много преходи в „mkxtion()“"
|
||||
|
||||
#: nfa.c:714
|
||||
#, c-format
|
||||
msgid "too many rules (> %d)!"
|
||||
msgstr "прекалено много правила (> %d)!"
|
||||
|
||||
#: parse.y:159
|
||||
msgid "unknown error processing section 1"
|
||||
msgstr "непозната грешка при обработка на 1ви раздел"
|
||||
|
||||
#: parse.y:184 parse.y:351
|
||||
msgid "bad start condition list"
|
||||
msgstr "неправилен списък на началните състояния"
|
||||
|
||||
#: parse.y:315
|
||||
msgid "unrecognized rule"
|
||||
msgstr "непознато правило"
|
||||
|
||||
#: parse.y:434 parse.y:447 parse.y:516
|
||||
msgid "trailing context used twice"
|
||||
msgstr "двукратно ползване на последващ контекст"
|
||||
|
||||
#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
|
||||
msgid "bad iteration values"
|
||||
msgstr "неправилни стойности на итерация"
|
||||
|
||||
#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
|
||||
msgid "iteration value must be positive"
|
||||
msgstr "стойността на итерацията трябва да е положителна"
|
||||
|
||||
#: parse.y:804 parse.y:814
|
||||
#, c-format
|
||||
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
|
||||
msgstr "диапазонът знаци [%c-%c] не е еднозначен при лексичен анализатор, който не прави разлика между главни и малки знаци"
|
||||
|
||||
#: parse.y:819
|
||||
msgid "negative range in character class"
|
||||
msgstr "изключващ диапазон в клас знаци"
|
||||
|
||||
#: parse.y:916
|
||||
msgid "[:^lower:] is ambiguous in case insensitive scanner"
|
||||
msgstr "диапазонът знаци [:^lower:] не е еднозначен при лексичен анализатор, който не прави разлика между главни и малки знаци"
|
||||
|
||||
#: parse.y:922
|
||||
msgid "[:^upper:] ambiguous in case insensitive scanner"
|
||||
msgstr "диапазонът знаци [:^upper:] не е еднозначен при лексичен анализатор, който не прави разлика между главни и малки знаци"
|
||||
|
||||
#: scan.l:75 scan.l:618 scan.l:676
|
||||
msgid "Input line too long\n"
|
||||
msgstr "Входният ред е твърде дълъг\n"
|
||||
|
||||
#: scan.l:161
|
||||
#, c-format
|
||||
msgid "malformed '%top' directive"
|
||||
msgstr "неправилна директива „%top“"
|
||||
|
||||
#: scan.l:183
|
||||
#, no-c-format
|
||||
msgid "unrecognized '%' directive"
|
||||
msgstr "непозната директива, започваща с „%“"
|
||||
|
||||
#: scan.l:192
|
||||
msgid "Definition name too long\n"
|
||||
msgstr "Името на дефиницията е твърде дълго\n"
|
||||
|
||||
#: scan.l:284
|
||||
msgid "Unmatched '{'"
|
||||
msgstr "„{“ без еш"
|
||||
|
||||
#: scan.l:300
|
||||
#, c-format
|
||||
msgid "Definition value for {%s} too long\n"
|
||||
msgstr "Стойността на дефиницията „{%s}“ е твърде дълга\n"
|
||||
|
||||
#: scan.l:317
|
||||
msgid "incomplete name definition"
|
||||
msgstr "дефиниция с непълно име"
|
||||
|
||||
#: scan.l:443
|
||||
msgid "Option line too long\n"
|
||||
msgstr "Редът за опция е твърде дълъг\n"
|
||||
|
||||
#: scan.l:451
|
||||
#, c-format
|
||||
msgid "unrecognized %%option: %s"
|
||||
msgstr "непозната опция „%%option“: „%s“"
|
||||
|
||||
#: scan.l:633 scan.l:800
|
||||
msgid "bad character class"
|
||||
msgstr "неправилен клас знаци"
|
||||
|
||||
#: scan.l:683
|
||||
#, c-format
|
||||
msgid "undefined definition {%s}"
|
||||
msgstr "липсваща дефиниция „{%s}“"
|
||||
|
||||
#: scan.l:755
|
||||
#, c-format
|
||||
msgid "bad <start condition>: %s"
|
||||
msgstr "лошо начално условие: „%s“"
|
||||
|
||||
#: scan.l:768
|
||||
msgid "missing quote"
|
||||
msgstr "липсваща кавичка"
|
||||
|
||||
#: scan.l:834
|
||||
#, c-format
|
||||
msgid "bad character class expression: %s"
|
||||
msgstr "неправилен израз за клас от знаци: „%s“"
|
||||
|
||||
#: scan.l:856
|
||||
msgid "bad character inside {}'s"
|
||||
msgstr "неправилен знак между „{“ и „}“"
|
||||
|
||||
#: scan.l:862
|
||||
msgid "missing }"
|
||||
msgstr "липсва „}“"
|
||||
|
||||
#: scan.l:940
|
||||
msgid "EOF encountered inside an action"
|
||||
msgstr "край на файл в действие"
|
||||
|
||||
#: scan.l:945
|
||||
msgid "EOF encountered inside pattern"
|
||||
msgstr "край на файл в шаблон"
|
||||
|
||||
#: scan.l:967
|
||||
#, c-format
|
||||
msgid "bad character: %s"
|
||||
msgstr "неправилен знак: %s"
|
||||
|
||||
#: scan.l:996
|
||||
#, c-format
|
||||
msgid "can't open %s"
|
||||
msgstr "„%s“ не може да се отвори"
|
||||
|
||||
#: scanopt.c:291
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS]...\n"
|
||||
msgstr "Употреба: %s [ОПЦИЯ]…\n"
|
||||
|
||||
#: scanopt.c:564
|
||||
#, c-format
|
||||
msgid "option `%s' doesn't allow an argument\n"
|
||||
msgstr "опцията „%s“ се използва без аргументи\n"
|
||||
|
||||
#: scanopt.c:569
|
||||
#, c-format
|
||||
msgid "option `%s' requires an argument\n"
|
||||
msgstr "опцията „%s“ изисква аргумент\n"
|
||||
|
||||
#: scanopt.c:573
|
||||
#, c-format
|
||||
msgid "option `%s' is ambiguous\n"
|
||||
msgstr "опцията „%s“ не е еднозначна\n"
|
||||
|
||||
#: scanopt.c:577
|
||||
#, c-format
|
||||
msgid "Unrecognized option `%s'\n"
|
||||
msgstr "непозната опция „%s“\n"
|
||||
|
||||
#: scanopt.c:581
|
||||
#, c-format
|
||||
msgid "Unknown error=(%d)\n"
|
||||
msgstr "Неизвестна грешка=(%d)\n"
|
||||
|
||||
#: sym.c:100
|
||||
msgid "symbol table memory allocation failed"
|
||||
msgstr "неуспешно заделяне на памет за таблицата със символите"
|
||||
|
||||
#: sym.c:202
|
||||
msgid "name defined twice"
|
||||
msgstr "името е дефинирано двукратно"
|
||||
|
||||
#: sym.c:253
|
||||
#, c-format
|
||||
msgid "start condition %s declared twice"
|
||||
msgstr "началното условие „%s“ е дефинирано двукратно"
|
||||
|
||||
#: yylex.c:56
|
||||
msgid "premature EOF"
|
||||
msgstr "преждевременен край (EOF)"
|
||||
|
||||
#: yylex.c:198
|
||||
#, c-format
|
||||
msgid "End Marker\n"
|
||||
msgstr "Маркер за край\n"
|
||||
|
||||
#: yylex.c:204
|
||||
#, c-format
|
||||
msgid "*Something Weird* - tok: %d val: %d\n"
|
||||
msgstr "•Нещо странно• — лекс.: %d ст-ст: %d\n"
|
||||
@@ -0,0 +1,929 @@
|
||||
# Portuguese (Portugal) translation for the flex package.
|
||||
# Copyright (C) 2019 The Flex Project (msgids)
|
||||
# This file is put in the public domain.
|
||||
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2019.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: flex 2.5.38\n"
|
||||
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2014-02-11 16:15-0500\n"
|
||||
"PO-Revision-Date: 2019-05-23 10:15+0100\n"
|
||||
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
|
||||
"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\\n\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
|
||||
#: buf.c:78
|
||||
msgid "Allocation of buffer to print string failed"
|
||||
msgstr "Falha ao alocar buffer para imprimir a cadeia"
|
||||
|
||||
#: buf.c:100
|
||||
msgid "Allocation of buffer for line directive failed"
|
||||
msgstr "Falha ao alocar buffer para directiva de linha"
|
||||
|
||||
#: buf.c:177
|
||||
msgid "Allocation of buffer for m4 def failed"
|
||||
msgstr "Falha ao alocar buffer para m4 def"
|
||||
|
||||
#: buf.c:197
|
||||
msgid "Allocation of buffer for m4 undef failed"
|
||||
msgstr "Falha ao alocar buffer para m4 undef"
|
||||
|
||||
#: dfa.c:61
|
||||
#, c-format
|
||||
msgid "State #%d is non-accepting -\n"
|
||||
msgstr "Estado nº %d não está a aceitar -\n"
|
||||
|
||||
#: dfa.c:124
|
||||
msgid "dangerous trailing context"
|
||||
msgstr "conteúdo final perigoso"
|
||||
|
||||
#: dfa.c:166
|
||||
#, c-format
|
||||
msgid " associated rule line numbers:"
|
||||
msgstr " números de linha de regra associada:"
|
||||
|
||||
#: dfa.c:202
|
||||
#, c-format
|
||||
msgid " out-transitions: "
|
||||
msgstr " out-transitions: "
|
||||
|
||||
#: dfa.c:210
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" jam-transitions: EOF "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" jam-transitions: EOF "
|
||||
|
||||
#: dfa.c:341
|
||||
msgid "consistency check failed in epsclosure()"
|
||||
msgstr "falha no teste de consistência em epsclosure()"
|
||||
|
||||
#: dfa.c:429
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"DFA Dump:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"DFA Dump:\n"
|
||||
"\n"
|
||||
|
||||
#: dfa.c:604
|
||||
msgid "could not create unique end-of-buffer state"
|
||||
msgstr "impossível criar estado end-of-buffer exclusivo"
|
||||
|
||||
#: dfa.c:625
|
||||
#, c-format
|
||||
msgid "state # %d:\n"
|
||||
msgstr "estado nº %d\n"
|
||||
|
||||
#: dfa.c:785
|
||||
msgid "Could not write yynxt_tbl[][]"
|
||||
msgstr "Impossível escrever yynxt_tbl[][]"
|
||||
|
||||
#: dfa.c:1049
|
||||
msgid "bad transition character detected in sympartition()"
|
||||
msgstr "detectado um mau carácter de transição em sympartition()"
|
||||
|
||||
#: gen.c:478
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Equivalence Classes:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Classes de equivalência:\n"
|
||||
"\n"
|
||||
|
||||
#: gen.c:662 gen.c:691 gen.c:1215
|
||||
#, c-format
|
||||
msgid "state # %d accepts: [%d]\n"
|
||||
msgstr "estado nº %d aceita: [%d]\n"
|
||||
|
||||
#: gen.c:1110
|
||||
#, c-format
|
||||
msgid "state # %d accepts: "
|
||||
msgstr "estado nº %d aceita: "
|
||||
|
||||
#: gen.c:1157
|
||||
msgid "Could not write yyacclist_tbl"
|
||||
msgstr "Impossível escrever yyacclist_tbl"
|
||||
|
||||
#: gen.c:1233
|
||||
msgid "Could not write yyacc_tbl"
|
||||
msgstr "Impossível escrever yyacc_tbl"
|
||||
|
||||
#: gen.c:1248 gen.c:1633 gen.c:1656
|
||||
msgid "Could not write ecstbl"
|
||||
msgstr "Impossível escrever ecstbl"
|
||||
|
||||
#: gen.c:1271
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Meta-Equivalence Classes:\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Classes de meta-equivalência:\n"
|
||||
|
||||
#: gen.c:1293
|
||||
msgid "Could not write yymeta_tbl"
|
||||
msgstr "Impossível escrever yymeta_tbl"
|
||||
|
||||
#: gen.c:1354
|
||||
msgid "Could not write yybase_tbl"
|
||||
msgstr "Impossível escrever yybase_tbl"
|
||||
|
||||
#: gen.c:1388
|
||||
msgid "Could not write yydef_tbl"
|
||||
msgstr "Impossível escrever yydef_tbl"
|
||||
|
||||
#: gen.c:1428
|
||||
msgid "Could not write yynxt_tbl"
|
||||
msgstr "Impossível escrever yynxt_tbl"
|
||||
|
||||
#: gen.c:1464
|
||||
msgid "Could not write yychk_tbl"
|
||||
msgstr "Impossível escrever yychk_tbl"
|
||||
|
||||
#: gen.c:1618 gen.c:1647
|
||||
msgid "Could not write ftbl"
|
||||
msgstr "Impossível escrever ftbl"
|
||||
|
||||
#: gen.c:1624
|
||||
msgid "Could not write ssltbl"
|
||||
msgstr "Impossível escrever ssltbl"
|
||||
|
||||
#: gen.c:1675
|
||||
msgid "Could not write eoltbl"
|
||||
msgstr "Impossível escrever eoltbl"
|
||||
|
||||
#: gen.c:1735
|
||||
msgid "Could not write yynultrans_tbl"
|
||||
msgstr "Impossível escrever yynultrans_tbl"
|
||||
|
||||
#: main.c:191
|
||||
msgid "rule cannot be matched"
|
||||
msgstr "impossível comparar a regra"
|
||||
|
||||
#: main.c:196
|
||||
msgid "-s option given but default rule can be matched"
|
||||
msgstr "indicada a opção -s, mas a regra predefinida pode ser comparada"
|
||||
|
||||
#: main.c:236
|
||||
msgid "Can't use -+ with -l option"
|
||||
msgstr "Impossível usar -+ com a opção -l"
|
||||
|
||||
#: main.c:239
|
||||
msgid "Can't use -f or -F with -l option"
|
||||
msgstr "Impossível usar -f ou -F com a opção -l"
|
||||
|
||||
#: main.c:243
|
||||
msgid "Can't use --reentrant or --bison-bridge with -l option"
|
||||
msgstr "Impossível usar --reentrant ou --bison-bridge com a opção -l"
|
||||
|
||||
#: main.c:275
|
||||
msgid "-Cf/-CF and -Cm don't make sense together"
|
||||
msgstr "-Cf/-CF e -Cm não fazem sentido em conjunto"
|
||||
|
||||
#: main.c:278
|
||||
msgid "-Cf/-CF and -I are incompatible"
|
||||
msgstr "-Cf/-CF e -I são incompatíveis"
|
||||
|
||||
#: main.c:282
|
||||
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
|
||||
msgstr "-Cf/-CF são incompatíveis com o modo lex-compatibility"
|
||||
|
||||
#: main.c:287
|
||||
msgid "-Cf and -CF are mutually exclusive"
|
||||
msgstr "-Cf e -CF são mutuamente exclusivas"
|
||||
|
||||
#: main.c:291
|
||||
msgid "Can't use -+ with -CF option"
|
||||
msgstr "Impossível usar -+ com a opção -CF"
|
||||
|
||||
#: main.c:294
|
||||
#, c-format
|
||||
msgid "%array incompatible with -+ option"
|
||||
msgstr "%array incompatível com a opção -+"
|
||||
|
||||
#: main.c:299
|
||||
msgid "Options -+ and --reentrant are mutually exclusive."
|
||||
msgstr "As opções -+ e --reentrant são mutuamente exclusivas."
|
||||
|
||||
#: main.c:302
|
||||
msgid "bison bridge not supported for the C++ scanner."
|
||||
msgstr "bison bridge não suportada no analisador C++."
|
||||
|
||||
#: main.c:357 main.c:403
|
||||
#, c-format
|
||||
msgid "could not create %s"
|
||||
msgstr "impossível criar %s"
|
||||
|
||||
#: main.c:416
|
||||
msgid "could not write tables header"
|
||||
msgstr "impossível criar cabeçalho de tabelas"
|
||||
|
||||
#: main.c:420
|
||||
#, c-format
|
||||
msgid "can't open skeleton file %s"
|
||||
msgstr "impossível abrir ficheiro esqueleto %s"
|
||||
|
||||
#: main.c:456
|
||||
msgid "allocation of macro definition failed"
|
||||
msgstr "falha ao alocar definição de macro"
|
||||
|
||||
#: main.c:504
|
||||
#, c-format
|
||||
msgid "input error reading skeleton file %s"
|
||||
msgstr "erro de entrada ao ler ficheiro esqueleto %s"
|
||||
|
||||
#: main.c:508
|
||||
#, c-format
|
||||
msgid "error closing skeleton file %s"
|
||||
msgstr "erro ao fechar ficheiro esqueleto %s"
|
||||
|
||||
#: main.c:693
|
||||
#, c-format
|
||||
msgid "error creating header file %s"
|
||||
msgstr "erro ao criar ficheiro de cabeçalho %s"
|
||||
|
||||
#: main.c:701
|
||||
#, c-format
|
||||
msgid "error writing output file %s"
|
||||
msgstr "erro ao escrever ficheiro de saída %s"
|
||||
|
||||
#: main.c:705
|
||||
#, c-format
|
||||
msgid "error closing output file %s"
|
||||
msgstr "erro ao fechar ficheiro de saída %s"
|
||||
|
||||
#: main.c:709
|
||||
#, c-format
|
||||
msgid "error deleting output file %s"
|
||||
msgstr "erro ao eliminar ficheiro de saída %s"
|
||||
|
||||
#: main.c:716
|
||||
#, c-format
|
||||
msgid "No backing up.\n"
|
||||
msgstr "Sem seguranças.\n"
|
||||
|
||||
#: main.c:720
|
||||
#, c-format
|
||||
msgid "%d backing up (non-accepting) states.\n"
|
||||
msgstr "%d estados de segurança (não aceitando).\n"
|
||||
|
||||
#: main.c:724
|
||||
#, c-format
|
||||
msgid "Compressed tables always back up.\n"
|
||||
msgstr "Tabelas comprimidas têm sempre segurança.\n"
|
||||
|
||||
#: main.c:727
|
||||
#, c-format
|
||||
msgid "error writing backup file %s"
|
||||
msgstr "erro ao escrever segurança %s"
|
||||
|
||||
#: main.c:731
|
||||
#, c-format
|
||||
msgid "error closing backup file %s"
|
||||
msgstr "erro ao fechar segurança %s"
|
||||
|
||||
#: main.c:736
|
||||
#, c-format
|
||||
msgid "%s version %s usage statistics:\n"
|
||||
msgstr "%s versão %s estatisticas de uso:\n"
|
||||
|
||||
#: main.c:739
|
||||
#, c-format
|
||||
msgid " scanner options: -"
|
||||
msgstr " opções do analisador: -"
|
||||
|
||||
#: main.c:818
|
||||
#, c-format
|
||||
msgid " %d/%d NFA states\n"
|
||||
msgstr " estados NFA %d/%d\n"
|
||||
|
||||
#: main.c:820
|
||||
#, c-format
|
||||
msgid " %d/%d DFA states (%d words)\n"
|
||||
msgstr " estados DFA %d/%d (%d palavras)\n"
|
||||
|
||||
#: main.c:822
|
||||
#, c-format
|
||||
msgid " %d rules\n"
|
||||
msgstr " %d regras\n"
|
||||
|
||||
#: main.c:827
|
||||
#, c-format
|
||||
msgid " No backing up\n"
|
||||
msgstr " Sem seguranças\n"
|
||||
|
||||
#: main.c:831
|
||||
#, c-format
|
||||
msgid " %d backing-up (non-accepting) states\n"
|
||||
msgstr " %d estados de segurança (não aceitando).\n"
|
||||
|
||||
#: main.c:836
|
||||
#, c-format
|
||||
msgid " Compressed tables always back-up\n"
|
||||
msgstr "Tabelas comprimidas têm sempre segurança.\n"
|
||||
|
||||
#: main.c:840
|
||||
#, c-format
|
||||
msgid " Beginning-of-line patterns used\n"
|
||||
msgstr " Padrões de início de linha usados\n"
|
||||
|
||||
#: main.c:842
|
||||
#, c-format
|
||||
msgid " %d/%d start conditions\n"
|
||||
msgstr " condições iniciais %d/%d\n"
|
||||
|
||||
#: main.c:846
|
||||
#, c-format
|
||||
msgid " %d epsilon states, %d double epsilon states\n"
|
||||
msgstr " estados epsilon %d, estados duplo epsilon %d\n"
|
||||
|
||||
#: main.c:850
|
||||
#, c-format
|
||||
msgid " no character classes\n"
|
||||
msgstr " sem classes de carácter\n"
|
||||
|
||||
#: main.c:854
|
||||
#, c-format
|
||||
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
|
||||
msgstr " classes de carácter %d/%d necessárias %d/%d palavras de armazenamento, %d reutilizadas\n"
|
||||
|
||||
#: main.c:859
|
||||
#, c-format
|
||||
msgid " %d state/nextstate pairs created\n"
|
||||
msgstr " %d pares estado/estado seguinte criados\n"
|
||||
|
||||
#: main.c:862
|
||||
#, c-format
|
||||
msgid " %d/%d unique/duplicate transitions\n"
|
||||
msgstr " %d/%d transições únicas/duplicadas\n"
|
||||
|
||||
#: main.c:867
|
||||
#, c-format
|
||||
msgid " %d table entries\n"
|
||||
msgstr " %d entradas de tabela\n"
|
||||
|
||||
#: main.c:875
|
||||
#, c-format
|
||||
msgid " %d/%d base-def entries created\n"
|
||||
msgstr " %d/%d entradas base-def criadas\n"
|
||||
|
||||
#: main.c:879
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) nxt-chk entries created\n"
|
||||
msgstr " %d/%d (pico %d) entradas nxt-chk criadas\n"
|
||||
|
||||
#: main.c:883
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
|
||||
msgstr " %d/%d (pico %d) entradas modelo nxt-chk criadas\n"
|
||||
|
||||
#: main.c:887
|
||||
#, c-format
|
||||
msgid " %d empty table entries\n"
|
||||
msgstr " %d entradas de tabela vazias\n"
|
||||
|
||||
#: main.c:889
|
||||
#, c-format
|
||||
msgid " %d protos created\n"
|
||||
msgstr " %d protos criados\n"
|
||||
|
||||
#: main.c:892
|
||||
#, c-format
|
||||
msgid " %d templates created, %d uses\n"
|
||||
msgstr " %d modelos criados, %d usos\n"
|
||||
|
||||
#: main.c:900
|
||||
#, c-format
|
||||
msgid " %d/%d equivalence classes created\n"
|
||||
msgstr " %d/%d classes de equivalência criadas\n"
|
||||
|
||||
#: main.c:908
|
||||
#, c-format
|
||||
msgid " %d/%d meta-equivalence classes created\n"
|
||||
msgstr " %d/%d classes de meta-equivalência criadas\n"
|
||||
|
||||
#: main.c:914
|
||||
#, c-format
|
||||
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
|
||||
msgstr " %d (%d gravadas) colisões de hash, %d DFAs iguais\n"
|
||||
|
||||
#: main.c:916
|
||||
#, c-format
|
||||
msgid " %d sets of reallocations needed\n"
|
||||
msgstr " %d conjuntos de re-alocação necessários\n"
|
||||
|
||||
#: main.c:918
|
||||
#, c-format
|
||||
msgid " %d total table entries needed\n"
|
||||
msgstr " %d entradas de tabela totais necessárias\n"
|
||||
|
||||
#: main.c:995
|
||||
#, c-format
|
||||
msgid "Internal error. flexopts are malformed.\n"
|
||||
msgstr "Erro interno. flexopts mal formados.\n"
|
||||
|
||||
#: main.c:1005
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Tente \"%s --help\" para mais informação.\n"
|
||||
|
||||
#: main.c:1062
|
||||
#, c-format
|
||||
msgid "unknown -C option '%c'"
|
||||
msgstr "Opção -C \"%c\" desconhecida"
|
||||
|
||||
#: main.c:1191
|
||||
#, c-format
|
||||
msgid "%s %s\n"
|
||||
msgstr "%s %s\n"
|
||||
|
||||
#: main.c:1466
|
||||
msgid "fatal parse error"
|
||||
msgstr "erro de processamento fatal"
|
||||
|
||||
#: main.c:1498
|
||||
#, c-format
|
||||
msgid "could not create backing-up info file %s"
|
||||
msgstr "impossível criar ficheiro de informação de segurança %s"
|
||||
|
||||
#: main.c:1519
|
||||
#, c-format
|
||||
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
|
||||
msgstr "a opção de compatibilidade -l AT&T lex implica uma grande perda de desempenho\n"
|
||||
|
||||
#: main.c:1522
|
||||
#, c-format
|
||||
msgid " and may be the actual source of other reported performance penalties\n"
|
||||
msgstr " e pode ser a fonte actual de outras penalizações de desempenho reportadas\n"
|
||||
|
||||
#: main.c:1528
|
||||
#, c-format
|
||||
msgid "%%option yylineno entails a performance penalty ONLY on rules that can match newline characters\n"
|
||||
msgstr "a %%opção yylineno implica uma perda de desempenho SÓ em regras que possam comparar caracteres de nova linha\n"
|
||||
|
||||
#: main.c:1535
|
||||
#, c-format
|
||||
msgid "-I (interactive) entails a minor performance penalty\n"
|
||||
msgstr "-I (interactiva) implica uma perda menor de desempenho\n"
|
||||
|
||||
#: main.c:1540
|
||||
#, c-format
|
||||
msgid "yymore() entails a minor performance penalty\n"
|
||||
msgstr "yymore() implica uma perda menor de desempenho\n"
|
||||
|
||||
#: main.c:1546
|
||||
#, c-format
|
||||
msgid "REJECT entails a large performance penalty\n"
|
||||
msgstr "REJECT implica uma grave perda de desempenho\n"
|
||||
|
||||
#: main.c:1551
|
||||
#, c-format
|
||||
msgid "Variable trailing context rules entail a large performance penalty\n"
|
||||
msgstr "Regras variáveis de contexto final implicam uma grave perda de desempenho\n"
|
||||
|
||||
#: main.c:1563
|
||||
msgid "REJECT cannot be used with -f or -F"
|
||||
msgstr "REJECT não ode ser usado com -f ou -F"
|
||||
|
||||
#: main.c:1566
|
||||
#, c-format
|
||||
msgid "%option yylineno cannot be used with REJECT"
|
||||
msgstr "a %opção yylineno não pode ser usada com REJECT"
|
||||
|
||||
#: main.c:1569
|
||||
msgid "variable trailing context rules cannot be used with -f or -F"
|
||||
msgstr "regras variáveis de contexto final não podem ser usadas com -f ou -F"
|
||||
|
||||
#: main.c:1692
|
||||
#, c-format
|
||||
msgid "%option yyclass only meaningful for C++ scanners"
|
||||
msgstr "a %opção yyclass só tem significado para analisadores C++"
|
||||
|
||||
#: main.c:1799
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS] [FILE]...\n"
|
||||
msgstr "Uso: %s [OPÇÕES] [FICHEIRO]...\n"
|
||||
|
||||
#: main.c:1802
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Generates programs that perform pattern-matching on text.\n"
|
||||
"\n"
|
||||
"Table Compression:\n"
|
||||
" -Ca, --align trade off larger tables for better memory alignment\n"
|
||||
" -Ce, --ecs construct equivalence classes\n"
|
||||
" -Cf do not compress tables; use -f representation\n"
|
||||
" -CF do not compress tables; use -F representation\n"
|
||||
" -Cm, --meta-ecs construct meta-equivalence classes\n"
|
||||
" -Cr, --read use read() instead of stdio for scanner input\n"
|
||||
" -f, --full generate fast, large scanner. Same as -Cfr\n"
|
||||
" -F, --fast use alternate table representation. Same as -CFr\n"
|
||||
" -Cem default compression (same as --ecs --meta-ecs)\n"
|
||||
"\n"
|
||||
"Debugging:\n"
|
||||
" -d, --debug enable debug mode in scanner\n"
|
||||
" -b, --backup write backing-up information to %s\n"
|
||||
" -p, --perf-report write performance report to stderr\n"
|
||||
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
|
||||
" -T, --trace %s should run in trace mode\n"
|
||||
" -w, --nowarn do not generate warnings\n"
|
||||
" -v, --verbose write summary of scanner statistics to stdout\n"
|
||||
"\n"
|
||||
"Files:\n"
|
||||
" -o, --outfile=FILE specify output filename\n"
|
||||
" -S, --skel=FILE specify skeleton file\n"
|
||||
" -t, --stdout write scanner on stdout instead of %s\n"
|
||||
" --yyclass=NAME name of C++ class\n"
|
||||
" --header-file=FILE create a C header file in addition to the scanner\n"
|
||||
" --tables-file[=FILE] write tables to FILE\n"
|
||||
"\n"
|
||||
"Scanner behavior:\n"
|
||||
" -7, --7bit generate 7-bit scanner\n"
|
||||
" -8, --8bit generate 8-bit scanner\n"
|
||||
" -B, --batch generate batch scanner (opposite of -I)\n"
|
||||
" -i, --case-insensitive ignore case in patterns\n"
|
||||
" -l, --lex-compat maximal compatibility with original lex\n"
|
||||
" -X, --posix-compat maximal compatibility with POSIX lex\n"
|
||||
" -I, --interactive generate interactive scanner (opposite of -B)\n"
|
||||
" --yylineno track line count in yylineno\n"
|
||||
"\n"
|
||||
"Generated code:\n"
|
||||
" -+, --c++ generate C++ scanner class\n"
|
||||
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
|
||||
" -L, --noline suppress #line directives in scanner\n"
|
||||
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
|
||||
" -R, --reentrant generate a reentrant C scanner\n"
|
||||
" --bison-bridge scanner for bison pure parser.\n"
|
||||
" --bison-locations include yylloc support.\n"
|
||||
" --stdinit initialize yyin/yyout to stdin/stdout\n"
|
||||
" --noansi-definitions old-style function definitions\n"
|
||||
" --noansi-prototypes empty parameter list in prototypes\n"
|
||||
" --nounistd do not include <unistd.h>\n"
|
||||
" --noFUNCTION do not generate a particular FUNCTION\n"
|
||||
"\n"
|
||||
"Miscellaneous:\n"
|
||||
" -c do-nothing POSIX option\n"
|
||||
" -n do-nothing POSIX option\n"
|
||||
" -?\n"
|
||||
" -h, --help produce this help message\n"
|
||||
" -V, --version report %s version\n"
|
||||
msgstr ""
|
||||
"Gera programas que realizam comparação de padrões em texto.\n"
|
||||
"\n"
|
||||
"Compressão de tabela:\n"
|
||||
" -Ca, --align troca tabelas maiores para melhor alinhamento da memória\n"
|
||||
" -Ce, --ecs constrói classes de equivalência\n"
|
||||
" -Cf não comprime tabelas; usa representação -f\n"
|
||||
" -CF não comprime tabelas; usa representação -F\n"
|
||||
" -Cm, --meta-ecs constrói classes de meta-equivalência\n"
|
||||
" -Cr, --read usa read() em vez de stdio para entrada do analisador\n"
|
||||
" -f, --full gera analisador rápido e grande. Igual a -Cfr\n"
|
||||
" -F, --fast usa representação de tabela alternativa. Igual a -CFr\n"
|
||||
" -Cem compressão predefinida (igual a --ecs --meta-ecs)\n"
|
||||
"\n"
|
||||
"Depuração:\n"
|
||||
" -d, --debug activa modo de depuração no analisador\n"
|
||||
" -b, --backup escreve informação de segurança em %s\n"
|
||||
" -p, --perf-report escreve relatório de desempenho em stderr\n"
|
||||
" -s, --nodefault suprime regra predefinida para texto não comparado em ECHO\n"
|
||||
" -T, --trace %s deve correr em modo de rasto\n"
|
||||
" -w, --nowarn não gera avisos\n"
|
||||
" -v, --verbose escreve resumo das estatísticas do analisador em stdout\n"
|
||||
"\n"
|
||||
"Ficheiros:\n"
|
||||
" -o, --outfile=FICH especifica o ficheiro de saída\n"
|
||||
" -S, --skel=FICH especifica o ficheiro esqueleto\n"
|
||||
" -t, --stdout escreve o analisador em stdout em vez de %s\n"
|
||||
" --yyclass=NOME nome da classe C++\n"
|
||||
" --header-file=FICH cria um ficheiro de cabeçalho C além do analisador\n"
|
||||
" --tables-file[=FICH] escreve tabelas em FICH\n"
|
||||
"\n"
|
||||
"Comportamento do analisador:\n"
|
||||
" -7, --7bit gera analisador de 7-bit\n"
|
||||
" -8, --8bit gera analisador de 8-bit\n"
|
||||
" -B, --batch gera analisador em lote (oposto de -I)\n"
|
||||
" -i, --case-insensitive ignora maiúsculas em padrões\n"
|
||||
" -l, --lex-compat compatibilidade máxima com o léxico original\n"
|
||||
" -X, --posix-compat compatibilidade máxima com o léxico POSIX\n"
|
||||
" -I, --interactive gera analisador interactivo (oposto de -B)\n"
|
||||
" --yylineno segue o total de linhas em yylineno\n"
|
||||
"\n"
|
||||
"Código gerado:\n"
|
||||
" -+, --c++ gera classe de analisador C++\n"
|
||||
" -Dmacro[=defn] #define macro defn (defn predefinido é \"1\")\n"
|
||||
" -L, --noline suprime directivas #line no analisador\n"
|
||||
" -P, --prefix=CADEIA usa CADEIA como prefixo em vez de \"yy\"\n"
|
||||
" -R, --reentrant gera um analisador reentrant C\n"
|
||||
" --bison-bridge analisador para processador de bison puro.\n"
|
||||
" --bison-locations inclui suporte yylloc.\n"
|
||||
" --stdinit inicializa yyin/yyout para stdin/stdout\n"
|
||||
" --noansi-definitions definições de funções de estilo antigo\n"
|
||||
" --noansi-prototypes lista de parâmetros em protótipos\n"
|
||||
" --nounistd não inclui <unistd.h>\n"
|
||||
" --noFUNÇÃO não gera uma FUNÇÃO em particular\n"
|
||||
"\n"
|
||||
"Mistas:\n"
|
||||
" -c opção POSIX não-fazer-nada\n"
|
||||
" -n opção POSIX não-fazer-nada\n"
|
||||
" -?\n"
|
||||
" -h, --help mostra esta mensagem de ajuda\n"
|
||||
" -V, --version mostra a versão %s\n"
|
||||
|
||||
#: misc.c:65
|
||||
msgid "allocation of sko_stack failed"
|
||||
msgstr "falha ao alocar sko_stack"
|
||||
|
||||
#: misc.c:102 misc.c:128
|
||||
#, c-format
|
||||
msgid "name \"%s\" ridiculously long"
|
||||
msgstr "nome \"%s\" ridiculamente longo"
|
||||
|
||||
#: misc.c:177
|
||||
msgid "memory allocation failed in allocate_array()"
|
||||
msgstr "falha ao alocar memória em allocate_array()"
|
||||
|
||||
#: misc.c:230
|
||||
#, c-format
|
||||
msgid "bad character '%s' detected in check_char()"
|
||||
msgstr "mau carácter \"%s\" detectado em check_char()"
|
||||
|
||||
#: misc.c:235
|
||||
#, c-format
|
||||
msgid "scanner requires -8 flag to use the character %s"
|
||||
msgstr "o analisador requer bandeira -8 para usar o carácter %s"
|
||||
|
||||
#: misc.c:268
|
||||
msgid "dynamic memory failure in copy_string()"
|
||||
msgstr "falha de memória dinâmica copy_string()"
|
||||
|
||||
#: misc.c:367
|
||||
#, c-format
|
||||
msgid "%s: fatal internal error, %s\n"
|
||||
msgstr "%s: erro interno fatal, %s\n"
|
||||
|
||||
#: misc.c:803
|
||||
msgid "attempt to increase array size failed"
|
||||
msgstr "falha ao tentar aumentar o tamanho da matriz"
|
||||
|
||||
#: misc.c:930
|
||||
msgid "bad line in skeleton file"
|
||||
msgstr "má linha em ficheiro esqueleto"
|
||||
|
||||
#: misc.c:979
|
||||
msgid "memory allocation failed in yy_flex_xmalloc()"
|
||||
msgstr "falha ao alocar memória em yy_flex_xmalloc()"
|
||||
|
||||
#: nfa.c:104
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"********** beginning dump of nfa with start state %d\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"********** a começar o despejo de nfa com estado inicial %d\n"
|
||||
|
||||
#: nfa.c:115
|
||||
#, c-format
|
||||
msgid "state # %4d\t"
|
||||
msgstr "estado nº %4d\t"
|
||||
|
||||
#: nfa.c:130
|
||||
#, c-format
|
||||
msgid "********** end of dump\n"
|
||||
msgstr "********** fim de despejo\n"
|
||||
|
||||
#: nfa.c:174
|
||||
msgid "empty machine in dupmachine()"
|
||||
msgstr "máquina vazia em dupmachine()"
|
||||
|
||||
#: nfa.c:240
|
||||
#, c-format
|
||||
msgid "Variable trailing context rule at line %d\n"
|
||||
msgstr "Regra variável de contexto final na linha %d\n"
|
||||
|
||||
#: nfa.c:364
|
||||
msgid "bad state type in mark_beginning_as_normal()"
|
||||
msgstr "mau tipo de estado em mark_beginning_as_normal()"
|
||||
|
||||
#: nfa.c:609
|
||||
#, c-format
|
||||
msgid "input rules are too complicated (>= %d NFA states)"
|
||||
msgstr "regras de entrada muito complicadas (>= %d estados NFA)"
|
||||
|
||||
#: nfa.c:688
|
||||
msgid "found too many transitions in mkxtion()"
|
||||
msgstr "encontradas demasiadas transições em mkxtion()"
|
||||
|
||||
#: nfa.c:714
|
||||
#, c-format
|
||||
msgid "too many rules (> %d)!"
|
||||
msgstr "demasiadas regras (> %d)!"
|
||||
|
||||
#: parse.y:159
|
||||
msgid "unknown error processing section 1"
|
||||
msgstr "erro desconhecido ao processar a secção 1"
|
||||
|
||||
#: parse.y:184 parse.y:351
|
||||
msgid "bad start condition list"
|
||||
msgstr "má lista de condição inicial"
|
||||
|
||||
#: parse.y:315
|
||||
msgid "unrecognized rule"
|
||||
msgstr "regra não reconhecida"
|
||||
|
||||
#: parse.y:434 parse.y:447 parse.y:516
|
||||
msgid "trailing context used twice"
|
||||
msgstr "contexto final usado duas vezes"
|
||||
|
||||
#: parse.y:552 parse.y:562 parse.y:635 parse.y:645
|
||||
msgid "bad iteration values"
|
||||
msgstr "maus valores de iteração"
|
||||
|
||||
#: parse.y:580 parse.y:598 parse.y:663 parse.y:681
|
||||
msgid "iteration value must be positive"
|
||||
msgstr "o valor de iteração tem de ser positivo"
|
||||
|
||||
#: parse.y:804 parse.y:814
|
||||
#, c-format
|
||||
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
|
||||
msgstr "o intervalo de caracteres [%c-%c] é ambíguo num analisador que ignora maiúsculas"
|
||||
|
||||
#: parse.y:819
|
||||
msgid "negative range in character class"
|
||||
msgstr "intervalo negativo em classe de carácter"
|
||||
|
||||
#: parse.y:916
|
||||
msgid "[:^lower:] is ambiguous in case insensitive scanner"
|
||||
msgstr "[:^lower:] é ambíguo num analisador que ignora maiúsculas"
|
||||
|
||||
#: parse.y:922
|
||||
msgid "[:^upper:] ambiguous in case insensitive scanner"
|
||||
msgstr "[:^upper:] é ambíguo num analisador que ignora maiúsculas"
|
||||
|
||||
#: scan.l:75 scan.l:618 scan.l:676
|
||||
msgid "Input line too long\n"
|
||||
msgstr "Linha de entrada muito grande\n"
|
||||
|
||||
#: scan.l:161
|
||||
#, c-format
|
||||
msgid "malformed '%top' directive"
|
||||
msgstr "directiva \"%top\" mal formada"
|
||||
|
||||
#: scan.l:183
|
||||
#, no-c-format
|
||||
msgid "unrecognized '%' directive"
|
||||
msgstr "directiva \"%\" não reconhecida"
|
||||
|
||||
#: scan.l:192
|
||||
msgid "Definition name too long\n"
|
||||
msgstr "Nome de definição muito longo\n"
|
||||
|
||||
#: scan.l:284
|
||||
msgid "Unmatched '{'"
|
||||
msgstr "{ sem par"
|
||||
|
||||
#: scan.l:300
|
||||
#, c-format
|
||||
msgid "Definition value for {%s} too long\n"
|
||||
msgstr "Valor de definição para {%s} muito longo\n"
|
||||
|
||||
#: scan.l:317
|
||||
msgid "incomplete name definition"
|
||||
msgstr "Definição de nome incompleta"
|
||||
|
||||
#: scan.l:443
|
||||
msgid "Option line too long\n"
|
||||
msgstr "Linha de opção muito longa\n"
|
||||
|
||||
#: scan.l:451
|
||||
#, c-format
|
||||
msgid "unrecognized %%option: %s"
|
||||
msgstr "%%opção não reconhecida: %s"
|
||||
|
||||
#: scan.l:633 scan.l:800
|
||||
msgid "bad character class"
|
||||
msgstr "má classe de carácter"
|
||||
|
||||
#: scan.l:683
|
||||
#, c-format
|
||||
msgid "undefined definition {%s}"
|
||||
msgstr "definição {%s} indefinida"
|
||||
|
||||
#: scan.l:755
|
||||
#, c-format
|
||||
msgid "bad <start condition>: %s"
|
||||
msgstr "má <condição inicial>: %s"
|
||||
|
||||
#: scan.l:768
|
||||
msgid "missing quote"
|
||||
msgstr "aspa em falta"
|
||||
|
||||
#: scan.l:834
|
||||
#, c-format
|
||||
msgid "bad character class expression: %s"
|
||||
msgstr "má expressão de classe de carácter: %s"
|
||||
|
||||
#: scan.l:856
|
||||
msgid "bad character inside {}'s"
|
||||
msgstr "mau carácter dentro de {}"
|
||||
|
||||
#: scan.l:862
|
||||
msgid "missing }"
|
||||
msgstr "} em falta"
|
||||
|
||||
#: scan.l:940
|
||||
msgid "EOF encountered inside an action"
|
||||
msgstr "EOF encontrado dentro de uma acção"
|
||||
|
||||
#: scan.l:945
|
||||
msgid "EOF encountered inside pattern"
|
||||
msgstr "EOF encontrado dentro de um padrão"
|
||||
|
||||
#: scan.l:967
|
||||
#, c-format
|
||||
msgid "bad character: %s"
|
||||
msgstr "mau carácter: %s"
|
||||
|
||||
#: scan.l:996
|
||||
#, c-format
|
||||
msgid "can't open %s"
|
||||
msgstr "impossível abrir %s"
|
||||
|
||||
#: scanopt.c:291
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS]...\n"
|
||||
msgstr "Uso: %s [OPÇÕES]...\n"
|
||||
|
||||
#: scanopt.c:564
|
||||
#, c-format
|
||||
msgid "option `%s' doesn't allow an argument\n"
|
||||
msgstr "a opção \"%s\" não permite um argumento\n"
|
||||
|
||||
#: scanopt.c:569
|
||||
#, c-format
|
||||
msgid "option `%s' requires an argument\n"
|
||||
msgstr "a opção \"%s\" requer um argumento\n"
|
||||
|
||||
#: scanopt.c:573
|
||||
#, c-format
|
||||
msgid "option `%s' is ambiguous\n"
|
||||
msgstr "a opção \"%s\" é ambígua\n"
|
||||
|
||||
#: scanopt.c:577
|
||||
#, c-format
|
||||
msgid "Unrecognized option `%s'\n"
|
||||
msgstr "Opção \"%s\" não reconhecida\n"
|
||||
|
||||
#: scanopt.c:581
|
||||
#, c-format
|
||||
msgid "Unknown error=(%d)\n"
|
||||
msgstr "Erro desconhecido=(%d)\n"
|
||||
|
||||
#: sym.c:100
|
||||
msgid "symbol table memory allocation failed"
|
||||
msgstr "falha ao alocar memória de tabela de símbolos"
|
||||
|
||||
#: sym.c:202
|
||||
msgid "name defined twice"
|
||||
msgstr "nome definido duas vezes"
|
||||
|
||||
#: sym.c:253
|
||||
#, c-format
|
||||
msgid "start condition %s declared twice"
|
||||
msgstr "condição inicial %s declarada duas vezes"
|
||||
|
||||
#: yylex.c:56
|
||||
msgid "premature EOF"
|
||||
msgstr "EOF prematuro"
|
||||
|
||||
#: yylex.c:198
|
||||
#, c-format
|
||||
msgid "End Marker\n"
|
||||
msgstr "Marcador final\n"
|
||||
|
||||
#: yylex.c:204
|
||||
#, c-format
|
||||
msgid "*Something Weird* - tok: %d val: %d\n"
|
||||
msgstr "*Algo esquisito* - tok: %d val: %d\n"
|
||||
@@ -0,0 +1,975 @@
|
||||
# Ukrainian translations for flex.
|
||||
# Copyright (C) 2017 The Flex Project (msgids)
|
||||
# This file is distributed under the same license as the flex package.
|
||||
#
|
||||
# Viktor Shepel <shepelvictor@bigmir.net>, 2017.
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2017.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: flex 2.5.38\n"
|
||||
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2017-05-24 18:00-0400\n"
|
||||
"PO-Revision-Date: 2017-06-17 09:26+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Bugs: Report translation errors to the Language-Team address.\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
|
||||
#: src/buf.c:79
|
||||
msgid "Allocation of buffer to print string failed"
|
||||
msgstr "Не вдалось виділити буфер для рядка, що виводиться"
|
||||
|
||||
#: src/buf.c:107
|
||||
msgid "Allocation of buffer for line directive failed"
|
||||
msgstr "Не вдалось виділити буфер для рядкової директиви"
|
||||
|
||||
#: src/buf.c:177
|
||||
msgid "Allocation of buffer for m4 def failed"
|
||||
msgstr "Не вдалось виділити буфер для m4 def"
|
||||
|
||||
#: src/buf.c:198
|
||||
msgid "Allocation of buffer for m4 undef failed"
|
||||
msgstr "Не вдалось виділити буфер для m4 undef"
|
||||
|
||||
#: src/dfa.c:59
|
||||
#, c-format
|
||||
msgid "State #%d is non-accepting -\n"
|
||||
msgstr "Стан #%d не є допустимим -\n"
|
||||
|
||||
#: src/dfa.c:119
|
||||
msgid "dangerous trailing context"
|
||||
msgstr "небезпечний замикаючий контекст"
|
||||
|
||||
#: src/dfa.c:159
|
||||
#, c-format
|
||||
msgid " associated rule line numbers:"
|
||||
msgstr " номера рядків асоційованого правила:"
|
||||
|
||||
#: src/dfa.c:193
|
||||
#, c-format
|
||||
msgid " out-transitions: "
|
||||
msgstr " out-переходи: "
|
||||
|
||||
#: src/dfa.c:201
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
" jam-transitions: EOF "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" jam-переходи: EOF "
|
||||
|
||||
#: src/dfa.c:331
|
||||
msgid "consistency check failed in epsclosure()"
|
||||
msgstr "помилка при перевірці на цілісність у epsclosure()"
|
||||
|
||||
#: src/dfa.c:419
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"DFA Dump:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Дамп ДСА:\n"
|
||||
"\n"
|
||||
|
||||
#: src/dfa.c:587
|
||||
msgid "could not create unique end-of-buffer state"
|
||||
msgstr "неможливо створити унікальний стан end_of_buffer"
|
||||
|
||||
#: src/dfa.c:608
|
||||
#, c-format
|
||||
msgid "state # %d:\n"
|
||||
msgstr "стан # %d:\n"
|
||||
|
||||
#: src/dfa.c:768
|
||||
msgid "Could not write yynxt_tbl[][]"
|
||||
msgstr "Неможливо записати yynxt_tbl[][]"
|
||||
|
||||
#: src/dfa.c:1028
|
||||
msgid "bad transition character detected in sympartition()"
|
||||
msgstr "виявлено невірний символ переходу в sympartition()"
|
||||
|
||||
#: src/gen.c:480
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Equivalence Classes:\n"
|
||||
"\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Класи еквівалентності:\n"
|
||||
"\n"
|
||||
|
||||
#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
|
||||
#, c-format
|
||||
msgid "state # %d accepts: [%d]\n"
|
||||
msgstr "стан # %d приймає: [%d]\n"
|
||||
|
||||
#: src/gen.c:1115
|
||||
#, c-format
|
||||
msgid "state # %d accepts: "
|
||||
msgstr "стан # %d приймає: "
|
||||
|
||||
#: src/gen.c:1162
|
||||
msgid "Could not write yyacclist_tbl"
|
||||
msgstr "Неможливо записати yyacclist_tbl"
|
||||
|
||||
#: src/gen.c:1236
|
||||
msgid "Could not write yyacc_tbl"
|
||||
msgstr "Неможливо записати yyacc_tbl"
|
||||
|
||||
#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
|
||||
msgid "Could not write ecstbl"
|
||||
msgstr "Неможливо записати ecstbl"
|
||||
|
||||
#: src/gen.c:1271
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Meta-Equivalence Classes:\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"Мета-Еквівалентні Класи:\n"
|
||||
|
||||
#: src/gen.c:1293
|
||||
msgid "Could not write yymeta_tbl"
|
||||
msgstr "Неможливо записати yymeta_tbl"
|
||||
|
||||
#: src/gen.c:1352
|
||||
msgid "Could not write yybase_tbl"
|
||||
msgstr "Неможливо записати yybase_tbl"
|
||||
|
||||
#: src/gen.c:1384
|
||||
msgid "Could not write yydef_tbl"
|
||||
msgstr "Неможливо записати yydef_tbl"
|
||||
|
||||
#: src/gen.c:1422
|
||||
msgid "Could not write yynxt_tbl"
|
||||
msgstr "Неможливо записати yynxt_tbl"
|
||||
|
||||
#: src/gen.c:1456
|
||||
msgid "Could not write yychk_tbl"
|
||||
msgstr "Неможливо записати yychk_tbl"
|
||||
|
||||
#: src/gen.c:1608 src/gen.c:1637
|
||||
msgid "Could not write ftbl"
|
||||
msgstr "Неможливо записати ftbl"
|
||||
|
||||
#: src/gen.c:1614
|
||||
msgid "Could not write ssltbl"
|
||||
msgstr "Неможливо записати ssltbl"
|
||||
|
||||
#: src/gen.c:1665
|
||||
msgid "Could not write eoltbl"
|
||||
msgstr "Неможливо записати eoltbl"
|
||||
|
||||
#: src/gen.c:1722
|
||||
msgid "Could not write yynultrans_tbl"
|
||||
msgstr "Неможливо записати yynultrans_tbl"
|
||||
|
||||
#: src/main.c:178
|
||||
msgid "rule cannot be matched"
|
||||
msgstr "неможливо застосувати правило"
|
||||
|
||||
#: src/main.c:183
|
||||
msgid "-s option given but default rule can be matched"
|
||||
msgstr ""
|
||||
"вказано параметр -s, але правило за замовчуванням може бути застосоване"
|
||||
|
||||
#: src/main.c:221
|
||||
msgid "Can't use -+ with -l option"
|
||||
msgstr "Неможливо використовувати -+ з параметром -l"
|
||||
|
||||
#: src/main.c:224
|
||||
msgid "Can't use -f or -F with -l option"
|
||||
msgstr "Неможливо використовувати -f або -F з параметром -l"
|
||||
|
||||
#: src/main.c:228
|
||||
msgid "Can't use --reentrant or --bison-bridge with -l option"
|
||||
msgstr ""
|
||||
"Неможливо використовувати --reentrant або --bison-bridge з параметром -l"
|
||||
|
||||
#: src/main.c:260
|
||||
msgid "-Cf/-CF and -Cm don't make sense together"
|
||||
msgstr "Параметри -Cf/-CF і -Cm разом не мають сенсу"
|
||||
|
||||
#: src/main.c:263
|
||||
msgid "-Cf/-CF and -I are incompatible"
|
||||
msgstr "Параметри -Cf/-CF і -I несумісні"
|
||||
|
||||
#: src/main.c:267
|
||||
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
|
||||
msgstr "Параметри -Cf/-CF несумісні з режимом lex-compatibility"
|
||||
|
||||
#: src/main.c:272
|
||||
msgid "-Cf and -CF are mutually exclusive"
|
||||
msgstr "Параметри -Cf і -CF є взаємовиключними"
|
||||
|
||||
#: src/main.c:276
|
||||
msgid "Can't use -+ with -CF option"
|
||||
msgstr "Неможливо використовувати -+ з параметром -CF"
|
||||
|
||||
#: src/main.c:279
|
||||
#, c-format
|
||||
msgid "%array incompatible with -+ option"
|
||||
msgstr "%array несумісний з параметром -+"
|
||||
|
||||
#: src/main.c:284
|
||||
msgid "Options -+ and --reentrant are mutually exclusive."
|
||||
msgstr "Параметри -+ і --reentrant є взаємовиключними."
|
||||
|
||||
#: src/main.c:287
|
||||
msgid "bison bridge not supported for the C++ scanner."
|
||||
msgstr "bison bridge не підтримується для сканера C++."
|
||||
|
||||
#: src/main.c:336 src/main.c:419
|
||||
#, c-format
|
||||
msgid "could not create %s"
|
||||
msgstr "неможливо створити %s"
|
||||
|
||||
#: src/main.c:431
|
||||
msgid "could not write tables header"
|
||||
msgstr "Неможливо записати заголовок таблиць"
|
||||
|
||||
#: src/main.c:435
|
||||
#, c-format
|
||||
msgid "can't open skeleton file %s"
|
||||
msgstr "Неможливо відкрити файл-каркас %s"
|
||||
|
||||
#: src/main.c:450
|
||||
msgid "Prefix cannot include '[' or ']'"
|
||||
msgstr "Префікс не може містити «[» або «]»"
|
||||
|
||||
#: src/main.c:474
|
||||
msgid "allocation of macro definition failed"
|
||||
msgstr "Не вдалось розмістити визначення макросу"
|
||||
|
||||
#: src/main.c:521
|
||||
#, c-format
|
||||
msgid "input error reading skeleton file %s"
|
||||
msgstr "помилка читання файла-каркаса %s"
|
||||
|
||||
#: src/main.c:525
|
||||
#, c-format
|
||||
msgid "error closing skeleton file %s"
|
||||
msgstr "помилка при закритті файла-каркаса %s"
|
||||
|
||||
#: src/main.c:711
|
||||
#, c-format
|
||||
msgid "error creating header file %s"
|
||||
msgstr "помилка створення файла-заголовку %s"
|
||||
|
||||
#: src/main.c:719
|
||||
#, c-format
|
||||
msgid "error writing output file %s"
|
||||
msgstr "помилка запису у вихідний файл %s"
|
||||
|
||||
#: src/main.c:723
|
||||
#, c-format
|
||||
msgid "error closing output file %s"
|
||||
msgstr "помилка закриття вихідного файла %s"
|
||||
|
||||
#: src/main.c:727
|
||||
#, c-format
|
||||
msgid "error deleting output file %s"
|
||||
msgstr "помилка видалення вихідного файла %s"
|
||||
|
||||
#: src/main.c:734
|
||||
#, c-format
|
||||
msgid "No backing up.\n"
|
||||
msgstr "Резервне копіювання вимкнено.\n"
|
||||
|
||||
#: src/main.c:738
|
||||
#, c-format
|
||||
msgid "%d backing up (non-accepting) states.\n"
|
||||
msgstr "резервне копіювання %d (недопустимих) станів.\n"
|
||||
|
||||
#: src/main.c:742
|
||||
#, c-format
|
||||
msgid "Compressed tables always back up.\n"
|
||||
msgstr "Створення резервних копій стислих таблиць виконується завжди.\n"
|
||||
|
||||
#: src/main.c:745
|
||||
#, c-format
|
||||
msgid "error writing backup file %s"
|
||||
msgstr "помилка запису резервної копії файла %s"
|
||||
|
||||
#: src/main.c:749
|
||||
#, c-format
|
||||
msgid "error closing backup file %s"
|
||||
msgstr "помилка закриття резервної копії файла %s"
|
||||
|
||||
#: src/main.c:754
|
||||
#, c-format
|
||||
msgid "%s version %s usage statistics:\n"
|
||||
msgstr "статистика використання %s версії %s:\n"
|
||||
|
||||
#: src/main.c:757
|
||||
#, c-format
|
||||
msgid " scanner options: -"
|
||||
msgstr " параметри сканера: -"
|
||||
|
||||
#: src/main.c:836
|
||||
#, c-format
|
||||
msgid " %d/%d NFA states\n"
|
||||
msgstr " %d/%d станів НСА\n"
|
||||
|
||||
#: src/main.c:838
|
||||
#, c-format
|
||||
msgid " %d/%d DFA states (%d words)\n"
|
||||
msgstr " %d/%d станів ДСА (%d слів)\n"
|
||||
|
||||
#: src/main.c:840
|
||||
#, c-format
|
||||
msgid " %d rules\n"
|
||||
msgstr " %d правил\n"
|
||||
|
||||
#: src/main.c:845
|
||||
#, c-format
|
||||
msgid " No backing up\n"
|
||||
msgstr " Резервне копіювання вимкнено\n"
|
||||
|
||||
#: src/main.c:849
|
||||
#, c-format
|
||||
msgid " %d backing-up (non-accepting) states\n"
|
||||
msgstr " резервне копіювання %d (недопустимих) станів\n"
|
||||
|
||||
#: src/main.c:854
|
||||
#, c-format
|
||||
msgid " Compressed tables always back-up\n"
|
||||
msgstr " Створення резервних копій стислих таблиць виконується завжди\n"
|
||||
|
||||
#: src/main.c:858
|
||||
#, c-format
|
||||
msgid " Beginning-of-line patterns used\n"
|
||||
msgstr " Використовуються шаблони початку рядка\n"
|
||||
|
||||
#: src/main.c:860
|
||||
#, c-format
|
||||
msgid " %d/%d start conditions\n"
|
||||
msgstr " %d/%d початкових умов\n"
|
||||
|
||||
#: src/main.c:864
|
||||
#, c-format
|
||||
msgid " %d epsilon states, %d double epsilon states\n"
|
||||
msgstr " %d епсилон-станів, %d подвійних епсилон-станів\n"
|
||||
|
||||
#: src/main.c:868
|
||||
#, c-format
|
||||
msgid " no character classes\n"
|
||||
msgstr " відсутні класи символів\n"
|
||||
|
||||
#: src/main.c:872
|
||||
#, c-format
|
||||
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
|
||||
msgstr ""
|
||||
" %d/%d символьних класів потребують %d/%d слів для зберігання, %d "
|
||||
"використано вдруге\n"
|
||||
|
||||
#: src/main.c:877
|
||||
#, c-format
|
||||
msgid " %d state/nextstate pairs created\n"
|
||||
msgstr " створено %d пар стан/наступний-стан\n"
|
||||
|
||||
#: src/main.c:880
|
||||
#, c-format
|
||||
msgid " %d/%d unique/duplicate transitions\n"
|
||||
msgstr " %d/%d унікальних/повторюваних переходів\n"
|
||||
|
||||
#: src/main.c:885
|
||||
#, c-format
|
||||
msgid " %d table entries\n"
|
||||
msgstr " %d елементів таблиці\n"
|
||||
|
||||
#: src/main.c:893
|
||||
#, c-format
|
||||
msgid " %d/%d base-def entries created\n"
|
||||
msgstr " створено %d/%d base-def елементів\n"
|
||||
|
||||
#: src/main.c:897
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) nxt-chk entries created\n"
|
||||
msgstr " створено %d/%d (пік %d) записів nxt-chk\n"
|
||||
|
||||
#: src/main.c:901
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
|
||||
msgstr " створено %d/%d (пік %d) шаблонних записів nxt-chk\n"
|
||||
|
||||
#: src/main.c:905
|
||||
#, c-format
|
||||
msgid " %d empty table entries\n"
|
||||
msgstr " %d порожніх елементів таблиці\n"
|
||||
|
||||
#: src/main.c:907
|
||||
#, c-format
|
||||
msgid " %d protos created\n"
|
||||
msgstr " створено %d прототипів\n"
|
||||
|
||||
#: src/main.c:910
|
||||
#, c-format
|
||||
msgid " %d templates created, %d uses\n"
|
||||
msgstr " створено %d шаблонів, %d використовується\n"
|
||||
|
||||
#: src/main.c:918
|
||||
#, c-format
|
||||
msgid " %d/%d equivalence classes created\n"
|
||||
msgstr " створено класів еквівалентності %d/%d\n"
|
||||
|
||||
#: src/main.c:926
|
||||
#, c-format
|
||||
msgid " %d/%d meta-equivalence classes created\n"
|
||||
msgstr " створено класів мета-еквівалентності %d/%d\n"
|
||||
|
||||
#: src/main.c:932
|
||||
#, c-format
|
||||
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
|
||||
msgstr " %d (%d записано) колізій хеш-таблиці, %d еквівалентних ДСА\n"
|
||||
|
||||
#: src/main.c:934
|
||||
#, c-format
|
||||
msgid " %d sets of reallocations needed\n"
|
||||
msgstr " потрібно %d наборів повторних розміщень\n"
|
||||
|
||||
#: src/main.c:936
|
||||
#, c-format
|
||||
msgid " %d total table entries needed\n"
|
||||
msgstr " всього потрібно %d елементів таблиці\n"
|
||||
|
||||
#: src/main.c:1010
|
||||
#, c-format
|
||||
msgid "Internal error. flexopts are malformed.\n"
|
||||
msgstr "Внутрішня помилка. Неправильне значення flexopts.\n"
|
||||
|
||||
#: src/main.c:1020
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Спробуйте «%s --help» для отримання більш докладного опису.\n"
|
||||
|
||||
#: src/main.c:1077
|
||||
#, c-format
|
||||
msgid "unknown -C option '%c'"
|
||||
msgstr "невідоме значення «%c» для параметру -C"
|
||||
|
||||
#: src/main.c:1206
|
||||
#, c-format
|
||||
msgid "%s %s\n"
|
||||
msgstr "%s %s\n"
|
||||
|
||||
#: src/main.c:1486
|
||||
msgid "fatal parse error"
|
||||
msgstr "фатальна помилка розбору"
|
||||
|
||||
#: src/main.c:1518
|
||||
#, c-format
|
||||
msgid "could not create backing-up info file %s"
|
||||
msgstr "неможливо створити резервну копію інформаційного файла %s"
|
||||
|
||||
#: src/main.c:1539
|
||||
#, c-format
|
||||
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
|
||||
msgstr ""
|
||||
"Параметр -l сумісності з AT&T lex спричиняє значне зниження продуктивності\n"
|
||||
|
||||
#: src/main.c:1542
|
||||
#, c-format
|
||||
msgid " and may be the actual source of other reported performance penalties\n"
|
||||
msgstr "і також може бути істинним джерелом проблем з продуктивністю\n"
|
||||
|
||||
#: src/main.c:1548
|
||||
#, c-format
|
||||
msgid ""
|
||||
"%%option yylineno entails a performance penalty ONLY on rules that can match "
|
||||
"newline characters\n"
|
||||
msgstr ""
|
||||
"%%option yylineno спричиняе значне зниження продуктивності ТІЛЬКИ для "
|
||||
"правил, котрі описують символи нового рядка\n"
|
||||
|
||||
#: src/main.c:1555
|
||||
#, c-format
|
||||
msgid "-I (interactive) entails a minor performance penalty\n"
|
||||
msgstr "-I (інтерактивний) спричиняе незначне зниження продуктивності\n"
|
||||
|
||||
#: src/main.c:1560
|
||||
#, c-format
|
||||
msgid "yymore() entails a minor performance penalty\n"
|
||||
msgstr "yymore() спричиняе незначне зниження продуктивності\n"
|
||||
|
||||
#: src/main.c:1566
|
||||
#, c-format
|
||||
msgid "REJECT entails a large performance penalty\n"
|
||||
msgstr "REJECT спричиняе значне зниження продуктивності\n"
|
||||
|
||||
#: src/main.c:1571
|
||||
#, c-format
|
||||
msgid "Variable trailing context rules entail a large performance penalty\n"
|
||||
msgstr ""
|
||||
"Правила котрі мають замикаючий контекст змінної довжини значно знижують "
|
||||
"продуктивність\n"
|
||||
|
||||
#: src/main.c:1583
|
||||
msgid "REJECT cannot be used with -f or -F"
|
||||
msgstr "REJECT не може бути використано разом з -f або -F"
|
||||
|
||||
#: src/main.c:1586
|
||||
#, c-format
|
||||
msgid "%option yylineno cannot be used with REJECT"
|
||||
msgstr "%option yylineno не може бути використано з REJECT"
|
||||
|
||||
#: src/main.c:1589
|
||||
msgid "variable trailing context rules cannot be used with -f or -F"
|
||||
msgstr ""
|
||||
"Правила котрі мають замикаючий контекст змінної довжини не можуть бути "
|
||||
"використані з -f or -F"
|
||||
|
||||
#: src/main.c:1714
|
||||
#, c-format
|
||||
msgid "%option yyclass only meaningful for C++ scanners"
|
||||
msgstr "%option yyclass має сенс тільки для сканерів C++"
|
||||
|
||||
#: src/main.c:1801
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS] [FILE]...\n"
|
||||
msgstr "Використання: %s [ПАРАМЕТРИ] [ФАЙЛ]…\n"
|
||||
|
||||
#: src/main.c:1804
|
||||
#, fuzzy, c-format
|
||||
msgid ""
|
||||
"Generates programs that perform pattern-matching on text.\n"
|
||||
"\n"
|
||||
"Table Compression:\n"
|
||||
" -Ca, --align trade off larger tables for better memory alignment\n"
|
||||
" -Ce, --ecs construct equivalence classes\n"
|
||||
" -Cf do not compress tables; use -f representation\n"
|
||||
" -CF do not compress tables; use -F representation\n"
|
||||
" -Cm, --meta-ecs construct meta-equivalence classes\n"
|
||||
" -Cr, --read use read() instead of stdio for scanner input\n"
|
||||
" -f, --full generate fast, large scanner. Same as -Cfr\n"
|
||||
" -F, --fast use alternate table representation. Same as -CFr\n"
|
||||
" -Cem default compression (same as --ecs --meta-ecs)\n"
|
||||
"\n"
|
||||
"Debugging:\n"
|
||||
" -d, --debug enable debug mode in scanner\n"
|
||||
" -b, --backup write backing-up information to %s\n"
|
||||
" -p, --perf-report write performance report to stderr\n"
|
||||
" -s, --nodefault suppress default rule to ECHO unmatched text\n"
|
||||
" -T, --trace %s should run in trace mode\n"
|
||||
" -w, --nowarn do not generate warnings\n"
|
||||
" -v, --verbose write summary of scanner statistics to stdout\n"
|
||||
" --hex use hexadecimal numbers instead of octal in debug "
|
||||
"outputs\n"
|
||||
"\n"
|
||||
"Files:\n"
|
||||
" -o, --outfile=FILE specify output filename\n"
|
||||
" -S, --skel=FILE specify skeleton file\n"
|
||||
" -t, --stdout write scanner on stdout instead of %s\n"
|
||||
" --yyclass=NAME name of C++ class\n"
|
||||
" --header-file=FILE create a C header file in addition to the "
|
||||
"scanner\n"
|
||||
" --tables-file[=FILE] write tables to FILE\n"
|
||||
"\n"
|
||||
"Scanner behavior:\n"
|
||||
" -7, --7bit generate 7-bit scanner\n"
|
||||
" -8, --8bit generate 8-bit scanner\n"
|
||||
" -B, --batch generate batch scanner (opposite of -I)\n"
|
||||
" -i, --case-insensitive ignore case in patterns\n"
|
||||
" -l, --lex-compat maximal compatibility with original lex\n"
|
||||
" -X, --posix-compat maximal compatibility with POSIX lex\n"
|
||||
" -I, --interactive generate interactive scanner (opposite of -B)\n"
|
||||
" --yylineno track line count in yylineno\n"
|
||||
"\n"
|
||||
"Generated code:\n"
|
||||
" -+, --c++ generate C++ scanner class\n"
|
||||
" -Dmacro[=defn] #define macro defn (default defn is '1')\n"
|
||||
" -L, --noline suppress #line directives in scanner\n"
|
||||
" -P, --prefix=STRING use STRING as prefix instead of \"yy\"\n"
|
||||
" -R, --reentrant generate a reentrant C scanner\n"
|
||||
" --bison-bridge scanner for bison pure parser.\n"
|
||||
" --bison-locations include yylloc support.\n"
|
||||
" --stdinit initialize yyin/yyout to stdin/stdout\n"
|
||||
" --nounistd do not include <unistd.h>\n"
|
||||
" --noFUNCTION do not generate a particular FUNCTION\n"
|
||||
"\n"
|
||||
"Miscellaneous:\n"
|
||||
" -c do-nothing POSIX option\n"
|
||||
" -n do-nothing POSIX option\n"
|
||||
" -?\n"
|
||||
" -h, --help produce this help message\n"
|
||||
" -V, --version report %s version\n"
|
||||
msgstr ""
|
||||
"Генерує програми, що знаходять шаблони у тексті.\n"
|
||||
"\n"
|
||||
"Стиснення таблиць:\n"
|
||||
" -Ca, --align вирівняти таблиці у пам'яті збільшивши розмір\n"
|
||||
" їх елементів\n"
|
||||
" -Ce, --ecs створювати класи еквівалентності\n"
|
||||
" -Cf не стискати таблиці; використовувати -f представлення\n"
|
||||
" -CF не стискати таблиці; використовувати -F представлення\n"
|
||||
" -Cm, --meta-ecs створювати класи мета-еквівалентності\n"
|
||||
" -Cr, --read використати read() замість stdio як\n"
|
||||
" вхідні дані сканера\n"
|
||||
" -f, --full створити швидкий, великий сканер. Теж саме, що -Cfr\n"
|
||||
" -F, --fast застосувати альтернативний опис таблиць.\n"
|
||||
" Теж саме, що -CFr\n"
|
||||
" -Cem степінь стиснення за замовчуванням\n"
|
||||
" (теж саме, що --ecs --meta-ecs)\n"
|
||||
"\n"
|
||||
"Налагодження:\n"
|
||||
" -d, --debug увімкнути режим налагодження сканера\n"
|
||||
" -b, --backup записати резервну копію до %s\n"
|
||||
" -p, --perf-report записати звіт про продуктивність до stderr\n"
|
||||
" -s, --nodefault припинити вивід тексту (ECHO до stdout)\n"
|
||||
" що не збігається з жодним правилом\n"
|
||||
" -T, --trace %s повинен запускатися у режимі трасування\n"
|
||||
" -w, --nowarn не видавати попереджень\n"
|
||||
" -v, --verbose записати підсумкову статистику сканера до stdout\n"
|
||||
"\n"
|
||||
"Файли:\n"
|
||||
" -o, --outfile=ФАЙЛ вказати ім'я вихідного файла\n"
|
||||
" -S, --skel=ФАЙЛ вказати файл каркасу\n"
|
||||
" -t, --stdout записати сканер до stdout замість %s\n"
|
||||
" --yyclass=ІМ'Я ім'я класу C++\n"
|
||||
" --header-file=ФАЙЛ створити C файл заголовок сканера\n"
|
||||
" --tables-file[=ФАЙЛ] записати таблиці у ФАЙЛ\n"
|
||||
"\n"
|
||||
"Поведінка сканера:\n"
|
||||
" -7, --7bit створити 7-бітний сканер\n"
|
||||
" -8, --8bit створити 8-бітний сканер\n"
|
||||
" -B, --batch створити пакетний сканер\n"
|
||||
" (протилежна за властивостями до опції -I)\n"
|
||||
" -i, --case-insensitive ігнорувати регістр символів у шаблонах\n"
|
||||
" -l, --lex-compat максимальна сумісність з оригінальним lex\n"
|
||||
" -X, --posix-compat максимальна сумісність з POSIX lex\n"
|
||||
" -I, --interactive створити інтерактивний сканер\n"
|
||||
" (протилежна за властивостями до опції -B)\n"
|
||||
" --yylineno відслідковувати число рядків у yylineno\n"
|
||||
"\n"
|
||||
"Генерація коду:\n"
|
||||
" -+, --c++ створити C++ клас сканера\n"
|
||||
" -Dmacro[=defn] #define macro defn (за замовчуванням defn='1')\n"
|
||||
" -L, --noline не створювати #line директиви для сканера\n"
|
||||
" -P, --prefix=РЯДОК використати РЯДОК як префікс замість «yy»\n"
|
||||
" -R, --reentrant генерувати реентерабельний C-сканер\n"
|
||||
" --bison-bridge сканер тільки для bison аналізатору\n"
|
||||
" --bison-locations додати підтримку yylloc\n"
|
||||
" --stdinit ініціалізувати yyin/yyout до stdin/stdout\n"
|
||||
" --noansi-definitions визначення функцій у застарілому стилі\n"
|
||||
" --noansi-prototypes порожній список параметрів у прототипах\n"
|
||||
" --nounistd не додавати <unistd.h>\n"
|
||||
" --noФУНКЦІЯ не генерувати задану функцію ФУНКЦІЯ\n"
|
||||
"\n"
|
||||
"Інше:\n"
|
||||
" -с недіючий POSIX параметр\n"
|
||||
" -n недіючий POSIX параметр\n"
|
||||
" -?\n"
|
||||
" -h, --help показати цю довідку\n"
|
||||
" -V, --version показати версію %s\n"
|
||||
|
||||
#: src/misc.c:64
|
||||
msgid "allocation of sko_stack failed"
|
||||
msgstr "не вдалось отримати пам’ять під sko_stack"
|
||||
|
||||
#: src/misc.c:100
|
||||
#, c-format
|
||||
msgid "name \"%s\" ridiculously long"
|
||||
msgstr "ім'я «%s» занадто довге"
|
||||
|
||||
#: src/misc.c:149 src/misc.c:162
|
||||
msgid "memory allocation failed in allocate_array()"
|
||||
msgstr "помилка виділення пам'яті у allocate_array()"
|
||||
|
||||
#: src/misc.c:212
|
||||
#, c-format
|
||||
msgid "bad character '%s' detected in check_char()"
|
||||
msgstr "check_char() виявив недопустимий символ «%s»"
|
||||
|
||||
#: src/misc.c:217
|
||||
#, c-format
|
||||
msgid "scanner requires -8 flag to use the character %s"
|
||||
msgstr "для використання символу %s сканер потребує опцію -8"
|
||||
|
||||
#: src/misc.c:236
|
||||
msgid "memory allocation failure in xstrdup()"
|
||||
msgstr "помилка виділення пам'яті у xstrdup()"
|
||||
|
||||
#: src/misc.c:310
|
||||
#, c-format
|
||||
msgid "%s: fatal internal error, %s\n"
|
||||
msgstr "%s: фатальна внутрішня помилка, %s\n"
|
||||
|
||||
#: src/misc.c:671 src/misc.c:683
|
||||
msgid "attempt to increase array size failed"
|
||||
msgstr "помилка при спробі збільшити розмір масиву"
|
||||
|
||||
#: src/misc.c:807
|
||||
msgid "bad line in skeleton file"
|
||||
msgstr "невідомий рядок у файлі-каркасі"
|
||||
|
||||
#: src/misc.c:857
|
||||
msgid "memory allocation failed in yy_flex_xmalloc()"
|
||||
msgstr "помилка виділення пам'яті у yy_flex_xmalloc()"
|
||||
|
||||
#: src/nfa.c:100
|
||||
#, c-format
|
||||
msgid ""
|
||||
"\n"
|
||||
"\n"
|
||||
"********** beginning dump of nfa with start state %d\n"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"\n"
|
||||
"********** початок дампу НСА з початковим станом %d\n"
|
||||
|
||||
#: src/nfa.c:111
|
||||
#, c-format
|
||||
msgid "state # %4d\t"
|
||||
msgstr "стан # %4d\t"
|
||||
|
||||
#: src/nfa.c:126
|
||||
#, c-format
|
||||
msgid "********** end of dump\n"
|
||||
msgstr "********** кінець дампу\n"
|
||||
|
||||
#: src/nfa.c:169
|
||||
msgid "empty machine in dupmachine()"
|
||||
msgstr "порожній автомат у dupmachine()"
|
||||
|
||||
#: src/nfa.c:234
|
||||
#, c-format
|
||||
msgid "Variable trailing context rule at line %d\n"
|
||||
msgstr "Правило із замикаючим контекстом змінної довжини у стрічці %d\n"
|
||||
|
||||
#: src/nfa.c:357
|
||||
msgid "bad state type in mark_beginning_as_normal()"
|
||||
msgstr "невідомий тип стану у mark_beginning_as_normal()"
|
||||
|
||||
#: src/nfa.c:595
|
||||
#, c-format
|
||||
msgid "input rules are too complicated (>= %d NFA states)"
|
||||
msgstr "вхідні правила занадто складні (>= %d станів НСА)"
|
||||
|
||||
#: src/nfa.c:673
|
||||
msgid "found too many transitions in mkxtion()"
|
||||
msgstr "знайдено занадто багато переходів у mkxtion()"
|
||||
|
||||
#: src/nfa.c:699
|
||||
#, c-format
|
||||
msgid "too many rules (> %d)!"
|
||||
msgstr "занадто багато правил (> %d)!"
|
||||
|
||||
#: src/parse.y:159
|
||||
msgid "unknown error processing section 1"
|
||||
msgstr "невідома помилка при обробці розділу 1"
|
||||
|
||||
#: src/parse.y:184 src/parse.y:353
|
||||
msgid "bad start condition list"
|
||||
msgstr "невірний список початкових умов"
|
||||
|
||||
#: src/parse.y:204
|
||||
msgid "Prefix must not contain [ or ]"
|
||||
msgstr "Префікс не може містити символи «[» або «]»"
|
||||
|
||||
#: src/parse.y:317
|
||||
msgid "unrecognized rule"
|
||||
msgstr "нерозпізнане правило"
|
||||
|
||||
#: src/parse.y:436 src/parse.y:449 src/parse.y:518
|
||||
msgid "trailing context used twice"
|
||||
msgstr "замикаючий контекст використано двічі"
|
||||
|
||||
#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
|
||||
msgid "bad iteration values"
|
||||
msgstr "невірно сформований діапазон ітерацій"
|
||||
|
||||
#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
|
||||
msgid "iteration value must be positive"
|
||||
msgstr "кількість ітерацій повинна бути додатнім числом"
|
||||
|
||||
#: src/parse.y:806 src/parse.y:816
|
||||
#, c-format
|
||||
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
|
||||
msgstr ""
|
||||
"використання діапазону символів [%c-%c] є двозначним для сканера, що не "
|
||||
"чутливий до регістру символів"
|
||||
|
||||
#: src/parse.y:821
|
||||
msgid "negative range in character class"
|
||||
msgstr ""
|
||||
"символьний клас описано діапазоном, перший елемент котрого більший за "
|
||||
"останній"
|
||||
|
||||
#: src/parse.y:918
|
||||
msgid "[:^lower:] is ambiguous in case insensitive scanner"
|
||||
msgstr ""
|
||||
"використання [:^lower:] є невизначеним для сканера, що не чутливий до "
|
||||
"регістру символів"
|
||||
|
||||
#: src/parse.y:924
|
||||
msgid "[:^upper:] ambiguous in case insensitive scanner"
|
||||
msgstr ""
|
||||
"використання [:^upper:] є невизначеним для сканера, що не чутливий до "
|
||||
"регістру символів"
|
||||
|
||||
#: src/scan.l:82 src/scan.l:646 src/scan.l:704
|
||||
msgid "Input line too long\n"
|
||||
msgstr "Занадто довгий вхідний рядок\n"
|
||||
|
||||
#: src/scan.l:183
|
||||
#, c-format
|
||||
msgid "malformed '%top' directive"
|
||||
msgstr "нерозпізнана директива «%top»"
|
||||
|
||||
#: src/scan.l:205
|
||||
#, no-c-format
|
||||
msgid "unrecognized '%' directive"
|
||||
msgstr "нерозпізнана директива «%»"
|
||||
|
||||
#: src/scan.l:214
|
||||
msgid "Definition name too long\n"
|
||||
msgstr "Визначення має занадто довге ім'я\n"
|
||||
|
||||
#: src/scan.l:309
|
||||
msgid "Unmatched '{'"
|
||||
msgstr "Непарна «{»"
|
||||
|
||||
#: src/scan.l:325
|
||||
#, c-format
|
||||
msgid "Definition value for {%s} too long\n"
|
||||
msgstr "Визначення {%s} має занадто довге значення\n"
|
||||
|
||||
#: src/scan.l:342
|
||||
msgid "incomplete name definition"
|
||||
msgstr "неповне визначення імені"
|
||||
|
||||
#: src/scan.l:469
|
||||
msgid "Option line too long\n"
|
||||
msgstr "Занадто довгий параметр\n"
|
||||
|
||||
#: src/scan.l:477
|
||||
#, c-format
|
||||
msgid "unrecognized %%option: %s"
|
||||
msgstr "нерозпізнаний %%option: %s"
|
||||
|
||||
#: src/scan.l:661 src/scan.l:834
|
||||
msgid "bad character class"
|
||||
msgstr "помилковий символьний клас"
|
||||
|
||||
#: src/scan.l:711
|
||||
#, c-format
|
||||
msgid "undefined definition {%s}"
|
||||
msgstr "нерозпізнане визначення {%s}"
|
||||
|
||||
#: src/scan.l:774
|
||||
msgid "unbalanced parenthesis"
|
||||
msgstr "незбалансовані круглі дужки"
|
||||
|
||||
#: src/scan.l:789
|
||||
#, c-format
|
||||
msgid "bad <start condition>: %s"
|
||||
msgstr "невірно сформованана <умова, що активує правило>: %s"
|
||||
|
||||
#: src/scan.l:802
|
||||
msgid "missing quote"
|
||||
msgstr "відсутні лапки"
|
||||
|
||||
#: src/scan.l:868
|
||||
#, c-format
|
||||
msgid "bad character class expression: %s"
|
||||
msgstr "символьний клас заданий некоректним виразом: %s"
|
||||
|
||||
#: src/scan.l:890
|
||||
msgid "bad character inside {}'s"
|
||||
msgstr "неприйнятний символ всередині {}"
|
||||
|
||||
#: src/scan.l:896
|
||||
msgid "missing }"
|
||||
msgstr "відсутній }"
|
||||
|
||||
#: src/scan.l:974
|
||||
msgid "EOF encountered inside an action"
|
||||
msgstr "знайдено EOF всередині коду котрий асоційований з правилом"
|
||||
|
||||
#: src/scan.l:979
|
||||
msgid "EOF encountered inside pattern"
|
||||
msgstr "знайдено EOF всередині шаблону, що задає правило"
|
||||
|
||||
#: src/scan.l:1012
|
||||
#, c-format
|
||||
msgid "bad character: %s"
|
||||
msgstr "неочікуваний символ: %s"
|
||||
|
||||
#: src/scan.l:1040
|
||||
#, c-format
|
||||
msgid "can't open %s"
|
||||
msgstr "неможливо відкрити %s"
|
||||
|
||||
#: src/scanopt.c:259
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS]...\n"
|
||||
msgstr "Використання: %s [ПАРАМЕТРИ]…\n"
|
||||
|
||||
#: src/scanopt.c:524
|
||||
#, c-format
|
||||
msgid "option `%s' doesn't allow an argument\n"
|
||||
msgstr "параметр «%s» повинен використовуватись без аргументу\n"
|
||||
|
||||
#: src/scanopt.c:529
|
||||
#, c-format
|
||||
msgid "option `%s' requires an argument\n"
|
||||
msgstr "параметр «% s» повинен використовуватись з аргументом\n"
|
||||
|
||||
#: src/scanopt.c:533
|
||||
#, c-format
|
||||
msgid "option `%s' is ambiguous\n"
|
||||
msgstr "параметр «%s» є двозначним\n"
|
||||
|
||||
#: src/scanopt.c:537
|
||||
#, c-format
|
||||
msgid "Unrecognized option `%s'\n"
|
||||
msgstr "Нерозпізнаний параметр «%s»\n"
|
||||
|
||||
#: src/scanopt.c:541
|
||||
#, c-format
|
||||
msgid "Unknown error=(%d)\n"
|
||||
msgstr "Невідома помилка=(%d)\n"
|
||||
|
||||
#: src/sym.c:92
|
||||
msgid "symbol table memory allocation failed"
|
||||
msgstr "помилка виділення пам'яті для таблиці символів"
|
||||
|
||||
#: src/sym.c:183
|
||||
msgid "name defined twice"
|
||||
msgstr "ім'я визначено двічі"
|
||||
|
||||
#: src/sym.c:231
|
||||
#, c-format
|
||||
msgid "start condition %s declared twice"
|
||||
msgstr "початкова умова %s описана двічі"
|
||||
|
||||
#: src/yylex.c:57
|
||||
msgid "premature EOF"
|
||||
msgstr "неочікуваний EOF"
|
||||
|
||||
#: src/yylex.c:200
|
||||
#, c-format
|
||||
msgid "End Marker\n"
|
||||
msgstr "Мітка кінця\n"
|
||||
|
||||
#: src/yylex.c:206
|
||||
#, c-format
|
||||
msgid "*Something Weird* - tok: %d val: %d\n"
|
||||
msgstr "*Щось не так* — tok: %d val: %d\n"
|
||||
|
||||
#~ msgid "dynamic memory failure in copy_string()"
|
||||
#~ msgstr "помилка під час роботи з динамічною пам’яттю у copy_string()"
|
||||
+2
-1
@@ -4,9 +4,10 @@
|
||||
config.h
|
||||
config.h.in
|
||||
flex
|
||||
libfl.pc
|
||||
parse.c
|
||||
parse.h
|
||||
scan.c
|
||||
skel.c
|
||||
cpp-skel.h
|
||||
stage1scan.[cl]
|
||||
stage1flex
|
||||
|
||||
+17
-9
@@ -1,6 +1,7 @@
|
||||
AM_YFLAGS = -d
|
||||
AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
|
||||
LIBS = @LIBS@
|
||||
pkgconfigdir = @pkgconfigdir@
|
||||
|
||||
m4 = @M4@
|
||||
|
||||
@@ -11,6 +12,7 @@ endif
|
||||
|
||||
if ENABLE_LIBFL
|
||||
lib_LTLIBRARIES = libfl.la
|
||||
pkgconfig_DATA = libfl.pc
|
||||
endif
|
||||
libfl_la_SOURCES = \
|
||||
libmain.c \
|
||||
@@ -44,6 +46,7 @@ flex_SOURCES = \
|
||||
$(COMMON_SOURCES)
|
||||
|
||||
nodist_flex_SOURCES = \
|
||||
cpp-skel.h \
|
||||
stage1scan.c
|
||||
|
||||
flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS)
|
||||
@@ -51,11 +54,13 @@ flex_CFLAGS = $(AM_CFLAGS) $(WARNINGFLAGS)
|
||||
COMMON_SOURCES = \
|
||||
buf.c \
|
||||
ccl.c \
|
||||
cpp_backend.c \
|
||||
dfa.c \
|
||||
ecs.c \
|
||||
filter.c \
|
||||
flexdef.h \
|
||||
flexint.h \
|
||||
flexint_shared.h \
|
||||
gen.c \
|
||||
main.c \
|
||||
misc.c \
|
||||
@@ -67,7 +72,6 @@ COMMON_SOURCES = \
|
||||
scanflags.c \
|
||||
scanopt.c \
|
||||
scanopt.h \
|
||||
skel.c \
|
||||
sym.c \
|
||||
tables.c \
|
||||
tables.h \
|
||||
@@ -79,21 +83,25 @@ COMMON_SOURCES = \
|
||||
|
||||
LDADD = $(LIBOBJS) @LIBINTL@
|
||||
|
||||
$(LIBOBJS): $(LIBOBJDIR)$(am__dirstamp)
|
||||
|
||||
include_HEADERS = \
|
||||
FlexLexer.h
|
||||
|
||||
EXTRA_DIST = \
|
||||
flex.skl \
|
||||
cpp-flex.skl \
|
||||
mkskel.sh \
|
||||
gettext.h
|
||||
|
||||
CLEANFILES = stage1scan.c stage1flex$(EXEEXT)
|
||||
CLEANFILES = stage1scan.c stage1flex$(EXEEXT) cpp-skel.h
|
||||
|
||||
MAINTAINERCLEANFILES = skel.c
|
||||
MAINTAINERCLEANFILES = c9pp-skel.h
|
||||
|
||||
skel.c: flex.skl mkskel.sh flexint.h tables_shared.h tables_shared.c
|
||||
$(SHELL) $(srcdir)/mkskel.sh $(srcdir) $(m4) $(VERSION) > $@.tmp
|
||||
mv $@.tmp $@
|
||||
flex-cpp_backend.$(OBJEXT): cpp-skel.h
|
||||
|
||||
cpp-skel.h: cpp-flex.skl mkskel.sh flexint_shared.h tables_shared.h tables_shared.c
|
||||
$(SHELL) $(srcdir)/mkskel.sh cpp $(srcdir) $(m4) $(VERSION) > $@.tmp
|
||||
mv -f $@.tmp $@
|
||||
|
||||
if ENABLE_BOOTSTRAP
|
||||
stage1scan.c: scan.l stage1flex$(EXEEXT)
|
||||
@@ -104,9 +112,9 @@ stage1scan.c: scan.c
|
||||
endif
|
||||
|
||||
dist-hook: scan.l flex$(EXEEXT)
|
||||
chmod u+w $(distdir)/scan.c && \
|
||||
chmod u+w $(distdir) && \
|
||||
./flex$(EXEEXT) -o scan.c $< && \
|
||||
mv scan.c $(distdir)
|
||||
mv -f scan.c $(distdir)
|
||||
|
||||
# make needs to be told to make parse.h so that parallelized runs will
|
||||
# not fail.
|
||||
|
||||
@@ -73,6 +73,13 @@ void ccladd (int cclp, int ch)
|
||||
|
||||
newpos = ind + len;
|
||||
|
||||
/* For a non-last cclp, expanding the set will overflow and overwrite a
|
||||
* char in the next cclp.
|
||||
* FIXME: Need another allocation scheme for ccl's. */
|
||||
if (cclp != lastccl) {
|
||||
flexfatal(_("internal error: trying to add a char to a non-last ccl.\n"));
|
||||
}
|
||||
|
||||
if (newpos >= current_max_ccl_tbl_size) {
|
||||
current_max_ccl_tbl_size += MAX_CCL_TBL_SIZE_INCREMENT;
|
||||
|
||||
|
||||
+1569
-1028
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,639 @@
|
||||
/* flex - tool to generate fast lexical analyzers */
|
||||
|
||||
/* Copyright (c) 1990 The Regents of the University of California. */
|
||||
/* All rights reserved. */
|
||||
|
||||
/* This code is derived from software contributed to Berkeley by */
|
||||
/* Vern Paxson. */
|
||||
|
||||
/* The United States Government has rights in this work pursuant */
|
||||
/* to contract no. DE-AC03-76SF00098 between the United States */
|
||||
/* Department of Energy and the University of California. */
|
||||
|
||||
/* This file is part of flex. */
|
||||
|
||||
/* Redistribution and use in source and binary forms, with or without */
|
||||
/* modification, are permitted provided that the following conditions */
|
||||
/* are met: */
|
||||
|
||||
/* 1. Redistributions of source code must retain the above copyright */
|
||||
/* notice, this list of conditions and the following disclaimer. */
|
||||
/* 2. Redistributions in binary form must reproduce the above copyright */
|
||||
/* notice, this list of conditions and the following disclaimer in the */
|
||||
/* documentation and/or other materials provided with the distribution. */
|
||||
|
||||
/* Neither the name of the University nor the names of its contributors */
|
||||
/* may be used to endorse or promote products derived from this software */
|
||||
/* without specific prior written permission. */
|
||||
|
||||
/* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
|
||||
/* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
|
||||
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
|
||||
/* PURPOSE. */
|
||||
|
||||
|
||||
#include "flexdef.h"
|
||||
|
||||
/* Code specific to the C/C++ back end starts here */
|
||||
|
||||
static const char *cpp_suffix (void)
|
||||
{
|
||||
char *suffix;
|
||||
|
||||
if (C_plus_plus)
|
||||
suffix = "cc";
|
||||
else
|
||||
suffix = "c";
|
||||
|
||||
return suffix;
|
||||
}
|
||||
|
||||
/* cpp_prolog - make rules prolog specific to cpp-using languages.
|
||||
*
|
||||
* If you don't ship this, you will effectively be assuming that your
|
||||
* parsers are always reentrant, always allow reject, always have a
|
||||
* yywrap() method, have a debug member in the wrapper class, and are
|
||||
* interactive. This eliminates most of the boilerplate in the C/C++
|
||||
* scanner prolog. It means such parsers will be a bit larger and
|
||||
* slower than C/C++ ones, but since we're not running on 1987's
|
||||
* hardware we officially do not care.
|
||||
*
|
||||
* A detail to beware of: If you're not issuing this prologue, you may
|
||||
* want to write your own definition of YY_CHAR in your skel
|
||||
* file. It's a typedef to an unsigned octet in C/C++, but if your
|
||||
* target language has a Unicode code-point type like Go's 'rune' is
|
||||
* may be appropriate.
|
||||
*/
|
||||
|
||||
static void cpp_prolog (void)
|
||||
{
|
||||
static char yy_stdinit[] = "FILE *yyin = stdin, *yyout = stdout;";
|
||||
static char yy_nostdinit[] =
|
||||
"FILE *yyin = NULL, *yyout = NULL;";
|
||||
|
||||
if (!do_yywrap) {
|
||||
if (!C_plus_plus) {
|
||||
if (reentrant)
|
||||
out_str ("\n#define %swrap(yyscanner) (/*CONSTCOND*/1)\n", prefix);
|
||||
else
|
||||
out_str ("\n#define %swrap() (/*CONSTCOND*/1)\n", prefix);
|
||||
}
|
||||
outn ("#define YY_SKIP_YYWRAP");
|
||||
}
|
||||
|
||||
if (ddebug)
|
||||
outn ("\n#define FLEX_DEBUG");
|
||||
|
||||
OUT_BEGIN_CODE ();
|
||||
outn ("typedef flex_uint8_t YY_CHAR;");
|
||||
OUT_END_CODE ();
|
||||
|
||||
if (C_plus_plus) {
|
||||
outn ("#define yytext_ptr yytext");
|
||||
|
||||
if (interactive)
|
||||
outn ("#define YY_INTERACTIVE");
|
||||
}
|
||||
|
||||
else {
|
||||
OUT_BEGIN_CODE ();
|
||||
/* In reentrant scanner, stdinit is handled in flex.skl. */
|
||||
if (do_stdinit) {
|
||||
if (reentrant){
|
||||
outn ("#ifdef VMS");
|
||||
outn ("#ifdef __VMS_POSIX");
|
||||
outn ("#define YY_STDINIT");
|
||||
outn ("#endif");
|
||||
outn ("#else");
|
||||
outn ("#define YY_STDINIT");
|
||||
outn ("#endif");
|
||||
}
|
||||
|
||||
outn ("#ifdef VMS");
|
||||
outn ("#ifndef __VMS_POSIX");
|
||||
outn (yy_nostdinit);
|
||||
outn ("#else");
|
||||
outn (yy_stdinit);
|
||||
outn ("#endif");
|
||||
outn ("#else");
|
||||
outn (yy_stdinit);
|
||||
outn ("#endif");
|
||||
}
|
||||
|
||||
else {
|
||||
if(!reentrant)
|
||||
outn (yy_nostdinit);
|
||||
}
|
||||
OUT_END_CODE ();
|
||||
}
|
||||
|
||||
OUT_BEGIN_CODE ();
|
||||
if (fullspd)
|
||||
outn ("typedef const struct yy_trans_info *yy_state_type;");
|
||||
else if (!C_plus_plus)
|
||||
outn ("typedef int yy_state_type;");
|
||||
OUT_END_CODE ();
|
||||
|
||||
if (lex_compat)
|
||||
outn ("#define YY_FLEX_LEX_COMPAT");
|
||||
|
||||
if (!C_plus_plus && !reentrant) {
|
||||
outn ("extern int yylineno;");
|
||||
OUT_BEGIN_CODE ();
|
||||
outn ("int yylineno = 1;");
|
||||
OUT_END_CODE ();
|
||||
}
|
||||
|
||||
if (C_plus_plus) {
|
||||
outn ("\n#include <FlexLexer.h>");
|
||||
|
||||
if (!do_yywrap) {
|
||||
outn("\nint yyFlexLexer::yywrap() { return 1; }");
|
||||
}
|
||||
|
||||
if (yyclass) {
|
||||
outn ("int yyFlexLexer::yylex()");
|
||||
outn ("\t{");
|
||||
outn ("\tLexerError( \"yyFlexLexer::yylex invoked but %option yyclass used\" );");
|
||||
outn ("\treturn 0;");
|
||||
outn ("\t}");
|
||||
|
||||
out_str ("\n#define YY_DECL int %s::yylex()\n",
|
||||
yyclass);
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
/* Watch out: yytext_ptr is a variable when yytext is an array,
|
||||
* but it's a macro when yytext is a pointer.
|
||||
*/
|
||||
if (yytext_is_array) {
|
||||
if (!reentrant)
|
||||
outn ("extern char yytext[];\n");
|
||||
}
|
||||
else {
|
||||
if (reentrant) {
|
||||
outn ("#define yytext_ptr yytext_r");
|
||||
}
|
||||
else {
|
||||
outn ("extern char *yytext;");
|
||||
|
||||
outn("#ifdef yytext_ptr");
|
||||
outn("#undef yytext_ptr");
|
||||
outn("#endif");
|
||||
outn ("#define yytext_ptr yytext");
|
||||
}
|
||||
}
|
||||
|
||||
if (yyclass)
|
||||
flexerror (_
|
||||
("%option yyclass only meaningful for C++ scanners"));
|
||||
}
|
||||
}
|
||||
|
||||
static void cpp_epilog (void)
|
||||
{
|
||||
#if 0
|
||||
fprintf (header_out,
|
||||
"#ifdef YY_HEADER_EXPORT_START_CONDITIONS\n");
|
||||
fprintf (header_out,
|
||||
"/* Beware! Start conditions are not prefixed. */\n");
|
||||
|
||||
/* Special case for "INITIAL" */
|
||||
fprintf (header_out,
|
||||
"#undef INITIAL\n#define INITIAL 0\n");
|
||||
for (i = 2; i <= lastsc; i++)
|
||||
fprintf (header_out, "#define %s %d\n", scname[i], i - 1);
|
||||
fprintf (header_out,
|
||||
"#endif /* YY_HEADER_EXPORT_START_CONDITIONS */\n\n");
|
||||
|
||||
/* Kill ALL flex-related macros. This is so the user
|
||||
* can #include more than one generated header file. */
|
||||
fprintf (header_out, "#ifndef YY_HEADER_NO_UNDEFS\n");
|
||||
fprintf (header_out,
|
||||
"/* Undefine all internal macros, etc., that do no belong in the header. */\n\n");
|
||||
|
||||
{
|
||||
const char * undef_list[] = {
|
||||
|
||||
"BEGIN",
|
||||
"ECHO",
|
||||
"EOB_ACT_CONTINUE_SCAN",
|
||||
"EOB_ACT_END_OF_FILE",
|
||||
"EOB_ACT_LAST_MATCH",
|
||||
"FLEX_SCANNER",
|
||||
"REJECT",
|
||||
"YYFARGS0",
|
||||
"YYFARGS1",
|
||||
"YYFARGS2",
|
||||
"YYFARGS3",
|
||||
"YYLMAX",
|
||||
"YYSTATE",
|
||||
"YY_AT_BOL",
|
||||
"YY_BREAK",
|
||||
"YY_BUFFER_EOF_PENDING",
|
||||
"YY_BUFFER_NEW",
|
||||
"YY_BUFFER_NORMAL",
|
||||
"YY_BUF_SIZE",
|
||||
"M4_YY_CALL_LAST_ARG",
|
||||
"M4_YY_CALL_ONLY_ARG",
|
||||
"YY_CURRENT_BUFFER",
|
||||
"YY_DECL",
|
||||
"M4_YY_DECL_LAST_ARG",
|
||||
"M4_YY_DEF_LAST_ARG",
|
||||
"M4_YY_DEF_ONLY_ARG",
|
||||
"YY_DO_BEFORE_ACTION",
|
||||
"YY_END_OF_BUFFER",
|
||||
"YY_END_OF_BUFFER_CHAR",
|
||||
"YY_EXIT_FAILURE",
|
||||
"YY_EXTRA_TYPE",
|
||||
"YY_FATAL_ERROR",
|
||||
"YY_FLEX_DEFINED_ECHO",
|
||||
"YY_FLEX_LEX_COMPAT",
|
||||
"YY_FLEX_MAJOR_VERSION",
|
||||
"YY_FLEX_MINOR_VERSION",
|
||||
"YY_FLEX_SUBMINOR_VERSION",
|
||||
"YY_FLUSH_BUFFER",
|
||||
"YY_G",
|
||||
"YY_INPUT",
|
||||
"YY_INTERACTIVE",
|
||||
"YY_INT_ALIGNED",
|
||||
"YY_LAST_ARG",
|
||||
"YY_LESS_LINENO",
|
||||
"YY_LEX_ARGS",
|
||||
"YY_LEX_DECLARATION",
|
||||
"YY_LEX_PROTO",
|
||||
"YY_MAIN",
|
||||
"YY_MORE_ADJ",
|
||||
"YY_NEED_STRLEN",
|
||||
"YY_NEW_FILE",
|
||||
"YY_NULL",
|
||||
"YY_NUM_RULES",
|
||||
"YY_ONLY_ARG",
|
||||
"YY_PARAMS",
|
||||
"YY_PROTO",
|
||||
"M4_YY_PROTO_LAST_ARG",
|
||||
"M4_YY_PROTO_ONLY_ARG void",
|
||||
"YY_READ_BUF_SIZE",
|
||||
"YY_REENTRANT",
|
||||
"YY_RESTORE_YY_MORE_OFFSET",
|
||||
"YY_RULE_SETUP",
|
||||
"YY_SC_TO_UI",
|
||||
"YY_SKIP_YYWRAP",
|
||||
"YY_START",
|
||||
"YY_START_STACK_INCR",
|
||||
"YY_STATE_EOF",
|
||||
"YY_STDINIT",
|
||||
"YY_TRAILING_HEAD_MASK",
|
||||
"YY_TRAILING_MASK",
|
||||
"YY_USER_ACTION",
|
||||
"YY_USE_CONST",
|
||||
"YY_USE_PROTOS",
|
||||
"unput",
|
||||
"yyTABLES_NAME",
|
||||
"yy_create_buffer",
|
||||
"yy_delete_buffer",
|
||||
"yy_flex_debug",
|
||||
"yy_flush_buffer",
|
||||
"yy_init_buffer",
|
||||
"yy_load_buffer_state",
|
||||
"yy_new_buffer",
|
||||
"yy_scan_buffer",
|
||||
"yy_scan_bytes",
|
||||
"yy_scan_string",
|
||||
"yy_set_bol",
|
||||
"yy_set_interactive",
|
||||
"yy_switch_to_buffer",
|
||||
"yypush_buffer_state",
|
||||
"yypop_buffer_state",
|
||||
"yyensure_buffer_stack",
|
||||
"yyalloc",
|
||||
"const",
|
||||
"yyextra",
|
||||
"yyfree",
|
||||
"yyget_debug",
|
||||
"yyget_extra",
|
||||
"yyget_in",
|
||||
"yyget_leng",
|
||||
"yyget_column",
|
||||
"yyget_lineno",
|
||||
"yyget_lloc",
|
||||
"yyget_lval",
|
||||
"yyget_out",
|
||||
"yyget_text",
|
||||
"yyin",
|
||||
"yyleng",
|
||||
"yyless",
|
||||
"yylex",
|
||||
"yylex_destroy",
|
||||
"yylex_init",
|
||||
"yylex_init_extra",
|
||||
"yylineno",
|
||||
"yylloc",
|
||||
"yylval",
|
||||
"yymore",
|
||||
"yyout",
|
||||
"yyrealloc",
|
||||
"yyrestart",
|
||||
"yyset_debug",
|
||||
"yyset_extra",
|
||||
"yyset_in",
|
||||
"yyset_column",
|
||||
"yyset_lineno",
|
||||
"yyset_lloc",
|
||||
"yyset_lval",
|
||||
"yyset_out",
|
||||
"yytables_destroy",
|
||||
"yytables_fload",
|
||||
"yyterminate",
|
||||
"yytext",
|
||||
"yytext_ptr",
|
||||
"yywrap",
|
||||
|
||||
/* must be null-terminated */
|
||||
NULL};
|
||||
|
||||
|
||||
for (i=0; undef_list[i] != NULL; i++)
|
||||
fprintf (header_out, "#undef %s\n", undef_list[i]);
|
||||
}
|
||||
|
||||
/* undef any of the auto-generated symbols. */
|
||||
for (i = 0; i < defs_buf.nelts; i++) {
|
||||
|
||||
/* don't undef start conditions */
|
||||
if (sclookup (((char **) defs_buf.elts)[i]) > 0)
|
||||
continue;
|
||||
fprintf (header_out, "#undef %s\n",
|
||||
((char **) defs_buf.elts)[i]);
|
||||
}
|
||||
|
||||
fprintf (header_out,
|
||||
"#endif /* !YY_HEADER_NO_UNDEFS */\n");
|
||||
fprintf (header_out, "\n");
|
||||
fprintf (header_out, "#undef %sIN_HEADER\n", prefix);
|
||||
fprintf (header_out, "#endif /* %sHEADER_H */\n", prefix);
|
||||
|
||||
if (ferror (header_out))
|
||||
lerr (_("error creating header file %s"),
|
||||
headerfilename);
|
||||
fflush (header_out);
|
||||
fclose (header_out);
|
||||
#endif
|
||||
}
|
||||
|
||||
static const char *cpp_yy_int_aligned(void)
|
||||
{
|
||||
return long_align ? "long int" : "short int";
|
||||
}
|
||||
|
||||
static void cpp_comment(const char *txt)
|
||||
{
|
||||
out_str("/* [[%s]] */\n", txt);
|
||||
}
|
||||
|
||||
static const char *cpp_get_int16_decl (void)
|
||||
{
|
||||
return (gentables)
|
||||
? "static const flex_int16_t %s[%d] =\n { 0,\n"
|
||||
: "static const flex_int16_t * %s = 0;\n";
|
||||
}
|
||||
|
||||
|
||||
static const char *cpp_get_int32_decl (void)
|
||||
{
|
||||
return (gentables)
|
||||
? "static const flex_int32_t %s[%d] =\n { 0,\n"
|
||||
: "static const flex_int32_t * %s = 0;\n";
|
||||
}
|
||||
|
||||
static const char *cpp_get_state_decl (void)
|
||||
{
|
||||
return (gentables)
|
||||
? "static const yy_state_type %s[%d] =\n { 0,\n"
|
||||
: "static const yy_state_type * %s = 0;\n";
|
||||
}
|
||||
|
||||
static const char *cpp_get_yy_char_decl (void)
|
||||
{
|
||||
return (gentables)
|
||||
? "static const YY_CHAR %s[%d] =\n { 0,\n"
|
||||
: "static const YY_CHAR * %s = 0;\n";
|
||||
}
|
||||
|
||||
static void cpp_ntod(size_t num_full_table_rows)
|
||||
// Generate nxt table for ntod
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_NXT, (void**)&yy_nxt, sizeof(%s)},\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
|
||||
/* Unless -Ca, declare it "short" because it's a real
|
||||
* long-shot that that won't be large enough.
|
||||
*/
|
||||
if (gentables)
|
||||
out_str_dec
|
||||
("static const %s yy_nxt[][%d] =\n {\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t",
|
||||
num_full_table_rows);
|
||||
else {
|
||||
out_dec ("#undef YY_NXT_LOLEN\n#define YY_NXT_LOLEN (%d)\n", num_full_table_rows);
|
||||
out_str ("static const %s *yy_nxt =0;\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
}
|
||||
|
||||
static void cpp_mkeoltbl()
|
||||
// Make end-of-line-table - only used when yylinemo tracking is on
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_RULE_CAN_MATCH_EOL, (void**)&yy_rule_can_match_eol, sizeof(%s)},\n",
|
||||
"flex_int32_t");
|
||||
}
|
||||
|
||||
static void cpp_geneoltbl(size_t sz)
|
||||
// Generate end-of-line-transitions - only used when yylineno tracking is on
|
||||
{
|
||||
outn ("/* Table of booleans, true if rule could match eol. */");
|
||||
out_str_dec (cpp_get_int32_decl (), "yy_rule_can_match_eol", sz);
|
||||
}
|
||||
|
||||
static void cpp_mkctbl (size_t sz)
|
||||
// Make full-speed compressed transition table
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_TRANSITION, (void**)&yy_transition, sizeof(%s)},\n",
|
||||
(sz >= INT16_MAX
|
||||
|| long_align) ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_mkssltbl (void)
|
||||
// Make start_state_list table
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_START_STATE_LIST, (void**)&yy_start_state_list, sizeof(%s)},\n",
|
||||
"struct yy_trans_info*");
|
||||
}
|
||||
|
||||
static void cpp_gen_yy_trans(size_t sz)
|
||||
// Table of verify for transition and offset to next state. (sic)
|
||||
{
|
||||
if (gentables)
|
||||
out_dec ("static const struct yy_trans_info yy_transition[%d] =\n {\n", sz);
|
||||
else
|
||||
outn ("static const struct yy_trans_info *yy_transition = 0;");
|
||||
}
|
||||
|
||||
static void cpp_start_state_list(size_t sz)
|
||||
// Start initializer for table of pointers to start state
|
||||
{
|
||||
/* Table of pointers to start states. */
|
||||
if (gentables)
|
||||
out_dec ("static const struct yy_trans_info *yy_start_state_list[%d] =\n", sz);
|
||||
else
|
||||
outn ("static const struct yy_trans_info **yy_start_state_list =0;");
|
||||
}
|
||||
|
||||
static void cpp_mkecstbl(void)
|
||||
// Make equivalence-class tables
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_EC, (void**)&yy_ec, sizeof(%s)},\n",
|
||||
"YY_CHAR");
|
||||
}
|
||||
|
||||
static void cpp_mkftbl(void)
|
||||
// Make full table
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_acclist(void)
|
||||
// Generate accept list initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_ACCLIST, (void**)&yy_acclist, sizeof(%s)},\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_accept(void)
|
||||
// Generate accept table initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_ACCEPT, (void**)&yy_accept, sizeof(%s)},\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_yy_meta(void)
|
||||
// Generate yy_meta table initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_META, (void**)&yy_meta, sizeof(%s)},\n",
|
||||
"YY_CHAR");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_yy_base(void)
|
||||
// Generate yy_meta base initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_BASE, (void**)&yy_base, sizeof(%s)},\n",
|
||||
(tblend >= INT16_MAX
|
||||
|| long_align) ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_yy_def(size_t total_states)
|
||||
// Generate yy_def initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_DEF, (void**)&yy_def, sizeof(%s)},\n",
|
||||
(total_states >= INT16_MAX
|
||||
|| long_align) ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_yy_nxt(size_t total_states)
|
||||
// Generate yy_nxt initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_NXT, (void**)&yy_nxt, sizeof(%s)},\n",
|
||||
(total_states >= INT16_MAX
|
||||
|| long_align) ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_gentabs_yy_chk(size_t total_states)
|
||||
// Generate yy_chk initializer
|
||||
{
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_CHK, (void**)&yy_chk, sizeof(%s)},\n",
|
||||
(total_states >= INT16_MAX
|
||||
|| long_align) ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
static void cpp_nultrans(int fullspd)
|
||||
// Generate nulltrans initializer
|
||||
{
|
||||
// Making this a backend method may be overzealous.
|
||||
// How many other languages have to sprcial-case NUL
|
||||
// because it's a string terminator?
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_NUL_TRANS, (void**)&yy_NUL_trans, sizeof(%s)},\n",
|
||||
(fullspd) ? "struct yy_trans_info*" :
|
||||
"flex_int32_t");
|
||||
}
|
||||
|
||||
static const char *cpp_trans_offset_type(int total_table_size)
|
||||
{
|
||||
return (total_table_size >= INT16_MAX || long_align) ?
|
||||
"flex_int32_t" : "flex_int16_t";
|
||||
}
|
||||
|
||||
const char *cpp_skel[] = {
|
||||
#include "cpp-skel.h"
|
||||
0,
|
||||
};
|
||||
|
||||
/* This backend is only accessed through this method table */
|
||||
struct flex_backend_t cpp_backend = {
|
||||
.suffix = cpp_suffix,
|
||||
.prolog = cpp_prolog,
|
||||
.skel = cpp_skel,
|
||||
.epilog = cpp_epilog,
|
||||
.yy_int_aligned = cpp_yy_int_aligned,
|
||||
.trace_fmt = "#line %d \"%s\"\n",
|
||||
.int_define_fmt = "#define %s %d\n",
|
||||
.string_define_fmt = "#define %s %s\n",
|
||||
.table_opener = " {",
|
||||
.table_continuation = " },\n",
|
||||
.table_closer = " };\n",
|
||||
.dyad = " {%4d,%4d },",
|
||||
.comment = cpp_comment,
|
||||
.get_int16_decl = cpp_get_int16_decl,
|
||||
.get_int32_decl = cpp_get_int32_decl,
|
||||
.get_state_decl = cpp_get_state_decl,
|
||||
.get_yy_char_decl = cpp_get_yy_char_decl,
|
||||
.ntod = cpp_ntod,
|
||||
.mkeoltbl = cpp_mkeoltbl,
|
||||
.geneoltbl = cpp_geneoltbl,
|
||||
.mkctbl = cpp_mkctbl,
|
||||
.mkssltbl = cpp_mkssltbl,
|
||||
.gen_yy_trans = cpp_gen_yy_trans,
|
||||
.start_state_list = cpp_start_state_list,
|
||||
.state_entry_fmt = " &yy_transition[%d],\n",
|
||||
.mkecstbl = cpp_mkecstbl,
|
||||
.mkftbl = cpp_mkftbl,
|
||||
.gentabs_acclist = cpp_gentabs_acclist,
|
||||
.gentabs_accept = cpp_gentabs_accept,
|
||||
.gentabs_yy_meta = cpp_gentabs_yy_meta,
|
||||
.gentabs_yy_base = cpp_gentabs_yy_base,
|
||||
.gentabs_yy_def = cpp_gentabs_yy_def,
|
||||
.gentabs_yy_nxt = cpp_gentabs_yy_nxt,
|
||||
.gentabs_yy_chk = cpp_gentabs_yy_chk,
|
||||
.nultrans = cpp_nultrans,
|
||||
.trans_offset_type = cpp_trans_offset_type,
|
||||
.caseprefix = "case ",
|
||||
.fallthrough = NULL,
|
||||
.endcase = "yyterminate();",
|
||||
.c_like = 1,
|
||||
};
|
||||
@@ -517,27 +517,10 @@ void ntod (void)
|
||||
sizeof (flex_int32_t));
|
||||
yynxt_curr = 0;
|
||||
|
||||
buf_prints (&yydmap_buf,
|
||||
"\t{YYTD_ID_NXT, (void**)&yy_nxt, sizeof(%s)},\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
|
||||
/* Unless -Ca, declare it "short" because it's a real
|
||||
* long-shot that that won't be large enough.
|
||||
*/
|
||||
if (gentables)
|
||||
out_str_dec
|
||||
("static const %s yy_nxt[][%d] =\n {\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t",
|
||||
num_full_table_rows);
|
||||
else {
|
||||
out_dec ("#undef YY_NXT_LOLEN\n#define YY_NXT_LOLEN (%d)\n", num_full_table_rows);
|
||||
out_str ("static const %s *yy_nxt =0;\n",
|
||||
long_align ? "flex_int32_t" : "flex_int16_t");
|
||||
}
|
||||
|
||||
backend->ntod(num_full_table_rows);
|
||||
|
||||
if (gentables)
|
||||
outn (" {");
|
||||
outn (backend->table_opener);
|
||||
|
||||
/* Generate 0 entries for state #0. */
|
||||
for (i = 0; i < num_full_table_rows; ++i) {
|
||||
@@ -547,7 +530,7 @@ void ntod (void)
|
||||
|
||||
dataflush ();
|
||||
if (gentables)
|
||||
outn (" },\n");
|
||||
outn (backend->table_continuation);
|
||||
}
|
||||
|
||||
/* Create the first states. */
|
||||
@@ -700,10 +683,8 @@ void ntod (void)
|
||||
yynxt_tbl->td_hilen *
|
||||
yynxt_tbl->td_lolen *
|
||||
sizeof (flex_int32_t));
|
||||
|
||||
|
||||
if (gentables)
|
||||
outn (" {");
|
||||
outn (backend->table_opener);
|
||||
|
||||
/* Supply array's 0-element. */
|
||||
if (ds == end_of_buffer_state) {
|
||||
@@ -728,7 +709,7 @@ void ntod (void)
|
||||
|
||||
dataflush ();
|
||||
if (gentables)
|
||||
outn (" },\n");
|
||||
out (backend->table_continuation);
|
||||
}
|
||||
|
||||
else if (fullspd)
|
||||
|
||||
+17
-22
@@ -47,10 +47,9 @@ struct filter *filter_create_ext (struct filter *chain, const char *cmd,
|
||||
va_list ap;
|
||||
|
||||
/* allocate and initialize new filter */
|
||||
f = malloc(sizeof(struct filter));
|
||||
f = calloc(sizeof(struct filter), 1);
|
||||
if (!f)
|
||||
flexerror(_("malloc failed (f) in filter_create_ext"));
|
||||
memset (f, 0, sizeof (*f));
|
||||
flexerror(_("calloc failed (f) in filter_create_ext"));
|
||||
f->filter_func = NULL;
|
||||
f->extra = NULL;
|
||||
f->next = NULL;
|
||||
@@ -100,10 +99,9 @@ struct filter *filter_create_int (struct filter *chain,
|
||||
struct filter *f;
|
||||
|
||||
/* allocate and initialize new filter */
|
||||
f = malloc(sizeof(struct filter));
|
||||
f = calloc(sizeof(struct filter), 1);
|
||||
if (!f)
|
||||
flexerror(_("malloc failed in filter_create_int"));
|
||||
memset (f, 0, sizeof (*f));
|
||||
flexerror(_("calloc failed in filter_create_int"));
|
||||
f->next = NULL;
|
||||
f->argc = 0;
|
||||
f->argv = NULL;
|
||||
@@ -230,8 +228,7 @@ int filter_tee_header (struct filter *chain)
|
||||
* header file at the same time.
|
||||
*/
|
||||
|
||||
const int readsz = 512;
|
||||
char *buf;
|
||||
char buf[512];
|
||||
int to_cfd = -1;
|
||||
FILE *to_c = NULL, *to_h = NULL;
|
||||
bool write_header;
|
||||
@@ -283,10 +280,7 @@ int filter_tee_header (struct filter *chain)
|
||||
fprintf (to_c, "m4_define( [[M4_YY_OUTFILE_NAME]],[[%s]])m4_dnl\n",
|
||||
outfilename ? outfilename : "<stdout>");
|
||||
|
||||
buf = malloc((size_t) readsz);
|
||||
if (!buf)
|
||||
flexerror(_("malloc failed in filter_tee_header"));
|
||||
while (fgets (buf, readsz, stdin)) {
|
||||
while (fgets (buf, sizeof buf, stdin)) {
|
||||
fputs (buf, to_c);
|
||||
if (write_header)
|
||||
fputs (buf, to_h);
|
||||
@@ -328,6 +322,13 @@ int filter_tee_header (struct filter *chain)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static bool is_blank_line (const char *str)
|
||||
{
|
||||
while (isspace(*str))
|
||||
str++;
|
||||
return (*str == '\0');
|
||||
}
|
||||
|
||||
/** Adjust the line numbers in the #line directives of the generated scanner.
|
||||
* After the m4 expansion, the line numbers are incorrect since the m4 macros
|
||||
* can add or remove lines. This only adjusts line numbers for generated code,
|
||||
@@ -336,8 +337,8 @@ int filter_tee_header (struct filter *chain)
|
||||
*/
|
||||
int filter_fix_linedirs (struct filter *chain)
|
||||
{
|
||||
char *buf;
|
||||
const size_t readsz = 512;
|
||||
char buf[4096];
|
||||
const size_t readsz = sizeof buf;
|
||||
int lineno = 1;
|
||||
bool in_gen = true; /* in generated code */
|
||||
bool last_was_blank = false;
|
||||
@@ -345,10 +346,6 @@ int filter_fix_linedirs (struct filter *chain)
|
||||
if (!chain)
|
||||
return 0;
|
||||
|
||||
buf = malloc(readsz);
|
||||
if (!buf)
|
||||
flexerror(_("malloc failed in filter_fix_linedirs"));
|
||||
|
||||
while (fgets (buf, (int) readsz, stdin)) {
|
||||
|
||||
regmatch_t m[10];
|
||||
@@ -391,7 +388,7 @@ int filter_fix_linedirs (struct filter *chain)
|
||||
/* Adjust the line directives. */
|
||||
in_gen = true;
|
||||
snprintf (buf, readsz, "#line %d \"%s\"\n",
|
||||
lineno, filename);
|
||||
lineno + 1, filename);
|
||||
}
|
||||
else {
|
||||
/* it's a #line directive for code we didn't write */
|
||||
@@ -403,9 +400,7 @@ int filter_fix_linedirs (struct filter *chain)
|
||||
}
|
||||
|
||||
/* squeeze blank lines from generated code */
|
||||
else if (in_gen
|
||||
&& regexec (®ex_blank_line, buf, 0, NULL,
|
||||
0) == 0) {
|
||||
else if (in_gen && is_blank_line(buf)) {
|
||||
if (last_was_blank)
|
||||
continue;
|
||||
else
|
||||
|
||||
+59
-33
@@ -44,7 +44,6 @@
|
||||
#include <stdarg.h>
|
||||
#include <setjmp.h>
|
||||
#include <ctype.h>
|
||||
#include <libgen.h> /* for XPG version of basename(3) */
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
@@ -77,8 +76,10 @@
|
||||
#include <strings.h>
|
||||
#include "flexint.h"
|
||||
|
||||
/* We use gettext. So, when we write strings which should be translated, we mark them with _() */
|
||||
#ifdef ENABLE_NLS
|
||||
/* We use gettext. So, when we write strings which should be translated, we
|
||||
* mark them with _()
|
||||
*/
|
||||
#if defined(ENABLE_NLS) && ENABLE_NLS
|
||||
#ifdef HAVE_LOCALE_H
|
||||
#include <locale.h>
|
||||
#endif /* HAVE_LOCALE_H */
|
||||
@@ -302,6 +303,56 @@
|
||||
*/
|
||||
#define MAX_SHORT 32700
|
||||
|
||||
/* Method table describing a language-specific back end */
|
||||
|
||||
struct flex_backend_t {
|
||||
const char *(*suffix)(void); // Generate suffix for lexer source code
|
||||
void (*prolog)(void);
|
||||
const char **skel;
|
||||
void (*epilog)(void);
|
||||
const char *(*yy_int_aligned)(void); // Generate aligned type for this back end
|
||||
char *trace_fmt; // Trace message format
|
||||
// Language syntax generation
|
||||
char *int_define_fmt; // Format for integer constant definitions
|
||||
char *string_define_fmt; // Format for string constant definitions
|
||||
char *table_opener; // Open an array initializer with this
|
||||
char *table_continuation; // Open an array initializer with this
|
||||
char *table_closer; // How to continue a two-level initializer
|
||||
char *dyad; // How to format and int[2] initializer
|
||||
void (*comment)(const char *); // Wrap a comment line
|
||||
const char *(*get_int16_decl)(void); // Format for declaring array initializer of int16s
|
||||
const char *(*get_int32_decl)(void); // Format for declaring array initializer of int32s
|
||||
const char *(*get_state_decl)(void); // Format for declaring array initializer of state values
|
||||
const char *(*get_yy_char_decl)(void); // Format for declaring array initializer of input chars
|
||||
// Flex table generation
|
||||
void (*ntod)(size_t); // Generate nxt table for ntod
|
||||
void (*mkeoltbl)(void); // Make end-of-line table
|
||||
void (*geneoltbl)(size_t); // Generate end-of-line transitions
|
||||
void (*mkctbl)(size_t); // Make full-speed compressed table
|
||||
void (*mkssltbl)(void); // Make start_state_list table
|
||||
void (*gen_yy_trans)(size_t); // Table of verify for transition and offset to next state. (sic)
|
||||
void (*start_state_list)(size_t); // Start initializer for table of pointers to start states
|
||||
void (*mkftbl)(); // Make full table
|
||||
const char *state_entry_fmt; // Format of state table entry
|
||||
void (*mkecstbl)(void); // Make equivalence-class tables
|
||||
void (*gentabs_acclist)(void); // Generate accept list initializer
|
||||
void (*gentabs_accept)(void); // Generate accept table initializer
|
||||
void (*gentabs_yy_meta)(void); // Generate yy_meta table initializer
|
||||
void (*gentabs_yy_base)(void); // Generate yy_base table initializer
|
||||
void (*gentabs_yy_def)(size_t); // Generate yy_def initializer
|
||||
void (*gentabs_yy_nxt)(size_t); // Generate yy_nxt initializer
|
||||
void (*gentabs_yy_chk)(size_t); // Generate yy_chk initializer
|
||||
void (*nultrans)(int); // Generate nulltrans initializer
|
||||
const char *(*trans_offset_type)(int); // Compute an efficient type for transition tables
|
||||
char *caseprefix; // Prefix of an arm in the language's case construct
|
||||
char *fallthrough; // Finish a case arm with this to fall through
|
||||
char *endcase; // What to ship after all EOF-state case arms
|
||||
int c_like; // Will &yy_transition[%d]," produce a pointer table entry?
|
||||
};
|
||||
|
||||
extern bool gentables;
|
||||
|
||||
extern struct flex_backend_t cpp_backend;
|
||||
|
||||
/* Declarations for global variables. */
|
||||
|
||||
@@ -368,6 +419,8 @@ extern int yymore_used, reject, real_reject, continued_action, in_rule;
|
||||
extern int yymore_really_used, reject_really_used;
|
||||
extern int trace_hex;
|
||||
|
||||
extern struct flex_backend_t *backend;
|
||||
|
||||
/* Variables used in the flex input routines:
|
||||
* datapos - characters on current output line
|
||||
* dataline - number of contiguous lines of data in current data
|
||||
@@ -631,10 +684,6 @@ extern int sectnum, nummt, hshcol, dfaeql, numeps, eps2, num_reallocs;
|
||||
extern int tmpuses, totnst, peakpairs, numuniq, numdup, hshsave;
|
||||
extern int num_backing_up, bol_needed;
|
||||
|
||||
#ifndef HAVE_REALLOCARRAY
|
||||
void *reallocarray(void *, size_t, size_t);
|
||||
#endif
|
||||
|
||||
void *allocate_array(int, size_t);
|
||||
void *reallocate_array(void *, int, size_t);
|
||||
|
||||
@@ -735,34 +784,11 @@ extern void mkechar(int, int[], int[]);
|
||||
|
||||
extern void do_indent(void); /* indent to the current level */
|
||||
|
||||
/* Generate the code to keep backing-up information. */
|
||||
extern void gen_backing_up(void);
|
||||
|
||||
/* Generate the code to perform the backing up. */
|
||||
extern void gen_bu_action(void);
|
||||
|
||||
/* Generate full speed compressed transition table. */
|
||||
extern void genctbl(void);
|
||||
|
||||
/* Generate the code to find the action number. */
|
||||
extern void gen_find_action(void);
|
||||
|
||||
extern void genftbl(void); /* generate full transition table */
|
||||
|
||||
/* Generate the code to find the next compressed-table state. */
|
||||
extern void gen_next_compressed_state(char *);
|
||||
|
||||
/* Generate the code to find the next match. */
|
||||
extern void gen_next_match(void);
|
||||
|
||||
/* Generate the code to find the next state. */
|
||||
extern void gen_next_state(int);
|
||||
|
||||
/* Generate the code to make a NUL transition. */
|
||||
extern void gen_NUL_trans(void);
|
||||
|
||||
/* Generate the code to find the start state. */
|
||||
extern void gen_start_state(void);
|
||||
/* generate full transition table */
|
||||
extern void genftbl(void);
|
||||
|
||||
/* Generate data statements for the transition tables. */
|
||||
extern void gentabs(void);
|
||||
@@ -1131,7 +1157,7 @@ extern int filter_fix_linedirs(struct filter *chain);
|
||||
* From "regex.c"
|
||||
*/
|
||||
|
||||
extern regex_t regex_linedir, regex_blank_line;
|
||||
extern regex_t regex_linedir;
|
||||
bool flex_init_regex(void);
|
||||
void flex_regcomp(regex_t *preg, const char *regex, int cflags);
|
||||
char *regmatch_dup (regmatch_t * m, const char *src);
|
||||
|
||||
+9
-22
@@ -3,31 +3,17 @@
|
||||
#ifndef FLEXINT_H
|
||||
#define FLEXINT_H
|
||||
|
||||
/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
|
||||
|
||||
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
|
||||
/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
|
||||
* if you want the limit (max/min) macros for int types.
|
||||
/* C++ systems might need __STDC_LIMIT_MACROS defined before including
|
||||
* <stdint.h>, if you want the limit (max/min) macros for int types.
|
||||
*/
|
||||
#ifndef __STDC_LIMIT_MACROS
|
||||
#define __STDC_LIMIT_MACROS 1
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
typedef int8_t flex_int8_t;
|
||||
typedef uint8_t flex_uint8_t;
|
||||
typedef int16_t flex_int16_t;
|
||||
typedef uint16_t flex_uint16_t;
|
||||
typedef int32_t flex_int32_t;
|
||||
typedef uint32_t flex_uint32_t;
|
||||
#else
|
||||
typedef signed char flex_int8_t;
|
||||
typedef short int flex_int16_t;
|
||||
typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
/* "flexint_shared.h" will be included also in skeleton. It will include
|
||||
* <inttypes.h> (if available) and define flex's integral types.
|
||||
*/
|
||||
#include "flexint_shared.h"
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@@ -58,10 +44,11 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#ifndef INT_MAX
|
||||
#define INT_MAX ((int)(~0U)>>1)
|
||||
#endif
|
||||
#ifndef SIZE_MAX
|
||||
#define SIZE_MAX (~(size_t)0)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/* flex integer type definitions */
|
||||
|
||||
#ifndef YYFLEX_INTTYPES_DEFINED
|
||||
#define YYFLEX_INTTYPES_DEFINED
|
||||
|
||||
/* Prefer C99 integer types if available. */
|
||||
# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||||
/* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former
|
||||
* and not the latter.
|
||||
*/
|
||||
#include <inttypes.h>
|
||||
# define YYFLEX_USE_STDINT
|
||||
# else
|
||||
# if defined(_MSC_VER) && _MSC_VER >= 1600
|
||||
/* Visual C++ 2010 does not define __STDC_VERSION__ and has <stdint.h> but not
|
||||
* <inttypes.h>.
|
||||
*/
|
||||
#include <stdint.h>
|
||||
# define YYFLEX_USE_STDINT
|
||||
# endif
|
||||
# endif
|
||||
# ifdef YYFLEX_USE_STDINT
|
||||
typedef int8_t flex_int8_t;
|
||||
typedef uint8_t flex_uint8_t;
|
||||
typedef int16_t flex_int16_t;
|
||||
typedef uint16_t flex_uint16_t;
|
||||
typedef int32_t flex_int32_t;
|
||||
typedef uint32_t flex_uint32_t;
|
||||
# else
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef short int flex_int16_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
# ifdef __STDC__
|
||||
typedef signed char flex_int8_t;
|
||||
/* ISO C only requires at least 16 bits for int. */
|
||||
#include <limits.h>
|
||||
# if UINT_MAX >= 4294967295
|
||||
# define YYFLEX_INT32_DEFINED
|
||||
typedef int flex_int32_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
# endif
|
||||
# else
|
||||
typedef char flex_int8_t;
|
||||
# endif
|
||||
# ifndef YYFLEX_INT32_DEFINED
|
||||
typedef long int flex_int32_t;
|
||||
typedef unsigned long int flex_uint32_t;
|
||||
# endif
|
||||
# endif
|
||||
#endif /* YYFLEX_INTTYPES_DEFINED */
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
#define _LIBGETTEXT_H 1
|
||||
|
||||
/* NLS can be disabled through the configure --disable-nls option. */
|
||||
#if ENABLE_NLS
|
||||
#ifdef ENABLE_NLS
|
||||
|
||||
/* Get declarations of GNU message catalog functions. */
|
||||
# include <libintl.h>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
prefix=@prefix@
|
||||
exec_prefix=@exec_prefix@
|
||||
libdir=@libdir@
|
||||
|
||||
Name: libfl
|
||||
Description: Flex (the fast lexical analyzer) support library
|
||||
Version: @PACKAGE_VERSION@
|
||||
Libs: -L${libdir} -lfl
|
||||
+70
-375
@@ -46,7 +46,6 @@ void flexinit(int, char **);
|
||||
void readin(void);
|
||||
void set_up_initial_allocations(void);
|
||||
|
||||
|
||||
/* these globals are all defined and commented in flexdef.h */
|
||||
int printstats, syntaxerror, eofseen, ddebug, trace, nowarn, spprdflt;
|
||||
int interactive, lex_compat, posix_compat, do_yylineno,
|
||||
@@ -107,6 +106,8 @@ jmp_buf flex_main_jmp_buf;
|
||||
bool *rule_has_nl, *ccl_has_nl;
|
||||
int nlch = '\n';
|
||||
|
||||
struct flex_backend_t *backend;
|
||||
|
||||
bool tablesext, tablesverify, gentables;
|
||||
char *tablesfilename=0,*tablesname=0;
|
||||
struct yytbl_writer tableswr;
|
||||
@@ -117,7 +118,7 @@ struct yytbl_writer tableswr;
|
||||
char *program_name = "flex";
|
||||
|
||||
static const char outfile_template[] = "lex.%s.%s";
|
||||
static const char backing_name[] = "lex.backup";
|
||||
static const char *backing_name = "lex.backup";
|
||||
static const char tablesfile_template[] = "lex.%s.tables";
|
||||
|
||||
/* From scan.l */
|
||||
@@ -169,6 +170,9 @@ int flex_main (int argc, char *argv[])
|
||||
|
||||
readin ();
|
||||
|
||||
if (backend->prolog)
|
||||
backend->prolog ();
|
||||
|
||||
skelout ();
|
||||
/* %% [1.5] DFA */
|
||||
ntod ();
|
||||
@@ -197,7 +201,7 @@ int flex_main (int argc, char *argv[])
|
||||
/* Wrapper around flex_main, so flex_main can be built as a library. */
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
#if ENABLE_NLS
|
||||
#if defined(ENABLE_NLS) && ENABLE_NLS
|
||||
#if HAVE_LOCALE_H
|
||||
setlocale (LC_MESSAGES, "");
|
||||
setlocale (LC_CTYPE, "");
|
||||
@@ -317,15 +321,8 @@ void check_options (void)
|
||||
FILE *prev_stdout;
|
||||
|
||||
if (!did_outfilename) {
|
||||
char *suffix;
|
||||
|
||||
if (C_plus_plus)
|
||||
suffix = "cc";
|
||||
else
|
||||
suffix = "c";
|
||||
|
||||
snprintf (outfile_path, sizeof(outfile_path), outfile_template,
|
||||
prefix, suffix);
|
||||
prefix, backend->suffix());
|
||||
|
||||
outfilename = outfile_path;
|
||||
}
|
||||
@@ -457,42 +454,44 @@ void check_options (void)
|
||||
buf_m4_define (&m4defs_buf, "M4_YY_USE_LINENO", NULL);
|
||||
|
||||
/* Create the alignment type. */
|
||||
buf_strdefine (&userdef_buf, "YY_INT_ALIGNED",
|
||||
long_align ? "long int" : "short int");
|
||||
buf_strdefine (&userdef_buf, "YY_INT_ALIGNED", backend->yy_int_aligned());
|
||||
|
||||
/* Define the start condition macros. */
|
||||
{
|
||||
struct Buf tmpbuf;
|
||||
buf_init(&tmpbuf, sizeof(char));
|
||||
for (i = 1; i <= lastsc; i++) {
|
||||
char *str, *fmt = "#define %s %d\n";
|
||||
size_t strsz;
|
||||
/* Define the start condition macros. */
|
||||
{
|
||||
struct Buf tmpbuf;
|
||||
buf_init(&tmpbuf, sizeof(char));
|
||||
for (i = 1; i <= lastsc; i++) {
|
||||
char *str, *fmt = backend->int_define_fmt;
|
||||
size_t strsz;
|
||||
|
||||
strsz = strlen(fmt) + strlen(scname[i]) + (size_t)(1 + ceil (log10(i))) + 2;
|
||||
str = malloc(strsz);
|
||||
if (!str)
|
||||
flexfatal(_("allocation of macro definition failed"));
|
||||
snprintf(str, strsz, fmt, scname[i], i - 1);
|
||||
buf_strappend(&tmpbuf, str);
|
||||
free(str);
|
||||
}
|
||||
buf_m4_define(&m4defs_buf, "M4_YY_SC_DEFS", tmpbuf.elts);
|
||||
buf_destroy(&tmpbuf);
|
||||
}
|
||||
strsz = strlen(fmt) + strlen(scname[i]) + (size_t)(1 + ceil (log10(i))) + 2;
|
||||
str = malloc(strsz);
|
||||
if (!str)
|
||||
flexfatal(_("allocation of macro definition failed"));
|
||||
snprintf(str, strsz, fmt, scname[i], i - 1);
|
||||
buf_strappend(&tmpbuf, str);
|
||||
free(str);
|
||||
}
|
||||
buf_m4_define(&m4defs_buf, "M4_YY_SC_DEFS", tmpbuf.elts);
|
||||
buf_destroy(&tmpbuf);
|
||||
}
|
||||
|
||||
/* This is where we begin writing to the file. */
|
||||
/* This is where we begin writing to the file. */
|
||||
|
||||
/* Dump the %top code. */
|
||||
if( top_buf.elts)
|
||||
outn((char*) top_buf.elts);
|
||||
/* Dump the %top code. */
|
||||
if( top_buf.elts)
|
||||
outn((char*) top_buf.elts);
|
||||
|
||||
/* Dump the m4 definitions. */
|
||||
buf_print_strings(&m4defs_buf, stdout);
|
||||
m4defs_buf.nelts = 0; /* memory leak here. */
|
||||
/* Dump the m4 definitions. */
|
||||
buf_print_strings(&m4defs_buf, stdout);
|
||||
m4defs_buf.nelts = 0; /* memory leak here. */
|
||||
|
||||
/* Place a bogus line directive, it will be fixed in the filter. */
|
||||
if (gen_line_dirs)
|
||||
outn("#line 0 \"M4_YY_OUTFILE_NAME\"\n");
|
||||
/* Place a bogus line directive, it will be fixed in the filter. */
|
||||
if (gen_line_dirs && backend->trace_fmt) {
|
||||
char buf2[4096];
|
||||
snprintf(buf2, sizeof(buf2), backend->trace_fmt, 0, "M4_YY_OUTFILE_NAME");
|
||||
outn(buf2);
|
||||
}
|
||||
|
||||
/* Dump the user defined preproc directives. */
|
||||
if (userdef_buf.elts)
|
||||
@@ -526,191 +525,8 @@ void flexend (int exit_status)
|
||||
skelname);
|
||||
}
|
||||
|
||||
#if 0
|
||||
fprintf (header_out,
|
||||
"#ifdef YY_HEADER_EXPORT_START_CONDITIONS\n");
|
||||
fprintf (header_out,
|
||||
"/* Beware! Start conditions are not prefixed. */\n");
|
||||
|
||||
/* Special case for "INITIAL" */
|
||||
fprintf (header_out,
|
||||
"#undef INITIAL\n#define INITIAL 0\n");
|
||||
for (i = 2; i <= lastsc; i++)
|
||||
fprintf (header_out, "#define %s %d\n", scname[i], i - 1);
|
||||
fprintf (header_out,
|
||||
"#endif /* YY_HEADER_EXPORT_START_CONDITIONS */\n\n");
|
||||
|
||||
/* Kill ALL flex-related macros. This is so the user
|
||||
* can #include more than one generated header file. */
|
||||
fprintf (header_out, "#ifndef YY_HEADER_NO_UNDEFS\n");
|
||||
fprintf (header_out,
|
||||
"/* Undefine all internal macros, etc., that do no belong in the header. */\n\n");
|
||||
|
||||
{
|
||||
const char * undef_list[] = {
|
||||
|
||||
"BEGIN",
|
||||
"ECHO",
|
||||
"EOB_ACT_CONTINUE_SCAN",
|
||||
"EOB_ACT_END_OF_FILE",
|
||||
"EOB_ACT_LAST_MATCH",
|
||||
"FLEX_SCANNER",
|
||||
"REJECT",
|
||||
"YYFARGS0",
|
||||
"YYFARGS1",
|
||||
"YYFARGS2",
|
||||
"YYFARGS3",
|
||||
"YYLMAX",
|
||||
"YYSTATE",
|
||||
"YY_AT_BOL",
|
||||
"YY_BREAK",
|
||||
"YY_BUFFER_EOF_PENDING",
|
||||
"YY_BUFFER_NEW",
|
||||
"YY_BUFFER_NORMAL",
|
||||
"YY_BUF_SIZE",
|
||||
"M4_YY_CALL_LAST_ARG",
|
||||
"M4_YY_CALL_ONLY_ARG",
|
||||
"YY_CURRENT_BUFFER",
|
||||
"YY_DECL",
|
||||
"M4_YY_DECL_LAST_ARG",
|
||||
"M4_YY_DEF_LAST_ARG",
|
||||
"M4_YY_DEF_ONLY_ARG",
|
||||
"YY_DO_BEFORE_ACTION",
|
||||
"YY_END_OF_BUFFER",
|
||||
"YY_END_OF_BUFFER_CHAR",
|
||||
"YY_EXIT_FAILURE",
|
||||
"YY_EXTRA_TYPE",
|
||||
"YY_FATAL_ERROR",
|
||||
"YY_FLEX_DEFINED_ECHO",
|
||||
"YY_FLEX_LEX_COMPAT",
|
||||
"YY_FLEX_MAJOR_VERSION",
|
||||
"YY_FLEX_MINOR_VERSION",
|
||||
"YY_FLEX_SUBMINOR_VERSION",
|
||||
"YY_FLUSH_BUFFER",
|
||||
"YY_G",
|
||||
"YY_INPUT",
|
||||
"YY_INTERACTIVE",
|
||||
"YY_INT_ALIGNED",
|
||||
"YY_LAST_ARG",
|
||||
"YY_LESS_LINENO",
|
||||
"YY_LEX_ARGS",
|
||||
"YY_LEX_DECLARATION",
|
||||
"YY_LEX_PROTO",
|
||||
"YY_MAIN",
|
||||
"YY_MORE_ADJ",
|
||||
"YY_NEED_STRLEN",
|
||||
"YY_NEW_FILE",
|
||||
"YY_NULL",
|
||||
"YY_NUM_RULES",
|
||||
"YY_ONLY_ARG",
|
||||
"YY_PARAMS",
|
||||
"YY_PROTO",
|
||||
"M4_YY_PROTO_LAST_ARG",
|
||||
"M4_YY_PROTO_ONLY_ARG void",
|
||||
"YY_READ_BUF_SIZE",
|
||||
"YY_REENTRANT",
|
||||
"YY_RESTORE_YY_MORE_OFFSET",
|
||||
"YY_RULE_SETUP",
|
||||
"YY_SC_TO_UI",
|
||||
"YY_SKIP_YYWRAP",
|
||||
"YY_START",
|
||||
"YY_START_STACK_INCR",
|
||||
"YY_STATE_EOF",
|
||||
"YY_STDINIT",
|
||||
"YY_TRAILING_HEAD_MASK",
|
||||
"YY_TRAILING_MASK",
|
||||
"YY_USER_ACTION",
|
||||
"YY_USE_CONST",
|
||||
"YY_USE_PROTOS",
|
||||
"unput",
|
||||
"yyTABLES_NAME",
|
||||
"yy_create_buffer",
|
||||
"yy_delete_buffer",
|
||||
"yy_flex_debug",
|
||||
"yy_flush_buffer",
|
||||
"yy_init_buffer",
|
||||
"yy_load_buffer_state",
|
||||
"yy_new_buffer",
|
||||
"yy_scan_buffer",
|
||||
"yy_scan_bytes",
|
||||
"yy_scan_string",
|
||||
"yy_set_bol",
|
||||
"yy_set_interactive",
|
||||
"yy_switch_to_buffer",
|
||||
"yypush_buffer_state",
|
||||
"yypop_buffer_state",
|
||||
"yyensure_buffer_stack",
|
||||
"yyalloc",
|
||||
"const",
|
||||
"yyextra",
|
||||
"yyfree",
|
||||
"yyget_debug",
|
||||
"yyget_extra",
|
||||
"yyget_in",
|
||||
"yyget_leng",
|
||||
"yyget_lineno",
|
||||
"yyget_lloc",
|
||||
"yyget_lval",
|
||||
"yyget_out",
|
||||
"yyget_text",
|
||||
"yyin",
|
||||
"yyleng",
|
||||
"yyless",
|
||||
"yylex",
|
||||
"yylex_destroy",
|
||||
"yylex_init",
|
||||
"yylex_init_extra",
|
||||
"yylineno",
|
||||
"yylloc",
|
||||
"yylval",
|
||||
"yymore",
|
||||
"yyout",
|
||||
"yyrealloc",
|
||||
"yyrestart",
|
||||
"yyset_debug",
|
||||
"yyset_extra",
|
||||
"yyset_in",
|
||||
"yyset_lineno",
|
||||
"yyset_lloc",
|
||||
"yyset_lval",
|
||||
"yyset_out",
|
||||
"yytables_destroy",
|
||||
"yytables_fload",
|
||||
"yyterminate",
|
||||
"yytext",
|
||||
"yytext_ptr",
|
||||
"yywrap",
|
||||
|
||||
/* must be null-terminated */
|
||||
NULL};
|
||||
|
||||
|
||||
for (i=0; undef_list[i] != NULL; i++)
|
||||
fprintf (header_out, "#undef %s\n", undef_list[i]);
|
||||
}
|
||||
|
||||
/* undef any of the auto-generated symbols. */
|
||||
for (i = 0; i < defs_buf.nelts; i++) {
|
||||
|
||||
/* don't undef start conditions */
|
||||
if (sclookup (((char **) defs_buf.elts)[i]) > 0)
|
||||
continue;
|
||||
fprintf (header_out, "#undef %s\n",
|
||||
((char **) defs_buf.elts)[i]);
|
||||
}
|
||||
|
||||
fprintf (header_out,
|
||||
"#endif /* !YY_HEADER_NO_UNDEFS */\n");
|
||||
fprintf (header_out, "\n");
|
||||
fprintf (header_out, "#undef %sIN_HEADER\n", prefix);
|
||||
fprintf (header_out, "#endif /* %sHEADER_H */\n", prefix);
|
||||
|
||||
if (ferror (header_out))
|
||||
lerr (_("error creating header file %s"),
|
||||
headerfilename);
|
||||
fflush (header_out);
|
||||
fclose (header_out);
|
||||
#endif
|
||||
if (backend->epilog)
|
||||
backend->epilog();
|
||||
|
||||
if (exit_status != 0 && outfile_created) {
|
||||
if (ferror (stdout))
|
||||
@@ -994,7 +810,7 @@ void flexinit (int argc, char **argv)
|
||||
flex_init_regex();
|
||||
|
||||
/* Enable C++ if program name ends with '+'. */
|
||||
program_name = basename (argv[0]);
|
||||
program_name = argv[0];
|
||||
|
||||
if (program_name != NULL &&
|
||||
program_name[strlen (program_name) - 1] == '+')
|
||||
@@ -1033,6 +849,11 @@ void flexinit (int argc, char **argv)
|
||||
backing_up_report = true;
|
||||
break;
|
||||
|
||||
case OPT_BACKUP_FILE:
|
||||
backing_up_report = true;
|
||||
backing_name = arg;
|
||||
break;
|
||||
|
||||
case OPT_DONOTHING:
|
||||
break;
|
||||
|
||||
@@ -1201,7 +1022,7 @@ void flexinit (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case OPT_VERSION:
|
||||
printf (_("%s %s\n"), program_name, flex_version);
|
||||
printf ("%s %s\n", (C_plus_plus ? "flex++" : "flex"), flex_version);
|
||||
FLEX_EXIT (0);
|
||||
|
||||
case OPT_WARN:
|
||||
@@ -1268,24 +1089,16 @@ void flexinit (int argc, char **argv)
|
||||
{
|
||||
/* arg is "symbol" or "symbol=definition". */
|
||||
char *def;
|
||||
char buf2[4096];
|
||||
|
||||
for (def = arg;
|
||||
*def != '\0' && *def != '='; ++def) ;
|
||||
*def != '\0' && *def != '='; ++def)
|
||||
continue;
|
||||
if (*def == '\0')
|
||||
def = "1";
|
||||
|
||||
buf_strappend (&userdef_buf, "#define ");
|
||||
if (*def == '\0') {
|
||||
buf_strappend (&userdef_buf, arg);
|
||||
buf_strappend (&userdef_buf,
|
||||
" 1\n");
|
||||
}
|
||||
else {
|
||||
buf_strnappend (&userdef_buf, arg,
|
||||
(int) (def - arg));
|
||||
buf_strappend (&userdef_buf, " ");
|
||||
buf_strappend (&userdef_buf,
|
||||
def + 1);
|
||||
buf_strappend (&userdef_buf, "\n");
|
||||
}
|
||||
snprintf(buf2, sizeof(buf2), backend->string_define_fmt, arg, def);
|
||||
buf_strappend (&userdef_buf, buf2);
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1394,6 +1207,14 @@ void flexinit (int argc, char **argv)
|
||||
//buf_strdefine (&userdef_buf, "YY_NO_SET_LINENO", "1");
|
||||
buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_LINENO",0);
|
||||
break;
|
||||
case OPT_NO_YYGET_COLUMN:
|
||||
//buf_strdefine (&userdef_buf, "YY_NO_GET_COLUMN", "1");
|
||||
buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_COLUMN",0);
|
||||
break;
|
||||
case OPT_NO_YYSET_COLUMN:
|
||||
//buf_strdefine (&userdef_buf, "YY_NO_SET_COLUMN", "1");
|
||||
buf_m4_define( &m4defs_buf, "M4_YY_NO_SET_COLUMN",0);
|
||||
break;
|
||||
case OPT_NO_YYGET_IN:
|
||||
//buf_strdefine (&userdef_buf, "YY_NO_GET_IN", "1");
|
||||
buf_m4_define( &m4defs_buf, "M4_YY_NO_GET_IN",0);
|
||||
@@ -1459,6 +1280,8 @@ void flexinit (int argc, char **argv)
|
||||
lastprot = 1;
|
||||
|
||||
set_up_initial_allocations ();
|
||||
|
||||
backend = &cpp_backend;
|
||||
}
|
||||
|
||||
|
||||
@@ -1466,10 +1289,6 @@ void flexinit (int argc, char **argv)
|
||||
|
||||
void readin (void)
|
||||
{
|
||||
static char yy_stdinit[] = "FILE *yyin = stdin, *yyout = stdout;";
|
||||
static char yy_nostdinit[] =
|
||||
"FILE *yyin = NULL, *yyout = NULL;";
|
||||
|
||||
line_directive_out(NULL, 1);
|
||||
|
||||
if (yyparse ()) {
|
||||
@@ -1579,131 +1398,6 @@ void readin (void)
|
||||
("variable trailing context rules cannot be used with -f or -F"));
|
||||
}
|
||||
|
||||
if (reject){
|
||||
out_m4_define( "M4_YY_USES_REJECT", NULL);
|
||||
//outn ("\n#define YY_USES_REJECT");
|
||||
}
|
||||
|
||||
if (!do_yywrap) {
|
||||
if (!C_plus_plus) {
|
||||
if (reentrant)
|
||||
out_str ("\n#define %swrap(yyscanner) (/*CONSTCOND*/1)\n", prefix);
|
||||
else
|
||||
out_str ("\n#define %swrap() (/*CONSTCOND*/1)\n", prefix);
|
||||
}
|
||||
outn ("#define YY_SKIP_YYWRAP");
|
||||
}
|
||||
|
||||
if (ddebug)
|
||||
outn ("\n#define FLEX_DEBUG");
|
||||
|
||||
OUT_BEGIN_CODE ();
|
||||
outn ("typedef flex_uint8_t YY_CHAR;");
|
||||
OUT_END_CODE ();
|
||||
|
||||
if (C_plus_plus) {
|
||||
outn ("#define yytext_ptr yytext");
|
||||
|
||||
if (interactive)
|
||||
outn ("#define YY_INTERACTIVE");
|
||||
}
|
||||
|
||||
else {
|
||||
OUT_BEGIN_CODE ();
|
||||
/* In reentrant scanner, stdinit is handled in flex.skl. */
|
||||
if (do_stdinit) {
|
||||
if (reentrant){
|
||||
outn ("#ifdef VMS");
|
||||
outn ("#ifdef __VMS_POSIX");
|
||||
outn ("#define YY_STDINIT");
|
||||
outn ("#endif");
|
||||
outn ("#else");
|
||||
outn ("#define YY_STDINIT");
|
||||
outn ("#endif");
|
||||
}
|
||||
|
||||
outn ("#ifdef VMS");
|
||||
outn ("#ifndef __VMS_POSIX");
|
||||
outn (yy_nostdinit);
|
||||
outn ("#else");
|
||||
outn (yy_stdinit);
|
||||
outn ("#endif");
|
||||
outn ("#else");
|
||||
outn (yy_stdinit);
|
||||
outn ("#endif");
|
||||
}
|
||||
|
||||
else {
|
||||
if(!reentrant)
|
||||
outn (yy_nostdinit);
|
||||
}
|
||||
OUT_END_CODE ();
|
||||
}
|
||||
|
||||
OUT_BEGIN_CODE ();
|
||||
if (fullspd)
|
||||
outn ("typedef const struct yy_trans_info *yy_state_type;");
|
||||
else if (!C_plus_plus)
|
||||
outn ("typedef int yy_state_type;");
|
||||
OUT_END_CODE ();
|
||||
|
||||
if (lex_compat)
|
||||
outn ("#define YY_FLEX_LEX_COMPAT");
|
||||
|
||||
if (!C_plus_plus && !reentrant) {
|
||||
outn ("extern int yylineno;");
|
||||
OUT_BEGIN_CODE ();
|
||||
outn ("int yylineno = 1;");
|
||||
OUT_END_CODE ();
|
||||
}
|
||||
|
||||
if (C_plus_plus) {
|
||||
outn ("\n#include <FlexLexer.h>");
|
||||
|
||||
if (!do_yywrap) {
|
||||
outn("\nint yyFlexLexer::yywrap() { return 1; }");
|
||||
}
|
||||
|
||||
if (yyclass) {
|
||||
outn ("int yyFlexLexer::yylex()");
|
||||
outn ("\t{");
|
||||
outn ("\tLexerError( \"yyFlexLexer::yylex invoked but %option yyclass used\" );");
|
||||
outn ("\treturn 0;");
|
||||
outn ("\t}");
|
||||
|
||||
out_str ("\n#define YY_DECL int %s::yylex()\n",
|
||||
yyclass);
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
/* Watch out: yytext_ptr is a variable when yytext is an array,
|
||||
* but it's a macro when yytext is a pointer.
|
||||
*/
|
||||
if (yytext_is_array) {
|
||||
if (!reentrant)
|
||||
outn ("extern char yytext[];\n");
|
||||
}
|
||||
else {
|
||||
if (reentrant) {
|
||||
outn ("#define yytext_ptr yytext_r");
|
||||
}
|
||||
else {
|
||||
outn ("extern char *yytext;");
|
||||
|
||||
outn("#ifdef yytext_ptr");
|
||||
outn("#undef yytext_ptr");
|
||||
outn("#endif");
|
||||
outn ("#define yytext_ptr yytext");
|
||||
}
|
||||
}
|
||||
|
||||
if (yyclass)
|
||||
flexerror (_
|
||||
("%option yyclass only meaningful for C++ scanners"));
|
||||
}
|
||||
|
||||
if (useecs)
|
||||
numecs = cre8ecs (nextecm, ecgroup, csize);
|
||||
else
|
||||
@@ -1717,7 +1411,6 @@ void readin (void)
|
||||
ccl2ecl ();
|
||||
}
|
||||
|
||||
|
||||
/* set_up_initial_allocations - allocate memory for internal tables */
|
||||
|
||||
void set_up_initial_allocations (void)
|
||||
@@ -1817,7 +1510,8 @@ void usage (void)
|
||||
" -t, --stdout write scanner on stdout instead of %s\n"
|
||||
" --yyclass=NAME name of C++ class\n"
|
||||
" --header-file=FILE create a C header file in addition to the scanner\n"
|
||||
" --tables-file[=FILE] write tables to FILE\n" "\n"
|
||||
" --tables-file[=FILE] write tables to FILE\n"
|
||||
" --backup-file=FILE write backing-up information to FILE\n" "\n"
|
||||
"Scanner behavior:\n"
|
||||
" -7, --7bit generate 7-bit scanner\n"
|
||||
" -8, --8bit generate 8-bit scanner\n"
|
||||
@@ -1844,6 +1538,7 @@ void usage (void)
|
||||
" -?\n"
|
||||
" -h, --help produce this help message\n"
|
||||
" -V, --version report %s version\n"),
|
||||
backing_name, program_name, outfile_path, program_name);
|
||||
backing_name, "flex", outfile_path, "flex");
|
||||
|
||||
}
|
||||
|
||||
|
||||
+44
-32
@@ -116,15 +116,14 @@ void add_action (const char *new_text)
|
||||
int len = (int) strlen (new_text);
|
||||
|
||||
while (len + action_index >= action_size - 10 /* slop */ ) {
|
||||
int new_size = action_size * 2;
|
||||
|
||||
if (new_size <= 0)
|
||||
if (action_size > INT_MAX / 2)
|
||||
/* Increase just a little, to try to avoid overflow
|
||||
* on 16-bit machines.
|
||||
*/
|
||||
action_size += action_size / 8;
|
||||
else
|
||||
action_size = new_size;
|
||||
action_size = action_size * 2;
|
||||
|
||||
action_array =
|
||||
reallocate_character_array (action_array,
|
||||
@@ -141,20 +140,24 @@ void add_action (const char *new_text)
|
||||
|
||||
void *allocate_array (int size, size_t element_size)
|
||||
{
|
||||
void *mem;
|
||||
#if HAVE_REALLOCARRAY
|
||||
/* reallocarray has built-in overflow detection */
|
||||
mem = reallocarray(NULL, (size_t) size, element_size);
|
||||
void *new_array;
|
||||
#if HAVE_REALLOCARR
|
||||
new_array = NULL;
|
||||
if (reallocarr(&new_array, (size_t) size, element_size))
|
||||
flexfatal (_("memory allocation failed in allocate_array()"));
|
||||
#else
|
||||
# if HAVE_REALLOCARRAY
|
||||
new_array = reallocarray(NULL, (size_t) size, element_size);
|
||||
# else
|
||||
/* Do manual overflow detection */
|
||||
size_t num_bytes = (size_t) size * element_size;
|
||||
mem = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
|
||||
new_array = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
|
||||
malloc(num_bytes);
|
||||
# endif
|
||||
if (!new_array)
|
||||
flexfatal (_("memory allocation failed in allocate_array()"));
|
||||
#endif
|
||||
if (!mem)
|
||||
flexfatal (_
|
||||
("memory allocation failed in allocate_array()"));
|
||||
|
||||
return mem;
|
||||
return new_array;
|
||||
}
|
||||
|
||||
|
||||
@@ -257,7 +260,7 @@ void dataend (void)
|
||||
dataflush ();
|
||||
|
||||
/* add terminator for initialization; { for vi */
|
||||
outn (" } ;\n");
|
||||
outn (backend->table_closer);
|
||||
}
|
||||
dataline = 0;
|
||||
datapos = 0;
|
||||
@@ -338,9 +341,8 @@ void lerr_fatal (const char *msg, ...)
|
||||
|
||||
void line_directive_out (FILE *output_file, int do_infile)
|
||||
{
|
||||
char directive[MAXLINE], filename[MAXLINE];
|
||||
char directive[MAXLINE*2], filename[MAXLINE];
|
||||
char *s1, *s2, *s3;
|
||||
static const char line_fmt[] = "#line %d \"%s\"\n";
|
||||
|
||||
if (!gen_line_dirs)
|
||||
return;
|
||||
@@ -363,11 +365,12 @@ void line_directive_out (FILE *output_file, int do_infile)
|
||||
|
||||
*s2 = '\0';
|
||||
|
||||
if (do_infile)
|
||||
snprintf (directive, sizeof(directive), line_fmt, linenum, filename);
|
||||
else {
|
||||
snprintf (directive, sizeof(directive), line_fmt, 0, filename);
|
||||
}
|
||||
if (backend->trace_fmt)
|
||||
if (do_infile)
|
||||
snprintf (directive, sizeof(directive), backend->trace_fmt, linenum, filename);
|
||||
else {
|
||||
snprintf (directive, sizeof(directive), backend->trace_fmt, 0, filename);
|
||||
}
|
||||
|
||||
/* If output_file is nil then we should put the directive in
|
||||
* the accumulated actions.
|
||||
@@ -659,17 +662,22 @@ char *readable_form (int c)
|
||||
void *reallocate_array (void *array, int size, size_t element_size)
|
||||
{
|
||||
void *new_array;
|
||||
#if HAVE_REALLOCARRAY
|
||||
/* reallocarray has built-in overflow detection */
|
||||
new_array = reallocarray(array, (size_t) size, element_size);
|
||||
#if HAVE_REALLOCARR
|
||||
new_array = array;
|
||||
if (reallocarr(&new_array, (size_t) size, element_size))
|
||||
flexfatal (_("attempt to increase array size failed"));
|
||||
#else
|
||||
# if HAVE_REALLOCARRAY
|
||||
new_array = reallocarray(array, (size_t) size, element_size);
|
||||
# else
|
||||
/* Do manual overflow detection */
|
||||
size_t num_bytes = (size_t) size * element_size;
|
||||
new_array = (size && SIZE_MAX / (size_t) size < element_size) ? NULL :
|
||||
realloc(array, num_bytes);
|
||||
#endif
|
||||
# endif
|
||||
if (!new_array)
|
||||
flexfatal (_("attempt to increase array size failed"));
|
||||
|
||||
#endif
|
||||
return new_array;
|
||||
}
|
||||
|
||||
@@ -694,11 +702,11 @@ void skelout (void)
|
||||
|
||||
|
||||
/* Loop pulling lines either from the skelfile, if we're using
|
||||
* one, or from the skel[] array.
|
||||
* one, or from the selected back end's skel[] array.
|
||||
*/
|
||||
while (skelfile ?
|
||||
(fgets (buf, MAXLINE, skelfile) != NULL) :
|
||||
((buf = (char *) skel[skel_ind++]) != 0)) {
|
||||
((buf = (char *) backend->skel[skel_ind++]) != 0)) {
|
||||
|
||||
if (skelfile)
|
||||
chomp (buf);
|
||||
@@ -720,7 +728,10 @@ void skelout (void)
|
||||
*/
|
||||
#define cmd_match(s) (strncmp(buf,(s),strlen(s))==0)
|
||||
|
||||
if (buf[1] == '%') {
|
||||
if (buf[1] == '#') {
|
||||
/* %# indicates comment line to be ignored */
|
||||
}
|
||||
else if (buf[1] == '%') {
|
||||
/* %% is a break point for skelout() */
|
||||
return;
|
||||
}
|
||||
@@ -765,8 +776,9 @@ void skelout (void)
|
||||
outn ((char *) (yydmap_buf.elts));
|
||||
}
|
||||
else if (cmd_match (CMD_DEFINE_YYTABLES)) {
|
||||
out_str("#define YYTABLES_NAME \"%s\"\n",
|
||||
tablesname?tablesname:"yytables");
|
||||
if ( tablesext )
|
||||
out_str( "#define YYTABLES_NAME \"%s\"\n",
|
||||
tablesname ? tablesname : "yytables" );
|
||||
}
|
||||
else if (cmd_match (CMD_IF_CPP_ONLY)) {
|
||||
/* only for C++ */
|
||||
@@ -815,7 +827,7 @@ void transition_struct_out (int element_v, int element_n)
|
||||
if (!gentables)
|
||||
return;
|
||||
|
||||
out_dec2 (" {%4d,%4d },", element_v, element_n);
|
||||
out_dec2 (backend->dyad, element_v, element_n);
|
||||
|
||||
datapos += TRANS_STRUCT_PRINT_LENGTH;
|
||||
|
||||
|
||||
+8
-15
@@ -21,18 +21,14 @@
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE.
|
||||
|
||||
if test ! $# = 3; then
|
||||
echo 'Usage: mkskel.sh srcdir m4 version' >&2
|
||||
if test ! $# = 4; then
|
||||
echo 'Usage: mkskel.sh lang srcdir m4 version' >&2
|
||||
exit 1
|
||||
fi
|
||||
echo '/* File created from flex.skl via mkskel.sh */
|
||||
|
||||
#include "flexdef.h"
|
||||
|
||||
const char *skel[] = {'
|
||||
srcdir=$1
|
||||
m4=$2
|
||||
VERSION=$3
|
||||
lang=$1
|
||||
srcdir=$2
|
||||
m4=$3
|
||||
VERSION=$4
|
||||
case $VERSION in
|
||||
*[!0-9.]*) echo 'Invalid version number' >&2; exit 1;;
|
||||
esac
|
||||
@@ -40,7 +36,7 @@ IFS=.
|
||||
set $VERSION
|
||||
sed 's/4_/a4_/g
|
||||
s/m4preproc_/m4_/g
|
||||
' "$srcdir/flex.skl" |
|
||||
' "$srcdir/${lang}-flex.skl" |
|
||||
"$m4" -P -I "$srcdir" "-DFLEX_MAJOR_VERSION=$1" \
|
||||
"-DFLEX_MINOR_VERSION=$2" \
|
||||
"-DFLEX_SUBMINOR_VERSION=$3" |
|
||||
@@ -48,7 +44,4 @@ sed '/^%#/d
|
||||
s/m4_/m4preproc_/g
|
||||
s/a4_/4_/g
|
||||
s/[\\"]/\\&/g
|
||||
s/.*/ "&",/'
|
||||
|
||||
echo ' 0
|
||||
};'
|
||||
s/[^\r]*/ "&",/'
|
||||
|
||||
@@ -499,6 +499,8 @@ int mkor (int first, int second)
|
||||
}
|
||||
}
|
||||
|
||||
firstst[first] = MIN(firstst[first], firstst[second]);
|
||||
|
||||
finalst[first] = orend;
|
||||
return first;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,8 @@ optspec_t flexopts[] = {
|
||||
,
|
||||
{"--backup", OPT_BACKUP, 0}
|
||||
, /* Generate backing-up information to lex.backup. */
|
||||
{"--backup-file=FILE", OPT_BACKUP_FILE, 0}
|
||||
, /* Generate backing-up information to FILE. */
|
||||
{"-B", OPT_BATCH, 0}
|
||||
,
|
||||
{"--batch", OPT_BATCH, 0}
|
||||
@@ -255,6 +257,10 @@ optspec_t flexopts[] = {
|
||||
,
|
||||
{"--noyyset_lineno", OPT_NO_YYSET_LINENO, 0}
|
||||
,
|
||||
{"--noyyget_column", OPT_NO_YYGET_COLUMN, 0}
|
||||
,
|
||||
{"--noyyset_column", OPT_NO_YYSET_COLUMN, 0}
|
||||
,
|
||||
{"--noyyget_in", OPT_NO_YYGET_IN, 0}
|
||||
,
|
||||
{"--noyyset_in", OPT_NO_YYSET_IN, 0}
|
||||
|
||||
@@ -46,6 +46,7 @@ enum flexopt_flag_t {
|
||||
OPT_ALWAYS_INTERACTIVE,
|
||||
OPT_ARRAY,
|
||||
OPT_BACKUP,
|
||||
OPT_BACKUP_FILE,
|
||||
OPT_BATCH,
|
||||
OPT_BISON_BRIDGE,
|
||||
OPT_BISON_BRIDGE_LOCATIONS,
|
||||
@@ -83,6 +84,7 @@ enum flexopt_flag_t {
|
||||
OPT_NO_YYGET_IN,
|
||||
OPT_NO_YYGET_LENG,
|
||||
OPT_NO_YYGET_LINENO,
|
||||
OPT_NO_YYGET_COLUMN,
|
||||
OPT_NO_YYGET_LLOC,
|
||||
OPT_NO_YYGET_LVAL,
|
||||
OPT_NO_YYGET_OUT,
|
||||
@@ -92,6 +94,7 @@ enum flexopt_flag_t {
|
||||
OPT_NO_YYSET_EXTRA,
|
||||
OPT_NO_YYSET_IN,
|
||||
OPT_NO_YYSET_LINENO,
|
||||
OPT_NO_YYSET_COLUMN,
|
||||
OPT_NO_YYSET_LLOC,
|
||||
OPT_NO_YYSET_LVAL,
|
||||
OPT_NO_YYSET_OUT,
|
||||
|
||||
@@ -25,10 +25,8 @@
|
||||
|
||||
|
||||
static const char* REGEXP_LINEDIR = "^#line ([[:digit:]]+) \"(.*)\"";
|
||||
static const char* REGEXP_BLANK_LINE = "^[[:space:]]*$";
|
||||
|
||||
regex_t regex_linedir; /**< matches line directives */
|
||||
regex_t regex_blank_line; /**< matches blank lines */
|
||||
|
||||
|
||||
/** Initialize the regular expressions.
|
||||
@@ -37,8 +35,6 @@ regex_t regex_blank_line; /**< matches blank lines */
|
||||
bool flex_init_regex(void)
|
||||
{
|
||||
flex_regcomp(®ex_linedir, REGEXP_LINEDIR, REG_EXTENDED);
|
||||
flex_regcomp(®ex_blank_line, REGEXP_BLANK_LINE, REG_EXTENDED);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
+20
-13
@@ -1,5 +1,11 @@
|
||||
/* scan.l - scanner for flex input -*-C-*- */
|
||||
|
||||
%top{
|
||||
/* flexdef.h includes config.h, which may contain macros that alter the API */
|
||||
/* of libc functions. Must include first before any libc header. */
|
||||
#include "flexdef.h"
|
||||
}
|
||||
|
||||
%{
|
||||
/* Copyright (c) 1990 The Regents of the University of California. */
|
||||
/* All rights reserved. */
|
||||
@@ -32,7 +38,6 @@
|
||||
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
|
||||
/* PURPOSE. */
|
||||
|
||||
#include "flexdef.h"
|
||||
#include "parse.h"
|
||||
extern bool tablesverify, tablesext;
|
||||
extern int trlcontxt; /* Set in parse.y for each rule. */
|
||||
@@ -256,7 +261,7 @@ M4QEND "]""]"
|
||||
\n yy_pop_state();
|
||||
[[:digit:]]+ linenum = myctoi( yytext );
|
||||
|
||||
\"[^"\n]*\" {
|
||||
"\""[^""\n]*"\"" {
|
||||
free(infilename);
|
||||
infilename = xstrdup(yytext + 1);
|
||||
infilename[strlen( infilename ) - 1] = '\0';
|
||||
@@ -433,6 +438,8 @@ M4QEND "]""]"
|
||||
yyset_extra ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense);
|
||||
yyget_leng ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense);
|
||||
yyget_text ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense);
|
||||
yyget_column ACTION_M4_IFDEF("M4""_YY_NO_GET_COLUMN", ! option_sense);
|
||||
yyset_column ACTION_M4_IFDEF("M4""_YY_NO_SET_COLUMN", ! option_sense);
|
||||
yyget_lineno ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense);
|
||||
yyset_lineno ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense);
|
||||
yyget_in ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense);
|
||||
@@ -457,7 +464,7 @@ M4QEND "]""]"
|
||||
}
|
||||
|
||||
|
||||
\"[^"\n]*\" {
|
||||
"\""[^""\n]*"\"" {
|
||||
if(yyleng-1 < MAXLINE)
|
||||
{
|
||||
strncpy( nmstr, yytext + 1, sizeof(nmstr) );
|
||||
@@ -527,7 +534,7 @@ M4QEND "]""]"
|
||||
return '<';
|
||||
}
|
||||
^{OPTWS}"^" return '^';
|
||||
\" BEGIN(QUOTE); return '"';
|
||||
"\"" BEGIN(QUOTE); return '"';
|
||||
"{"/[[:digit:]] {
|
||||
BEGIN(NUM);
|
||||
if ( lex_compat || posix_compat )
|
||||
@@ -793,8 +800,8 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
|
||||
|
||||
|
||||
<QUOTE>{
|
||||
[^"\n] RETURNCHAR;
|
||||
\" BEGIN(SECT2); return '"';
|
||||
[^""\n] RETURNCHAR;
|
||||
"\"" BEGIN(SECT2); return '"';
|
||||
|
||||
{NL} {
|
||||
synerr( _( "missing quote" ) );
|
||||
@@ -934,11 +941,11 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
|
||||
<ACTION>{
|
||||
"{" ACTION_ECHO; ++bracelevel;
|
||||
"}" ACTION_ECHO; --bracelevel;
|
||||
[^[:alpha:]_{}\"'/\n\[\]]+ ACTION_ECHO;
|
||||
[^[:alpha:]_{}""''/\n\[\]]+ ACTION_ECHO;
|
||||
{NAME} ACTION_ECHO;
|
||||
"'"([^\'\\\n]|\\.)"'" ACTION_ECHO; /* character constant */
|
||||
"'"([^''\\\n]|\\.)"'" ACTION_ECHO; /* character constant */
|
||||
"'" ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
|
||||
\" ACTION_ECHO; BEGIN(ACTION_STRING);
|
||||
"\"" ACTION_ECHO; BEGIN(ACTION_STRING);
|
||||
{NL} {
|
||||
++linenum;
|
||||
ACTION_ECHO;
|
||||
@@ -954,12 +961,12 @@ nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */
|
||||
}
|
||||
|
||||
<ACTION_STRING>{
|
||||
[^\[\]\"\\\n]+ ACTION_ECHO;
|
||||
\" ACTION_ECHO; BEGIN(ACTION);
|
||||
[^\[\]""\\\n]+ ACTION_ECHO;
|
||||
"\"" ACTION_ECHO; BEGIN(ACTION);
|
||||
}
|
||||
<CHARACTER_CONSTANT>{
|
||||
[^\[\]\'\\\n]+ ACTION_ECHO;
|
||||
\' ACTION_ECHO; BEGIN(ACTION);
|
||||
[^\[\]''\\\n]+ ACTION_ECHO;
|
||||
"'" ACTION_ECHO; BEGIN(ACTION);
|
||||
}
|
||||
<ACTION_STRING,CHARACTER_CONSTANT>{
|
||||
(\\\n)* ACTION_ECHO;
|
||||
|
||||
+33
-72
@@ -68,7 +68,7 @@ static int PRINTLEN(struct _scanopt_t *, int);
|
||||
static int RVAL(struct _scanopt_t *, int);
|
||||
static int FLAGS(struct _scanopt_t *, int);
|
||||
static const char *DESC(struct _scanopt_t *, int);
|
||||
static int scanopt_err(struct _scanopt_t *, int, int);
|
||||
static void scanopt_err(struct _scanopt_t *, int, int);
|
||||
static int matchlongopt(char *, char **, int *, char **, int *);
|
||||
static int find_opt(struct _scanopt_t *, int, char *, int, int *, int *opt_offset);
|
||||
|
||||
@@ -229,34 +229,23 @@ typedef struct usg_elem usg_elem;
|
||||
int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
|
||||
{
|
||||
struct _scanopt_t *s;
|
||||
int i, columns, indent = 2;
|
||||
int i, columns;
|
||||
const int indent = 2;
|
||||
usg_elem *byr_val = NULL; /* option indices sorted by r_val */
|
||||
usg_elem *store; /* array of preallocated elements. */
|
||||
int store_idx = 0;
|
||||
usg_elem *ue;
|
||||
int maxlen[2];
|
||||
int desccol = 0;
|
||||
int opt_col_width = 0, desc_col_width = 0;
|
||||
int desccol;
|
||||
int print_run = 0;
|
||||
|
||||
maxlen[0] = 0;
|
||||
maxlen[1] = 0;
|
||||
|
||||
s = (struct _scanopt_t *) scanner;
|
||||
|
||||
if (usage) {
|
||||
fprintf (fp, "%s\n", usage);
|
||||
}
|
||||
else {
|
||||
/* Find the basename of argv[0] */
|
||||
const char *p;
|
||||
|
||||
p = s->argv[0] + strlen (s->argv[0]);
|
||||
while (p != s->argv[0] && *p != '/')
|
||||
--p;
|
||||
if (*p == '/')
|
||||
p++;
|
||||
|
||||
fprintf (fp, _("Usage: %s [OPTIONS]...\n"), p);
|
||||
fprintf (fp, _("Usage: %s [OPTIONS]...\n"), s->argv[0]);
|
||||
}
|
||||
fprintf (fp, "\n");
|
||||
|
||||
@@ -324,65 +313,36 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
|
||||
/* first pass calculate how much room we need. */
|
||||
for (ue = byr_val; ue; ue = ue->next) {
|
||||
usg_elem *ap;
|
||||
int len = 0;
|
||||
int nshort = 0, nlong = 0;
|
||||
int len;
|
||||
|
||||
len = PRINTLEN(s, ue->idx);
|
||||
|
||||
#define CALC_LEN(i) do {\
|
||||
if(FLAGS(s,i) & IS_LONG) \
|
||||
len += (nlong++||nshort) ? 2+PRINTLEN(s,i) : PRINTLEN(s,i);\
|
||||
else\
|
||||
len += (nshort++||nlong)? 2+PRINTLEN(s,i) : PRINTLEN(s,i);\
|
||||
}while(0)
|
||||
|
||||
if (!(FLAGS (s, ue->idx) & IS_LONG))
|
||||
CALC_LEN (ue->idx);
|
||||
|
||||
/* do short aliases first. */
|
||||
for (ap = ue->alias; ap; ap = ap->next) {
|
||||
if (FLAGS (s, ap->idx) & IS_LONG)
|
||||
continue;
|
||||
CALC_LEN (ap->idx);
|
||||
len += PRINTLEN(s, ap->idx) + (int) strlen(", ");
|
||||
}
|
||||
|
||||
if (FLAGS (s, ue->idx) & IS_LONG)
|
||||
CALC_LEN (ue->idx);
|
||||
|
||||
/* repeat the above loop, this time for long aliases. */
|
||||
for (ap = ue->alias; ap; ap = ap->next) {
|
||||
if (!(FLAGS (s, ap->idx) & IS_LONG))
|
||||
continue;
|
||||
CALC_LEN (ap->idx);
|
||||
}
|
||||
|
||||
if (len > maxlen[0])
|
||||
maxlen[0] = len;
|
||||
if (len > opt_col_width)
|
||||
opt_col_width = len;
|
||||
|
||||
/* It's much easier to calculate length for description column! */
|
||||
len = (int) strlen (DESC (s, ue->idx));
|
||||
if (len > maxlen[1])
|
||||
maxlen[1] = len;
|
||||
if (len > desc_col_width)
|
||||
desc_col_width = len;
|
||||
}
|
||||
|
||||
/* Determine how much room we have, and how much we will allocate to each col.
|
||||
* Do not address pathological cases. Output will just be ugly. */
|
||||
columns = get_cols () - 1;
|
||||
if (maxlen[0] + maxlen[1] + indent * 2 > columns) {
|
||||
/* col 0 gets whatever it wants. we'll wrap the desc col. */
|
||||
maxlen[1] = columns - (maxlen[0] + indent * 2);
|
||||
if (maxlen[1] < 14) /* 14 is arbitrary lower limit on desc width. */
|
||||
maxlen[1] = INT_MAX;
|
||||
if (opt_col_width + desc_col_width + indent * 2 > columns) {
|
||||
/* opt col gets whatever it wants. we'll wrap the desc col. */
|
||||
desc_col_width = columns - (opt_col_width + indent * 2);
|
||||
if (desc_col_width < 14) /* 14 is arbitrary lower limit on desc width. */
|
||||
desc_col_width = INT_MAX;
|
||||
}
|
||||
desccol = maxlen[0] + indent * 2;
|
||||
|
||||
#define PRINT_SPACES(fp,n)\
|
||||
do{\
|
||||
int _n;\
|
||||
_n=(n);\
|
||||
while(_n-- > 0)\
|
||||
fputc(' ',(fp));\
|
||||
}while(0)
|
||||
desccol = opt_col_width + indent * 2;
|
||||
|
||||
#define PRINT_SPACES(fp,n) \
|
||||
fprintf((fp), "%*s", (n), "")
|
||||
|
||||
/* Second pass (same as above loop), this time we print. */
|
||||
/* Sloppy hack: We iterate twice. The first time we print short and long options.
|
||||
@@ -436,7 +396,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
|
||||
/* pad to desccol */
|
||||
PRINT_SPACES (fp, desccol - nchars);
|
||||
|
||||
/* Print description, wrapped to maxlen[1] columns. */
|
||||
/* Print description, wrapped to desc_col_width columns. */
|
||||
if (1) {
|
||||
const char *pstart;
|
||||
|
||||
@@ -447,7 +407,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
|
||||
|
||||
p = pstart;
|
||||
|
||||
while (*p && n < maxlen[1]
|
||||
while (*p && n < desc_col_width
|
||||
&& *p != '\n') {
|
||||
if (isspace ((unsigned char)(*p))
|
||||
|| *p == '-') lastws =
|
||||
@@ -497,7 +457,7 @@ int scanopt_usage (scanopt_t *scanner, FILE *fp, const char *usage)
|
||||
#endif /* no scanopt_usage */
|
||||
|
||||
|
||||
static int scanopt_err (struct _scanopt_t *s, int is_short, int err)
|
||||
static void scanopt_err(struct _scanopt_t *s, int is_short, int err)
|
||||
{
|
||||
const char *optname = "";
|
||||
char optchar[2];
|
||||
@@ -542,7 +502,6 @@ static int scanopt_err (struct _scanopt_t *s, int is_short, int err)
|
||||
break;
|
||||
}
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
@@ -729,7 +688,8 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
|
||||
|
||||
if (!find_opt
|
||||
(s, 0, pstart, namelen, &errcode, &opt_offset)) {
|
||||
return scanopt_err (s, 1, errcode);
|
||||
scanopt_err(s, 1, errcode);
|
||||
return errcode;
|
||||
}
|
||||
|
||||
optarg = pstart + 1;
|
||||
@@ -748,8 +708,7 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
|
||||
|
||||
/* Look ahead in argv[] to see if there is something
|
||||
* that we can use as an argument (if needed). */
|
||||
has_next = s->index + 1 < s->argc
|
||||
&& strcmp ("--", s->argv[s->index + 1]) != 0;
|
||||
has_next = s->index + 1 < s->argc;
|
||||
|
||||
optp = s->options + opt_offset;
|
||||
auxp = s->aux + opt_offset;
|
||||
@@ -757,9 +716,9 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
|
||||
/* case: no args allowed */
|
||||
if (auxp->flags & ARG_NONE) {
|
||||
if (optarg && !is_short) {
|
||||
scanopt_err (s, is_short, errcode = SCANOPT_ERR_ARG_NOT_ALLOWED);
|
||||
scanopt_err(s, is_short, SCANOPT_ERR_ARG_NOT_ALLOWED);
|
||||
INC_INDEX (s, 1);
|
||||
return errcode;
|
||||
return SCANOPT_ERR_ARG_NOT_ALLOWED;
|
||||
}
|
||||
else if (!optarg)
|
||||
INC_INDEX (s, 1);
|
||||
@@ -770,8 +729,10 @@ int scanopt (scanopt_t *svoid, char **arg, int *optindex)
|
||||
|
||||
/* case: required */
|
||||
if (auxp->flags & ARG_REQ) {
|
||||
if (!optarg && !has_next)
|
||||
return scanopt_err (s, is_short, SCANOPT_ERR_ARG_NOT_FOUND);
|
||||
if (!optarg && !has_next) {
|
||||
scanopt_err(s, is_short, SCANOPT_ERR_ARG_NOT_FOUND);
|
||||
return SCANOPT_ERR_ARG_NOT_FOUND;
|
||||
}
|
||||
|
||||
if (!optarg) {
|
||||
/* Let the next argv element become the argument. */
|
||||
|
||||
+4
-4
@@ -87,7 +87,7 @@ int yytbl_hdr_init (struct yytbl_hdr *th, const char *version_str,
|
||||
|
||||
th->th_magic = YYTBL_MAGIC;
|
||||
th->th_hsize = (flex_uint32_t) (14 + strlen (version_str) + 1 + strlen (name) + 1);
|
||||
th->th_hsize += yypad64 (th->th_hsize);
|
||||
th->th_hsize += (8 - (th->th_hsize % 8)) % 8; // Pad to 64-bit boundary
|
||||
th->th_ssize = 0; // Not known at this point.
|
||||
th->th_flags = 0;
|
||||
th->th_version = xstrdup(version_str);
|
||||
@@ -124,14 +124,14 @@ int yytbl_data_destroy (struct yytbl_data *td)
|
||||
/** Write enough padding to bring the file pointer to a 64-bit boundary. */
|
||||
static int yytbl_write_pad64 (struct yytbl_writer *wr)
|
||||
{
|
||||
int pad, bwritten = 0;
|
||||
int bwritten = 0;
|
||||
|
||||
pad = yypad64 (wr->total_written);
|
||||
while (pad-- > 0)
|
||||
while (wr->total_written % (8 * sizeof(flex_uint8_t)) > 0) {
|
||||
if (yytbl_write8 (wr, 0) < 0)
|
||||
return -1;
|
||||
else
|
||||
bwritten++;
|
||||
}
|
||||
return bwritten;
|
||||
}
|
||||
|
||||
|
||||
@@ -63,12 +63,6 @@ dnl flex code (hence the name "_shared").
|
||||
#define YYTBL_MAGIC 0xF13C57B1
|
||||
#endif
|
||||
|
||||
/** Calculate (0-7) = number bytes needed to pad n to next 64-bit boundary. */
|
||||
#ifndef yypad64
|
||||
#define yypad64(n) ((8-((n)%8))%8)
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef YYTABLES_TYPES
|
||||
#define YYTABLES_TYPES
|
||||
/** Possible values for td_id field. Each one corresponds to a
|
||||
|
||||
+18
-15
@@ -265,6 +265,7 @@ CLEANFILES = \
|
||||
$(tableopts_tables)
|
||||
|
||||
dist-hook:
|
||||
chmod u+w $(distdir) && \
|
||||
for file in $(CLEANFILES) ; do \
|
||||
rm -f $(distdir)/$$file \
|
||||
; done
|
||||
@@ -333,13 +334,15 @@ pthread_pthread_LDADD = @LIBPTHREAD@
|
||||
|
||||
# specify how to process .l files in order to test the flex built by make all
|
||||
|
||||
TESTOPTS = -L
|
||||
|
||||
FLEX = $(top_builddir)/src/flex
|
||||
|
||||
.l.c: $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ $<
|
||||
|
||||
.ll.cc: $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) -+ -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -+ -o $@ $<
|
||||
|
||||
bison_nr_main.$(OBJEXT): bison_nr_parser.h bison_nr_scanner.h
|
||||
bison_nr_scanner.$(OBJEXT): bison_nr_parser.h
|
||||
@@ -366,7 +369,7 @@ bison_yylval_scanner.h: bison_yylval_scanner.c
|
||||
# so we explicitly sayhow, using the .lll suffix for the lex input file
|
||||
|
||||
.lll.cc: $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ $<
|
||||
|
||||
header_nr_main.$(OBJEXT): header_nr_scanner.h
|
||||
|
||||
@@ -401,16 +404,16 @@ multiple_scanners_r_2.h: multiple_scanners_r_2.c
|
||||
@if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) $<; else :; fi
|
||||
|
||||
posixly_correct.c: posixly_correct.l $(FLEX)
|
||||
$(AM_V_LEX)POSIXLY_CORRECT=1 $(FLEX) -o $@ $<
|
||||
$(AM_V_LEX)POSIXLY_CORRECT=1 $(FLEX) $(TESTOPTS) -o $@ $<
|
||||
|
||||
reject_nr.reject.c: reject.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -o $@ $<
|
||||
|
||||
reject_nr.reject$(EXEEXT): reject_nr.reject.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $^
|
||||
|
||||
reject_r.reject.c: reject.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape --reentrant -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape --reentrant -o $@ $<
|
||||
|
||||
reject_r.reject.$(OBJEXT): reject_r.reject.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
@@ -419,7 +422,7 @@ reject_r.reject$(EXEEXT): reject_r.reject.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $^
|
||||
|
||||
reject_ver.table.c: reject.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -o $@ --tables-verify --tables-file=$(basename $@).tables $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -o $@ --tables-verify --tables-file=$(basename $@).tables $<
|
||||
|
||||
reject_ver.table.$(OBJEXT): reject_ver.table.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
|
||||
@@ -428,7 +431,7 @@ reject_ver.table$(EXEEXT): reject_ver.table.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $^
|
||||
|
||||
reject_ser.table.c: reject.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) -o $@ --unsafe-no-m4-sect3-escape --tables-file=$(basename $@).tables $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) -o $@ --unsafe-no-m4-sect3-escape --tables-file=$(basename $@).tables $<
|
||||
|
||||
reject_ser.table.$(OBJEXT): reject_ser.table.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
|
||||
@@ -445,7 +448,7 @@ top.h: top.c
|
||||
# things) and the resultant list is both long an unenlightening. And
|
||||
# it can be / is generated by a shell script, tableopts.sh.
|
||||
|
||||
tableopts.am: tableopts.sh
|
||||
$(srcdir)/tableopts.am: tableopts.sh
|
||||
$(SHELL) $(srcdir)/tableopts.sh > $(srcdir)/tableopts.am
|
||||
|
||||
include $(srcdir)/tableopts.am
|
||||
@@ -462,13 +465,13 @@ OPT_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
|
||||
AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r
|
||||
|
||||
tableopts_opt_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) $(*:_F=F) -o $@ $<
|
||||
|
||||
tableopts_opt_nr%.$(OBJEXT): tableopts_opt_nr%.c
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
|
||||
tableopts_opt_r%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --reentrant $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --reentrant $(subst _F,F,$*) -o $@ $<
|
||||
|
||||
tableopts_opt_r%.$(OBJEXT): tableopts_opt_r%.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
@@ -477,13 +480,13 @@ SER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
|
||||
AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
|
||||
|
||||
tableopts_ser_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $(subst _F,F,$*) -o $@ $<
|
||||
|
||||
tableopts_ser_nr%.$(OBJEXT): tableopts_ser_nr%.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
|
||||
|
||||
tableopts_ser_r%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $(subst _F,F,$*) -o $@ $<
|
||||
|
||||
tableopts_ser_r%.$(OBJEXT): tableopts_ser_r%.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
@@ -492,7 +495,7 @@ VER_LOG_COMPILER = $(SHELL) $(srcdir)/testwrapper.sh
|
||||
AM_VER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
|
||||
|
||||
tableopts_ver_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
|
||||
|
||||
tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
|
||||
@@ -501,7 +504,7 @@ tableopts_ver_nr%.ver$(EXEEXT): tableopts_ver_nr%.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $^
|
||||
|
||||
tableopts_ver_r%.c: tableopts.l4 $(FLEX)
|
||||
$(AM_V_LEX)$(FLEX) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $* -o $@ $<
|
||||
$(AM_V_LEX)$(FLEX) $(TESTOPTS) --unsafe-no-m4-sect3-escape -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $(subst _F,F,$*) -o $@ $<
|
||||
|
||||
tableopts_ver_r%.$(OBJEXT): tableopts_ver_r%.c
|
||||
$(AM_V_CC)$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
|
||||
+92
-92
@@ -1,333 +1,333 @@
|
||||
tableopts_opt_nr_Ca_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Ca.opt$(EXEEXT): tableopts_opt_nr-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Ce_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Ce.opt$(EXEEXT): tableopts_opt_nr-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Cf_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Cf.opt$(EXEEXT): tableopts_opt_nr-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_CF_opt_SOURCES = tableopts.l4
|
||||
tableopts_opt_nr_C_F_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-CF.opt$(EXEEXT): tableopts_opt_nr-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_opt_nr-C_F.opt$(EXEEXT): tableopts_opt_nr-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Cm_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Cm.opt$(EXEEXT): tableopts_opt_nr-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Cem_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Cem.opt$(EXEEXT): tableopts_opt_nr-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Cae_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Cae.opt$(EXEEXT): tableopts_opt_nr-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Caef_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Caef.opt$(EXEEXT): tableopts_opt_nr-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_CaeF_opt_SOURCES = tableopts.l4
|
||||
tableopts_opt_nr_Cae_F_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-CaeF.opt$(EXEEXT): tableopts_opt_nr-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_opt_nr-Cae_F.opt$(EXEEXT): tableopts_opt_nr-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Cam_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Cam.opt$(EXEEXT): tableopts_opt_nr-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_nr_Caem_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_nr-Caem.opt$(EXEEXT): tableopts_opt_nr-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Ca_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Ca.opt$(EXEEXT): tableopts_opt_r-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Ce_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Ce.opt$(EXEEXT): tableopts_opt_r-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Cf_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Cf.opt$(EXEEXT): tableopts_opt_r-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_CF_opt_SOURCES = tableopts.l4
|
||||
tableopts_opt_r_C_F_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-CF.opt$(EXEEXT): tableopts_opt_r-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_opt_r-C_F.opt$(EXEEXT): tableopts_opt_r-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Cm_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Cm.opt$(EXEEXT): tableopts_opt_r-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Cem_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Cem.opt$(EXEEXT): tableopts_opt_r-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Cae_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Cae.opt$(EXEEXT): tableopts_opt_r-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Caef_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Caef.opt$(EXEEXT): tableopts_opt_r-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_CaeF_opt_SOURCES = tableopts.l4
|
||||
tableopts_opt_r_Cae_F_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-CaeF.opt$(EXEEXT): tableopts_opt_r-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_opt_r-Cae_F.opt$(EXEEXT): tableopts_opt_r-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Cam_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Cam.opt$(EXEEXT): tableopts_opt_r-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_opt_r_Caem_opt_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_opt_r-Caem.opt$(EXEEXT): tableopts_opt_r-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Ca_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Ca.ser$(EXEEXT): tableopts_ser_nr-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Ce_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Ce.ser$(EXEEXT): tableopts_ser_nr-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Cf_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Cf.ser$(EXEEXT): tableopts_ser_nr-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_CF_ser_SOURCES = tableopts.l4
|
||||
tableopts_ser_nr_C_F_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-CF.ser$(EXEEXT): tableopts_ser_nr-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ser_nr-C_F.ser$(EXEEXT): tableopts_ser_nr-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Cm_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Cm.ser$(EXEEXT): tableopts_ser_nr-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Cem_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Cem.ser$(EXEEXT): tableopts_ser_nr-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Cae_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Cae.ser$(EXEEXT): tableopts_ser_nr-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Caef_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Caef.ser$(EXEEXT): tableopts_ser_nr-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_CaeF_ser_SOURCES = tableopts.l4
|
||||
tableopts_ser_nr_Cae_F_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-CaeF.ser$(EXEEXT): tableopts_ser_nr-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ser_nr-Cae_F.ser$(EXEEXT): tableopts_ser_nr-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Cam_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Cam.ser$(EXEEXT): tableopts_ser_nr-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_nr_Caem_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_nr-Caem.ser$(EXEEXT): tableopts_ser_nr-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Ca_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Ca.ser$(EXEEXT): tableopts_ser_r-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Ce_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Ce.ser$(EXEEXT): tableopts_ser_r-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Cf_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Cf.ser$(EXEEXT): tableopts_ser_r-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_CF_ser_SOURCES = tableopts.l4
|
||||
tableopts_ser_r_C_F_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-CF.ser$(EXEEXT): tableopts_ser_r-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ser_r-C_F.ser$(EXEEXT): tableopts_ser_r-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Cm_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Cm.ser$(EXEEXT): tableopts_ser_r-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Cem_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Cem.ser$(EXEEXT): tableopts_ser_r-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Cae_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Cae.ser$(EXEEXT): tableopts_ser_r-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Caef_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Caef.ser$(EXEEXT): tableopts_ser_r-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_CaeF_ser_SOURCES = tableopts.l4
|
||||
tableopts_ser_r_Cae_F_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-CaeF.ser$(EXEEXT): tableopts_ser_r-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ser_r-Cae_F.ser$(EXEEXT): tableopts_ser_r-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Cam_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Cam.ser$(EXEEXT): tableopts_ser_r-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ser_r_Caem_ser_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ser_r-Caem.ser$(EXEEXT): tableopts_ser_r-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Ca_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Ca.ver$(EXEEXT): tableopts_ver_nr-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Ce_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Ce.ver$(EXEEXT): tableopts_ver_nr-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Cf_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Cf.ver$(EXEEXT): tableopts_ver_nr-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_CF_ver_SOURCES = tableopts.l4
|
||||
tableopts_ver_nr_C_F_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-CF.ver$(EXEEXT): tableopts_ver_nr-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ver_nr-C_F.ver$(EXEEXT): tableopts_ver_nr-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Cm_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Cm.ver$(EXEEXT): tableopts_ver_nr-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Cem_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Cem.ver$(EXEEXT): tableopts_ver_nr-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Cae_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Cae.ver$(EXEEXT): tableopts_ver_nr-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Caef_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Caef.ver$(EXEEXT): tableopts_ver_nr-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_CaeF_ver_SOURCES = tableopts.l4
|
||||
tableopts_ver_nr_Cae_F_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-CaeF.ver$(EXEEXT): tableopts_ver_nr-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ver_nr-Cae_F.ver$(EXEEXT): tableopts_ver_nr-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Cam_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Cam.ver$(EXEEXT): tableopts_ver_nr-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_nr_Caem_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_nr-Caem.ver$(EXEEXT): tableopts_ver_nr-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Ca_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Ca.ver$(EXEEXT): tableopts_ver_r-Ca.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Ce_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Ce.ver$(EXEEXT): tableopts_ver_r-Ce.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Cf_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Cf.ver$(EXEEXT): tableopts_ver_r-Cf.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_CF_ver_SOURCES = tableopts.l4
|
||||
tableopts_ver_r_C_F_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-CF.ver$(EXEEXT): tableopts_ver_r-CF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ver_r-C_F.ver$(EXEEXT): tableopts_ver_r-C_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Cm_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Cm.ver$(EXEEXT): tableopts_ver_r-Cm.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Cem_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Cem.ver$(EXEEXT): tableopts_ver_r-Cem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Cae_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Cae.ver$(EXEEXT): tableopts_ver_r-Cae.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Caef_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Caef.ver$(EXEEXT): tableopts_ver_r-Caef.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_CaeF_ver_SOURCES = tableopts.l4
|
||||
tableopts_ver_r_Cae_F_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-CaeF.ver$(EXEEXT): tableopts_ver_r-CaeF.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
tableopts_ver_r-Cae_F.ver$(EXEEXT): tableopts_ver_r-Cae_F.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Cam_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Cam.ver$(EXEEXT): tableopts_ver_r-Cam.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
tableopts_ver_r_Caem_ver_SOURCES = tableopts.l4
|
||||
|
||||
tableopts_ver_r-Caem.ver$(EXEEXT): tableopts_ver_r-Caem.$(OBJEXT)
|
||||
$(AM_V_CCLD)$(LINK) -o $@ $<
|
||||
$(AM_V_CCLD)$(LINK) $<
|
||||
|
||||
TABLEOPTS_TESTS = tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-CF.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-CaeF.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-CF.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-CaeF.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-CF.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-CaeF.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-CF.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-CaeF.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-CF.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-CaeF.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-CF.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-CaeF.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver
|
||||
TABLEOPTS_TESTS = tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-C_F.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-Cae_F.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-C_F.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-Cae_F.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-C_F.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-Cae_F.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-C_F.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-Cae_F.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-C_F.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-Cae_F.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-C_F.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-Cae_F.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver
|
||||
|
||||
tableopts_tables = tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-CF.ser.tables tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-CaeF.ser.tables tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser.tables tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser.tables tableopts_ser_r-CF.ser.tables tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser.tables tableopts_ser_r-CaeF.ser.tables tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser.tables tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-CF.ver.tables tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-CaeF.ver.tables tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver.tables tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver.tables tableopts_ver_r-CF.ver.tables tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver.tables tableopts_ver_r-CaeF.ver.tables tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver.tables
|
||||
tableopts_tables = tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-C_F.ser.tables tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-Cae_F.ser.tables tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser.tables tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser.tables tableopts_ser_r-C_F.ser.tables tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser.tables tableopts_ser_r-Cae_F.ser.tables tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser.tables tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-C_F.ver.tables tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-Cae_F.ver.tables tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver.tables tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver.tables tableopts_ver_r-C_F.ver.tables tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver.tables tableopts_ver_r-Cae_F.ver.tables tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver.tables
|
||||
|
||||
+7
-4
@@ -17,7 +17,11 @@ tableopts_tables=""
|
||||
for kind in opt ser ver ; do
|
||||
for threading in nr r ; do
|
||||
for opt in -Ca -Ce -Cf -CF -Cm -Cem -Cae -Caef -CaeF -Cam -Caem ; do
|
||||
testname=tableopts_${kind}_${threading}${opt}.${kind}
|
||||
bare_opt=${opt#-}
|
||||
# The filenames must work on case-insensitive filesystems.
|
||||
bare_opt=`echo ${bare_opt}| sed 's/F$/_F/'`
|
||||
|
||||
testname=tableopts_${kind}_${threading}-${bare_opt}.${kind}
|
||||
if [ "${TABLEOPTS_TESTS}" = "" ] ;then
|
||||
TABLEOPTS_TESTS=${testname}
|
||||
if [ "$kind" = "ser" ] || [ "$kind" = "ver" ] ; then
|
||||
@@ -30,12 +34,11 @@ for kind in opt ser ver ; do
|
||||
fi
|
||||
fi
|
||||
|
||||
bare_opt=${opt#-}
|
||||
cat << EOF
|
||||
tableopts_${kind}_${threading}_${bare_opt}_${kind}_SOURCES = tableopts.l4
|
||||
|
||||
${testname}\$(EXEEXT): tableopts_${kind}_${threading}${opt}.\$(OBJEXT)
|
||||
\$(AM_V_CCLD)\$(LINK) -o \$@ \$<
|
||||
${testname}\$(EXEEXT): tableopts_${kind}_${threading}-${bare_opt}.\$(OBJEXT)
|
||||
\$(AM_V_CCLD)\$(LINK) \$<
|
||||
|
||||
EOF
|
||||
done
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
set -vx
|
||||
echo 'set -euvx'
|
||||
set -euvx
|
||||
|
||||
# testwrapper-direct.sh: run some specialized flex tests that care where
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
set -vx
|
||||
echo 'set -euvx'
|
||||
set -euvx
|
||||
|
||||
# testwrapper.sh: run a flex test, typically called by a Makefile
|
||||
|
||||
Reference in New Issue
Block a user