X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fxpath%2Fcompile.ml;h=e62b91801dac8a2a12ef8f461b24864cd0cbac82;hp=2588432c3993ce2ff36a36b2bd6770ddf5b09a6c;hb=b00bff88c7902e828804c06b7f9dc55222fdc84e;hpb=53a0fd29a20e7f4550e0eb5fa5b0d5af6191c36d diff --git a/src/xpath/compile.ml b/src/xpath/compile.ml index 2588432..e62b918 100644 --- a/src/xpath/compile.ml +++ b/src/xpath/compile.ml @@ -14,12 +14,10 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) open Ast -open Auto -open Utils let ( => ) a b = (a, b) @@ -48,7 +46,7 @@ let root_set = QNameSet.singleton QName.document let compile_axis_test axis (test,kind) phi trans states = let q = State.make () in let phi = match kind with - Tree.Common.NodeKind.Node -> phi + Tree.NodeKind.Node -> phi | _ -> phi %% F.mk_kind kind in let phi', trans', states' = @@ -145,7 +143,7 @@ and compile_single_path p trans states = match p with | Absolute steps -> (Ancestor false, (QNameSet.singleton QName.document, - Tree.Common.NodeKind.Node), []) + Tree.NodeKind.Node), []) :: steps | Relative steps -> steps in @@ -181,7 +179,7 @@ let compile_top_level_step_list l trans states = | (axis, (test,kind), elist) :: ll -> let phi0, trans0, states0 = compile_axis_test (invert_axis axis) - (QNameSet.any, Tree.Common.NodeKind.Node) + (QNameSet.any, Tree.NodeKind.Node) phi_above trans states in (* Only select attribute nodes if the previous axis @@ -219,7 +217,7 @@ let compile_top_level_step_list l trans states = let phi0, trans0, states0 = compile_axis_test Self - (QNameSet.singleton QName.document, Tree.Common.NodeKind.Node) + (QNameSet.singleton QName.document, Tree.NodeKind.Node) Ata.SFormula.true_ trans states @@ -235,9 +233,7 @@ let path p = in (StateSet.add ms ams), natrs, nasts) (StateSet.empty, [], StateSet.empty) p in - let a = Ata.create () in - a.Ata.states <- states; - a.Ata.selection_states <- mstates; + let a = Ata.create states mstates in List.iter (fun (q, l) -> List.iter (fun (lab, phi) -> Ata.add_trans a q lab phi