Added a support for extern function. Compiler does not generate a
skeleton for those functions atm. May require func decl stmt to do this
else need to evaluate the expression (which may be hard).  Also I am
just passing copy of values to the function (for c). This is because
otherwise the function can change the value of the var (side-effect)