@@ -132,7 +132,7 @@ Result<PythonCompiler::EvalResult> PythonCompiler::evaluate(
132
132
->m_symtab ->get_symbol (run_fn);
133
133
LCOMPILERS_ASSERT (fn)
134
134
if (ASRUtils::get_FunctionType (fn)->m_return_var_type ->type == ASR::ttypeType::Character) {
135
- char *r = e->strfn (run_fn);
135
+ char *r = e->execfn < char *> (run_fn);
136
136
result.type = EvalResult::string;
137
137
result.str = r;
138
138
} else {
@@ -143,11 +143,11 @@ Result<PythonCompiler::EvalResult> PythonCompiler::evaluate(
143
143
->m_symtab ->get_symbol (run_fn);
144
144
LCOMPILERS_ASSERT (fn)
145
145
if (ASRUtils::get_FunctionType (fn)->m_return_var_type ->type == ASR::ttypeType::UnsignedInteger) {
146
- uint8_t r = e->int8fn (run_fn);
146
+ uint8_t r = e->execfn < uint8_t > (run_fn);
147
147
result.type = EvalResult::unsignedInteger1;
148
148
result.u32 = r;
149
149
} else {
150
- int8_t r = e->int8fn (run_fn);
150
+ int8_t r = e->execfn < int8_t > (run_fn);
151
151
result.type = EvalResult::integer1;
152
152
result.i32 = r;
153
153
}
@@ -156,11 +156,11 @@ Result<PythonCompiler::EvalResult> PythonCompiler::evaluate(
156
156
->m_symtab ->get_symbol (run_fn);
157
157
LCOMPILERS_ASSERT (fn)
158
158
if (ASRUtils::get_FunctionType (fn)->m_return_var_type ->type == ASR::ttypeType::UnsignedInteger) {
159
- uint16_t r = e->int16fn (run_fn);
159
+ uint16_t r = e->execfn < uint16_t > (run_fn);
160
160
result.type = EvalResult::unsignedInteger2;
161
161
result.u32 = r;
162
162
} else {
163
- int16_t r = e->int16fn (run_fn);
163
+ int16_t r = e->execfn < int16_t > (run_fn);
164
164
result.type = EvalResult::integer2;
165
165
result.i32 = r;
166
166
}
@@ -169,11 +169,11 @@ Result<PythonCompiler::EvalResult> PythonCompiler::evaluate(
169
169
->m_symtab ->get_symbol (run_fn);
170
170
LCOMPILERS_ASSERT (fn)
171
171
if (ASRUtils::get_FunctionType (fn)->m_return_var_type ->type == ASR::ttypeType::UnsignedInteger) {
172
- uint32_t r = e->int32fn (run_fn);
172
+ uint32_t r = e->execfn < uint32_t > (run_fn);
173
173
result.type = EvalResult::unsignedInteger4;
174
174
result.u32 = r;
175
175
} else {
176
- int32_t r = e->int32fn (run_fn);
176
+ int32_t r = e->execfn < int32_t > (run_fn);
177
177
result.type = EvalResult::integer4;
178
178
result.i32 = r;
179
179
}
@@ -182,34 +182,34 @@ Result<PythonCompiler::EvalResult> PythonCompiler::evaluate(
182
182
->m_symtab ->get_symbol (run_fn);
183
183
LCOMPILERS_ASSERT (fn)
184
184
if (ASRUtils::get_FunctionType (fn)->m_return_var_type ->type == ASR::ttypeType::UnsignedInteger) {
185
- uint64_t r = e->int64fn (run_fn);
185
+ uint64_t r = e->execfn < uint64_t > (run_fn);
186
186
result.type = EvalResult::unsignedInteger8;
187
187
result.u64 = r;
188
188
} else {
189
- int64_t r = e->int64fn (run_fn);
189
+ int64_t r = e->execfn < int64_t > (run_fn);
190
190
result.type = EvalResult::integer8;
191
191
result.i64 = r;
192
192
}
193
193
} else if (return_type == " real4" ) {
194
- float r = e->floatfn (run_fn);
194
+ float r = e->execfn < float > (run_fn);
195
195
result.type = EvalResult::real4;
196
196
result.f32 = r;
197
197
} else if (return_type == " real8" ) {
198
- double r = e->doublefn (run_fn);
198
+ double r = e->execfn < double > (run_fn);
199
199
result.type = EvalResult::real8;
200
200
result.f64 = r;
201
201
} else if (return_type == " complex4" ) {
202
- std::complex<float > r = e->complex4fn (run_fn);
202
+ std::complex<float > r = e->execfn <std::complex< float >> (run_fn);
203
203
result.type = EvalResult::complex4;
204
204
result.c32 .re = r.real ();
205
205
result.c32 .im = r.imag ();
206
206
} else if (return_type == " complex8" ) {
207
- std::complex<double > r = e->complex8fn (run_fn);
207
+ std::complex<double > r = e->execfn <std::complex< double >> (run_fn);
208
208
result.type = EvalResult::complex8;
209
209
result.c64 .re = r.real ();
210
210
result.c64 .im = r.imag ();
211
211
} else if (return_type == " void" ) {
212
- e->voidfn (run_fn);
212
+ e->execfn < void > (run_fn);
213
213
result.type = EvalResult::statement;
214
214
} else if (return_type == " none" ) {
215
215
result.type = EvalResult::none;
0 commit comments