21 #ifdef DtUSE_UTILITIES_NAMESPACE
22 namespace DtUSE_UTILITIES_NAMESPACE
26 #define DtlObjDebug(s) do { if (DtLispDebugOn) DtlInfo s; } while (0)
28 #define DtlError(string, obj) do { if (DtNotifyLevel >= DtNlFatal) \
29 fprintf(stderr, "Lisp Error: %s", string), DtcErrPrint(obj); } while (0)
31 #define DtlWarn(string, obj) do { if (DtNotifyLevel >= DtNlWarn) \
32 fprintf(stderr, "Lisp Warning: %s", string), DtcErrPrint(obj); } while (0)
34 #define DtlInfo(string, obj) do { if (DtNotifyLevel >= DtNlInfo) \
35 printf(string), DtcPrint(obj); } while (0)
84 operator void*()
const;
85 DtlObj* operator -> ()
const;
86 DtlObj& operator * ()
const;
130 void setPname(
const char*);
136 void setFlonum(
double);
139 void setString(
const char*);
145 void setFcnPname(
const char*);
177 void DtcObjFprint(FILE* s);
178 void DtcPrintList(FILE* s);
230 const char *filename,
const DtlObjPtr& env,
DtList* allParams,
int complain=1);
234 const char *lispLine,
const DtlObjPtr& env,
DtList* allParams,
int complain = 1);
262 char *lisp_var_name,
int *cvar,
const DtlObjPtr& env);
264 char *lisp_var_name,
double *cvar,
const DtlObjPtr& env);
266 char *lisp_var_name,
char** cvar,
const DtlObjPtr& env);
303 #define DtcSet1Env DtcSet
441 #define DtcREGISTER(var, env, params) DtcRegister(#var, &var, env, params)
442 #define DtcDEFINE(type, var, dflt) type var = dflt; DtcREGISTER(var)
445 const char *name,
float *addr,
const DtlObjPtr& env,
DtList* allParams);
447 const char *name,
double *addr,
const DtlObjPtr& env,
DtList* allParams);
451 const char *name,
unsigned long *addr,
const DtlObjPtr& env,
DtList* allParams);
453 const char *name,
char **addr,
const DtlObjPtr& env,
DtList* allParams);
457 const char *name,
long *addr,
const DtlObjPtr& env,
DtList* allParams);
459 const char *name,
short *addr,
const DtlObjPtr& env,
DtList* allParams);
461 const char *name,
unsigned short *addr,
const DtlObjPtr& env,
DtList* allParams);
462 #if DT_HAVE_64BIT_LONGS
464 const char *name,
unsigned int *addr,
const DtlObjPtr& env,
DtList* allParams);
498 #ifdef DtUSE_UTILITIES_NAMESPACE
DT_DLL_MTL DtlObjPtr DtlAnd(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL void DtcEmptyParamList(DtList *allParams)
Remove any DtcParams that have been added to allParams.
DT_DLL_MTL int DtcSetIfBoundp(char *lisp_var_name, int *cvar, const DtlObjPtr &env)
To make setting C++ variables easier (works by side-effect).
DT_DLL_MTL char * DtMtlReadEscapeChar
set this value to something other than 0 to allow escape characters
DT_DLL_MTL int DtcStringp(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlEqualSign(const DtlObjPtr &args, const DtlObjPtr &env)
const bool operator==(const DtU128 &lhs, const DtU128 &rhs)
DT_DLL_MTL DtlObjPtr DtcAssq(const DtlObjPtr &thing, const DtlObjPtr &alist)
This file contains the declaration of DtMutex.
char gn
Definition: mtl.h:183
DT_DLL_MTL DtlObjPtr DtlLet(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlQuote(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlIf(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlLocativep(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlMultiply(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL int DtcBoundp(const DtlObjPtr &sym, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlFormat(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcCadddddr(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlListp(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlEq(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlStringToNumber(const DtlObjPtr &args, const DtlObjPtr &env)
Conversion functions.
This file contains the declaration of DtList and DtListItem.
DtlTagType tg
Definition: mtl.h:181
Contains the DtString class declaration.
DT_DLL_MTL DtlObjPtr DtlCond(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcAssv(const DtlObjPtr &thing, const DtlObjPtr &alist)
DT_DLL_MTL DtlObjPtr DtlFrameBound(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL int DtcRegister(const char *name, float *addr, const DtlObjPtr &env, DtList *allParams)
DT_DLL_MTL int DtcListp(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlEqual(const DtlObjPtr &args, const DtlObjPtr &env)
DtlFcn DtlCompiledCFcnWithEnv
Definition: mtl.h:103
DT_DLL_MTL DtlObjPtr DtcAssoc(const DtlObjPtr &thing, const DtlObjPtr &alist)
char * symbname
Definition: mtl.h:193
DT_DLL_MTL DtlObjPtr DtcLoadLispExpr(const char *lispLine, const DtlObjPtr &env, DtList *allParams, int complain=1)
DT_DLL_MTL DtlObjPtr DtlDescribe(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlTheFrame(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlEnvDump(const DtlObjPtr &args, const DtlObjPtr &env)
DtlObj * ptr
Definition: mtl.h:99
DT_DLL_MTL DtlObjPtr DtcInternSpecialForm(const char *name, DtlCompiledCFcnWithEnv fcn, const DtlObjPtr &env)
This function installs LISP "special forms" such as setq and quote.
DT_DLL_MTL DtlObjPtr DtlSetq(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlAssv(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL int DtcNull(const DtlObjPtr &c)
DtlCompiledCFcnWithEnv fcn
Definition: mtl.h:201
DT_DLL_MTL DtlObjPtr DtcErrPrint(const DtlObjPtr &c)
Our own equivalent of DtcPrint for stderr.
DT_DLL_MTL void DecObjRefCnt(DtlObj *obj)
DT_DLL_MTL DtlObjPtr DtcCons(const DtlObjPtr &car, const DtlObjPtr &cdr)
DT_DLL_MTL DtlObjPtr DtcCar(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlMinus(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlList(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcPtrToNode(DtlTagType t, DtlPtrToNode ptr)
Functions in vlPrint.h provide an error and print facility for vrlink.
DT_DLL_MTL DtlObjPtr DtcRead(DtlInputStream *f, const DtlObjPtr &env)
class DT_DLL_MTL DtlObj
Definition: mtl.h:39
DtlTagType
LCU pg. 173.
Definition: mtl.h:55
DT_DLL_MTL DtlObjPtr DtlLess(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlStringAppend(const DtlObjPtr &args, const DtlObjPtr &env)
void* ptr (to imitate locatives).
Definition: mtl.h:106
int refcnt()
Inlines.
Definition: mtl.h:483
DT_DLL_MTL DtlObjPtr DtcCdr(const DtlObjPtr &c)
DtlPtrToNode ptr
Definition: mtl.h:197
DT_DLL_MTL DtlObjPtr DtlFrameParent(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcCadddr(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlLambda(const DtlObjPtr &args, const DtlObjPtr &env)
This is where symbol_entries are stored.
Definition: mtlenv.h:30
DtlObjPtr(* DtlFcn)(const DtlObjPtr &args, const DtlObjPtr &env)
Definition: mtl.h:102
DT_DLL_MTL DtlObjPtr DtcCaddddr(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtlOr(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlLogIOr(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcIntern(const char *name, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcEval(const DtlObjPtr &, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlMem(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlNewFrame(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlPutenv(const DtlObjPtr &args, const DtlObjPtr &env)
void * DtlPtrToNode
Definition: mtl.h:104
DT_DLL_MTL DtlObjPtr DtlAppend(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcReverse(const DtlObjPtr &)
DT_DLL_MTL DtlObjPtr DtlAssoc(const DtlObjPtr &args, const DtlObjPtr &env)
int fixnum
Definition: mtl.h:194
DT_DLL_MTL DtlObjPtr DtlLessEqual(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcCaddddddr(const DtlObjPtr &c)
DT_DLL_MTL int DtcLocativep(const DtlObjPtr &c)
DT_DLL_MTL void DtlClearLoadPaths()
DT_DLL_MTL DtlObjPtr DtcMakeSymbol(const char *pname)
DtList is deprecated, please use std::list<T>.
Definition: vlList.h:71
DT_DLL_MTL void IncObjRefCnt(DtlObj *obj)
Memory management (these functions use DtlObj*'s, but you shouldn't!)
DT_DLL_MTL int DtcNumberp(const DtlObjPtr &c)
DT_DLL_MTL int DtcStringEqual(const DtlObjPtr &s1, const DtlObjPtr &s2)
DT_DLL_MTL DtlObjPtr DtlSequence(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL void DtcCToLisp(DtList *allParams)
Sets the value all registered variables in lisp from the registered C address.
DT_DLL_MTL DtlObjPtr DtlAssq(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlAbort(const DtlObjPtr &args, const DtlObjPtr &env)
Standard LISP subrs with lambda-style args for calling from the evaluator.
DT_DLL_MTL DtlObjPtr DtlLength(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlNotOrNull(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlLoad(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlTerpri(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlSin(const DtlObjPtr &args, const DtlObjPtr &env)
DtlObjPtr ptr2
Definition: mtl.h:188
double flonum
Definition: mtl.h:195
DtlObjPtr ptr1
Used to track doubly-deleted objects.
Definition: mtl.h:187
void setRefcnt(int)
Definition: mtl.h:488
DT_DLL_MTL DtlObjPtr DtlLCdr(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL int DtcEqualSign(const DtlObjPtr &c1, const DtlObjPtr &c2)
~DtlObjPtr()
Definition: mtl.h:493
DT_DLL_MTL DtlObjPtr DtcSet(const DtlObjPtr &c, const DtlObjPtr &value, const DtlObjPtr &env)
DT_DLL_MTL int DtcEqual(const DtlObjPtr &c1, const DtlObjPtr &c2)
DT_DLL_MTL DtlObjPtr DtlPopen(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlPlus(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlGreaterEqual(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlDivide(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlPrintRegistered(const DtlObjPtr &, const DtlObjPtr &env)
Some extensions.
This file declares DtlInputStream, DtlFileInputStream.
DT_DLL_MTL void DtcLispToC(DtList *allParams)
Evaluates every registered variable and copies the value to the registered C address.
DT_DLL_MTL DtlObjPtr DtcCBooleanToLispBoolean(int i)
Standard LISP functions with C-style args For manipulating DtlObj's from C programs.
DT_DLL_MTL DtlObjPtr DtcPrint(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtcCaddr(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtcLoadLispFile(const char *filename, const DtlObjPtr &env, DtList *allParams, int complain=1)
Load a LISP file or expression.
DT_DLL_MTL void DtlAddLoadPath(const char *path)
When a load command is used in an mtl file only full paths and paths relative to the working director...
DT_DLL_MTL DtlObjPtr DtlLCons(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlGreater(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlEval(const DtlObjPtr &args, const DtlObjPtr &env)
class DT_DLL_MTL DtlObjPtr
Definition: mtl.h:40
DT_DLL_MTL DtlObjPtr DtcCadr(const DtlObjPtr &c)
DtlObjPtr ptr3
Definition: mtl.h:189
DT_DLL_MTL DtlObjPtr DtlPathCross(const DtlObjPtr &, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcInternCompiledC(const char *name, DtlCompiledCFcnWithEnv fcn, const DtlObjPtr &env)
This function installs your lambda-arg-style function with the given name so it can be called from th...
DT_DLL_MTL DtlObjPtr DtlGetenv(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcInternPtr(const char *name, const DtlObjPtr &value, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcAppend(const DtlObjPtr &, const DtlObjPtr &)
DT_DLL_MTL DtlObjPtr DtlSystem(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlReverse(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlNumberToString(const DtlObjPtr &args, const DtlObjPtr &env)
DtlHashTable * bindings
DtlObjPtr parent; int external_refcnt;.
Definition: mtl.h:219
class DT_DLL_MTL DtcParam
Definition: mtl.h:42
DT_DLL_MTL DtlObjPtr DtlNumberp(const DtlObjPtr &args, const DtlObjPtr &env)
#define DT_DLL_MTL
Definition: vlMachineTypes.h:106
DT_DLL_MTL DtlObjPtr DtlStringp(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlFrameBindings(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtcSymeval(const DtlObjPtr &c, const DtlObjPtr &env)
DtList * allParams
Definition: mtl.h:220
DT_DLL_MTL DtlObjPtr DtlLCar(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlExit(const DtlObjPtr &args, const DtlObjPtr &env)
char * pname
Definition: mtl.h:200
DT_DLL_MTL int EnvLocalProcRefcnt(DtlObj *env)
DT_DLL_MTL DtlObjPtr DtlAbs(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL int DtcEq(const DtlObjPtr &a, const DtlObjPtr &b)
Instances of DtString are used to represent strings.
Definition: vlString.h:36
DT_DLL_MTL int DtcLength(const DtlObjPtr &c)
DT_DLL_MTL DtlObjPtr DtcLoadLispFileOrExpr(char *arg, const DtlObjPtr &env, DtList *allParams, int complain=1)
DT_DLL_MTL DtlObjPtr DtlCos(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL DtlObjPtr DtlStringEqual(const DtlObjPtr &args, const DtlObjPtr &env)
This file contains typedefs for machine dependant types.
DT_DLL_MTL DtlObjPtr DtlSetqBoundVariable(const DtlObjPtr &args, const DtlObjPtr &env)
DT_DLL_MTL void DtcGlobalEnvInit(DtlObjPtr &env)
Defines global symbols, special functions, and standard lisp function in the environment.
DT_DLL_MTL DtlObjPtr DtcHaltAndCatchFire(const char *diagnostic)
Error handling. Throws a DtException with a brief description.
int rcnt
Definition: mtl.h:182
DT_DLL_MTL DtlObjPtr DtlPrin1(const DtlObjPtr &args, const DtlObjPtr &env)
char * s
Definition: mtl.h:196