anchor.diff:              end,
      {Dicts2, [Instr | Instructions], NeedPMap or need_pmap(Presence, Operator)};
   
  -parse_instruction([I = #xmlElement{name = Type, content = Childs} | Tail], Dicts, DefDict)
  +parse_instruction([I = #xmlElement{name = Type, content = Childs} | Tail], Dicts, DefDict, Options)
   when (Type == int32 ) or (Type == uInt32) or (Type == uInt64) or (Type == 'int64') or
        (Type == byteVector) or (Type == decimal)->
      OpName = get_bin_attribute(name, I),
  -   {Dicts1, Instructions, NeedPMap} = parse_instruction(Tail, Dicts, DefDict),
  +   {Dicts1, Instructions, NeedPMap} = parse_instruction(Tail, Dicts, DefDict, Options),
      {Dicts2, Operator} =
      if
         (Type == decimal) -> parse_dec_op(OpName, Childs, Dicts1, DefDict);
  
positive.code:                   dictionary = DictName,
                    instructions = Instructions},
     Templates1 = erlang_fast_templates:add_template(Template, Templates),
     parse_template(Rest, Dicts3, DefDict, Templates1);
  
  parse_template([#xmlText{} | Rest], Dicts, DefDict, Templates) ->
     parse_template(Rest, Dicts, DefDict, Templates);
  
  parse_template([#xmlComment{} | Rest], Dicts, DefDict, Templates) ->
     parse_template(Rest, Dicts, DefDict, Templates).
  
  parse_instruction([], Dicts, _DefDict) ->
     {Dicts, [], false};
  
  parse_instruction([I = #xmlElement{name = typeRef} | Tail], Dicts, DefDict) ->
     TypeName = get_attribute(name, I),
     Dicts1 = erlang_fast_dicts:new_dict(?type_dictionary(TypeName), Dicts),
     {Dicts2, Instructions, NeedPMap} = parse_instruction(Tail, Dicts1, DefDict),
     {Dicts2, [#typeRef{
              name = get_bin_attribute(name, I),
              ns = get_bin_attribute(ns, I)} | Instructions], NeedPMap or false};
  
  parse_instruction([I = #xmlElement{name = templateRef} | Tail], Dicts, DefDict) ->
     {Dicts1, Instructions, NeedPMap} = parse_instruction(Tail, Dicts, DefDict),
     {Dicts1, [#templateRef{
              name = get_bin_attribute(name, I),
              templateNs = get_bin_attribute(templateNs, I),
              ns = get_bin_attribute(ns, I)} | Instructions], NeedPMap or false};
  
  parse_instruction([I = #xmlElement{name = string = T, content = Childs} | Tail], Dicts, DefDict) ->
     OpName = get_bin_attribute(name, I),
     {Dicts1, Instructions, NeedPMap} = parse_instruction(Tail, Dicts, DefDict),
     {Dicts2, Operator} = parse_op(OpName, T, Childs, Dicts1, DefDict),
     Presence = get_attribute(presence, I, "mandatory"),
     Instr =  case get_attribute(charset, I, "ascii") of
  
negative.code:             need_pmap = NeedPMap,
              instructions = GroupInstructions} | Instructions], need_pmap(Presence)};
  
  parse_instruction([#xmlText{} | Tail], Dicts, DefDict, Options) ->
     parse_instruction(Tail, Dicts, DefDict, Options);
  
  
  % Handle XML comments in template file
  parse_instruction([#xmlComment{} | Tail], Dicts, DefDict, Options) ->
    %just ignore them...
    parse_instruction(Tail, Dicts, DefDict, Options);
  
  
  parse_instruction([I | _Tail], _, _, _) ->
     erlang:error({unknown_tag, I}).
  
  parse_dec_op(OpName, Childs, Dicts, DefDict) ->
  