def visit_FunDef(self, node):
        if self.current_symbol_table.get(node.name) is not None:
            print "Redeclaration of name: " + node.name + " in the same scope at " + node.line.__str__(
            )

        funsymbol = SymbolTable.FunctionSymbol(node.name, node.type)
        self.current_symbol_table.put(node.name, funsymbol)
        newscope = SymbolTable.SymbolTable(self.current_symbol_table,
                                           "fundef" + self.counter.__str__())
        self.counter += 1
        self.current_symbol_table = newscope
        prevsym = self.carried_info["funsymbol"]
        self.carried_info["funsymbol"] = funsymbol

        self.visit(node.args)
        self.visit(node.instr)

        self.carried_info["funsymbol"] = prevsym
        self.current_symbol_table = self.current_symbol_table.getParentScope()