examples/canvas | ||
libs | ||
slope | ||
canvas.css | ||
canvas.html | ||
canvas.js | ||
console.css | ||
console.html | ||
console.js | ||
index.html | ||
LICENSE | ||
README.md | ||
todo.md |
slopeJs
This repo represents two things:
- A JavaScript-based port of the Slope programming language, as a tree walk interpreter. It should stand alone and can be embedded. It is found from the repo base dir:
./slope/slopejs.js
- A console/repl implementation using said interpreter (
./index.html
,./console.js
,./console.css
)
There are also some libraries that exist as separate files that could be included (or not) into a given project found in the ./lib
folder.
At present this is a major work in progress. It can do some basic things, but has a long way to go. It does not support macros, symbols, or quoting yet. File handles work differently, given the web environment, but can be highly customized. There is a sort of foreign function interface in the js
procedure (it will eval
a string of JavaScript and return the result)... which can be used to create lots of cool stuff. However, could be less than desirable for a user facing interpreter. So use with caution (I will likely move it to its own module eventually, so that it can be brought in only where appropriate).
The console/repl has a fun retro feel and a few quality of life things. There is a help button to get the couple of shortcut keys that have been added and a bit more background info.
In the long run I see these two things (the interpreter and the console) being split into two separate repositories).