mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-26 04:33:04 +00:00
* tests/glr-regr1.at (Badly Collapsed GLR States): Prototype yylex
and yyerror. Have yyerror `use' its arguments. * tests/calc.at (AT_CHECK_PUSHDEFS): AT_YYERROR_SEES_LOC_IF returns true when location & yacc & pure & parse-param. (_AT_DATA_CALC_Y): Let yyerror ``use'' its arguments.
This commit is contained in:
@@ -29,6 +29,8 @@ AT_DATA([glr-regr1.y],
|
||||
|
||||
#define YYSTYPE int
|
||||
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1);
|
||||
int yylex (void);
|
||||
int yyerror (char const *msg);
|
||||
%}
|
||||
|
||||
|
||||
@@ -52,24 +54,29 @@ E: E 'P' E { $$=1; printf("E -> E 'P' E\n"); } %merge <exprMerge>
|
||||
|
||||
static YYSTYPE exprMerge (YYSTYPE x0, YYSTYPE x1)
|
||||
{
|
||||
(void) x0;
|
||||
(void) x1;
|
||||
printf ("<OR>\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main()
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
yyparse();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int yyerror(char const *msg)
|
||||
int
|
||||
yyerror (char const *msg)
|
||||
{
|
||||
printf("%s\n", msg);
|
||||
exit(4);
|
||||
}
|
||||
|
||||
|
||||
int yylex()
|
||||
int
|
||||
yylex (void)
|
||||
{
|
||||
while (1) {
|
||||
int ch = fgetc(stdin);
|
||||
@@ -86,7 +93,7 @@ AT_CHECK([[bison -o glr-regr1.c glr-regr1.y]], 0, [],
|
||||
[glr-regr1.y: warning: 1 shift/reduce conflict
|
||||
])
|
||||
AT_COMPILE([glr-regr1])
|
||||
AT_CHECK([[echo BPBPB | ./glr-regr1]], 0,
|
||||
AT_CHECK([[echo BPBPB | ./glr-regr1]], 0,
|
||||
[[E -> 'B'
|
||||
E -> 'B'
|
||||
E -> E 'P' E
|
||||
|
||||
Reference in New Issue
Block a user