예제 #1
0
파일: Expr.cpp 프로젝트: FreeAlex/Halide
    std::vector<int> Expr::footprint(const Func& f) const {
        MLVal fp = footprintOfFuncInExpr(f.name(), contents->node);
        assert(!listEmpty(fp));

        std::vector<int> footprint;
        for (; !listEmpty(fp); fp = listTail(fp)) {          
            footprint.push_back(int(listHead(fp)));
        }

        return footprint;
    }
예제 #2
0
파일: main.c 프로젝트: twahlfeld/W4115
int main(int argc, char *argv[]) {
    Page *page = pageFetch("http://www.cs.columbia.edu/~sedwards/");
//    printf("%s\n", page->url);
//    printf("%s\n", page->html);

    NODE * first = pageFind(page, "#titlebar");


    printf("id:  %s\n",elementAttr((Element*)listHead(first), "id"));
    printf("text:  %s\n",elementText((Element*)listHead(first)));
    printf("type:  %s\n\n\n",elementType((Element*)listHead(first)));

    NODE *child_list = elementChildren(page, (Element*)listHead(first));
    Element * e = (Element*)listHead(listTail(child_list));

    printf("text first child:  %s\n",elementText(e));
    printf("type first child:  %s\n",elementType(e));
    printf("id first child:  %s\n",elementAttr(e,"id"));

//
//    NODE * first = listNew();
//    listAddLast(first, "a");
//    listAddLast(first, "b");
//    listAddLast(first, "c");
//    listAddLast(first, "c");
//    listAddLast(first, "d");
//    listAddLast(first, "e");
//    listPrint(first);
//    printf("\n");
//    list_remove(first,3);
//
//    listPrint(first);
//    printf("\n");
//
//    NODE * newFirst = listNew();
//    NODE * f = listAddLast(newFirst, "f");
//    listAddAfter(f,"G");
//    listAddLast(newFirst, "h");
//    listConcate(first,newFirst);
//    listPrint(first);
//    printf("\n");
//    listSet(f,"F Modified");
//    listPrint(first);
//
//
//    printf("should be a: %s\n",listHead(first));
//    printf("should be b: %s\n",listHead(listTail(first)));
    return 0;
}
예제 #3
0
int main(int argc, char *argv[])
{
    List list;
    Data *data[6];

    int i, errors = 0;

    for (i = 0; i < 6; i++) {
        data[i] = calloc(1, sizeof(Data));
    }

    listInitialize(&list);

    TEST_INT(listLength(&list), 0);
    TEST_INT(listIsEmpty(&list),  TRUE);

    listAppendTail(&list, data[0]);
    listAppendTail(&list, data[1]);
    listAppendTail(&list, data[2]);
    listAppendTail(&list, data[3]);

    TEST_INT(listLength(&list), 4);
    TEST_INT(listIsEmpty(&list),  FALSE);

    TEST_PTR(listHead(&list), data[0]);
    TEST_PTR(listTail(&list), data[3]);

    TEST_PTR(listNext(data[0]), data[1]);
    TEST_PTR(listNext(data[1]), data[2]);
    TEST_PTR(listNext(data[2]), data[3]);
    TEST_PTR(listNext(data[3]), NULL);

    TEST_PTR(listPrev(data[3]), data[2]);
    TEST_PTR(listPrev(data[2]), data[1]);
    TEST_PTR(listPrev(data[1]), data[0]);
    TEST_PTR(listPrev(data[0]), NULL);

    TEST_PTR(listContaining(data[0]), &list);
    TEST_PTR(listContaining(data[1]), &list);
    TEST_PTR(listContaining(data[2]), &list);
    TEST_PTR(listContaining(data[3]), &list);

    listRemove(&list, data[0]);
    listRemove(&list, data[1]);
    listRemove(&list, data[2]);
    listRemove(&list, data[3]);

    TEST_INT(listLength(&list), 0);
    TEST_INT(listIsEmpty(&list),  TRUE);

    TEST_PTR(listContaining(data[0]), NULL);
    TEST_PTR(listContaining(data[1]), NULL);
    TEST_PTR(listContaining(data[2]), NULL);
    TEST_PTR(listContaining(data[3]), NULL);

    listInsertHead(&list, data[3]);
    listInsertHead(&list, data[2]);
    listInsertHead(&list, data[1]);
    listInsertHead(&list, data[0]);

    TEST_INT(listLength(&list), 4);
    TEST_INT(listIsEmpty(&list),  FALSE);

    TEST_PTR(listHead(&list), data[0]);
    TEST_PTR(listTail(&list), data[3]);

    TEST_PTR(listNext(data[0]), data[1]);
    TEST_PTR(listNext(data[1]), data[2]);
    TEST_PTR(listNext(data[2]), data[3]);
    TEST_PTR(listNext(data[3]), NULL);

    TEST_PTR(listPrev(data[3]), data[2]);
    TEST_PTR(listPrev(data[2]), data[1]);
    TEST_PTR(listPrev(data[1]), data[0]);
    TEST_PTR(listPrev(data[0]), NULL);

    TEST_PTR(listRemoveHead(&list), data[0]);
    TEST_PTR(listRemoveHead(&list), data[1]);
    TEST_PTR(listRemoveTail(&list), data[3]);
    TEST_PTR(listRemoveTail(&list), data[2]);

    TEST_INT(listLength(&list), 0);
    TEST_INT(listIsEmpty(&list),  TRUE);

    listAppendTail(&list, data[0]);
    listAppendTail(&list, data[3]);
    listAppend(&list, data[1], data[0]);
    listInsert(&list, data[2], data[3]);

    TEST_PTR(listRemoveHead(&list), data[0]);
    TEST_PTR(listRemoveHead(&list), data[1]);
    TEST_PTR(listRemoveTail(&list), data[3]);
    TEST_PTR(listRemoveTail(&list), data[2]);

    data[0]->i = 3;
    data[1]->i = 4;
    data[2]->i = 5;
    data[3]->i = 1;
    data[4]->i = 2;
    data[5]->i = 3;

    listAppendTail(&list, data[0]);
    listAppendTail(&list, data[1]);
    listAppendTail(&list, data[2]);
    listAppendTail(&list, data[3]);
    listAppendTail(&list, data[4]);
    listAppendTail(&list, data[5]);

    listSort(&list, cmp);

    TEST_PTR(listRemoveHead(&list), data[3]);
    TEST_PTR(listRemoveHead(&list), data[4]);
    TEST_PTR(listRemoveHead(&list), data[0]);
    TEST_PTR(listRemoveHead(&list), data[5]);
    TEST_PTR(listRemoveHead(&list), data[1]);
    TEST_PTR(listRemoveHead(&list), data[2]);

    exit(errors);
}