本文整理汇总了Python中env.Env.declare方法的典型用法代码示例。如果您正苦于以下问题:Python Env.declare方法的具体用法?Python Env.declare怎么用?Python Env.declare使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类env.Env
的用法示例。
在下文中一共展示了Env.declare方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Function
# 需要导入模块: from env import Env [as 别名]
# 或者: from env.Env import declare [as 别名]
class Function(Exp):
def __init__(self, params, cmd):
self.params = params
self.cmd = cmd
self.this = None
self.env = None
def eval(self, env):
if self.env is None:
self.env = Env(env)
self.env.declare('this', self.this)
return self
def set_this(self, this):
self.this = this
def call(self, args, env):
if len(args) != len(self.params):
raise Exception("Invalid count of parameters. Should be %s, is %s." % (len(self.params), len(args)))
new_env = Env(self.env)
values = zip(self.params, args)
for val in values:
new_env.declare(val[0], val[1])
return self.cmd.eval(new_env)
def __str__(self):
return "Function(%s, %s)" % (self.params, self.cmd)
示例2: call
# 需要导入模块: from env import Env [as 别名]
# 或者: from env.Env import declare [as 别名]
def call(self, args, env):
if len(args) != len(self.params):
raise Exception("Invalid count of parameters. Should be %s, is %s." % (len(self.params), len(args)))
new_env = Env(self.env)
values = zip(self.params, args)
for val in values:
new_env.declare(val[0], val[1])
return self.cmd.eval(new_env)
示例3: interpret
# 需要导入模块: from env import Env [as 别名]
# 或者: from env.Env import declare [as 别名]
def interpret(code, print_ast=False):
ast = parse(tokenize(code))
if print_ast:
print(ast)
env = Env()
env.declare("alloc", Alloc())
env.declare("readline", ReadLine())
env.declare("true", 1)
env.declare("false", 0)
ast.eval(env)