diff options
author | antirez <antirez> | 2005-04-06 06:35:00 +0000 |
---|---|---|
committer | antirez <antirez> | 2005-04-06 06:35:00 +0000 |
commit | d1212db275f5955af6c236a209306c082a9e2ed9 (patch) | |
tree | e1ed7b972389113330b6cd5ba9d3708960681b85 /jim.h | |
parent | 9154cc90eba5229081a760ba5cbee91d0c373a2a (diff) | |
download | jimtcl-d1212db275f5955af6c236a209306c082a9e2ed9.zip jimtcl-d1212db275f5955af6c236a209306c082a9e2ed9.tar.gz jimtcl-d1212db275f5955af6c236a209306c082a9e2ed9.tar.bz2 |
Generic API implementing the Stack data structure exported to
extensions.
Diffstat (limited to 'jim.h')
-rw-r--r-- | jim.h | 28 |
1 files changed, 27 insertions, 1 deletions
@@ -2,7 +2,7 @@ * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org> * Copyright 2005 Clemens Hintze <c.hintze@gmx.net> * - * $Id: jim.h,v 1.68 2005/04/05 11:51:18 antirez Exp $ + * $Id: jim.h,v 1.69 2005/04/06 06:35:00 antirez Exp $ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -139,6 +139,16 @@ extern "C" { #define JIM_PATH_LEN 1024 /* ----------------------------------------------------------------------------- + * Stack + * ---------------------------------------------------------------------------*/ + +typedef struct Jim_Stack { + int len; + int maxlen; + void **vector; +} Jim_Stack; + +/* ----------------------------------------------------------------------------- * Hash table * ---------------------------------------------------------------------------*/ @@ -546,6 +556,15 @@ JIM_STATIC int JIM_API(Jim_EvalObjVector) (Jim_Interp *interp, int objc, JIM_STATIC int JIM_API(Jim_SubstObj) (Jim_Interp *interp, Jim_Obj *substObjPtr, Jim_Obj **resObjPtrPtr, int flags); +/* stack */ +JIM_STATIC void JIM_API(Jim_InitStack)(Jim_Stack *stack); +JIM_STATIC void JIM_API(Jim_FreeStack)(Jim_Stack *stack); +JIM_STATIC int JIM_API(Jim_StackLen)(Jim_Stack *stack); +JIM_STATIC void JIM_API(Jim_StackPush)(Jim_Stack *stack, void *element); +JIM_STATIC void * JIM_API(Jim_StackPop)(Jim_Stack *stack); +JIM_STATIC void * JIM_API(Jim_StackPeek)(Jim_Stack *stack); +JIM_STATIC void JIM_API(Jim_FreeStackElements)(Jim_Stack *stack, void (*freeFunc)(void *ptr)); + /* hash table */ JIM_STATIC int JIM_API(Jim_InitHashTable) (Jim_HashTable *ht, Jim_HashTableType *type, void *privdata); @@ -872,6 +891,13 @@ static void Jim_InitExtension(Jim_Interp *interp) JIM_GET_API(ScriptIsComplete); JIM_GET_API(PackageProvide); JIM_GET_API(PackageRequire); + JIM_GET_API(InitStack); + JIM_GET_API(FreeStack); + JIM_GET_API(StackLen); + JIM_GET_API(StackPush); + JIM_GET_API(StackPop); + JIM_GET_API(StackPeek); + JIM_GET_API(FreeStackElements); } #ifdef JIM_EMBEDDED |