Merge remote-tracking branch 'origin/maint'

* origin/maint:
  tests: use the generalized default yylex.
  tests: AT_YYERROR_DEFINE: prepare for list of ints.
  skeletons: no longer define YYLSP_NEEDED.
  c++: do not export YYTOKEN_TABLE and YYERROR_VERBOSE.

Conflicts:
	data/c.m4
	data/glr.cc
	data/lalr1.cc
	doc/bison.texi
	tests/regression.at
This commit is contained in:
Akim Demaille
2012-06-28 15:29:18 +02:00
15 changed files with 95 additions and 176 deletions

View File

@@ -463,15 +463,7 @@ AT_DATA_GRAMMAR([input.y],
exp: "a" "\\\'\?\"\a\b\f\n\r\t\v\001\201\x001\x000081??!";
%%
]AT_YYERROR_DEFINE[
int
yylex (void)
{
static int called;
if (called++)
abort ();
return SPECIAL;
}
]AT_YYLEX_DEFINE([{ SPECIAL }])[
int
main (void)
@@ -837,13 +829,11 @@ AT_CLEANUP
# so that possible bound checking compilers could check all the skeletons.
m4_define([_AT_DATA_DANCER_Y],
[AT_DATA_GRAMMAR([dancer.y],
[%{
static int yylex (AT_LALR1_CC_IF([int *], [void]));
AT_LALR1_CC_IF([#include <cstdlib>],
[#include <stdlib.h>
#include <stdio.h>
]AT_YYERROR_DECLARE[])
%}
[[%code provides
{
]AT_YYERROR_DECLARE[
]AT_YYLEX_DECLARE[
}
$1
%token ARROW INVALID NUMBER STRING DATA
%defines
@@ -888,7 +878,8 @@ member: STRING
| INVALID
;
%%
AT_YYERROR_DEFINE[
]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([":"])[
]AT_LALR1_CC_IF(
[int
yyparse ()
@@ -899,28 +890,14 @@ yyparse ()
#endif
return parser.parse ();
}
])
#include <assert.h>
static int
yylex (AT_LALR1_CC_IF([int *lval], [void]))
[{
static int const tokens[] =
{
':', -1
};
static size_t toknum;
]AT_LALR1_CC_IF([*lval = 0; /* Pacify GCC. */])[
assert (toknum < sizeof tokens / sizeof *tokens);
return tokens[toknum++];
}]
])[
int
main (void)
{
return yyparse ();
}
])
]])
])# _AT_DATA_DANCER_Y
@@ -1062,13 +1039,8 @@ start:
%printer { fprintf (yyoutput, "PRINTER"); } 'a';
%%
]AT_YYERROR_DEFINE[
static int
yylex (void)
{
return 'a';
}
]AT_YYLEX_DEFINE(["a"])[
int
main (void)
@@ -1201,13 +1173,7 @@ sr_conflict:
%%
]AT_YYERROR_DEFINE[
int
yylex (void)
{
static int const input[] = { 1, 2, 3, 0 };
static int const *inputp = input;
return *inputp++;
}
]AT_YYLEX_DEFINE([{ 1, 2, 3, 0 }])[
int
main (void)
@@ -1304,7 +1270,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. */
]AT_YYLEX_DEFINE([abc])[
]AT_YYLEX_DEFINE(["abc"])[
int
main (void)
{
@@ -1412,7 +1378,7 @@ syntax_error2:
]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)
{
@@ -1562,7 +1528,7 @@ A: /*empty*/ | 'a' ;
%%
]AT_YYERROR_DEFINE[
]AT_YYLEX_DEFINE([$1])[
]AT_YYLEX_DEFINE(["$1"])[
int
main (void)
{