anchor.diff:              | 'false'
               ;
   
  -ID          : [a-z_A-Z0-9' '~!@$%*&^?.]+
  +ID          : [a-z_A-Z0-9' '~!@$%*&^?.]+ 
               ;
   
   NUMBER      : REAL
  
positive.code:             | OCTAL
              ;
  
  REAL        : [0-9]+ ( '.' [0-9]+ )*
              ;
  
  HEX         : '0x' [0-9A-Fa-f]+
  
negative.code:             | object                                        
              ;
  
  array       : ( DASH value INDENT? DEDENT? )+
              ;
  
  value       : data NL?                                     
              ;
  
  object      : ( pair NL? )+
              ;
  
  pair        : INDENT? ID COLON INDENT? data DEDENT?
              ;
  
  data        : ID                                            # StringValue
  