diff --git a/experimental/precompiler.c b/experimental/precompiler.c index 869a6c5..5dcfb3f 100644 --- a/experimental/precompiler.c +++ b/experimental/precompiler.c @@ -2,6 +2,7 @@ #include #include #include +#include char *trimwhitespace(char *str) { @@ -17,7 +18,7 @@ char *trimwhitespace(char *str) char* concat1(char *s1, char *s2, char *s3, char *s4, char *s5) { - char *result = malloc(strlen(s1) + strlen(s2) + + strlen(s2) + strlen(s4) + strlen(s5) + strlen(s2) + strlen(s3)); + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s2) + strlen(s4) + strlen(s5) + strlen(s2) + strlen(s3)); strcpy(result, s1); strcat(result, s2); strcat(result, s3); @@ -30,7 +31,7 @@ char* concat1(char *s1, char *s2, char *s3, char *s4, char *s5) char* concat2(char *s1, char *s2, char *s3, char *s4) { - char *result = malloc(strlen(s1) + strlen(s2) + + strlen(s3) + strlen(s4)); + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s3) + strlen(s4)); strcpy(result, s1); strcat(result, s2); strcat(result, s3); @@ -40,7 +41,7 @@ char* concat2(char *s1, char *s2, char *s3, char *s4) char* concat3(char *s1, char *s2, char *s3, char *s4, char *s5, char *s6) { - char *result = malloc(strlen(s1) + strlen(s2) + + strlen(s2) + strlen(s4) + strlen(s5) + strlen(s2) + strlen(s3) + strlen(s6)); + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s2) + strlen(s4) + strlen(s5) + strlen(s2) + strlen(s3) + strlen(s6)); strcpy(result, s1); strcat(result, s2); strcat(result, " "); @@ -55,7 +56,7 @@ char* concat3(char *s1, char *s2, char *s3, char *s4, char *s5, char *s6) char* concat4(char *s1, char *s2, char *s3, char *s4) { - char *result = malloc(strlen(s1) + strlen(s2) + + strlen(s3) + strlen(s4)); + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s3) + strlen(s4)); strcpy(result, s1); strcat(result, s2); strcat(result, " "); @@ -64,6 +65,45 @@ char* concat4(char *s1, char *s2, char *s3, char *s4) return result; } +char* concat5(char *s1, char *s2, char *s3, char *s4, char *s5) +{ + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s3) + strlen(s4) + strlen(s5)); + strcpy(result, s1); + strcat(result, s2); + strcat(result, " "); + strcat(result, s3); + strcat(result, s4); + strcat(result, s5); + strcat(result, s2); + strcat(result, s4); + return result; +} + +char* concat7(char *s1, char *s2, char *s3, char *s4, char *s5) +{ + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s3) + strlen(s4) + strlen(s5)); + strcpy(result, s1); + strcat(result, s2); + strcat(result, " src='"); + strcat(result, s3); + strcat(result, "' "); + strcat(result, s4); + strcat(result, s5); + return result; +} + +char* concat8(char *s1, char *s2, char *s3, char *s4) +{ + char *result = malloc(strlen(s1) + strlen(s2) + strlen(s3) + strlen(s4) + strlen(s3) + strlen(s2)); + strcpy(result, s1); + strcat(result, s2); + strcat(result, s3); + strcat(result, s4); + strcat(result, s2); + strcat(result, s3); + return result; +} + const char * parse(char * gotten) { char *line = malloc(strlen(gotten)); strcpy(line,gotten); @@ -73,7 +113,7 @@ const char * parse(char * gotten) { char *array[3] = {NULL}; while (p != NULL) { - //printf("%s\n",trimwhitespace(p)); + printf("%s\n",trimwhitespace(p)); array[i++] = trimwhitespace(p); p = strtok(NULL, delim); } @@ -95,7 +135,11 @@ const char * parse(char * gotten) { || strcmp(array[0], "s") == 0 || strcmp(array[0], "strong") == 0) { if (array[2] == NULL) { - return concat1("<", array[0], ">", array[1], "", "", array[1], "", ""); + } + } else { + if (strcmp(array[2], "") == 0 + || strcmp(array[2], ".") == 0 + || strcmp(array[2], " ") == 0) { + return concat5("<", array[0], array[1], ">", "", array[2], ""); - } /*else { - if (strcmp(array[2], "") == 0 - || strcmp(array[2], ".") == 0 - || strcmp(array[2], " ") == 0) { - return concat4("<", array[0], array[1], ">", ""); + } else { + return concat7("<", array[0], array[1], array[2], " />"); + } + } else if (strcmp(array[0], "input") == 0) { + if (array[1] == NULL) { + return ""; + } else { + return concat4("<", array[0], array[1], " />"); + } } else { - return "else"; - }; + //return array; + } } char* readLine() { @@ -143,7 +207,6 @@ char* readLine() { if (fp == NULL) exit(EXIT_FAILURE); while ((read = getline(&line, &len, fp)) != -1) { - //printf("Retrieved line of length %zu:\n", read); printf("%s", parse(line)); } fclose(fp);