let rewrite_cursor_integers file =
let cursor_to_base = VarinfoHashtbl.create 0 in
let assigned_vars = ref VarinfoSet.empty in
let ignore_vars = ref VarinfoSet.empty in
let visitor =
new collectCursorIntegers
cursor_to_base assigned_vars ignore_vars
in
visit_until_convergence visitor file;
VarinfoSet.iter
(fun v -> VarinfoHashtbl.remove cursor_to_base v) !ignore_vars;
VarinfoHashtbl.iter
(fun v vb -> if VarinfoSet.mem vb !ignore_vars then
VarinfoHashtbl.remove cursor_to_base v) cursor_to_base;
let visitor =
new rewriteCursorIntegers cursor_to_base !assigned_vars
in
visitFramacFile (visit_and_push_statements_visitor visitor) file