From fc5734fe23f35e5ce15f6b9c550115fb69113ea2 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 26 Jul 2002 06:25:35 +0000 Subject: [PATCH] * src/reader.h, src/reader.c (gram_error): ... can't get yycontrol without making too strong assumptions on the parser itself. * src/output.c (prepare_tokens): Use the real 0th value of token_translations instead of `0'. * src/parse-gram.y (yyerror): Don't rely on yycontrol being visible here. * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc for the time being: %locations ought to provide it to yyerror. --- ChangeLog | 12 ++++++++++++ data/yacc.c | 4 ++-- src/output.c | 5 +++-- src/parse-gram.c | 35 +++++++++++++++++++++++++++++------ src/parse-gram.h | 29 ++--------------------------- src/parse-gram.y | 9 ++++----- src/reader.h | 3 +-- 7 files changed, 53 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index f581e540..da80bdc4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2002-07-26 Akim Demaille + + * src/reader.h, src/reader.c (gram_error): ... can't get + yycontrol without making too strong assumptions on the parser + itself. + * src/output.c (prepare_tokens): Use the real 0th value of + token_translations instead of `0'. + * src/parse-gram.y (yyerror): Don't rely on yycontrol being + visible here. + * data/yacc.c (yyreport_parse_error): Rename yylocation as yylloc + for the time being: %locations ought to provide it to yyerror. + 2002-07-25 Akim Demaille * src/output.c (prepare_tokens): Go up to ntokens, not ntokens + 1. diff --git a/data/yacc.c b/data/yacc.c index eed1a8a1..d2d06a10 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -650,7 +650,7 @@ b4_c_function([yyreport_parse_error], [[int], [yystate]], [[int], [yychar]], [[YYSTYPE], [yyvalue]]b4_location_if([, - [[YYLTYPE], [yylocation]]])) + [[YYLTYPE], [yylloc]]])) [{ #if YYERROR_VERBOSE int yyn = yypact[yystate]; @@ -705,7 +705,7 @@ b4_c_function([yyreport_parse_error], (void) yystate; (void) yychar; (void) yyvalue; - ]b4_location_if([(void) yylocation;])[ + ]b4_location_if([(void) yylloc;])[ }] diff --git a/src/output.c b/src/output.c index 5b8ca108..c218af3e 100644 --- a/src/output.c +++ b/src/output.c @@ -305,8 +305,9 @@ static void prepare_tokens (void) { muscle_insert_symbol_number_table ("translate", - token_translations, - 0, 1, max_user_token_number + 1); + token_translations, + token_translations[0], + 1, max_user_token_number + 1); { int i; diff --git a/src/parse-gram.c b/src/parse-gram.c index 45c72386..85c629fe 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,7 +1,7 @@ /* A Bison parser, made from parse-gram.y, by GNU bison 1.49b. */ /* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. + Copyright 1984, 1989, 1990, 2000, 2001, 2002 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 @@ -91,11 +91,11 @@ do { \ correctly typed access to it. */ #define yycontrol ((gram_control_t *) gram_control) -/* Request detailed parse error messages, and pass them to - GRAM_ERROR. */ +/* Request detailed parse error messages, and pass them to GRAM_ERROR. + FIXME: depends on the undocumented availability of YYLLOC.t */ #undef yyerror #define yyerror(Msg) \ - gram_error (yycontrol, &yylloc, Msg) + gram_error (&yylloc, Msg) #define YYPRINT(File, Type, Value) \ yyprint (File, Type, &Value) @@ -1846,9 +1846,32 @@ yyprint (FILE *file, } void -gram_error (gram_control_t *control ATTRIBUTE_UNUSED, - location_t *yylloc, const char *msg) +gram_error (location_t *yylloc, const char *msg) { complain_at (*yylloc, "%s", msg); } +/* A Bison parser, made from parse-gram.y, by GNU bison 1.49b. */ + +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright 1984, 1989, 1990, 2000, 2001, 2002 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 + the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ diff --git a/src/parse-gram.h b/src/parse-gram.h index d8939d29..3968a395 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,28 +1,3 @@ -/* A Bison parser, made from parse-gram.y, by GNU bison 1.49b. */ - -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 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 - the Free Software Foundation; either version 2, 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., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - #ifndef BISON_PARSE_GRAM_H # define BISON_PARSE_GRAM_H @@ -136,8 +111,8 @@ typedef union { char *string; assoc_t assoc; } yystype; -/* Line 1271 of /usr/local/share/bison/yacc.c. */ -#line 141 "y.tab.h" +/* Line 1270 of /usr/local/share/bison/yacc.c. */ +#line 116 "y.tab.h" # define YYSTYPE yystype #endif diff --git a/src/parse-gram.y b/src/parse-gram.y index d777daec..ade81eac 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -64,11 +64,11 @@ do { \ correctly typed access to it. */ #define yycontrol ((gram_control_t *) gram_control) -/* Request detailed parse error messages, and pass them to - GRAM_ERROR. */ +/* Request detailed parse error messages, and pass them to GRAM_ERROR. + FIXME: depends on the undocumented availability of YYLLOC.t */ #undef yyerror #define yyerror(Msg) \ - gram_error (yycontrol, &yylloc, Msg) + gram_error (&yylloc, Msg) #define YYPRINT(File, Type, Value) \ yyprint (File, Type, &Value) @@ -459,8 +459,7 @@ yyprint (FILE *file, } void -gram_error (gram_control_t *control ATTRIBUTE_UNUSED, - location_t *yylloc, const char *msg) +gram_error (location_t *yylloc, const char *msg) { complain_at (*yylloc, "%s", msg); } diff --git a/src/reader.h b/src/reader.h index 321740a0..8792372e 100644 --- a/src/reader.h +++ b/src/reader.h @@ -52,8 +52,7 @@ YY_DECL; /* From the parser. */ extern int gram_debug; -void gram_error (gram_control_t *control, - location_t *loc, const char *msg); +void gram_error (location_t *loc, const char *msg); int gram_parse (void *control); /* The sort of braced code we are in. */ -- 2.45.2