int_of_string
(String.sub uri index_con (String.length uri - index_con)))
-let term_of_uri uri =
+let term_of_uri ?(subst = []) uri =
let s = UriManager.string_of_uri uri in
try
(* Constant *)
let len = String.length s in
let sub = String.sub s (len -4) 4 in
if sub = ".con" then
- const uri
+ const ~subst uri
else if sub = ".var" then
- var uri
+ var ~subst uri
else
(try
(* Inductive Type *)
let (uri, typeno) = indtyuri_of_uri s in
- mutind uri typeno
+ mutind ~subst uri typeno
with
| UriManager.IllFormedUri _ | Failure _ | Invalid_argument _ ->
(* Constructor of an Inductive Type *)
let (uri, typeno, consno) = indconuri_of_uri s in
- mutconstruct uri typeno consno)
+ mutconstruct ~subst uri typeno consno)
with
| Invalid_argument _ | Not_found -> raise (UriManager.IllFormedUri s)