Re: [sv-bc] Doubts on Streaming Operator

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Wed Jan 03 2007 - 09:08:38 PST
Shabnam,

Regarding your second question, I think the BNF of Syntax 8-6
intentionally allows expressions, instead of requiring elaboration-time
constant expressions.

Regarding your first question, in

   http://www.eda-stds.org/svdb/bug_view_page.php?bug_id=0001526

I claimed it is not semantically correct, writing --

   Streaming concatenation, like assignment pattern, has no
self-determined type

   The description in 8.17 that "The stream is not an integral value; to
participate in an expression, a cast is required." is both confusing and
incomplete. 

   Instead it should echo the text in 8.13 and say something like -- "A
streaming concatenation has no self-determined data type, but can be
used as one of the sides in an assignment-like context when the other
side has a self-determined data type or as the operand in a static
cast." 

-- Brad

-----Original Message-----
From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of
Shabnam Banu
Sent: Tuesday, January 02, 2007 11:33 PM
To: sv-bc@eda-stds.org
Subject: [sv-bc] Doubts on Streaming Operator

Hi,
  There are certain issues related to Streaming operator ,which are not
clear from
   LRM.Please clarify me following doubts on Streaming Operator.

1.Whether Streaming Operator can be used as an independent expression
within an
    expression or not .i.e
   whether
        int a,b,c,d,e;
        a= {<<{c,d,e}}+b;
   is semantically correct or not.

2. The BNF for 'with' construct of streaming operator is:
  
   stream_expression ::= expression(0) [ with [ array_range_expression ]

]                 array_range_expression ::=
        
         expression(1)
       | expression(2) : expression(3)
       | expression(4) +: expression(5)
       | expression(6) -: expression(7)
 

  The   array_range_expression  can be considered as a part select  on 
expression(0),when
  array_range_expression ::=
     | expression(2) : expression(3)
       | expression(4) +: expression(5)
       | expression(6) -: expression(7)

   part select rule says(as mentioned in LRM) that expression(2) ,
expression(3),expression(5)
   and expression(7) should be constant.But this is not mentioned in
case of 'with '
    construct.Whether partselect rules are also applicable here ?.
    please clarify that whether expression(2) ,
expression(3),expression(5) and expression(7) 
    should be constant or not ,in case of 'with ' construct of streaming
operator.

Thanks,
Shabnam.




--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Jan 3 09:10:15 2007

This archive was generated by hypermail 2.1.8 : Wed Jan 03 2007 - 09:10:41 PST