Release coccinelle-0.2.1-rc1
[bpt/coccinelle.git] / ctl / pretty_print_ctl.ml
index 75dfa88..3f4cfdf 100644 (file)
@@ -1,5 +1,5 @@
 (*
- * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen
+ * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen
  * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix
  * This file is part of Coccinelle.
  *
@@ -44,15 +44,15 @@ let char_not = "-|"
 *)
 
 (* need introduce the Val constructor, or use -rectype. *)
-type ('a,'b,'c) environment = (string, ('a,'b,'c) binding_val) Common.assoc 
-and ('a, 'b, 'c) binding_val = 
+type ('a,'b,'c) environment = (string, ('a,'b,'c) binding_val) Common.assoc
+and ('a, 'b, 'c) binding_val =
     Val of ('a,'b,'c) generic_ctl * ('a,'b,'c) environment
 
-let rec (pp_ctl: 
-   ('pred -> unit) * ('mvar -> unit) -> bool -> 
-   ('pred, 'mvar, 'info) generic_ctl -> 
-   unit) =  
- fun (pp_pred, pp_mvar) inline_let_def ctl -> 
+let rec (pp_ctl:
+   ('pred -> unit) * ('mvar -> unit) -> bool ->
+   ('pred, 'mvar, 'info) generic_ctl ->
+   unit) =
+ fun (pp_pred, pp_mvar) inline_let_def ctl ->
 
    let rec pp_aux env = function
        False              -> pp "False"
@@ -60,43 +60,43 @@ let rec (pp_ctl:
      | Pred(p)            -> pp_pred p
      | Not(phi)           ->
         pp char_not; Common.pp_do_in_box (fun () -> pp_aux env phi)
-     | Exists(keep,v,phi) ->  
+     | Exists(keep,v,phi) ->
         pp "(";
         if keep then pp ("Ex ") else pp ("Ex_ ");
         pp_mvar v;
-        pp " . "; 
+        pp " . ";
         print_cut();
-        Common.pp_do_in_box (fun () -> pp_aux env phi); 
+        Common.pp_do_in_box (fun () -> pp_aux env phi);
         pp ")";
      | AndAny(dir,s,phi1,phi2) ->
-        pp_2args env (char_and_any^(pp_dirc dir)^(pp_sc s)) phi1 phi2; 
+        pp_2args env (char_and_any^(pp_dirc dir)^(pp_sc s)) phi1 phi2;
      | HackForStmt(dir,s,phi1,phi2) ->
-        pp_2args env (char_hack^(pp_dirc dir)^(pp_sc s)) phi1 phi2; 
-     | And(s,phi1,phi2)      -> pp_2args env (char_and^(pp_sc s)) phi1 phi2; 
-     | Or(phi1,phi2)         -> pp_2args env char_or phi1 phi2; 
-     | SeqOr(phi1,phi2)      -> pp_2args env char_seqor phi1 phi2; 
+        pp_2args env (char_hack^(pp_dirc dir)^(pp_sc s)) phi1 phi2;
+     | And(s,phi1,phi2)      -> pp_2args env (char_and^(pp_sc s)) phi1 phi2;
+     | Or(phi1,phi2)         -> pp_2args env char_or phi1 phi2;
+     | SeqOr(phi1,phi2)      -> pp_2args env char_seqor phi1 phi2;
      | Implies(phi1,phi2)    -> pp_2args env "=>" phi1 phi2;
-     | AF(dir,s,phi1)   -> pp "AF"; pp_dir dir; pp_s s; pp_arg_paren env phi1; 
-     | AX(dir,s,phi1)   -> pp "AX"; pp_dir dir; pp_s s; pp_arg_paren env phi1; 
+     | AF(dir,s,phi1)   -> pp "AF"; pp_dir dir; pp_s s; pp_arg_paren env phi1;
+     | AX(dir,s,phi1)   -> pp "AX"; pp_dir dir; pp_s s; pp_arg_paren env phi1;
      | AG(dir,s,phi1)   -> pp "AG"; pp_dir dir; pp_s s; pp_arg_paren env phi1;
      | EF(dir,phi1)     -> pp "EF"; pp_dir dir;  pp_arg_paren env phi1;
-     | EX(dir,phi1)     -> pp "EX"; pp_dir dir;  pp_arg_paren env phi1; 
-     | EG(dir,phi1)     -> pp "EG"; pp_dir dir;  pp_arg_paren env phi1; 
+     | EX(dir,phi1)     -> pp "EX"; pp_dir dir;  pp_arg_paren env phi1;
+     | EG(dir,phi1)     -> pp "EG"; pp_dir dir;  pp_arg_paren env phi1;
      | AW(dir,s,phi1,phi2) ->
-        pp "A"; pp_dir dir; pp_s s; pp "["; 
-           pp_2args_bis env "W" phi1 phi2; 
-         pp "]" 
+        pp "A"; pp_dir dir; pp_s s; pp "[";
+           pp_2args_bis env "W" phi1 phi2;
+         pp "]"
      | AU(dir,s,phi1,phi2) ->
-        pp "A"; pp_dir dir; pp_s s; pp "["; 
-           pp_2args_bis env "U" phi1 phi2; 
-         pp "]" 
+        pp "A"; pp_dir dir; pp_s s; pp "[";
+           pp_2args_bis env "U" phi1 phi2;
+         pp "]"
      | EU(dir,phi1,phi2)  ->
-        pp "E"; pp_dir dir; pp "["; 
-           pp_2args_bis env "U" phi1 phi2; 
-         pp "]" 
-     | Let (x,phi1,phi2)  -> 
+        pp "E"; pp_dir dir; pp "[";
+           pp_2args_bis env "U" phi1 phi2;
+         pp "]"
+     | Let (x,phi1,phi2)  ->
         let env' = (x, (Val (phi1,env)))::env in
-        
+
         if not inline_let_def
         then
            begin
@@ -105,13 +105,13 @@ let rec (pp_ctl:
             print_cut();
              Common.pp_do_in_box (fun () -> pp_aux env phi1);
              print_space ();
-             pp "in"; 
+             pp "in";
              print_space ();
            end;
         pp_do_in_zero_box (fun () -> pp_aux env' phi2);
-     | LetR (dir,x,phi1,phi2)  -> 
+     | LetR (dir,x,phi1,phi2)  ->
         let env' = (x, (Val (phi1,env)))::env in
-        
+
         if not inline_let_def
         then
            begin
@@ -120,18 +120,18 @@ let rec (pp_ctl:
             print_cut();
              Common.pp_do_in_box (fun () -> pp_aux env phi1);
              print_space ();
-             pp "in"; 
+             pp "in";
              print_space ();
            end;
         pp_do_in_zero_box (fun () -> pp_aux env' phi2);
-     | Ref(s)             -> 
+     | Ref(s)             ->
         if inline_let_def
         then
            let Val (phi1,env') = List.assoc s env in
            pp_aux env' phi1
-        else 
+        else
            (* pp "Ref(";  *)
-          pp s 
+          pp s
            (* pp ")" *)
      | Uncheck(phi1) ->
         pp "Uncheck"; pp_arg_paren env phi1
@@ -142,42 +142,42 @@ let rec (pp_ctl:
    and pp_dir = function
        FORWARD -> ()
      | BACKWARD -> pp char_back
-            
+
    and pp_dirc = function
        FORWARD -> ""
      | BACKWARD -> char_back
-            
+
    and pp_s = function
        STRICT -> if !Flag_ctl.partial_match then pp "," else ()
      | NONSTRICT -> ()
-            
+
    and pp_sc = function
        STRICT -> ","
      | NONSTRICT -> ""
-            
-   and pp_2args env sym phi1 phi2 = 
+
+   and pp_2args env sym phi1 phi2 =
      begin
        pp "(";
-       Common.pp_do_in_box (fun () -> pp_aux env phi1); 
+       Common.pp_do_in_box (fun () -> pp_aux env phi1);
        print_space();
        pp sym;
        print_space ();
        Common.pp_do_in_box (fun () -> pp_aux env phi2);
        pp ")";
      end
-   and pp_2args_bis env sym phi1 phi2 = 
+   and pp_2args_bis env sym phi1 phi2 =
      begin
-       Common.pp_do_in_box (fun () -> pp_aux env phi1); 
+       Common.pp_do_in_box (fun () -> pp_aux env phi1);
        print_space();
        pp sym;
        print_space();
        Common.pp_do_in_box (fun () -> pp_aux env phi2);
      end
-       
-   and pp_arg_paren env phi =  Common.pp_do_in_box (fun () -> 
+
+   and pp_arg_paren env phi =  Common.pp_do_in_box (fun () ->
      pp "(";
      pp_aux env phi;
      pp ")";
-   )      
+   )
    in
    Common.pp_do_in_box (fun () ->  pp_aux [] ctl;)