- | LocatedTactical of CicAst.location * ('term, 'ident) tactical
-
- | Tactic of ('term, 'ident) tactic
- | Command of 'term command
-
- | Fail
- | Do of int * ('term, 'ident) tactical
- | IdTac
- | Repeat of ('term, 'ident) tactical
- | Seq of ('term, 'ident) tactical list (* sequential composition *)
- | Then of ('term, 'ident) tactical * ('term, 'ident) tactical list
- | Tries of ('term, 'ident) tactical list
- (* try a sequence of tacticals until one succeeds, fail otherwise *)
- | Try of ('term, 'ident) tactical (* try a tactical and mask failures *)
+ | Tactic of loc * ('term, 'ident) tactic
+ | Fail of loc
+ | Do of loc * int * ('term, 'ident) tactical
+ | IdTac of loc
+ | Repeat of loc * ('term, 'ident) tactical
+ | Seq of loc * ('term, 'ident) tactical list (* sequential composition *)
+ | Then of loc * ('term, 'ident) tactical * ('term, 'ident) tactical list
+ | Tries of loc * ('term, 'ident) tactical list
+ (* try a sequence of loc * tacticals until one succeeds, fail otherwise *)
+ | Try of loc * ('term, 'ident) tactical (* try a tactical and mask failures *)
+
+
+type ('term, 'ident) code =
+ | Command of loc * 'term command
+ | Macro of loc * 'term macro
+ (* Macro are substantially queries, but since we are not the kind of
+ * peolpe that like to push "start" to turn off the computer
+ * we added this command *)
+ | Tactical of loc * ('term, 'ident) tactical
+
+type ('term, 'ident) comment =
+ | Note of loc * string
+ | Code of loc * ('term, 'ident) code
+
+type ('term, 'ident) statement =
+ | Executable of loc * ('term, 'ident) code
+ | Comment of loc * ('term, 'ident) comment