X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3ebecc240d845191154734074e64dc9d15cb1daa..a2ea208d82fdd67257d16e11b93ab17a8c48d452:/tests/input.at diff --git a/tests/input.at b/tests/input.at index 5df3d5af..d0bdcbdd 100644 --- a/tests/input.at +++ b/tests/input.at @@ -1,5 +1,6 @@ # Checking the Bison scanner. -*- Autotest -*- -# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, +# Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -25,7 +26,7 @@ AT_BANNER([[Input Processing.]]) ## Invalid $n. ## ## ------------ ## -AT_SETUP([Invalid \$n and @n]) +AT_SETUP([Invalid $n and @n]) AT_DATA([input.y], [[%% @@ -701,3 +702,143 @@ AT_CHECK([bison input.y], [1], [], ]]) AT_CLEANUP + + +## -------------------------------- ## +## Reject unused %code qualifiers. ## +## -------------------------------- ## + +AT_SETUP([Reject unused %code qualifiers]) + +AT_DATA([input-c.y], +[[%code q {} +%code bad {} +%code bad {} +%code format {} +%% +start: ; +]]) +AT_CHECK([[bison input-c.y]], [0], [], +[[input-c.y:1.7: warning: %code qualifier `q' is not used +input-c.y:2.7-9: warning: %code qualifier `bad' is not used +input-c.y:3.7-9: warning: %code qualifier `bad' is not used +input-c.y:4.7-12: warning: %code qualifier `format' is not used +]]) + +AT_DATA([input-c-glr.y], +[[%code q {} +%code bad {} + %code bad {} +%% +start: ; +]]) +AT_CHECK([[bison input-c-glr.y]], [0], [], +[[input-c-glr.y:1.7: warning: %code qualifier `q' is not used +input-c-glr.y:2.7-9: warning: %code qualifier `bad' is not used +input-c-glr.y:3.8-10: warning: %code qualifier `bad' is not used +]]) + +AT_DATA([input-c++.y], +[[%code q {} +%code bad {} + %code q {} +%% +start: ; +]]) +AT_CHECK([[bison input-c++.y]], [0], [], +[[input-c++.y:1.7: warning: %code qualifier `q' is not used +input-c++.y:2.7-9: warning: %code qualifier `bad' is not used +input-c++.y:3.8: warning: %code qualifier `q' is not used +]]) + +AT_DATA([input-c++-glr.y], +[[%code bad {} +%code q {} +%code q {} +%% +start: ; +]]) +AT_CHECK([[bison input-c++-glr.y]], [0], [], +[[input-c++-glr.y:1.7-9: warning: %code qualifier `bad' is not used +input-c++-glr.y:2.7: warning: %code qualifier `q' is not used +input-c++-glr.y:3.7: warning: %code qualifier `q' is not used +]]) + +AT_DATA([special-char-@@.y], +[[%code bad {} +%code q {} +%code q {} +%% +start: ; +]]) +AT_CHECK([[bison special-char-@@.y]], [0], [], +[[special-char-@@.y:1.7-9: warning: %code qualifier `bad' is not used +special-char-@@.y:2.7: warning: %code qualifier `q' is not used +special-char-@@.y:3.7: warning: %code qualifier `q' is not used +]]) + +AT_DATA([special-char-@:>@.y], +[[%code bad {} +%code q {} +%code q {} +%% +start: ; +]]) +AT_CHECK([[bison special-char-@:>@.y]], [0], [], +[[special-char-@:>@.y:1.7-9: warning: %code qualifier `bad' is not used +special-char-@:>@.y:2.7: warning: %code qualifier `q' is not used +special-char-@:>@.y:3.7: warning: %code qualifier `q' is not used +]]) + +AT_CLEANUP + + +## ---------------- ## +## %define errors. ## +## ---------------- ## + +AT_SETUP([%define errors]) + +AT_DATA([input.y], +[[%define var "value1" +%define var "value1" + %define var "value2" +%define special1 "@:>@" +%define special2 "@<:@" +%% +start: ; +]]) + +AT_CHECK([[bison input.y]], [0], [], +[[input.y:2.9-11: warning: %define variable `var' redefined +input.y:1.9-11: warning: previous definition +input.y:3.10-12: warning: %define variable `var' redefined +input.y:2.9-11: warning: previous definition +input.y:1.9-11: warning: %define variable `var' is not used +input.y:2.9-11: warning: %define variable `var' is not used +input.y:3.10-12: warning: %define variable `var' is not used +input.y:4.9-16: warning: %define variable `special1' is not used +input.y:5.9-16: warning: %define variable `special2' is not used +]]) + +AT_CLEANUP + +## --------------------------- ## +## Boolean %define variables. ## +## --------------------------- ## + +AT_SETUP([Boolean %define variables]) + +AT_DATA([Input.y], +[[%language "Java" +%define public "maybe" +%define parser_class_name "Input" +%% +start: ; +]]) + +AT_CHECK([[bison Input.y]], [1], [], +[[Input.y:2.9-14: invalid value for %define boolean variable `public' +]]) + +AT_CLEANUP