mercury-lang
Version:
Parser for the mercury live coding language
365 lines (364 loc) • 4.55 kB
JSON
{
"parseTree": {
"global": {
"randomSeed": [
0
],
"highPass": [
5,
0
],
"lowPass": [
18000,
0
],
"silence": false,
"tempo": [
140
]
},
"variables": {
"myBeat": [
1,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
1,
0
],
"drives": [
1,
2,
2,
3,
4,
6,
9,
3,
11,
2
]
},
"objects": {
"s1": {
"object": "synth",
"type": "saw",
"functions": {
"group": [],
"time": [
"1/8"
],
"note": [
[
"c3",
"gb3"
]
],
"env": [
1,
250
],
"beat": [
[
1,
0,
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
1,
0,
1,
0
]
],
"amp": [
0.7
],
"wave2": [
"saw",
0
],
"add_fx": [
[
"reverb",
0.9,
7
],
[
"drive",
[
1,
2,
2,
3,
4,
6,
9,
3,
11,
2
]
]
],
"name": [
"s1"
]
}
}
},
"groups": {
"all": [
"s1"
]
},
"print": [
[
0,
1,
1,
2,
3,
5,
8,
0,
8,
8,
3,
11,
1,
12,
0,
12,
12,
11,
10,
8,
5,
0,
5,
5,
10,
2,
12,
1
]
],
"display": [],
"comments": [
"// A small example for the Mercury parser",
"// list notes random 16 0 12)"
]
},
"syntaxTree": {
"@main": [
{
"@global": {
"@comment": "// A small example for the Mercury parser"
}
},
{
"@object": {
"@set": {
"@name": "tempo",
"@functions": [
{
"@number": 140
}
]
}
}
},
{
"@global": {
"@print": [
{
"@function": {
"@name": "pisano",
"@args": [
{
"@number": 13
}
]
}
}
]
}
},
{
"@list": {
"@name": "myBeat",
"@params": {
"@function": {
"@name": "clave",
"@args": [
{
"@number": 16
},
{
"@number": 5
},
{
"@number": 2
}
]
}
}
}
},
{
"@list": {
"@name": "drives",
"@params": {
"@function": {
"@name": "add",
"@args": [
{
"@function": {
"@name": "pisano",
"@args": [
{
"@number": 11
}
]
}
},
{
"@number": 1
}
]
}
}
}
},
{
"@object": {
"@new": {
"@inst": "synth",
"@type": {
"@identifier": "saw"
},
"@functions": [
{
"@function": {
"@name": "time",
"@args": [
{
"@division": "1/8"
}
]
}
},
{
"@function": {
"@name": "beat",
"@args": [
{
"@identifier": "myBeat"
}
]
}
},
{
"@function": {
"@name": "name",
"@args": [
{
"@identifier": "s1"
}
]
}
}
]
}
}
},
{
"@object": {
"@set": {
"@name": "s1",
"@functions": [
{
"@function": {
"@name": "add_fx",
"@args": [
{
"@identifier": "reverb"
},
{
"@number": 0.9
},
{
"@number": 7
}
]
}
},
{
"@function": {
"@name": "add_fx",
"@args": [
{
"@identifier": "drive"
},
{
"@identifier": "drives"
}
]
}
}
]
}
}
},
{
"@object": {
"@set": {
"@name": "s1",
"@functions": [
{
"@function": {
"@name": "note",
"@args": [
{
"@array": [
{
"@note": "c3"
},
{
"@note": "gb3"
}
]
}
]
}
}
]
}
}
},
{
"@global": {
"@comment": "// list notes random 16 0 12)"
}
}
]
},
"errors": []
}