X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Fcache.ml;h=3efe3dcde325bffb73eb0fa97a9db9385d5ab4b1;hb=9d761fb9aba3c653b1666e7ea3a5d2aec9a1138a;hp=d65df68d1a2682092c9df13ec0a227f58439a3e8;hpb=d7c0e0d3ae22f01c69f0352a25db3eaaab02406f;p=SXSI%2Fxpathcomp.git diff --git a/src/cache.ml b/src/cache.ml index d65df68..3efe3dc 100644 --- a/src/cache.ml +++ b/src/cache.ml @@ -57,6 +57,15 @@ struct let dummy a = a.dummy + let iteri f a = + let line = a.line in + if a.offset == ~-1 then () else + for i = 0 to Array.length line - 1 do + let v = line.(i) in + f (i+a.offset) v (v==a.dummy) + done + + end @@ -89,6 +98,14 @@ struct let dummy c = c.Lvl1.dummy.Lvl1.dummy + let iteri f a = + let line = a.Lvl1.line in + if a.Lvl1.offset == ~-1 then () else + for i = 0 to Array.length line - 1 do + Lvl1.iteri (f i) line.(i) + done + + end module Lvl3 = @@ -118,5 +135,11 @@ struct let dummy a = Lvl2.dummy a.Lvl1.dummy + let iteri f a = + let line = a.Lvl1.line in + if a.Lvl1.offset == ~-1 then () else + for i = 0 to Array.length line - 1 do + Lvl2.iteri (f i) line.(i) + done end