From: Shalom Bresticker (Shalom.Bresticker@freescale.com)
Date: Sat Jul 10 2004 - 22:57:32 PDT
-- Shalom Bresticker Shalom.Bresticker @freescale.com Design & Reuse Methodology Tel: +972 9 9522268 Freescale Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 5441478[ ]Freescale Internal Use Only [ ]Freescale Confidential Proprietary
attached mail follows:
I think the rant was more that other tools don't always get the @(*)
parsing right, particularly in more subtle cases, and in getting it
wrong make the feature more problematic.
While I agree that with a competent lexer and parser generator it
isn't too difficult to get the parsing mostly correct, I'm not so
certain about entirely correct. As a result, I'm not surprised that
some vendors get it subtly wrong, given that there are several almost
hacks that come close. For example, the case of code like:
`define empty
always @(*`empty)
is tricky if one does maximal munch and one wants to treat (* as a
single token when appropriate. Are you really certain, you have all
the cases where something can become syntacticly invisible between
the (* and the ). I, myself, haven't implemented that 2001 extension,
but I won't be surprised if there isn't some subtle case that I miss.
Moeover, I think the point about differing behaviors with respect to
tokenizing (* as one token or as two are correct. There are simply a
different set of tricky issues is you lex (* as two tokens and put
them together in the parser and if you remove whitespace and/or
comments in your lexer.
The sad part of this is that distinguishing the various obscure cases
of (* of how it should be parsed are probably not the best uses of
ones time in general. Most of us have more important tasks.
Unfortunately, it will be some poor user who has a piece of Verilog
that falls on different sides of the crack with two different tools
who suffers in the end.
Hope this helps,
-Chris
*****************************************************************************
Chris Clark Internet : compres@world.std.com
Compiler Resources, Inc. Web Site : http://world.std.com/~compres
23 Bailey Rd voice : (508) 435-5016
Berlin, MA 01503 USA fax : (978) 838-0263 (24 hours)
------------------------------------------------------------------------------
This archive was generated by hypermail 2.1.4
: Sat Jul 10 2004 - 22:54:57 PDT
and
sponsored by Boyd Technology, Inc.