>From: "Rich, Dave" <Dave_Rich@mentor.com> >I disagree. We have {} working on strings, which are not integral >values. The {} on queue types are effectively applying concatenation to >that type. You can't just "apply concatenation" to a type. The operation has to be defined for that type in the LRM. For strings, concatenation is defined in Table 4-2. For queues, there are just some examples, with the intent described in comments. Also, Table 4-2 defines how you distinguish the string concatenation operator from the integral concatenation operator. This depends only on the operands. This means that it does not create the ambiguities that occurred for the old array literal syntax used in port expressions, which required knowing the type of the port declaration. With queues, there are no such rules defined. Curly braces containing numbers could be a queue concatenation or an integral concatenation operator. Some cases would require the LHS or the port declaration to disambiguate. This would get us right back into the situations that the new assignment pattern syntax resolved. The statement in 5.14 that "The empty array literal {} is used to denote an empty queue" indicates that the intent was for the curly braces used in this section to be array literals. It seems pretty clear that this syntax did not get updated when the syntax for array literals (which are assignment patterns) got changed. The text indicates that these are intended to be assignment patterns, not concatenations. The syntax just needs to be brought up to date. Then we can deal with the fact that it assumes some incorrect things about assignment patterns. Steven Sharp sharp@cadence.comReceived on Tue May 30 15:56:20 2006
This archive was generated by hypermail 2.1.8 : Tue May 30 2006 - 15:56:27 PDT