[sv-ac] syntax dependency for property keyword

From: John Havlicek <john.havlicek_at_.....>
Date: Wed Jan 10 2007 - 06:42:32 PST
Hi Dmitry:

I have retrieved the current syntax leading to the keyword 
"property" out a few levels.

Comparing this to the structure of tf_port_list, I think it
is pretty convincing that there will be no syntactic ambiguity
in adding "property" as a type in port lists.

One could carry out the same exercise with "sequence" and "event".

J.H.


Keyword "property":
-------------------

The following are the only productions in which the terminal property appears:

   assert_property_statement::=
      assert property ( property_spec ) action_block
   
   assume_property_statement::=
      assume property ( property_spec ) ;
   
   cover_property_statement::=
      cover property ( property_spec ) statement_or_null
   
   property_declaration ::=
      property property_identifier [ ( [ tf_port_list ] ) ] ;
         { assertion_variable_declaration }
         property_spec ;
      endproperty [ : property_identifier ]


The following is the only production in which any of the nonterminals 
assert_property_declaration, assume_property_declaration, or cover_property_declaration
appears on the RHS:

   concurrent_assertion_statement ::=
      assert_property_statement
      | assume_property_statement
      | cover_property_statement


The following is the only production in which the nonterminal concurrent_assertion_statement
appears on the RHS:

   concurrent_assertion_item ::= [ block_identifier : ] concurrent_assertion_statement


The following is the only production in which the nonterminal property_declaration appears
on the RHS:

   concurrent_assertion_item_declaration ::= 
      property_declaration
      | sequence_declaration

The following are the only productions in which the nonterminal conncurrent_assertion_item
appears on the RHS:

   module_common_item ::=
      module_or_generate_item_declaration
      | interface_instantiation
      | program_instantiation
      | concurrent_assertion_item
      | bind_directive
      | continuous_assign
      | net_alias
      | initial_construct
      | final_construct
      | always_construct
      | loop_generate_construct
      | conditional_generate_construct

   non_port_program_item ::=
      { attribute_instance } continuous_assign
      | { attribute_instance } module_or_generate_item_declaration
      | { attribute_instance } initial_construct
      | { attribute_instance } final_construct
      | { attribute_instance } concurrent_assertion_item
      | { attribute_instance } timeunits_declaration17
      | program_generate_item

The following are the only productions in which the nonterminal 
conncurrent_assertion_item_declaration appears on the RHS:

   package_or_generate_item_declaration ::=
      net_declaration
      | data_declaration
      | task_declaration
      | function_declaration
      | dpi_import_export
      | extern_constraint_declaration
      | class_declaration
      | class_constructor_declaration
      | parameter_declaration ;
      | local_parameter_declaration
      | covergroup_declaration
      | overload_declaration
      | concurrent_assertion_item_declaration
      | ;

   clocking_item ::=
      default default_skew ;
      | clocking_direction list_of_clocking_decl_assign ;
      | { attribute_instance } concurrent_assertion_item_declaration




-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Jan 10 06:43:06 2007

This archive was generated by hypermail 2.1.8 : Wed Jan 10 2007 - 06:43:37 PST