re-implement lambdas

This commit is contained in:
2024-10-16 16:38:28 -04:00
parent 283f5cdb41
commit 7b01ac45fc

View File

@@ -242,7 +242,13 @@ impl ParseTree {
Op::NotEqualTo => two_arg!(NotEqualTo, tokens, globals, locals), Op::NotEqualTo => two_arg!(NotEqualTo, tokens, globals, locals),
Op::And => two_arg!(And, tokens, globals, locals), Op::And => two_arg!(And, tokens, globals, locals),
Op::Or => two_arg!(Or, tokens, globals, locals), Op::Or => two_arg!(Or, tokens, globals, locals),
Op::LambdaDefine(_arg_count) => todo!(), Op::LambdaDefine(arg_count) => {
let mut f = ParseTree::parse_function(tokens, arg_count)?;
f.body = Some(Box::new(ParseTree::parse(tokens, globals, locals)?));
Ok(ParseTree::LambdaDefinition(f))
}
Op::NonCall => todo!(), Op::NonCall => todo!(),
op => Err(ParseError::UnwantedToken(Token::Operator(op))), op => Err(ParseError::UnwantedToken(Token::Operator(op))),
} }