Add iteri function to traverse cache data structures.
[SXSI/xpathcomp.git] / src / cache.ml
index 59ff1fb..3efe3dc 100644 (file)
@@ -56,15 +56,15 @@ struct
     else a.dummy
 
   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 = a.(i)
+       let v = line.(i) in
          f (i+a.offset) v (v==a.dummy)
       done
-*)
+
 
 end
 
@@ -98,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 =
@@ -127,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