def test_raw_eval_nested(self):
     string = "(lambda x. x) ((lambda x. x) (lambda z. (lambda x. x) x))"
     parsed = self.semantic(string)
     print Evaluator.eval(parsed)
     self.assertEqual(Evaluator.raw_eval(parsed),
                      {'type': 'lambda',
                       'binder': 'z',
                       'body': [{'type': 'lambda',
                                 'binder': 'x',
                                 'body': [{'type': 'variable',
                                           'value': 'x'}]},
                                {'type': 'variable',
                                 'value': 'x'}]})
 def test_raw_eval2(self):
     newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't']
     parsed = Parser.full_parse(newTokens)
     self.assertEqual(Evaluator.raw_eval(parsed),
                      {'type': 'application',
                       'left': {'type': 'variable', 'value': 't'},
                       'right': {'type': 'variable', 'value': 'y'}})
Beispiel #3
0
 def test_raw_eval_nested(self):
     string = "(lambda x. x) ((lambda x. x) (lambda z. (lambda x. x) x))"
     parsed = self.semantic(string)
     print Evaluator.eval(parsed)
     self.assertEqual(
         Evaluator.raw_eval(parsed), {
             'type':
             'lambda',
             'binder':
             'z',
             'body': [{
                 'type': 'lambda',
                 'binder': 'x',
                 'body': [{
                     'type': 'variable',
                     'value': 'x'
                 }]
             }, {
                 'type': 'variable',
                 'value': 'x'
             }]
         })
Beispiel #4
0
 def test_raw_eval2(self):
     newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't']
     parsed = Parser.full_parse(newTokens)
     self.assertEqual(
         Evaluator.raw_eval(parsed), {
             'type': 'application',
             'left': {
                 'type': 'variable',
                 'value': 't'
             },
             'right': {
                 'type': 'variable',
                 'value': 'y'
             }
         })
Beispiel #5
0
 def test_eval4(self):
     parsed = self.semantic("(lambda x. x z y) t")
     self.assertEqual(Evaluator.eval(parsed), "t z y")
Beispiel #6
0
 def test_eval3(self):
     parsed = self.semantic("lambda x. x y")
     self.assertEqual(Evaluator.eval(parsed), "lambda x. x y")
Beispiel #7
0
 def test_eval2(self):
     newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't']
     parsed = Parser.full_parse(newTokens)
     self.assertEqual(Evaluator.eval(parsed), "t y")
Beispiel #8
0
 def test_eval1(self):
     parsed = Parser.full_parse(self.application_tokens)
     self.assertEqual(Evaluator.eval(parsed), "t")
Beispiel #9
0
 def test_raw_eval1(self):
     parsed = Parser.full_parse(self.application_tokens)
     self.assertEqual(Evaluator.raw_eval(parsed), {
         'type': 'variable',
         'value': 't'
     })
 def test_eval4(self):
     parsed = self.semantic("(lambda x. x z y) t")
     self.assertEqual(Evaluator.eval(parsed), "t z y")
 def test_eval3(self):
     parsed = self.semantic("lambda x. x y")
     self.assertEqual(Evaluator.eval(parsed), "lambda x. x y")
 def test_eval2(self):
     newTokens = ['(', 'lambda', 'x', '.', 'x', 'y', ')', 't']
     parsed = Parser.full_parse(newTokens)
     self.assertEqual(Evaluator.eval(parsed), "t y")
 def test_eval1(self):
     parsed = Parser.full_parse(self.application_tokens)
     self.assertEqual(Evaluator.eval(parsed), "t")
 def test_raw_eval1(self):
     parsed = Parser.full_parse(self.application_tokens)
     self.assertEqual(Evaluator.raw_eval(parsed),
                      {'type': 'variable', 'value': 't'})