tests: use %empty

* tests/actions.at, tests/input.at, tests/reduce.at,
* tests/regression.at:
here.
This commit is contained in:
Akim Demaille
2013-02-16 12:57:31 +01:00
parent 8ecac08f2d
commit 684083f065
4 changed files with 53 additions and 53 deletions

View File

@@ -261,7 +261,7 @@ AT_DATA_GRAMMAR([[input.y]],
]AT_YYLEX_DECLARE[ ]AT_YYLEX_DECLARE[
} }
%% %%
exp: /* empty */; exp: %empty;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE[ ]AT_YYLEX_DEFINE[
@@ -1706,7 +1706,7 @@ AT_DATA_GRAMMAR([input.y],
// that has set yychar might not always return normally. Instead, // that has set yychar might not always return normally. Instead,
// skeletons must translate before every use of yytoken. // skeletons must translate before every use of yytoken.
start: 'a' accept { USE($1); } ; start: 'a' accept { USE($1); } ;
accept: /*empty*/ { accept: %empty {
assert (yychar == YYEMPTY); assert (yychar == YYEMPTY);
yychar = 'b'; yychar = 'b';
YYACCEPT; YYACCEPT;

View File

@@ -108,17 +108,17 @@ AT_SETUP([Invalid $n and @n])
AT_DATA([input.y], AT_DATA([input.y],
[[%% [[%%
exp: { $$ = $1 ; }; exp: %empty { $$ = $1 ; };
exp: { @$ = @1 ; }; exp: %empty { @$ = @1 ; };
]]) ]])
AT_BISON_CHECK([-fcaret input.y], [1], [], AT_BISON_CHECK([-fcaret input.y], [1], [],
[[input.y:2.13-14: error: integer out of range: '$1' [[input.y:2.20-21: error: integer out of range: '$1'
exp: { $$ = $1 ; }; exp: %empty { $$ = $1 ; };
^^ ^^
input.y:3.13-14: error: integer out of range: '@1' input.y:3.20-21: error: integer out of range: '@1'
exp: { @$ = @1 ; }; exp: %empty { @$ = @1 ; };
^^ ^^
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -137,7 +137,7 @@ AT_DATA([input.y],
%% %%
exp: foo { $$; } foo { $2; } foo exp: foo { $$; } foo { $2; } foo
| foo | foo
| /* empty. */ | %empty
; ;
]]) ]])
@@ -154,9 +154,9 @@ input.y:5.6-32: warning: type clash on default action: <bar> != <> [-Wother]
input.y:6.6-8: warning: type clash on default action: <bar> != <> [-Wother] input.y:6.6-8: warning: type clash on default action: <bar> != <> [-Wother]
| foo | foo
^^^ ^^^
input.y:7.5: warning: empty rule for typed nonterminal, and no action [-Wother] input.y:7.6-11: warning: empty rule for typed nonterminal, and no action [-Wother]
| /* empty. */ | %empty
^ ^^^^^^
]]) ]])
AT_CLEANUP AT_CLEANUP
@@ -192,7 +192,7 @@ start:
; ;
a: INT | INT { } INT { } INT { }; a: INT | INT { } INT { } INT { };
b: INT | /* empty */; b: INT | %empty;
c: INT | INT { $]1[; } INT { $<integer>2; } INT { $<integer>4; }; c: INT | INT { $]1[; } INT { $<integer>2; } INT { $<integer>4; };
d: INT | INT { } INT { $]1[; } INT { $<integer>2; }; d: INT | INT { } INT { $]1[; } INT { $<integer>2; };
e: INT | INT { } INT { } INT { $]1[; }; e: INT | INT { } INT { } INT { $]1[; };
@@ -220,9 +220,9 @@ input.y:11.18-20: warning: unused value: $][3 [-Wother]
input.y:11.26-28: warning: unused value: $][5 [-Wother] input.y:11.26-28: warning: unused value: $][5 [-Wother]
a: INT | INT { } INT { } INT { }; a: INT | INT { } INT { } INT { };
^^^ ^^^
input.y:12.9: warning: empty rule for typed nonterminal, and no action [-Wother] input.y:12.10-15: warning: empty rule for typed nonterminal, and no action [-Wother]
b: INT | /* empty */; b: INT | %empty;
^ ^^^^^^
]]m4_ifval($2, [[[input.y:13.14-20: warning: unset value: $][$ [-Wmidrule-values] ]]m4_ifval($2, [[[input.y:13.14-20: warning: unset value: $][$ [-Wmidrule-values]
c: INT | INT { $][1; } INT { $<integer>2; } INT { $<integer>4; }; c: INT | INT { $][1; } INT { $<integer>2; } INT { $<integer>4; };
^^^^^^^ ^^^^^^^
@@ -351,7 +351,7 @@ AT_DATA([[input.y]],
%% %%
start: ; start: %empty;
%destructor { destroy ($$); } <*>; %destructor { destroy ($$); } <*>;
%printer { print ($$); } <*>; %printer { print ($$); } <*>;
@@ -453,7 +453,7 @@ AT_DATA([[input.y]],
%% %%
start: ; start: %empty;
%destructor { destroy ($$); } <field2> <field1>; %destructor { destroy ($$); } <field2> <field1>;
%printer { print ($$); } <field2> <field1>; %printer { print ($$); } <field2> <field1>;
@@ -849,7 +849,7 @@ exp: '@<:@' '\1' two '$' '@' '{' oline output.or.oline.opt
two: '\x000000000000000000000000000000000000000000000000000000000000000000002'; two: '\x000000000000000000000000000000000000000000000000000000000000000000002';
oline: '@' 'o' 'l' 'i' 'n' 'e' '@' '_' '_' 'o' 'l' 'i' 'n' 'e' '_' '_'; oline: '@' 'o' 'l' 'i' 'n' 'e' '@' '_' '_' 'o' 'l' 'i' 'n' 'e' '_' '_';
output.or.oline.opt: ;|oline;;|output;;; output.or.oline.opt: %empty;|oline;;|output;;;
output: '#' 'o' 'u' 't' 'p' 'u' 't' ' '; output: '#' 'o' 'u' 't' 'p' 'u' 't' ' ';
%% %%
/* Exercise M4 quoting: '@:>@@:>@', @<:@, 2. */ /* Exercise M4 quoting: '@:>@@:>@', @<:@, 2. */
@@ -931,7 +931,7 @@ m4_define([AT_CHECK_REQUIRE],
AT_DATA_GRAMMAR([input.y], AT_DATA_GRAMMAR([input.y],
[[%require "$1"; [[%require "$1";
%% %%
empty_file: /* empty */; empty_file: %empty;
]]) ]])
AT_BISON_CHECK([-o input.c input.y], $2, [], ignore) AT_BISON_CHECK([-o input.c input.y], $2, [], ignore)
AT_CLEANUP AT_CLEANUP
@@ -1089,7 +1089,7 @@ AT_DATA([input.y],
%% %%
start: ; start: %empty;
// Used to report a syntax error because it didn't see any kind of symbol // Used to report a syntax error because it didn't see any kind of symbol
// identifier. // identifier.
@@ -1134,7 +1134,7 @@ AT_SETUP([%start after first rule])
AT_DATA([input.y], AT_DATA([input.y],
[[%% [[%%
false_start: ; false_start: %empty;
start: false_start ; start: false_start ;
%start start; %start start;
]]) ]])
@@ -1155,7 +1155,7 @@ AT_SETUP([%prec takes a token])
AT_DATA([input.y], AT_DATA([input.y],
[[%% [[%%
start: PREC %prec PREC ; start: PREC %prec PREC ;
PREC: ; PREC: %empty;
]]) ]])
AT_BISON_CHECK([input.y], [1], [], AT_BISON_CHECK([input.y], [1], [],
@@ -1197,7 +1197,7 @@ AT_DATA([input-c.y],
%code bad {} %code bad {}
%code format {} %code format {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-c.y]], [[1]], [], AT_BISON_CHECK([[input-c.y]], [[1]], [],
[[input-c.y:1.7: error: %code qualifier 'q' is not used [[input-c.y:1.7: error: %code qualifier 'q' is not used
@@ -1211,7 +1211,7 @@ AT_DATA([input-c-glr.y],
%code bad {} %code bad {}
%code bad {} %code bad {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-c-glr.y]], [[1]], [], AT_BISON_CHECK([[input-c-glr.y]], [[1]], [],
[[input-c-glr.y:1.7: error: %code qualifier 'q' is not used [[input-c-glr.y:1.7: error: %code qualifier 'q' is not used
@@ -1224,7 +1224,7 @@ AT_DATA([input-c++.y],
%code bad {} %code bad {}
%code q {} %code q {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-c++.y]], [[1]], [], AT_BISON_CHECK([[input-c++.y]], [[1]], [],
[[input-c++.y:1.7: error: %code qualifier 'q' is not used [[input-c++.y:1.7: error: %code qualifier 'q' is not used
@@ -1237,7 +1237,7 @@ AT_DATA([input-c++-glr.y],
%code q {} %code q {}
%code q {} %code q {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-c++-glr.y]], [[1]], [], AT_BISON_CHECK([[input-c++-glr.y]], [[1]], [],
[[input-c++-glr.y:1.7-9: error: %code qualifier 'bad' is not used [[input-c++-glr.y:1.7-9: error: %code qualifier 'bad' is not used
@@ -1250,7 +1250,7 @@ AT_DATA([special-char-@@.y],
%code q {} %code q {}
%code q {} %code q {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[special-char-@@.y]], [[1]], [], AT_BISON_CHECK([[special-char-@@.y]], [[1]], [],
[[special-char-@@.y:1.7-9: error: %code qualifier 'bad' is not used [[special-char-@@.y:1.7-9: error: %code qualifier 'bad' is not used
@@ -1263,7 +1263,7 @@ AT_DATA([special-char-@:>@.y],
%code q {} %code q {}
%code q {} %code q {}
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[special-char-@:>@.y]], [[1]], [], AT_BISON_CHECK([[special-char-@:>@.y]], [[1]], [],
[[special-char-@:>@.y:1.7-9: error: %code qualifier 'bad' is not used [[special-char-@:>@.y:1.7-9: error: %code qualifier 'bad' is not used
@@ -1287,7 +1287,7 @@ AT_DATA([input-redefined.y],
%define special1 "@:>@" %define special1 "@:>@"
%define special2 "@<:@" %define special2 "@<:@"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-redefined.y]], [[1]], [], AT_BISON_CHECK([[input-redefined.y]], [[1]], [],
@@ -1300,7 +1300,7 @@ input-redefined.y:2.9-11: previous definition
AT_DATA([input-unused.y], AT_DATA([input-unused.y],
[[%define var "value" [[%define var "value"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input-unused.y]], [[1]], [], AT_BISON_CHECK([[input-unused.y]], [[1]], [],
@@ -1328,7 +1328,7 @@ m4@&t@_divert_pop(0)
AT_DATA([[input.y]], AT_DATA([[input.y]],
[[%define var-dfg "gram" [[%define var-dfg "gram"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-Dvar-dd=cmd-d1 -Dvar-dd=cmd-d2 \ AT_BISON_CHECK([[-Dvar-dd=cmd-d1 -Dvar-dd=cmd-d2 \
-Fvar-ff=cmd-f1 -Fvar-ff=cmd-f2 \ -Fvar-ff=cmd-f1 -Fvar-ff=cmd-f2 \
@@ -1345,7 +1345,7 @@ var-fd: cmd-d
AT_DATA([[input-dg.y]], AT_DATA([[input-dg.y]],
[[%define var "gram" [[%define var "gram"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [], AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [],
[[input-dg.y:1.9-11: error: %define variable 'var' redefined [[input-dg.y:1.9-11: error: %define variable 'var' redefined
@@ -1355,7 +1355,7 @@ AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [],
AT_DATA([[input-dg.y]], AT_DATA([[input-dg.y]],
[[%define var "gram" [[%define var "gram"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-fcaret -Dvar=cmd-d input-dg.y]], [[1]], [], AT_BISON_CHECK([[-fcaret -Dvar=cmd-d input-dg.y]], [[1]], [],
[[input-dg.y:1.9-11: error: %define variable 'var' redefined [[input-dg.y:1.9-11: error: %define variable 'var' redefined
@@ -1366,7 +1366,7 @@ AT_BISON_CHECK([[-fcaret -Dvar=cmd-d input-dg.y]], [[1]], [],
AT_DATA([[input-unused.y]], AT_DATA([[input-unused.y]],
[[%% [[%%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-Dunused-d -Funused-f input-unused.y]], [[1]], [], AT_BISON_CHECK([[-Dunused-d -Funused-f input-unused.y]], [[1]], [],
[[<command line>:2: error: %define variable 'unused-d' is not used [[<command line>:2: error: %define variable 'unused-d' is not used
@@ -1386,7 +1386,7 @@ AT_DATA([Input.y],
%define public "maybe" %define public "maybe"
%define parser_class_name "Input" %define parser_class_name "Input"
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[Input.y]], [1], [], AT_BISON_CHECK([[Input.y]], [1], [],
@@ -1409,7 +1409,7 @@ AT_SETUP([["%define" enum variables]])
AT_DATA([[input.y]], AT_DATA([[input.y]],
[[%define lr.default-reduction bogus [[%define lr.default-reduction bogus
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]], AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
[[input.y:1.9-28: error: invalid value for %define variable 'lr.default-reduction': 'bogus' [[input.y:1.9-28: error: invalid value for %define variable 'lr.default-reduction': 'bogus'
@@ -1424,7 +1424,7 @@ input.y:1.9-28: accepted value: 'accepting'
AT_DATA([[input.y]], AT_DATA([[input.y]],
[[%define api.push-pull neither [[%define api.push-pull neither
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]], AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
[[input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither' [[input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 'neither'
@@ -1451,7 +1451,7 @@ AT_DATA([[input.y]],
%define api.namespace "foo" %define api.namespace "foo"
%define variant %define variant
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[-fcaret input.y]], [1], [], AT_BISON_CHECK([[-fcaret input.y]], [1], [],
[[input.y:1.9-21: warning: deprecated directive, use '%define api.push-pull both' [-Wdeprecated] [[input.y:1.9-21: warning: deprecated directive, use '%define api.push-pull both' [-Wdeprecated]
@@ -1492,7 +1492,7 @@ AT_DATA([[input.y]],
[[%define api.pure ]$2[ [[%define api.pure ]$2[
]$1[ ]$1[
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input.y]], [[1]], [], AT_BISON_CHECK([[input.y]], [[1]], [],
@@ -1525,7 +1525,7 @@ AT_DATA([[input.y]],
%defines %defines
%define api.namespace "]$1[" %define api.namespace "]$1["
%% %%
start: ; start: %empty;
]]) ]])
AT_BISON_CHECK([[input.y]], [1], [], AT_BISON_CHECK([[input.y]], [1], [],
@@ -1685,7 +1685,7 @@ AT_SETUP([[LAC: Errors for %define]])
AT_DATA([[input.y]], AT_DATA([[input.y]],
[[%% [[%%
start: ; start: %empty;
]]) ]])
# parse.lac.* options are useless if LAC isn't actually activated. # parse.lac.* options are useless if LAC isn't actually activated.
@@ -1708,7 +1708,7 @@ AT_SETUP([[-Werror is not affected by -Wnone and -Wall]])
AT_DATA([[input.y]], AT_DATA([[input.y]],
[[%% [[%%
foo-bar: ; foo-bar: %empty;
]]) ]])
# -Werror is not enabled by -Wall or equivalent. # -Werror is not enabled by -Wall or equivalent.
@@ -1745,7 +1745,7 @@ m4_pushdef([AT_TEST],
[AT_DATA([[input.y]], [AT_DATA([[input.y]],
[[$1 [[$1
%% %%
exp: /* empty */; exp: %empty;
]]) ]])
AT_BISON_CHECK([[$2 input.y]], [[1]], [[]], AT_BISON_CHECK([[$2 input.y]], [[1]], [[]],
[[$3: error: '%name-prefix' and '%define api.prefix' cannot be used together [[$3: error: '%name-prefix' and '%define api.prefix' cannot be used together

View File

@@ -933,7 +933,7 @@ S: 'a' A 'a'
A: 'a' 'a' B A: 'a' 'a' B
; ;
B: 'a' B: 'a'
| %prec 'a' | %empty %prec 'a'
; ;
c: 'a' 'a' 'b' c: 'a' 'a' 'b'
| A | A
@@ -1533,8 +1533,8 @@ a: 'a' ;
and multiple reductions. The first reduction has more lookaheads than the and multiple reductions. The first reduction has more lookaheads than the
second, so the first should always be preferred as the default reduction if second, so the first should always be preferred as the default reduction if
enabled. The second reduction has one lookahead. */ enabled. The second reduction has one lookahead. */
b: ; b: %empty;
c: ; c: %empty;
]], ]],
dnl Visit each state mentioned above. dnl Visit each state mentioned above.
[['a', 'a']], [['a', 'a']],

View File

@@ -373,7 +373,7 @@ AT_DATA([input.y],
%token <operator> LE 134 "<=" %token <operator> LE 134 "<="
%left OR "<=" %left OR "<="
%% %%
exp: ; exp: %empty;
%% %%
]]) ]])
@@ -721,7 +721,7 @@ AT_KEYWORDS([report])
AT_DATA([input.y], AT_DATA([input.y],
[[%% [[%%
statement: struct_stat; statement: struct_stat;
struct_stat: /* empty. */ | if else; struct_stat: %empty | if else;
if: "if" "const" "then" statement; if: "if" "const" "then" statement;
else: "else" statement; else: "else" statement;
%% %%
@@ -869,7 +869,7 @@ type: DATA
| INVALID | INVALID
; ;
body: /* empty */ body: %empty
| body member | body member
; ;
@@ -929,7 +929,7 @@ $1
%token B %token B
%% %%
program: /* empty */ program: %empty
| program e ';' | program e ';'
| program error ';'; | program error ';';