mirror of
https://github.com/ProvableHQ/leo.git
synced 2024-12-27 20:24:52 +03:00
2033 lines
74 KiB
JSON
2033 lines
74 KiB
JSON
{
|
|
"name": "",
|
|
"expected_input": [],
|
|
"imports": [],
|
|
"global_consts": {},
|
|
"circuits": {
|
|
"{\"name\":\"Foo\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"circuit Foo {\\\"}\"}": {
|
|
"circuit_name": "{\"name\":\"Foo\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"circuit Foo {\\\"}\"}",
|
|
"members": [
|
|
{
|
|
"CircuitVariable": [
|
|
"{\"name\":\"f\",\"span\":\"{\\\"line_start\\\":2,\\\"line_stop\\\":2,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" f: u8,\\\"}\"}",
|
|
{
|
|
"IntegerType": "U8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"CircuitVariable": [
|
|
"{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":3,\\\"line_stop\\\":3,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" y: (u8, u8),\\\"}\"}",
|
|
{
|
|
"Tuple": [
|
|
{
|
|
"IntegerType": "U8"
|
|
},
|
|
{
|
|
"IntegerType": "U8"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"CircuitFunction": {
|
|
"annotations": [],
|
|
"identifier": "{\"name\":\"z\",\"span\":\"{\\\"line_start\\\":5,\\\"line_stop\\\":5,\\\"col_start\\\":12,\\\"col_stop\\\":13,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" function z (mut self) -> u16 {\\\"}\"}",
|
|
"input": [
|
|
{
|
|
"MutSelfKeyword": "{\"name\":\"mut self\",\"span\":\"{\\\"line_start\\\":5,\\\"line_stop\\\":5,\\\"col_start\\\":15,\\\"col_stop\\\":23,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" function z (mut self) -> u16 {\\\"}\"}"
|
|
}
|
|
],
|
|
"output": {
|
|
"IntegerType": "U16"
|
|
},
|
|
"block": {
|
|
"statements": [
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"self\",\"span\":\"{\\\"line_start\\\":6,\\\"line_stop\\\":6,\\\"col_start\\\":5,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" self.y.0 += 1u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"Member": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":6,\\\"line_stop\\\":6,\\\"col_start\\\":10,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" self.y.0 += 1u8;\\\"}\"}"
|
|
},
|
|
{
|
|
"Tuple": [
|
|
{
|
|
"value": "0"
|
|
},
|
|
{
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"TupleAccess": {
|
|
"tuple": {
|
|
"CircuitMemberAccess": {
|
|
"circuit": {
|
|
"Identifier": "{\"name\":\"self\",\"span\":\"{\\\"line_start\\\":6,\\\"line_stop\\\":6,\\\"col_start\\\":5,\\\"col_stop\\\":9,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" self.y.0 += 1u8;\\\"}\"}"
|
|
},
|
|
"name": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":6,\\\"line_stop\\\":6,\\\"col_start\\\":10,\\\"col_stop\\\":11,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" self.y.0 += 1u8;\\\"}\"}",
|
|
"span": {
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"index": {
|
|
"value": "0"
|
|
},
|
|
"span": {
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 17,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 6,
|
|
"line_stop": 6,
|
|
"col_start": 5,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " self.y.0 += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Return": {
|
|
"expression": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U16",
|
|
"1",
|
|
{
|
|
"line_start": 7,
|
|
"line_stop": 7,
|
|
"col_start": 12,
|
|
"col_stop": 16,
|
|
"path": "",
|
|
"content": " return 1u16"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 7,
|
|
"line_stop": 7,
|
|
"col_start": 5,
|
|
"col_stop": 16,
|
|
"path": "",
|
|
"content": " return 1u16"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 5,
|
|
"line_stop": 8,
|
|
"col_start": 32,
|
|
"col_stop": 4,
|
|
"path": "",
|
|
"content": " function z (mut self) -> u16 {\n...\n }"
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 5,
|
|
"line_stop": 8,
|
|
"col_start": 3,
|
|
"col_stop": 4,
|
|
"path": "",
|
|
"content": " function z (mut self) -> u16 {\n...\n }\n"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"functions": {
|
|
"{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":10,\\\"line_stop\\\":10,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"function main() {\\\"}\"}": {
|
|
"annotations": [],
|
|
"identifier": "{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":10,\\\"line_stop\\\":10,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"function main() {\\\"}\"}",
|
|
"input": [],
|
|
"output": {
|
|
"Tuple": []
|
|
},
|
|
"block": {
|
|
"statements": [
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":11,\\\"line_stop\\\":11,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let x = 10u32;\\\"}\"}",
|
|
"span": {
|
|
"line_start": 11,
|
|
"line_stop": 11,
|
|
"col_start": 7,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " let x = 10u32;"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"IntegerType": "U32"
|
|
},
|
|
"value": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"10",
|
|
{
|
|
"line_start": 11,
|
|
"line_stop": 11,
|
|
"col_start": 11,
|
|
"col_stop": 16,
|
|
"path": "",
|
|
"content": " let x = 10u32;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 11,
|
|
"line_stop": 11,
|
|
"col_start": 3,
|
|
"col_stop": 16,
|
|
"path": "",
|
|
"content": " let x = 10u32;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":12,\\\"line_stop\\\":12,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" x += 20;\\\"}\"}",
|
|
"accesses": [],
|
|
"span": {
|
|
"line_start": 12,
|
|
"line_stop": 12,
|
|
"col_start": 3,
|
|
"col_stop": 4,
|
|
"path": "",
|
|
"content": " x += 20;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"Identifier": "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":12,\\\"line_stop\\\":12,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" x += 20;\\\"}\"}"
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"20",
|
|
{
|
|
"line_start": 12,
|
|
"line_stop": 12,
|
|
"col_start": 8,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " x += 20;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 12,
|
|
"line_stop": 12,
|
|
"col_start": 3,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " x += 20;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 12,
|
|
"line_stop": 12,
|
|
"col_start": 3,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " x += 20;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"Identifier": "{\"name\":\"x\",\"span\":\"{\\\"line_start\\\":13,\\\"line_stop\\\":13,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(x == 30u32);\\\"}\"}"
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"30",
|
|
{
|
|
"line_start": 13,
|
|
"line_stop": 13,
|
|
"col_start": 23,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(x == 30u32);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 13,
|
|
"line_stop": 13,
|
|
"col_start": 18,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(x == 30u32);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 13,
|
|
"line_stop": 13,
|
|
"col_start": 3,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(x == 30u32);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":15,\\\"line_stop\\\":15,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let y = [1u8, 2u8];\\\"}\"}",
|
|
"span": {
|
|
"line_start": 15,
|
|
"line_stop": 15,
|
|
"col_start": 7,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " let y = [1u8, 2u8];"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"Array": [
|
|
{
|
|
"IntegerType": "U8"
|
|
},
|
|
[
|
|
{
|
|
"value": "2"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"value": {
|
|
"ArrayInline": {
|
|
"elements": [
|
|
{
|
|
"Expression": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 15,
|
|
"line_stop": 15,
|
|
"col_start": 12,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " let y = [1u8, 2u8];"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Expression": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"2",
|
|
{
|
|
"line_start": 15,
|
|
"line_stop": 15,
|
|
"col_start": 17,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " let y = [1u8, 2u8];"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 15,
|
|
"line_stop": 15,
|
|
"col_start": 11,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " let y = [1u8, 2u8];"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 15,
|
|
"line_stop": 15,
|
|
"col_start": 3,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " let y = [1u8, 2u8];"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":16,\\\"line_stop\\\":16,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" y[0] += 3u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"ArrayIndex": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 3,
|
|
"col_stop": 7,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":16,\\\"line_stop\\\":16,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" y[0] += 3u8;\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 3,
|
|
"col_stop": 14,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"3",
|
|
{
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 11,
|
|
"col_stop": 14,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 3,
|
|
"col_stop": 14,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 16,
|
|
"line_stop": 16,
|
|
"col_start": 3,
|
|
"col_stop": 14,
|
|
"path": "",
|
|
"content": " y[0] += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":17,\\\"line_stop\\\":17,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(y[0] == 4u8);\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 17,
|
|
"line_stop": 17,
|
|
"col_start": 20,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " console.assert(y[0] == 4u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 17,
|
|
"line_stop": 17,
|
|
"col_start": 18,
|
|
"col_stop": 22,
|
|
"path": "",
|
|
"content": " console.assert(y[0] == 4u8);"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"4",
|
|
{
|
|
"line_start": 17,
|
|
"line_stop": 17,
|
|
"col_start": 26,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " console.assert(y[0] == 4u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 17,
|
|
"line_stop": 17,
|
|
"col_start": 18,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " console.assert(y[0] == 4u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 17,
|
|
"line_stop": 17,
|
|
"col_start": 3,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " console.assert(y[0] == 4u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"z\",\"span\":\"{\\\"line_start\\\":19,\\\"line_stop\\\":19,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let z = (1u8, 2u8);\\\"}\"}",
|
|
"span": {
|
|
"line_start": 19,
|
|
"line_stop": 19,
|
|
"col_start": 7,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " let z = (1u8, 2u8);"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"Tuple": [
|
|
{
|
|
"IntegerType": "U8"
|
|
},
|
|
{
|
|
"IntegerType": "U8"
|
|
}
|
|
]
|
|
},
|
|
"value": {
|
|
"TupleInit": {
|
|
"elements": [
|
|
{
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 19,
|
|
"line_stop": 19,
|
|
"col_start": 12,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " let z = (1u8, 2u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"2",
|
|
{
|
|
"line_start": 19,
|
|
"line_stop": 19,
|
|
"col_start": 17,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " let z = (1u8, 2u8);"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 19,
|
|
"line_stop": 19,
|
|
"col_start": 11,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " let z = (1u8, 2u8);"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 19,
|
|
"line_stop": 19,
|
|
"col_start": 3,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " let z = (1u8, 2u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"z\",\"span\":\"{\\\"line_start\\\":20,\\\"line_stop\\\":20,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" z.1 += 3u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"Tuple": [
|
|
{
|
|
"value": "1"
|
|
},
|
|
{
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 3,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 3,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"TupleAccess": {
|
|
"tuple": {
|
|
"Identifier": "{\"name\":\"z\",\"span\":\"{\\\"line_start\\\":20,\\\"line_stop\\\":20,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" z.1 += 3u8;\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"value": "1"
|
|
},
|
|
"span": {
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 3,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"3",
|
|
{
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 10,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 3,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 20,
|
|
"line_stop": 20,
|
|
"col_start": 3,
|
|
"col_stop": 13,
|
|
"path": "",
|
|
"content": " z.1 += 3u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"TupleAccess": {
|
|
"tuple": {
|
|
"Identifier": "{\"name\":\"z\",\"span\":\"{\\\"line_start\\\":21,\\\"line_stop\\\":21,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(z.1 == 5u8);\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"value": "1"
|
|
},
|
|
"span": {
|
|
"line_start": 21,
|
|
"line_stop": 21,
|
|
"col_start": 18,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " console.assert(z.1 == 5u8);"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"5",
|
|
{
|
|
"line_start": 21,
|
|
"line_stop": 21,
|
|
"col_start": 25,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(z.1 == 5u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 21,
|
|
"line_stop": 21,
|
|
"col_start": 18,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(z.1 == 5u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 21,
|
|
"line_stop": 21,
|
|
"col_start": 3,
|
|
"col_stop": 28,
|
|
"path": "",
|
|
"content": " console.assert(z.1 == 5u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"foo\",\"span\":\"{\\\"line_start\\\":23,\\\"line_stop\\\":23,\\\"col_start\\\":7,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let foo = Foo { f: 6u8, y: (1u8, 1u8) };\\\"}\"}",
|
|
"span": {
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 7,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"Circuit": "{\"name\":\"Foo\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":9,\\\"col_stop\\\":12,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\"circuit Foo {\\\"}\"}"
|
|
},
|
|
"value": {
|
|
"CircuitInit": {
|
|
"name": "{\"name\":\"Foo\",\"span\":\"{\\\"line_start\\\":23,\\\"line_stop\\\":23,\\\"col_start\\\":13,\\\"col_stop\\\":16,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let foo = Foo { f: 6u8, y: (1u8, 1u8) };\\\"}\"}",
|
|
"members": [
|
|
{
|
|
"identifier": "{\"name\":\"f\",\"span\":\"{\\\"line_start\\\":23,\\\"line_stop\\\":23,\\\"col_start\\\":19,\\\"col_stop\\\":20,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let foo = Foo { f: 6u8, y: (1u8, 1u8) };\\\"}\"}",
|
|
"expression": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"6",
|
|
{
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 22,
|
|
"col_stop": 25,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"identifier": "{\"name\":\"y\",\"span\":\"{\\\"line_start\\\":23,\\\"line_stop\\\":23,\\\"col_start\\\":27,\\\"col_stop\\\":28,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let foo = Foo { f: 6u8, y: (1u8, 1u8) };\\\"}\"}",
|
|
"expression": {
|
|
"TupleInit": {
|
|
"elements": [
|
|
{
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 31,
|
|
"col_stop": 34,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 36,
|
|
"col_stop": 39,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 30,
|
|
"col_stop": 40,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 13,
|
|
"col_stop": 42,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 23,
|
|
"line_stop": 23,
|
|
"col_start": 3,
|
|
"col_stop": 42,
|
|
"path": "",
|
|
"content": " let foo = Foo { f: 6u8, y: (1u8, 1u8) };"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"foo\",\"span\":\"{\\\"line_start\\\":24,\\\"line_stop\\\":24,\\\"col_start\\\":3,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" foo.f += 2u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"Member": "{\"name\":\"f\",\"span\":\"{\\\"line_start\\\":24,\\\"line_stop\\\":24,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" foo.f += 2u8;\\\"}\"}"
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 24,
|
|
"line_stop": 24,
|
|
"col_start": 3,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " foo.f += 2u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"CircuitMemberAccess": {
|
|
"circuit": {
|
|
"Identifier": "{\"name\":\"foo\",\"span\":\"{\\\"line_start\\\":24,\\\"line_stop\\\":24,\\\"col_start\\\":3,\\\"col_stop\\\":6,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" foo.f += 2u8;\\\"}\"}"
|
|
},
|
|
"name": "{\"name\":\"f\",\"span\":\"{\\\"line_start\\\":24,\\\"line_stop\\\":24,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" foo.f += 2u8;\\\"}\"}",
|
|
"span": {
|
|
"line_start": 24,
|
|
"line_stop": 24,
|
|
"col_start": 3,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " foo.f += 2u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"2",
|
|
{
|
|
"line_start": 24,
|
|
"line_stop": 24,
|
|
"col_start": 12,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " foo.f += 2u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 24,
|
|
"line_stop": 24,
|
|
"col_start": 3,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " foo.f += 2u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 24,
|
|
"line_stop": 24,
|
|
"col_start": 3,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " foo.f += 2u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"CircuitMemberAccess": {
|
|
"circuit": {
|
|
"Identifier": "{\"name\":\"foo\",\"span\":\"{\\\"line_start\\\":25,\\\"line_stop\\\":25,\\\"col_start\\\":18,\\\"col_stop\\\":21,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(foo.f == 8u8);\\\"}\"}"
|
|
},
|
|
"name": "{\"name\":\"f\",\"span\":\"{\\\"line_start\\\":25,\\\"line_stop\\\":25,\\\"col_start\\\":22,\\\"col_stop\\\":23,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(foo.f == 8u8);\\\"}\"}",
|
|
"span": {
|
|
"line_start": 25,
|
|
"line_stop": 25,
|
|
"col_start": 18,
|
|
"col_stop": 23,
|
|
"path": "",
|
|
"content": " console.assert(foo.f == 8u8);"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"8",
|
|
{
|
|
"line_start": 25,
|
|
"line_stop": 25,
|
|
"col_start": 27,
|
|
"col_stop": 30,
|
|
"path": "",
|
|
"content": " console.assert(foo.f == 8u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 25,
|
|
"line_stop": 25,
|
|
"col_start": 18,
|
|
"col_stop": 30,
|
|
"path": "",
|
|
"content": " console.assert(foo.f == 8u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 25,
|
|
"line_stop": 25,
|
|
"col_start": 3,
|
|
"col_stop": 30,
|
|
"path": "",
|
|
"content": " console.assert(foo.f == 8u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"complex\",\"span\":\"{\\\"line_start\\\":27,\\\"line_stop\\\":27,\\\"col_start\\\":7,\\\"col_stop\\\":14,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let complex = 2u8;\\\"}\"}",
|
|
"span": {
|
|
"line_start": 27,
|
|
"line_stop": 27,
|
|
"col_start": 7,
|
|
"col_stop": 14,
|
|
"path": "",
|
|
"content": " let complex = 2u8;"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"IntegerType": "U8"
|
|
},
|
|
"value": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"2",
|
|
{
|
|
"line_start": 27,
|
|
"line_stop": 27,
|
|
"col_start": 17,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " let complex = 2u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 27,
|
|
"line_stop": 27,
|
|
"col_start": 3,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " let complex = 2u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"complex\",\"span\":\"{\\\"line_start\\\":28,\\\"line_stop\\\":28,\\\"col_start\\\":3,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" complex += 22u8 - 2u8+ 1u8;\\\"}\"}",
|
|
"accesses": [],
|
|
"span": {
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 3,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"Identifier": "{\"name\":\"complex\",\"span\":\"{\\\"line_start\\\":28,\\\"line_stop\\\":28,\\\"col_start\\\":3,\\\"col_stop\\\":10,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" complex += 22u8 - 2u8+ 1u8;\\\"}\"}"
|
|
},
|
|
"right": {
|
|
"Binary": {
|
|
"left": {
|
|
"Binary": {
|
|
"left": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"22",
|
|
{
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 14,
|
|
"col_stop": 18,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"2",
|
|
{
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 21,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Sub",
|
|
"span": {
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 14,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 26,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 14,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 3,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 28,
|
|
"line_stop": 28,
|
|
"col_start": 3,
|
|
"col_stop": 29,
|
|
"path": "",
|
|
"content": " complex += 22u8 - 2u8+ 1u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"Identifier": "{\"name\":\"complex\",\"span\":\"{\\\"line_start\\\":29,\\\"line_stop\\\":29,\\\"col_start\\\":18,\\\"col_stop\\\":25,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(complex == 23u8);\\\"}\"}"
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"23",
|
|
{
|
|
"line_start": 29,
|
|
"line_stop": 29,
|
|
"col_start": 29,
|
|
"col_stop": 33,
|
|
"path": "",
|
|
"content": " console.assert(complex == 23u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 29,
|
|
"line_stop": 29,
|
|
"col_start": 18,
|
|
"col_stop": 33,
|
|
"path": "",
|
|
"content": " console.assert(complex == 23u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 29,
|
|
"line_stop": 29,
|
|
"col_start": 3,
|
|
"col_stop": 33,
|
|
"path": "",
|
|
"content": " console.assert(complex == 23u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":30,\\\"line_stop\\\":30,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let a = [[0u8; 1]; 4];\\\"}\"}",
|
|
"span": {
|
|
"line_start": 30,
|
|
"line_stop": 30,
|
|
"col_start": 7,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " let a = [[0u8; 1]; 4];"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"Array": [
|
|
{
|
|
"Array": [
|
|
{
|
|
"IntegerType": "U8"
|
|
},
|
|
[
|
|
{
|
|
"value": "1"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
[
|
|
{
|
|
"value": "4"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"value": {
|
|
"ArrayInit": {
|
|
"element": {
|
|
"ArrayInit": {
|
|
"element": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"0",
|
|
{
|
|
"line_start": 30,
|
|
"line_stop": 30,
|
|
"col_start": 13,
|
|
"col_stop": 16,
|
|
"path": "",
|
|
"content": " let a = [[0u8; 1]; 4];"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dimensions": [
|
|
{
|
|
"value": "1"
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 30,
|
|
"line_stop": 30,
|
|
"col_start": 12,
|
|
"col_stop": 20,
|
|
"path": "",
|
|
"content": " let a = [[0u8; 1]; 4];"
|
|
}
|
|
}
|
|
},
|
|
"dimensions": [
|
|
{
|
|
"value": "4"
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 30,
|
|
"line_stop": 30,
|
|
"col_start": 11,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " let a = [[0u8; 1]; 4];"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 30,
|
|
"line_stop": 30,
|
|
"col_start": 3,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " let a = [[0u8; 1]; 4];"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":31,\\\"line_stop\\\":31,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" a[2][0] += 1u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"ArrayIndex": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ArrayIndex": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 8,
|
|
"col_stop": 9,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 3,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":31,\\\"line_stop\\\":31,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" a[2][0] += 1u8;\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 8,
|
|
"col_stop": 9,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 14,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 31,
|
|
"line_stop": 31,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " a[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":32,\\\"line_stop\\\":32,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(a[2][0] == 1u8);\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 20,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 18,
|
|
"col_stop": 22,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 23,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 18,
|
|
"col_stop": 25,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 29,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 18,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 32,
|
|
"line_stop": 32,
|
|
"col_start": 3,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Definition": {
|
|
"declaration_type": "Let",
|
|
"variable_names": [
|
|
{
|
|
"mutable": true,
|
|
"identifier": "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":34,\\\"line_stop\\\":34,\\\"col_start\\\":7,\\\"col_stop\\\":8,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" let b = [0u8; (4, 1)];\\\"}\"}",
|
|
"span": {
|
|
"line_start": 34,
|
|
"line_stop": 34,
|
|
"col_start": 7,
|
|
"col_stop": 8,
|
|
"path": "",
|
|
"content": " let b = [0u8; (4, 1)];"
|
|
}
|
|
}
|
|
],
|
|
"type_": {
|
|
"Array": [
|
|
{
|
|
"Array": [
|
|
{
|
|
"IntegerType": "U8"
|
|
},
|
|
[
|
|
{
|
|
"value": "1"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
[
|
|
{
|
|
"value": "4"
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"value": {
|
|
"ArrayInit": {
|
|
"element": {
|
|
"ArrayInit": {
|
|
"element": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"0",
|
|
{
|
|
"line_start": 34,
|
|
"line_stop": 34,
|
|
"col_start": 12,
|
|
"col_stop": 15,
|
|
"path": "",
|
|
"content": " let b = [0u8; (4, 1)];"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dimensions": [
|
|
{
|
|
"value": "1"
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 34,
|
|
"line_stop": 34,
|
|
"col_start": 11,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " let b = [0u8; (4, 1)];"
|
|
}
|
|
}
|
|
},
|
|
"dimensions": [
|
|
{
|
|
"value": "4"
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 34,
|
|
"line_stop": 34,
|
|
"col_start": 11,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " let b = [0u8; (4, 1)];"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 34,
|
|
"line_stop": 34,
|
|
"col_start": 3,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " let b = [0u8; (4, 1)];"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Assign": {
|
|
"operation": "Assign",
|
|
"assignee": {
|
|
"identifier": "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":35,\\\"line_stop\\\":35,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" b[2][0] += 1u8;\\\"}\"}",
|
|
"accesses": [
|
|
{
|
|
"ArrayIndex": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"ArrayIndex": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 8,
|
|
"col_stop": 9,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 3,
|
|
"col_stop": 10,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
},
|
|
"value": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"b\",\"span\":\"{\\\"line_start\\\":35,\\\"line_stop\\\":35,\\\"col_start\\\":3,\\\"col_stop\\\":4,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" b[2][0] += 1u8;\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 5,
|
|
"col_stop": 6,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 8,
|
|
"col_stop": 9,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 14,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Add",
|
|
"span": {
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 35,
|
|
"line_stop": 35,
|
|
"col_start": 3,
|
|
"col_stop": 17,
|
|
"path": "",
|
|
"content": " b[2][0] += 1u8;"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"Console": {
|
|
"function": {
|
|
"Assert": {
|
|
"Binary": {
|
|
"left": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"ArrayAccess": {
|
|
"array": {
|
|
"Identifier": "{\"name\":\"a\",\"span\":\"{\\\"line_start\\\":36,\\\"line_stop\\\":36,\\\"col_start\\\":18,\\\"col_stop\\\":19,\\\"path\\\":\\\"\\\",\\\"content\\\":\\\" console.assert(a[2][0] == 1u8);\\\"}\"}"
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"2",
|
|
{
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 20,
|
|
"col_stop": 21,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 18,
|
|
"col_stop": 22,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
},
|
|
"index": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U32",
|
|
"0",
|
|
{
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 23,
|
|
"col_stop": 24,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 18,
|
|
"col_stop": 25,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
},
|
|
"right": {
|
|
"Value": {
|
|
"Integer": [
|
|
"U8",
|
|
"1",
|
|
{
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 29,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"op": "Eq",
|
|
"span": {
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 18,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 36,
|
|
"line_stop": 36,
|
|
"col_start": 3,
|
|
"col_stop": 32,
|
|
"path": "",
|
|
"content": " console.assert(a[2][0] == 1u8);"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"span": {
|
|
"line_start": 10,
|
|
"line_stop": 37,
|
|
"col_start": 17,
|
|
"col_stop": 2,
|
|
"path": "",
|
|
"content": "function main() {\n...\n}"
|
|
}
|
|
},
|
|
"span": {
|
|
"line_start": 10,
|
|
"line_stop": 37,
|
|
"col_start": 1,
|
|
"col_stop": 2,
|
|
"path": "",
|
|
"content": "function main() {\n...\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"
|
|
}
|
|
}
|
|
}
|
|
} |