diff options
author | Joel E. Denny <jdenny@ces.clemson.edu> | 2009-04-30 01:04:33 -0400 |
---|---|---|
committer | Joel E. Denny <jdenny@ces.clemson.edu> | 2009-04-30 03:43:42 -0400 |
commit | 812775a0391e122eff1983afea2da96c600c7307 (patch) | |
tree | f3accb365dc27559a7f6cf20e1f4206c7b55db5b /tests | |
parent | 1c4aa81df1fd11e2be5b2af78b4375f85bb2e59e (diff) | |
download | bison-812775a0391e122eff1983afea2da96c600c7307.tar.gz |
Convert underscores to dashes in some %define variable names.
For now, just api.push-pull and lr.keep-unreachable-states.
Maintain old names for backward compatibility.
* NEWS (2.5): Document.
* data/c.m4 (b4_identification): Update comment.
* data/yacc.c: Update access.
* doc/bison.texinfo: Update.
* etc/bench.pl.in (bench_grammar): Update use.
* src/files.c (tr): Move to...
* src/getargs.c, src/getargs.h (tr): ... here because I can't
think of a better place to expose it. My logic is that, for all
uses of tr so far, command-line arguments can be involved, and
getargs.h is already included.
* src/main.c (main): Update access.
* src/muscle_tab.c (muscle_percent_define_insert): Convert old
variable names to new variable names before assigning value.
* src/reader.c (reader): Update setting default.
* tests/calc.at: Update uses.
* tests/conflicts.at (Unreachable States After Conflict
Resolution): Update use.
* tests/input.at (%define enum variables): Update use.
(%define backward compatibility): New test group.
* tests/push.at: Update uses.
* tests/reduce.at: Update uses.
* tests/torture.at: Update uses.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/calc.at | 8 | ||||
-rw-r--r-- | tests/conflicts.at | 5 | ||||
-rw-r--r-- | tests/input.at | 43 | ||||
-rw-r--r-- | tests/push.at | 10 | ||||
-rw-r--r-- | tests/reduce.at | 8 | ||||
-rw-r--r-- | tests/torture.at | 8 |
6 files changed, 62 insertions, 20 deletions
diff --git a/tests/calc.at b/tests/calc.at index 5f118580..802d4830 100644 --- a/tests/calc.at +++ b/tests/calc.at @@ -1,7 +1,7 @@ # Simple calculator. -*- Autotest -*- -# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free -# Software Foundation, Inc. +# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, +# 2009 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 @@ -576,7 +576,7 @@ AT_CHECK_CALC_LALR([%yacc]) AT_CHECK_CALC_LALR([%error-verbose]) AT_CHECK_CALC_LALR([%define api.pure %locations]) -AT_CHECK_CALC_LALR([%define api.push_pull "both" %define api.pure %locations]) +AT_CHECK_CALC_LALR([%define api.push-pull "both" %define api.pure %locations]) AT_CHECK_CALC_LALR([%error-verbose %locations]) AT_CHECK_CALC_LALR([%error-verbose %locations %defines %name-prefix "calc" %verbose %yacc]) @@ -585,7 +585,7 @@ AT_CHECK_CALC_LALR([%debug]) AT_CHECK_CALC_LALR([%error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) AT_CHECK_CALC_LALR([%define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) -AT_CHECK_CALC_LALR([%define api.push_pull "both" %define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) +AT_CHECK_CALC_LALR([%define api.push-pull "both" %define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc]) AT_CHECK_CALC_LALR([%define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}]) diff --git a/tests/conflicts.at b/tests/conflicts.at index 866b9441..78a90ad0 100644 --- a/tests/conflicts.at +++ b/tests/conflicts.at @@ -1,6 +1,7 @@ # Exercising Bison on conflicts. -*- Autotest -*- -# Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2007, 2009 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 @@ -813,7 +814,7 @@ state 7 ]]) AT_DATA([[input-keep.y]], -[[%define lr.keep_unreachable_states +[[%define lr.keep-unreachable-states ]]) AT_CHECK([[cat input.y >> input-keep.y]]) diff --git a/tests/input.at b/tests/input.at index b1f5f0a3..73bf7345 100644 --- a/tests/input.at +++ b/tests/input.at @@ -951,17 +951,58 @@ input.y:1.9-29: accepted value: `accepting' # Back-end. AT_DATA([[input.y]], +[[%define api.push-pull "neither" +%% +start: ; +]]) +AT_BISON_CHECK([[input.y]], [1], [], +[[input.y:1.9-21: invalid value for %define variable `api.push-pull': `neither' +input.y:1.9-21: accepted value: `pull' +input.y:1.9-21: accepted value: `push' +input.y:1.9-21: accepted value: `both' +]]) + +AT_CLEANUP + +## -------------------------------- ## +## %define backward compatibility. ## +## -------------------------------- ## + +AT_SETUP([[%define backward compatibility]]) + +# The error messages tell us whether underscores in these variables are +# being converted to dashes. + +AT_DATA([[input.y]], [[%define api.push_pull "neither" %% start: ; ]]) AT_BISON_CHECK([[input.y]], [1], [], -[[input.y:1.9-21: invalid value for %define variable `api.push_pull': `neither' +[[input.y:1.9-21: invalid value for %define variable `api.push-pull': `neither' input.y:1.9-21: accepted value: `pull' input.y:1.9-21: accepted value: `push' input.y:1.9-21: accepted value: `both' ]]) +AT_DATA([[input.y]], +[[%define lr.keep_unreachable_states "maybe" +%% +start: ; +]]) +AT_BISON_CHECK([[input.y]], [1], [], +[[input.y:1.9-34: invalid value for %define Boolean variable `lr.keep-unreachable-states' +]]) + +AT_DATA([[input.y]], +[[%define foo_bar "baz" +%% +start: ; +]]) +AT_BISON_CHECK([[input.y]], [0], [], +[[input.y:1.9-15: warning: %define variable `foo_bar' is not used +]]) + AT_CLEANUP ## ------------------------- ## diff --git a/tests/push.at b/tests/push.at index 70c1fdce..bf48c682 100644 --- a/tests/push.at +++ b/tests/push.at @@ -1,5 +1,5 @@ # Checking Push Parsing. -*- Autotest -*- -# Copyright (C) 2007 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009 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 @@ -33,7 +33,7 @@ AT_DATA_GRAMMAR([[input.y]], void yyerror (char const *msg); %} -%define api.pure %define api.push_pull "push" +%define api.pure %define api.push-pull "push" %% @@ -93,7 +93,7 @@ AT_DATA_GRAMMAR([[input.y]], int yylex (void); %} -%define api.push_pull "]$1[" +%define api.push-pull "]$1[" %% @@ -156,13 +156,13 @@ AT_SETUP([[Push Parsing: Unsupported Skeletons]]) AT_DATA([[input.y]], [[%glr-parser -%define api.push_pull "push" +%define api.push-pull "push" %% start: ; ]]) AT_BISON_CHECK([[input.y]], [0], [], -[[input.y:2.9-21: warning: %define variable `api.push_pull' is not used +[[input.y:2.9-21: warning: %define variable `api.push-pull' is not used ]]) AT_CLEANUP diff --git a/tests/reduce.at b/tests/reduce.at index af13e16f..0db3830b 100644 --- a/tests/reduce.at +++ b/tests/reduce.at @@ -396,7 +396,7 @@ AT_TEST_LR_TYPE([[Single State Split]], [[%left 'a' // Conflict resolution renders state 12 unreachable for canonical LR(1). We // keep it so that the paser table diff is easier to code. -%define lr.keep_unreachable_states]], +%define lr.keep-unreachable-states]], [[ S: 'a' A 'a' /* rule 1 */ | 'b' A 'b' /* rule 2 */ @@ -629,7 +629,7 @@ AT_TEST_LR_TYPE([[Lane Split]], [[%left 'a' // Conflict resolution renders state 16 unreachable for canonical LR(1). We // keep it so that the paser table diff is easier to code. -%define lr.keep_unreachable_states]], +%define lr.keep-unreachable-states]], [[ /* Similar to the last test case set but two states must be split. */ S: 'a' A 'a' /* rule 1 */ @@ -873,7 +873,7 @@ AT_TEST_LR_TYPE([[Complex Lane Split]], [[%left 'a' // Conflict resolution renders state 16 unreachable for canonical LR(1). We // keep it so that the paser table diff is easier to code. -%define lr.keep_unreachable_states]], +%define lr.keep-unreachable-states]], [[ /* Similar to the last test case set but forseeing the S/R conflict from the first state that must be split is becoming difficult. Imagine if B were @@ -1139,7 +1139,7 @@ dnl PARSER-EXIT-VALUE, PARSER-STDOUT, PARSER-STDERR ]])]) AT_TEST_LR_TYPE([[Split During Added Lookahead Propagation]], -[[%define lr.keep_unreachable_states]], +[[%define lr.keep-unreachable-states]], [[ /* The partial state chart diagram below is for LALR(1). State 0 is the start state. States are iterated for successor construction in numerical order. diff --git a/tests/torture.at b/tests/torture.at index 753fc919..91b3b1b9 100644 --- a/tests/torture.at +++ b/tests/torture.at @@ -1,6 +1,6 @@ # Torturing Bison. -*- Autotest -*- -# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation, -# Inc. +# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2009 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 @@ -496,7 +496,7 @@ AT_PARSER_CHECK([./input 10000], 2, [], [ignore], # just helps guarantee we don't let the YYSTACK_USE_ALLOCA feature affect # push parsers. AT_DATA_STACK_TORTURE([AT_USE_ALLOCA], -[[%define api.push_pull "both" +[[%define api.push-pull "both" ]]) AT_PARSER_CHECK([./input 20], 0, [], [ignore], [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]]) @@ -534,7 +534,7 @@ AT_PARSER_CHECK([./input 10000], 2, [], [ignore], [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]]) AT_DATA_STACK_TORTURE([AT_USE_ALLOCA], -[[%define api.push_pull "both" +[[%define api.push-pull "both" ]]) AT_PARSER_CHECK([./input 20], 0, [], [ignore], [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]]) |