anchor.diff:  
   option_def -> option name '=' constant: {option, '$2', '$4'}.
   
  -enum_def -> enum identifier '{' enum_fields '}':
  +enum_def -> enum fidentifier '{' enum_fields '}':
                                           {{enum,identifier_name('$2')},'$4'}.
   
   enum_fields -> enum_field enum_fields:  ['$1' | '$2'].
  
positive.code:                                         {{extend,{eref1,'$2'}},'$4'}.
  
  
  service_def -> service identifier '{' rpc_defs '}':
                                          {{service,identifier_name('$2')},'$4'}.
  
  rpc_defs -> rpc_def rpc_defs:           ['$1' | '$2'].
  rpc_defs -> ';' rpc_defs:               '$2'.
  rpc_defs -> '$empty':                   [].
  
  rpc_def -> rpc identifier rpc_arg returns rpc_ret ';':
                                          {identifier_name('$2'), '$3','$5',[]}.
  rpc_def -> rpc identifier rpc_arg returns rpc_ret '{' m_opts '}':
                                          {identifier_name('$2'), '$3','$5','$7'}.
  
  rpc_arg -> '(' name ')':                {'$2', false}.
  
negative.code: enum_opt -> name '=' constant:          {'$1', '$3'}.
  
  
  message_def -> message fidentifier '{' msg_elems '}':
                                          {{msg,identifier_name('$2')},'$4'}.
  
  msg_elems -> msg_elem msg_elems:        ['$1' | '$2'].
  