add @Var

delete for, self-assign and increment
bug fixed VisitGetNameNode and implement VisitGlobalNameNode
divide ToSymbol methods
support "print" external function, multiple definition in subblock,
Let definition, and file output
implement VisitMacroNode