Example #1
0
 def extend(self, package):
   for key in dir(package):
     fn = getattr(package, key)
     if hasattr(fn, "primitive_name"):
       name = fn.primitive_name
       if hasattr(fn, "external"):
         fn = wrap_external(self, fn)
       self[name] = types.mkprimitive(name, fn)
Example #2
0
def atom_reset(self, scope, args):
  fn = types.mkprimitive("reset!", lambda x1, x2: args[1])
  return args[0].swap(self.rt, scope, fn)
Example #3
0
def build_rt(filename):
  rt = RT()
  rt.__test_filename__ = filename
  rt.load(rt.ns, file(os.path.join(sys.path[0], "rt.loli")))
  rt.ns.define("is", types.mkprimitive("is", lambda s, a: rt.eval(s, a[0])))
  return rt