## scratch-vm [![Build Status](https://travis-ci.com/LLK/scratch-vm.svg?token=xzzHj4ct3SyBTpeqxnx1&branch=develop)](https://travis-ci.com/LLK/scratch-vm) ## Installation ```bash npm install scratch-vm ``` ## Setup ```js var VirtualMachine = require('scratch-vm'); var vm = new VirtualMachine(); // Block events // UI events // Listen for events ``` ## Standalone Build ```bash make build ``` ```html ``` ## Abstract Syntax Tree #### Overview #### Anatomy of a Block ```json { "id": "^1r~63Gdl7;Dh?I*OP3_", "opcode": "wedo_motorclockwise", "next": null, "fields": { "DURATION": { "name": "DURATION", "value": null, "blocks": { "1?P=eV(OiDY3vMk!24Ip": { "id": "1?P=eV(OiDY3vMk!24Ip", "opcode": "math_number", "next": null, "fields": { "NUM": { "name": "NUM", "value": "10", "blocks": null } } } } }, "SUBSTACK": { "name": "SUBSTACK", "value": "@1ln(HsUO4!]*2*%BrE|", "blocks": null } } } ``` ## Testing ```bash make test ``` ```bash make coverage ``` ```bash make benchmark ```