The 'Gadget' interpreter language, implemented in Go, using the Writing An Interpreter In Go book. This language is based off the Monkey interpreter language described in the book, and will be implemented as I progress through the book.
- Because I'm taking a course in distributed systems next term (CPSC 416) and I know zilch about Go.
- But really, it's because you Gotta Go Fast! (haha, sorry...).
- The book isn't an introduction to Go. To supplement this, I make use of The Go Programming language and various online resources. I might push some relevant notes to my personal site under notes.
- All of the Monkey language features (as I progress through the book).
- Support for some hash based data structures and B/B+ trees.
- Support for binary, hex, float/decimal literals.
- UTF/Emoji support (currently pure ASCII).
I (and the book) make use ofThis is no longer needed as the Makefile should call scripts to properly set things. However, you'll need direnv, or equivalent for your distribution if you aren't running the Makefile..envrc
files to properly set enviroment variables.- I (and the book) use Go 1.7, YMMV with lower versions.
- The interpreter uses Pratt parsing, described in the 1973 paper by Vince Vaughan.
- Please see Makefile.md