',
.-`-,\__
."` `,
.'_. ._ `;.
__ / ` ` `.\ .--.
/--,| 0) 0) )`_.-,)
| ;.-----.__ _-'); /
'--./ `.`/ `"`
: '` |.
| \ / //
\ '---' /'
`------' \
_/ `--...
__
This is a from scratch implementation of Monkey Language interpreter, inspired from Thorsten Ball's book "Writing Interpreter in Go". This project gave me an opportunity to understand compilers and interpreters in application point of view. I learnt about Pratt Parsing, Interfaces via Abstract classes, std::function and function pointers, Smart pointers and many more cool concepts.
This following interpreter was implemented and tested in linux mint 21 and using clang20 compiler.
It has following dependency: libfmt.so, install it via instructions here
To install you can just run:
make all
./interp.out
- Integer
- Unary, infix and prefix operator
- Variables
- Functions and return statements
- Parsing errors
- Conditionals
- string support
- loops
- Builtin Functions
- Arrays





