X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6b98e4b5636203b60c2a43ddaa988562616b4c69..88bce5a2ef15e5b508749e75ddad709aca85b019:/tests/reduce.at diff --git a/tests/reduce.at b/tests/reduce.at index ba9d27ed..4c8da723 100644 --- a/tests/reduce.at +++ b/tests/reduce.at @@ -124,6 +124,8 @@ AT_CLEANUP AT_SETUP([Useless Rules]) +AT_KEYWORDS([report]) + AT_DATA([[input.y]], [[%verbose %output="input.c" @@ -184,16 +186,16 @@ Terminals which are not used: '7' '8' '9' -Useless rules: -#2 useless1: '1'; -#3 useless2: '2'; -#4 useless3: '3'; -#5 useless4: '4'; -#6 useless5: '5'; -#7 useless6: '6'; -#8 useless7: '7'; -#9 useless8: '8'; -#10 useless9: '9'; +Useless rules + 2 useless1: '1' + 3 useless2: '2' + 4 useless3: '3' + 5 useless4: '4' + 6 useless5: '5' + 7 useless6: '6' + 8 useless7: '7' + 9 useless8: '8' + 10 useless9: '9' ]]) AT_CLEANUP @@ -209,6 +211,8 @@ AT_CLEANUP AT_SETUP([Reduced Automaton]) +AT_KEYWORDS([report]) + # The non reduced grammar. # ------------------------ AT_DATA([[not-reduced.y]], @@ -249,10 +253,10 @@ AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' not-reduced.output]], 0, non_productive Terminals which are not used: useless_token -Useless rules: -#2 exp: non_productive; -#3 not_reachable: useful; -#4 non_productive: non_productive useless_token; +Useless rules + 2 exp: non_productive + 3 not_reachable: useful + 4 non_productive: non_productive useless_token ]]) # The reduced grammar. @@ -296,6 +300,8 @@ AT_CLEANUP AT_SETUP([Underivable Rules]) +AT_KEYWORDS([report]) + AT_DATA([[input.y]], [[%verbose %output="input.c" @@ -319,10 +325,31 @@ AT_CHECK([[sed -n '/^Grammar/q;/^$/!p' input.output]], 0, [[Useless nonterminals: underivable indirection -Useless rules: -#2 exp: underivable; -#3 underivable: indirection; -#4 indirection: underivable; +Useless rules + 2 exp: underivable + 3 underivable: indirection + 4 indirection: underivable +]]) + +AT_CLEANUP + + + +## ---------------- ## +## Empty Language. ## +## ---------------- ## + +AT_SETUP([Empty Language]) + +AT_DATA([[input.y]], +[[%output="input.c" +%% +exp: exp; +]]) + +AT_CHECK([[bison input.y]], 1, [], +[[input.y: warning: 2 useless nonterminals and 2 useless rules +input.y:3.1-3: fatal error: start symbol exp does not derive any sentence ]]) AT_CLEANUP