The first scripting language of The People's Republic of Cork.
There are 2 sources of documentation available for Ked lang;
- The original documentation at http://adam-lynch.github.io/ked/ which shows the initial design ideas of the language.
- Interpreter documentation at https://crnbrdrck.xyz/ked/ which documents the interpreter code I am writing here. This is more used for people who want to help develop the language.
This interpreter is being built by me (crnbrdrck), in the wonderful Crystal Programming Language.
I will be following Writing an Interpreter in Go for this new write up of the ked language, but obviously will be translating to Crystal as best I can.
This should not only help me with my Crystal, but also maybe help me learn Go as a side product?
I'm doing this for a few reasons;
- I wanted to learn how interpreters function
- I wanted another project to do in Crystal
- I've known about Ked for a while and always assumed it was an actual programming language so I wanted to make it real
- For the fun of it
- Ensure that Crystal is installed on your machine: https://crystal-lang.org/docs/installation/
- Clone this repo from the master branch:
git clone [email protected]:crnbrdrck/ked.git
- Build the binary:
make
. The binary will be saved to./bin/
- (Optionally) Install the binary to your path:
sudo make install
To remove, simply do sudo make clean
which will clean up any directories and files made by the install process
Usage:
ked [options] feen.ked - Run the script called 'feen.ked'
Options:
-h, --help Show this help message
-v, --version Print version information
ked feen.ked
- Run the script named 'feen.ked'ked -v
- Check the current version ofked
installed
A little way of checking the progress of the development of the ked
programming language
Any releases at this version were written following this tutorial and they work somewhat.
This code is still available under releases, and is viewable on the lsbasi-archive branch.
These are the versions that are being built following the Interpreter in Go book.
Hopefully it will be better and more fully featured, but I will still be having to translate both Go into Crystal and Monkey (the language developed in the book) into Ked.
Below is a list of the chapters in the book that I am following.
This list can be used to see at a glance the dev status of the project
- Chapter 1: Lexing
- Chapter 2: Parsing
- Chapter 3: Evaluation
- Chapter 4: Extending The Interpreter
- The Lost Chapter
This is an ever growing list of the current features supported in the ked
language.
If this list grows too big I'll probably group things together to give it a semblance of structure
NOTE: Anything in the list below marked with an asterisk was something not in the original design doc and is open to debate
- Nothing right now because I'm starting from scratch
For more info, see the CHANGELOG to see what changed and when
Probably nothing. This repo has been me experimenting with learning how languages work in an attempt to start making my own.
Once I finish the book, I'll start planning out sapphire in greater detail and start hashing it out into what I want it to be.
- Fork it ( https://github.com/[your-github-name]/ked/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
Please make all Pull Requests to the develop
branch and not the master branch
Pull-requests encouraged, but contributions are accepted in any form, including issues.
- adam-lynch - original designer of the Ked language
- crnbrdrck Ciaran Broderick - developed interpreter in crystal