mumuki-gobstones-cli

0.2.1 • Public • Published

Build Status

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"
               }
            ]
         ]
      }
   ]
}

Readme

Keywords

none

Package Sidebar

Install

npm i mumuki-gobstones-cli

Weekly Downloads

1

Version

0.2.1

License

ISC

Unpacked Size

936 kB

Total Files

43

Last publish

Collaborators

  • luchotc
  • flbulgarelli