X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fxpath%2Fcompile.ml;h=c52c720900a492d6cc462432b54ee6eb7c94ee62;hp=2588432c3993ce2ff36a36b2bd6770ddf5b09a6c;hb=41dd1fed04cabad212f10fce3484545f6e9d9444;hpb=53a0fd29a20e7f4550e0eb5fa5b0d5af6191c36d diff --git a/src/xpath/compile.ml b/src/xpath/compile.ml index 2588432..c52c720 100644 --- a/src/xpath/compile.ml +++ b/src/xpath/compile.ml @@ -13,13 +13,7 @@ (* *) (***********************************************************************) -(* - Time-stamp: -*) - open Ast -open Auto -open Utils let ( => ) a b = (a, b) @@ -48,7 +42,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 +139,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 +175,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 +213,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 +229,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