Welcome to Glimmer ✨
Glimmer is a dynamically-typed scripting language with support for first-class functions with closures, basic types, arrays, dictionaries, and much more.
This implementation of Glimmer comes with a complete Read-Eval-Print-Loop (REPL), Read-Parse-Print-Loop (RPPL), and Read-Lex-Print-Loop (RLPL). Of course, you can also execute source files directly.
TODO README SECTION
- To run a source file, run
glimmer <my source file>
- To open the Glimmer REPL, run
- To open the Glimmer RPPL, run
- To open the Glimmer RLPL, run
- When evaluating and parsing, you can also use the flag –dot to generate a dotfile & image for the AST of your input.
- Imports & standard library
- More builtins (casts, etc.)
- Static typing (maybe separate fork or something)
- Some semblance of objects/structs/data
- Bytecode interpreter (wayyyyyy down the road)
Much of the methodologies, code, and knowledge in the writing of this came from Thorsten Ball’s book, Writing an Interpreter in Go. I wrote every line in this repo character by character without copying, changed methods where I saw fit, and added much on top of the code from this book. Reading this was a great inspiration, and I give my sincere thanks to Mr. Ball. Check out the book at https://interpreterbook.com/.