예제 #1
0
파일: __init__.py 프로젝트: bodil/lolisp
 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)
예제 #2
0
파일: concurrent.py 프로젝트: bodil/lolisp
def atom_reset(self, scope, args):
  fn = types.mkprimitive("reset!", lambda x1, x2: args[1])
  return args[0].swap(self.rt, scope, fn)
예제 #3
0
파일: test_lolisp.py 프로젝트: bodil/lolisp
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