Class Term.mapper

Mapper performs deep identity term mapping. If you override any method make sure that you didn't forget to invoke parent's method, as OCaml will not call it for you.

inherit Exp.mapper
method map_term : 't 'p. ('p, 't) cls -> 't term -> 't term

map_term cls t dispatches t to corresponding method

method run : program term -> program term

run p maps each sub in program p

method map_sub : sub term -> sub term

map_sub sub maps each arg and blk in sub

method map_arg : arg term -> arg term

map_arg arg is arg

method map_blk : blk term -> blk term

map_blk blk is blk

method map_phi : phi term -> phi term

map_phi phi is phi

method map_def : def term -> def term

map_def def is def

method map_jmp : jmp term -> jmp term

map_jmp jmp is jmp