Small, Fast S-Expression Library
faststack.h
Go to the documentation of this file.
1 
42 #ifndef __FASTSTACK_H__
43 #define __FASTSTACK_H__
44 
50 typedef struct stack_level {
57  struct stack_level *above;
58 
63  struct stack_level *below;
64 
69  void *data;
71 
78 typedef struct stack_wrapper {
83 
88 
92  int height;
94 
97 /* this is for C++ */
98 #ifdef __cplusplus
99 extern "C" {
100 #endif
101 
107 
116 
124  faststack_t *push(faststack_t *cur_stack, void *data);
125 
135 
136 /* this is for C++ */
137 #ifdef __cplusplus
138 }
139 #endif
140 
144 #define top_data(s) (s->top->data)
145 
150 #define empty_stack(s) (s->top == NULL)
151 
152 #endif /* __FASTSTACK_H__ */
struct stack_level stack_lvl_t
faststack_t * push(faststack_t *cur_stack, void *data)
void destroy_stack(faststack_t *s)
stack_lvl_t * pop(faststack_t *s)
faststack_t * make_stack()
struct stack_wrapper faststack_t
Definition: faststack.h:50
struct stack_level * above
Definition: faststack.h:57
struct stack_level * below
Definition: faststack.h:63
void * data
Definition: faststack.h:69
Definition: faststack.h:78
stack_lvl_t * top
Definition: faststack.h:82
int height
Definition: faststack.h:92
stack_lvl_t * bottom
Definition: faststack.h:87