tree-sitter-frisc
Version:
FRISC grammar for tree-sitter
592 lines • 8.97 kB
JSON
[
{
"type": "alu_operation",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "immediate",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "call",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "condition",
"named": true
},
{
"type": "immediate",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "compare",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "immediate",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "condition",
"named": true,
"fields": {}
},
{
"type": "define_memory",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "number",
"named": true
},
{
"type": "string_literal",
"named": true
}
]
}
},
{
"type": "equ",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "number",
"named": true
}
]
}
},
{
"type": "halt",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "condition",
"named": true
}
]
}
},
{
"type": "hex",
"named": true,
"fields": {}
},
{
"type": "immediate",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "label",
"named": true
},
{
"type": "number",
"named": true
}
]
}
},
{
"type": "jump",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "condition",
"named": true
},
{
"type": "immediate",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "jump_relative",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "condition",
"named": true
},
{
"type": "immediate",
"named": true
}
]
}
},
{
"type": "load",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "immediate",
"named": true
},
{
"type": "reg_offset",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "move",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "immediate",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "number",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "bin",
"named": true
},
{
"type": "dec",
"named": true
},
{
"type": "hex",
"named": true
},
{
"type": "oct",
"named": true
}
]
}
},
{
"type": "org",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "number",
"named": true
}
]
}
},
{
"type": "reg_offset",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "number",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "register",
"named": true,
"fields": {}
},
{
"type": "ret",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "condition",
"named": true
}
]
}
},
{
"type": "source_file",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "alu_operation",
"named": true
},
{
"type": "call",
"named": true
},
{
"type": "compare",
"named": true
},
{
"type": "define_memory",
"named": true
},
{
"type": "equ",
"named": true
},
{
"type": "halt",
"named": true
},
{
"type": "jump",
"named": true
},
{
"type": "jump_relative",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "load",
"named": true
},
{
"type": "move",
"named": true
},
{
"type": "org",
"named": true
},
{
"type": "ret",
"named": true
},
{
"type": "stack_operation",
"named": true
},
{
"type": "store",
"named": true
}
]
}
},
{
"type": "stack_operation",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "register",
"named": true
}
]
}
},
{
"type": "store",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "immediate",
"named": true
},
{
"type": "reg_offset",
"named": true
},
{
"type": "register",
"named": true
}
]
}
},
{
"type": "string_literal",
"named": true,
"fields": {}
},
{
"type": "\"",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "C",
"named": false
},
{
"type": "CALL",
"named": false
},
{
"type": "CMP",
"named": false
},
{
"type": "EQ",
"named": false
},
{
"type": "EQU",
"named": false
},
{
"type": "HALT",
"named": false
},
{
"type": "JP",
"named": false
},
{
"type": "JR",
"named": false
},
{
"type": "M",
"named": false
},
{
"type": "MOVE",
"named": false
},
{
"type": "N",
"named": false
},
{
"type": "NC",
"named": false
},
{
"type": "NE",
"named": false
},
{
"type": "NN",
"named": false
},
{
"type": "NV",
"named": false
},
{
"type": "NZ",
"named": false
},
{
"type": "ORG",
"named": false
},
{
"type": "P",
"named": false
},
{
"type": "PC",
"named": false
},
{
"type": "POP",
"named": false
},
{
"type": "PUSH",
"named": false
},
{
"type": "SGE",
"named": false
},
{
"type": "SGT",
"named": false
},
{
"type": "SLE",
"named": false
},
{
"type": "SLT",
"named": false
},
{
"type": "SP",
"named": false
},
{
"type": "SR",
"named": false
},
{
"type": "UGE",
"named": false
},
{
"type": "UGT",
"named": false
},
{
"type": "ULE",
"named": false
},
{
"type": "ULT",
"named": false
},
{
"type": "V",
"named": false
},
{
"type": "Z",
"named": false
},
{
"type": "_",
"named": false
},
{
"type": "bin",
"named": true
},
{
"type": "dec",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "oct",
"named": true
}
]