X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3fc65ead4d318a3dbde92afab9956af14dc73b42..1b17b01d0fa00512e2d7b561757336bff9784fa0:/tests/input.at diff --git a/tests/input.at b/tests/input.at index 352aaeaa..6aeb258c 100644 --- a/tests/input.at +++ b/tests/input.at @@ -1,20 +1,19 @@ # 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 +# 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 -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. - +# # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program. If not, see . AT_BANNER([[Input Processing.]]) @@ -703,88 +702,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 "bad" {} -%code "bad" {} +[[%code q {} +%code bad {} +%code bad {} +%code format {} %% start: ; ]]) -AT_CHECK([[bison input-c.y]], [1], [], -[[input-c.y:1.7-8: `' is not a recognized %code qualifier -input-c.y:2.7-11: `bad' is not a recognized %code qualifier -input-c.y:3.7-11: `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.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 "" {} -%code "bad" {} - %code "bad" {} +[[%code q {} +%code bad {} + %code bad {} %% start: ; ]]) -AT_CHECK([[bison input-c-glr.y]], [1], [], -[[input-c-glr.y:1.7-8: `' is not a recognized %code qualifier -input-c-glr.y:2.7-11: `bad' is not a recognized %code qualifier -input-c-glr.y:3.8-12: `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 "" {} -%code "bad" {} - %code "" {} +[[%code q {} +%code bad {} + %code q {} %% start: ; ]]) -AT_CHECK([[bison input-c++.y]], [1], [], -[[input-c++.y:1.7-8: `' is not a recognized %code qualifier -input-c++.y:2.7-11: `bad' is not a recognized %code qualifier -input-c++.y:3.8-9: `' 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 "" {} -%code "" {} +[[%code bad {} +%code q {} +%code q {} %% start: ; ]]) -AT_CHECK([[bison input-c++-glr.y]], [1], [], -[[input-c++-glr.y:1.7-11: `bad' is not a recognized %code qualifier -input-c++-glr.y:2.7-8: `' is not a recognized %code qualifier -input-c++-glr.y:3.7-8: `' 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 "" {} -%code "" {} +[[%code bad {} +%code q {} +%code q {} %% start: ; ]]) -AT_CHECK([[bison special-char-@@.y]], [1], [], -[[special-char-@@.y:1.7-11: `bad' is not a recognized %code qualifier -special-char-@@.y:2.7-8: `' is not a recognized %code qualifier -special-char-@@.y:3.7-8: `' is not a recognized %code qualifier +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 "" {} -%code "" {} +[[%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 special-char-@:>@.y]], [1], [], -[[special-char-@:>@.y:1.7-11: `bad' is not a recognized %code qualifier -special-char-@:>@.y:2.7-8: `' is not a recognized %code qualifier -special-char-@:>@.y:3.7-8: `' is not a recognized %code qualifier + +AT_CHECK([[bison Input.y]], [1], [], +[[Input.y:2.9-14: invalid value for %define boolean variable `public' ]]) AT_CLEANUP