anchor.diff:  
   field : name (',' name)* ':' expression;
   
  -primary:'nil' | 'true' | 'false' |int_literal | real_literal | string_literal| idn | (idn (constant (',' constant)*) | (primary '.' name) | primary expression?| invocation | (type_spec '$' field (',' field)*
  -  | (type_spec '$' '[' (expression ':')? (expression (',' expression)* ']')  | (type_spec '$' '[' constant (',' constant)* ']') | ('force' type_spec?)| ('up' '(' expression ')' )  | ('down' '(' expression ')' ) ;
  -
  -expression : primary;
  +
  +expression : primary
   | ('(' expression ')')
   | ('~' expression)
   | ( '-' expression ) 
  
positive.code: 
  statement: decl
           | (idn ':' type_spec ':=' expression)
           | decl (',' decl)* ':=' invocation)
            | (idn (',' idn)* ':=' invocation)
  |  (idn (',' idn)* ':=' expression (',' expression)*)
  | (primary '.' name ':=' expression)
  
negative.code: ;
  
  
  primary:'nil' 
         | 'true' 
         | 'false' 
         |int_literal 
         | real_literal 
         | string_literal
         | idn 
         | (idn (constant (',' constant)*)) 
         | (primary '.' name) 
         | (primary expression?)
         | invocation 
         | (type_spec '$' field (',' field)*)
          | (type_spec '$' '[' (expression ':')? (expression (',' expression)* ']')  )
  | (type_spec '$' '[' constant (',' constant)* ']') 
  | ('force' type_spec?)
  | ('up' '(' expression ')' ) 
  | ('down' '(' expression ')' ) ;
  
  
  idn:
  STRING;
  