anchor.diff:  '@' event_identifier
   | '@' '(' event_expression ')'
   | '@' '*'
  -| '@' (( '(' '*' | '(*' ) ')' |  '(' ('*)' | '*' ')' ))
  +| '@' '(' '*' ')'
   ;
   
   event_trigger : '->' hierarchical_event_identifier ';' ;
   
   event_expression :
  -expression
  -|
  -hierarchical_identifier
  -|
  -'posedge' expression
  -|
  -'negedge' expression
  -|
  -event_expression 'or' event_expression
  -|
  -event_expression ',' event_expression
  -;
  +  event_primary
  +  ( 'or' event_primary
  +  | ',' event_primary
  +  )*
  +;
  +
  +event_primary
  +    : ( expression
  +      | 'posedge' expression
  +      | 'negedge' expression
  +      )
  +    ;
   
   procedural_timing_control_statement : delay_or_event_control statement_or_null ;
   
  
positive.code: dimension_constant_expression : constant_expression ;
  
  expression
      :   (   unary_operator attribute_instance* primary
          |   primary
          |   String
          )
          (   binary_operator attribute_instance* expression
          |   '?' attribute_instance* expression ':' expression
          )*
      ;
  
  lsb_constant_expression : constant_expression ;
  
negative.code: // 9 General
  // 9.1 Attributes
  
  attribute_instance : '(' '*' attr_spec ( ',' attr_spec )* '*' ')' ;
  attr_spec : attr_name '=' constant_expression
  | attr_name
  ;
  