https://github.com/fpotier/lox
My implementation of the Lox language
https://github.com/fpotier/lox
compiler lox programming-language
Last synced: 18 days ago
JSON representation
My implementation of the Lox language
- Host: GitHub
- URL: https://github.com/fpotier/lox
- Owner: fpotier
- License: bsd-2-clause
- Created: 2023-06-20T09:04:02.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-08-10T12:34:30.000Z (6 months ago)
- Last Synced: 2025-08-10T14:37:20.621Z (6 months ago)
- Topics: compiler, lox, programming-language
- Language: Go
- Homepage:
- Size: 151 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
My implementation of the [Lox](https://craftinginterpreters.com/the-lox-language.html) scripting language written in Go.
Lox is a programming language designed by [Robert Nystrom](http://stuffwithstuff.com/) in the book [Crafting Interpreters](https://craftinginterpreters.com/).
# Tests
The test suite in `test/official_tests` comes from the [original implementation](https://github.com/munificent/craftinginterpreters/tree/master/test)
## Current state
### Official test suite
| Feature | Implementation |
| :------------------: | :----------------: |
| assignment | :white_check_mark: |
| benchmark | :white_check_mark: |
| block | :white_check_mark: |
| bool | :white_check_mark: |
| call | :white_check_mark: |
| class | :white_check_mark: |
| closure | :white_check_mark: |
| comments | :white_check_mark: |
| constructor | :white_check_mark: |
| field | :white_check_mark: |
| for | :white_check_mark: |
| function | :white_check_mark: |
| if | :white_check_mark: |
| inheritance | :white_check_mark: |
| limit | :x: |
| logical operator | :white_check_mark: |
| method | :white_check_mark: |
| nil | :white_check_mark: |
| number | :white_check_mark: |
| operator | :white_check_mark: |
| print | :white_check_mark: |
| regression | :white_check_mark: |
| return | :white_check_mark: |
| scanning | :white_check_mark: |
| string | :white_check_mark: |
| super | :white_check_mark: |
| this | :white_check_mark: |
| variable | :white_check_mark: |
| while | :white_check_mark: |
| empty file | :white_check_mark: |
| precedence | :white_check_mark: |
| unexpected character | :white_check_mark: |