pseudo_interpreter/evaluator/functions/
eval_function.rs

1use 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}