ISSUE 153

Number 153
Category errata
Synopsis 12.3.3, A.2.1.2: output_declaration is ambiguous
State lrmdraft
Class errata-simple
Arrival-DateOct 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
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--

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