Lines Matching refs:stack

21 do_push (List *stack, void *elem, int isstring)  in do_push()  argument
30 addnode(stack, p); in do_push()
36 push (List *stack, void *elem) in push() argument
38 do_push (stack, elem, 0); in push()
44 push_string (List *stack, char *elem) in push_string() argument
46 do_push (stack, elem, 1); in push_string()
52 do_pop (List *stack, int isstring) in do_pop() argument
56 if (isempty (stack)) return NULL; in do_pop()
60 elem = stack->list->prev->key; in do_pop()
61 stack->list->prev->key = NULL; in do_pop()
65 elem = stack->list->prev->data; in do_pop()
66 stack->list->prev->data = NULL; in do_pop()
69 delnode (stack->list->prev); in do_pop()
76 pop (List *stack) in pop() argument
78 return do_pop (stack, 0); in pop()
84 pop_string (List *stack) in pop_string() argument
86 return do_pop (stack, 1); in pop_string()
92 do_unshift (List *stack, void *elem, int isstring) in do_unshift() argument
101 addnode_at_front(stack, p); in do_unshift()
107 unshift (List *stack, void *elem) in unshift() argument
109 do_unshift (stack, elem, 0); in unshift()
115 unshift_string (List *stack, char *elem) in unshift_string() argument
117 do_unshift (stack, elem, 1); in unshift_string()
123 do_shift (List *stack, int isstring) in do_shift() argument
127 if (isempty (stack)) return NULL; in do_shift()
131 elem = stack->list->next->key; in do_shift()
132 stack->list->next->key = NULL; in do_shift()
136 elem = stack->list->next->data; in do_shift()
137 stack->list->next->data = NULL; in do_shift()
139 delnode (stack->list->next); in do_shift()
146 shift (List *stack) in shift() argument
148 return do_shift (stack, 0); in shift()
154 shift_string (List *stack) in shift_string() argument
156 return do_shift (stack, 1); in shift_string()
162 isempty (List *stack) in isempty() argument
164 if (stack->list == stack->list->next) in isempty()