Exemplo n.º 1
0
int main()
{
    trie_node *root = NULL;
    trie_pair *entry;
    root = trie_insert(root, pair_new("dog\0", 2));
    root = trie_insert(root, pair_new("cat\0", 3));
    root = trie_insert(root, pair_new("top\0", 4));
    root = trie_insert(root, pair_new("rat\0", 5));
    trie_show(root, 0);
    entry = trie_search(root, "cat");
    trie_delete(root, "dog");
    entry = trie_search(root, "dog");
}
Exemplo n.º 2
0
void *test(void *data)
{
    int i;
    pair_t pop[POP_SIZE];
    memset(pop, 0, sizeof(pop));
    for (i = 0; i < MUTATE_CNT; ++i) {
        int t = rand() % POP_SIZE;
        switch (rand() % (i > GROW_LIMIT? 5 : 3)) {
        case 0: case 3:
            if (pop[t])
                pop[t] = pop[t]->car;
            break;
        case 1: case 4:
            if (pop[t])
                pop[t] = pop[t]->cdr;
            break;
        case 2:
            pop[t] = pair_new(pop[rand() % POP_SIZE],
                              pop[rand() % POP_SIZE]);
            break;
        }
        if (rand() % 8 == 1)
            pair_check_rec(pop[rand() % POP_SIZE]);
    }
    return data;
}
Exemplo n.º 3
0
static bool seek_ahead(Cmdline *cmdline, QUEUE *stack, Token *token)
{
  Token *next = (Token*)utarray_next(cmdline->tokens, token);
  if (!next || stack_head(stack)->var.v_type != VAR_LIST)
    return false;


  char *str = token_val(next, VAR_STRING);
  if (str && str[0] == ':') {
    push(pair_new(cmdline), stack, token->start);

    Pair *p = stack_head(stack)->var.vval.v_pair;
    if (cmdline->line[token->end+1] == ':')
      p->scope = true;

    p->key.symb = token->symb; //copy variable symb
    return true;
  }

  return false;
}