class_method ::=
  { method_qualifier } task_declaration
| { method_qualifier } function_declaration
| extern
{ method_qualifier } method_prototype
| class_constructor_declaration
extern_method_declaration ::=
  function [ lifetime ] class_identifier
:: function_body_declaration
| task
[ lifetime ] class_identifier :: task_body_declaration
class_constructor_declaration ::=
function new ( tf_port_list
) ;
{ block_item_declaration } 
 [ super . new [ ( list_of_arguments ) ] ; ]
{ function_statement_or_null }
endfunction [ : new ]