anchor.diff:     ;
   
   triggerevents
  -   : triggeroneevent
  -   | triggerevents OR triggeroneevent
  +   : triggeroneevent (OR triggeroneevent)*
      ;
   
   triggeroneevent
  
positive.code: 
  from_list
     : table_ref (COMMA table_ref)*
     //          | from_list COMMA table_ref
  
     ;
  /*
  table_ref:
  	table_ref_proxy
  	| joined_table
  	| OPEN_PAREN joined_table CLOSE_PAREN alias_clause
  	;
  
  table_ref_proxy:
  	relation_expr opt_alias_clause
  	| relation_expr opt_alias_clause tablesample_clause
  	| func_table func_alias_clause
  	| LATERAL_P func_table func_alias_clause
  	| xmltable opt_alias_clause
  	| LATERAL_P xmltable opt_alias_clause
  	| select_with_parens opt_alias_clause
  	| LATERAL_P select_with_parens opt_alias_clause
  	;
  joined_table:
  	OPEN_PAREN joined_table CLOSE_PAREN table_ref_proxy CROSS JOIN table_ref_proxy
  	| table_ref_proxy join_type JOIN table_ref_proxy join_qual
  	| table_ref_proxy JOIN table_ref_proxy join_qual
  	| table_ref_proxy NATURAL join_type JOIN table_ref_proxy
  	| table_ref_proxy NATURAL JOIN table_ref_proxy
  	;
  */
  
  
  table_ref
     : relation_expr opt_alias_clause tablesample_clause? # table_ref_simple
     | func_table func_alias_clause # table_ref_simple
     | xmltable opt_alias_clause # table_ref_simple
     | select_with_parens opt_alias_clause # table_ref_simple
     | LATERAL_P (xmltable opt_alias_clause | func_table func_alias_clause | select_with_parens opt_alias_clause) # table_ref_simple
     //todo: joined_table was inlined to (partially) solve left-recursion problem;
  
     //          | joined_table
     | table_ref (CROSS JOIN table_ref | NATURAL join_type? JOIN table_ref | join_type? JOIN table_ref join_qual) # table_ref_joined_tables
     | OPEN_PAREN table_ref (CROSS JOIN table_ref | NATURAL join_type? JOIN table_ref | join_type? JOIN table_ref join_qual)? CLOSE_PAREN opt_alias_clause # table_ref_joined_tables
     ;
     //TODO: this syntax is not supported due to left-recursion, need to be solve
  
     //          | OPEN_PAREN joined_table CLOSE_PAREN alias_clause
  
  /*
   joined_table: OPEN_PAREN joined_table CLOSE_PAREN
               | table_ref CROSS JOIN table_ref
               | table_ref join_type JOIN table_ref join_qual
               | table_ref JOIN table_ref join_qual
               | table_ref NATURAL join_type JOIN table_ref
               | table_ref NATURAL JOIN table_ref
  ;
  */
  
  
  alias_clause
     : AS colid (OPEN_PAREN name_list CLOSE_PAREN)?
  
negative.code:    ;
  
  opt_array_bounds
     : (OPEN_BRACKET iconst? CLOSE_BRACKET)*
     ;
  
  simpletypename
  