aboutsummaryrefslogtreecommitdiffhomepage
path: root/contrib/interface/xlate.ml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/interface/xlate.ml')
-rw-r--r--contrib/interface/xlate.ml8
1 files changed, 6 insertions, 2 deletions
diff --git a/contrib/interface/xlate.ml b/contrib/interface/xlate.ml
index 480293333..1ba580c45 100644
--- a/contrib/interface/xlate.ml
+++ b/contrib/interface/xlate.ml
@@ -280,7 +280,9 @@ let xlate_qualid a =
let l = Names.repr_dirpath d in
List.fold_left (fun s i1 -> (string_of_id i1) ^ "." ^ s) (string_of_id i) l;;
-
+(* // The next two functions should be modified to make direct reference
+ to a notation operator *)
+let notation_to_formula s l = CT_notation(CT_string s, CT_formula_list l);;
let xlate_reference = function
Ident(_,i) -> CT_ident (string_of_id i)
@@ -319,6 +321,8 @@ and (xlate_formula:Topconstr.constr_expr -> Ascent.ct_FORMULA) = function
| CApp(_, f, l) ->
CT_appc(xlate_formula f, xlate_formula_expl_ne_list l)
| CSort(_, s) -> CT_coerce_SORT_TYPE_to_FORMULA(xlate_sort s)
+ | CNotation(_, s, l) -> notation_to_formula s (List.map xlate_formula l)
+ | CNumeral(_, i) -> CT_int_encapsulator(Bignat.bigint_to_string i)
| _ -> assert false
and xlate_formula_expl = function
(a, None) -> xlate_formula a
@@ -1405,7 +1409,7 @@ let xlate_vernac =
| VernacFixpoint [] -> xlate_error "mutual recursive"
| VernacFixpoint (lm :: lmi) ->
let strip_mutrec (fid, n, arf, ardef) =
- let (bl,arf,ardef) = Ppconstr.split_fix n arf ardef in
+ let (bl,arf,ardef) = Ppconstr.split_fix (n+1) arf ardef in
let arf = xlate_formula arf in
let ardef = xlate_formula ardef in
match cvt_fixpoint_binders bl with