Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83d5d1695a | ||
|
|
d34b6160af | ||
|
|
5263986825 | ||
|
|
54201ab377 | ||
|
|
0be145eea8 | ||
|
|
4864c4f23a | ||
|
|
83006c65f8 | ||
|
|
b54685ff22 | ||
|
|
589bb43094 | ||
|
|
b382a56bf3 | ||
|
|
461f987f09 | ||
|
|
a6ceb756d9 | ||
|
|
cf6cb4dce7 | ||
|
|
1f4c0e67fe | ||
|
|
336a1deaa5 | ||
|
|
5acd407ed4 | ||
|
|
b4b8b7ed81 | ||
|
|
5f23fc0033 | ||
|
|
4f2ae90b28 | ||
|
|
b6fa146a0f | ||
|
|
341bfbd389 |
@@ -3,7 +3,41 @@ changes between releases of flex.
|
||||
|
||||
See the file COPYING for copying conditions.
|
||||
|
||||
* version 2.6.0-pre
|
||||
* version 2.6.0 released 2015-11-17
|
||||
|
||||
** User Visible Changes
|
||||
|
||||
*** C++ scanners now use references instead of pointers. See the manual for details.
|
||||
|
||||
*** A number of compiler warnings were addressed, so flex generated scanners should be quieter under compiler warning scenarios.
|
||||
|
||||
*** Allow error reporting routines to accept varying number of arguments
|
||||
|
||||
*** Removed deprecated 'register' storage class specifier
|
||||
|
||||
*** Changeed output formats from octal to hexadecimal
|
||||
|
||||
*** check limits before using array index cclp; resolves sf-166
|
||||
|
||||
*** Suppress clang warning about empty @param paragraph; resolves sf#158
|
||||
|
||||
*** Fixed malloc/realloc replacement, resolves sf bug#151.
|
||||
|
||||
*** Adjusted buffer sizes on ia64.
|
||||
|
||||
*** various documentation and code clean up fixes: resolves sf bugs #167, #168, among other patches.
|
||||
|
||||
** Flex Internals
|
||||
|
||||
*** flex is now organized into subdirectories. This keeps the tree neater at the top level and puts like things near each other and unlike things away from each other.
|
||||
|
||||
*** The test suite has been reorganized and is now run with the parallel test suite harness from automake.
|
||||
|
||||
*** Cleaned up the automake parts of the build system to better reflect what automake does on its own. Also added a call to libtoolize in autogen.sh because autoreconf gets confused without a prior run of libtoolize.
|
||||
|
||||
*** po/Makefile now includes a rule to fetch the latest translations from the translation project. "make -f po/Makefile getpo" from the top level of the flex tree will fetch the files.
|
||||
|
||||
*** New da translation from the translation project
|
||||
|
||||
* flex version 2.5.39 released 2014-03-26
|
||||
|
||||
|
||||
+2
-1
@@ -29,4 +29,5 @@
|
||||
#Makefile first.)
|
||||
|
||||
touch ChangeLog
|
||||
autoreconf --install --verbose --force
|
||||
libtoolize --install --force
|
||||
autoreconf --install --force
|
||||
|
||||
+2
-2
@@ -24,15 +24,15 @@
|
||||
|
||||
# autoconf requirements and initialization
|
||||
|
||||
AC_INIT([the fast lexical analyser generator], [2.6.0-pre],
|
||||
AC_INIT([the fast lexical analyser generator], [2.6.0],
|
||||
[flex-help@lists.sourceforge.net], [flex])
|
||||
AC_CONFIG_SRCDIR([src/scan.l])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
LT_INIT
|
||||
AM_INIT_AUTOMAKE([gnu check-news std-options dist-bzip2 dist-xz parallel-tests 1.14.1])
|
||||
AC_CONFIG_HEADER([src/config.h])
|
||||
AC_CONFIG_LIBOBJ_DIR([lib])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
LT_INIT
|
||||
SHARED_VERSION_INFO="2:0:0"
|
||||
AC_SUBST(SHARED_VERSION_INFO)
|
||||
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ CLEANFILES = \
|
||||
flex.vr \
|
||||
flex.vrs
|
||||
|
||||
$(dist_man_MANS): $(top_srcdir)/src/main.c
|
||||
$(dist_man_MANS): $(top_srcdir)/configure.ac $(top_srcdir)/src/flex.skl $(top_srcdir)/src/options.c $(top_srcdir)/src/options.h
|
||||
for i in $(dist_man_MANS) ; do \
|
||||
$(help2man) --name='$(PACKAGE_NAME)' \
|
||||
--section=`echo $$i | sed -e 's/.*\.\([^.]*\)$$/\1/'` \
|
||||
|
||||
+16
-7
@@ -3764,8 +3764,7 @@ defaults to generating the scanner to the file @file{lex.yy.cc} instead
|
||||
of @file{lex.yy.c}. The generated scanner includes the header file
|
||||
@file{FlexLexer.h}, which defines the interface to two C++ classes.
|
||||
|
||||
The first class,
|
||||
@code{FlexLexer},
|
||||
The first class in @file{FlexLexer.h}, @code{FlexLexer},
|
||||
provides an abstract base class defining the general scanner class
|
||||
interface. It provides the following member functions:
|
||||
|
||||
@@ -3799,10 +3798,10 @@ returns the current setting of the debugging flag.
|
||||
|
||||
Also provided are member functions equivalent to
|
||||
@code{yy_switch_to_buffer()}, @code{yy_create_buffer()} (though the
|
||||
first argument is an @code{istream*} object pointer and not a
|
||||
first argument is an @code{istream&} object reference and not a
|
||||
@code{FILE*)}, @code{yy_flush_buffer()}, @code{yy_delete_buffer()}, and
|
||||
@code{yyrestart()} (again, the first argument is a @code{istream*}
|
||||
object pointer).
|
||||
@code{yyrestart()} (again, the first argument is a @code{istream&}
|
||||
object reference).
|
||||
|
||||
@tindex yyFlexLexer (C++ only)
|
||||
@tindex FlexLexer (C++ only)
|
||||
@@ -3813,9 +3812,12 @@ additional member functions:
|
||||
@table @code
|
||||
@findex yyFlexLexer constructor (C++ only)
|
||||
@item yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 )
|
||||
@item yyFlexLexer( istream& arg_yyin, ostream& arg_yyout )
|
||||
constructs a @code{yyFlexLexer} object using the given streams for input
|
||||
and output. If not specified, the streams default to @code{cin} and
|
||||
@code{cout}, respectively.
|
||||
@code{cout}, respectively. @code{yyFlexLexer} does not take ownership of
|
||||
its stream arguments. It's up to the user to ensure the streams pointed
|
||||
to remain alive at least as long as the @code{yyFlexLexer} instance.
|
||||
|
||||
@findex yylex (C++ version)
|
||||
@item virtual int yylex()
|
||||
@@ -3832,11 +3834,13 @@ instead of @code{yyFlexLexer}. In this case, rather than generating
|
||||
|
||||
@findex switch_streams (C++ only)
|
||||
@item virtual void switch_streams(istream* new_in = 0, ostream* new_out = 0)
|
||||
@item virtual void switch_streams(istream& new_in, ostream& new_out)
|
||||
reassigns @code{yyin} to @code{new_in} (if non-null) and @code{yyout} to
|
||||
@code{new_out} (if non-null), deleting the previous input buffer if
|
||||
@code{yyin} is reassigned.
|
||||
|
||||
@item int yylex( istream* new_in, ostream* new_out = 0 )
|
||||
@item int yylex( istream& new_in, ostream& new_out )
|
||||
first switches the input streams via @code{switch_streams( new_in,
|
||||
new_out )} and then returns the value of @code{yylex()}.
|
||||
@end table
|
||||
@@ -3893,7 +3897,7 @@ Here is an example of a simple C++ scanner:
|
||||
int mylineno = 0;
|
||||
%}
|
||||
|
||||
%option noyywrap
|
||||
%option noyywrap c++
|
||||
|
||||
string \"[^\n"]+\"
|
||||
|
||||
@@ -3938,6 +3942,9 @@ Here is an example of a simple C++ scanner:
|
||||
|
||||
%%
|
||||
|
||||
// This include is required if main() is an another source file.
|
||||
//#include <FlexLexer.h>
|
||||
|
||||
int main( int /* argc */, char** /* argv */ )
|
||||
{
|
||||
FlexLexer* lexer = new yyFlexLexer;
|
||||
@@ -4910,8 +4917,10 @@ custom allocator through @code{yyextra}.
|
||||
%option reentrant
|
||||
|
||||
/* Initialize the allocator. */
|
||||
%{
|
||||
#define YY_EXTRA_TYPE struct allocator*
|
||||
#define YY_USER_INIT yyextra = allocator_create();
|
||||
%}
|
||||
|
||||
%%
|
||||
.|\n ;
|
||||
|
||||
@@ -2,20 +2,37 @@
|
||||
# Copyright (C) 2007 The Flex Project (msgids)
|
||||
# This file is distributed under the same license as the flex package.
|
||||
# Johan Linde <jl@theophys.kth.se>, 1996.
|
||||
# Keld Simonsen <keld@keldix.com>, 2000-2011.
|
||||
# Keld Simonsen <keld@keldix.com>, 2000-2011, 2015.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: flex-2.5.35\n"
|
||||
"Project-Id-Version: flex-2.5.38\n"
|
||||
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
|
||||
"POT-Creation-Date: 2008-02-26 16:34-0500\n"
|
||||
"PO-Revision-Date: 2011-01-11 09:12+0100\n"
|
||||
"POT-Creation-Date: 2014-02-11 16:15-0500\n"
|
||||
"PO-Revision-Date: 2015-04-26 09:12+0200\n"
|
||||
"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=ISO-8859-1\n"
|
||||
"Content-Transfer-Encoding: 8-bit\n"
|
||||
|
||||
#: buf.c:78
|
||||
msgid "Allocation of buffer to print string failed"
|
||||
msgstr "Tildeling af buffer til udskrivningsstreng mislykkedes"
|
||||
|
||||
#: buf.c:100
|
||||
msgid "Allocation of buffer for line directive failed"
|
||||
msgstr "Tildeling af buffer til linjedirektiv mislykkedes"
|
||||
|
||||
#: buf.c:177
|
||||
msgid "Allocation of buffer for m4 def failed"
|
||||
msgstr "Tildeling af buffer til m4 def mislykkedes"
|
||||
|
||||
#: buf.c:197
|
||||
msgid "Allocation of buffer for m4 undef failed"
|
||||
msgstr "Tildeling af buffer til m4 undef mislykkedes"
|
||||
|
||||
#: dfa.c:61
|
||||
#, c-format
|
||||
msgid "State #%d is non-accepting -\n"
|
||||
@@ -75,7 +92,7 @@ msgstr "tilstand %d:\n"
|
||||
msgid "Could not write yynxt_tbl[][]"
|
||||
msgstr "Kunne ikke skrive yynxt_tbl[][]"
|
||||
|
||||
#: dfa.c:1052
|
||||
#: dfa.c:1049
|
||||
msgid "bad transition character detected in sympartition()"
|
||||
msgstr "forkert overgangstegn fundet i sympartition()"
|
||||
|
||||
@@ -159,353 +176,357 @@ msgstr "Kunne ikke skrive eoltbl"
|
||||
msgid "Could not write yynultrans_tbl"
|
||||
msgstr "Kunne ikke skrive yynultrans_tbl"
|
||||
|
||||
#: main.c:189
|
||||
#: main.c:191
|
||||
msgid "rule cannot be matched"
|
||||
msgstr "reglen kan ikke matches"
|
||||
|
||||
#: main.c:194
|
||||
#: main.c:196
|
||||
msgid "-s option given but default rule can be matched"
|
||||
msgstr "flaget -s angivet, men standardreglen kan følges"
|
||||
|
||||
#: main.c:234
|
||||
#: main.c:236
|
||||
msgid "Can't use -+ with -l option"
|
||||
msgstr "-+ kan ikke bruges sammen med flaget -l"
|
||||
|
||||
#: main.c:237
|
||||
#: main.c:239
|
||||
msgid "Can't use -f or -F with -l option"
|
||||
msgstr "-f eller -F kan ikke bruges sammen med -l"
|
||||
|
||||
#: main.c:241
|
||||
#: main.c:243
|
||||
msgid "Can't use --reentrant or --bison-bridge with -l option"
|
||||
msgstr "Kan ikke bruge --reentrant eller --bison-bridge sammen med flaget -l"
|
||||
|
||||
#: main.c:278
|
||||
#: main.c:275
|
||||
msgid "-Cf/-CF and -Cm don't make sense together"
|
||||
msgstr "-Cf/-CF og -Cm kan ikke bruges sammen"
|
||||
|
||||
#: main.c:281
|
||||
#: main.c:278
|
||||
msgid "-Cf/-CF and -I are incompatible"
|
||||
msgstr "-Cf/-CF og -I kan ikke bruges sammen"
|
||||
|
||||
#: main.c:285
|
||||
#: main.c:282
|
||||
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
|
||||
msgstr "-Cf/-CF kan ikke bruges i lex-kompatibilitetstilstand"
|
||||
|
||||
#: main.c:290
|
||||
#: main.c:287
|
||||
msgid "-Cf and -CF are mutually exclusive"
|
||||
msgstr "-Cf og -CF er gensidigt udelukkende"
|
||||
|
||||
#: main.c:294
|
||||
#: main.c:291
|
||||
msgid "Can't use -+ with -CF option"
|
||||
msgstr "-+ kan ikke bruges sammen med flaget -CF"
|
||||
|
||||
#: main.c:297
|
||||
#: main.c:294
|
||||
#, c-format
|
||||
msgid "%array incompatible with -+ option"
|
||||
msgstr "-+ kan ikke bruges sammen med %array"
|
||||
|
||||
#: main.c:302
|
||||
#: main.c:299
|
||||
msgid "Options -+ and --reentrant are mutually exclusive."
|
||||
msgstr "Flagene -+ og --reentrant er gensidigt udelukkende."
|
||||
|
||||
#: main.c:305
|
||||
#: main.c:302
|
||||
msgid "bison bridge not supported for the C++ scanner."
|
||||
msgstr "bisonbro understøttes ikke for C++-skanneren."
|
||||
|
||||
#: main.c:360 main.c:406
|
||||
#: main.c:357 main.c:403
|
||||
#, c-format
|
||||
msgid "could not create %s"
|
||||
msgstr "kunne ikke oprette %s"
|
||||
|
||||
#: main.c:419
|
||||
#: main.c:416
|
||||
msgid "could not write tables header"
|
||||
msgstr "kunne ikke skrive tabellhoved"
|
||||
|
||||
#: main.c:423
|
||||
#: main.c:420
|
||||
#, c-format
|
||||
msgid "can't open skeleton file %s"
|
||||
msgstr "kan ikke åbne skabelonfilen %s"
|
||||
|
||||
#: main.c:505
|
||||
#: main.c:456
|
||||
msgid "allocation of macro definition failed"
|
||||
msgstr "tildeling af makro-definition mislykkedes"
|
||||
|
||||
#: main.c:504
|
||||
#, c-format
|
||||
msgid "input error reading skeleton file %s"
|
||||
msgstr "fejl ved læsning af skabelonsfilen %s"
|
||||
|
||||
#: main.c:509
|
||||
#: main.c:508
|
||||
#, c-format
|
||||
msgid "error closing skeleton file %s"
|
||||
msgstr "fejl ved lukning af skabelonfilen %s"
|
||||
|
||||
#: main.c:694
|
||||
#: main.c:693
|
||||
#, c-format
|
||||
msgid "error creating header file %s"
|
||||
msgstr "fejl ved oprettelsen af headerfilen %s"
|
||||
|
||||
#: main.c:702
|
||||
#: main.c:701
|
||||
#, c-format
|
||||
msgid "error writing output file %s"
|
||||
msgstr "fejl ved skrivning af udfilen %s"
|
||||
|
||||
#: main.c:706
|
||||
#: main.c:705
|
||||
#, c-format
|
||||
msgid "error closing output file %s"
|
||||
msgstr "fejl ved lukning af udfilen %s"
|
||||
|
||||
#: main.c:710
|
||||
#: main.c:709
|
||||
#, c-format
|
||||
msgid "error deleting output file %s"
|
||||
msgstr "fejl ved sletning af udfilen %s"
|
||||
|
||||
#: main.c:717
|
||||
#: main.c:716
|
||||
#, c-format
|
||||
msgid "No backing up.\n"
|
||||
msgstr "Ingen sikkerhedskopiering.\n"
|
||||
|
||||
#: main.c:721
|
||||
#: main.c:720
|
||||
#, c-format
|
||||
msgid "%d backing up (non-accepting) states.\n"
|
||||
msgstr "%d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
|
||||
|
||||
#: main.c:725
|
||||
#: main.c:724
|
||||
#, c-format
|
||||
msgid "Compressed tables always back up.\n"
|
||||
msgstr "Komprimerete tabeller backer alltid tillbaka.\n"
|
||||
|
||||
#: main.c:728
|
||||
#: main.c:727
|
||||
#, c-format
|
||||
msgid "error writing backup file %s"
|
||||
msgstr "fejl ved skrivning af sikkerhedskopifilen %s"
|
||||
|
||||
#: main.c:732
|
||||
#: main.c:731
|
||||
#, c-format
|
||||
msgid "error closing backup file %s"
|
||||
msgstr "fejl ved lukning af sikerhedskopifilen %s"
|
||||
|
||||
#: main.c:737
|
||||
#: main.c:736
|
||||
#, c-format
|
||||
msgid "%s version %s usage statistics:\n"
|
||||
msgstr "Statistik over brugaf %s version %s:\n"
|
||||
|
||||
#: main.c:740
|
||||
#: main.c:739
|
||||
#, c-format
|
||||
msgid " scanner options: -"
|
||||
msgstr " fortolkningsflag: -"
|
||||
|
||||
#: main.c:819
|
||||
#: main.c:818
|
||||
#, c-format
|
||||
msgid " %d/%d NFA states\n"
|
||||
msgstr " %d/%d NFA-tilstand\n"
|
||||
|
||||
#: main.c:821
|
||||
#: main.c:820
|
||||
#, c-format
|
||||
msgid " %d/%d DFA states (%d words)\n"
|
||||
msgstr " %d/%d DFA-tilstand (%d ord)\n"
|
||||
|
||||
#: main.c:823
|
||||
#: main.c:822
|
||||
#, c-format
|
||||
msgid " %d rules\n"
|
||||
msgstr " %d regler\n"
|
||||
|
||||
#: main.c:828
|
||||
#: main.c:827
|
||||
#, c-format
|
||||
msgid " No backing up\n"
|
||||
msgstr " Ingen sikkerhedskopiering\n"
|
||||
|
||||
#: main.c:832
|
||||
#: main.c:831
|
||||
#, c-format
|
||||
msgid " %d backing-up (non-accepting) states\n"
|
||||
msgstr " %d sikkerhedskopierer (ikke-accepterende) tilstande.\n"
|
||||
|
||||
#: main.c:837
|
||||
#: main.c:836
|
||||
#, c-format
|
||||
msgid " Compressed tables always back-up\n"
|
||||
msgstr " Komprimerede tabeller bakker altid tilbake\n"
|
||||
|
||||
#: main.c:841
|
||||
#: main.c:840
|
||||
#, c-format
|
||||
msgid " Beginning-of-line patterns used\n"
|
||||
msgstr " Begyndelse-af-linje-mønster brugt\n"
|
||||
|
||||
#: main.c:843
|
||||
#: main.c:842
|
||||
#, c-format
|
||||
msgid " %d/%d start conditions\n"
|
||||
msgstr " %d/%d startbetingelse\n"
|
||||
|
||||
#: main.c:847
|
||||
#: main.c:846
|
||||
#, c-format
|
||||
msgid " %d epsilon states, %d double epsilon states\n"
|
||||
msgstr " %d epsilontilstande, %d dobbelte epsilontilstande\n"
|
||||
|
||||
#: main.c:851
|
||||
#: main.c:850
|
||||
#, c-format
|
||||
msgid " no character classes\n"
|
||||
msgstr " ingen tegnklasser\n"
|
||||
|
||||
#: main.c:855
|
||||
#: main.c:854
|
||||
#, c-format
|
||||
msgid " %d/%d character classes needed %d/%d words of storage, %d reused\n"
|
||||
msgstr " %d/%d tegnklasser behøvede %d/%d ord for gemning, %d genbrugte\n"
|
||||
|
||||
#: main.c:860
|
||||
#: main.c:859
|
||||
#, c-format
|
||||
msgid " %d state/nextstate pairs created\n"
|
||||
msgstr " %d par med tilstand/næste-tilstand oprettede\n"
|
||||
|
||||
#: main.c:863
|
||||
#: main.c:862
|
||||
#, c-format
|
||||
msgid " %d/%d unique/duplicate transitions\n"
|
||||
msgstr " %d/%d unikke/duplikerede overgange\n"
|
||||
|
||||
#: main.c:868
|
||||
#: main.c:867
|
||||
#, c-format
|
||||
msgid " %d table entries\n"
|
||||
msgstr " %d tabelposter\n"
|
||||
|
||||
#: main.c:876
|
||||
#: main.c:875
|
||||
#, c-format
|
||||
msgid " %d/%d base-def entries created\n"
|
||||
msgstr " %d/%d base/standard-poster oprettede\n"
|
||||
|
||||
#: main.c:880
|
||||
#: main.c:879
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) nxt-chk entries created\n"
|
||||
msgstr " %d/%d (max %d) næste/test-poster oprettede\n"
|
||||
|
||||
#: main.c:884
|
||||
#: main.c:883
|
||||
#, c-format
|
||||
msgid " %d/%d (peak %d) template nxt-chk entries created\n"
|
||||
msgstr " %d/%d (max %d) skablon-næste/test-poster oprettede\n"
|
||||
|
||||
#: main.c:888
|
||||
#: main.c:887
|
||||
#, c-format
|
||||
msgid " %d empty table entries\n"
|
||||
msgstr " %d tomme tabelposter\n"
|
||||
|
||||
#: main.c:890
|
||||
#: main.c:889
|
||||
#, c-format
|
||||
msgid " %d protos created\n"
|
||||
msgstr " %d prototyper oprettede\n"
|
||||
|
||||
#: main.c:893
|
||||
#: main.c:892
|
||||
#, c-format
|
||||
msgid " %d templates created, %d uses\n"
|
||||
msgstr " %d skabloner oprettede, %d formål\n"
|
||||
|
||||
#: main.c:901
|
||||
#: main.c:900
|
||||
#, c-format
|
||||
msgid " %d/%d equivalence classes created\n"
|
||||
msgstr " %d/%d ækvivalensklasser oprettet\n"
|
||||
|
||||
#: main.c:909
|
||||
#: main.c:908
|
||||
#, c-format
|
||||
msgid " %d/%d meta-equivalence classes created\n"
|
||||
msgstr " %d/%d meta-ækvivalensklasser oprettede\n"
|
||||
|
||||
#: main.c:915
|
||||
#: main.c:914
|
||||
#, c-format
|
||||
msgid " %d (%d saved) hash collisions, %d DFAs equal\n"
|
||||
msgstr " %d (%d gemte) hash-kollisioner, %d DFA'er er ens\n"
|
||||
|
||||
#: main.c:917
|
||||
#: main.c:916
|
||||
#, c-format
|
||||
msgid " %d sets of reallocations needed\n"
|
||||
msgstr " %d opsætninger med omallokeringer krævedes\n"
|
||||
|
||||
#: main.c:919
|
||||
#: main.c:918
|
||||
#, c-format
|
||||
msgid " %d total table entries needed\n"
|
||||
msgstr " %d totale tabelposter kræves\n"
|
||||
|
||||
#: main.c:996
|
||||
#: main.c:995
|
||||
#, c-format
|
||||
msgid "Internal error. flexopts are malformed.\n"
|
||||
msgstr "Intern fejl. flexopts er fejlbehæftede.\n"
|
||||
|
||||
#: main.c:1006
|
||||
#: main.c:1005
|
||||
#, c-format
|
||||
msgid "Try `%s --help' for more information.\n"
|
||||
msgstr "Prøv '%s --help' for mere information.\n"
|
||||
|
||||
#: main.c:1063
|
||||
#: main.c:1062
|
||||
#, c-format
|
||||
msgid "unknown -C option '%c'"
|
||||
msgstr "ukendt flag til -C '%c'"
|
||||
|
||||
#: main.c:1192
|
||||
#: main.c:1191
|
||||
#, c-format
|
||||
msgid "%s %s\n"
|
||||
msgstr "%s %s\n"
|
||||
|
||||
#: main.c:1467
|
||||
#: main.c:1466
|
||||
msgid "fatal parse error"
|
||||
msgstr "uoprettelig fejl ved analysen"
|
||||
|
||||
#: main.c:1499
|
||||
#: main.c:1498
|
||||
#, c-format
|
||||
msgid "could not create backing-up info file %s"
|
||||
msgstr "kunne ikke oprette sikkerhedskopi af info-fil %s"
|
||||
|
||||
#: main.c:1520
|
||||
#: main.c:1519
|
||||
#, c-format
|
||||
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
|
||||
msgstr "flaget -l for opførsel som AT&T's lex medfører et væsentligt præstationstab\n"
|
||||
|
||||
#: main.c:1523
|
||||
#: main.c:1522
|
||||
#, c-format
|
||||
msgid " and may be the actual source of other reported performance penalties\n"
|
||||
msgstr " og kan være den egentlige årsag til andre rapporter om dette\n"
|
||||
|
||||
#: main.c:1529
|
||||
#: main.c:1528
|
||||
#, c-format
|
||||
msgid "%%option yylineno entails a performance penalty ONLY on rules that can match newline characters\n"
|
||||
msgstr "%%option yylineno medfører et præstationstab KUN på regler der kan matche nylinje-tegn\n"
|
||||
|
||||
#: main.c:1536
|
||||
#: main.c:1535
|
||||
#, c-format
|
||||
msgid "-I (interactive) entails a minor performance penalty\n"
|
||||
msgstr "-I (interaktiv) medfører et mindre præstationstab\n"
|
||||
|
||||
#: main.c:1541
|
||||
#: main.c:1540
|
||||
#, c-format
|
||||
msgid "yymore() entails a minor performance penalty\n"
|
||||
msgstr "yymore() medfører et mindre præstationstab\n"
|
||||
|
||||
#: main.c:1547
|
||||
#: main.c:1546
|
||||
#, c-format
|
||||
msgid "REJECT entails a large performance penalty\n"
|
||||
msgstr "REJECT medfører et væsentligt præstationstab\n"
|
||||
|
||||
#: main.c:1552
|
||||
#: main.c:1551
|
||||
#, c-format
|
||||
msgid "Variable trailing context rules entail a large performance penalty\n"
|
||||
msgstr "Regler for variabel efterfølgende kontekst medfører et væsentlig præstationstab\n"
|
||||
|
||||
#: main.c:1564
|
||||
#: main.c:1563
|
||||
msgid "REJECT cannot be used with -f or -F"
|
||||
msgstr "REJECT kan ikke bruges sammen med -f eller -F"
|
||||
|
||||
#: main.c:1567
|
||||
#: main.c:1566
|
||||
#, c-format
|
||||
msgid "%option yylineno cannot be used with REJECT"
|
||||
msgstr "%option yylineno kan ikke bruges sammen med REJECT"
|
||||
|
||||
#: main.c:1570
|
||||
#: main.c:1569
|
||||
msgid "variable trailing context rules cannot be used with -f or -F"
|
||||
msgstr ""
|
||||
"regler for variabel efterfølgende kontekst kan ikke bruges\n"
|
||||
"sammen med -f eller -F"
|
||||
|
||||
#: main.c:1691
|
||||
#: main.c:1692
|
||||
#, c-format
|
||||
msgid "%option yyclass only meaningful for C++ scanners"
|
||||
msgstr "%option yyclass er kun meningsfyldt for C++-fortolkere"
|
||||
|
||||
#: main.c:1798
|
||||
#: main.c:1799
|
||||
#, c-format
|
||||
msgid "Usage: %s [OPTIONS] [FILE]...\n"
|
||||
msgstr "Brug: %s [FLAG] [FIL]...\n"
|
||||
|
||||
#: main.c:1801
|
||||
#: main.c:1802
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Generates programs that perform pattern-matching on text.\n"
|
||||
@@ -630,43 +651,47 @@ msgstr ""
|
||||
" -h, --help udskriv denne hjælpebesked\n"
|
||||
" -V, --version udskriv %s version\n"
|
||||
|
||||
#: misc.c:100 misc.c:126
|
||||
#: misc.c:65
|
||||
msgid "allocation of sko_stack failed"
|
||||
msgstr "tildeling af sko_stack mislykkedes"
|
||||
|
||||
#: misc.c:102 misc.c:128
|
||||
#, c-format
|
||||
msgid "name \"%s\" ridiculously long"
|
||||
msgstr "navnet '%s' er latterligt langt"
|
||||
|
||||
#: misc.c:175
|
||||
#: misc.c:177
|
||||
msgid "memory allocation failed in allocate_array()"
|
||||
msgstr "hukommelsestildelingen mislykkedes i allocate_array()"
|
||||
|
||||
#: misc.c:250
|
||||
#: misc.c:230
|
||||
#, c-format
|
||||
msgid "bad character '%s' detected in check_char()"
|
||||
msgstr "forkert tegn '%s' fundet i check_char()"
|
||||
|
||||
#: misc.c:255
|
||||
#: misc.c:235
|
||||
#, c-format
|
||||
msgid "scanner requires -8 flag to use the character %s"
|
||||
msgstr "skanneren kræver flaget -8 for at kunne bruge tegnet %s"
|
||||
|
||||
#: misc.c:288
|
||||
#: misc.c:268
|
||||
msgid "dynamic memory failure in copy_string()"
|
||||
msgstr "dynamisk hukommelsesfejl i copy_string()"
|
||||
|
||||
#: misc.c:422
|
||||
#: misc.c:367
|
||||
#, c-format
|
||||
msgid "%s: fatal internal error, %s\n"
|
||||
msgstr "%s: uoprettelig intern fejl, %s\n"
|
||||
|
||||
#: misc.c:875
|
||||
#: misc.c:803
|
||||
msgid "attempt to increase array size failed"
|
||||
msgstr "forsøg på at øge arraystørrelse mislykkedes"
|
||||
|
||||
#: misc.c:1002
|
||||
#: misc.c:930
|
||||
msgid "bad line in skeleton file"
|
||||
msgstr "forkert linje i skeletfilen"
|
||||
|
||||
#: misc.c:1051
|
||||
#: misc.c:979
|
||||
msgid "memory allocation failed in yy_flex_xmalloc()"
|
||||
msgstr "hukommelsestildelingen mislykkedes i yy_flex_xmalloc()"
|
||||
|
||||
@@ -700,20 +725,20 @@ msgstr "tom maskine i dupmachine()"
|
||||
msgid "Variable trailing context rule at line %d\n"
|
||||
msgstr "Regel for variabel efterfølgende kontekst på linje %d\n"
|
||||
|
||||
#: nfa.c:353
|
||||
#: nfa.c:364
|
||||
msgid "bad state type in mark_beginning_as_normal()"
|
||||
msgstr "forkert tilstandstype i mark_beginning_as_normal()"
|
||||
|
||||
#: nfa.c:598
|
||||
#: nfa.c:609
|
||||
#, c-format
|
||||
msgid "input rules are too complicated (>= %d NFA states)"
|
||||
msgstr "inddatareglerne er for komplicerede (>= %d NFA-tilstand)"
|
||||
|
||||
#: nfa.c:677
|
||||
#: nfa.c:688
|
||||
msgid "found too many transitions in mkxtion()"
|
||||
msgstr "fandt for mange overgange i mkxtion()"
|
||||
|
||||
#: nfa.c:703
|
||||
#: nfa.c:714
|
||||
#, c-format
|
||||
msgid "too many rules (> %d)!"
|
||||
msgstr "for mange regler (> %d)!"
|
||||
@@ -742,24 +767,24 @@ msgstr "fejlagtige iterationsv
|
||||
msgid "iteration value must be positive"
|
||||
msgstr "iterationsværdi skal være positiv"
|
||||
|
||||
#: parse.y:806 parse.y:816
|
||||
#: parse.y:804 parse.y:814
|
||||
#, c-format
|
||||
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
|
||||
msgstr "tegnintervallet [%c-%c] er flertydigt i en versalufølsom skanner"
|
||||
|
||||
#: parse.y:821
|
||||
#: parse.y:819
|
||||
msgid "negative range in character class"
|
||||
msgstr "negativt interval i tegnklasse"
|
||||
|
||||
#: parse.y:918
|
||||
#: parse.y:916
|
||||
msgid "[:^lower:] is ambiguous in case insensitive scanner"
|
||||
msgstr "[:^lower:] er flertydigt i en versalufølsom skanner"
|
||||
|
||||
#: parse.y:924
|
||||
#: parse.y:922
|
||||
msgid "[:^upper:] ambiguous in case insensitive scanner"
|
||||
msgstr "[:^upper:] er flertydigt i en versalufølsom skanner"
|
||||
|
||||
#: scan.l:75 scan.l:192 scan.l:300 scan.l:443 scan.l:618 scan.l:676
|
||||
#: scan.l:75 scan.l:618 scan.l:676
|
||||
msgid "Input line too long\n"
|
||||
msgstr "For lang inddatalinje\n"
|
||||
|
||||
@@ -773,14 +798,27 @@ msgstr "fejlagtigt '%top'-direktiv"
|
||||
msgid "unrecognized '%' directive"
|
||||
msgstr "ukendt '%'-direktiv"
|
||||
|
||||
#: scan.l:192
|
||||
msgid "Definition name too long\n"
|
||||
msgstr "For langt definitionsnavn\n"
|
||||
|
||||
#: scan.l:284
|
||||
msgid "Unmatched '{'"
|
||||
msgstr "Ensomt '{'"
|
||||
|
||||
#: scan.l:300
|
||||
#, c-format
|
||||
msgid "Definition value for {%s} too long\n"
|
||||
msgstr "Definitionsværdi for (%s) for langt\n"
|
||||
|
||||
#: scan.l:317
|
||||
msgid "incomplete name definition"
|
||||
msgstr "ufuldstændig navnedefinition"
|
||||
|
||||
#: scan.l:443
|
||||
msgid "Option line too long\n"
|
||||
msgstr "For lang valgmulighedslinje\n"
|
||||
|
||||
#: scan.l:451
|
||||
#, c-format
|
||||
msgid "unrecognized %%option: %s"
|
||||
@@ -840,27 +878,27 @@ msgstr "kan ikke
|
||||
msgid "Usage: %s [OPTIONS]...\n"
|
||||
msgstr "Brug: %s [FLAG]...\n"
|
||||
|
||||
#: scanopt.c:565
|
||||
#: scanopt.c:564
|
||||
#, c-format
|
||||
msgid "option `%s' doesn't allow an argument\n"
|
||||
msgstr "flaget '%s' tager ikke noget argument\n"
|
||||
|
||||
#: scanopt.c:570
|
||||
#: scanopt.c:569
|
||||
#, c-format
|
||||
msgid "option `%s' requires an argument\n"
|
||||
msgstr "flaget '%s' kræver et argument\n"
|
||||
|
||||
#: scanopt.c:574
|
||||
#: scanopt.c:573
|
||||
#, c-format
|
||||
msgid "option `%s' is ambiguous\n"
|
||||
msgstr "flaget '%s' er flertydig\n"
|
||||
|
||||
#: scanopt.c:578
|
||||
#: scanopt.c:577
|
||||
#, c-format
|
||||
msgid "Unrecognized option `%s'\n"
|
||||
msgstr "Ukendt flag: '%s'\n"
|
||||
|
||||
#: scanopt.c:582
|
||||
#: scanopt.c:581
|
||||
#, c-format
|
||||
msgid "Unknown error=(%d)\n"
|
||||
msgstr "Ukendt fejl=(%d)\n"
|
||||
|
||||
+523
-314
File diff suppressed because it is too large
Load Diff
+30
-11
@@ -69,22 +69,33 @@ public:
|
||||
yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
|
||||
virtual struct yy_buffer_state*
|
||||
yy_create_buffer( FLEX_STD istream* s, int size ) = 0;
|
||||
virtual struct yy_buffer_state*
|
||||
yy_create_buffer( FLEX_STD istream& s, int size ) = 0;
|
||||
virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
|
||||
virtual void yyrestart( FLEX_STD istream* s ) = 0;
|
||||
virtual void yyrestart( FLEX_STD istream* s ) = 0;
|
||||
virtual void yyrestart( FLEX_STD istream& s ) = 0;
|
||||
|
||||
virtual int yylex() = 0;
|
||||
|
||||
// Call yylex with new input/output sources.
|
||||
int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 )
|
||||
{
|
||||
int yylex( FLEX_STD istream& new_in, FLEX_STD ostream& new_out )
|
||||
{
|
||||
switch_streams( new_in, new_out );
|
||||
return yylex();
|
||||
}
|
||||
}
|
||||
|
||||
int yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0)
|
||||
{
|
||||
switch_streams( new_in, new_out );
|
||||
return yylex();
|
||||
}
|
||||
|
||||
// Switch to new input/output streams. A nil stream pointer
|
||||
// indicates "keep the current one".
|
||||
virtual void switch_streams( FLEX_STD istream* new_in = 0,
|
||||
FLEX_STD ostream* new_out = 0 ) = 0;
|
||||
virtual void switch_streams( FLEX_STD istream* new_in,
|
||||
FLEX_STD ostream* new_out ) = 0;
|
||||
virtual void switch_streams( FLEX_STD istream& new_in,
|
||||
FLEX_STD ostream& new_out ) = 0;
|
||||
|
||||
int lineno() const { return yylineno; }
|
||||
|
||||
@@ -113,20 +124,28 @@ class yyFlexLexer : public FlexLexer {
|
||||
public:
|
||||
// arg_yyin and arg_yyout default to the cin and cout, but we
|
||||
// only make that assignment when initializing in yylex().
|
||||
yyFlexLexer( FLEX_STD istream& arg_yyin, FLEX_STD ostream& arg_yyout );
|
||||
yyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );
|
||||
private:
|
||||
void ctor_common();
|
||||
|
||||
public:
|
||||
|
||||
virtual ~yyFlexLexer();
|
||||
|
||||
void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
|
||||
struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );
|
||||
struct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );
|
||||
struct yy_buffer_state* yy_create_buffer( FLEX_STD istream& s, int size );
|
||||
void yy_delete_buffer( struct yy_buffer_state* b );
|
||||
void yyrestart( FLEX_STD istream* s );
|
||||
void yyrestart( FLEX_STD istream& s );
|
||||
|
||||
void yypush_buffer_state( struct yy_buffer_state* new_buffer );
|
||||
void yypop_buffer_state();
|
||||
|
||||
virtual int yylex();
|
||||
virtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 );
|
||||
virtual void switch_streams( FLEX_STD istream& new_in, FLEX_STD ostream& new_out );
|
||||
virtual void switch_streams( FLEX_STD istream* new_in = 0, FLEX_STD ostream* new_out = 0 );
|
||||
virtual int yywrap();
|
||||
|
||||
protected:
|
||||
@@ -138,7 +157,7 @@ protected:
|
||||
int yyinput();
|
||||
|
||||
void yy_load_buffer_state();
|
||||
void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s );
|
||||
void yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream& s );
|
||||
void yy_flush_buffer( struct yy_buffer_state* b );
|
||||
|
||||
int yy_start_stack_ptr;
|
||||
@@ -153,8 +172,8 @@ protected:
|
||||
yy_state_type yy_try_NUL_trans( yy_state_type current_state );
|
||||
int yy_get_next_buffer();
|
||||
|
||||
FLEX_STD istream* yyin; // input source for default LexerInput
|
||||
FLEX_STD ostream* yyout; // output sink for default LexerOutput
|
||||
FLEX_STD istream yyin; // input source for default LexerInput
|
||||
FLEX_STD ostream yyout; // output sink for default LexerOutput
|
||||
|
||||
// yy_hold_char holds the character lost when yytext is formed.
|
||||
char yy_hold_char;
|
||||
|
||||
+4
-2
@@ -39,13 +39,13 @@ libfl_la_SOURCES = \
|
||||
libmain.c \
|
||||
libyywrap.c
|
||||
|
||||
libfl_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@
|
||||
libfl_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
|
||||
|
||||
libfl_pic_la_SOURCES = \
|
||||
libmain.c \
|
||||
libyywrap.c
|
||||
|
||||
libfl_pic_la_LDFLAGS = -no-undefined -version-info @SHARED_VERSION_INFO@
|
||||
libfl_pic_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@
|
||||
|
||||
noinst_HEADERS = \
|
||||
flexdef.h \
|
||||
@@ -67,6 +67,8 @@ EXTRA_DIST = \
|
||||
BUILT_SOURCES = \
|
||||
skel.c
|
||||
|
||||
MAINTAINERCLEANFILES = skel.c
|
||||
|
||||
skel.c: flex.skl mkskel.sh flexint.h tables_shared.h
|
||||
sed 's/m4_/m4postproc_/g; s/m4preproc_/m4_/g' $(srcdir)/flex.skl | $(m4) -P -DFLEX_MAJOR_VERSION=`echo $(VERSION)|cut -f 1 -d .` -DFLEX_MINOR_VERSION=`echo $(VERSION)|cut -f 2 -d .` -DFLEX_SUBMINOR_VERSION=`echo $(VERSION)|cut -f 3 -d .` | sed 's/m4postproc_/m4_/g' | $(SHELL) $(srcdir)/mkskel.sh >skel.c
|
||||
|
||||
|
||||
@@ -400,7 +400,7 @@ void ntod ()
|
||||
* from 1 to CSIZE, so their size must be CSIZE + 1.
|
||||
*/
|
||||
int duplist[CSIZE + 1], state[CSIZE + 1];
|
||||
int targfreq[CSIZE + 1], targstate[CSIZE + 1];
|
||||
int targfreq[CSIZE + 1] = {0}, targstate[CSIZE + 1];
|
||||
|
||||
/* accset needs to be large enough to hold all of the rules present
|
||||
* in the input, *plus* their YY_TRAILING_HEAD_MASK variants.
|
||||
|
||||
+97
-26
@@ -556,7 +556,7 @@ struct yy_buffer_state
|
||||
%endif
|
||||
|
||||
%if-c++-only
|
||||
std::istream* yy_input_file;
|
||||
std::streambuf* yy_input_file;
|
||||
%endif
|
||||
|
||||
|
||||
@@ -1338,7 +1338,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||
yyin = stdin;
|
||||
%endif
|
||||
%if-c++-only
|
||||
yyin = & std::cin;
|
||||
yyin.rdbuf(std::cin.rdbuf());
|
||||
%endif
|
||||
|
||||
if ( ! yyout )
|
||||
@@ -1346,7 +1346,7 @@ m4_ifdef( [[M4_YY_USES_REJECT]],
|
||||
yyout = stdout;
|
||||
%endif
|
||||
%if-c++-only
|
||||
yyout = & std::cout;
|
||||
yyout.rdbuf(std::cout.rdbuf());
|
||||
%endif
|
||||
|
||||
if ( ! YY_CURRENT_BUFFER ) {
|
||||
@@ -1412,7 +1412,12 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
* back-up) that will match for the new input source.
|
||||
*/
|
||||
YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
|
||||
%if-c-only
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
|
||||
%endif
|
||||
%if-c++-only
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin.rdbuf();
|
||||
%endif
|
||||
YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
|
||||
}
|
||||
|
||||
@@ -1525,11 +1530,29 @@ do_action: /* This label is used only to access EOF actions. */
|
||||
%if-c++-only
|
||||
%not-for-header
|
||||
/* The contents of this function are C++ specific, so the YY_G macro is not used.
|
||||
* This constructor simply maintains backward compatibility.
|
||||
* DEPRECATED
|
||||
*/
|
||||
yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
|
||||
yyFlexLexer::yyFlexLexer( FLEX_STD istream* arg_yyin, FLEX_STD ostream* arg_yyout ):
|
||||
yyin(arg_yyin ? arg_yyin->rdbuf() : std::cin.rdbuf()),
|
||||
yyout(arg_yyout ? arg_yyout->rdbuf() : std::cout.rdbuf())
|
||||
{
|
||||
ctor_common();
|
||||
}
|
||||
|
||||
/* The contents of this function are C++ specific, so the YY_G macro is not used.
|
||||
*/
|
||||
yyFlexLexer::yyFlexLexer( std::istream& arg_yyin, std::ostream& arg_yyout ):
|
||||
yyin(arg_yyin.rdbuf()),
|
||||
yyout(arg_yyout.rdbuf())
|
||||
{
|
||||
ctor_common();
|
||||
}
|
||||
|
||||
/* The contents of this function are C++ specific, so the YY_G macro is not used.
|
||||
*/
|
||||
void yyFlexLexer::ctor_common()
|
||||
{
|
||||
yyin = arg_yyin;
|
||||
yyout = arg_yyout;
|
||||
yy_c_buf_p = 0;
|
||||
yy_init = 0;
|
||||
yy_start = 0;
|
||||
@@ -1570,18 +1593,31 @@ yyFlexLexer::~yyFlexLexer()
|
||||
yyfree( yy_buffer_stack M4_YY_CALL_LAST_ARG );
|
||||
}
|
||||
|
||||
/* The contents of this function are C++ specific, so the YY_G macro is not used.
|
||||
*/
|
||||
void yyFlexLexer::switch_streams( std::istream& new_in, std::ostream& new_out )
|
||||
{
|
||||
// was if( new_in )
|
||||
yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
|
||||
yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);
|
||||
|
||||
// was if( new_out )
|
||||
yyout.rdbuf(new_out.rdbuf());
|
||||
}
|
||||
|
||||
/* The contents of this function are C++ specific, so the YY_G macro is not used.
|
||||
*/
|
||||
void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
|
||||
{
|
||||
if ( new_in )
|
||||
{
|
||||
yy_delete_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG);
|
||||
yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE M4_YY_CALL_LAST_ARG) M4_YY_CALL_LAST_ARG);
|
||||
}
|
||||
if( ! new_in ) {
|
||||
new_in = &yyin;
|
||||
}
|
||||
|
||||
if ( new_out )
|
||||
yyout = new_out;
|
||||
if ( ! new_out ) {
|
||||
new_out = &yyout;
|
||||
}
|
||||
|
||||
switch_streams(*new_in, *new_out);
|
||||
}
|
||||
|
||||
#ifdef YY_INTERACTIVE
|
||||
@@ -1590,33 +1626,33 @@ int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
|
||||
int yyFlexLexer::LexerInput( char* buf, int max_size )
|
||||
#endif
|
||||
{
|
||||
if ( yyin->eof() || yyin->fail() )
|
||||
if ( yyin.eof() || yyin.fail() )
|
||||
return 0;
|
||||
|
||||
#ifdef YY_INTERACTIVE
|
||||
yyin->get( buf[0] );
|
||||
yyin.get( buf[0] );
|
||||
|
||||
if ( yyin->eof() )
|
||||
if ( yyin.eof() )
|
||||
return 0;
|
||||
|
||||
if ( yyin->bad() )
|
||||
if ( yyin.bad() )
|
||||
return -1;
|
||||
|
||||
return 1;
|
||||
|
||||
#else
|
||||
(void) yyin->read( buf, max_size );
|
||||
(void) yyin.read( buf, max_size );
|
||||
|
||||
if ( yyin->bad() )
|
||||
if ( yyin.bad() )
|
||||
return -1;
|
||||
else
|
||||
return yyin->gcount();
|
||||
return yyin.gcount();
|
||||
#endif
|
||||
}
|
||||
|
||||
void yyFlexLexer::LexerOutput( const char* buf, int size )
|
||||
{
|
||||
(void) yyout->write( buf, size );
|
||||
(void) yyout.write( buf, size );
|
||||
}
|
||||
%ok-for-header
|
||||
%endif
|
||||
@@ -1973,7 +2009,7 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
|
||||
void yyrestart YYFARGS1( FILE *,input_file)
|
||||
%endif
|
||||
%if-c++-only
|
||||
void yyFlexLexer::yyrestart( std::istream* input_file )
|
||||
void yyFlexLexer::yyrestart( std::istream& input_file )
|
||||
%endif
|
||||
{
|
||||
M4_YY_DECL_GUTS_VAR();
|
||||
@@ -1988,6 +2024,18 @@ m4_ifdef( [[M4_YY_USE_LINENO]],
|
||||
yy_load_buffer_state( M4_YY_CALL_ONLY_ARG );
|
||||
}
|
||||
|
||||
%if-c++-only
|
||||
/** Delegate to the new version that takes an istream reference.
|
||||
* @param input_file A readable stream.
|
||||
* M4_YY_DOC_PARAM
|
||||
* @note This function does not reset the start condition to @c INITIAL .
|
||||
*/
|
||||
void yyFlexLexer::yyrestart( std::istream* input_file )
|
||||
{
|
||||
yyrestart( *input_file );
|
||||
}
|
||||
%endif
|
||||
|
||||
/** Switch to a different input buffer.
|
||||
* @param new_buffer The new input buffer.
|
||||
* M4_YY_DOC_PARAM
|
||||
@@ -2040,7 +2088,12 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
M4_YY_DECL_GUTS_VAR();
|
||||
YY_G(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
|
||||
YY_G(yytext_ptr) = YY_G(yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
|
||||
%if-c-only
|
||||
yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
|
||||
%endif
|
||||
%if-c++-only
|
||||
yyin.rdbuf(YY_CURRENT_BUFFER_LVALUE->yy_input_file);
|
||||
%endif
|
||||
YY_G(yy_hold_char) = *YY_G(yy_c_buf_p);
|
||||
}
|
||||
|
||||
@@ -2054,7 +2107,7 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
YY_BUFFER_STATE yy_create_buffer YYFARGS2( FILE *,file, int ,size)
|
||||
%endif
|
||||
%if-c++-only
|
||||
YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
|
||||
YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream& file, int size )
|
||||
%endif
|
||||
{
|
||||
YY_BUFFER_STATE b;
|
||||
@@ -2080,6 +2133,19 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
return b;
|
||||
}
|
||||
|
||||
%if-c++-only
|
||||
/** Delegate creation of buffers to the new version that takes an istream reference.
|
||||
* @param file A readable stream.
|
||||
* @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
|
||||
* M4_YY_DOC_PARAM
|
||||
* @return the allocated buffer state.
|
||||
*/
|
||||
YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
|
||||
{
|
||||
return yy_create_buffer( *file, size );
|
||||
}
|
||||
%endif
|
||||
|
||||
/** Destroy the buffer.
|
||||
* @param b a buffer created with yy_create_buffer()
|
||||
* M4_YY_DOC_PARAM
|
||||
@@ -2114,7 +2180,7 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
static void yy_init_buffer YYFARGS2( YY_BUFFER_STATE ,b, FILE *,file)
|
||||
%endif
|
||||
%if-c++-only
|
||||
void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
|
||||
void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream& file )
|
||||
%endif
|
||||
|
||||
{
|
||||
@@ -2123,7 +2189,12 @@ static void yy_load_buffer_state YYFARGS0(void)
|
||||
|
||||
yy_flush_buffer( b M4_YY_CALL_LAST_ARG);
|
||||
|
||||
%if-c-only
|
||||
b->yy_input_file = file;
|
||||
%endif
|
||||
%if-c++-only
|
||||
b->yy_input_file = file.rdbuf();
|
||||
%endif
|
||||
b->yy_fill_buffer = 1;
|
||||
|
||||
/* If b is the current buffer, then yy_init_buffer was _probably_
|
||||
@@ -2279,7 +2350,7 @@ void yyFlexLexer::yyensure_buffer_stack(void)
|
||||
* scanner will even need a stack. We use 2 instead of 1 to avoid an
|
||||
* immediate realloc on the next call.
|
||||
*/
|
||||
num_to_alloc = 1;
|
||||
num_to_alloc = 1; // After all that talk, this was set to 1 anyways...
|
||||
YY_G(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
|
||||
(num_to_alloc * sizeof(struct yy_buffer_state*)
|
||||
M4_YY_CALL_LAST_ARG);
|
||||
@@ -2862,7 +2933,7 @@ int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
|
||||
}
|
||||
|
||||
%endif if-c-only
|
||||
|
||||
%# Actually, that ended an if-rentrant section
|
||||
|
||||
%if-c-only
|
||||
static int yy_init_globals YYFARGS0(void)
|
||||
|
||||
@@ -1525,7 +1525,7 @@ void make_tables (void)
|
||||
{
|
||||
int i;
|
||||
int did_eof_rule = false;
|
||||
struct yytbl_data *yynultrans_tbl;
|
||||
struct yytbl_data *yynultrans_tbl = NULL;
|
||||
|
||||
|
||||
skelout (); /* %% [2.0] - break point in skel */
|
||||
@@ -1755,9 +1755,13 @@ void make_tables (void)
|
||||
0)
|
||||
flexerror (_
|
||||
("Could not write yynultrans_tbl"));
|
||||
}
|
||||
|
||||
if (yynultrans_tbl != NULL) {
|
||||
yytbl_data_destroy (yynultrans_tbl);
|
||||
yynultrans_tbl = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* End generating yy_NUL_trans */
|
||||
}
|
||||
|
||||
|
||||
+114
-50
@@ -36,7 +36,7 @@ REJECT_LOG_COMPILER = $(srcdir)/testwrapper.sh
|
||||
AM_REJECT_LOG_FLAGS = -d $(srcdir) -i reject.txt -r
|
||||
|
||||
TABLE_LOG_COMPILER = $(srcdir)/testwrapper.sh
|
||||
AM_TABLE_LOG_FLAGS = -d $(srcdir) -i reject.txt -t
|
||||
AM_TABLE_LOG_FLAGS = -d $(builddir) -i $(srcdir)/reject.txt -t
|
||||
|
||||
DIRECT_LOG_COMPILER=$(srcdir)/testwrapper.sh
|
||||
AM_DIRECT_LOG_FLAGS = -d $(srcdir)
|
||||
@@ -88,7 +88,7 @@ simple_tests = \
|
||||
prefix_r \
|
||||
quotes \
|
||||
string_nr \
|
||||
string_r \
|
||||
string_r \
|
||||
top \
|
||||
yyextra
|
||||
|
||||
@@ -107,7 +107,7 @@ DIRECT_TESTS = \
|
||||
rescan_nr.direct \
|
||||
rescan_r.direct
|
||||
|
||||
I3_TESTS = \
|
||||
I3_TESTS = \
|
||||
cxx_yywrap.i3
|
||||
|
||||
if want_pthread
|
||||
@@ -169,44 +169,117 @@ top_SOURCES = top.l top_main.c
|
||||
yyextra_SOURCES = yyextra.l
|
||||
|
||||
BUILT_SOURCES = \
|
||||
bison_nr_scanner.h \
|
||||
bison_nr_parser.h \
|
||||
bison_nr_scanner.h \
|
||||
bison_yylloc_parser.h \
|
||||
bison_yylloc_scanner.h \
|
||||
bison_yylval_parser.h \
|
||||
bison_yylval_scanner.h \
|
||||
c_cxx_nr.cc \
|
||||
c_cxx_r.cc \
|
||||
header_nr_scanner.h \
|
||||
header_r_scanner.h \
|
||||
multiple_scanners_nr_1.h \
|
||||
multiple_scanners_nr_2.h \
|
||||
multiple_scanners_r_1.h \
|
||||
multiple_scanners_r_2.h \
|
||||
top.h
|
||||
|
||||
# Normally, automake would distribute files built by flex. Since the
|
||||
# point of the test suite is to test the files that flex builds, and
|
||||
# since anyone who has the flex distribution can build a flex binary
|
||||
# without having a flex binary, we want to not distribute the files
|
||||
# built by flex in the test suite. The dist-hook target accomplishes
|
||||
# this goal. It's also handy to have the list of files to clean since
|
||||
# automake doesn't know about the whacky ways in which we're abusing
|
||||
# it.
|
||||
|
||||
CLEANFILES = \
|
||||
array_nr.c \
|
||||
array_r.c \
|
||||
basic_nr.c \
|
||||
basic_r.c \
|
||||
bison_nr_parser.c \
|
||||
bison_nr_parser.h \
|
||||
bison_nr_scanner.c \
|
||||
bison_nr_scanner.h \
|
||||
bison_yylloc_parser.c \
|
||||
bison_yylloc_parser.h \
|
||||
bison_yylloc_scanner.c \
|
||||
bison_yylloc_scanner.h \
|
||||
bison_yylval_parser.c \
|
||||
bison_yylval_parser.h \
|
||||
bison_yylval_scanner.c \
|
||||
bison_yylval_scanner.h \
|
||||
c_cxx_nr.cc \
|
||||
c_cxx_r.cc \
|
||||
ccl.c \
|
||||
cxx_basic.cc \
|
||||
cxx_multiple_scanners_1.cc \
|
||||
cxx_multiple_scanners_2.cc \
|
||||
cxx_yywrap.cc \
|
||||
debug_nr.c \
|
||||
debug_r.c \
|
||||
extended.c \
|
||||
header_nr_scanner.c \
|
||||
header_nr_scanner.h \
|
||||
header_r_scanner.c \
|
||||
header_r_scanner.h \
|
||||
include_by_buffer.direct.c \
|
||||
include_by_push.direct.c \
|
||||
include_by_reentrant.direct.c \
|
||||
lineno_nr.c \
|
||||
lineno_r.c \
|
||||
lineno_trailing.c \
|
||||
mem_nr.c \
|
||||
mem_r.c \
|
||||
multiple_scanners_nr_1.c \
|
||||
multiple_scanners_nr_1.h \
|
||||
multiple_scanners_nr_2.c \
|
||||
multiple_scanners_nr_2.h \
|
||||
multiple_scanners_r_1.c \
|
||||
multiple_scanners_r_1.h \
|
||||
multiple_scanners_r_2.c \
|
||||
multiple_scanners_r_2.h \
|
||||
noansi_nr.c \
|
||||
noansi_r.c \
|
||||
posix.c \
|
||||
posixly_correct.c \
|
||||
prefix_nr.c \
|
||||
prefix_r.c \
|
||||
pthread.c \
|
||||
quotes.c \
|
||||
reject_nr.reject.c \
|
||||
reject_r.reject.c \
|
||||
reject_ver.table.c \
|
||||
reject_ser.table.c \
|
||||
top.h \
|
||||
$(tableopts_c)
|
||||
reject_ser.table.tables \
|
||||
reject_ver.table.c \
|
||||
reject_ver.table.tables \
|
||||
rescan_nr.direct.c \
|
||||
rescan_r.direct.c \
|
||||
string_nr.c \
|
||||
string_r.c \
|
||||
top.c \
|
||||
top.h \
|
||||
yyextra.c \
|
||||
alloc_extra.c \
|
||||
$(tableopts_c) \
|
||||
$(tableopts_tables)
|
||||
|
||||
dist-hook:
|
||||
for file in $(CLEANFILES) ; do \
|
||||
rm -f $(distdir)/$$file \
|
||||
; done
|
||||
|
||||
EXTRA_DIST = \
|
||||
README \
|
||||
testwrapper.sh \
|
||||
alloc_extra.txt \
|
||||
array_nr.txt \
|
||||
array_r.txt \
|
||||
basic_nr.txt \
|
||||
basic_nr.txt \
|
||||
basic_r.txt \
|
||||
bison_nr_scanner.h \
|
||||
bison_nr.txt \
|
||||
bison_yylloc_scanner.h \
|
||||
bison_yylloc.txt \
|
||||
bison_yylval_scanner.h \
|
||||
bison_yylval.txt \
|
||||
c_cxx_nr.cc \
|
||||
c_cxx_nr.txt \
|
||||
c_cxx_r.cc \
|
||||
c_cxx_r.txt \
|
||||
ccl.txt \
|
||||
cxx_basic.txt \
|
||||
@@ -215,9 +288,7 @@ basic_nr.txt \
|
||||
debug_nr.txt \
|
||||
debug_r.txt \
|
||||
extended.txt \
|
||||
header_nr_scanner.h \
|
||||
header_nr.txt \
|
||||
header_r_scanner.h \
|
||||
header_r.txt \
|
||||
include_by_buffer.direct.txt \
|
||||
include_by_buffer.direct_2.txt \
|
||||
@@ -234,10 +305,6 @@ basic_nr.txt \
|
||||
mem_nr.txt \
|
||||
mem_r.txt \
|
||||
noansi_nr.txt \
|
||||
multiple_scanners_nr_1.h \
|
||||
multiple_scanners_nr_2.h \
|
||||
multiple_scanners_r_1.h \
|
||||
multiple_scanners_r_2.h \
|
||||
noansi_r.txt \
|
||||
prefix_nr.txt \
|
||||
prefix_r.txt \
|
||||
@@ -247,22 +314,19 @@ basic_nr.txt \
|
||||
pthread_4.txt \
|
||||
pthread_5.txt \
|
||||
reject.txt \
|
||||
reject_nr.reject.c \
|
||||
reject_r.reject.c \
|
||||
reject_ver.table.c \
|
||||
reject_ver.table.tables \
|
||||
reject_ser.table.c \
|
||||
reject_ser.table.tables \
|
||||
rescan_nr.direct.txt \
|
||||
rescan_r.direct.txt \
|
||||
quotes.txt \
|
||||
top.h \
|
||||
top.txt \
|
||||
yyextra.txt \
|
||||
$(tableopts_c) \
|
||||
$(tableopts_tables) \
|
||||
tableopts.txt \
|
||||
options.cn
|
||||
tableopts.txt
|
||||
|
||||
dist_noinst_SCRIPTS = \
|
||||
tableopts.sh
|
||||
|
||||
dist_check_SCRIPTS = \
|
||||
options.cn \
|
||||
testwrapper.sh
|
||||
|
||||
pthread_pthread_LDADD = -lpthread
|
||||
|
||||
@@ -270,10 +334,10 @@ pthread_pthread_LDADD = -lpthread
|
||||
|
||||
FLEX = $(top_builddir)/src/flex
|
||||
|
||||
.l.c:
|
||||
.l.c: $(FLEX)
|
||||
$(FLEX) -o $@ $<
|
||||
|
||||
.ll.cc:
|
||||
.ll.cc: $(FLEX)
|
||||
$(FLEX) -+ -o $@ $<
|
||||
|
||||
bison_nr_main.($OBJEXT): bison_nr_parser.h bison_nr_scanner.h
|
||||
@@ -288,7 +352,7 @@ bison_yylval_scanner.h: bison_yylval_scanner.c
|
||||
# automake does not support compiling flex scanners output in C as C++
|
||||
# so we explicitly sayhow, using the .lll suffix for the lex input file
|
||||
|
||||
.lll.cc:
|
||||
.lll.cc: $(FLEX)
|
||||
$(FLEX) -o $@ $<
|
||||
|
||||
header_nr_main.$(OBJEXT): header_nr_scanner.h
|
||||
@@ -311,16 +375,16 @@ multiple_scanners_r_main.$(OBJEXT): multiple_scanners_r_1.h multiple_scanners_r_
|
||||
multiple_scanners_r_1.h: multiple_scanners_r_1.c
|
||||
multiple_scanners_r_2.h: multiple_scanners_r_2.c
|
||||
|
||||
posixly_correct.c: posixly_correct.l
|
||||
posixly_correct.c: posixly_correct.l $(FLEX)
|
||||
POSIXLY_CORRECT=1 $(FLEX) -o $@ $<
|
||||
|
||||
reject_nr.reject.c: reject.l4
|
||||
reject_nr.reject.c: reject.l4 $(FLEX)
|
||||
$(FLEX) -o $@ $<
|
||||
|
||||
reject_nr.reject$(EXEEXT): reject_nr.reject.$(OBJEXT)
|
||||
$(LINK) $^
|
||||
|
||||
reject_r.reject.c: reject.l4
|
||||
reject_r.reject.c: reject.l4 $(FLEX)
|
||||
$(FLEX) --reentrant -o $@ $<
|
||||
|
||||
reject_r.reject.$(OBJEXT): reject_r.reject.c
|
||||
@@ -329,7 +393,7 @@ reject_r.reject.$(OBJEXT): reject_r.reject.c
|
||||
reject_r.reject$(EXEEXT): reject_r.reject.$(OBJEXT)
|
||||
$(LINK) $^
|
||||
|
||||
reject_ver.table.c: reject.l4
|
||||
reject_ver.table.c: reject.l4 $(FLEX)
|
||||
$(FLEX) -o $@ --tables-verify --tables-file=$(basename $@).tables $<
|
||||
|
||||
reject_ver.table.$(OBJEXT): reject_ver.table.c
|
||||
@@ -338,7 +402,7 @@ reject_ver.table.$(OBJEXT): reject_ver.table.c
|
||||
reject_ver.table$(EXEEXT): reject_ver.table.$(OBJEXT)
|
||||
$(LINK) $^
|
||||
|
||||
reject_ser.table.c: reject.l4
|
||||
reject_ser.table.c: reject.l4 $(FLEX)
|
||||
$(FLEX) -o $@ --tables-file=$(basename $@).tables $<
|
||||
|
||||
reject_ser.table.$(OBJEXT): reject_ser.table.c
|
||||
@@ -359,7 +423,7 @@ top.h: top.c
|
||||
tableopts.am: tableopts.sh
|
||||
$(srcdir)/tableopts.sh > $(srcdir)/tableopts.am
|
||||
|
||||
include tableopts.am
|
||||
include $(srcdir)/tableopts.am
|
||||
|
||||
tableopts := -Ca -Ce -Cf -CF -Cm -Cem -Cae -Caef -CaeF -Cam -Caem
|
||||
tableopts_opt_tests := $(foreach opt,$(tableopts), tableopts_opt_nr$(opt) tableopts_opt_r$(opt))
|
||||
@@ -372,37 +436,37 @@ tableopts_c := $(addsuffix .c,$(tableopts_tests))
|
||||
OPT_LOG_COMPILER = $(srcdir)/testwrapper.sh
|
||||
AM_OPT_LOG_FLAGS = -d $(srcdir) -i tableopts.txt -r
|
||||
|
||||
tableopts_opt_nr%.c: tableopts.l4
|
||||
tableopts_opt_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) $* -o $@ $<
|
||||
|
||||
tableopts_opt_nr%.$(OBJEXT): tableopts_opt_nr%.c
|
||||
$(COMPILE) -c -o $@ $<
|
||||
|
||||
tableopts_opt_r%.c: tableopts.l4
|
||||
tableopts_opt_r%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) --reentrant $* -o $@ $<
|
||||
|
||||
tableopts_opt_r%.$(OBJEXT): tableopts_opt_r%.c
|
||||
$(COMPILE) -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
|
||||
SER_LOG_COMPILER = $(srcdir)/testwrapper.sh
|
||||
AM_SER_LOG_FLAGS = -d $(srcdir) -i tableopts.txt -r -t
|
||||
AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
|
||||
|
||||
tableopts_ser_nr%.c: tableopts.l4
|
||||
tableopts_ser_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ser_nr$*.ser.tables" $* -o $@ $<
|
||||
|
||||
tableopts_ser_nr%.$(OBJEXT): tableopts_ser_nr%.c
|
||||
$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -c -o $@ $<
|
||||
|
||||
tableopts_ser_r%.c: tableopts.l4
|
||||
tableopts_ser_r%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ser_r$*.ser.tables" $* -o $@ $<
|
||||
|
||||
tableopts_ser_r%.$(OBJEXT): tableopts_ser_r%.c
|
||||
$(COMPILE) -DTEST_HAS_TABLES_EXTERNAL -DTEST_IS_REENTRANT -c -o $@ $<
|
||||
|
||||
VER_LOG_COMPILER = $(srcdir)/testwrapper.sh
|
||||
AM_VER_LOG_FLAGS = -d $(srcdir) -i tableopts.txt -r -t
|
||||
AM_VER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t
|
||||
|
||||
tableopts_ver_nr%.c: tableopts.l4
|
||||
tableopts_ver_nr%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) --tables-file="tableopts_ver_nr$*.ver.tables" --tables-verify $* -o $@ $<
|
||||
|
||||
tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
|
||||
@@ -411,7 +475,7 @@ tableopts_ver_nr%.$(OBJEXT): tableopts_ver_nr%.c
|
||||
tableopts_ver_nr%.ver$(EXEEXT): tableopts_ver_nr%.$(OBJEXT)
|
||||
$(LINK) -o $@ $^
|
||||
|
||||
tableopts_ver_r%.c: tableopts.l4
|
||||
tableopts_ver_r%.c: tableopts.l4 $(FLEX)
|
||||
$(FLEX) -P $(subst -,_,$(basename $(*F))) -R --tables-file="tableopts_ver_r$*.ver.tables" --tables-verify $* -o $@ $<
|
||||
|
||||
tableopts_ver_r%.$(OBJEXT): tableopts_ver_r%.c
|
||||
|
||||
Reference in New Issue
Block a user