* http://cs.unibo.it/helm/.
*)
-let main ~current_uri ~context ~metasenv lexer lexbuf =
+let main ~context ~metasenv lexer lexbuf =
(* Warning: higly non-reentrant code!!! *)
- CicTextualParser0.current_uri := current_uri ;
CicTextualParser0.binders := context ;
CicTextualParser0.metasenv := metasenv ;
- match CicTextualParser.main lexer lexbuf with
- None -> None
- | Some res ->
- CicTextualParser0.binders := [] ;
- Some (!CicTextualParser0.metasenv,res)
+ let dom,mk_term = CicTextualParser.main lexer lexbuf in
+ let metasenv' = !CicTextualParser0.metasenv in
+ dom,
+ function interp ->
+ CicTextualParser0.metasenv := metasenv' ;
+ let term = mk_term interp in
+ let metasenv = !CicTextualParser0.metasenv in
+ metasenv,term
;;