You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AQuery/monetdb/msvc/mal_module.h

43 lines
1.5 KiB

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* Copyright 1997 - July 2008 CWI, August 2008 - 2022 MonetDB B.V.
*/
#ifndef _MAL_SCOPE_H_
#define _MAL_SCOPE_H_
#include "mal.h"
/* #define MAL_SCOPE_DEBUG */
#define MAXSCOPE 256
typedef struct SCOPEDEF {
struct SCOPEDEF *link; /* module with same index value */
const char *name; /* index in namespace */
Symbol *space; /* type dispatcher table */
int isAtomModule; /* atom module definition ? */
str help; /* short description of module functionality*/
} *Module, ModuleRecord;
mal_export Module userModule(void);
mal_export Module globalModule(const char *nme);
mal_export Module fixModule(const char *nme);
mal_export Module getModule(const char *nme);
mal_export void freeModule(Module cur);
mal_export void insertSymbol(Module scope, Symbol prg);
mal_export void deleteSymbol(Module scope, Symbol prg);
mal_export Module findModule(Module scope, const char *name);
mal_export Symbol findSymbol(Module usermodule, const char *mod, const char *fcn);
mal_export Symbol findSymbolInModule(Module v, const char *fcn);
mal_export void getModuleList(Module** out, int* length);
mal_export void freeModuleList(Module* list);
mal_export void dumpModules(stream *out);
mal_export BAT *getModules(void);
#define getSymbolIndex(N) (int)(*(unsigned char*)(N))
#endif /* _MAL_SCOPE_H_ */