X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/08af01c2fc26eeb77afe3a667dded68c52ea3c37..a2ea208d82fdd67257d16e11b93ab17a8c48d452:/tests/input.at diff --git a/tests/input.at b/tests/input.at index 0c385422..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 @@ -703,46 +704,141 @@ AT_CHECK([bison input.y], [1], [], AT_CLEANUP -## ----------------------------- ## -## Reject bad %code qualifiers. ## -## ----------------------------- ## +## -------------------------------- ## +## Reject unused %code qualifiers. ## +## -------------------------------- ## -AT_SETUP([Reject bad %code qualifiers]) +AT_SETUP([Reject unused %code qualifiers]) AT_DATA([input-c.y], -[[%code "" {} +[[%code q {} +%code bad {} +%code bad {} +%code format {} %% start: ; ]]) -AT_CHECK([[bison input-c.y]], [1], [], -[[input-c.y: `' is not a recognized %code qualifier +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 "bad" {} +[[%code q {} +%code bad {} + %code bad {} %% start: ; ]]) -AT_CHECK([[bison input-c-glr.y]], [1], [], -[[input-c-glr.y: `bad' is not a recognized %code qualifier +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 "bad" {} +[[%code q {} +%code bad {} + %code q {} %% start: ; ]]) -AT_CHECK([[bison input-c++.y]], [1], [], -[[input-c++.y: `bad' is not a recognized %code qualifier +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 bad {} +%code q {} +%code q {} %% start: ; ]]) -AT_CHECK([[bison input-c++-glr.y]], [1], [], -[[input-c++-glr.y: `bad' is not a recognized %code qualifier +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