anchor.diff:  	| dpi_import_export
   	| extern_constraint_declaration
   	| class_declaration
  -	| class_constructor_declaration
   	| local_parameter_declaration SEMI
   	| parameter_declaration SEMI
   	| covergroup_declaration
  
positive.code: 	  KW_ENDTASK ( COLON task_identifier )?
  	;
  
  function_declaration
  	: KW_FUNCTION lifetime? function_data_type_or_implicit function_name_qualifier? function_identifier
  	  function_body_declaration
  	  KW_ENDFUNCTION ( COLON function_identifier )?
  	;
  
  task_name_qualifier
  	: function_name_qualifier
  	;
  
  function_name_qualifier
  	: interface_identifier DOT
  	| (package_scope parameter_value_assignment?)? (class_identifier parameter_value_assignment? COLON2)+
  	;
  
  function_body_declaration
  	: SEMI
  	  tf_item_declaration*
  	  function_statement_or_null*
  	| LPAREN tf_port_list? RPAREN SEMI
  	  block_item_declaration*
  	  function_statement_or_null*
  	;
  
  function_prototype
  	: KW_FUNCTION function_data_type_or_implicit function_identifier ( LPAREN tf_port_list? RPAREN )?
  	;
  
  function_data_type_or_implicit
  	: data_type_or_void | implicit_data_type
  	;
  
  data_type_or_void
  
negative.code: method_prototype
  	: task_prototype
  	| function_prototype
  	;
  
  constraint_declaration
  