Preprocessor
This visitor translates AST to a modified AST, so that
function calls could be done faster, by resolving the
function outside a loop;
The translation occurs when:
(1) the call is in a local scope (in a function)
(2) the call is in a loop (while, for, or foreach) or a nested function
e.g.