X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/e2a21b6f0c975927445a04a86488956af3351681..31d3e510949227d55ed7e87c793b3ec571dffec3:/tests/cxx-type.at?ds=sidebyside diff --git a/tests/cxx-type.at b/tests/cxx-type.at index 71c71066..923dc237 100644 --- a/tests/cxx-type.at +++ b/tests/cxx-type.at @@ -1,20 +1,19 @@ # Checking GLR Parsing. -*- Autotest -*- -# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 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([[C++ Type Syntax (GLR).]]) @@ -98,7 +97,7 @@ prog : @2.first_line, @2.first_column, @2.last_line, @2.last_column);])[ output = node_to_string (]$[2); - printf ("%s\n", output); + printf ("%s\n", output); free (output); free_node (]$[2); } @@ -155,12 +154,16 @@ yylex (LEX_PARAMETERS) static int colNum = 0; #if YYPURE +# undef yylloc # define yylloc (*llocp) +# undef yylval # define yylval (*lvalp) #endif while (1) { + if (feof (stdin)) + abort (); c = getchar (); switch (c) { @@ -342,13 +345,13 @@ z + q; This is total garbage, but it should be ignored. ]]) -AT_CHECK([bison -o types.c types.y], 0, [], ignore) +AT_BISON_CHECK([-o types.c types.y], 0, [], ignore) AT_COMPILE([types]) AT_BISON_OPTION_POPDEFS ]) m4_define([_AT_RESOLVED_GLR_OUTPUT], -[[+(z,q) +[[[+(z,q) (T,x) (T,x,y) =(x,y) @@ -357,10 +360,10 @@ m4_define([_AT_RESOLVED_GLR_OUTPUT], (T,y,+(z,q)) +(z,q) -]]) +]]]) m4_define([_AT_RESOLVED_GLR_OUTPUT_WITH_LOC], -[[3.0-3.5: +(z,q) +[[[3.0-3.5: +(z,q) 5.0-5.3: (T,x) 7.0-7.7: (T,x,y) 9.0-9.5: =(x,y) @@ -369,10 +372,10 @@ m4_define([_AT_RESOLVED_GLR_OUTPUT_WITH_LOC], 15.0-15.13: (T,y,+(z,q)) 17.0-17.15: 19.0-19.5: +(z,q) -]]) +]]]) m4_define([_AT_AMBIG_GLR_OUTPUT], -[[+(z,q) +[[[+(z,q) (T,x) (T,x,y) =(x,y) @@ -381,10 +384,10 @@ m4_define([_AT_AMBIG_GLR_OUTPUT], ((T,y,+(z,q)),=((y,T),+(z,q))) +(z,q) -]]) +]]]) m4_define([_AT_AMBIG_GLR_OUTPUT_WITH_LOC], -[[3.0-3.5: +(z,q) +[[[3.0-3.5: +(z,q) 5.0-5.3: (T,x) 7.0-7.7: (T,x,y) 9.0-9.5: =(x,y) @@ -393,15 +396,15 @@ m4_define([_AT_AMBIG_GLR_OUTPUT_WITH_LOC], 15.0-15.13: ((T,y,+(z,q)),=((y,T),+(z,q))) 17.0-17.15: 19.0-19.5: +(z,q) -]]) +]]]) m4_define([_AT_GLR_STDERR], -[[syntax error -]]) +[[[syntax error +]]]) m4_define([_AT_VERBOSE_GLR_STDERR], -[[syntax error, unexpected ID, expecting '=' or '+' or ')' -]]) +[[[syntax error, unexpected ID, expecting '=' or '+' or ')' +]]]) ## ---------------------------------------------------- ## ## Compile the grammar described in the documentation. ## @@ -421,14 +424,14 @@ AT_PARSER_CHECK([[./types test-input]], 0, AT_CLEANUP AT_SETUP([GLR: Resolve ambiguity, pure, no locations]) -_AT_TEST_GLR_CXXTYPES([%pure-parser], +_AT_TEST_GLR_CXXTYPES([%define api.pure], [%dprec 1], [%dprec 2]) AT_PARSER_CHECK([[./types test-input]], 0, _AT_RESOLVED_GLR_OUTPUT, _AT_GLR_STDERR) AT_CLEANUP AT_SETUP([GLR: Resolve ambiguity, pure, locations]) -_AT_TEST_GLR_CXXTYPES([%pure-parser %locations], +_AT_TEST_GLR_CXXTYPES([%define api.pure %locations], [%dprec 1], [%dprec 2]) AT_PARSER_CHECK([[./types test-input]], 0, _AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR) @@ -449,13 +452,13 @@ AT_PARSER_CHECK([[./types test-input]], 0, AT_CLEANUP AT_SETUP([GLR: Merge conflicting parses, pure, no locations]) -_AT_TEST_GLR_CXXTYPES([%pure-parser], +_AT_TEST_GLR_CXXTYPES([%define api.pure], [%merge ], [%merge ]) AT_PARSER_CHECK([[./types test-input]], 0, _AT_AMBIG_GLR_OUTPUT, _AT_GLR_STDERR) AT_CLEANUP AT_SETUP([GLR: Merge conflicting parses, pure, locations]) -_AT_TEST_GLR_CXXTYPES([%pure-parser %locations], +_AT_TEST_GLR_CXXTYPES([%define api.pure %locations], [%merge ],[%merge ]) AT_PARSER_CHECK([[./types test-input]], 0, _AT_AMBIG_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR)