]> git.saurik.com Git - bison.git/commitdiff
tests: AT_YYERROR_DEFINE: prepare for list of ints.
authorAkim Demaille <akim@lrde.epita.fr>
Thu, 28 Jun 2012 12:20:17 +0000 (14:20 +0200)
committerAkim Demaille <akim@lrde.epita.fr>
Thu, 28 Jun 2012 13:01:36 +0000 (15:01 +0200)
* 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.

tests/actions.at
tests/conflicts.at
tests/glr-regression.at
tests/local.at
tests/push.at
tests/regression.at

index 3f47928a19c6419d42c3e05ee25c39afcf66c2da..417e01880a3f88e6e0ed58a88907927e0bc8aa6e 100644 (file)
@@ -51,7 +51,7 @@ exp:     { putchar ('0'); }
    ;
 %%
 ]AT_YYERROR_DEFINE[
    ;
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE(123456789)[
+]AT_YYLEX_DEFINE(["123456789"])[
 int
 main (void)
 {
 int
 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
 main (void)
 {
 int
 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
 main (void)
 {
 int
 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
 main (void)
 
 int
 main (void)
@@ -748,7 +748,7 @@ start:
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([abcdef])[
+]AT_YYLEX_DEFINE(["abcdef"])[
 
 int
 main (void)
 
 int
 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
 main (void)
 {
 int
 main (void)
 {
@@ -1066,7 +1066,7 @@ start: { USE($$); } ;
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([])[
+]AT_YYLEX_DEFINE[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -1121,7 +1121,7 @@ start:
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([])[
+]AT_YYLEX_DEFINE[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -1381,7 +1381,7 @@ accept: /*empty*/ {
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([a])[
+]AT_YYLEX_DEFINE(["a"])[
 int
 main (void)
 {
 int
 main (void)
 {
index cafa3338afc54ff95004c16229181d828eab0122..a46acc5ad74d1722de91e6c3ba225c4230bff272 100644 (file)
@@ -491,7 +491,7 @@ reduce-nonassoc: %prec 'a';
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([aaa])[
+]AT_YYLEX_DEFINE(["aaa"])[
 
 int
 main (void)
 
 int
 main (void)
index 91dedb899ba75f9e31e14ddc36e7a250e2d4ff64..f06417793aebe3542697fe0539d387841c5a4f11 100644 (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
 main (void)
 
 int
 main (void)
@@ -466,7 +466,7 @@ start:
    ;
 
 %%
    ;
 
 %%
-]AT_YYLEX_DEFINE(a)[
+]AT_YYLEX_DEFINE(["a"])[
 ]AT_YYERROR_DEFINE[
 int
 main (void)
 ]AT_YYERROR_DEFINE[
 int
 main (void)
@@ -519,7 +519,7 @@ start: 'a' | 'a' ;
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE(a)[
+]AT_YYLEX_DEFINE(["a"])[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -834,7 +834,7 @@ start:
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE()[
+]AT_YYLEX_DEFINE[
 
 int
 main (void)
 
 int
 main (void)
@@ -889,7 +889,7 @@ start:
 %%
 
 ]AT_YYERROR_DEFINE[
 %%
 
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([a])[
+]AT_YYLEX_DEFINE(["a"])[
 
 int
 main (void)
 
 int
 main (void)
@@ -1449,7 +1449,7 @@ ambiguity2: ;
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE()[
+]AT_YYLEX_DEFINE[
 
 int
 main (void)
 
 int
 main (void)
@@ -1663,7 +1663,7 @@ sym3: %merge<merge> { $$ = 0; } ;
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE()[
+]AT_YYLEX_DEFINE[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -1709,7 +1709,7 @@ start:
 b: 'b';
 d: /* nada.  */;
 %%
 b: 'b';
 d: /* nada.  */;
 %%
-]AT_YYLEX_DEFINE([abc])[
+]AT_YYLEX_DEFINE(["abc"])[
 ]AT_YYERROR_DEFINE[
 int
 main (void)
 ]AT_YYERROR_DEFINE[
 int
 main (void)
index 5a5bbdd0028e7cca4394f9cd873db435b817e50c..1baf6616f75321b53db704b4cd8824ee2b804a35 100644 (file)
@@ -291,8 +291,11 @@ $2])
 # AT_YYLEX_PROTOTYPE
 # AT_YYLEX_DECLARE_EXTERN
 # AT_YYLEX_DECLARE
 # AT_YYLEX_PROTOTYPE
 # AT_YYLEX_DECLARE_EXTERN
 # 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],
 [int AT_NAME_PREFIX[]lex (]AT_YYLEX_FORMALS[)[]dnl
 ])
 m4_define([AT_YYLEX_PROTOTYPE],
 [int AT_NAME_PREFIX[]lex (]AT_YYLEX_FORMALS[)[]dnl
 ])
@@ -310,7 +313,9 @@ m4_define([AT_YYLEX_DEFINE],
 static
 ]AT_YYLEX_PROTOTYPE[
 {
 static
 ]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;
   int res;
   ]AT_USE_LEX_ARGS[;
   static size_t toknum = 0;
   int res;
   ]AT_USE_LEX_ARGS[;
index 057807dd21bb45211c4250c3c85afa757a73b74d..d2c09263a56b212b5917f5c890dec0cd7f4ac499 100644 (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
 main (void)
 
 int
 main (void)
index ac7d55ee8c7ae97f8b20b28320a33bf261ceff84..a5e0c14d82d91947c1fbbb5781360148b5667cf6 100644 (file)
@@ -1312,7 +1312,7 @@ syntax_error:
 /* Induce two syntax error messages (which requires full error
    recovery by shifting 3 tokens) in order to detect any loss of the
    reallocated buffer.  */
 /* Induce two syntax error messages (which requires full error
    recovery by shifting 3 tokens) in order to detect any loss of the
    reallocated buffer.  */
-]AT_YYLEX_DEFINE([abc])[
+]AT_YYLEX_DEFINE(["abc"])[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -1419,7 +1419,7 @@ syntax_error2:
 ]AT_YYERROR_DEFINE[
 /* Induce two syntax error messages (which requires full error
    recovery by shifting 3 tokens).  */
 ]AT_YYERROR_DEFINE[
 /* Induce two syntax error messages (which requires full error
    recovery by shifting 3 tokens).  */
-]AT_YYLEX_DEFINE([abc])[
+]AT_YYLEX_DEFINE(["abc"])[
 int
 main (void)
 {
 int
 main (void)
 {
@@ -1569,7 +1569,7 @@ A: /*empty*/ | 'a' ;
 
 %%
 ]AT_YYERROR_DEFINE[
 
 %%
 ]AT_YYERROR_DEFINE[
-]AT_YYLEX_DEFINE([$1])[
+]AT_YYLEX_DEFINE(["$1"])[
 int
 main (void)
 {
 int
 main (void)
 {