| .. | ||
| src | ||
| .gitignore | ||
| Makefile | ||
| program.code | ||
| readme.md | ||
My first interpreter
Code for a very simple interpreter.
Accompanying blogpost: https://alloca.space/blog/my-first-interpreter.html
Build and run
Requires: gcc, make
make run
Example Program
sum = 0
counter = 10
while counter {
sum = add(sum, counter)
counter = add(counter, negate(1))
}
print(sum)
Structure
main.c- entry point. Reads user input and calls the interpreterrun.c- glue code. invokes the interpreter stages.ast.h- AST definitionslex.h- Tokens definitionslex.c- Stage 1 - Lexing: Text -> Tokensparsing.c- Stage 2 - Parsing: Tokens -> Astexecute.c- Stage 3 - Execute: Ast -> Output