end
end else (* todo_code *) begin fun empty_slot sl1 sl2 tree node ->
let sl = choose_slot empty_slot sl1 sl2 in
end
end else (* todo_code *) begin fun empty_slot sl1 sl2 tree node ->
let sl = choose_slot empty_slot sl1 sl2 in
U.exec sl sl1 sl2 node code;
List.fold_left
(fun ares (p, q, code) ->
U.exec sl sl1 sl2 node code;
List.fold_left
(fun ares (p, q, code) ->
let f = gen_code auto tlist s1 s2 in
LOG(__ "grammar" 2 "Inserting: %i, %a, %a\n%!"
(Uid.to_int tlist.Translist.Node.id) StateSet.print s1 StateSet.print s2);
let f = gen_code auto tlist s1 s2 in
LOG(__ "grammar" 2 "Inserting: %i, %a, %a\n%!"
(Uid.to_int tlist.Translist.Node.id) StateSet.print s1 StateSet.print s2);
| L2JIT.LEFT (tr_list, instr) ->
let res1, slot1 =
l2jit_dispatch_instr t (Tree.closing tree t) instr
| L2JIT.LEFT (tr_list, instr) ->
let res1, slot1 =
l2jit_dispatch_instr t (Tree.closing tree t) instr
let res, slot = full_top_down_run auto auto.init tree root in
slot.(StateSet.min_elt auto.topdown_marking_states)
let res, slot = full_top_down_run auto auto.init tree root in
slot.(StateSet.min_elt auto.topdown_marking_states)
let nil_res = auto.bottom_states, empty_slot in
let cache = Cache.Lvl3.create 0 L3JIT.dummy in
let rec move_up node res is_left rest stop =
let nil_res = auto.bottom_states, empty_slot in
let cache = Cache.Lvl3.create 0 L3JIT.dummy in
let rec move_up node res is_left rest stop =
if node == stop then res, rest
else
(*let prev_sibling = Tree.prev_sibling tree node in *)
if node == stop then res, rest
else
(*let prev_sibling = Tree.prev_sibling tree node in *)