What is YetiScript?
YetiScript compiles yeti code to JavaScript.
Yeti is an ML-style functional programming language, with static type-inference with tries to be clean and minimal expressive and to interface well with JavaScript code.
YetiScript tries to be as close to yeti as it can, however there are some differences.
Status
YetiScript is in early development and still very buggy, however it compiles nearly all of yeti-code.
See the Wiki in the wiki
Get Started
Java JDK7 is required an java
must be on the path.
YetiScript itself is distributed as a npm-module. To install it execute the
follwing commands
//test jave version
>java -version
java version "1.7.0....."
//install yetiscript
>npm install yetiscript -g
....
//use yjs to run the yetiscript compiler
>yjs
help msg ....
Alternatively (and to use the lates version) you can git clone it and build it with ant
> git clone git://github.com/chrisichris/yetiscript.git
> cd yetiscript
> ant
The resulting yjs.jar
contains everything needed and can be use like the
npm yjs
command:
Basic Usage:
Evaluate an expression with node:
$yjs -e "1 + 1" | node
evaluate an expression with rhino (build into JDK7):
$yjs -r -e "1 + 1"
run an example using node:
yjs examples/fact.yjs | node
run an example using the build in rhino:
yjs -r examples/fact.yjs
compile an example to build
directory
yjs -d build examples/fact.yjs
print help
yjs yjs.jar -h
Questions, Feedback
Please point all your questions and feedback to the yeti mailinglist.
Documentation
- tutorial - tutorial for the original yeti language (note the differences doc)
- differences to yeti - differences of yetiscript to yeti
- yeti std api - api docs for the std api of yeti which is nearly identical to yetiscripts std is mostly supported)
- std.yjs : the source of the YetiScript std api
- yeti homepage : the homepage of yeti with a lot more info
- YetiScript wiki: feel free to add
Credits
YetiScript is a fork of yeti by Madis Janson. YetiScript adds a JavaScript backend to the yeti compiler - which does the bulk of the work.
Uses the following apis:
- nanohttpd (modified BSD license)