报错函数
我们还可以利用字符串添加报错函数。 该函数将用户提供的字符串作为输入,并将其提供给lval_err
作为报错信息。
lval* builtin_error(lenv* e, lval* a) {
LASSERT_NUM("error", a, 1);
LASSERT_TYPE("error", a, 0, LVAL_STR);
/* Construct Error from first argument */
lval* err = lval_err(a->cell[0]->str);
/* Delete arguments and return */
lval_del(a);
return err;
}
最后一步是将以上函数注册为内置函数。 现在我们终于可以开始构建函数库并将其写入文件中。
/* String Functions */
lenv_add_builtin(e, "load", builtin_load);
lenv_add_builtin(e, "error", builtin_error);
lenv_add_builtin(e, "print", builtin_print);
lispy> print "Hello World!"
"Hello World!"
()
lispy> error "This is an error"
Error: This is an error
lispy> load "hello.lspy"
"Hello World!"
()
lispy>
当前内容版权归 NoahDragon 译 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 NoahDragon 译 .