rockstar-js
rockstar-js copied to clipboard
JavaScript transpiler for the esoteric language 'Rockstar'
e. g. `Tommy was without` initialises `Tommy` with the value `7` because `without` is a Reserved Keyword, but not a Literal Word.
Make sure truthiness matches spec. If this doesn't follow JS exactly, will probably need a `$truthy` helper function. Per spec: - Mysterious - Falsy - Null - Falsy - Boolean...
Currently rockstar-js treats all varables as global. Per spec: If a variable is defined outside of a function, it is in global scope. Global scope variables are available everywhere below...
The parser goes line-by-line, so that part's easy. Main difficulty is in keeping track of blocks and executing with proper scope.
Allow specifying different implementations for `Listen`/`Say`. Probably the easiest way to do this is to use the dependencies mechanism to create deps for `$listen`/`$say` functions that can be overridden when...
Run our tests on other implementations, and vice versa, to ensure maximum compatibility between implementations.
Has been changed in spec, but also the original implementation probably wasn't right anyway. Relevant bit of the spec: > 1. The sequence `'s\W+` - a single quote followed by...
Currently the Expression parser is very ad-hoc; it needs to be cleaned up to ensure that it supports operator precedences properly. (Incidentally, they should probably be formally defined in the...
Once #8 and #9 are done, running the tests should be added to a CI suite with something like Travis which is run for every commit.