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: res_names -> string_expr ',' res_names: ['$1' | '$3'].
  res_names -> string_expr:               ['$1'].
  
  oneof_def -> 'oneof' identifier '{' oneof_elems '}':
                                          #gpb_oneof{name=identifier_name('$2'),
                                                     fields='$4'}.
  
  
negative.code: enum_fields -> ';' enum_fields:         '$2'.
  enum_fields -> '$empty':                [].
  
  enum_field -> fidentifier '=' integer ';':
                                          {identifier_name('$1'), '$3'}.
  enum_field -> fidentifier '=' integer '[' opt_enum_opts ']' ';':
                                          {identifier_name('$1'), '$3'}.
  
  opt_enum_opts -> enum_opts:             '$1'.
  