tests: AT_YYERROR_DEFINE: prepare for list of ints.

* tests/local.at (AT_YYERROR_DEFINE): Don't add quotes, check their
presence to detect char/int types.
* tests/actions.at, tests/conflicts.at, tests/glr-regression.at,
* tests/push.at, tests/regression.at: Adjust.
This commit is contained in:
Akim Demaille
2012-06-28 14:20:17 +02:00
parent 694af10cb7
commit 95361618de
6 changed files with 30 additions and 25 deletions

View File

@@ -51,7 +51,7 @@ exp: { putchar ('0'); }
; ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE(123456789)[ ]AT_YYLEX_DEFINE(["123456789"])[
int int
main (void) main (void)
{ {
@@ -116,7 +116,7 @@ sum_of_the_five_previous_values:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([])[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
{ {
@@ -151,7 +151,7 @@ sum: { printf ("%d\n", $0.val + $-1.val + $-2.val); } ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE()[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
{ {
@@ -636,7 +636,7 @@ start: 'a' 'b' 'c' 'd' 'e' { $$ = 'S'; USE(($1, $2, $3, $4, $5)); } ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([abcd], [[yylval = res]])[ ]AT_YYLEX_DEFINE(["abcd"], [[yylval = res]])[
int int
main (void) main (void)
@@ -748,7 +748,7 @@ start:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([abcdef])[ ]AT_YYLEX_DEFINE(["abcdef"])[
int int
main (void) main (void)
@@ -966,7 +966,7 @@ start:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([abd], [yylval = res])[ ]AT_YYLEX_DEFINE(["abd"], [yylval = res])[
int int
main (void) main (void)
{ {
@@ -1066,7 +1066,7 @@ start: { USE($$); } ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([])[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
{ {
@@ -1121,7 +1121,7 @@ start:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([])[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
{ {
@@ -1381,7 +1381,7 @@ accept: /*empty*/ {
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([a])[ ]AT_YYLEX_DEFINE(["a"])[
int int
main (void) main (void)
{ {

View File

@@ -491,7 +491,7 @@ reduce-nonassoc: %prec 'a';
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([aaa])[ ]AT_YYLEX_DEFINE(["aaa"])[
int int
main (void) main (void)

View File

@@ -383,7 +383,7 @@ B: 'a' { $$ = make_value ("B", "'a'"); } ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([a])[ ]AT_YYLEX_DEFINE(["a"])[
int int
main (void) main (void)
@@ -466,7 +466,7 @@ start:
; ;
%% %%
]AT_YYLEX_DEFINE(a)[ ]AT_YYLEX_DEFINE(["a"])[
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
int int
main (void) main (void)
@@ -519,7 +519,7 @@ start: 'a' | 'a' ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE(a)[ ]AT_YYLEX_DEFINE(["a"])[
int int
main (void) main (void)
{ {
@@ -834,7 +834,7 @@ start:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE()[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
@@ -889,7 +889,7 @@ start:
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([a])[ ]AT_YYLEX_DEFINE(["a"])[
int int
main (void) main (void)
@@ -1449,7 +1449,7 @@ ambiguity2: ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE()[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
@@ -1663,7 +1663,7 @@ sym3: %merge<merge> { $$ = 0; } ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE()[ ]AT_YYLEX_DEFINE[
int int
main (void) main (void)
{ {
@@ -1709,7 +1709,7 @@ start:
b: 'b'; b: 'b';
d: /* nada. */; d: /* nada. */;
%% %%
]AT_YYLEX_DEFINE([abc])[ ]AT_YYLEX_DEFINE(["abc"])[
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
int int
main (void) main (void)

View File

@@ -291,8 +291,11 @@ $2])
# AT_YYLEX_PROTOTYPE # AT_YYLEX_PROTOTYPE
# AT_YYLEX_DECLARE_EXTERN # AT_YYLEX_DECLARE_EXTERN
# AT_YYLEX_DECLARE # AT_YYLEX_DECLARE
# AT_YYLEX_DEFINE(INPUT-STRING, [ACTION]) # AT_YYLEX_DEFINE([INPUT], [ACTION])
# --------------------------------------- # ----------------------------------
# INPUT can be empty, or in double quotes, or a list (in braces).
# ACTION may compute yylval for instance, using "res" as token type,
# and "toknum" as the number of calls to yylex (starting at 0).
m4_define([AT_YYLEX_PROTOTYPE], m4_define([AT_YYLEX_PROTOTYPE],
[int AT_NAME_PREFIX[]lex (]AT_YYLEX_FORMALS[)[]dnl [int AT_NAME_PREFIX[]lex (]AT_YYLEX_FORMALS[)[]dnl
]) ])
@@ -310,7 +313,9 @@ m4_define([AT_YYLEX_DEFINE],
static static
]AT_YYLEX_PROTOTYPE[ ]AT_YYLEX_PROTOTYPE[
{ {
static char const input[] = "$1"; ]m4_bmatch([$1], [^\(".*"\)?$],
[[static char const input[] = ]m4_default([$1], [""])],
[[static int const input[] = ]$1])[;
static size_t toknum = 0; static size_t toknum = 0;
int res; int res;
]AT_USE_LEX_ARGS[; ]AT_USE_LEX_ARGS[;

View File

@@ -101,7 +101,7 @@ start: ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]m4_if([$1], [[both]], [AT_YYLEX_DEFINE([])])[ ]m4_if([$1], [[both]], [AT_YYLEX_DEFINE])[
int int
main (void) main (void)

View File

@@ -1312,7 +1312,7 @@ syntax_error:
/* Induce two syntax error messages (which requires full error /* Induce two syntax error messages (which requires full error
recovery by shifting 3 tokens) in order to detect any loss of the recovery by shifting 3 tokens) in order to detect any loss of the
reallocated buffer. */ reallocated buffer. */
]AT_YYLEX_DEFINE([abc])[ ]AT_YYLEX_DEFINE(["abc"])[
int int
main (void) main (void)
{ {
@@ -1419,7 +1419,7 @@ syntax_error2:
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
/* Induce two syntax error messages (which requires full error /* Induce two syntax error messages (which requires full error
recovery by shifting 3 tokens). */ recovery by shifting 3 tokens). */
]AT_YYLEX_DEFINE([abc])[ ]AT_YYLEX_DEFINE(["abc"])[
int int
main (void) main (void)
{ {
@@ -1569,7 +1569,7 @@ A: /*empty*/ | 'a' ;
%% %%
]AT_YYERROR_DEFINE[ ]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([$1])[ ]AT_YYLEX_DEFINE(["$1"])[
int int
main (void) main (void)
{ {