]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql_interpreter/mQueryTParser.mly
ocaml 3.09 transition
[helm.git] / helm / ocaml / mathql_interpreter / mQueryTParser.mly
index 313636c80d13327489bf4c8ade0da24f500496ef..2f8896185622de6e2fbb8f9f5aa66dbfa0c88bc9 100644 (file)
          | M.Const _    -> []
          | M.VVar _     -> []
          | M.Ex _       -> []
-         | M.Dot rv _   -> [rv]
+         | M.Dot (rv,_)   -> [rv]
          | M.Not x      -> an_val x
          | M.StatVal x  -> an_val x
         | M.Count x    -> an_val x
-        | M.Align _ x  -> an_val x
-         | M.Proj _ x   -> an_set x
-         | M.Test _ x y -> iter an_val [x; y]
+        | M.Align (_,x)  -> an_val x
+         | M.Proj (_,x)   -> an_set x
+         | M.Test (_,x,y) -> iter an_val [x; y]
         | M.Set l      -> iter an_val l
       and an_set = function
         | M.Empty                      -> []
          | M.SVar _                     -> []
          | M.AVar _                     -> []
          | M.Subj x                     -> an_val x
-        | M.Keep _ _ x                 -> an_set x
-        | M.Log _ _ x                  -> an_set x
+        | M.Keep (_,_,x)                 -> an_set x
+        | M.Log (_,_,x)                  -> an_set x
         | M.StatQuery x                -> an_set x
-         | M.Bin _ x y                  -> iter an_set [x; y]
-         | M.LetSVar _ x y              -> iter an_set [x; y]
-         | M.For _ _ x y                -> iter an_set [x; y]
-        | M.Add _ g x                  -> join (an_grp g) (an_set x)
-         | M.LetVVar _ x y              -> join (an_val x) (an_set y)
-         | M.Select _ x y               -> join (an_set x) (an_val y)
-         | M.Property _ _ _ _ c d _ _ x -> 
+         | M.Bin (_,x,y)                  -> iter an_set [x; y]
+         | M.LetSVar (_,x,y)              -> iter an_set [x; y]
+         | M.For (_,_,x,y)                -> iter an_set [x; y]
+        | M.Add (_,g,x)                  -> join (an_grp g) (an_set x)
+         | M.LetVVar (_,x,y)              -> join (an_val x) (an_set y)
+         | M.Select (_,x,y)               -> join (an_set x) (an_val y)
+         | M.Property (_,_,_,_,c,d,_,_,x) -> 
            join (an_val x) (iter an_con [c; List.concat d])
-        | M.If x y z                   -> join (an_val x) (iter an_set [y; z])
+        | M.If (x,y,z)                  -> join (an_val x) (iter an_set [y; z])
       and fc (_, _, v) = an_val v 
       and an_con c = iter fc c
       and fg (_, v) = an_val v
       | TRUE                    { M.True                      }
       | FALSE                   { M.False                     }
       | STR                     { M.Const $1                  }
-      | avar FS path            { M.Dot $1 $3                 }
+      | avar FS path            { M.Dot ($1,$3)                 }
       | vvar                    { M.VVar $1                   }
       | LC vals RC              { M.Set $2                    }
       | LC RC                   { M.Set []                    }
       | LP val_exp RP           { $2                          }
       | STAT val_exp            { M.StatVal $2                }
-      | EX val_exp              { M.Ex (analyze $2) $2        }
+      | EX val_exp              { M.Ex ((analyze $2),$2)        }
       | NOT val_exp             { M.Not $2                    }
-      | test_op                 { M.Test (f $1) (s $1) (t $1) }      
-      | PROJ opt_path set_exp   { M.Proj $2 $3                }
+      | test_op                 { M.Test ((f $1),(s $1),(t $1)) }      
+      | PROJ opt_path set_exp   { M.Proj ($2,$3)                }
       | COUNT val_exp           { M.Count $2                  }
-      | ALIGN STR IN val_exp    { M.Align $2 $4               }
+      | ALIGN STR IN val_exp    { M.Align ($2,$4)               }
    ;   
    vals:
       | val_exp CM vals { $1 :: $3 }
       | LP set_exp RP                          { $2                     }
       | svar                                   { M.SVar $1              }
       | avar                                   { M.AVar $1              }
-      | LET svar BE set_exp IN set_exp         { M.LetSVar $2 $4 $6     }
-      | LET vvar BE val_exp IN set_exp         { M.LetVVar $2 $4 $6     }
+      | LET svar BE set_exp IN set_exp         { M.LetSVar ($2,$4,$6)     }
+      | LET vvar BE val_exp IN set_exp         { M.LetVVar ($2,$4,$6)     }
       | FOR avar IN set_exp gen_op             
-         { M.For (fst $5) $2 $4 (snd $5) }
-      | ADD distr grp_exp IN set_exp           { M.Add $2 $3 $5         }
-      | IF val_exp THEN set_exp ELSE set_exp   { M.If $2 $4 $6          }
+         { M.For ((fst $5),$2,$4,(snd $5)) }
+      | ADD distr grp_exp IN set_exp           { M.Add ($2,$3,$5)         }
+      | IF val_exp THEN set_exp ELSE set_exp   { M.If ($2,$4,$6)          }
       | PROP qualif mainc istrue isfalse attrc OF pattern val_exp     
-         { M.Property (f $2) (s $2) (t $2) $3 $4 $5 $6 $8 $9 }
-      | LOG xml source set_exp                 { M.Log $2 $3 $4         }
+         { M.Property ((f $2),(s $2),(t $2),$3,$4,$5,$6,$8,$9) }
+      | LOG xml source set_exp                 { M.Log ($2,$3,$4)         }
       | STAT set_exp                           { M.StatQuery $2         }
-      | KEEP allbut paths IN set_exp           { M.Keep $2 $3 $5        } 
-      | KEEP allbut IN set_exp                 { M.Keep $2 [] $4        } 
+      | KEEP allbut paths IN set_exp           { M.Keep ($2,$3,$5)        } 
+      | KEEP allbut IN set_exp                 { M.Keep ($2,[],$4)        } 
       | bin_op                                 
-         { M.Bin (f $1) (s $1) (t $1) }
-      | SELECT avar FROM set_exp WHERE val_exp { M.Select $2 $4 $6      }
+         { M.Bin ((f $1),(s $1),(t $1)) }
+      | SELECT avar FROM set_exp WHERE val_exp { M.Select ($2,$4,$6)      }
       | SUBJ val_exp                           { M.Subj $2              }
    ;
    query: