(* Distributed under the terms of the LGPL (see LICENCE) *)
(******************************************************************************)
module Ast :
- sig
- type path = Absolute of step list | AbsoluteDoS of step list| Relative of step list
- and step = axis * test * predicate
- and axis = Self | Attribute | Child | Descendant | DescendantOrSelf | FollowingSibling
- | Parent
- and test = TagSet.Xml.t
- and predicate = Or of predicate*predicate
- | And of predicate*predicate
+sig
+ type path = Absolute of step list | AbsoluteDoS of step list| Relative of step list
+ and step = axis * test * predicate
+ and axis = Self | Attribute | Child | Descendant | DescendantOrSelf | FollowingSibling
+ | Parent | Ancestor | AncestorOrSelf |PrecedingSibling | Preceding | Following
+ and test = TagSet.t
+ and predicate = Or of predicate*predicate
+ | And of predicate*predicate
| Not of predicate
| Expr of expression
- and expression = Path of path
- | Function of string*expression list
- | Int of int
- | String of string
- | True | False
- type t = path
- val print : Format.formatter -> path -> unit
- val print_step : Format.formatter -> step -> unit
- val print_axis : Format.formatter -> axis -> unit
- val print_test : Format.formatter -> test -> unit
- val print_predicate : Format.formatter -> predicate -> unit
- val print_expression : Format.formatter -> expression -> unit
- end
+ and expression = Path of path
+ | Function of string*expression list
+ | Int of int
+ | String of string
+ | True | False
+ type t = path
+ val print : Format.formatter -> path -> unit
+ val print_step : Format.formatter -> step -> unit
+ val print_axis : Format.formatter -> axis -> unit
+ val print_test : Format.formatter -> test -> unit
+ val print_predicate : Format.formatter -> predicate -> unit
+ val print_expression : Format.formatter -> expression -> unit
+end
module Parser :
- sig
- val parse_string : string -> Ast.path
- val parse : string -> Ast.path
- end
-module Compile :
sig
- val compile : Ast.path -> Automaton.t
+ val parse_string : string -> Ast.path
+ val parse : string -> Ast.path
+end
+module Compile :
+sig
+val compile : ?querystring:string -> Ast.path -> 'a Ata.t * (Tag.t*Ata.StateSet.t) list * ([ `CONTAINS | `STARTSWITH | `ENDSWITH | `EQUALS ]*string) option
end