anchor.diff:  %% FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
   %% OTHER DEALINGS IN THE SOFTWARE.
   -module(protobuffs_compile).
  --export([scan_file/1, generate_source/1]).
  +-export([scan_file/1, scan_file/2, generate_source/1, generate_source/2]).
   
   %%--------------------------------------------------------------------
   %% @doc Generats a built .beam file and header file .hrl
  
positive.code: 
  %% @hidden
  write_header_include_file(Basename, Messages) ->
      {ok, FileRef} = file:open(Basename ++ ".hrl", [write]),
      [begin
  	 OutFields = [string:to_lower(A) || {_, _, _, A, _, _} <- lists:keysort(1, Fields)],
  	 if
  
negative.code: %%       Result = ok | {error, Reason}
  %%       Reason = ext_posix() | terminated | system_limit
  %%--------------------------------------------------------------------
  scan_file(ProtoFile) ->
      scan_file(ProtoFile,[]).
  
  %%--------------------------------------------------------------------
  %% @doc Generats a built .beam file and header file .hrl
  %%      Considerd option properties: output_include_dir, 
  %%                                   output_ebin_dir
  %% @spec scan_file(ProtoFile,Options) -> Result
  %%       ProtoFile = string()
  %%       Options = proplists()
  %%       Result = ok | {error, Reason}
  %%       Reason = ext_posix() | terminated | system_limit
  %%--------------------------------------------------------------------
  scan_file(ProtoFile,Options) when is_list(ProtoFile) ->
      Basename = filename:basename(ProtoFile, ".proto") ++ "_pb",
      {ok,Parsed} = parse(ProtoFile),
      {{msg,UntypedMessages},{enum,Enums}} = collect_full_messages(Parsed),
      Messages = resolve_types(UntypedMessages,Enums),
      output(Basename, Messages, Enums, Options).
  
  %%--------------------------------------------------------------------
  %% @doc Generats a source .erl file and header file .hrl
  