From: Brad Pierce (Brad.Pierce@synopsys.com)
Date: Mon Oct 28 2002 - 18:54:20 PST
Precedence: bulk
>Number: 178
>Category: errata
>Originator: "Brad Pierce" <Brad.Pierce@synopsys.com>
>Environment:
>Description:
Dan Jacobi <dan.jacobi@intel.com> points out that the following two
nonterminals from 9.4.1/A.6.6 are redundant --
if_else_if_statement
function_if_else_statement
To reduce ambiguity, both of these nonterminals should be removed
from the grammar. Section 9.4.1 should be removed from the LRM.
To see the redundancy, consider an if_else_if_statement of the form --
if (e0) s0 else if (e1) s1 else if (e2) s2 ...
... else if (en-1) sn-1 else if (en) sn else sn+1
= if (e0) s0 else S1
where
S1 = if (e1) s1 else if (e2) s2 ...
... else if (en-1) sn-1 else if (en) sn else sn+1
= if (e1) s1 else S2
where
S2 = if (e2) s2 else if (e3) s3 ...
... else if (en-1) sn-1 else if (en) sn else sn+1
= if (e2) s2 else S3
....
Sn-1 = if (en-1) sn-1 else if (en) sn else sn+1
= if (en-1) sn-1 else Sn
where
Sn = if (en) sn else sn+1
Likewise for function_if_else_if_statement.
This archive was generated by hypermail 2.1.4
: Mon Oct 28 2002 - 19:01:02 PST
and
sponsored by Boyd Technology, Inc.