anchor.diff:     ;
   
   c_expr
  -   : PARAM opt_indirection # c_expr_expr
  -   | EXISTS select_with_parens # c_expr_exists
  +   : EXISTS select_with_parens # c_expr_exists
      | ARRAY (select_with_parens | array_expr) # c_expr_expr
  +   | PARAM opt_indirection # c_expr_expr
      | GROUPING OPEN_PAREN expr_list CLOSE_PAREN # c_expr_expr
  +   | /*22*/
  +
  +   UNIQUE select_with_parens # c_expr_expr
      | columnref # c_expr_expr
      | aexprconst # c_expr_expr
      | plsqlvariablename # c_expr_expr
  
positive.code: 
     //https://www.postgresql.org/docs/12/sql-syntax-lexical.html#SQL-PRECEDENCE
  
  a_expr
     : c_expr
     //::	left	PostgreSQL-style typecast
     | a_expr TYPECAST typename
     | a_expr COLLATE any_name
     | a_expr AT TIME ZONE a_expr
     //right	unary plus, unary minus
     | (PLUS | MINUS) a_expr
     //left	exponentiation
     | a_expr CARET a_expr
     //left	multiplication, division, modulo
     | a_expr (STAR | SLASH | PERCENT) a_expr
     //left	addition, subtraction
     | a_expr (PLUS | MINUS) a_expr
     //left	all other native and user-defined operators
     | a_expr qual_op a_expr
     | qual_op a_expr
     //range containment, set membership, string matching BETWEEN IN LIKE ILIKE SIMILAR
     | a_expr NOT? (LIKE | ILIKE | SIMILAR TO |BETWEEN SYMMETRIC?) a_expr opt_escape
     //< > = <= >= <>	 	comparison operators
     | a_expr (LT | GT | EQUAL | LESS_EQUALS | GREATER_EQUALS | NOT_EQUALS) a_expr
     //IS ISNULL NOTNULL	 	IS TRUE, IS FALSE, IS NULL, IS DISTINCT FROM, etc
     | a_expr IS NOT? (NULL_P | TRUE_P | FALSE_P | UNKNOWN | DISTINCT FROM a_expr | OF OPEN_PAREN type_list CLOSE_PAREN | DOCUMENT_P | unicode_normal_form? NORMALIZED)
     | a_expr (ISNULL | NOTNULL)
     | row OVERLAPS row
     //NOT	right	logical negation
     | NOT a_expr
     //AND	left	logical conjunction
     | a_expr AND a_expr
     //OR	left	logical disjunction
     | a_expr OR a_expr
     | a_expr (LESS_LESS | GREATER_GREATER) a_expr
     | a_expr qual_op
     | a_expr NOT? IN_P in_expr
     | a_expr subquery_Op sub_type (select_with_parens | OPEN_PAREN a_expr CLOSE_PAREN)
     | UNIQUE select_with_parens
     | DEFAULT
     ;
  
  b_expr
  
negative.code:    ;
  
  generic_set
     : var_name (TO | EQUAL) var_list
     ;
  
  set_rest_more
  