Re: errata/123: PROPOSAL - Fwd: identifier and indexing syntax

From: Dennis Marsa (drm@xilinx.com)
Date: Fri Jan 31 2003 - 08:00:01 PST

  • Next message: Dennis Marsa: "Re: Simpler issues to vote via email closing 1/22/03"

    Precedence: bulk

    The following reply was made to PR errata/123; it has been noted by GNATS.

    From: Dennis Marsa <drm@xilinx.com>
    To: Shalom.Bresticker@motorola.com
    Cc: etf-bugs@boyd.com
    Subject: Re: errata/123: PROPOSAL - Fwd: identifier and indexing syntax
    Date: Fri, 31 Jan 2003 08:57:33 -0700

     Shalom.Bresticker@motorola.com wrote:
    >
    > On Sat, 25 Jan 2003, Shalom Bresticker wrote:
    >
    > #123 started as a problem with the production of the non-terminal "primary" in
    > the BNF. Specifically with the 4 lines describing hierarchical_identifiers.
    > #181 combines those 4 lines into 1 line, but does not solve the problem of #123.
    > The following proposal builds on #181, but further modifies it to solve as much
    > as possible the problem of #123, also.
     
     The proposal for this errata does not address the issue I tried to describe
     when this issue was opened.
     
     First, in #181, we reduced the 4 alternatives involving hierarchical_identifier down
     to the following one alternative for the "primary" rule:
     
          hierarchical_identifier { '[' expression ']' } [ '[' range_expression ']' ]
                                                          *
    > > Replace the existing alternatives of
    > > hierarchical_identifier in the primary production
    > > with the following:
    > >
    > > hierarchical_identifier [ { '[' expression ']' } '[' range_expression ']' ]
                                  *
     This just moves the opening [ earlier in the production. I don't think this changes
     anything, so don't see any benefit in making the above change. Note that it also
     places a {} group within a [] group. Haven't we undone several occurrences of that
     in recent erratas since it is redundant?
     
     
     The original issue I was trying to get at with this errata was that the definition of
     "hierarchical_identifier" itself also includes syntax for indexing (presumably to
     describe indexing into generated for-loops), as well as the above alternative of
     "primary", which leads to an ambiguity in the BNF. So, if trying to derive a "primary"
     from a.b[1], is the [1] consumed as part of applying "hierarchical_identifier", or is
     it consumes as an optional index that follows "hierarchical_identifier" in the
     alternative of "primary" shown above?
     
     In the time since this issue was opened, I have pretty much concluded that there
     isn't much that can be done to remove this ambiguity from the BNF, so I no longer
     think we should attempt it.
     
     
     Independently however, I believe the syntax for "hierarchical_identifier" can be
     vastly simplified as Shalom indicated in:
     
         http://boydtechinc.com/etf/archive/etf_2003/0943.html
     
     However this should be addressed as a separate issue.
     
    > Then I said that what is good for "primary" is also good for "net_lvalue" and
    > "variable_lvalue", which we modified in #53 the same way we did to "primary" in
    > #181.
     
     These following changes to net_lvalue and variable_lvalue also simply reposition the
     opening [ making all the indexing syntax optional. But, as it is already optional,
     so this change has no real effect.
     
     
     I think we should close this issue and take no action.
     
     Dennis
     
     
    > > ************************************************************
    > >
    > > Shalom's addition (2003-01-23):
    > >
    > > If this change is accepted,
    > > then presumably the same change should be made to
    > > net_lvalue and variable_lvalue, modifiying the fixes to
    > > issues #53 and #181:
    > >
    > > CHANGE from (after the fixes in #53):
    > >
    > > net_lvalue ::=
    > > hierarchical_net_identifier {'['constant_expression']'}
    > > ['['constant_range_expression']']
    > > | '{' net_lvalue { ',' net_lvalue } '}'
    > >
    > > variable_lvalue ::=
    > > hierarchical_variable_identifier {'['expression']'}
    > > ['['range_expression']']
    > > | '{' variable_lvalue { ',' variable_lvalue } '}'
    > >
    > >
    > > TO:
    > >
    > >
    > > net_lvalue ::=
    > > hierarchical_net_identifier [{'['constant_expression']'}
    > > '['constant_range_expression']']
    > > | '{' net_lvalue { ',' net_lvalue } '}'
    > >
    > > variable_lvalue ::=
    > > hierarchical_variable_identifier [{'['expression']'}
    > > '['range_expression']']
    > > | '{' variable_lvalue { ',' variable_lvalue } '}'
    > >
    > > ************************************************************
    > > http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=123
    > >
    >
    >



    This archive was generated by hypermail 2.1.4 : Fri Jan 31 2003 - 08:00:38 PST and
    sponsored by Boyd Technology, Inc.