This is an implementation of burn, a light-weight, general-purpose programming language, in Javascript. It is intended as a reference implementation. It is also a relatively painless way to experiment with the language's design.
node --harmony src/bin/burn.js examples/hello_world.burn
There is another, currently outdated implementation of burn at rainbow-alex/burn which will (hopefully) reach production quality some day.
You will need node.js (>=0.10) to run burn.js
, with the following modules:
Python 3 is needed to run the tests.
burn.js
transpiles burn sourcecode to javascript and eval
s it immediately.
Little effort is made to make this implementation useful or performant.
The tests in tests/
verify that the core language and builtin modules work correctly.
Run them by executing make tests
.
Other implementations of burn should pass this suite.
The tests in tests_extra/
check additional features that are not required or might differ per implementation.
This includes error message details, stack traces, lint messages, ...
You can run these tests with make tests_extra
.
It only makes sense to run this suite for this implementation.
You can run individual parts of either suite with make tests/<path>
or make tests_extra/<path>
.
If you want to run tests against another implementation, use BURN=<absolute/path/to/burn> make ...
.