anchor.diff:      emit({"asn1_NOVALUE"}).
       
   
  -gen_dec_line(Erule, TopType, Comp, Pos, DecInfObj, Ext) ->
  -    Imm0 = gen_dec_line_imm(Erule, TopType, Comp, Pos, DecInfObj, Ext),
  +gen_dec_line(Erule, TopType, Comp, Pos, Ext) ->
  +    Imm0 = gen_dec_line_imm(Erule, TopType, Comp, Pos, false, Ext),
       Init = {ignore,fun(_) -> {[],[]} end},
       Imm = [{group,[Init|Imm0]}],
       emit_gen_dec_imm(Imm).
  
positive.code: wrap_extensionAdditionGroups([],_,Acc,_,_) ->
      lists:reverse(Acc).
  
  
  wrap_gen_dec_line(Erule,C,TopType,_Cname,_Type,Pos,DIO,Ext) ->
      put(component_type,{true,C}),
      gen_dec_line(Erule, TopType, C#'ComponentType'{prop=mandatory},
  		 Pos, DIO, Ext),
      erase(component_type).
  
  			  
  value_match(Index,Value) when is_atom(Value) ->
      value_match(Index,atom_to_list(Value));
  value_match([],Value) ->
  
negative.code: 
  
  gen_dec_choice2(Erule,TopType,L,Ext) ->
      gen_dec_choice2(Erule, TopType, L, 0, [], Ext).
  
  gen_dec_choice2(Erule, TopType, [H0|T], Pos, Sep0, Ext) ->
      #'ComponentType'{name=Cname,typespec=Type} = H0,
      H = H0#'ComponentType'{prop=mandatory},
      case Type#type.def of
  	#'ObjectClassFieldType'{type={typefield,_}} ->
  	    emit([Sep0,Pos," ->",nl]),
  	    gen_dec_line(Erule, TopType, H, Pos+1, Ext);
  	_ ->
  	    emit([Sep0,Pos," -> {",{asis,Cname},",",nl]),
  	    gen_dec_line(Erule, TopType, H, Pos+1, Ext),
  	    emit("}")
      end,
      Sep = [";",nl],
      gen_dec_choice2(Erule, TopType, T, Pos+1, Sep, Ext);
  gen_dec_choice2(_, _, [], _, _, _)  -> ok.
  
  indent(N) ->
      lists:duplicate(N,32). % 32 = space
  