def collocet_builtins(from_globls, to_globals): for name, obj in globls.items(): if isinstance(obj, Command): try: symbol = obj.symbol except: try: symbol = obj.name except: symbol = name v = var(symbol) global_env[v] = obj
def symbol(solver, result): text, pos = solver.parse_state if pos>=len(text): return char = text[pos] if char in _SYMBOL_FORBID_CHARS or '0'<=char<='9': return p = pos while p<len(text): if text[p] in _SYMBOL_FORBID_CHARS: break else: p += 1 name = text[pos:p] sym = var(name) for _ in term.unify(result, sym, solver.env): solver.parse_state = text, p yield cont, True solver.parse_state = text, pos
def collocet_builtins_to_module(globls, global_env, module): for name, obj in globls.items(): if isinstance(obj, Command): try: symbol = obj.symbol except: try: symbol = obj.name except: symbol = name v = var(symbol) module[v] = obj try: is_global = obj.is_global except: is_global = False if is_global: global_env[v] = obj
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.parser import * parser = ModuleEnvironment({}, None, 'parser') global_env[var('parser')] = parser collocet_builtins(globals(), global_env, parser)
from dao.env import ModuleEnvironment from dao.term import var from dao.builtin import collocet_builtins_to_module from dao.t.builtins.globalenv import global_env from dao.builtins.rule import * rule = ModuleEnvironment({}, None) global_env[var('rule')] = rule collocet_builtins_to_module(globals(), global_env, rule)
def test2(self): eq_(teval('a; a;'), var('a'))
def test1_2(self): eq_(teval('a'), var('a'))
def get_var(builtin, name): try: symbol = builtin.symbol except: try: symbol = builtin.name except: symbol = name return var(symbol)
from dao.env import ModuleEnvironment from dao.term import var from dao.builtin import collocet_builtins_to_module from dao.t.builtins.globalenv import global_env from dao.builtins.control import * control = ModuleEnvironment({}, None) global_env[var("control")] = control collocet_builtins_to_module(globals(), global_env, control)
from dao.env import ModuleEnvironment from dao.term import var from dao.builtin import collocet_builtins_to_module from dao.t.builtins.globalenv import global_env from dao.builtins.parser import * parser = ModuleEnvironment({}, None) global_env[var('parser')] = parser collocet_builtins_to_module(globals(), global_env, parser)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.term import * term = ModuleEnvironment({}, None, 'term') global_env[var('term')] = term collocet_builtins(globals(), global_env, term)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.container import * from dao.builtins.quasiquote import * container = ModuleEnvironment({}, None, "container") global_env[var("container")] = container collocet_builtins(globals(), global_env, container)
from dao.env import ModuleEnvironment from dao.term import var from dao.builtin import collocet_builtins_to_module from dao.t.builtins.globalenv import global_env from dao.builtins.io import * io = ModuleEnvironment({}, None) global_env[var('io')] = io collocet_builtins_to_module(globals(), global_env, io)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.io import * io = ModuleEnvironment({}, None, 'io') global_env[var('io')] = io collocet_builtins(globals(), global_env, io)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.rule import * rule = ModuleEnvironment({}, None, 'rule') global_env[var('rule')] = rule collocet_builtins(globals(), global_env, rule)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.special import * special = ModuleEnvironment({}, None, 'special') global_env[var('special')] = special collocet_builtins(globals(), global_env, special)
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.control import * control = ModuleEnvironment({}, global_env, 'control') global_env[var('control')] = control collocet_builtins(globals(), global_env, control)
def test1_2(self): eq_(teval('a'), var('a'))
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.arith import * arith = ModuleEnvironment({}, None, 'arith') global_env[var('arith')] = arith collocet_builtins(globals(), global_env, arith)
def test2(self): eq_(teval('a; a;'), var('a'))
from dao.env import ModuleEnvironment from dao.term import var from dao.t.builtins.globalenv import global_env, collocet_builtins from dao.builtins.container import * from dao.builtins.quasiquote import * container = ModuleEnvironment({}, None, 'container') global_env[var('container')] = container collocet_builtins(globals(), global_env, container)
from dao.solve import BaseCommand from dao.command import Command from dao.special import SpecialForm global_env = GlobalEnvironment({}) from dao.base import is_subclass from dao.term import var def get_var(builtin, name): try: symbol = builtin.symbol except: try: symbol = builtin.name except: symbol = name return var(symbol) def collocet_builtins(globls, global_env, module): for name, obj in globls.items(): if isinstance(obj, Command) or is_subclass(obj, SpecialForm): v = get_var(obj, name) module[v] = obj if obj.is_global: global_env[v] = obj t = ModuleEnvironment({}, global_env, 't') grammar = ModuleEnvironment({}, global_env, 'gammar') sexpression = ModuleEnvironment({}, global_env, 'sexpression') classic = ModuleEnvironment({}, global_env, 'classic') global_env[var('t')] = t t[var('grammar')] = grammar grammar[var('sexpression')] = sexpression grammar[var('classic')] = classic