[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 04/12] tests: use %empty
From: |
Akim Demaille |
Subject: |
[PATCH 04/12] tests: use %empty |
Date: |
Sat, 16 Feb 2013 14:55:40 +0100 |
* tests/actions.at, tests/input.at, tests/reduce.at,
* tests/regression.at:
here.
---
tests/actions.at | 4 +--
tests/input.at | 88 ++++++++++++++++++++++++++---------------------------
tests/reduce.at | 6 ++--
tests/regression.at | 8 ++---
4 files changed, 53 insertions(+), 53 deletions(-)
diff --git a/tests/actions.at b/tests/actions.at
index 473c79f..381dd97 100644
--- a/tests/actions.at
+++ b/tests/actions.at
@@ -257,7 +257,7 @@ AT_DATA_GRAMMAR([[input.y]],
]AT_YYLEX_DECLARE[
}
%%
-exp: /* empty */;
+exp: %empty;
%%
]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE[
@@ -1702,7 +1702,7 @@ AT_DATA_GRAMMAR([input.y],
// that has set yychar might not always return normally. Instead,
// skeletons must translate before every use of yytoken.
start: 'a' accept { USE($1); } ;
-accept: /*empty*/ {
+accept: %empty {
assert (yychar == YYEMPTY);
yychar = 'b';
YYACCEPT;
diff --git a/tests/input.at b/tests/input.at
index 382532c..85267a2 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -108,17 +108,17 @@ AT_SETUP([Invalid $n and @n])
AT_DATA([input.y],
[[%%
-exp: { $$ = $1 ; };
-exp: { @$ = @1 ; };
+exp: %empty { $$ = $1 ; };
+exp: %empty { @$ = @1 ; };
]])
AT_BISON_CHECK([-fcaret input.y], [1], [],
-[[input.y:2.13-14: error: integer out of range: '$1'
- exp: { $$ = $1 ; };
- ^^
-input.y:3.13-14: error: integer out of range: '@1'
- exp: { @$ = @1 ; };
- ^^
+[[input.y:2.20-21: error: integer out of range: '$1'
+ exp: %empty { $$ = $1 ; };
+ ^^
+input.y:3.20-21: error: integer out of range: '@1'
+ exp: %empty { @$ = @1 ; };
+ ^^
]])
AT_CLEANUP
@@ -137,7 +137,7 @@ AT_DATA([input.y],
%%
exp: foo { $$; } foo { $2; } 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]
| foo
^^^
-input.y:7.5: warning: empty rule for typed nonterminal, and no action [-Wother]
- | /* empty. */
- ^
+input.y:7.6-11: warning: empty rule for typed nonterminal, and no action
[-Wother]
+ | %empty
+ ^^^^^^
]])
AT_CLEANUP
@@ -192,7 +192,7 @@ start:
;
a: INT | INT { } INT { } INT { };
-b: INT | /* empty */;
+b: INT | %empty;
c: INT | INT { $]1[; } INT { $<integer>2; } INT { $<integer>4; };
d: INT | INT { } INT { $]1[; } INT { $<integer>2; };
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]
a: INT | INT { } INT { } INT { };
^^^
-input.y:12.9: warning: empty rule for typed nonterminal, and no action
[-Wother]
- b: INT | /* empty */;
- ^
+input.y:12.10-15: warning: empty rule for typed nonterminal, and no action
[-Wother]
+ b: INT | %empty;
+ ^^^^^^
]]m4_ifval($2, [[[input.y:13.14-20: warning: unset value: $][$
[-Wmidrule-values]
c: INT | INT { $][1; } INT { $<integer>2; } INT { $<integer>4; };
^^^^^^^
@@ -351,7 +351,7 @@ AT_DATA([[input.y]],
%%
-start: ;
+start: %empty;
%destructor { destroy ($$); } <*>;
%printer { print ($$); } <*>;
@@ -453,7 +453,7 @@ AT_DATA([[input.y]],
%%
-start: ;
+start: %empty;
%destructor { destroy ($$); } <field2> <field1>;
%printer { print ($$); } <field2> <field1>;
@@ -849,7 +849,7 @@ exp: '@<:@' '\1' two '$' '@' '{' oline output.or.oline.opt
two: '\x000000000000000000000000000000000000000000000000000000000000000000002';
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' ' ';
%%
/* Exercise M4 quoting: '@:>@@:>@', @<:@, 2. */
@@ -931,7 +931,7 @@ m4_define([AT_CHECK_REQUIRE],
AT_DATA_GRAMMAR([input.y],
[[%require "$1";
%%
-empty_file: /* empty */;
+empty_file: %empty;
]])
AT_BISON_CHECK([-o input.c input.y], $2, [], ignore)
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
// identifier.
@@ -1134,7 +1134,7 @@ AT_SETUP([%start after first rule])
AT_DATA([input.y],
[[%%
-false_start: ;
+false_start: %empty;
start: false_start ;
%start start;
]])
@@ -1155,7 +1155,7 @@ AT_SETUP([%prec takes a token])
AT_DATA([input.y],
[[%%
start: PREC %prec PREC ;
-PREC: ;
+PREC: %empty;
]])
AT_BISON_CHECK([input.y], [1], [],
@@ -1197,7 +1197,7 @@ AT_DATA([input-c.y],
%code bad {}
%code format {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-c.y]], [[1]], [],
[[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 {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-c-glr.y]], [[1]], [],
[[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 q {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-c++.y]], [[1]], [],
[[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 {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-c++-glr.y]], [[1]], [],
[[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 {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[special-char-@@.y]], [[1]], [],
[[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 {}
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[special-char-@:>@.y]], [[1]], [],
[[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 special2 "@<:@"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-redefined.y]], [[1]], [],
@@ -1300,7 +1300,7 @@ input-redefined.y:2.9-11: previous definition
AT_DATA([input-unused.y],
[[%define var "value"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input-unused.y]], [[1]], [],
@@ -1328,7 +1328,7 @@ m4@&address@hidden(0)
AT_DATA([[input.y]],
[[%define var-dfg "gram"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-Dvar-dd=cmd-d1 -Dvar-dd=cmd-d2 \
-Fvar-ff=cmd-f1 -Fvar-ff=cmd-f2 \
@@ -1345,7 +1345,7 @@ var-fd: cmd-d
AT_DATA([[input-dg.y]],
[[%define var "gram"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [],
[[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]],
[[%define var "gram"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-fcaret -Dvar=cmd-d input-dg.y]], [[1]], [],
[[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]],
[[%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-Dunused-d -Funused-f input-unused.y]], [[1]], [],
[[<command line>:2: error: %define variable 'unused-d' is not used
@@ -1386,7 +1386,7 @@ AT_DATA([Input.y],
%define public "maybe"
%define parser_class_name "Input"
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[Input.y]], [1], [],
@@ -1409,7 +1409,7 @@ AT_SETUP([["%define" enum variables]])
AT_DATA([[input.y]],
[[%define lr.default-reduction bogus
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
[[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]],
[[%define api.push-pull neither
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-fcaret input.y]], [[1]], [[]],
[[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 variant
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[-fcaret input.y]], [1], [],
[[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[
]$1[
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input.y]], [[1]], [],
@@ -1525,7 +1525,7 @@ AT_DATA([[input.y]],
%defines
%define api.namespace "]$1["
%%
-start: ;
+start: %empty;
]])
AT_BISON_CHECK([[input.y]], [1], [],
@@ -1685,7 +1685,7 @@ AT_SETUP([[LAC: Errors for %define]])
AT_DATA([[input.y]],
[[%%
-start: ;
+start: %empty;
]])
# 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]],
[[%%
-foo-bar: ;
+foo-bar: %empty;
]])
# -Werror is not enabled by -Wall or equivalent.
@@ -1745,7 +1745,7 @@ m4_pushdef([AT_TEST],
[AT_DATA([[input.y]],
[[$1
%%
-exp: /* empty */;
+exp: %empty;
]])
AT_BISON_CHECK([[$2 input.y]], [[1]], [[]],
[[$3: error: '%name-prefix' and '%define api.prefix' cannot be used together
diff --git a/tests/reduce.at b/tests/reduce.at
index c5e4fda..7e4977a 100644
--- a/tests/reduce.at
+++ b/tests/reduce.at
@@ -933,7 +933,7 @@ S: 'a' A 'a'
A: 'a' 'a' B
;
B: 'a'
- | %prec 'a'
+ | %empty %prec 'a'
;
c: 'a' 'a' 'b'
| A
@@ -1533,8 +1533,8 @@ a: 'a' ;
and multiple reductions. The first reduction has more lookaheads than the
second, so the first should always be preferred as the default reduction if
enabled. The second reduction has one lookahead. */
-b: ;
-c: ;
+b: %empty;
+c: %empty;
]],
dnl Visit each state mentioned above.
[['a', 'a']],
diff --git a/tests/regression.at b/tests/regression.at
index 544c835..debe932 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -373,7 +373,7 @@ AT_DATA([input.y],
%token <operator> LE 134 "<="
%left OR "<="
%%
-exp: ;
+exp: %empty;
%%
]])
@@ -721,7 +721,7 @@ AT_KEYWORDS([report])
AT_DATA([input.y],
[[%%
statement: struct_stat;
-struct_stat: /* empty. */ | if else;
+struct_stat: %empty | if else;
if: "if" "const" "then" statement;
else: "else" statement;
%%
@@ -869,7 +869,7 @@ type: DATA
| INVALID
;
-body: /* empty */
+body: %empty
| body member
;
@@ -929,7 +929,7 @@ $1
%token B
%%
-program: /* empty */
+program: %empty
| program e ';'
| program error ';';
--
1.8.1.3
- [PATCH 01/12] grammar: introduce %empty, (continued)
- [PATCH 10/12] style: no longer use backquotes in messages, Akim Demaille, 2013/02/18
- [PATCH 08/12] doc: introduce %empty and -Wempty-rule, Akim Demaille, 2013/02/18
- Re: [PATCH 08/12] doc: introduce %empty and -Wempty-rule, Akim Demaille, 2013/02/16
- [PATCH 07/12] report: use %empty to denote empty rules, Akim Demaille, 2013/02/18
- [PATCH 09/12] doc: use %empty instead of /* empty */, Akim Demaille, 2013/02/18
- [PATCH 11/12] style: no longer use backquotes, Akim Demaille, 2013/02/18
- [PATCH 06/12] diagnostics: %empty enables -Wempty-rule, Akim Demaille, 2013/02/18
- [PATCH 05/12] -Wempty-rule: diagnose empty rules without %empty, Akim Demaille, 2013/02/18
- [PATCH 04/12] tests: use %empty,
Akim Demaille <=
- [PATCH 12/12] style: no longer use backquotes, Akim Demaille, 2013/02/18
- [PATCH 03/12] regen, Akim Demaille, 2013/02/18
- Re: get -Wyacc out of -Wall (was: RFC: explicit empty right-hand side of a rule), Akim Demaille, 2013/02/27