Class Term.visitor

Visitor performs deep visiting. As always, don't forget to overrid parent methods. The visitor comes with useful enter_T leave_T that are no-ops in this visitor, so if you inherit directly from it, then you may not call to the parent method.

inherit 'a Exp.visitor
method enter_term : 't 'p. ('p, 't) cls -> 't term -> 'a -> 'a

visit_term cls t dispatch term t to corresponding method

method visit_term : 't 'p. ('p, 't) cls -> 't term -> 'a -> 'a

visit_term cls t dispatch term t to corresponding method

method leave_term : 't 'p. ('p, 't) cls -> 't term -> 'a -> 'a
method enter_program : program term -> 'a -> 'a
method run : program term -> 'a -> 'a
method leave_program : program term -> 'a -> 'a
method enter_sub : sub term -> 'a -> 'a
method visit_sub : sub term -> 'a -> 'a
method leave_sub : sub term -> 'a -> 'a
method enter_blk : blk term -> 'a -> 'a
method visit_blk : blk term -> 'a -> 'a
method leave_blk : blk term -> 'a -> 'a
method enter_arg : arg term -> 'a -> 'a
method visit_arg : arg term -> 'a -> 'a
method leave_arg : arg term -> 'a -> 'a
method enter_phi : phi term -> 'a -> 'a
method visit_phi : phi term -> 'a -> 'a
method leave_phi : phi term -> 'a -> 'a
method enter_def : def term -> 'a -> 'a
method visit_def : def term -> 'a -> 'a
method leave_def : def term -> 'a -> 'a
method enter_jmp : jmp term -> 'a -> 'a
method visit_jmp : jmp term -> 'a -> 'a
method leave_jmp : jmp term -> 'a -> 'a