5.0.0 • Published 4 years ago
gobstones-cli v5.0.0
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.gbs
gobstones-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
{
"alias": "program",
"body": [
{
"arity": "statement",
"alias": "Drop",
"parameters": [
{
"value": 0,
"alias": "Blue"
}
]
}
]
}
Mulang AST
echo "program { Poner(Azul) }" | gobstones-cli --mulang_ast --from_stdin | json_pp
{
"tag" : "EntryPoint",
"contents" : [
"program",
{
"tag" : "Application",
"contents" : [
{
"tag" : "Reference",
"contents" : "Poner"
},
[
{
"tag" : "MuSymbol",
"contents" : "Azul"
}
]
]
}
]
}
5.0.0
4 years ago
4.0.0
5 years ago
3.2.1
5 years ago
3.2.0
5 years ago
3.1.0
5 years ago
3.0.3
5 years ago
3.0.2
6 years ago
3.0.1
6 years ago
3.0.0
6 years ago
2.0.0
6 years ago
1.7.0
6 years ago
1.6.0
6 years ago
1.5.0
6 years ago
1.4.3
6 years ago
1.4.2
6 years ago
1.4.1
6 years ago
1.4.0
6 years ago
1.3.3
6 years ago
1.3.2
6 years ago
1.3.1
6 years ago
1.3.0
6 years ago
1.2.1
6 years ago
1.1.1
6 years ago
1.1.0
6 years ago
1.0.9
6 years ago
1.0.8
6 years ago
1.0.7
6 years ago
1.0.6
6 years ago
1.0.5
6 years ago
1.0.3
6 years ago