RE: [sv-bc] [Fwd: Issues with IEEE 1364-2005]

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Wed Jul 26 2006 - 22:56:10 PDT
Note that in 1364-2001, the description of ?: was not reversed. It was
ambiguous, but not reversed. For a description of how and why it was
changed, see http://boyd.com/1364_btf/report/full_pr/403.html .

Shalom


> I do agree that the description of the condition evaluation in 5.1.13
> appears to be reversed.
> 
> > On the evaluation of the conditional operator, IEEE 1364-2005,
section
> > 5.1.13 `Conditional operator', states the following.
> >
> >    conditional_expression ::= (From A.8.3)
> >      expression1 ? { attribute_instance } expression2 : expression3
> >    expression1 ::= expression
> >    expression2 ::= expression
> >    expression3 ::= expression
> >
> >    The evaluation of a conditional operator shall begin with a
logical
> >    equality comparison (see 5.1.8) of expression1 with zero, termed
> the
> >    condition. If the condition evaluates to false (0), then
> expression3
> >    shall be evaluated and used as the result of the conditional
> >    expression. If the condition evaluates to true (1), then
> expression2
> >    is evaluated and used as the result. If the condition evaluates
to
> an
> >    ambiguous value (x or z), then both expression2 and expression3
> shall
> >    be evaluated; and their results shall be combined, bit by bit,
> using
> >    Table 5-21 to calculate the final result unless expression2 or
> >    expression3 is real, in which case the result shall be 0.
> >
> > I am not sure why this defines `condition' as `a logical equality
> > comparison of expression1 with zero', since this means that
> `condition'
> > is the negation of `expression1' (`expression1 == 0' is 1 when
> > `expression1' is 0, 0 when it is 1, and X when it is X or Z), and,
> > applying the rest of the definition, when `expression1' is 1,
> > `condition' is 0, and so `expression3' is evaluated as the result of
> the
> > conditional expression. Similarly, if `expression1' is 0, then
> > `expression2' is evaluated as the result of the conditional
> expression.
> > This seems to give the semantics of an `if else then' operator,
rather
> > than an `if then else', which I doubt is what is intended.
Received on Wed Jul 26 22:56:25 2006

This archive was generated by hypermail 2.1.8 : Wed Jul 26 2006 - 22:56:35 PDT