Esempio n. 1
0
def exec(string):
    env0 = env.Env()
    gc = env.GC(env0)
    s = env.Scope.root_scope()
    for i in interp.parse(string):
        _, _, _gc = interp.interp0(i, env0, s, s.extend())
        gc.extend(_gc)
Esempio n. 2
0
 def _fun(e, y):
     val, err, _gc = interp0(parse(f"(do {y})")[0], e, s, s.extend())
     gc.extend(_gc)
     return val
Esempio n. 3
0
def test_diffenv():
    """
    Individual env
    """
    unittest(lambda: None, lambda _, y: interp(parse(y)[0]), test_suite)
Esempio n. 4
0
import sys
import traceback

import env
import interp
import std
import type

if __name__ == '__main__':
    if len(sys.argv) == 2:
        file = sys.argv[1]
        env0 = env.Env()
        gc = env.GC(env0)
        s = env.Scope.root_scope()
        with open(file, "r", encoding="utf-8") as f:
            for i in interp.parse(f.read()):
                _, _, _gc = interp.interp0(i, env0, s, s.extend())
                gc.extend(_gc)
    else:
        type.PyFunc("clear")(lambda _, __, ___: (os.system("cls"), None))
        env0 = env.Env()
        gc = env.GC(env0)
        print("REPL")
        s = env.Scope.root_scope()
        while True:
            try:
                r = input(">> ")
                for i in interp.parse(r):
                    val, _, _gc = interp.interp0(i, env0, s, s.extend())
                    gc.extend(_gc)
                    env0._set(None, "it", val)
Esempio n. 5
0
 def _fun(_, y):
     a = parse(y)
     if len(a) > 0:
         return a[0]
     else:
         return None