Website โ Download โ Documentation
The language that works for you
Manual installation is simple. The only dependencies you must have are git and nodejs + npm. Additionally you should have make (preferably GNU), but this comes by default on almost every *nix system.
- The first step is to clone the repository from GitHub:
$ git clone https://github.com/cheddar-lang/Cheddar.git && cd Cheddar
Note: If you want to clone a specific branch (e.g. develop for development), use the following command:
$ git clone -b <branch> https://github.com/cheddar-lang/Cheddar.git && cd Cheddar
- The next step is to install the dependencies with npm. An automatic build should trigger if dependencies are installed succesfully. Once this command is finished you should see a
dist/
directory created. If you don't, look for any errors in the installation.
$ npm install
- Manually building / testing
You can use make
to run the build, test, and install tasks:
$ make # Production Build
$ make build # Development Build
$ make test # Run tests
- Installing.
If you want to install the Cheddar CLI, you have some options. If you are doing a production installation, use make install
. For all other cases use ./bin/install
; with this you can pass a --method
argument to specify whether you'd like to install for yourself (--method=alias
) or for everyone on your computer (--method=path
, the default) which may require elevated privileges. With --method=alias
, provide the location of your bashrc file or equivalent with the --rcloc
flag (usually for *nix systems this is ~/.bashrc
, and for Mac this is ~/.bash_profile
). You may specify the installation path with --method=path
, Cheddar installs the binary in <path>/bin/cheddar
and <path>/share/cheddar
; this defaults to /usr/local
.
Tokenizer roadmap excluded.
- Define streams
- Define class structure
- Define basic runtime enviorment
- Token linking
- Call stack handling
- Define namespaces
- Handle lookups
- Define primitive classes
- String
- Array
- Number
- Boolean
- Nil
- Expression evaluation integration
- Linking
- Call stack configuration
- Scope linking
- Explicit Casting
- Conditional expression handling
- Loop expression handling
- Functions
- Syntax definition
- Functional design
- Function scope
- Function handling
- Function lookup
- Function execution
- Token linking
- Class handling
- Syntax definition
- Class design, and implementation
- Class scoping
- Class lookup
- Class Execution
- Token linking
- I/O Interfacing
- Statement handling
- Interpretation
- Call stack optimization
Congrats! Cheddar is done!
Critical Running Bugs:
- Fix infinite precedence with unary operators bug
- Precendence ignored
Bugs:
- Stack overflowing during various invalid expression syntax
- Error handling is completely borked.
- Syntax Errors (index & prop data is lost)
- Runtime Errors
Further Development
- JS Interfacing
- A bunch of libraries