anchor.diff:              E
       end.
   
  -file(File) ->
  -    file(File, []).
  +codec(File) ->
  +    codec(File, []).
   
   %% dict/2
  +%%
  +%% Parse a dictionary file and return the orddict that a codec module
  +%% returns from dict/0.
   
   -spec dict(string(), [opt()])
      -> {ok, orddict:orddict()}
  
positive.code: dict(File) ->
      dict(File, []).
  
  %% ===========================================================================
  
  make(_, _, _, []) ->
      ok;
  make(File, Opts, Dict, [Mode | Rest]) ->
      try diameter_codegen:from_dict(File, Dict, Opts, Mode) of
          ok ->
              make(File, Opts, Dict, Rest)
      catch
          error: Reason ->
              {error, {Reason, Mode, erlang:get_stacktrace()}}
      end.
  
negative.code: %%
  %% Module alternative to diameterc for dictionary compilation.
  %%
  %% Eg. 1> diameter_make:codec("mydict.dia").
  %%
  %%     $ erl -noinput \
  %%           -boot start_clean \
  %%           -eval 'ok = diameter_make:codec("mydict.dia")' \
  %%           -s init stop
  %%
  
  -module(diameter_make).
  
  -export([codec/1,
           codec/2,
           dict/1,
           dict/2,
           format/1,
           reformat/1]).
  
  -export_type([opt/0]).
  
  -type opt() :: {include|outdir|name|prefix|inherits, string()}
               | verbose
               | debug.
  
  %% ===========================================================================
  
  %% codec/1-2
  %%
  %% Parse a dictionary file and generate a codec module.
  
  -spec codec(Path, [opt()])
     -> ok
      | {error, Reason}
   when Path :: string(),
        Reason :: string().
  
  codec(File, Opts) ->
      case dict(File, Opts) of
          {ok, Dict} ->
              make(File,
  