RE: [sv-ec] Queue delete() method

From: Steven Sharp <sharp_at_.....>
Date: Thu Aug 03 2006 - 14:03:34 PDT
>From: "Brad Pierce" <Brad.Pierce@synopsys.com>

>The nonterminal "empty_queue" is defined as "{}" in A.8.1, and used in
>"primary_literal" in  A.8.4.

Interesting point.  So {} as an empty queue is not arising as the
degenerate case of this undefined queue concatenation operation.
It is specified as a separate thing.  And there is even normative
text defining it in 5.14:

"The empty array literal {} is used to denote an empty queue."

The problem is that {} is not the empty array literal, so this
statement is self-contradictory.  The empty array literal would
now be '{}.

The text clearly states the intent to use the empty array literal,
and refers to the old syntax for an empty array literal.  This
appears to be a case where the syntax was not updated when the
array literal syntax was changed.  This sentence should be updated
to the new syntax of '{}, as should empty_queue in A.8.1 and the
attached note.

I presume that the reason this is specified specially is that an
empty assignment pattern is not normally legal.  Is that true?
If so, then the purpose of this text in 5.14, and the empty_queue
production in A.8.1 is to say that it is legal in the special case
of an assignment pattern of type queue.  Or maybe empty array literals
used to be illegal in older BNF, even if empty assignment patterns
are legal in the current BNF.

So I conclude that even if the special queue concatenation operation
were defined, you would still have to use '{} for the empty queue.

Steven Sharp
sharp@cadence.com
Received on Thu Aug 3 14:03:38 2006

This archive was generated by hypermail 2.1.8 : Thu Aug 03 2006 - 14:03:47 PDT