From 189532c5bf349e998e4b4ea19599ce0400abb6fb Mon Sep 17 00:00:00 2001 From: steve Date: Tue, 13 Feb 2007 04:39:25 +0000 Subject: [PATCH] Hande specparam with min/myp/max values. --- parse.y | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/parse.y b/parse.y index 0eb305957..f7093b5a8 100644 --- a/parse.y +++ b/parse.y @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */ #ifdef HAVE_CVS_IDENT -#ident "$Id: parse.y,v 1.226 2007/02/12 01:52:21 steve Exp $" +#ident "$Id: parse.y,v 1.227 2007/02/13 04:39:25 steve Exp $" #endif # include "config.h" @@ -2675,21 +2675,30 @@ specify_path_identifiers specparam : IDENTIFIER '=' expression { PExpr*tmp = $3; - if (!pform_expression_is_constant(tmp)) { - yyerror(@3, "error: specparam value " - "must be a constant expression."); - delete tmp; - tmp = 0; - } else { - pform_set_specparam(lex_strings.make($1), tmp); - } + pform_set_specparam(lex_strings.make($1), tmp); delete $1; } | IDENTIFIER '=' expression ':' expression ':' expression - { delete $1; - delete $3; - delete $5; - delete $7; + { PExpr*tmp = 0; + switch (min_typ_max_flag) { + case MIN: + tmp = $3; + delete $5; + delete $7; + break; + case TYP: + delete $3; + tmp = $5; + delete $7; + break; + case MAX: + delete $3; + delete $5; + tmp = $7; + break; + } + pform_set_specparam(lex_strings.make($1), tmp); + delete $1; } | PATHPULSE_IDENTIFIER '=' expression { delete $1;