gobstones-cli
CLI for the Gobstones interpreter
Install
# requires node > 6 sudo npm install -g gobstones-cli
Run tests
npm test
Building wrapper
The cli can be wrapped as an executable using nexe: npm install nexe -g
.
git clone https://github.com/gobstones/gobstones-cli
cd gobstones-cli
nexe -i src/index.js -o gobstones-cli
Usage
gobstones-cli --help
Run
simple program
echo "program {\n Poner(Rojo)\n }" > /tmp/gobs.gbsgobstones-cli /tmp/gobs.gbs -f gbb
See the tests for more examples!
Batch run
batch.json
:
"code": "procedure Meter(color) { Poner(color) }" // Student's code "extraCode": "function a() { return (2) }" // [OPTIONAL] Teacher's code "examples": "initialBoard": "GBB/1.0\nsize 4 4\nhead 0 0" // Initial board "extraBoard": "GBB/1.0\nsize 4 4\nhead 0 0" // [OPTIONAL] Expected board "generatedCode": "procedure Meter(color) { Poner(color) } program { Meter(Azul) }" // [OPTIONAL] Code to be executed, overrides `code` "initialBoard": "GBB/1.0\nsize 4 4\nhead 0 0" "extraBoard": "GBB/1.0\nsize 4 4\nhead 0 0" "generatedCode": "program { Poner(Rojo) Poner(Verde) Poner(Negro) }"
gobstones-cli --batch batch.json# returns an array with the responses
Generate AST
This tool can also generate the AST of a Gobstones program, in two different fashions:
- native AST - that is, the AST internally used by the tool to execute programs
- mulang AST - a simple AST suited to perform code analysys, that can be processed by the Mulang tool
Native AST
echo "program { Poner(Azul) }" | gobstones-cli --ast --from_stdin
Mulang AST
echo "program { Poner(Azul) }" | gobstones-cli --mulang_ast --from_stdin | json_pp