Tasmota/lib/libesp32/berry/src/be_func.h

28 lines
950 B
C

/********************************************************************
** Copyright (c) 2018-2020 Guan Wenliang
** This file is part of the Berry default interpreter.
** skiars@qq.com, https://github.com/Skiars/berry
** See Copyright Notice in the LICENSE file or at
** https://github.com/Skiars/berry/blob/master/LICENSE
********************************************************************/
#ifndef BE_FUNC_H
#define BE_FUNC_H
#include "be_object.h"
#define be_newntvclos(vm, cf) \
be_newntvclosure(vm, cf, 0)
#define be_ntvclos_upval(cc, n) \
(((bupval**)((size_t)cc + sizeof(bntvclos)))[n])
void be_initupvals(bvm *vm, bclosure *cl);
void be_upvals_close(bvm *vm, bvalue *level);
void be_release_upvalues(bvm *vm, bclosure *cl);
bproto* be_newproto(bvm *vm);
bclosure* be_newclosure(bvm *vm, int nupval);
bntvclos* be_newntvclosure(bvm *vm, bntvfunc cf, int nupvals);
bstring* be_func_varname(bproto *proto, int index, int pc);
#endif