added debug to lox_std

This commit is contained in:
Moritz Gmeiner 2024-09-03 16:50:52 +02:00
commit 812cf0d2d0

View file

@ -6,6 +6,7 @@ use crate::error::RuntimeError;
pub fn init_std(env: &mut Runtime) { pub fn init_std(env: &mut Runtime) {
clock().register(env); clock().register(env);
debug().register(env);
exit().register(env); exit().register(env);
input().register(env); input().register(env);
print_env().register(env); print_env().register(env);
@ -26,6 +27,18 @@ fn clock() -> LoxExternFunction {
LoxExternFunction::new("clock", 0, closure) LoxExternFunction::new("clock", 0, closure)
} }
fn debug() -> LoxExternFunction {
let closure: ExternFunClosure = |args, _env| {
for arg in args {
println!("{arg:?}");
}
Ok(Value::Nil)
};
LoxExternFunction::new("debug", 1, closure)
}
fn exit() -> LoxExternFunction { fn exit() -> LoxExternFunction {
let closure: ExternFunClosure = |args, _env| { let closure: ExternFunClosure = |args, _env| {
assert_eq!(args.len(), 1); assert_eq!(args.len(), 1);