anchor.diff:      {Field,Rest} = parse_PrimitiveFieldName(Tokens),
       parse_FieldName(Rest,[Field]).
   
  -parse_FieldName([{'.',_}|Rest],Acc) ->
  -    case (catch parse_PrimitiveFieldName(Rest)) of
  -	{'EXIT',Reason} ->
  -	    exit(Reason);
  -	AsnErr = {asn1_error,_} ->
  -	    throw(AsnErr);
  -	{FieldName,Rest2} ->
  -	    parse_FieldName(Rest2,[FieldName|Acc])
  -    end;
  -parse_FieldName(Tokens,Acc) ->
  +parse_FieldName([{'.',_}|Rest0],Acc) ->
  +    {FieldName,Rest1} = parse_PrimitiveFieldName(Rest0),
  +    parse_FieldName(Rest1, [FieldName|Acc]);
  +parse_FieldName(Tokens, Acc) ->
       {lists:reverse(Acc),Tokens}.
       
   parse_FixedTypeValueFieldSpec([{valuefieldreference,L1,VFieldName}|Rest]) ->
  
positive.code: 	   fun parse_ObjectFromObject/1,
  	   fun parse_ParameterizedObject/1,
  	   fun parse_DefinedObject/1],
      case (catch parse_or(Tokens,Flist)) of
  	{'EXIT',Reason} ->
  	    exit(Reason);
  	AsnErr = {asn1_error,_} ->
  	    throw(AsnErr);
  	Result ->
  	    Result
      end.
  
  parse_ObjectDefn(Tokens) ->
      Flist=[fun parse_DefaultSyntax/1,
  	   fun parse_DefinedSyntax/1],
      case (catch parse_or(Tokens,Flist)) of
  	{'EXIT',Reason} ->
  	    exit(Reason);
  	AsnErr = {asn1_error,_} ->
  	    throw(AsnErr);
  	Result ->
  	    Result
      end.
  
  parse_DefaultSyntax([{'{',_},{'}',_}|Rest]) ->
      {{object,defaultsyntax,[]},Rest};
  
negative.code:     Flist = [fun parse_DefinedObjectClass/1,
  	     fun parse_ObjectClassDefn/1,
  	     fun parse_ParameterizedObjectClass/1],
      parse_or(Tokens, Flist).
  
  parse_ObjectClassDefn([{'CLASS',_},{'{',_}|Rest]) ->
      {Type,Rest2} = parse_FieldSpec(Rest),
  