Re: @* and @(*) and @( * ) and (* ... *)

From: Shalom Bresticker (Shalom.Bresticker@motorola.com)
Date: Thu May 02 2002 - 04:40:40 PDT


My two cents (or agorot, in Israeli currency):

I brought this up in errata/22 at the end of August 2001, in:

http://boyd.com/1364_btf/archive/btf_2001/1490.html and
http://boyd.com/1364_btf/archive/btf_2001/1504.html

At the time, I was working on the hyperlinked version of the BNF.

I assumed that "@ ( * )" are 4 separate tokens.

I reasoned as followed:

    Since "@a" is legal, obviously "@" is a separate token. ("a" is an identifier.)

    Then if "@" and "a" are tokens, and "@(a)" is legal, then "(" and ")" are also separate tokens.

    So if I have "@*" or "@(*)" , then it seems that all I have done is use "*" instead of the identifier "a",
    and "*" is also a separate token.

I fixed the BNF accordingly, inserting spaces between all of these.

I still don't see a convincing argument to change that,
especially since Paul points out that the "(*" cannot be an attribute.

By the way, Cliff, have you received my recent emails to you ?

Thanks,
Shalom

Paul Graham wrote:

> > If I had thought of the @(* ... ) and (* ... *) ambiguity, I would have
> > used it to back my objection to @(*).
> >
> > If you find @ followed by ( is this non-ambiguous?
>
> It turns out that an attribute is not allowed between the '@' and the
> opening '(' of the event list. So when you see '@' followed by '(*' you
> know it can't be an attribute. In my parser I have three separate
> productions to handle the wildcard sensitivity list:
>
> wildcard : '@' '*' | '@' '(*' ')' | '@' '(' '*' ')'
>
> It seems like a lot of work for a little piece of syntactic sugar!
>
> This touches back on my question about whether '+:' is one token or two.
> The VHDL LRM explictly lists all the one- and two-character tokens. The
> Verilog LRM does not do this. It's up to the implementors to figure it out.

--
Shalom Bresticker                           Shalom.Bresticker@motorola.com
Principal Staff Engineer                               Tel: +972 9 9522268
Motorola Semiconductor Israel, Ltd.                    Fax: +972 9 9522890
POB 2208, Herzlia 46120, ISRAEL                       Cell: +972 50 441478


This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:55:36 PDT and
sponsored by Boyd Technology, Inc.