anchor.diff:            ]).
   
   parses_dotted_references_test() ->
  -    {ok, [{{msg,'Msg3'}, [#field{name=y, type={ref,'Msg.Msg2'}}]}]} =
  +    {ok, [{{msg,'Msg3'}, [#field{name=y, type={ref,['Msg','.','Msg2']}}]}]} =
           parse_lines(
             ["message Msg3 {",
              "  repeated Msg.Msg2 y=1;",
  
positive.code: 
  package_def -> package name ';':            {package, '$2'}.
  
  name -> '.' identifiers:                    concat_dot_identifiers('$1').
  name -> identifiers:                        concat_identifiers('$1').
  
  identifiers -> identifier '.' identifiers:      [identifier_name('$1') | '$3'].
  identifiers -> identifier:                      [identifier_name('$1')].
  
  option_def -> option name '=' constant:  {option, '$2', '$4'}.
  
negative.code: 
  literal_value({_TokenType, _Line, Value}) -> Value.
  
  parses_simple_msg_test() ->
      {ok, [{{msg,'Msg'}, [#field{name=x, type=uint32, fnum=1,
                                  occurrence=optional, opts=[]}]}]} =
  