From f1886bb2808a471b18e1416e0f821d08850d116e Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Thu, 24 Oct 2002 10:01:52 +0000 Subject: [PATCH] * data/yacc.c (m4_int_type): New. * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed char' as only yacc.c wants K&R portability. * data/glr.c (yysigned_char): Remove. * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name. Reported by Quoc Peyrot. --- ChangeLog | 9 +++++++++ THANKS | 1 + data/c.m4 | 3 ++- data/glr.c | 6 ------ data/lalr1.cc | 2 +- data/yacc.c | 22 ++++++++++++++++++++++ 6 files changed, 35 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index ee4cec2..cc9da64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2002-10-24 Akim Demaille + + * data/yacc.c (m4_int_type): New. + * data/c.m4 (m4_int_type): Don't use yysigned_char, but `signed + char' as only yacc.c wants K&R portability. + * data/glr.c (yysigned_char): Remove. + * data/lalr1.cc: Rename the trailing b4_name as b4_parser_class_name. + Reported by Quoc Peyrot. + 2002-10-23 Paul Eggert * src/main.c (main): With --trace=time, report times even if a diff --git a/THANKS b/THANKS index 20cff39..2c59995 100644 --- a/THANKS +++ b/THANKS @@ -48,6 +48,7 @@ Paul Hilfinger Hilfinger@CS.Berkeley.EDU Per Allansson per@appgate.com Peter Hámorský hamo@upjs.sk Piotr Gackiewicz gacek@intertel.com.pl +Quoc Peyrot chojin@lrde.epita.fr R Blake blakers@mac.com Raja R Harinath harinath@cs.umn.edu Richard Stallman rms@gnu.org diff --git a/data/c.m4 b/data/c.m4 index b513df5..785f9e1 100644 --- a/data/c.m4 +++ b/data/c.m4 @@ -65,7 +65,7 @@ m4_define([b4_ints_in], # MIN to MAX (included). m4_define([b4_int_type], [m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char], - b4_ints_in($@, [-128], [127]), [1], [yysigned_char], + b4_ints_in($@, [-128], [127]), [1], [signed char], b4_ints_in($@, [0], [65535]), [1], [unsigned short], b4_ints_in($@, [-32768], [32767]), [1], [short], @@ -74,6 +74,7 @@ m4_define([b4_int_type], [int])]) + # b4_int_type_for(NAME) # --------------------- # Return the smallest int type able to handle numbers ranging from diff --git a/data/glr.c b/data/glr.c index eb49544..77a35af 100644 --- a/data/glr.c +++ b/data/glr.c @@ -207,12 +207,6 @@ static YYLTYPE yyloc_default; # define yyfalse 0 #endif -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short yysigned_char; -#endif - /*-----------------. | GCC extensions. | `-----------------*/ diff --git a/data/lalr1.cc b/data/lalr1.cc index 96325b0..b7b64c3 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -775,7 +775,7 @@ const int yy::b4_parser_class_name::ntokens_ = b4_tokens_number; const int yy::b4_parser_class_name::initdepth_ = b4_stack_depth_init; const unsigned yy::b4_parser_class_name::user_token_number_max_ = b4_user_token_number_max; -const yy::b4_parser_class_name::TokenNumberType yy::b4_name::undef_token_ = b4_undef_token_number; +const yy::b4_parser_class_name::TokenNumberType yy::b4_parser_class_name::undef_token_ = b4_undef_token_number; b4_epilogue dnl diff --git a/data/yacc.c b/data/yacc.c index 29e13e9..11edba3 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -47,6 +47,28 @@ m4_ifdef([b4_parse_param], b4_parse_param)]) + +## ------------ ## +## Data Types. ## +## ------------ ## + +# b4_int_type(MIN, MAX) +# --------------------- +# Return the smallest int type able to handle numbers ranging from +# MIN to MAX (included). We overwrite the version from c.m4 which relies +# on `signed char' which is not portable to old K&R compilers. +m4_define([b4_int_type], +[m4_if(b4_ints_in($@, [0], [255]), [1], [unsigned char], + b4_ints_in($@, [-128], [127]), [1], [yysigned_char], + + b4_ints_in($@, [0], [65535]), [1], [unsigned short], + b4_ints_in($@, [-32768], [32767]), [1], [short], + + m4_eval([0 <= $1]), [1], [unsigned int], + + [int])]) + + ## ----------------- ## ## Semantic Values. ## ## ----------------- ## -- 2.7.4