riju/langs/tabloid.yaml

45 lines
1.1 KiB
YAML

id: "tabloid"
name: "Tabloid"
install:
scripts:
tabloid: |
#!/usr/bin/env node
const fs = require("fs");
const args = process.argv.slice(2);
if (args.length !== 1) {
console.error("usage: run.js FILE");
process.exit(1);
}
const lang = require("/opt/tabloid/lang");
const program = fs.readFileSync(args[0], "utf-8");
const tokens = lang.tokenize(program);
const parser = new lang.Parser(tokens);
const ast = parser.parse();
const runtime = { print: (s) => console.log(s.toString().toUpperCase() + "!") };
const env = new lang.Environment(runtime);
env.run(ast);
manual: |
install -d "${pkg}/opt/tabloid"
pushd "${pkg}/opt/tabloid"
wget https://github.com/thesephist/tabloid/raw/master/static/js/lang.js
cat <<"EOF" >> lang.js
module.exports = { tokenize, Parser, Environment };
EOF
popd
main: "main.tabloid"
template: |
YOU WON'T WANT TO MISS "Hello, world"
PLEASE LIKE AND SUBSCRIBE
run: |
tabloid main.tabloid
hello: |
HELLO, WORLD!