anchor.diff:      Flist = [fun parse_UserDefinedConstraint/1,
   	     fun parse_TableConstraint/1,
   	     fun parse_ContentsConstraint/1],
  -    case (catch parse_or(Tokens,Flist)) of
  -	{'EXIT',Reason} ->
  -	    exit(Reason);
  -	AsnErr = {asn1_error,_} ->
  -	    throw(AsnErr);
  -	Result ->
  -	    Result
  -    end.
  +    parse_or(Tokens, Flist).
   
   parse_UserDefinedConstraint([{'CONSTRAINED',_},{'BY',_},{'{',_},{'}',_}|Rest])->
       {{constrained_by,[]},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: 	     {value_tag,fun parse_Value/1},
  	     {object_tag,fun parse_Object/1},
  	     {objectset_tag,fun parse_ObjectSet/1}],
      case parse_or_tag(Tokens, Flist) of
  	{{value_tag,_},_}=Result ->
  	    %% Keep the value_tag.
  	    Result;
  	{{Tag,Setting},Rest} when is_atom(Tag) ->
  	    %% Remove all other tags.
  	    {Setting,Rest}
      end.
  
  