LMMS
Loading...
Searching...
No Matches
ns-eel.h File Reference
#include <stdlib.h>
#include <stdio.h>
#include "../wdltypes.h"

Go to the source code of this file.

Classes

struct  eel_function_table
struct  eelStringSegmentRec

Macros

#define EEL_F_SIZE   8
#define NSEEL_CGEN_CALL
#define NSEEL_addfunc_retval(name, np, pproc, fptr)
#define NSEEL_addfunc_retptr(name, np, pproc, fptr)
#define NSEEL_addfunc_retbool(name, np, pproc, fptr)
#define NSEEL_addfunc_varparm(name, min_np, pproc, fptr)
#define NSEEL_addfunc_exparms(name, np, pproc, fptr)
#define NSEEL_addfunction(name, nparms, code, len)
#define NSEEL_addfunctionex(name, nparms, code, len, pproc, fptr)
#define NSEEL_ADDFUNC_DESTINATION   (NULL)
#define NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS   1
#define NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS_RESET   2
#define NSEEL_CODE_COMPILE_FLAG_NOFPSTATE   4
#define NSEEL_CODE_COMPILE_FLAG_ONLY_BUILTIN_FUNCTIONS   8
#define NSEEL_SUPER_MINIMAL_LEXER
#define NSEEL_MAX_VARIABLE_NAMELEN   128
#define NSEEL_MAX_EELFUNC_PARAMETERS   40
#define NSEEL_MAX_FUNCSIG_NAME   2048
#define NSEEL_LOOPFUNC_SUPPORT_MAXLEN   1048576
#define NSEEL_MAX_FUNCTION_SIZE_FOR_INLINE   2048
#define NSEEL_SHARED_GRAM_SIZE   (1<<20)
#define NSEEL_RAM_BLOCKS_DEFAULTMAX   128
#define NSEEL_RAM_BLOCKS_LOG2   9
#define NSEEL_RAM_ITEMSPERBLOCK_LOG2   16
#define NSEEL_RAM_BLOCKS   (1 << NSEEL_RAM_BLOCKS_LOG2)
#define NSEEL_RAM_ITEMSPERBLOCK   (1<<NSEEL_RAM_ITEMSPERBLOCK_LOG2)
#define NSEEL_STACK_SIZE   4096

Typedefs

typedef double EEL_F WDL_FIXALIGN
typedef double * EEL_F_PTR
typedef void *(* NSEEL_PPPROC) (void *data, int data_size, struct _compileContext *userfunc_data)
typedef voidNSEEL_VMCTX
typedef voidNSEEL_CODEHANDLE

Functions

void NSEEL_HOSTSTUB_EnterMutex ()
void NSEEL_HOSTSTUB_LeaveMutex ()
int NSEEL_init ()
void NSEEL_quit ()
void NSEEL_addfunctionex2 (const char *name, int nparms, char *code_startaddr, int code_len, NSEEL_PPPROC pproc, void *fptr, void *fptr2, eel_function_table *destination)
void NSEEL_addfunc_ret_type (const char *name, int np, int ret_type, NSEEL_PPPROC pproc, void *fptr, eel_function_table *destination)
void NSEEL_addfunc_varparm_ex (const char *name, int min_np, int want_exact, NSEEL_PPPROC pproc, EEL_F(NSEEL_CGEN_CALL *fptr)(void *, INT_PTR, EEL_F **), eel_function_table *destination)
void NSEEL_addfunc_varparm_ctxptr (const char *name, int min_np, int want_exact, void *ctxptr, EEL_F(NSEEL_CGEN_CALL *fptr)(void *, INT_PTR, EEL_F **), eel_function_table *destination)
void NSEEL_addfunc_varparm_ctxptr2 (const char *name, int min_np, int want_exact, NSEEL_PPPROC pproc, void *ctx, EEL_F(NSEEL_CGEN_CALL *fptr)(void *, void *, INT_PTR, EEL_F **), eel_function_table *destination)
intNSEEL_getstats ()
NSEEL_VMCTX NSEEL_VM_alloc ()
void NSEEL_VM_free (NSEEL_VMCTX ctx)
void NSEEL_VM_SetFunctionTable (NSEEL_VMCTX, eel_function_table *tab)
void NSEEL_VM_SetFunctionValidator (NSEEL_VMCTX, const char *(*validateFunc)(const char *fn_name, void *user), void *user)
void NSEEL_VM_remove_unused_vars (NSEEL_VMCTX _ctx)
void NSEEL_VM_clear_var_refcnts (NSEEL_VMCTX _ctx)
void NSEEL_VM_remove_all_nonreg_vars (NSEEL_VMCTX _ctx)
void NSEEL_VM_enumallvars (NSEEL_VMCTX ctx, int(*func)(const char *name, EEL_F *val, void *ctx), void *userctx)
EEL_F * NSEEL_VM_regvar (NSEEL_VMCTX ctx, const char *name)
EEL_F * NSEEL_VM_getvar (NSEEL_VMCTX ctx, const char *name)
int NSEEL_VM_get_var_refcnt (NSEEL_VMCTX _ctx, const char *name)
void NSEEL_VM_set_var_resolver (NSEEL_VMCTX ctx, EEL_F *(*res)(void *userctx, const char *name), void *userctx)
void NSEEL_VM_freeRAM (NSEEL_VMCTX ctx)
void NSEEL_VM_freeRAMIfCodeRequested (NSEEL_VMCTX)
int NSEEL_VM_wantfreeRAM (NSEEL_VMCTX ctx)
void NSEEL_VM_SetGRAM (NSEEL_VMCTX ctx, void **gram)
void NSEEL_VM_FreeGRAM (void **ufd)
void NSEEL_VM_SetCustomFuncThis (NSEEL_VMCTX ctx, void *thisptr)
EEL_F * NSEEL_VM_getramptr (NSEEL_VMCTX ctx, unsigned int offs, int *validCount)
EEL_F * NSEEL_VM_getramptr_noalloc (NSEEL_VMCTX ctx, unsigned int offs, int *validCount)
int NSEEL_VM_setramsize (NSEEL_VMCTX ctx, int maxent)
void NSEEL_VM_SetStringFunc (NSEEL_VMCTX ctx, EEL_F(*onString)(void *caller_this, struct eelStringSegmentRec *list), EEL_F(*onNamedString)(void *caller_this, const char *name))
int nseel_stringsegments_tobuf (char *bufOut, int bufout_sz, struct eelStringSegmentRec *list)
NSEEL_CODEHANDLE NSEEL_code_compile (NSEEL_VMCTX ctx, const char *code, int lineoffs)
NSEEL_CODEHANDLE NSEEL_code_compile_ex (NSEEL_VMCTX ctx, const char *code, int lineoffs, int flags)
char * NSEEL_code_getcodeerror (NSEEL_VMCTX ctx)
int NSEEL_code_geterror_flag (NSEEL_VMCTX ctx)
void NSEEL_code_execute (NSEEL_CODEHANDLE code)
void NSEEL_code_free (NSEEL_CODEHANDLE code)
intNSEEL_code_getstats (NSEEL_CODEHANDLE code)
void eel_enterfp (int s[2])
void eel_leavefp (int s[2])

Variables

unsigned int NSEEL_RAM_limitmem
unsigned int NSEEL_RAM_memused
int NSEEL_RAM_memused_errors
void *(* nseel_gmem_calloc )(size_t, size_t)

Macro Definition Documentation

◆ EEL_F_SIZE

#define EEL_F_SIZE   8

◆ NSEEL_ADDFUNC_DESTINATION

#define NSEEL_ADDFUNC_DESTINATION   (NULL)

◆ NSEEL_addfunc_exparms

#define NSEEL_addfunc_exparms ( name,
np,
pproc,
fptr )
Value:
#define NSEEL_ADDFUNC_DESTINATION
Definition eel_import.h:47
void(* NSEEL_addfunc_varparm_ex)(const char *name, int min_np, int want_exact, NSEEL_PPPROC pproc, EEL_F(NSEEL_CGEN_CALL *fptr)(void *, INT_PTR, EEL_F **), eel_function_table *destination)
Definition eel_import.h:6
static const char * name
Definition pugl.h:1582

◆ NSEEL_addfunc_retbool

#define NSEEL_addfunc_retbool ( name,
np,
pproc,
fptr )
Value:
void(* NSEEL_addfunc_ret_type)(const char *name, int np, int ret_type, NSEEL_PPPROC pproc, void *fptr, eel_function_table *destination)
Definition eel_import.h:5

◆ NSEEL_addfunc_retptr

#define NSEEL_addfunc_retptr ( name,
np,
pproc,
fptr )
Value:

◆ NSEEL_addfunc_retval

#define NSEEL_addfunc_retval ( name,
np,
pproc,
fptr )
Value:

◆ NSEEL_addfunc_varparm

#define NSEEL_addfunc_varparm ( name,
min_np,
pproc,
fptr )

◆ NSEEL_addfunction

#define NSEEL_addfunction ( name,
nparms,
code,
len )
Value:
NSEEL_addfunctionex((name),(nparms),(code),(len),0,0)
#define NSEEL_addfunctionex(name, nparms, code, len, pproc, fptr)
Definition ns-eel.h:92
Definition inftrees.h:27

◆ NSEEL_addfunctionex

#define NSEEL_addfunctionex ( name,
nparms,
code,
len,
pproc,
fptr )
Value:
NSEEL_addfunctionex2((name),(nparms),(code),(len),(pproc),(fptr),0, NSEEL_ADDFUNC_DESTINATION)
void NSEEL_addfunctionex2(const char *name, int nparms, char *code_startaddr, int code_len, NSEEL_PPPROC pproc, void *fptr, void *fptr2, eel_function_table *destination)
Definition nseel-compiler.c:755

◆ NSEEL_CGEN_CALL

#define NSEEL_CGEN_CALL

◆ NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS

#define NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS   1

◆ NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS_RESET

#define NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS_RESET   2

◆ NSEEL_CODE_COMPILE_FLAG_NOFPSTATE

#define NSEEL_CODE_COMPILE_FLAG_NOFPSTATE   4

◆ NSEEL_CODE_COMPILE_FLAG_ONLY_BUILTIN_FUNCTIONS

#define NSEEL_CODE_COMPILE_FLAG_ONLY_BUILTIN_FUNCTIONS   8

◆ NSEEL_LOOPFUNC_SUPPORT_MAXLEN

#define NSEEL_LOOPFUNC_SUPPORT_MAXLEN   1048576

◆ NSEEL_MAX_EELFUNC_PARAMETERS

#define NSEEL_MAX_EELFUNC_PARAMETERS   40

◆ NSEEL_MAX_FUNCSIG_NAME

#define NSEEL_MAX_FUNCSIG_NAME   2048

◆ NSEEL_MAX_FUNCTION_SIZE_FOR_INLINE

#define NSEEL_MAX_FUNCTION_SIZE_FOR_INLINE   2048

◆ NSEEL_MAX_VARIABLE_NAMELEN

#define NSEEL_MAX_VARIABLE_NAMELEN   128

◆ NSEEL_RAM_BLOCKS

#define NSEEL_RAM_BLOCKS   (1 << NSEEL_RAM_BLOCKS_LOG2)

◆ NSEEL_RAM_BLOCKS_DEFAULTMAX

#define NSEEL_RAM_BLOCKS_DEFAULTMAX   128

◆ NSEEL_RAM_BLOCKS_LOG2

#define NSEEL_RAM_BLOCKS_LOG2   9

◆ NSEEL_RAM_ITEMSPERBLOCK

#define NSEEL_RAM_ITEMSPERBLOCK   (1<<NSEEL_RAM_ITEMSPERBLOCK_LOG2)

◆ NSEEL_RAM_ITEMSPERBLOCK_LOG2

#define NSEEL_RAM_ITEMSPERBLOCK_LOG2   16

◆ NSEEL_SHARED_GRAM_SIZE

#define NSEEL_SHARED_GRAM_SIZE   (1<<20)

◆ NSEEL_STACK_SIZE

#define NSEEL_STACK_SIZE   4096

◆ NSEEL_SUPER_MINIMAL_LEXER

#define NSEEL_SUPER_MINIMAL_LEXER

Typedef Documentation

◆ EEL_F_PTR

typedef double* EEL_F_PTR

◆ NSEEL_CODEHANDLE

◆ NSEEL_PPPROC

typedef void *(* NSEEL_PPPROC) (void *data, int data_size, struct _compileContext *userfunc_data)

◆ NSEEL_VMCTX

typedef void* NSEEL_VMCTX

◆ WDL_FIXALIGN

typedef double EEL_F WDL_FIXALIGN

Function Documentation

◆ eel_enterfp()

void eel_enterfp ( int s[2])

◆ eel_leavefp()

void eel_leavefp ( int s[2])

◆ NSEEL_addfunc_ret_type()

void NSEEL_addfunc_ret_type ( const char * name,
int np,
int ret_type,
NSEEL_PPPROC pproc,
void * fptr,
eel_function_table * destination )

◆ NSEEL_addfunc_varparm_ctxptr()

void NSEEL_addfunc_varparm_ctxptr ( const char * name,
int min_np,
int want_exact,
void * ctxptr,
EEL_F(NSEEL_CGEN_CALL *fptr)(void *, INT_PTR, EEL_F **) ,
eel_function_table * destination )

◆ NSEEL_addfunc_varparm_ctxptr2()

void NSEEL_addfunc_varparm_ctxptr2 ( const char * name,
int min_np,
int want_exact,
NSEEL_PPPROC pproc,
void * ctx,
EEL_F(NSEEL_CGEN_CALL *fptr)(void *, void *, INT_PTR, EEL_F **) ,
eel_function_table * destination )

◆ NSEEL_addfunc_varparm_ex()

void NSEEL_addfunc_varparm_ex ( const char * name,
int min_np,
int want_exact,
NSEEL_PPPROC pproc,
EEL_F(NSEEL_CGEN_CALL *fptr)(void *, INT_PTR, EEL_F **) ,
eel_function_table * destination )

◆ NSEEL_addfunctionex2()

void NSEEL_addfunctionex2 ( const char * name,
int nparms,
char * code_startaddr,
int code_len,
NSEEL_PPPROC pproc,
void * fptr,
void * fptr2,
eel_function_table * destination )

◆ NSEEL_code_compile()

NSEEL_CODEHANDLE NSEEL_code_compile ( NSEEL_VMCTX ctx,
const char * code,
int lineoffs )

◆ NSEEL_code_compile_ex()

NSEEL_CODEHANDLE NSEEL_code_compile_ex ( NSEEL_VMCTX ctx,
const char * code,
int lineoffs,
int flags )

◆ NSEEL_code_execute()

void NSEEL_code_execute ( NSEEL_CODEHANDLE code)

◆ NSEEL_code_free()

void NSEEL_code_free ( NSEEL_CODEHANDLE code)

◆ NSEEL_code_getcodeerror()

char * NSEEL_code_getcodeerror ( NSEEL_VMCTX ctx)

◆ NSEEL_code_geterror_flag()

int NSEEL_code_geterror_flag ( NSEEL_VMCTX ctx)

◆ NSEEL_code_getstats()

int * NSEEL_code_getstats ( NSEEL_CODEHANDLE code)

◆ NSEEL_getstats()

int * NSEEL_getstats ( )

◆ NSEEL_HOSTSTUB_EnterMutex()

void NSEEL_HOSTSTUB_EnterMutex ( )

◆ NSEEL_HOSTSTUB_LeaveMutex()

void NSEEL_HOSTSTUB_LeaveMutex ( )

◆ NSEEL_init()

int NSEEL_init ( )

◆ NSEEL_quit()

void NSEEL_quit ( )

◆ nseel_stringsegments_tobuf()

int nseel_stringsegments_tobuf ( char * bufOut,
int bufout_sz,
struct eelStringSegmentRec * list )

◆ NSEEL_VM_alloc()

NSEEL_VMCTX NSEEL_VM_alloc ( )

◆ NSEEL_VM_clear_var_refcnts()

void NSEEL_VM_clear_var_refcnts ( NSEEL_VMCTX _ctx)

◆ NSEEL_VM_enumallvars()

void NSEEL_VM_enumallvars ( NSEEL_VMCTX ctx,
int(* func )(const char *name, EEL_F *val, void *ctx),
void * userctx )

◆ NSEEL_VM_free()

void NSEEL_VM_free ( NSEEL_VMCTX ctx)

◆ NSEEL_VM_FreeGRAM()

void NSEEL_VM_FreeGRAM ( void ** ufd)

◆ NSEEL_VM_freeRAM()

void NSEEL_VM_freeRAM ( NSEEL_VMCTX ctx)

◆ NSEEL_VM_freeRAMIfCodeRequested()

void NSEEL_VM_freeRAMIfCodeRequested ( NSEEL_VMCTX ctx)

◆ NSEEL_VM_get_var_refcnt()

int NSEEL_VM_get_var_refcnt ( NSEEL_VMCTX _ctx,
const char * name )

◆ NSEEL_VM_getramptr()

EEL_F * NSEEL_VM_getramptr ( NSEEL_VMCTX ctx,
unsigned int offs,
int * validCount )

◆ NSEEL_VM_getramptr_noalloc()

EEL_F * NSEEL_VM_getramptr_noalloc ( NSEEL_VMCTX ctx,
unsigned int offs,
int * validCount )

◆ NSEEL_VM_getvar()

EEL_F * NSEEL_VM_getvar ( NSEEL_VMCTX ctx,
const char * name )

◆ NSEEL_VM_regvar()

EEL_F * NSEEL_VM_regvar ( NSEEL_VMCTX ctx,
const char * name )

◆ NSEEL_VM_remove_all_nonreg_vars()

void NSEEL_VM_remove_all_nonreg_vars ( NSEEL_VMCTX _ctx)

◆ NSEEL_VM_remove_unused_vars()

void NSEEL_VM_remove_unused_vars ( NSEEL_VMCTX _ctx)

◆ NSEEL_VM_set_var_resolver()

void NSEEL_VM_set_var_resolver ( NSEEL_VMCTX ctx,
EEL_F *(* res )(void *userctx, const char *name),
void * userctx )

◆ NSEEL_VM_SetCustomFuncThis()

void NSEEL_VM_SetCustomFuncThis ( NSEEL_VMCTX ctx,
void * thisptr )

◆ NSEEL_VM_SetFunctionTable()

void NSEEL_VM_SetFunctionTable ( NSEEL_VMCTX _ctx,
eel_function_table * tab )

◆ NSEEL_VM_SetFunctionValidator()

void NSEEL_VM_SetFunctionValidator ( NSEEL_VMCTX _ctx,
const char *(* validateFunc )(const char *fn_name, void *user),
void * user )

◆ NSEEL_VM_SetGRAM()

void NSEEL_VM_SetGRAM ( NSEEL_VMCTX ctx,
void ** gram )

◆ NSEEL_VM_setramsize()

int NSEEL_VM_setramsize ( NSEEL_VMCTX ctx,
int maxent )

◆ NSEEL_VM_SetStringFunc()

void NSEEL_VM_SetStringFunc ( NSEEL_VMCTX ctx,
EEL_F(* onString )(void *caller_this, struct eelStringSegmentRec *list),
EEL_F(* onNamedString )(void *caller_this, const char *name) )

◆ NSEEL_VM_wantfreeRAM()

int NSEEL_VM_wantfreeRAM ( NSEEL_VMCTX ctx)

Variable Documentation

◆ nseel_gmem_calloc

void *(* nseel_gmem_calloc) (size_t, size_t) ( size_t a,
size_t b )
extern

◆ NSEEL_RAM_limitmem

unsigned int NSEEL_RAM_limitmem
extern

◆ NSEEL_RAM_memused

unsigned int NSEEL_RAM_memused
extern

◆ NSEEL_RAM_memused_errors

int NSEEL_RAM_memused_errors
extern