https://github.com/gustavodiasag/monkey
Yet another interpreter implementation, this time using Golang
https://github.com/gustavodiasag/monkey
golang interpreter language-implementation programming-language test-driven-development
Last synced: 5 months ago
JSON representation
Yet another interpreter implementation, this time using Golang
- Host: GitHub
- URL: https://github.com/gustavodiasag/monkey
- Owner: gustavodiasag
- License: mit
- Created: 2024-01-26T00:44:05.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-14T19:08:06.000Z (almost 2 years ago)
- Last Synced: 2025-04-01T18:40:04.746Z (10 months ago)
- Topics: golang, interpreter, language-implementation, programming-language, test-driven-development
- Language: Go
- Homepage:
- Size: 121 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# monkey
[](https://github.com/gustavodiasag/monkey/actions/workflows/go.yml)
Interpreter for the [Monkey](https://interpreterbook.com/) programming language, just as an exercise to learn Go.
This implementation specifies its own lexer and follows a really common top-down style of parsing using [Pratt's technique](https://matklad.github.io/2020/04/13/simple-but-powerful-pratt-parsing.html), along with an AST-based approach for representing parsed code, whose evaluation is done by converting the representation to an internal object system. The project also aims to explore Test-Driven Development, where failing unit tests are constructed before the actual targeted implementation.
# License
The project is licensed under the [MIT License](LICENSE).