Ambiguity in 2/7 BNF

From: James A. Markevitch (jam@magic.com)
Date: Mon Feb 07 2000 - 20:42:03 PST


The latest BNF is ambiguous with respect to attribute_instances.

Specifically,

ordered_port_connection ::= [ expression ] [ attribute_instance ]

ystem_function_call :: system_function_identifier [ attribute_instance ]
                                        [ ( expression { , expression } ) ]

The following module instantion results in an ambiguity:

        modname newmod($time (* myattr *) );

Does the attribute apply to the $time function call or to the port in the
module?

One can override the default behavior by writing one of the following:

        modname newmod(($time) (* myattr *) );
or
        modname newmod(($time (* myattr *) ) );

Nevertheless, we have introduced an ambiguity into the language.

The ambiguity arises in other places as well:

    Anywhere that a delay is followed by an attribute_instance:
        net_declaration
        gate_instantiation
        udp_instantiation
        procedural_timing_control_statement
            Which could consist of a delay_control followed by a statement
            which consists of just an attribute instance.

James Markevitch



This archive was generated by hypermail 2.1.4 : Mon Jul 08 2002 - 12:54:11 PDT and
sponsored by Boyd Technology, Inc.