summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2020-11-15 11:55:50 -0500
committerEric S. Raymond <esr@thyrsus.com>2020-11-15 12:24:35 -0500
commitdf632cf2eb1e1def8f63d08d54055862ac6d8978 (patch)
tree69f405283362aefcced101270dc818fc82ce1a37
parent3603f033509d5a214b603f60ce4dd6ed7819843e (diff)
downloadflex-git-df632cf2eb1e1def8f63d08d54055862ac6d8978.tar.gz
Fix typo revealed by Go porting work, and improve test coverage to match.
We a ruleset test for BOL matching and a test for the array case of yymore. Improve yymore testing by adding tests that require a BOL match in both array and pointer cases. Also, convert lineno sporadic test to be ruleset-based so it's applied on all back ends. No cide changes.
-rw-r--r--src/c99-flex.skl2
-rw-r--r--src/cpp-flex.skl2
-rw-r--r--tests/.gitignore15
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/bol.rules35
-rw-r--r--tests/lineno.rules71
-rw-r--r--tests/lineno_c99.l98
-rw-r--r--tests/lineno_nr.l94
-rw-r--r--tests/lineno_r.l97
-rw-r--r--tests/ruleset.am52
-rw-r--r--tests/yymore.rules5
-rw-r--r--tests/yymorearray.rules36
-rw-r--r--tests/yymorearraybol.rules39
13 files changed, 248 insertions, 301 deletions
diff --git a/src/c99-flex.skl b/src/c99-flex.skl
index 408761a..fe63912 100644
--- a/src/c99-flex.skl
+++ b/src/c99-flex.skl
@@ -2180,7 +2180,7 @@ m4_ifdef([[M4_MODE_FIND_ACTION_COMPRESSED]], [[ yy_act = yy_accept[yy_current_s
m4_ifdef( [[M4_MODE_YYLINENO]],[[
m4_define([[M4_YYL_BASE]], [[m4_ifdef([[M4_MODE_YYMORE_USED]],
- [[m4_ifdef([[M4_MODE_YYTECT_IS_ARRAY]],
+ [[m4_ifdef([[M4_MODE_YYTEXT_IS_ARRAY]],
[["yyscanner->yy_prev_more_offset"]], [["yyscanner->yy_more_len"]])]], [[0]])]])
if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) {
int yyl;
diff --git a/src/cpp-flex.skl b/src/cpp-flex.skl
index 4432126..e31f448 100644
--- a/src/cpp-flex.skl
+++ b/src/cpp-flex.skl
@@ -2052,7 +2052,7 @@ m4_ifdef([[M4_MODE_FIND_ACTION_COMPRESSED]], [[ yy_act = yy_accept[yy_current_s
m4_ifdef( [[M4_MODE_YYLINENO]],[[
m4_define([[M4_YYL_BASE]], [[m4_ifdef([[M4_MODE_YYMORE_USED]],
- [[m4_ifdef([[M4_MODE_YYTECT_IS_ARRAY]],
+ [[m4_ifdef([[M4_MODE_YYTEXT_IS_ARRAY]],
[["YY_G(yy_prev_more_offset)"]], [["YY_G(yy_more_len)"]])]], [[0]])]])
if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) {
int yyl;
diff --git a/tests/.gitignore b/tests/.gitignore
index b449a38..52efe99 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -19,6 +19,8 @@ bison_yylloc_scanner.[ch]
bison_yylval
bison_yylval_parser.[ch]
bison_yylval_scanner.[ch]
+bol*
+!bol.rules
c_cxx_nr
c_cxx_nr.cc
c_cxx_r
@@ -56,13 +58,18 @@ include_by_reentrant.direct.c
lexcompat*
!lexcompat.rules
lineno_nr.one
-lineno_nr.c
lineno_r.one
-lineno_r.c
lineno_c99.one
-lineno_c99.c
lineno_trailing.one
lineno_trailing.c
+lineno*.c
+lineno*.l
+lineno_nr
+lineno_r
+lineno_c99
+lineno_go
+lineno.txt
+!lineno.rules
mem_nr
mem_nr.c
mem_r
@@ -117,6 +124,8 @@ yyless*
!yyless.rules
yymore*
!yymore.rules
+!yymorearray.rules
+!yymorearraybol.rules
yyunput*
!yyunput.rules
test-yydecl-*
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 4c8f42f..9d4677a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -214,9 +214,6 @@ CLEANFILES = \
include_by_buffer.direct.c \
include_by_push.direct.c \
include_by_reentrant.direct.c \
- lineno_nr.c \
- lineno_r.c \
- lineno_c99.c \
lineno_trailing.c \
mem_nr.c \
mem_r.c \
diff --git a/tests/bol.rules b/tests/bol.rules
new file mode 100644
index 0000000..f9031ae
--- /dev/null
+++ b/tests/bol.rules
@@ -0,0 +1,35 @@
+/*
+ * 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.
+ */
+
+/* Test BOL matching,
+ * If the ^ operator does not constrain pattern patching, these rules
+ * will false-match on after :bar: the line of input and fail.
+ */
+
+%option nounput noyywrap noyylineno warn nodefault noinput
+%%
+^foo {M4_TEST_FAILMESSAGE}
+.|\n {}
+
+###
+barfoo
diff --git a/tests/lineno.rules b/tests/lineno.rules
new file mode 100644
index 0000000..7fc9c31
--- /dev/null
+++ b/tests/lineno.rules
@@ -0,0 +1,71 @@
+/*
+ * This file is part of flex.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE.
+ */
+
+/* The goal here is to test the yylineno processing by:
+ * - providing some rules than CAN match newlines and
+ * other rules that can NOT match newlines,
+ * - matching several newlines in one rule,
+ * - directly modifying yylineno.
+ * FIXME: Exposes a bug, probably in the Flex scanner.
+ * If "--yylineno" in the action is "yylineno--", the pattern
+ * is not recognized and the magic rewrite rule for yylineo
+ * does not fire. Only an issue for non-default back ends that
+ * do magic rewrites rather than rtelying on the C preprocessor.
+ */
+%option 8bit
+%option nounput nomain noyywrap noinput yylineno
+%option warn
+
+WORD [[:alpha:]]+
+DIGIT [[:digit:]]
+
+%%
+"yylineno++" ++yylineno;
+"yylineno--" --yylineno;
+[[:blank:]]+
+{WORD}
+{DIGIT}+(\n{DIGIT}+)*
+\n
+.
+<<EOF>> {M4_TEST_ASSERT(yylineno == 20) M4_TEST_DO(yyterminate())}
+
+###
+These words
+are separated
+by newlines
+and sometimes
+ spaces
+too.
+The next three lines are numbers with only intervening newlines
+01123
+581321
+34
+And now for some blank lines....
+
+
+Finally, we directly modify yylineno, but then change it back afterwards
+(see scanner.l):
+
+yylineno++
+
+yylineno--
diff --git a/tests/lineno_c99.l b/tests/lineno_c99.l
deleted file mode 100644
index 11d402c..0000000
--- a/tests/lineno_c99.l
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * This file is part of flex.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE.
- */
-
-%{
-/* A template scanner file to build "scanner.c".
- Run as:
- test-lineno-r # report flex's yylineno
- test-lineno-r 1 # report count_newlines(stdin)
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "config.h"
-
-%}
-
-%option emit="c99"
-%option 8bit prefix="test"
-%option nounput nomain noyywrap noinput yylineno
-%option warn
-
-WORD [[:alpha:]]+
-DIGIT [[:digit:]]
-
-%%
- /* The goal here is to test the yylineno processing by:
- - providing some rules than CAN match newlines and
- other rules that can NOT match newlines,
- - matching several newlines in one rule,
- - directly modifying yylineno.
- */
-
-"yylineno--" --yylineno;
-"yylineno++" ++yylineno;
-[[:blank:]]+
-{WORD}
-{DIGIT}+(\n{DIGIT}+)*
-\n
-.
-<<EOF>> { printf("%d\n", yylineno);
- yyterminate();
- }
-
-%%
-
-/* returns number of '\n' characters in input, plus one.
- This is what flex does, essentially. */
-
-static int
-count_newlines (FILE* in)
-{
- int n=1,c;
- while ((c=fgetc(in)) != EOF)
- if( c == '\n')
- n++;
- return n;
-}
-
-int main ( int argc, char** argv );
-
-int
-main (int argc, char **argv)
-{
- (void)argv;
-
- if( argc > 1 )
- printf("%d\n", count_newlines(stdin));
-
- else{
- yyscan_t s;
- testlex_init(&s);
- testset_in(stdin,s);
- testset_out(stdout,s);
- testlex(s);
- testlex_destroy(s);
- }
- return 0;
-}
diff --git a/tests/lineno_nr.l b/tests/lineno_nr.l
deleted file mode 100644
index dbe6b2d..0000000
--- a/tests/lineno_nr.l
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * This file is part of flex.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE.
- */
-
-%{
-/* A template scanner file to build "scanner.c".
- Run as:
- test-lineno-nr # report flex's yylineno
- test-lineno-nr 1 # report count_newlines(stdin)
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "config.h"
-
-%}
-
-%option 8bit prefix="test"
-%option nounput nomain noyywrap noinput yylineno
-%option warn
-
-WORD [[:alpha:]]+
-DIGIT [[:digit:]]
-
-%%
- /* The goal here is to test the yylineno processing by:
- - providing some rules than CAN match newlines and
- other rules that can NOT match newlines,
- - matching several newlines in one rule,
- - directly modifying yylineno.
- */
-
-"yylineno++" yylineno++;
-"yylineno--" yylineno--;
-[[:blank:]]+
-{WORD}
-{DIGIT}+(\n{DIGIT}+)*
-\n
-.
-<<EOF>> { printf("%d\n", yylineno);
- yyterminate();
- }
-
-%%
-
-/* returns number of '\n' characters in input, plus one.
- This is what flex does, essentially. */
-
-static int
-count_newlines (FILE* in)
-{
- int n=1,c;
- while ((c=fgetc(in)) != EOF)
- if( c == '\n')
- n++;
- return n;
-}
-
-int main ( int, char**);
-
-int
-main ( int argc, char **argv )
-{
- (void)argv;
-
- if( argc > 1 )
- printf("%d\n", count_newlines(stdin));
-
- else{
- yyin = stdin;
- yyout = stdout;
- yylex();
- }
- return 0;
-}
diff --git a/tests/lineno_r.l b/tests/lineno_r.l
deleted file mode 100644
index d7230d7..0000000
--- a/tests/lineno_r.l
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * This file is part of flex.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE.
- */
-
-%{
-/* A template scanner file to build "scanner.c".
- Run as:
- test-lineno-r # report flex's yylineno
- test-lineno-r 1 # report count_newlines(stdin)
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "config.h"
-
-%}
-
-%option 8bit prefix="test"
-%option nounput nomain noyywrap noinput yylineno reentrant
-%option warn
-
-WORD [[:alpha:]]+
-DIGIT [[:digit:]]
-
-%%
- /* The goal here is to test the yylineno processing by:
- - providing some rules than CAN match newlines and
- other rules that can NOT match newlines,
- - matching several newlines in one rule,
- - directly modifying yylineno.
- */
-
-"yylineno++" yylineno++;
-"yylineno--" yylineno--;
-[[:blank:]]+
-{WORD}
-{DIGIT}+(\n{DIGIT}+)*
-\n
-.
-<<EOF>> { printf("%d\n", yylineno);
- yyterminate();
- }
-
-%%
-
-/* returns number of '\n' characters in input, plus one.
- This is what flex does, essentially. */
-
-static int
-count_newlines (FILE* in)
-{
- int n=1,c;
- while ((c=fgetc(in)) != EOF)
- if( c == '\n')
- n++;
- return n;
-}
-
-int main ( int argc, char** argv );
-
-int
-main (int argc, char **argv)
-{
- (void)argv;
-
- if( argc > 1 )
- printf("%d\n", count_newlines(stdin));
-
- else{
- yyscan_t s;
- testlex_init(&s);
- testset_in(stdin,s);
- testset_out(stdout,s);
- testlex(s);
- testlex_destroy(s);
- }
- return 0;
-}
diff --git a/tests/ruleset.am b/tests/ruleset.am
index 13968f5..1f4fd6d 100644
--- a/tests/ruleset.am
+++ b/tests/ruleset.am
@@ -9,6 +9,10 @@ basic_nr_SOURCES = basic_nr.l
basic_nr.l: $(srcdir)/basic.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+bol_nr_SOURCES = bol_nr.l
+bol_nr.l: $(srcdir)/bol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
ccl_nr_SOURCES = ccl_nr.l
ccl_nr.l: $(srcdir)/ccl.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -25,6 +29,10 @@ lexcompat_nr_SOURCES = lexcompat_nr.l
lexcompat_nr.l: $(srcdir)/lexcompat.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+lineno_nr_SOURCES = lineno_nr.l
+lineno_nr.l: $(srcdir)/lineno.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
posixlycorrect_nr_SOURCES = posixlycorrect_nr.l
posixlycorrect_nr.l: $(srcdir)/posixlycorrect.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -57,6 +65,14 @@ yyless_nr_SOURCES = yyless_nr.l
yyless_nr.l: $(srcdir)/yyless.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+yymorearraybol_nr_SOURCES = yymorearraybol_nr.l
+yymorearraybol_nr.l: $(srcdir)/yymorearraybol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
+yymorearray_nr_SOURCES = yymorearray_nr.l
+yymorearray_nr.l: $(srcdir)/yymorearray.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
yymore_nr_SOURCES = yymore_nr.l
yymore_nr.l: $(srcdir)/yymore.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -205,6 +221,10 @@ basic_r_SOURCES = basic_r.l
basic_r.l: $(srcdir)/basic.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+bol_r_SOURCES = bol_r.l
+bol_r.l: $(srcdir)/bol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
ccl_r_SOURCES = ccl_r.l
ccl_r.l: $(srcdir)/ccl.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -217,6 +237,10 @@ flexname_r_SOURCES = flexname_r.l
flexname_r.l: $(srcdir)/flexname.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+lineno_r_SOURCES = lineno_r.l
+lineno_r.l: $(srcdir)/lineno.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
posix_r_SOURCES = posix_r.l
posix_r.l: $(srcdir)/posix.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -245,6 +269,14 @@ yyless_r_SOURCES = yyless_r.l
yyless_r.l: $(srcdir)/yyless.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+yymorearraybol_r_SOURCES = yymorearraybol_r.l
+yymorearraybol_r.l: $(srcdir)/yymorearraybol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
+yymorearray_r_SOURCES = yymorearray_r.l
+yymorearray_r.l: $(srcdir)/yymorearray.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
yymore_r_SOURCES = yymore_r.l
yymore_r.l: $(srcdir)/yymore.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -393,6 +425,10 @@ basic_c99_SOURCES = basic_c99.l
basic_c99.l: $(srcdir)/basic.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+bol_c99_SOURCES = bol_c99.l
+bol_c99.l: $(srcdir)/bol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
ccl_c99_SOURCES = ccl_c99.l
ccl_c99.l: $(srcdir)/ccl.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -405,6 +441,10 @@ flexname_c99_SOURCES = flexname_c99.l
flexname_c99.l: $(srcdir)/flexname.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+lineno_c99_SOURCES = lineno_c99.l
+lineno_c99.l: $(srcdir)/lineno.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
posix_c99_SOURCES = posix_c99.l
posix_c99.l: $(srcdir)/posix.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -433,6 +473,14 @@ yyless_c99_SOURCES = yyless_c99.l
yyless_c99.l: $(srcdir)/yyless.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
+yymorearraybol_c99_SOURCES = yymorearraybol_c99.l
+yymorearraybol_c99.l: $(srcdir)/yymorearraybol.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
+yymorearray_c99_SOURCES = yymorearray_c99.l
+yymorearray_c99.l: $(srcdir)/yymorearray.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
+ $(SHELL) $(srcdir)/testmaker.sh $@
+
yymore_c99_SOURCES = yymore_c99.l
yymore_c99.l: $(srcdir)/yymore.rules $(srcdir)/testmaker.sh $(srcdir)/testmaker.m4
$(SHELL) $(srcdir)/testmaker.sh $@
@@ -596,6 +644,6 @@ test-yydecl-c99.sh$(EXEEXT): test-yydecl-gen.sh
# End generated test rules
-RULESET_TESTS = array_nr basic_nr ccl_nr extended_nr flexname_nr lexcompat_nr posixlycorrect_nr posix_nr preposix_nr quoteincomment_nr reject_nr tableopts_nr trailing_nr yyless_nr yymore_nr yyunput_nr tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-CxF.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-CaexF.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-CxF.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-CaexF.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-CxF.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-CaexF.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver array_r basic_r ccl_r extended_r flexname_r posix_r preposix_r quoteincomment_r reject_r tableopts_r trailing_r yyless_r yymore_r yyunput_r tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-CxF.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-CaexF.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-CxF.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-CaexF.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-CxF.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-CaexF.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver array_c99 basic_c99 ccl_c99 extended_c99 flexname_c99 posix_c99 preposix_c99 quoteincomment_c99 reject_c99 tableopts_c99 trailing_c99 yyless_c99 yymore_c99 yyunput_c99 tableopts_opt_c99-Ca.opt tableopts_opt_c99-Ce.opt tableopts_opt_c99-Cf.opt tableopts_opt_c99-CxF.opt tableopts_opt_c99-Cm.opt tableopts_opt_c99-Cem.opt tableopts_opt_c99-Cae.opt tableopts_opt_c99-Caef.opt tableopts_opt_c99-CaexF.opt tableopts_opt_c99-Cam.opt tableopts_opt_c99-Caem.opt tableopts_ser_c99-Ca.ser tableopts_ser_c99-Ce.ser tableopts_ser_c99-Cf.ser tableopts_ser_c99-CxF.ser tableopts_ser_c99-Cm.ser tableopts_ser_c99-Cem.ser tableopts_ser_c99-Cae.ser tableopts_ser_c99-Caef.ser tableopts_ser_c99-CaexF.ser tableopts_ser_c99-Cam.ser tableopts_ser_c99-Caem.ser tableopts_ver_c99-Ca.ver tableopts_ver_c99-Ce.ver tableopts_ver_c99-Cf.ver tableopts_ver_c99-CxF.ver tableopts_ver_c99-Cm.ver tableopts_ver_c99-Cem.ver tableopts_ver_c99-Cae.ver tableopts_ver_c99-Caef.ver tableopts_ver_c99-CaexF.ver tableopts_ver_c99-Cam.ver tableopts_ver_c99-Caem.ver test-yydecl-nr.sh test-yydecl-r.sh test-yydecl-c99.sh
-RULESET_REMOVABLES = array_nr array_nr.c array_nr.l array_nr.txt basic_nr basic_nr.c basic_nr.l basic_nr.txt ccl_nr ccl_nr.c ccl_nr.l ccl_nr.txt extended_nr extended_nr.c extended_nr.l extended_nr.txt flexname_nr flexname_nr.c flexname_nr.l flexname_nr.txt lexcompat_nr lexcompat_nr.c lexcompat_nr.l lexcompat_nr.txt posixlycorrect_nr posixlycorrect_nr.c posixlycorrect_nr.l posixlycorrect_nr.txt posix_nr posix_nr.c posix_nr.l posix_nr.txt preposix_nr preposix_nr.c preposix_nr.l preposix_nr.txt quoteincomment_nr quoteincomment_nr.c quoteincomment_nr.l quoteincomment_nr.txt reject_nr reject_nr.c reject_nr.l reject_nr.txt tableopts_nr tableopts_nr.c tableopts_nr.l tableopts_nr.txt trailing_nr trailing_nr.c trailing_nr.l trailing_nr.txt yyless_nr yyless_nr.c yyless_nr.l yyless_nr.txt yymore_nr yymore_nr.c yymore_nr.l yymore_nr.txt yyunput_nr yyunput_nr.c yyunput_nr.l yyunput_nr.txt tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ca.opt.c tableopts_opt_nr-Ca.opt.l tableopts_opt_nr-Ca.opt.tables tableopts_opt_nr-Ce.opt tableopts_opt_nr-Ce.opt.c tableopts_opt_nr-Ce.opt.l tableopts_opt_nr-Ce.opt.tables tableopts_opt_nr-Cf.opt tableopts_opt_nr-Cf.opt.c tableopts_opt_nr-Cf.opt.l tableopts_opt_nr-Cf.opt.tables tableopts_opt_nr-CxF.opt tableopts_opt_nr-CxF.opt.c tableopts_opt_nr-CxF.opt.l tableopts_opt_nr-CxF.opt.tables tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cm.opt.c tableopts_opt_nr-Cm.opt.l tableopts_opt_nr-Cm.opt.tables tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cem.opt.c tableopts_opt_nr-Cem.opt.l tableopts_opt_nr-Cem.opt.tables tableopts_opt_nr-Cae.opt tableopts_opt_nr-Cae.opt.c tableopts_opt_nr-Cae.opt.l tableopts_opt_nr-Cae.opt.tables tableopts_opt_nr-Caef.opt tableopts_opt_nr-Caef.opt.c tableopts_opt_nr-Caef.opt.l tableopts_opt_nr-Caef.opt.tables tableopts_opt_nr-CaexF.opt tableopts_opt_nr-CaexF.opt.c tableopts_opt_nr-CaexF.opt.l tableopts_opt_nr-CaexF.opt.tables tableopts_opt_nr-Cam.opt tableopts_opt_nr-Cam.opt.c tableopts_opt_nr-Cam.opt.l tableopts_opt_nr-Cam.opt.tables tableopts_opt_nr-Caem.opt tableopts_opt_nr-Caem.opt.c tableopts_opt_nr-Caem.opt.l tableopts_opt_nr-Caem.opt.tables tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ca.ser.c tableopts_ser_nr-Ca.ser.l tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser tableopts_ser_nr-Ce.ser.c tableopts_ser_nr-Ce.ser.l tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser tableopts_ser_nr-Cf.ser.c tableopts_ser_nr-Cf.ser.l tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-CxF.ser tableopts_ser_nr-CxF.ser.c tableopts_ser_nr-CxF.ser.l tableopts_ser_nr-CxF.ser.tables tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cm.ser.c tableopts_ser_nr-Cm.ser.l tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cem.ser.c tableopts_ser_nr-Cem.ser.l tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser tableopts_ser_nr-Cae.ser.c tableopts_ser_nr-Cae.ser.l tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser tableopts_ser_nr-Caef.ser.c tableopts_ser_nr-Caef.ser.l tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-CaexF.ser tableopts_ser_nr-CaexF.ser.c tableopts_ser_nr-CaexF.ser.l tableopts_ser_nr-CaexF.ser.tables tableopts_ser_nr-Cam.ser tableopts_ser_nr-Cam.ser.c tableopts_ser_nr-Cam.ser.l tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser tableopts_ser_nr-Caem.ser.c tableopts_ser_nr-Caem.ser.l tableopts_ser_nr-Caem.ser.tables tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ca.ver.c tableopts_ver_nr-Ca.ver.l tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver tableopts_ver_nr-Ce.ver.c tableopts_ver_nr-Ce.ver.l tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver tableopts_ver_nr-Cf.ver.c tableopts_ver_nr-Cf.ver.l tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-CxF.ver tableopts_ver_nr-CxF.ver.c tableopts_ver_nr-CxF.ver.l tableopts_ver_nr-CxF.ver.tables tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cm.ver.c tableopts_ver_nr-Cm.ver.l tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cem.ver.c tableopts_ver_nr-Cem.ver.l tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver tableopts_ver_nr-Cae.ver.c tableopts_ver_nr-Cae.ver.l tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver tableopts_ver_nr-Caef.ver.c tableopts_ver_nr-Caef.ver.l tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-CaexF.ver tableopts_ver_nr-CaexF.ver.c tableopts_ver_nr-CaexF.ver.l tableopts_ver_nr-CaexF.ver.tables tableopts_ver_nr-Cam.ver tableopts_ver_nr-Cam.ver.c tableopts_ver_nr-Cam.ver.l tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver tableopts_ver_nr-Caem.ver.c tableopts_ver_nr-Caem.ver.l tableopts_ver_nr-Caem.ver.tables array_r array_r.c array_r.l array_r.txt basic_r basic_r.c basic_r.l basic_r.txt ccl_r ccl_r.c ccl_r.l ccl_r.txt extended_r extended_r.c extended_r.l extended_r.txt flexname_r flexname_r.c flexname_r.l flexname_r.txt posix_r posix_r.c posix_r.l posix_r.txt preposix_r preposix_r.c preposix_r.l preposix_r.txt quoteincomment_r quoteincomment_r.c quoteincomment_r.l quoteincomment_r.txt reject_r reject_r.c reject_r.l reject_r.txt tableopts_r tableopts_r.c tableopts_r.l tableopts_r.txt trailing_r trailing_r.c trailing_r.l trailing_r.txt yyless_r yyless_r.c yyless_r.l yyless_r.txt yymore_r yymore_r.c yymore_r.l yymore_r.txt yyunput_r yyunput_r.c yyunput_r.l yyunput_r.txt tableopts_opt_r-Ca.opt tableopts_opt_r-Ca.opt.c tableopts_opt_r-Ca.opt.l tableopts_opt_r-Ca.opt.tables tableopts_opt_r-Ce.opt tableopts_opt_r-Ce.opt.c tableopts_opt_r-Ce.opt.l tableopts_opt_r-Ce.opt.tables tableopts_opt_r-Cf.opt tableopts_opt_r-Cf.opt.c tableopts_opt_r-Cf.opt.l tableopts_opt_r-Cf.opt.tables tableopts_opt_r-CxF.opt tableopts_opt_r-CxF.opt.c tableopts_opt_r-CxF.opt.l tableopts_opt_r-CxF.opt.tables tableopts_opt_r-Cm.opt tableopts_opt_r-Cm.opt.c tableopts_opt_r-Cm.opt.l tableopts_opt_r-Cm.opt.tables tableopts_opt_r-Cem.opt tableopts_opt_r-Cem.opt.c tableopts_opt_r-Cem.opt.l tableopts_opt_r-Cem.opt.tables tableopts_opt_r-Cae.opt tableopts_opt_r-Cae.opt.c tableopts_opt_r-Cae.opt.l tableopts_opt_r-Cae.opt.tables tableopts_opt_r-Caef.opt tableopts_opt_r-Caef.opt.c tableopts_opt_r-Caef.opt.l tableopts_opt_r-Caef.opt.tables tableopts_opt_r-CaexF.opt tableopts_opt_r-CaexF.opt.c tableopts_opt_r-CaexF.opt.l tableopts_opt_r-CaexF.opt.tables tableopts_opt_r-Cam.opt tableopts_opt_r-Cam.opt.c tableopts_opt_r-Cam.opt.l tableopts_opt_r-Cam.opt.tables tableopts_opt_r-Caem.opt tableopts_opt_r-Caem.opt.c tableopts_opt_r-Caem.opt.l tableopts_opt_r-Caem.opt.tables tableopts_ser_r-Ca.ser tableopts_ser_r-Ca.ser.c tableopts_ser_r-Ca.ser.l tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser tableopts_ser_r-Ce.ser.c tableopts_ser_r-Ce.ser.l tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser tableopts_ser_r-Cf.ser.c tableopts_ser_r-Cf.ser.l tableopts_ser_r-Cf.ser.tables tableopts_ser_r-CxF.ser tableopts_ser_r-CxF.ser.c tableopts_ser_r-CxF.ser.l tableopts_ser_r-CxF.ser.tables tableopts_ser_r-Cm.ser tableopts_ser_r-Cm.ser.c tableopts_ser_r-Cm.ser.l tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser tableopts_ser_r-Cem.ser.c tableopts_ser_r-Cem.ser.l tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser tableopts_ser_r-Cae.ser.c tableopts_ser_r-Cae.ser.l tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser tableopts_ser_r-Caef.ser.c tableopts_ser_r-Caef.ser.l tableopts_ser_r-Caef.ser.tables tableopts_ser_r-CaexF.ser tableopts_ser_r-CaexF.ser.c tableopts_ser_r-CaexF.ser.l tableopts_ser_r-CaexF.ser.tables tableopts_ser_r-Cam.ser tableopts_ser_r-Cam.ser.c tableopts_ser_r-Cam.ser.l tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser tableopts_ser_r-Caem.ser.c tableopts_ser_r-Caem.ser.l tableopts_ser_r-Caem.ser.tables tableopts_ver_r-Ca.ver tableopts_ver_r-Ca.ver.c tableopts_ver_r-Ca.ver.l tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver tableopts_ver_r-Ce.ver.c tableopts_ver_r-Ce.ver.l tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver tableopts_ver_r-Cf.ver.c tableopts_ver_r-Cf.ver.l tableopts_ver_r-Cf.ver.tables tableopts_ver_r-CxF.ver tableopts_ver_r-CxF.ver.c tableopts_ver_r-CxF.ver.l tableopts_ver_r-CxF.ver.tables tableopts_ver_r-Cm.ver tableopts_ver_r-Cm.ver.c tableopts_ver_r-Cm.ver.l tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver tableopts_ver_r-Cem.ver.c tableopts_ver_r-Cem.ver.l tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver tableopts_ver_r-Cae.ver.c tableopts_ver_r-Cae.ver.l tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver tableopts_ver_r-Caef.ver.c tableopts_ver_r-Caef.ver.l tableopts_ver_r-Caef.ver.tables tableopts_ver_r-CaexF.ver tableopts_ver_r-CaexF.ver.c tableopts_ver_r-CaexF.ver.l tableopts_ver_r-CaexF.ver.tables tableopts_ver_r-Cam.ver tableopts_ver_r-Cam.ver.c tableopts_ver_r-Cam.ver.l tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver tableopts_ver_r-Caem.ver.c tableopts_ver_r-Caem.ver.l tableopts_ver_r-Caem.ver.tables array_c99 array_c99.c array_c99.l array_c99.txt basic_c99 basic_c99.c basic_c99.l basic_c99.txt ccl_c99 ccl_c99.c ccl_c99.l ccl_c99.txt extended_c99 extended_c99.c extended_c99.l extended_c99.txt flexname_c99 flexname_c99.c flexname_c99.l flexname_c99.txt posix_c99 posix_c99.c posix_c99.l posix_c99.txt preposix_c99 preposix_c99.c preposix_c99.l preposix_c99.txt quoteincomment_c99 quoteincomment_c99.c quoteincomment_c99.l quoteincomment_c99.txt reject_c99 reject_c99.c reject_c99.l reject_c99.txt tableopts_c99 tableopts_c99.c tableopts_c99.l tableopts_c99.txt trailing_c99 trailing_c99.c trailing_c99.l trailing_c99.txt yyless_c99 yyless_c99.c yyless_c99.l yyless_c99.txt yymore_c99 yymore_c99.c yymore_c99.l yymore_c99.txt yyunput_c99 yyunput_c99.c yyunput_c99.l yyunput_c99.txt tableopts_opt_c99-Ca.opt tableopts_opt_c99-Ca.opt.c tableopts_opt_c99-Ca.opt.l tableopts_opt_c99-Ca.opt.tables tableopts_opt_c99-Ce.opt tableopts_opt_c99-Ce.opt.c tableopts_opt_c99-Ce.opt.l tableopts_opt_c99-Ce.opt.tables tableopts_opt_c99-Cf.opt tableopts_opt_c99-Cf.opt.c tableopts_opt_c99-Cf.opt.l tableopts_opt_c99-Cf.opt.tables tableopts_opt_c99-CxF.opt tableopts_opt_c99-CxF.opt.c tableopts_opt_c99-CxF.opt.l tableopts_opt_c99-CxF.opt.tables tableopts_opt_c99-Cm.opt tableopts_opt_c99-Cm.opt.c tableopts_opt_c99-Cm.opt.l tableopts_opt_c99-Cm.opt.tables tableopts_opt_c99-Cem.opt tableopts_opt_c99-Cem.opt.c tableopts_opt_c99-Cem.opt.l tableopts_opt_c99-Cem.opt.tables tableopts_opt_c99-Cae.opt tableopts_opt_c99-Cae.opt.c tableopts_opt_c99-Cae.opt.l tableopts_opt_c99-Cae.opt.tables tableopts_opt_c99-Caef.opt tableopts_opt_c99-Caef.opt.c tableopts_opt_c99-Caef.opt.l tableopts_opt_c99-Caef.opt.tables tableopts_opt_c99-CaexF.opt tableopts_opt_c99-CaexF.opt.c tableopts_opt_c99-CaexF.opt.l tableopts_opt_c99-CaexF.opt.tables tableopts_opt_c99-Cam.opt tableopts_opt_c99-Cam.opt.c tableopts_opt_c99-Cam.opt.l tableopts_opt_c99-Cam.opt.tables tableopts_opt_c99-Caem.opt tableopts_opt_c99-Caem.opt.c tableopts_opt_c99-Caem.opt.l tableopts_opt_c99-Caem.opt.tables tableopts_ser_c99-Ca.ser tableopts_ser_c99-Ca.ser.c tableopts_ser_c99-Ca.ser.l tableopts_ser_c99-Ca.ser.tables tableopts_ser_c99-Ce.ser tableopts_ser_c99-Ce.ser.c tableopts_ser_c99-Ce.ser.l tableopts_ser_c99-Ce.ser.tables tableopts_ser_c99-Cf.ser tableopts_ser_c99-Cf.ser.c tableopts_ser_c99-Cf.ser.l tableopts_ser_c99-Cf.ser.tables tableopts_ser_c99-CxF.ser tableopts_ser_c99-CxF.ser.c tableopts_ser_c99-CxF.ser.l tableopts_ser_c99-CxF.ser.tables tableopts_ser_c99-Cm.ser tableopts_ser_c99-Cm.ser.c tableopts_ser_c99-Cm.ser.l tableopts_ser_c99-Cm.ser.tables tableopts_ser_c99-Cem.ser tableopts_ser_c99-Cem.ser.c tableopts_ser_c99-Cem.ser.l tableopts_ser_c99-Cem.ser.tables tableopts_ser_c99-Cae.ser tableopts_ser_c99-Cae.ser.c tableopts_ser_c99-Cae.ser.l tableopts_ser_c99-Cae.ser.tables tableopts_ser_c99-Caef.ser tableopts_ser_c99-Caef.ser.c tableopts_ser_c99-Caef.ser.l tableopts_ser_c99-Caef.ser.tables tableopts_ser_c99-CaexF.ser tableopts_ser_c99-CaexF.ser.c tableopts_ser_c99-CaexF.ser.l tableopts_ser_c99-CaexF.ser.tables tableopts_ser_c99-Cam.ser tableopts_ser_c99-Cam.ser.c tableopts_ser_c99-Cam.ser.l tableopts_ser_c99-Cam.ser.tables tableopts_ser_c99-Caem.ser tableopts_ser_c99-Caem.ser.c tableopts_ser_c99-Caem.ser.l tableopts_ser_c99-Caem.ser.tables tableopts_ver_c99-Ca.ver tableopts_ver_c99-Ca.ver.c tableopts_ver_c99-Ca.ver.l tableopts_ver_c99-Ca.ver.tables tableopts_ver_c99-Ce.ver tableopts_ver_c99-Ce.ver.c tableopts_ver_c99-Ce.ver.l tableopts_ver_c99-Ce.ver.tables tableopts_ver_c99-Cf.ver tableopts_ver_c99-Cf.ver.c tableopts_ver_c99-Cf.ver.l tableopts_ver_c99-Cf.ver.tables tableopts_ver_c99-CxF.ver tableopts_ver_c99-CxF.ver.c tableopts_ver_c99-CxF.ver.l tableopts_ver_c99-CxF.ver.tables tableopts_ver_c99-Cm.ver tableopts_ver_c99-Cm.ver.c tableopts_ver_c99-Cm.ver.l tableopts_ver_c99-Cm.ver.tables tableopts_ver_c99-Cem.ver tableopts_ver_c99-Cem.ver.c tableopts_ver_c99-Cem.ver.l tableopts_ver_c99-Cem.ver.tables tableopts_ver_c99-Cae.ver tableopts_ver_c99-Cae.ver.c tableopts_ver_c99-Cae.ver.l tableopts_ver_c99-Cae.ver.tables tableopts_ver_c99-Caef.ver tableopts_ver_c99-Caef.ver.c tableopts_ver_c99-Caef.ver.l tableopts_ver_c99-Caef.ver.tables tableopts_ver_c99-CaexF.ver tableopts_ver_c99-CaexF.ver.c tableopts_ver_c99-CaexF.ver.l tableopts_ver_c99-CaexF.ver.tables tableopts_ver_c99-Cam.ver tableopts_ver_c99-Cam.ver.c tableopts_ver_c99-Cam.ver.l tableopts_ver_c99-Cam.ver.tables tableopts_ver_c99-Caem.ver tableopts_ver_c99-Caem.ver.c tableopts_ver_c99-Caem.ver.l tableopts_ver_c99-Caem.ver.tables test-yydecl-nr.sh test-yydecl-r.sh test-yydecl-c99.sh
+RULESET_TESTS = array_nr basic_nr bol_nr ccl_nr extended_nr flexname_nr lexcompat_nr lineno_nr posixlycorrect_nr posix_nr preposix_nr quoteincomment_nr reject_nr tableopts_nr trailing_nr yyless_nr yymorearraybol_nr yymorearray_nr yymore_nr yyunput_nr tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ce.opt tableopts_opt_nr-Cf.opt tableopts_opt_nr-CxF.opt tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cae.opt tableopts_opt_nr-Caef.opt tableopts_opt_nr-CaexF.opt tableopts_opt_nr-Cam.opt tableopts_opt_nr-Caem.opt tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ce.ser tableopts_ser_nr-Cf.ser tableopts_ser_nr-CxF.ser tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cae.ser tableopts_ser_nr-Caef.ser tableopts_ser_nr-CaexF.ser tableopts_ser_nr-Cam.ser tableopts_ser_nr-Caem.ser tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ce.ver tableopts_ver_nr-Cf.ver tableopts_ver_nr-CxF.ver tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cae.ver tableopts_ver_nr-Caef.ver tableopts_ver_nr-CaexF.ver tableopts_ver_nr-Cam.ver tableopts_ver_nr-Caem.ver array_r basic_r bol_r ccl_r extended_r flexname_r lineno_r posix_r preposix_r quoteincomment_r reject_r tableopts_r trailing_r yyless_r yymorearraybol_r yymorearray_r yymore_r yyunput_r tableopts_opt_r-Ca.opt tableopts_opt_r-Ce.opt tableopts_opt_r-Cf.opt tableopts_opt_r-CxF.opt tableopts_opt_r-Cm.opt tableopts_opt_r-Cem.opt tableopts_opt_r-Cae.opt tableopts_opt_r-Caef.opt tableopts_opt_r-CaexF.opt tableopts_opt_r-Cam.opt tableopts_opt_r-Caem.opt tableopts_ser_r-Ca.ser tableopts_ser_r-Ce.ser tableopts_ser_r-Cf.ser tableopts_ser_r-CxF.ser tableopts_ser_r-Cm.ser tableopts_ser_r-Cem.ser tableopts_ser_r-Cae.ser tableopts_ser_r-Caef.ser tableopts_ser_r-CaexF.ser tableopts_ser_r-Cam.ser tableopts_ser_r-Caem.ser tableopts_ver_r-Ca.ver tableopts_ver_r-Ce.ver tableopts_ver_r-Cf.ver tableopts_ver_r-CxF.ver tableopts_ver_r-Cm.ver tableopts_ver_r-Cem.ver tableopts_ver_r-Cae.ver tableopts_ver_r-Caef.ver tableopts_ver_r-CaexF.ver tableopts_ver_r-Cam.ver tableopts_ver_r-Caem.ver array_c99 basic_c99 bol_c99 ccl_c99 extended_c99 flexname_c99 lineno_c99 posix_c99 preposix_c99 quoteincomment_c99 reject_c99 tableopts_c99 trailing_c99 yyless_c99 yymorearraybol_c99 yymorearray_c99 yymore_c99 yyunput_c99 tableopts_opt_c99-Ca.opt tableopts_opt_c99-Ce.opt tableopts_opt_c99-Cf.opt tableopts_opt_c99-CxF.opt tableopts_opt_c99-Cm.opt tableopts_opt_c99-Cem.opt tableopts_opt_c99-Cae.opt tableopts_opt_c99-Caef.opt tableopts_opt_c99-CaexF.opt tableopts_opt_c99-Cam.opt tableopts_opt_c99-Caem.opt tableopts_ser_c99-Ca.ser tableopts_ser_c99-Ce.ser tableopts_ser_c99-Cf.ser tableopts_ser_c99-CxF.ser tableopts_ser_c99-Cm.ser tableopts_ser_c99-Cem.ser tableopts_ser_c99-Cae.ser tableopts_ser_c99-Caef.ser tableopts_ser_c99-CaexF.ser tableopts_ser_c99-Cam.ser tableopts_ser_c99-Caem.ser tableopts_ver_c99-Ca.ver tableopts_ver_c99-Ce.ver tableopts_ver_c99-Cf.ver tableopts_ver_c99-CxF.ver tableopts_ver_c99-Cm.ver tableopts_ver_c99-Cem.ver tableopts_ver_c99-Cae.ver tableopts_ver_c99-Caef.ver tableopts_ver_c99-CaexF.ver tableopts_ver_c99-Cam.ver tableopts_ver_c99-Caem.ver test-yydecl-nr.sh test-yydecl-r.sh test-yydecl-c99.sh
+RULESET_REMOVABLES = array_nr array_nr.c array_nr.l array_nr.txt basic_nr basic_nr.c basic_nr.l basic_nr.txt bol_nr bol_nr.c bol_nr.l bol_nr.txt ccl_nr ccl_nr.c ccl_nr.l ccl_nr.txt extended_nr extended_nr.c extended_nr.l extended_nr.txt flexname_nr flexname_nr.c flexname_nr.l flexname_nr.txt lexcompat_nr lexcompat_nr.c lexcompat_nr.l lexcompat_nr.txt lineno_nr lineno_nr.c lineno_nr.l lineno_nr.txt posixlycorrect_nr posixlycorrect_nr.c posixlycorrect_nr.l posixlycorrect_nr.txt posix_nr posix_nr.c posix_nr.l posix_nr.txt preposix_nr preposix_nr.c preposix_nr.l preposix_nr.txt quoteincomment_nr quoteincomment_nr.c quoteincomment_nr.l quoteincomment_nr.txt reject_nr reject_nr.c reject_nr.l reject_nr.txt tableopts_nr tableopts_nr.c tableopts_nr.l tableopts_nr.txt trailing_nr trailing_nr.c trailing_nr.l trailing_nr.txt yyless_nr yyless_nr.c yyless_nr.l yyless_nr.txt yymorearraybol_nr yymorearraybol_nr.c yymorearraybol_nr.l yymorearraybol_nr.txt yymorearray_nr yymorearray_nr.c yymorearray_nr.l yymorearray_nr.txt yymore_nr yymore_nr.c yymore_nr.l yymore_nr.txt yyunput_nr yyunput_nr.c yyunput_nr.l yyunput_nr.txt tableopts_opt_nr-Ca.opt tableopts_opt_nr-Ca.opt.c tableopts_opt_nr-Ca.opt.l tableopts_opt_nr-Ca.opt.tables tableopts_opt_nr-Ce.opt tableopts_opt_nr-Ce.opt.c tableopts_opt_nr-Ce.opt.l tableopts_opt_nr-Ce.opt.tables tableopts_opt_nr-Cf.opt tableopts_opt_nr-Cf.opt.c tableopts_opt_nr-Cf.opt.l tableopts_opt_nr-Cf.opt.tables tableopts_opt_nr-CxF.opt tableopts_opt_nr-CxF.opt.c tableopts_opt_nr-CxF.opt.l tableopts_opt_nr-CxF.opt.tables tableopts_opt_nr-Cm.opt tableopts_opt_nr-Cm.opt.c tableopts_opt_nr-Cm.opt.l tableopts_opt_nr-Cm.opt.tables tableopts_opt_nr-Cem.opt tableopts_opt_nr-Cem.opt.c tableopts_opt_nr-Cem.opt.l tableopts_opt_nr-Cem.opt.tables tableopts_opt_nr-Cae.opt tableopts_opt_nr-Cae.opt.c tableopts_opt_nr-Cae.opt.l tableopts_opt_nr-Cae.opt.tables tableopts_opt_nr-Caef.opt tableopts_opt_nr-Caef.opt.c tableopts_opt_nr-Caef.opt.l tableopts_opt_nr-Caef.opt.tables tableopts_opt_nr-CaexF.opt tableopts_opt_nr-CaexF.opt.c tableopts_opt_nr-CaexF.opt.l tableopts_opt_nr-CaexF.opt.tables tableopts_opt_nr-Cam.opt tableopts_opt_nr-Cam.opt.c tableopts_opt_nr-Cam.opt.l tableopts_opt_nr-Cam.opt.tables tableopts_opt_nr-Caem.opt tableopts_opt_nr-Caem.opt.c tableopts_opt_nr-Caem.opt.l tableopts_opt_nr-Caem.opt.tables tableopts_ser_nr-Ca.ser tableopts_ser_nr-Ca.ser.c tableopts_ser_nr-Ca.ser.l tableopts_ser_nr-Ca.ser.tables tableopts_ser_nr-Ce.ser tableopts_ser_nr-Ce.ser.c tableopts_ser_nr-Ce.ser.l tableopts_ser_nr-Ce.ser.tables tableopts_ser_nr-Cf.ser tableopts_ser_nr-Cf.ser.c tableopts_ser_nr-Cf.ser.l tableopts_ser_nr-Cf.ser.tables tableopts_ser_nr-CxF.ser tableopts_ser_nr-CxF.ser.c tableopts_ser_nr-CxF.ser.l tableopts_ser_nr-CxF.ser.tables tableopts_ser_nr-Cm.ser tableopts_ser_nr-Cm.ser.c tableopts_ser_nr-Cm.ser.l tableopts_ser_nr-Cm.ser.tables tableopts_ser_nr-Cem.ser tableopts_ser_nr-Cem.ser.c tableopts_ser_nr-Cem.ser.l tableopts_ser_nr-Cem.ser.tables tableopts_ser_nr-Cae.ser tableopts_ser_nr-Cae.ser.c tableopts_ser_nr-Cae.ser.l tableopts_ser_nr-Cae.ser.tables tableopts_ser_nr-Caef.ser tableopts_ser_nr-Caef.ser.c tableopts_ser_nr-Caef.ser.l tableopts_ser_nr-Caef.ser.tables tableopts_ser_nr-CaexF.ser tableopts_ser_nr-CaexF.ser.c tableopts_ser_nr-CaexF.ser.l tableopts_ser_nr-CaexF.ser.tables tableopts_ser_nr-Cam.ser tableopts_ser_nr-Cam.ser.c tableopts_ser_nr-Cam.ser.l tableopts_ser_nr-Cam.ser.tables tableopts_ser_nr-Caem.ser tableopts_ser_nr-Caem.ser.c tableopts_ser_nr-Caem.ser.l tableopts_ser_nr-Caem.ser.tables tableopts_ver_nr-Ca.ver tableopts_ver_nr-Ca.ver.c tableopts_ver_nr-Ca.ver.l tableopts_ver_nr-Ca.ver.tables tableopts_ver_nr-Ce.ver tableopts_ver_nr-Ce.ver.c tableopts_ver_nr-Ce.ver.l tableopts_ver_nr-Ce.ver.tables tableopts_ver_nr-Cf.ver tableopts_ver_nr-Cf.ver.c tableopts_ver_nr-Cf.ver.l tableopts_ver_nr-Cf.ver.tables tableopts_ver_nr-CxF.ver tableopts_ver_nr-CxF.ver.c tableopts_ver_nr-CxF.ver.l tableopts_ver_nr-CxF.ver.tables tableopts_ver_nr-Cm.ver tableopts_ver_nr-Cm.ver.c tableopts_ver_nr-Cm.ver.l tableopts_ver_nr-Cm.ver.tables tableopts_ver_nr-Cem.ver tableopts_ver_nr-Cem.ver.c tableopts_ver_nr-Cem.ver.l tableopts_ver_nr-Cem.ver.tables tableopts_ver_nr-Cae.ver tableopts_ver_nr-Cae.ver.c tableopts_ver_nr-Cae.ver.l tableopts_ver_nr-Cae.ver.tables tableopts_ver_nr-Caef.ver tableopts_ver_nr-Caef.ver.c tableopts_ver_nr-Caef.ver.l tableopts_ver_nr-Caef.ver.tables tableopts_ver_nr-CaexF.ver tableopts_ver_nr-CaexF.ver.c tableopts_ver_nr-CaexF.ver.l tableopts_ver_nr-CaexF.ver.tables tableopts_ver_nr-Cam.ver tableopts_ver_nr-Cam.ver.c tableopts_ver_nr-Cam.ver.l tableopts_ver_nr-Cam.ver.tables tableopts_ver_nr-Caem.ver tableopts_ver_nr-Caem.ver.c tableopts_ver_nr-Caem.ver.l tableopts_ver_nr-Caem.ver.tables array_r array_r.c array_r.l array_r.txt basic_r basic_r.c basic_r.l basic_r.txt bol_r bol_r.c bol_r.l bol_r.txt ccl_r ccl_r.c ccl_r.l ccl_r.txt extended_r extended_r.c extended_r.l extended_r.txt flexname_r flexname_r.c flexname_r.l flexname_r.txt lineno_r lineno_r.c lineno_r.l lineno_r.txt posix_r posix_r.c posix_r.l posix_r.txt preposix_r preposix_r.c preposix_r.l preposix_r.txt quoteincomment_r quoteincomment_r.c quoteincomment_r.l quoteincomment_r.txt reject_r reject_r.c reject_r.l reject_r.txt tableopts_r tableopts_r.c tableopts_r.l tableopts_r.txt trailing_r trailing_r.c trailing_r.l trailing_r.txt yyless_r yyless_r.c yyless_r.l yyless_r.txt yymorearraybol_r yymorearraybol_r.c yymorearraybol_r.l yymorearraybol_r.txt yymorearray_r yymorearray_r.c yymorearray_r.l yymorearray_r.txt yymore_r yymore_r.c yymore_r.l yymore_r.txt yyunput_r yyunput_r.c yyunput_r.l yyunput_r.txt tableopts_opt_r-Ca.opt tableopts_opt_r-Ca.opt.c tableopts_opt_r-Ca.opt.l tableopts_opt_r-Ca.opt.tables tableopts_opt_r-Ce.opt tableopts_opt_r-Ce.opt.c tableopts_opt_r-Ce.opt.l tableopts_opt_r-Ce.opt.tables tableopts_opt_r-Cf.opt tableopts_opt_r-Cf.opt.c tableopts_opt_r-Cf.opt.l tableopts_opt_r-Cf.opt.tables tableopts_opt_r-CxF.opt tableopts_opt_r-CxF.opt.c tableopts_opt_r-CxF.opt.l tableopts_opt_r-CxF.opt.tables tableopts_opt_r-Cm.opt tableopts_opt_r-Cm.opt.c tableopts_opt_r-Cm.opt.l tableopts_opt_r-Cm.opt.tables tableopts_opt_r-Cem.opt tableopts_opt_r-Cem.opt.c tableopts_opt_r-Cem.opt.l tableopts_opt_r-Cem.opt.tables tableopts_opt_r-Cae.opt tableopts_opt_r-Cae.opt.c tableopts_opt_r-Cae.opt.l tableopts_opt_r-Cae.opt.tables tableopts_opt_r-Caef.opt tableopts_opt_r-Caef.opt.c tableopts_opt_r-Caef.opt.l tableopts_opt_r-Caef.opt.tables tableopts_opt_r-CaexF.opt tableopts_opt_r-CaexF.opt.c tableopts_opt_r-CaexF.opt.l tableopts_opt_r-CaexF.opt.tables tableopts_opt_r-Cam.opt tableopts_opt_r-Cam.opt.c tableopts_opt_r-Cam.opt.l tableopts_opt_r-Cam.opt.tables tableopts_opt_r-Caem.opt tableopts_opt_r-Caem.opt.c tableopts_opt_r-Caem.opt.l tableopts_opt_r-Caem.opt.tables tableopts_ser_r-Ca.ser tableopts_ser_r-Ca.ser.c tableopts_ser_r-Ca.ser.l tableopts_ser_r-Ca.ser.tables tableopts_ser_r-Ce.ser tableopts_ser_r-Ce.ser.c tableopts_ser_r-Ce.ser.l tableopts_ser_r-Ce.ser.tables tableopts_ser_r-Cf.ser tableopts_ser_r-Cf.ser.c tableopts_ser_r-Cf.ser.l tableopts_ser_r-Cf.ser.tables tableopts_ser_r-CxF.ser tableopts_ser_r-CxF.ser.c tableopts_ser_r-CxF.ser.l tableopts_ser_r-CxF.ser.tables tableopts_ser_r-Cm.ser tableopts_ser_r-Cm.ser.c tableopts_ser_r-Cm.ser.l tableopts_ser_r-Cm.ser.tables tableopts_ser_r-Cem.ser tableopts_ser_r-Cem.ser.c tableopts_ser_r-Cem.ser.l tableopts_ser_r-Cem.ser.tables tableopts_ser_r-Cae.ser tableopts_ser_r-Cae.ser.c tableopts_ser_r-Cae.ser.l tableopts_ser_r-Cae.ser.tables tableopts_ser_r-Caef.ser tableopts_ser_r-Caef.ser.c tableopts_ser_r-Caef.ser.l tableopts_ser_r-Caef.ser.tables tableopts_ser_r-CaexF.ser tableopts_ser_r-CaexF.ser.c tableopts_ser_r-CaexF.ser.l tableopts_ser_r-CaexF.ser.tables tableopts_ser_r-Cam.ser tableopts_ser_r-Cam.ser.c tableopts_ser_r-Cam.ser.l tableopts_ser_r-Cam.ser.tables tableopts_ser_r-Caem.ser tableopts_ser_r-Caem.ser.c tableopts_ser_r-Caem.ser.l tableopts_ser_r-Caem.ser.tables tableopts_ver_r-Ca.ver tableopts_ver_r-Ca.ver.c tableopts_ver_r-Ca.ver.l tableopts_ver_r-Ca.ver.tables tableopts_ver_r-Ce.ver tableopts_ver_r-Ce.ver.c tableopts_ver_r-Ce.ver.l tableopts_ver_r-Ce.ver.tables tableopts_ver_r-Cf.ver tableopts_ver_r-Cf.ver.c tableopts_ver_r-Cf.ver.l tableopts_ver_r-Cf.ver.tables tableopts_ver_r-CxF.ver tableopts_ver_r-CxF.ver.c tableopts_ver_r-CxF.ver.l tableopts_ver_r-CxF.ver.tables tableopts_ver_r-Cm.ver tableopts_ver_r-Cm.ver.c tableopts_ver_r-Cm.ver.l tableopts_ver_r-Cm.ver.tables tableopts_ver_r-Cem.ver tableopts_ver_r-Cem.ver.c tableopts_ver_r-Cem.ver.l tableopts_ver_r-Cem.ver.tables tableopts_ver_r-Cae.ver tableopts_ver_r-Cae.ver.c tableopts_ver_r-Cae.ver.l tableopts_ver_r-Cae.ver.tables tableopts_ver_r-Caef.ver tableopts_ver_r-Caef.ver.c tableopts_ver_r-Caef.ver.l tableopts_ver_r-Caef.ver.tables tableopts_ver_r-CaexF.ver tableopts_ver_r-CaexF.ver.c tableopts_ver_r-CaexF.ver.l tableopts_ver_r-CaexF.ver.tables tableopts_ver_r-Cam.ver tableopts_ver_r-Cam.ver.c tableopts_ver_r-Cam.ver.l tableopts_ver_r-Cam.ver.tables tableopts_ver_r-Caem.ver tableopts_ver_r-Caem.ver.c tableopts_ver_r-Caem.ver.l tableopts_ver_r-Caem.ver.tables array_c99 array_c99.c array_c99.l array_c99.txt basic_c99 basic_c99.c basic_c99.l basic_c99.txt bol_c99 bol_c99.c bol_c99.l bol_c99.txt ccl_c99 ccl_c99.c ccl_c99.l ccl_c99.txt extended_c99 extended_c99.c extended_c99.l extended_c99.txt flexname_c99 flexname_c99.c flexname_c99.l flexname_c99.txt lineno_c99 lineno_c99.c lineno_c99.l lineno_c99.txt posix_c99 posix_c99.c posix_c99.l posix_c99.txt preposix_c99 preposix_c99.c preposix_c99.l preposix_c99.txt quoteincomment_c99 quoteincomment_c99.c quoteincomment_c99.l quoteincomment_c99.txt reject_c99 reject_c99.c reject_c99.l reject_c99.txt tableopts_c99 tableopts_c99.c tableopts_c99.l tableopts_c99.txt trailing_c99 trailing_c99.c trailing_c99.l trailing_c99.txt yyless_c99 yyless_c99.c yyless_c99.l yyless_c99.txt yymorearraybol_c99 yymorearraybol_c99.c yymorearraybol_c99.l yymorearraybol_c99.txt yymorearray_c99 yymorearray_c99.c yymorearray_c99.l yymorearray_c99.txt yymore_c99 yymore_c99.c yymore_c99.l yymore_c99.txt yyunput_c99 yyunput_c99.c yyunput_c99.l yyunput_c99.txt tableopts_opt_c99-Ca.opt tableopts_opt_c99-Ca.opt.c tableopts_opt_c99-Ca.opt.l tableopts_opt_c99-Ca.opt.tables tableopts_opt_c99-Ce.opt tableopts_opt_c99-Ce.opt.c tableopts_opt_c99-Ce.opt.l tableopts_opt_c99-Ce.opt.tables tableopts_opt_c99-Cf.opt tableopts_opt_c99-Cf.opt.c tableopts_opt_c99-Cf.opt.l tableopts_opt_c99-Cf.opt.tables tableopts_opt_c99-CxF.opt tableopts_opt_c99-CxF.opt.c tableopts_opt_c99-CxF.opt.l tableopts_opt_c99-CxF.opt.tables tableopts_opt_c99-Cm.opt tableopts_opt_c99-Cm.opt.c tableopts_opt_c99-Cm.opt.l tableopts_opt_c99-Cm.opt.tables tableopts_opt_c99-Cem.opt tableopts_opt_c99-Cem.opt.c tableopts_opt_c99-Cem.opt.l tableopts_opt_c99-Cem.opt.tables tableopts_opt_c99-Cae.opt tableopts_opt_c99-Cae.opt.c tableopts_opt_c99-Cae.opt.l tableopts_opt_c99-Cae.opt.tables tableopts_opt_c99-Caef.opt tableopts_opt_c99-Caef.opt.c tableopts_opt_c99-Caef.opt.l tableopts_opt_c99-Caef.opt.tables tableopts_opt_c99-CaexF.opt tableopts_opt_c99-CaexF.opt.c tableopts_opt_c99-CaexF.opt.l tableopts_opt_c99-CaexF.opt.tables tableopts_opt_c99-Cam.opt tableopts_opt_c99-Cam.opt.c tableopts_opt_c99-Cam.opt.l tableopts_opt_c99-Cam.opt.tables tableopts_opt_c99-Caem.opt tableopts_opt_c99-Caem.opt.c tableopts_opt_c99-Caem.opt.l tableopts_opt_c99-Caem.opt.tables tableopts_ser_c99-Ca.ser tableopts_ser_c99-Ca.ser.c tableopts_ser_c99-Ca.ser.l tableopts_ser_c99-Ca.ser.tables tableopts_ser_c99-Ce.ser tableopts_ser_c99-Ce.ser.c tableopts_ser_c99-Ce.ser.l tableopts_ser_c99-Ce.ser.tables tableopts_ser_c99-Cf.ser tableopts_ser_c99-Cf.ser.c tableopts_ser_c99-Cf.ser.l tableopts_ser_c99-Cf.ser.tables tableopts_ser_c99-CxF.ser tableopts_ser_c99-CxF.ser.c tableopts_ser_c99-CxF.ser.l tableopts_ser_c99-CxF.ser.tables tableopts_ser_c99-Cm.ser tableopts_ser_c99-Cm.ser.c tableopts_ser_c99-Cm.ser.l tableopts_ser_c99-Cm.ser.tables tableopts_ser_c99-Cem.ser tableopts_ser_c99-Cem.ser.c tableopts_ser_c99-Cem.ser.l tableopts_ser_c99-Cem.ser.tables tableopts_ser_c99-Cae.ser tableopts_ser_c99-Cae.ser.c tableopts_ser_c99-Cae.ser.l tableopts_ser_c99-Cae.ser.tables tableopts_ser_c99-Caef.ser tableopts_ser_c99-Caef.ser.c tableopts_ser_c99-Caef.ser.l tableopts_ser_c99-Caef.ser.tables tableopts_ser_c99-CaexF.ser tableopts_ser_c99-CaexF.ser.c tableopts_ser_c99-CaexF.ser.l tableopts_ser_c99-CaexF.ser.tables tableopts_ser_c99-Cam.ser tableopts_ser_c99-Cam.ser.c tableopts_ser_c99-Cam.ser.l tableopts_ser_c99-Cam.ser.tables tableopts_ser_c99-Caem.ser tableopts_ser_c99-Caem.ser.c tableopts_ser_c99-Caem.ser.l tableopts_ser_c99-Caem.ser.tables tableopts_ver_c99-Ca.ver tableopts_ver_c99-Ca.ver.c tableopts_ver_c99-Ca.ver.l tableopts_ver_c99-Ca.ver.tables tableopts_ver_c99-Ce.ver tableopts_ver_c99-Ce.ver.c tableopts_ver_c99-Ce.ver.l tableopts_ver_c99-Ce.ver.tables tableopts_ver_c99-Cf.ver tableopts_ver_c99-Cf.ver.c tableopts_ver_c99-Cf.ver.l tableopts_ver_c99-Cf.ver.tables tableopts_ver_c99-CxF.ver tableopts_ver_c99-CxF.ver.c tableopts_ver_c99-CxF.ver.l tableopts_ver_c99-CxF.ver.tables tableopts_ver_c99-Cm.ver tableopts_ver_c99-Cm.ver.c tableopts_ver_c99-Cm.ver.l tableopts_ver_c99-Cm.ver.tables tableopts_ver_c99-Cem.ver tableopts_ver_c99-Cem.ver.c tableopts_ver_c99-Cem.ver.l tableopts_ver_c99-Cem.ver.tables tableopts_ver_c99-Cae.ver tableopts_ver_c99-Cae.ver.c tableopts_ver_c99-Cae.ver.l tableopts_ver_c99-Cae.ver.tables tableopts_ver_c99-Caef.ver tableopts_ver_c99-Caef.ver.c tableopts_ver_c99-Caef.ver.l tableopts_ver_c99-Caef.ver.tables tableopts_ver_c99-CaexF.ver tableopts_ver_c99-CaexF.ver.c tableopts_ver_c99-CaexF.ver.l tableopts_ver_c99-CaexF.ver.tables tableopts_ver_c99-Cam.ver tableopts_ver_c99-Cam.ver.c tableopts_ver_c99-Cam.ver.l tableopts_ver_c99-Cam.ver.tables tableopts_ver_c99-Caem.ver tableopts_ver_c99-Caem.ver.c tableopts_ver_c99-Caem.ver.l tableopts_ver_c99-Caem.ver.tables test-yydecl-nr.sh test-yydecl-r.sh test-yydecl-c99.sh
diff --git a/tests/yymore.rules b/tests/yymore.rules
index 17600e5..50c0b87 100644
--- a/tests/yymore.rules
+++ b/tests/yymore.rules
@@ -21,9 +21,10 @@
* PURPOSE.
*/
/*
- * Test yymore. What should haooen is:
+ * Test yymore with default pointer buffer. What should happen is:
* 1. "foo" is matched by the first rule but not consumed.
* 2. "bar" is matched, but the token length is 6 rather than 3.
+ * We use a ^ to force the extra code for BOL checking.
*/
%option nounput noyywrap noyylineno warn noinput
@@ -31,4 +32,4 @@
foo {M4_TEST_DO(yymore())}
bar {M4_TEST_ASSERT(yyleng == 6)}
###
-foobar
+^foobar
diff --git a/tests/yymorearray.rules b/tests/yymorearray.rules
new file mode 100644
index 0000000..270ff33
--- /dev/null
+++ b/tests/yymorearray.rules
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+ /*
+ * Test yymore with array buffer representation. What should happen is:
+ * 1. "foo" is matched by the first rule but not consumed.
+ * 2. "bar" is matched, but the token length is 6 rather than 3.
+ * Also see the yymorearraybol ruleset.
+ */
+
+%array
+%option nounput noyywrap noyylineno warn noinput
+%%
+foo {M4_TEST_DO(yymore())}
+bar {M4_TEST_ASSERT(yyleng == 6)}
+###
+foobar
diff --git a/tests/yymorearraybol.rules b/tests/yymorearraybol.rules
new file mode 100644
index 0000000..80f6b8e
--- /dev/null
+++ b/tests/yymorearraybol.rules
@@ -0,0 +1,39 @@
+%{
+#include <stdio.h>
+%}
+/*
+ * 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.
+ */
+ /*
+ * Test yymore with array buffer representation. What should happen is:
+ * 1. "foo" is matched by the first rule but not consumed.
+ * 2. "bar" is matched, but the token length is 6 rather than 3.
+ * We use a ^ to force the extra code for BOL checking.
+ */
+
+%array
+%option nounput noyywrap noyylineno warn noinput
+%%
+^foo {yymore();}
+bar {if (!(yyleng == 6)) {fprintf(stderr,"ASSERT FAILED.\n"); exit(1);}}
+###
+foobar