[sv-bc] BNF update for SV-BC71


Subject: [sv-bc] BNF update for SV-BC71
From: Karen Pieper (Karen.Pieper@synopsys.com)
Date: Fri Feb 28 2003 - 19:10:24 PST


This proposal is the BNF changes to support the language added with SV-BC71.

In A.1.3:

REPLACE: (bold endmodule ; )
module_declaration ::=
        { attribute_instance } module_keyword module_identifier [
parameter_port_list ]
        list_of_ports ; [ timeunits_declaration ] { module_item }
        endmodule
        | {attribute_instance } module_keyword module_identifier [
parameter_port_list ]
        [ list_of_port_declarations ] ; [ timeunits_declaration ] {
non_port_module_item }
        endmodule

WITH: (bold endmodule, "( .* )", ;)
module_nonansi_header ::=
        { attribute_instance } module_keyword module_identifier [
parameter_port_list ]
        list_of_ports ;
module_ansi_header ::=
        {attribute_instance } module_keyword module_identifier [ parameter_port_list ]
        [ list_of_port_declarations ] ;
module_declaration ::=
        module_nonansi_header [ timeunits_declaration ] { module_item } endmodule
        | module_ansi_header [ timeunits_declaration ] { non_port_module_item }
endmodule
        | { attribute_instance } module_keyword module_identifier ( .* ) ;
        [ timeunits_declaration ] { module_item } endmodule
        | extern module_nonansi_header
        | extern module_ansi_header

REPLACE: (bold interface, endinterface)
interface_declaration ::=
        { attribute_instance } interface interface_identifier [ parameter_port_list ]
        list_of_ports ; [ timeunits_declaration ] { interface_item }
        endinterface [ :interface_identifier ]
        | {attribute_instance } interface interface_identifier [ parameter_port_list ]
        [ list_of_port_declarations ] ; [ timeunits_declaration ] {
non_port_interface_item }
        endinterface [ :interface_identifier ]

WITH: (bold interface, endinterface)
interface_nonansi_header ::=
        { attribute_instance } interface interface_identifier [ parameter_port_list ]
        list_of_ports ;
interface_ansi_header ::=
        {attribute_instance } interface interface_identifier [ parameter_port_list ]
        [ list_of_port_declarations ] ;
interface_declaration ::=
        interface_nonansi_header [ timeunits_declaration ] { interface_item }
        endinterface [ :interface_identifier ]
        | interface_ansi_header [ timeunits_declaration ] {
non_port_interface_item }
        endinterface [ :interface_identifier ]
        | { attribute_instance } interface_keyword interface_identifier ( .* ) ;
        [ timeunits_declaration ] { interface_item } endinterface [
:interface_identifier ]
        | extern interface_nonansi_header
        | extern interface_ansi_header

In A.5.1
REPLACE:
udp_declaration ::=
        { attribute_instance } primitive udp_identifier ( udp_port_list) ;
        udp_port_declaration { udp_port_declaration }
        udp_body
        endprimitive
        | { attribute_instance } primitive udp_identifier (
udp_declaration_port_list) ;
        udp_body
        endprimitive

WITH:
udp_nonansi_declaration ::=
                { attribute_instance } primitive udp_identifier ( udp_port_list) ;
udp_ansi_declaration ::=
                { attribute_instance } primitive udp_identifier (
udp_declaration_port_list) ;
udp_declaration ::=
        udp_nonansi_declaration udp_port_declaration { udp_port_declaration }
        udp_body
        endprimitive
        | udp_ansi_declaration udp_body primitive
        | extern udp_nonansi_declaration
        | extern udp_ansi_declaration
        | { attribute_instance } primitive udp_identifier ( .*) ;
        {udp_port_declaration} udp_body endprimitive



This archive was generated by hypermail 2b28 : Fri Feb 28 2003 - 19:10:59 PST