Number | 153
|
Category | errata
|
Synopsis | 12.3.3, A.2.1.2: output_declaration is ambiguous
|
State | lrmdraft
|
Class | errata-simple
|
Arrival-Date | Oct 08 2002
|
Originator | "Brad Pierce" <Brad.Pierce@synopsys.com>
|
Release | 2001b: 12.3.3 (Syntax 12-6), A.2.1.2
|
Environment |
|
Description |
In section A.2.1.2, the grammar for output_declaration is ambiguous, because every subword with the form of a list_of_port_identifiers also has the form of a list_of_variable_port_identifiers. Two examples, second option vs. third option -- output_declaration --> output [reg] list_of_port_identifiers --> output reg list_of_port_identifiers --> output reg a , b output_declaration --> output reg list_of_variable_port_identifiers --> output reg a , b fourth option vs. fifth option -- output_declaration --> output [output_variable_type] list_of_port_identifiers --> output integer list_of_port_identifiers --> output integer a , b output_declaration --> output output_variable_type list_of_variable_port_identifiers --> output integer list_of_variable_port_identifiers --> output integer a , b Note that any output_declaration generated by the second option is also generated by the first or third option. And any output_declaration generated by the fourth option is also generated by the first or fifth option. A fix is to remove the second and fourth options, leaving output_declaration ::= output [net_type] [signed] [range] list_of_port_identifiers | output reg [signed] [range] list_of_variable_port_identifiers | output output_variable_type list_of_variable_port_identifiers If 'output' were followed by 'reg', 'integer' or 'time', then the list of identifiers would be a list_of_variable_port_identifiers, and otherwise would be a list_of_port_identifiers. -- Brad |
Fix |
Delete the 2nd and 4th alternatives of the output_declaration BNF rule of section A.2.1.2. REPLACE: output_declaration ::= "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers | "output" [ "reg" ] [ "signed" ] [ range ] list_of_port_identifiers | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers | "output" [ output_variable_type ] list_of_port_identifiers | "output" output_variable_type list_of_variable_port_identifiers WITH: output_declaration ::= "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers | "output" output_variable_type list_of_variable_port_identifiers Note: Quoted items should be interpreted as being in BOLD font. |
Audit-Trail |
From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: etf-bugs@boyd.com Cc: Subject: Re: errata/153: Section 12.3.3, A.2.1.2, ouput_declaration is ambiguous Date: Wed, 09 Oct 2002 09:12:56 +0200 >Category: errata >Confidential: no >Originator: Shalom Bresticker <Shalom.Bresticker@motorola.com> >Release: 2001b >Class: TBD >Description: --------------F4122DC982CF7898220688EF Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I agree that the second and fourth options are redundant. I am sure that there are other cases of redundancy and overlap within the BNF. But in contrast to what I understood from a couple of cases brought up by Dennis Marsa, Steven Sharp, and Dan Jacobi, here there is no semantic ambiguity as to the result. That is, you always get to the same result, but there is more than one path to it. So I want to ask the compiler experts: Is that bad? Are redundant terms a problem? Are overlapping terms a problem? Thanks, Shalom -- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 "The devil is in the details." --------------F4122DC982CF7898220688EF Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> I agree that the second and fourth options are redundant. I am sure that there are other cases of redundancy and overlap
But in contrast to what I understood from a couple of cases brought
So I want to ask the compiler experts:
Thanks,
-- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 "The devil is in the details." --------------F4122DC982CF7898220688EF-- From: Shalom.Bresticker@motorola.com To: etf-bugs@boyd.com Cc: Subject: Re: errata/153: PROPOSAL - Section 12.3.3, A.2.1.2, ouput_declaration is ambiguous Date: Thu, 13 Nov 2003 19:37:41 +0200 (IST) This is in Syntax 12-6 also and was changed there as well. Shalom On Tue, 17 Dec 2002 drm@xilinx.com wrote: > Delete the 2nd and 4th alternatives of the output_declaration BNF rule > of section A.2.1.2. > > REPLACE: > output_declaration ::= > "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers > | "output" [ "reg" ] [ "signed" ] [ range ] list_of_port_identifiers > | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers > | "output" [ output_variable_type ] list_of_port_identifiers > | "output" output_variable_type list_of_variable_port_identifiers > > WITH: > output_declaration ::= > "output" [ net_type ] [ "signed" ] [ range ] list_of_port_identifiers > | "output" "reg" [ "signed" ] [ range ] list_of_variable_port_identifiers > | "output" output_variable_type list_of_variable_port_identifiers > > Note: Quoted items should be interpreted as being in BOLD font. > > http://boydtechinc.com/cgi-bin/issueproposal.pl?cmd=view&pr=153 -- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 |
Unformatted |
|
Hosted by Boyd Technology