void b_push(struct stack *balancer, struct node *n, int thresh) { struct stack *s = b_current_stack(balancer); if (s == NULL || s->n_items >= thresh) { s = stack_new(); s_push(balancer,node_new(s)); } s_push(s,n); }
void copy_recursive() { struct Stack* paths; DIR *dir; struct dirent *entry; const String d_name; int dir_count; dir_count = 0; paths = malloc(sizeof (struct Stack)); s_create(paths); s_push(basename(src), paths); strcpy(src, dirname(src)); strcpy(dest, dirname(dest)); printf("Source: %s\nTarget: %s\n\n", src, dest); while(!s_isEmpty(paths)) { strcat(src, "/"); strcat(src, s_peek(paths)); s_pop(paths); if((dir = opendir(src))) { while((entry = readdir(dir))) { d_name = entry->d_name; if(entry->d_type & DT_DIR) { printf("Found FOLDER: %s\n", d_name); if (strcmp(d_name, "..") != 0 && strcmp(d_name, ".") != 0) { s_push(d_name, paths); dir_count++; } } else if (entry->d_type & DT_REG) { printf("Found FILE: %s\n", d_name); } } if (!closedir(dir)) { printf("Time to copy\n"); } else { fprintf(stderr, "Could not close '%s': %s\n", src, strerror(errno)); exit(EXIT_FAILURE); } } else { fprintf(stderr, "Cannot open %s: %s\n", src, strerror(errno)); exit(EXIT_FAILURE); } if(dir_count) { strcpy(src, dirname(src)); dir_count--; } } }
parser_state * PyParser_New(grammar *g, int start) { parser_state *ps; DBP("Attempting to create new PyParser\n"); if (!g->g_accel) PyGrammar_AddAccelerators(g); DBP("Added grammar accelerators\n"); ps = (parser_state *)PyMem_MALLOC(sizeof(parser_state)); DBP("Created parser state\n"); if (ps == NULL) return NULL; ps->p_grammar = g; #ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD ps->p_flags = 0; #endif ps->p_tree = PyNode_New(start); if (ps->p_tree == NULL) { PyMem_FREE(ps); return NULL; } s_reset(&ps->p_stack); (void) s_push(&ps->p_stack, PyGrammar_FindDFA(g, start), ps->p_tree); DBP("Created PyParser!!\n"); return ps; }
static int push(stack *s, int type, dfa *d, int newstate, int lineno, int col_offset) { int err; node *n; n = s->s_top->s_parent; assert(!s_empty(s)); err = PyNode_AddChild(n, type, (char *)NULL, lineno, col_offset); if (err) return err; s->s_top->s_state = newstate; return s_push(s, d, CHILD(n, NCH(n)-1)); }
int main(void) { int i, val; for (i = 0; i < STACK_LIMIT; i+=2) s_push(i); for (i = 0; i < STACK_LIMIT; i++) { if(s_pop(&val) == 0) printf("POP: %d\n", val); } return 0; }
int s_onc_push_random_bytes(uint size) { uint i = 0; unsigned char* buffer = NULL; buffer = malloc(size + (4 - (size % 4))); if (buffer == NULL) { return 0; } for (i = 0; i < size; i += 4) { *(uint*)(buffer + i) = (uint)rand(); } s_push(buffer, size); free(buffer); return 1; }
stack_t * get_tracks(char * page) { stack_t * result = NULL; while (page[0] != '\0') { if (is_track(page)) { int length = get_line_length(page); s_push(&result, extract_next_substring(page, length)); page += length; } else { page++; } } return result; }
parser_state * PyParser_New(grammar *g, int start) { parser_state *ps; if (!g->g_accel) PyGrammar_AddAccelerators(g); ps = PyMem_NEW(parser_state, 1); if (ps == NULL) return NULL; ps->p_grammar = g; ps->p_generators = 0; ps->p_tree = PyNode_New(start); if (ps->p_tree == NULL) { PyMem_DEL(ps); return NULL; } s_reset(&ps->p_stack); (void) s_push(&ps->p_stack, PyGrammar_FindDFA(g, start), ps->p_tree); return ps; }
parser_state * Ta27Parser_New(grammar *g, int start) { parser_state *ps; if (!g->g_accel) Ta27Grammar_AddAccelerators(g); ps = (parser_state *)PyMem_MALLOC(sizeof(parser_state)); if (ps == NULL) return NULL; ps->p_grammar = g; #ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD ps->p_flags = 0; #endif ps->p_tree = Ta27Node_New(start); if (ps->p_tree == NULL) { PyMem_FREE(ps); return NULL; } s_reset(&ps->p_stack); (void) s_push(&ps->p_stack, Ta27Grammar_FindDFA(g, start), ps->p_tree); return ps; }