pseudo_interpreter/evaluator/functions/
eval_function.rs1use crate::{
2 constants::error_handler::PseudoError,
3 evaluator::{evaluator::FuncArgs, Statement},
4 Evaluator,
5};
6
7pub trait EvalFunction {
8 fn eval_function(&mut self, statement: &Statement) -> Result<(), PseudoError>;
9}
10
11impl EvalFunction for Evaluator {
12 fn eval_function(&mut self, statement: &Statement) -> Result<(), PseudoError> {
13 if let Statement::Function(name, params, fstatements, ret_ment) = statement {
14 let func_args = FuncArgs {
15 params: params.clone(),
16 statements: fstatements.clone(),
17 ret_ment: ret_ment.clone(),
18 };
19 self.function_args.insert(name.clone(), func_args);
20 }
21 Ok(())
22 }
23}