Age | Commit message (Collapse) | Author | |
---|---|---|---|
14 days | Move system calling code to the end | Aryadev Chavali | |
14 days | Change vec_append signature to ensure ptr is constant | Aryadev Chavali | |
2024-12-19 | Separate out node type as an enumeration. | Aryadev Chavali | |
2024-12-19 | Refactor obc for new vector based assembler and better config parser | Aryadev Chavali | |
Simpler implementation for configuration parsing with default values. Now using new assembler functions. | |||
2024-12-19 | Refactor assembler to use vec_t instead of buffer | Aryadev Chavali | |
Clearer, precise and no double pointers. | |||
2024-12-19 | Introduce and implement vec_t | Aryadev Chavali | |
A vec_t is a dynamic array, separate to a buffer. Should make it easier to distinguish purposes using these two data types. | |||
2024-12-19 | Delete buffer stretchy functions | Aryadev Chavali | |
A buffer should be a strictly sized array representing a file in memory. No dynamic size functions. | |||
2024-12-19 | Fix MAX macro | Aryadev Chavali | |
2024-12-03 | Fix README | Aryadev Chavali | |
2024-12-03 | Added proper build instructions | Aryadev Chavali | |
2024-12-03 | Added Make recipes for examples | Aryadev Chavali | |
2024-12-03 | Fix errors with clang | Aryadev Chavali | |
2024-12-03 | Update README | Aryadev Chavali | |
2024-12-03 | Implement compiler (obc) | Aryadev Chavali | |
2024-12-03 | Clean all asm files as well | Aryadev Chavali | |
2024-12-03 | asm_write_{init, exit} when asm_translate_nodes | Aryadev Chavali | |
2024-12-03 | Fix usage and error messages | Aryadev Chavali | |
2024-12-03 | Add better error correcting code for bad loops in parser | Aryadev Chavali | |
2024-12-03 | Fix errors due to no loops | Aryadev Chavali | |
2024-12-03 | Build two executables: obi and obc | Aryadev Chavali | |
The names stand for Oreo's Brainfuck Interpreter and Oreo's Brainfuck Compiler, separate tasks that shouldn't be packaged in one executable. | |||
2024-12-03 | Wrote an assembler (transpiles brainfuck into assembly code) | Aryadev Chavali | |
Provides: + Transpilation from brainfuck code into intel style assembly + functions to assemble and link code | |||
2024-12-03 | Simplify main interpreter | Aryadev Chavali | |
No need to interpret "multiple files in sequence". Just execute the one file given. | |||
2024-12-03 | Capture number of loops in PResult during parsing | Aryadev Chavali | |
2024-12-03 | Moved MEMORY_DEFAULT to lib.h | Aryadev Chavali | |
2024-12-03 | Simplify build system | Aryadev Chavali | |
RELEASE and DEBUG builds have differing build flags, triggered by setting RELEASE variable. No longer doing object based compilation because: + gcc is fast enough without it + stale code compilation bugs are annoying + having one output binary to clean-up is just easier when switching build-types | |||
2024-12-03 | Implement buffer_t functions to make it stretchy | Aryadev Chavali | |
2024-12-03 | Introduce some nice typedefs in lib.h | Aryadev Chavali | |
2024-12-03 | Add License | Aryadev Chavali | |
2024-12-03 | Added a README | Aryadev Chavali | |
2024-12-03 | Some general reworking, error handling | Aryadev Chavali | |
2024-12-03 | Added some examples to test the interpreter | Aryadev Chavali | |
2023-09-02 | Debug messages | Aryadev Chavali | |
Flag which provides some helpful messages for debugging. | |||
2023-09-02 | Interpreter COMPLETE! | Aryadev Chavali | |
Really easy implementation considering opcodes are super simple. I was right to implement the loop_ref system so at parse time we have resolved references and don't need to do it at runtime (helps with compilation I guess as well). | |||
2023-09-02 | New module for parser functions | Aryadev Chavali | |
Same principle as main->lib (previous commit). | |||
2023-09-02 | New module for functions I no longer need to work on | Aryadev Chavali | |
lib.(h|c) basically has structures and functions I no longer want to stare at in main.c | |||
2023-09-02 | Better command line usage | Aryadev Chavali | |
Now you can use command line arguments to list a set of input files for the interpreter to use. Currently outputs the data parsed per file. | |||
2023-09-02 | Chunk allocator for file handling | Aryadev Chavali | |
Apparently you can't just `fseek` because it's "not portable" and "deeply offensive" or whatever, so here's a really dirty chunk based allocator which uses `fread` to just read chunks of data at a time and basically runs around this issue. While it's slower than an fseek solution for general files, this solution allows pipes and other _weird_ things that count as "files" to just werk. | |||
2023-09-02 | Better error reporting | Aryadev Chavali | |
Using a buffer structure allows me to pass more information to callers and a bit more discretion over how data is passed. Better error reporting via having a file handle and reporting it Emacs/GCC style. | |||
2023-09-02 | INIT | Aryadev Chavali | |
Simple parser, took like an hour. Not very smart but at least it's like O(n). |