RE: [sv-ec] Errata for section 5


Subject: RE: [sv-ec] Errata for section 5
From: David W. Smith (david.smith@synopsys.com)
Date: Wed Sep 10 2003 - 16:48:20 PDT


Greetings,

I have created ERR-10 through 19 to handle the issues that were raised.
ERR-10 through ERR_13 have had LRM-19 through LRM-22 created to implement
the suggested corrections.

At the next meeting we can review the LRM issues, assign people to work on
the Errata, etc...

Regards
David

David W. Smith
Synopsys Scientist

Synopsys, Inc.
Synopsys Technology Park
2025 NW Cornelius Pass Road
Hillsboro, OR 97124

Voice: 503.547.6467
Main: 503.547.6000
FAX: 503.547.6906
Email: david.smith@synopsys.com
http://www.synopsys.com

-----Original Message-----
From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of
LaFlamme, Jamie
Sent: Monday, September 08, 2003 5:13 PM
To: 'Brad.Pierce@synopsys.com'; sv-ec@eda.org
Subject: RE: [sv-ec] Errata for section 5

I agree with Brad's analysis - it would be nice to replace
block_variable_declaration with variable_declaration and replace
list_of_variable_identifiers_or_assignments
with list_of_variable_decl_assignments.

Thanks for the careful examination.

-Jamie

-----Original Message-----
From: Brad Pierce [mailto:Brad.Pierce@synopsys.com]
Sent: Monday, September 08, 2003 4:31 PM
To: sv-ec@eda.org
Subject: Re: [sv-ec] Errata for section 5

Jamie,

I think that fixing block_variable_declaration also fixes the problem about
mixing initialized/noninitialized variable declarations in a block
statement.

Note that currently, "int a, b=0;" has a derivation from data_declaration --

  data_declaration
  variable_declaration
  int list_of_variable_identifiers_or_assignments ;
  int list_of_variable_decl_assignments ;
  int variable_decl_assignment , variable_decl_assignment ;
  int variable_identifier , variable_identifier = constant_expression ;
  int a , b = 0 ;

The fix for block_variable_declaration is, I think, to simplify it to --

  block_variable_declaration ::=
    [lifetime] data_type list_of_variable_decl_assignments ;

which would enable the derivation

  block_data_declaration
  block_variable_declaration
  int list_of_variable_decl_assignments ;
  int variable_decl_assignment , variable_decl_assignment ;
  int variable_identifier , variable_identifier = constant_expression ;
  int a , b = 0 ;

Incidentally, it looks like list_of_variable_identifiers_or_assignments
is redundant and, for example, variable_declaration can be simplified to

  variable_declaration ::=
    [lifetime] data_type list_of_variable_decl_assignments

If so, then block_variable_declaration is also redundant and can be replaced
everywhere with simply variable_declaration.

-- Brad

Jamie LaFlamme writes:
----------------------------------------------------------------------------

    o The BNF for block_variable_declaration in section 5.2
      contains a required "lifetime" component that should be
      optional.
    o When multiple variables are declared within a single
      statement, the BNF in 5.2 requires all variables in the
      statement to be initialized or none of them. For example,
      the following appears to be illegal:

            int a, b=0;

      Is there a reason to not allow initialized and non-
      initialized variable declarations together? This is
      true for block_variable_declaration and for
      list_of_variable_identifiers_or_assignments.
----------------------------------------------------------------------------
-



This archive was generated by hypermail 2b28 : Wed Sep 10 2003 - 16:49:17 PDT