33
44from evaluation_function .domain .evaluators import *
55from evaluation_function .domain .formula import *
6- from evaluation_function .parsing .tokenizer import *
7- from evaluation_function .parsing .tree_builder import *
6+
7+ from evaluation_function .parsing .parser import formula_parser
8+
9+
10+ from evaluation_function .parsing .tree_builder_error import BuildError
811
912
1013def evaluation_function (
@@ -73,28 +76,10 @@ def evaluation_function(
7376 feedback = None
7477 is_correct = False
7578
76- # tokenize response
77- tokenizer = Tokenizer (response )
78- tokens = []
7979
80+ # parse response into Formula
8081 try :
81- while True :
82- token = tokenizer .next_token ()
83- tokens .append (token )
84- if token .type == TokenType .EOF :
85- break
86-
87- except ValueError as e :
88- return Result (
89- is_correct = False ,
90- feedback_items = [(ValueError , str (e ))]
91- )
92-
93-
94- # parse tokens into Formula
95- try :
96- builder = TreeBuilder (tokens )
97- formula = builder .build ()
82+ formula = formula_parser (response )
9883
9984 except BuildError as e :
10085 return Result (
@@ -104,33 +89,15 @@ def evaluation_function(
10489 except ValueError as e :
10590 return Result (
10691 is_correct = False ,
107- feedback_items = [(BuildError , str (e ))]
92+ feedback_items = [(ValueError , str (e ))]
10893 )
10994
11095
11196 if equivalence :
112-
113- answer_tokenizer = Tokenizer (answer )
114- answer_tokens = []
11597
11698 # tokenise answer
11799 try :
118- while True :
119- answer_token = answer_tokenizer .next_token ()
120- answer_tokens .append (answer_token )
121- if answer_token .type == TokenType .EOF :
122- break
123-
124- except ValueError as e :
125- return Result (
126- is_correct = False ,
127- feedback_items = [(ValueError , str (e ))]
128- )
129-
130- # parse answer tokens into Formula
131- try :
132- answer_builder = TreeBuilder (answer_tokens )
133- answer_formula = answer_builder .build ()
100+ answer_formula = formula_parser (answer )
134101
135102 except BuildError as e :
136103 return Result (
@@ -140,7 +107,7 @@ def evaluation_function(
140107 except ValueError as e :
141108 return Result (
142109 is_correct = False ,
143- feedback_items = [(BuildError , str (e ))]
110+ feedback_items = [(ValueError , str (e ))]
144111 )
145112
146113 is_correct = EquivalenceEvaluator (formula , answer_formula ).evaluate ()
0 commit comments