anchor.diff:      :   formatdefine declarations?
       ;
   
  +doc
  +    :   ^(DOC SHORTDOC*)
  +    ;
  +
   formatdefine
  -    :   ^(FILEFORMAT 
  -            ^(DOC SHORTDOC*)
  +    :   ^(FILEFORMAT doc
               (n=CONSTANTNAME
                   {
                       _fileformat->extensions.push_back(get_string($n.text));
  
positive.code:     ;
  
  enumdefine
      :   ^(ENUMDEF ^(DOC SHORTDOC*) TYPENAME TYPENAME enumconstant+);
  
  enumconstant
      :   ^(ENUMCONSTDEF ^(DOC SHORTDOC*) CONSTANTNAME INT);
  
  classdefine
      :   ^(CLASSDEF ^(DOC SHORTDOC*) TYPENAME ^(BASE TYPENAME?) declarations?)
      ;
  
  fielddefine
      :   ^(FIELDDEF ^(DOC SHORTDOC*) TYPENAME VARIABLENAME arguments?)
      |   ^(IF expression fielddefine+
              (^(ELIF expression fielddefine+))*
              (^(ELSE fielddefine+))?
          )
      ;
  
  kwarg
      :   ^(KWARG VARIABLENAME expression)
      ;
  
  arguments
      :   ^(OP_CALL kwarg+)
      ;
  
  expression
  
negative.code:     |   ^(OP_DIVIDE expression expression)
      |   ^(OP_MODULO expression expression)
      |   ^(OP_POWER expression expression)
      |   ^(OP_CALL expression kwarg+)
      |   ^(OP_INDEX expression expression+)
      ;
  