gs-weblang-cli

2.0.2 • Public • Published

Build Status

gs-weblang-cli

CLI for the Gobstones interpreter

Install

# requires node > 4 
sudo npm install -g gs-weblang-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/gs-weblang-cli
cd gs-weblang-cli
nexe -i src/index.js -o gs-weblang-cli

Usage

gs-weblang-cli --help

Run

passed

echo "program {\n Poner(Rojo)\n }" > /tmp/gobs.gbs
gs-weblang-cli /tmp/gobs.gbs -f gbb
{
  "status": "passed",
  "result": {
    "x": 0,
    "y": 0,
    "sizeX": 9,
    "sizeY": 9,
    "table": "GBB/1.0\r\nsize 9 9\r\ncell 0 0 Azul 0 Negro 0 Rojo 1 Verde 0\r\nhead 0 0\r\n"
  }
}

compilation_error

echo "programita {\n Poner(Rojo)\n }" > /tmp/gobs.gbs
gs-weblang-cli /tmp/gobs.gbs
{
  "status": "compilation_error",
  "result": {
    "on": {
      "range": {
        "start": {
          "row": 0,
          "column": 1
        },
        "end": {
          "row": 0,
          "column": 10
        }
      },
      "value": "programita",
      "arity": "name"
    },
    "message": "Se esperaba una definición de programa, función o procedimiento."
  }
}

runtime_error

echo "program {\n Ponerrrrr(Rojo)\n }" > /tmp/gobs.gbs
gs-weblang-cli /tmp/gobs.gbs
{
  "status": "runtime_error",
  "result": {
    "on": ...
    },
    "message": 'El procedimiento "Ponerrrrr" no se encuentra definido.',
    "reason": {
      "code": "undefined_procedure",
      "detail": { name: "Ponerrrrr" }
    }
  }
}

all_is_broken_error

This one shouldn't happen very often, but for now... 😅

echo "" > /tmp/gobs.gbs
gs-weblang-cli /tmp/gobs.gbs
{
  "status": "all_is_broken_error",
  "message": "Something has gone very wrong",
  "detail": {},
  "moreDetail": "Cannot read property 'range' of null"
}

Batch run

request.json:

[
  {
    "initialBoard": "GBB...",
    "code": "program {\n ..."
  },
  {
    "initialBoard": "GBB...",
    "code": "program {\n ..."
  },
]
gs-weblang-cli --batch request.json
# returns an array with the responses 

Generate AST

echo "program {\n Poner(Azul)\n }" | gs-weblang-cli --ast --from_stdin
{
  "alias": "program",
  "body": [
    {
      "arity": "statement",
      "alias": "Drop",
      "parameters": [
        {
          "value": 0,
          "alias": "Blue"
        }
      ]
    }
  ]
}

Dependents (0)

Package Sidebar

Install

npm i gs-weblang-cli

Weekly Downloads

1

Version

2.0.2

License

ISC

Last publish

Collaborators

  • rodri042