anchor.diff:  
   definition
      : (name constant? (ival (',' ival)*)* ';')
  -   | (name (',' name)* statement)
  +   | (name '(' (name (',' name)*)* ')' statement) 
      ;
   
   ival
  
positive.code:    ;
  
  statement
     : ('auto' name constant* (',' name constant*)* ';' statement)
     | ('extrn' name (',' name)* ';' statement)
     | (name ':' statement)
     | ('case' constant ':' statement)
     | ('if' '(' rvalue ')' statement ('else' statement)*)
     | ('while' '(' rvalue ')' statement)
     | ('switch' rvalue statement)
     | ('goto' rvalue ';')
  
negative.code: 
  
  STRING1
     : '"' ~["\r\n]* '"'
     ;
  
  
  STRING2
     : '\'' ~ [\'\r\n]* '\''
     ;
  
  WS
     : [ \t\r\n] -> skip
  