diff options
Diffstat (limited to 'parsing/g_xml.ml4')
-rw-r--r-- | parsing/g_xml.ml4 | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/parsing/g_xml.ml4 b/parsing/g_xml.ml4 index a89fffa0..c13532cc 100644 --- a/parsing/g_xml.ml4 +++ b/parsing/g_xml.ml4 @@ -6,7 +6,7 @@ (* * GNU Lesser General Public License Version 2.1 *) (************************************************************************) -(* $Id: g_xml.ml4 9016 2006-07-05 17:19:39Z herbelin $ *) +(* $Id: g_xml.ml4 9200 2006-10-03 14:11:08Z herbelin $ *) open Pp open Util @@ -146,9 +146,11 @@ let rec interp_xml_constr = function let ctx = List.map interp_xml_decl decls in List.fold_right (fun (na,t) b -> RProd (loc, na, t, b)) ctx (interp_xml_target body) - | XmlTag (loc,"LETIN",al,[x1;x2]) -> - let na,t = interp_xml_def x1 in - RLetIn (loc, na, t, interp_xml_target x2) + | XmlTag (loc,"LETIN",al,(_::_ as xl)) -> + let body,defs = list_sep_last xl in + let ctx = List.map interp_xml_def defs in + List.fold_right (fun (na,t) b -> RLetIn (loc, na, t, b)) + ctx (interp_xml_target body) | XmlTag (loc,"APPLY",_,x::xl) -> RApp (loc, interp_xml_constr x, List.map interp_xml_constr xl) | XmlTag (loc,"instantiate",_, |