projects
/
SXSI
/
xpathcomp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
.
[SXSI/xpathcomp.git]
/
ata.ml
diff --git
a/ata.ml
b/ata.ml
index
8c3fa18
..
f2b9e72
100644
(file)
--- a/
ata.ml
+++ b/
ata.ml
@@
-889,7
+889,7
@@
END
end
end
- module TransCache
Old
=
+ module TransCache =
struct
external get : 'a array -> int ->'a = "%array_unsafe_get"
external set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
struct
external get : 'a array -> int ->'a = "%array_unsafe_get"
external set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
@@
-908,7
+908,7
@@
END
let add (h : t) tag slist (data : fun_tree) =
let tab = get h (Uid.to_int slist.SList.Node.id) in
let tab = if tab == dummy_cell then
let add (h : t) tag slist (data : fun_tree) =
let tab = get h (Uid.to_int slist.SList.Node.id) in
let tab = if tab == dummy_cell then
- let x = Array.create 10000 dummy in
+ let x = Array.create 10000
0
dummy in
(set h (Uid.to_int slist.SList.Node.id) x;x)
else tab
in
(set h (Uid.to_int slist.SList.Node.id) x;x)
else tab
in
@@
-916,7
+916,7
@@
END
end
end
- let td_trans = TransCache.create 10000 (* should be number of tags *number of states^2
+ let td_trans = TransCache.create 10000
0
(* should be number of tags *number of states^2
in the document *)
let empty_size n =
in the document *)
let empty_size n =
@@
-929,7
+929,7
@@
END
let hash t = Uid.to_int t.Formlistlist.Node.id
end)
let hash t = Uid.to_int t.Formlistlist.Node.id
end)
- module Fold2Res
Old
= struct
+ module Fold2Res = struct
external get : 'a array -> int ->'a = "%array_unsafe_get"
external set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
external field1 : 'a -> 'b = "%field1"
external get : 'a array -> int ->'a = "%array_unsafe_get"
external set : 'a array -> int -> 'a -> unit = "%array_unsafe_set"
external field1 : 'a -> 'b = "%field1"
@@
-939,8
+939,8
@@
END
let v = Obj.repr ((),2,()) in
Obj.magic v
let v = Obj.repr ((),2,()) in
Obj.magic v
- let create n = Array.create n dummy
+ let create n = Array.create n dummy
let find h tag fl s1 s2 =
let af = get h tag in
if af == dummy then raise Not_found
let find h tag fl s1 s2 =
let af = get h tag in
if af == dummy then raise Not_found
@@
-949,17
+949,20
@@
END
if as1 == dummy then raise Not_found
else
let as2 = get as1 (Uid.to_int s1.SList.Node.id) in
if as1 == dummy then raise Not_found
else
let as2 = get as1 (Uid.to_int s1.SList.Node.id) in
- if as2 == dummy then raise Not_found
- else let v = get as2 (Uid.to_int s2.SList.Node.id) in
- if field1 v == 2 then raise Not_found
- else v
+ if as2 == dummy then raise Not_found
+ else
+ let v = get as2 (Uid.to_int s2.SList.Node.id) in
+ if field1 v == 2 then raise Not_found
+ else
+ v
+
let add h tag fl s1 s2 data =
let af =
let x = get h tag in
if x == dummy then
begin
let add h tag fl s1 s2 data =
let af =
let x = get h tag in
if x == dummy then
begin
- let y = Array.make 10000 dummy in
+ let y = Array.make 10000
0
dummy in
set h tag y;y
end
else x
set h tag y;y
end
else x
@@
-968,7
+971,7
@@
END
let x = get af (Uid.to_int fl.Formlistlist.Node.id) in
if x == dummy then
begin
let x = get af (Uid.to_int fl.Formlistlist.Node.id) in
if x == dummy then
begin
- let y = Array.make 10000 dummy in
+ let y = Array.make 10000
0
dummy in
set af (Uid.to_int fl.Formlistlist.Node.id) y;y
end
else x
set af (Uid.to_int fl.Formlistlist.Node.id) y;y
end
else x
@@
-977,7
+980,7
@@
END
let x = get as1 (Uid.to_int s1.SList.Node.id) in
if x == dummy then
begin
let x = get as1 (Uid.to_int s1.SList.Node.id) in
if x == dummy then
begin
- let y = Array.make 10000 dummy_val in
+ let y = Array.make 10000
0
dummy_val in
set as1 (Uid.to_int s1.SList.Node.id) y;y
end
else x
set as1 (Uid.to_int s1.SList.Node.id) y;y
end
else x
@@
-986,8
+989,10
@@
END
end
end
+
+
- module Fold2Res
3
= struct
+ module Fold2Res
2
= struct
include Hashtbl.Make(struct
type t = Tag.t*Formlistlist.t*SList.t*SList.t
let equal (a,b,c,d) (x,y,z,t) =
include Hashtbl.Make(struct
type t = Tag.t*Formlistlist.t*SList.t*SList.t
let equal (a,b,c,d) (x,y,z,t) =
@@
-1003,7
+1008,7
@@
END
find h (t,f,s1,s2)
end
find h (t,f,s1,s2)
end
- module Fold2Res =
+ module Fold2Res
Old
=
struct
type cell = { key : int;
obj : Obj.t }
struct
type cell = { key : int;
obj : Obj.t }
@@
-1140,7
+1145,7
@@
END
(*|`TAG(tag') ->
let default = fun t _ -> eval_fold2_slist fl_list t (Tree.tag tree t) empty_res
(loop_tag tag' (first t) llist t )
(*|`TAG(tag') ->
let default = fun t _ -> eval_fold2_slist fl_list t (Tree.tag tree t) empty_res
(loop_tag tag' (first t) llist t )
- in
default (*
+ in
let cf = SList.hd llist in
if (slot_size == 1) && StateSet.is_singleton cf
then
let cf = SList.hd llist in
if (slot_size == 1) && StateSet.is_singleton cf
then
@@
-1150,7
+1155,7
@@
END
then
RS.mk_quick_tag_loop default llist 1 tree tag'
else default
then
RS.mk_quick_tag_loop default llist 1 tree tag'
else default
- else default *)
*)
+ else default *)
| _ ->
(fun t _ -> eval_fold2_slist fl_list t (Tree.tag tree t) empty_res
(loop (first t) llist t ))
| _ ->
(fun t _ -> eval_fold2_slist fl_list t (Tree.tag tree t) empty_res
(loop (first t) llist t ))