Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

gobstones-cli

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gobstones-cli

CLI for Gobstones

  • 5.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-71.43%
Maintainers
1
Weekly downloads
 
Created
Source

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

FAQs

Package last updated on 29 Apr 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc