]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql_interpreter/mQueryIO.ml
standard library and while construction inserted
[helm.git] / helm / ocaml / mathql_interpreter / mQueryIO.ml
index a8fe2006eeb4faaccc08ac8c86d3eb340379c2f2..5af9c7b1056816146c025cb9d4fb80e214e0ad4e 100644 (file)
@@ -116,29 +116,31 @@ let rec text_of_query out sep x =
                 } 
         in
         L.fun_txt_out o p pl xl 
-      | M.Const [s, []] -> txt_str out s
-      | M.Const r       -> text_of_result out " " r
-      | M.Dot av p      -> txt_avar av; out "."; txt_path out p
-      | M.Ex b x        -> out "ex "; txt_set x
-(*    | M.Ex b x        -> out "ex ["; P.flat_list out txt_avar "," b; 
-                           out "] "; txt_set x
-*)    | M.SVar sv       -> txt_svar sv
-      | M.AVar av       -> txt_avar av
+      | M.Const [s, []]     -> txt_str out s
+      | M.Const r           -> text_of_result out " " r
+      | M.Dot av p          -> txt_avar av; out "."; txt_path out p
+      | M.Ex b x            -> out "ex "; txt_set x
+(*    | M.Ex b x            -> out "ex ["; P.flat_list out txt_avar "," b; 
+                               out "] "; txt_set x
+*)    | M.SVar sv           -> txt_svar sv
+      | M.AVar av           -> txt_avar av
       | M.Property q0 q1 q2 mc ct cfl xl b x -> 
          out "property "; txt_qualif q0 q1 q2; main mc;
         txt_istrue ct; P.flat_list out txt_isfalse "" cfl; txt_exp_list xl;
         out " of "; pattern b; txt_set x
-      | M.Let sv x y    -> out "let "; txt_svar sv; out " = "; 
-                           txt_set x; out " in "; txt_set y
-      | M.Select av x y -> out "select "; txt_avar av; out " from ";
-                           txt_set x; out " where "; txt_set y
-      | M.For k av x y  -> out "for "; txt_avar av; out " in ";
-                           txt_set x; txt_gen k; txt_set y
-      | M.Add d g x     -> out "add "; txt_distr d; txt_grp g; 
-                           out " in "; txt_set x
-      | M.Gen p [x]     -> out "gen "; txt_path out p; out " in "; txt_set x
-      | M.Gen p l       -> out "gen "; txt_path out p; out " {";
-                           P.flat_list out txt_set ", " l; out "}"
+      | M.Let (Some sv) x y -> out "let "; txt_svar sv; out " = "; 
+                               txt_set x; out " in "; txt_set y
+      | M.Let None x y      -> txt_set x; out " ;; "; txt_set y
+      | M.Select av x y     -> out "select "; txt_avar av; out " from ";
+                               txt_set x; out " where "; txt_set y
+      | M.For k av x y      -> out "for "; txt_avar av; out " in ";
+                               txt_set x; txt_gen k; txt_set y
+      | M.While k x y       -> out "while "; txt_set x; txt_gen k; txt_set y
+      | M.Add d g x         -> out "add "; txt_distr d; txt_grp g; 
+                               out " in "; txt_set x
+      | M.Gen p [x]         -> out "gen "; txt_path out p; out " in "; txt_set x
+      | M.Gen p l           -> out "gen "; txt_path out p; out " {";
+                               P.flat_list out txt_set ", " l; out "}"
    in 
    txt_set x; out sep