#include #include #include #include void test_exs() { exString *test= exs_new(NULL); printf("New success\n"); exs_append(test, "Hello"); exs_append(test, " world."); exs_append(test, " Test, "); exs_append(test, "two, three. FOUR FIVE."); exs_reduce(test, 5); EXS(test)[strlen(EXS(test))-5] = 0; exs_recalc(test); exs_append(test, " Scream: "); exs_nappendc(test, 'A', 6); exs_appendf(test, "\nCurrent size: %d -> %d", strlen(EXS(test)), exs_realsize(test)); exs_appendf(test, "AOISDJOAIJS%s", "sokdok"); printf("%s\n", EXS(test)); printf("strlen() %d, ->currentSize %d\n", strlen(EXS(test)), exs_realsize(test)); exs_free(test); } void test_parse() { FILE* fp = fopen("test.se", "rb"); exString *buf = exs_new(NULL); char rb[8]; int rd=0; memset(rb,0,sizeof(rb)); while( (rd=fread(rb, 1, 8, fp))>0) { exs_nappend(buf, rb, rd); } fclose(fp); const char* parse = EXS(buf); //printf("%s\n", parse); //exs_free(buf); list_t* list = se_parse(parse, SETP_DEFAULT); if(!list) { printf("Parse failed.\n"); return; } //printf("Parse okay.\n"); se_print(NULL, list); printf("\n"); // printf("(car list) -> %s\n", (char*)list->ptr); // printf("(cadr list) -> %s\n", (list->cdr?(char*)list->cdr->ptr:"nil")); se_free(list); exs_free(buf); } void test_make() { list_t* l = se_new("Hello", 1); l->cdr = se_new("world", 1); list_t* n = se_parse("(I love you)", SETP_DEFAULT | SET_NO_WRAP); se_last((((l->cdr->cdr = n)->cdr = se_parse("((((very)) much))", SETP_DEFAULT)) ->cdr = se_parse("((\\\n more parsing))", SETP_DEFAULT)) ->cdr = se_parse("((AND EVEN (M (O (R (E))))) !!!)", SETP_DEFAULT))->cdr = se_parse("(test test test!)", SETP_DEFAULT); se_print(NULL, l); printf("\n"); se_free(l); } int main() { // test_exs(); test_parse(); test_make(); return 0; }