part to LLVMSourceWriter
change VisitFuncDeclNode to VisitFunctionNode
change to use constant expressions
add all visitor Visit(.+)Node
write code for function object(not work due to the typing miss)