Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
 def test2(self):
     eq_(teval('a; a;'), var('a'))
Exemple #7
0
 def test1_2(self):
     eq_(teval('a'), var('a'))
Exemple #8
0
def get_var(builtin, name):
  try: symbol = builtin.symbol
  except:
    try: symbol = builtin.name
    except: symbol = name
  return var(symbol)
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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)
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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)
Exemple #17
0
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)
Exemple #18
0
 def test1_2(self):
   eq_(teval('a'), var('a'))
Exemple #19
0
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)
Exemple #20
0
 def test2(self):
   eq_(teval('a; a;'), var('a'))
Exemple #21
0
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)
Exemple #22
0
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