def interactiveCompile(expr, env, filename, mode): modname = env['__name__'] if data.isDoc(expr, rootops.setlang): newlang = language.tmpLanguage(language.eval(expr, env), modname) env['__currentlang__'] = newlang env[newlang.__impl__.name] = newlang return compile("None", "", "eval") if data.isDoc(expr, (rootops.defop, rootops.getops)): expr['lang'] = '__currentlang__' language.eval(expr, env) return compile("None", "", "eval") else: return logixcompiler.compile([expr], filename, mode, module=modname)
def rule(syntaxlang, syntax, env=None): env = env or {} return language.eval(syntaxlang.__impl__.parse(syntax)[0], env)