aboutsummaryrefslogtreecommitdiff
path: root/Converter/src/compiler.c
AgeCommit message (Collapse)Author
2020-05-22~compile_lines -> compile_file, shuffledx
I've redid the compiler to use a FILE object pointer, which means that we can leave error checking for FILES on the main program. Furthermore, I've removed the use of the array_t type with a two pass system. One pass is done for the number of lines (along with potentially other diagnostics), another is done for the actual compilation. This means at runtime we have an understanding about the size of the file and can optimize for it. Also, we have a single memory block to assign to, where we know the size of the array.
2020-05-20+function to get the lines of some given filedx
Uses the dynamic array to alleviate the burdens of computing specific memory sizes. Terminates lines for parsing.
2020-05-20+test case for an empty tagdx
2020-05-20-removed the refactor of compile_inner_textdx
Doesn't work very well
2020-05-20~!refactor of the compile_inner_text functiondx
Set compiled token recipes in the compiler.h file (easier to manage) and let code handle the rest.
2020-05-20~!refactored compile_line codedx
Similar to previous commit, make it more general and easier to adapt through generalizing state and algorithms.
2020-05-20~!refactored compile_inner_text codedx
Make it a bit cleaner, uses a switch to setup general variables (tag strings, lengths, etc) then a general algorithm that is guaranteed to work for any single character markdown syntax if those variables are set.
2020-05-07~formattingdx
2020-05-07+token checker functiondx
This will check if a given character is a valid plain text token (*, _). This will allow me to abstract away and assess if some plain text needs to be further processed
2020-05-07+find_string algorithmdx
This algorithm looks for substrings in a big string, attempting to find the index of the first occurence.
2020-05-07~correcting my intuition about c-stringsdx
On converting, I would sometimes get the other tag missing. This was both on the repl and the tests, and was quite annoying. Each c-string should end in a null terminator, which I forgot about. So this commit fixes that by setting the last character pointer on each branch to the null terminator.
2020-05-07~rearrange the formatted string callsdx
2020-05-07~puting branching comments on the line they referencedx
2020-05-06+list handler for parserdx
This checks if the first item is a hyphen, then generates a <li> tag surrounding the content
2020-05-06+!fixed bug, caused close tag to not occur in headerdx
This was because it wrote to the null character and thus was inaccessible (I think).
2020-05-06~compile_plain_text -> compile_inner_textdx
2020-05-06+whitespace considerationsdx
2020-05-06+routine to compile plain text +diagnosticsdx
This routine will handle asterisks and bullet points. Works by checking characters at each step. Also has diagnostics by checking for matching characters. If a matching asterisk, for example, isn't found then present an error and quit.
2020-05-06+introduced compiler.h and compiler.cdx
compiler.h holds definitions necessary for compiling markdown, compiler.c the implementations. Moved implementation of compile_line to compiler.h and compiler.c respectively.