From 954579f25082d7015902edd057173e3809e2460b Mon Sep 17 00:00:00 2001 From: Cary R Date: Sun, 16 Sep 2007 08:25:03 -0700 Subject: [PATCH] Add min_typ_max to expressions. This patch adds min_typ_max to expressions. Remember when using a min_typ_max triplet in an expression they must be enclosed with parenthesis (1364-2001 section 4.3 page 58). --- parse.y | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/parse.y b/parse.y index 4d3848f26..91f435d50 100644 --- a/parse.y +++ b/parse.y @@ -217,7 +217,7 @@ static list* list_from_identifier(list*tmp, char*id) %type gate_instance_list %type heirarchy_identifier -%type expression expr_primary +%type expression expr_primary expr_mintypmax %type lpvalue %type delay_value delay_value_simple %type delay1 delay3 delay3_opt delay_value_list @@ -953,6 +953,30 @@ expression } ; +expr_mintypmax + : expression + { $$ = $1; } + | expression ':' expression ':' expression + { switch (min_typ_max_flag) { + case MIN: + $$ = $1; + delete $3; + delete $5; + break; + case TYP: + delete $1; + $$ = $3; + delete $5; + break; + case MAX: + delete $1; + delete $3; + $$ = $5; + break; + } + } + ; + /* Many contexts take a comma separated list of expressions. Null expressions can happen anywhere in the list, so there are two @@ -1060,7 +1084,7 @@ expr_primary /* Parenthesized expressions are primaries. */ - | '(' expression ')' + | '(' expr_mintypmax ')' { $$ = $2; } /* Various kinds of concatenation expressions. */