1+ def Checker (re_code : str , variables : dict ) -> bool :
2+ if "=" in re_code :
3+ code = re_code .split ("=" )
4+ if code [0 ] in variables :
5+ code [0 ] = variables [code [0 ]]
6+ if code [1 ] in variables :
7+ code [1 ] = variables [code [1 ]]
8+ return code [0 ] == code [1 ]
9+
10+ elif "!" in re_code :
11+ code = re_code .split ("!" )
12+ if code [0 ] in variables :
13+ code [0 ] = variables [code [0 ]]
14+ if code [1 ] in variables :
15+ code [1 ] = variables [code [1 ]]
16+ return code [0 ] != code [1 ]
17+
18+ elif "<" in re_code :
19+ code = re_code .split ("<" )
20+ if code [0 ] in variables :
21+ code [0 ] = variables [code [0 ]]
22+ if code [1 ] in variables :
23+ code [1 ] = variables [code [1 ]]
24+ return code [0 ] < code [1 ]
25+
26+ elif ">" in re_code :
27+ code = re_code .split (">" )
28+ if code [0 ] in variables :
29+ code [0 ] = variables [code [0 ]]
30+ if code [1 ] in variables :
31+ code [1 ] = variables [code [1 ]]
32+ return code [0 ] > code [1 ]
33+
34+
135class Interpreter ():
236 def __init__ (self ):
337 pass
438
5- def interpret (code : str ) -> str :
39+ def interpret (self , code : str ) -> str :
640 code = code .split (" " )
7- if "\n " in code :
8- codes = ""
9- for i in range (len (code )):
10- codes += code [i ]
11- code = codes .split ("\n " )
1241
1342 variables = {}
1443 for j in range (0 , len (code )):
@@ -100,61 +129,15 @@ def interpret(code: str) -> str:
100129
101130 if code [j ].startswith ("4" ):
102131 re_code = code [j ].replace ("4" , "" , 1 )
103- if "=" in re_code [0 ]:
104- req_code = re_code [0 ].split ("=" )
105- if req_code [0 ] in variables .keys ():
106- val1 = variables [req_code [0 ]]
107- else :
108- val1 = req_code [0 ]
109-
110- if req_code [1 ] in variables .keys ():
111- val2 = variables [req_code [1 ]]
112- else :
113- val2 = req_code [1 ]
114-
115- return val1 == val2
116-
117- elif "!" in re_code [0 ]:
118- req_code = re_code [0 ].split ("!" )
119- if req_code [0 ] in variables .keys ():
120- val1 = variables [req_code [0 ]]
121- else :
122- val1 = req_code [0 ]
123-
124- if req_code [1 ] in variables .keys ():
125- val2 = variables [req_code [1 ]]
126- else :
127- val2 = req_code [1 ]
128-
129- return val1 != val2
130-
131- elif ">" in re_code [0 ]:
132- req_code = re_code [0 ].split (">" )
133- if req_code [0 ] in variables .keys ():
134- val1 = int (variables [req_code [0 ]])
135- else :
136- val1 = int (req_code [0 ])
137-
138- if req_code [1 ] in variables .keys ():
139- val2 = int (variables [req_code [1 ]])
140- else :
141- val2 = int (req_code [1 ])
142-
143- return val1 > val2
144-
145- elif "<" in re_code [0 ]:
146- req_code = re_code [0 ].split ("<" )
147- if req_code [0 ] in variables .keys ():
148- val1 = int (variables [req_code [0 ]])
149- else :
150- val1 = int (req_code [0 ])
151-
152- if req_code [1 ] in variables .keys ():
153- val2 = int (variables [req_code [1 ]])
154- else :
155- val2 = int (req_code [1 ])
156-
157- return val1 < val2
132+ print (Checker (re_code , variables ))
133+
134+ if code [j ].startswith ("?" ):
135+ re_code = code [j ].replace ("?" , "" , 1 )
136+ statements = re_code .split (":" )
137+ if Checker (statements [0 ], variables ):
138+ self .interpret (Interpreter , statements [1 ])
139+ else :
140+ self .interpret (Interpreter , statements [2 ])
158141
159142 if code [j ] in variables .keys ():
160143 print (variables [code [j ]])
0 commit comments