コード例 #1
0
ファイル: Interpreter.py プロジェクト: aciepiela/tk
    def visit(self, node):
        fundef = self.functions.getFunction(node.ident)

        args = node.args
        memory = Memory("funcall")
        for def_arg, passed_arg in zip(fundef.args, args):
            memory.put(def_arg.ident, self.eval_or_get_from_memory(passed_arg))

        previous_stack = self.memoryStack
        self.memoryStack = self.functions.getStack(node.ident, memory)
        try:
            fundef.instr.accept_interpreter(self)
        except ReturnException as ret:
            self.memoryStack = previous_stack
            return ret.value

        self.memoryStack = previous_stack
コード例 #2
0
ファイル: Interpreter.py プロジェクト: aciepiela/tk
    def visit(self, node):
        memory = Memory("arguments of " + node.ident)
        for arg in node.args:
            memory.put(arg.ident, None)

        self.functions.putFunction(node.ident, memory, node)