anchor.diff:  			   {Tag,Rest31}
   		   end,
       Flist = [fun parse_BuiltinType/1,fun parse_ReferencedType/1,fun parse_TypeWithConstraint/1],
  -    {Type,Rest5} = case (catch parse_or(Rest4,Flist)) of
  -		      {'EXIT',Reason} ->
  -			  exit(Reason);
  -			AsnErr = {asn1_error,_Reason} ->
  -			 throw(AsnErr);
  -		      Result ->
  -			  Result
  -		  end,
  +    {Type,Rest5} = parse_or(Rest4, Flist),
       case Rest5 of
   	[{'(',_}|_] ->
   	    {Constraints,Rest6} = parse_Constraints(Rest5),
  
positive.code: parse_UserDefinedConstraintParameter(Tokens,Acc) ->
      Flist = [fun parse_GovernorAndActualParameter/1,
  	     fun parse_ActualParameter/1],
      case (catch parse_or(Tokens,Flist)) of
  	{'EXIT',Reason} ->
  	    exit(Reason);
  	AsnErr = {asn1_error,_} ->
  	    throw(AsnErr);
  	{Result,Rest} ->
  	    case Rest of
  		[{',',_}|_Rest2] ->
  
negative.code: parse_NamedNumber([{identifier,_,Name},{'(',_}|Rest]) ->
      Flist = [fun parse_SignedNumber/1,
  	     fun parse_DefinedValue/1],
      case parse_or(Rest, Flist) of
  	{NamedNum,[{')',_}|Rest2]} ->
  	    {{'NamedNumber',Name,NamedNum},Rest2};
  	_ ->
  