anchor.diff:     ;
   
   line
  -   : host logname username datetime request statuscode bytes (referer useragent)?
  +   : host logname username datetimetz request statuscode bytes (referer useragent)?
      ;
   
   host
      : STRING
  -   | ip
  +   | IP
      ;
   
   logname
  
positive.code:    | '-'
     ;
  
  datetime
     : '[' .*  ']'
     ;
  
  referer
      : literal
      ;
  
  request
      : literal
      ;
  
  useragent
      : literal;
  
  literal
     : '"' .* '"'
     ;
  
  statuscode
  
negative.code:    : NUMBER
     ;
  
  
  IP
     : NUMBER '.' NUMBER '.' NUMBER '.' NUMBER
     ;
  
  
  STRING
     : [a-zA-Z();.] [a-zA-Z0-9_();.]*
     ;
  
  
  