anchor.diff:              skipped
       end.
   
  --spec yrl_needs_compile(Source::string(), Target::string()) -> boolean().
  -yrl_needs_compile(Source, Target) ->
  +compile_xrl_yrl1(Source, Target, Config, "yrl") ->
  +    Opts = [{parserfile, Target}, {return, true}
  +            |rebar_config:get(Config, yrl_opts, [])],
  +    yecc:file(Source, Opts);
  +compile_xrl_yrl1(Source, Target, Config, "xrl") ->
  +    Opts = [{scannerfile, Target}, {return, true}
  +            |rebar_config:get(Config, xrl_opts, [])],
  +    leex:file(Source, Opts).
  +
  +-spec xrl_yrl_needs_compile(Source::string(), Target::string()) -> boolean().
  +xrl_yrl_needs_compile(Source, Target) ->
       filelib:last_modified(Target) < filelib:last_modified(Source).
   
   gather_src([], Srcs) ->
  
positive.code:             ?FAIL
      end.
  
  -spec compile_yrl(Source::string(), Target::string(), Config::#config{}) -> 'ok'.
  compile_yrl(Source, Target, Config) ->
      case yrl_needs_compile(Source, Target) of
          true ->
              Opts = [{parserfile, Target}, {return, true}
                      |rebar_config:get(Config, yrl_opts, [])],
              case yecc:file(Source, Opts) of
                  {ok, _, []} ->
                      ok;
                  {ok, _, _Warnings} ->
  
negative.code:     %%       much slower.
      ok = rebar_file_utils:rm_rf("ebin/*.beam priv/mibs/*.bin"),
  
      YrlFiles = rebar_utils:find_files("src", "^.*\\.[x|y]rl\$"),
      rebar_file_utils:delete_each(
        [ binary_to_list(iolist_to_binary(re:replace(F, "\\.[x|y]rl$", ".erl")))
          || F <- YrlFiles  ]),
  
      %% Erlang compilation is recursive, so it's possible that we have a nested
  