X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/ac5dd84c25dab37836c551703ceea5603834957f..6876ecd36eacdc5dbcb193d9caea5a56fa8e907b:/tests/conflicts.at?ds=sidebyside diff --git a/tests/conflicts.at b/tests/conflicts.at index ee5fd026..ec9847aa 100644 --- a/tests/conflicts.at +++ b/tests/conflicts.at @@ -38,7 +38,7 @@ e: 'e' | /* Nothing. */; ]]) AT_CHECK([bison -o input.c input.y], 0, [], -[[input.y:4.8: warning: rule never reduced because of conflicts: e: /* empty */ +[[input.y:4.9: warning: rule never reduced because of conflicts: e: /* empty */ ]]) AT_CLEANUP @@ -50,14 +50,9 @@ AT_CLEANUP AT_SETUP([%nonassoc and eof]) -AT_DATA([input.y], +AT_DATA_GRAMMAR([input.y], [[ %{ -#include -/* We don't need perfect functions for these tests. */ -#undef malloc -#undef memcmp -#undef realloc #include #if STDC_HEADERS @@ -113,16 +108,16 @@ AT_PARSER_CHECK([./input '0<0']) # no one has ever spotted it! The messages are *wrong*: there should # be nothing there, it should be expected eof. AT_PARSER_CHECK([./input '0<0<0'], [1], [], - [parse error, unexpected '<', expecting '<' or '>' + [syntax error, unexpected '<', expecting '<' or '>' ]) AT_PARSER_CHECK([./input '0>0']) AT_PARSER_CHECK([./input '0>0>0'], [1], [], - [parse error, unexpected '>', expecting '<' or '>' + [syntax error, unexpected '>', expecting '<' or '>' ]) AT_PARSER_CHECK([./input '0<0>0'], [1], [], - [parse error, unexpected '>', expecting '<' or '>' + [syntax error, unexpected '>', expecting '<' or '>' ]) AT_CLEANUP @@ -375,7 +370,7 @@ id : '0'; 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' +input.y:4.6-8: warning: rule never reduced because of conflicts: id: '0' ]]) # Check the contents of the report. @@ -532,3 +527,23 @@ AT_CHECK([bison -o input.c input.y], 1, [], input.y: expected 2 shift/reduce conflicts ]) AT_CLEANUP + + +## ------------------------------ ## +## %expect with reduce conflicts ## +## ------------------------------ ## + +AT_SETUP([%expect with reduce conflicts]) + +AT_DATA([input.y], +[[%expect 0 +%% +program: a 'a' | a a; +a: 'a'; +]]) + +AT_CHECK([bison -o input.c input.y], 1, [], +[input.y: warning: 1 reduce/reduce conflict +input.y: expected 0 reduce/reduce conflicts +]) +AT_CLEANUP