errata/178: 9.4.1, A.6.6 -- if_else_if_statement and function_if_else_statement are redundant

From: Brad Pierce (Brad.Pierce@synopsys.com)
Date: Mon Oct 28 2002 - 18:54:20 PST

  • Next message: Shalom Bresticker: "Re: errata/178: 9.4.1, A.6.6 -- if_else_if_statement and function_if_else_statement are redundant"

    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.