コード例 #1
0
ファイル: testbuiltin.py プロジェクト: charyorde/dao
 def testcall(self):
   eq_(eval(call(unify(x, 1))), True)
   eq_(eval(is_(x, quote(prin(1)))&call(x)), None)
コード例 #2
0
ファイル: testbuiltin.py プロジェクト: charyorde/dao
 def test_findall(self):
   x, y, z = Var('x'), Var('y'), Var('z')
   eq_(eval(let([(f, function(((), 2), ((), 3)))], 
              findall(is_(x, f()), x, y), y)), [2, 3])
コード例 #3
0
ファイル: testbuiltin.py プロジェクト: charyorde/dao
 def test_is(self):
   eq_(eval(is_(x, 1)), True)
コード例 #4
0
 def test_is(self):
     eq_(eval(is_(x, 1)), True)
コード例 #5
0
 def test_findall(self):
     x, y, z = Var('x'), Var('y'), Var('z')
     eq_(
         eval(
             let([(f, function(((), 2), ((), 3)))],
                 findall(is_(x, f()), x, y), y)), [2, 3])
コード例 #6
0
 def testcall(self):
     eq_(eval(call(unify(x, 1))), True)
     eq_(eval(is_(x, quote(prin(1))) & call(x)), None)
コード例 #7
0
ファイル: dinpy.py プロジェクト: hermetique/dao
@builtin.function('make_iff')
def make_iff(test, clause, clauses, els_clause):
    els_clause = preparse(els_clause) if not isinstance(els_clause,
                                                        Var) else None
    test = preparse(test[0])
    clause = preparse(clause)
    clauses1 = [(preparse(t), preparse(c)) for t, c in clauses]
    return special.iff([(test, clause)] + clauses1, els_clause)


_then, _elsif, _els = words('then, elsif, els')
_test, _test2, _body = dummies('_test, _test2, _body')

# iff(1).then[2], iff(1).then[2]  .elsif(3).then[4] .els[5]
iff = element('iff', (call(vv.test) + _do + getitem(vv.clause) + any(
    _elsif + call(_test) + _do + getitem(_body) + is_(_test2, first(_test)),
    (_test2, _body), vv.clauses) + may(_els + getitem(vv.els_clause)) + eoi +
                      make_iff(vv.test, vv.clause, vv.clauses, vv.els_clause)))


class CASE_ELS:
    pass


CASE_ELS = CASE_ELS()


@builtin.function('make_case')
def make_case(test, cases):
    case_dict = {}
    for case, clause in cases:
コード例 #8
0
ファイル: dinpy.py プロジェクト: charyorde/dao
@builtin.function('make_iff')
def make_iff(test, clause, clauses, els_clause):
  els_clause = preparse(els_clause) if not isinstance(els_clause, Var) else None
  test = preparse(test[0])
  clause = preparse(clause)
  clauses1 =  [(preparse(t), preparse(c)) for t, c in clauses]
  return special.iff([(test, clause)]+clauses1, els_clause)

_then, _elsif, _els = words('then, elsif, els')
_test, _test2, _body =  dummies('_test, _test2, _body')

# iff(1).then[2], iff(1).then[2]  .elsif(3).then[4] .els[5]
iff = element('iff',
              (call(vv.test)+_do+getitem(vv.clause)
              +any(_elsif+call(_test)+_do+getitem(_body)+is_(_test2, first(_test)), 
                   (_test2, _body), vv.clauses)
              +may(_els+getitem(vv.els_clause))+eoi
              +make_iff(vv.test, vv.clause, vv.clauses, vv.els_clause))
              )
              

class CASE_ELS: pass
CASE_ELS = CASE_ELS()

@builtin.function('make_case')
def make_case(test, cases): 
  case_dict = {}
  for case, clause in cases:
    case = preparse(case)
    if case is CASE_ELS: