X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fl2JIT.mli;fp=src%2Fl2JIT.mli;h=9575f34a228da92d36f476a95fcd1a73da92c7af;hb=4b52da1a20a4fe031930bb96d2ca46bec06dc529;hp=0000000000000000000000000000000000000000;hpb=a223af3254fb51c279cfbccdc18c59484fdca74e;p=SXSI%2Fxpathcomp.git diff --git a/src/l2JIT.mli b/src/l2JIT.mli new file mode 100644 index 0000000..9575f34 --- /dev/null +++ b/src/l2JIT.mli @@ -0,0 +1,46 @@ +type jump = + NOP of unit + | FIRST_CHILD of StateSet.t + | NEXT_SIBLING of StateSet.t + | FIRST_ELEMENT of StateSet.t + | NEXT_ELEMENT of StateSet.t + | TAGGED_DESCENDANT of StateSet.t * Tag.t + | TAGGED_FOLLOWING of StateSet.t * Tag.t + | SELECT_DESCENDANT of StateSet.t * Ptset.Int.t * Tree.unordered_set + | SELECT_FOLLOWING of StateSet.t * Ptset.Int.t * Tree.unordered_set + | TAGGED_CHILD of StateSet.t * Tag.t + | TAGGED_FOLLOWING_SIBLING of StateSet.t * Tag.t + | SELECT_CHILD of StateSet.t * Ptset.Int.t * Tree.unordered_set + | SELECT_FOLLOWING_SIBLING of StateSet.t * Ptset.Int.t * Tree.unordered_set + | TAGGED_SUBTREE of StateSet.t * Tag.t + | ELEMENT_SUBTREE of StateSet.t + +val jump_stat_init : unit -> unit +val jump_stat : jump -> unit + +val print_jump : Format.formatter -> jump -> unit + +val jump_stat_summary : Format.formatter -> unit + +type opcode = + CACHE of unit + | RETURN of unit + | LEFT of Translist.t * jump + | RIGHT of Translist.t * jump + | BOTH of Translist.t * jump * jump + +type t = opcode Cache.Lvl2.t + +val dummy : opcode + +val create : unit -> t + +val stats : Format.formatter -> t -> unit + +val find : t -> int -> StateSet.Node.t -> opcode + +val add : t -> int -> StateSet.Node.t -> opcode -> unit + +val compile : t -> Ata.t -> Tree.t -> TagSet.elt -> StateSet.t -> opcode + +val get_transitions : opcode -> Translist.t