INCLUDE "debug.ml"
+INCLUDE "trace.ml"
INCLUDE "utils.ml"
open Format
| Formula.Atom (`Right, b, q) ->
Formula.of_bool(b == (StateSet.mem q s2)),
if b && StateSet.mem q auto.topdown_marking_states then [ResJIT.RIGHT q] else []
+ | Formula.Atom (`Epsilon, _, _) -> assert false
| Formula.Or(f1, f2) ->
let b1, i1 = loop f1 in
DEFINE LOOP (t, states, ctx) = (
let _t = (t) in
+ TRACE("top-down-run", 3,
+ __ "Entering node %i (tag %s, context %i) with states %a\n%!"
+ (Node.to_int _t)
+ (Tag.to_string (Tree.tag tree _t))
+ (Node.to_int (ctx))
+ (StateSet.print) (states));
if _t == Tree.nil then nil_res
else
let tag = Tree.tag tree _t in