aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2006-10-03 14:11:08 +0000
committerherbelin2006-10-03 14:11:08 +0000
commit2440cf4e052fa4952dbb2aef0e70cf97b83dcd1e (patch)
treea448ddd034eaf8729f12b59a243efc208b5cdf1a
parent42f5d822a69cb7da2b74a5d011ed5a3249fe3acd (diff)
le parsing du LETIN ne suivait pas la DTD (bug #1237)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@9200 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--parsing/g_xml.ml48
1 files changed, 5 insertions, 3 deletions
diff --git a/parsing/g_xml.ml4 b/parsing/g_xml.ml4
index 7165f0d103..a1181939f7 100644
--- a/parsing/g_xml.ml4
+++ b/parsing/g_xml.ml4
@@ -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",_,