-
Notifications
You must be signed in to change notification settings - Fork 0
/
interpreter_main.py
102 lines (86 loc) · 1.09 KB
/
interpreter_main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
expr1 = """
res = 7 + 5
res
"""
expr2 = """
res = 8 / 3
res
"""
expr3 = """
res = 8 - 3
res
"""
expr4 = """
res = 8 * 3
res
"""
expr5 = """
res = 8 % 3
res
"""
expr6 = """
num1 = 5
num2 = 6
res = num1 + num2
res
"""
expr7 = """
def foo(arg1, arg2):
return arg1 * arg2
res = foo(6, 7)
res
"""
expr8 = """
def f_to_celsius(f):
c = (f - 32) * (5/9)
return c
ftemp = 68
res = f_to_celsius(ftemp)
res
"""
expr9 = """
def foo():
return 25
res = foo()
res
"""
expr10 = """
def foo(arg1, arg2):
return arg1 * arg2
def bar(x, y):
return x + y
res = foo(6, 7) + bar(3,4)
res
"""
expr11 = """
num1 = 5
num2 = 16
def foo(arg1, arg2):
return arg1 * arg2
res = foo(num1, num2 + 6)
res
"""
expr12 = """
num1 = 5
num2 = 6
def bar(x):
return 20 + x
def foo(arg1, arg2):
return arg1 * arg2
res = foo(num1, bar(num2))
res
"""
expr13 = """
def foo():
def bar(x):
return 20 + x
return bar
res = foo()(3)
res
"""
if __name__ == '__main__':
import ast
import interpreter
tree = ast.parse(expr1)
expr_val = interpreter.eval_tree(tree)
print(expr_val)