scratch-vm/README.md

85 lines
1.5 KiB
Markdown
Raw Normal View History

2016-04-08 13:10:37 -04:00
## scratch-vm
2016-04-18 17:22:23 -04:00
[![Build Status](https://travis-ci.com/LLK/scratch-vm.svg?token=xzzHj4ct3SyBTpeqxnx1&branch=develop)](https://travis-ci.com/LLK/scratch-vm)
2016-04-08 13:10:37 -04:00
## Installation
```bash
npm install scratch-vm
```
2016-04-18 17:20:30 -04:00
## Setup
2016-04-08 13:10:37 -04:00
```js
2016-04-18 17:20:30 -04:00
var VirtualMachine = require('scratch-vm');
var vm = new VirtualMachine();
2016-04-08 13:10:37 -04:00
2016-04-18 17:20:30 -04:00
// Block events
// UI events
// Listen for events
```
## Standalone Build
```bash
make build
```
```html
<script src="/path/to/vm.js"></script>
<script>
var vm = new window.VirtualMachine();
// do things
</script>
2016-04-08 13:10:37 -04:00
```
## 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
}
}
}
```
2016-04-08 13:10:37 -04:00
## Testing
```bash
make test
```
```bash
make coverage
```
```bash
make benchmark
```