X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/88bce5a2ef15e5b508749e75ddad709aca85b019..ac5dd84c25dab37836c551703ceea5603834957f:/tests/conflicts.at diff --git a/tests/conflicts.at b/tests/conflicts.at index 84b4fcda..ee5fd026 100644 --- a/tests/conflicts.at +++ b/tests/conflicts.at @@ -37,7 +37,9 @@ exp: e 'e'; e: 'e' | /* Nothing. */; ]]) -AT_CHECK([bison input.y -o input.c]) +AT_CHECK([bison -o input.c input.y], 0, [], +[[input.y:4.8: warning: rule never reduced because of conflicts: e: /* empty */ +]]) AT_CLEANUP @@ -52,8 +54,10 @@ AT_DATA([input.y], [[ %{ #include -/* We don't need a perfect malloc for these tests. */ +/* We don't need perfect functions for these tests. */ #undef malloc +#undef memcmp +#undef realloc #include #if STDC_HEADERS @@ -101,7 +105,7 @@ main (int argc, const char *argv[]) ]]) # Specify the output files to avoid problems on different file systems. -AT_CHECK([bison input.y -o input.c]) +AT_CHECK([bison -o input.c input.y]) AT_COMPILE([input]) AT_PARSER_CHECK([./input '0<0']) @@ -139,8 +143,8 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison input.y -o input.c --report=all], 0, [], -[input.y contains 1 shift/reduce conflict. +AT_CHECK([bison -o input.c --report=all input.y], 0, [], +[input.y: warning: 1 shift/reduce conflict ]) # Check the contents of the report. @@ -203,7 +207,7 @@ state 3 0 $accept: exp $end . - $default accept + $default accept state 4 @@ -247,7 +251,7 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison input.y -o input.c --report=all]) +AT_CHECK([bison -o input.c --report=all input.y]) # Check the contents of the report. AT_CHECK([cat input.output], [], @@ -306,7 +310,7 @@ state 3 0 $accept: exp $end . - $default accept + $default accept state 4 @@ -326,6 +330,7 @@ state 5 1 | exp OP exp . [$end, OP] $default reduce using rule 1 (exp) + Conflict between rule 1 and token OP resolved as reduce (%left OP). ]]) @@ -368,13 +373,19 @@ id : '0'; %% ]]) -AT_CHECK([bison input.y -o input.c --report=all], 0, [], -[input.y contains 1 reduce/reduce conflict. -]) +AT_CHECK([bison -o input.c --report=all input.y], 0, [], +[[input.y: warning: 1 reduce/reduce conflict +input.y:4.4-8: warning: rule never reduced because of conflicts: id: '0' +]]) # Check the contents of the report. AT_CHECK([cat input.output], [], -[[State 1 contains 1 reduce/reduce conflict. +[[Rules never reduced + + 4 id: '0' + + +State 1 contains 1 reduce/reduce conflict. Grammar @@ -458,7 +469,7 @@ state 5 0 $accept: exp $end . - $default accept + $default accept ]]) AT_CLEANUP @@ -479,9 +490,9 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison input.y -o input.c], 1, [], -[input.y contains 1 shift/reduce conflict. -expected 0 shift/reduce conflicts +AT_CHECK([bison -o input.c input.y], 1, [], +[input.y: warning: 1 shift/reduce conflict +input.y: expected 0 shift/reduce conflicts ]) AT_CLEANUP @@ -499,7 +510,7 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison input.y -o input.c]) +AT_CHECK([bison -o input.c input.y]) AT_CLEANUP @@ -516,8 +527,8 @@ AT_DATA([input.y], exp: exp OP exp | NUM; ]]) -AT_CHECK([bison input.y -o input.c], 1, [], -[input.y contains 1 shift/reduce conflict. -expected 2 shift/reduce conflicts +AT_CHECK([bison -o input.c input.y], 1, [], +[input.y: warning: 1 shift/reduce conflict +input.y: expected 2 shift/reduce conflicts ]) AT_CLEANUP