tree-sitter-mips
Version:
A syntax parser for the MIPS Instruction Set Architecture.
873 lines • 15.2 kB
JSON
[
{
"type": "address",
"named": true,
"fields": {
"base": {
"multiple": false,
"required": true,
"types": [
{
"type": "macro_variable",
"named": true
},
{
"type": "register",
"named": true
}
]
},
"offset": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "control_mnemonic",
"named": true,
"fields": {}
},
{
"type": "control_operands",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "directive",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "control_mnemonic",
"named": true
},
{
"type": "float_mnemonic",
"named": true
},
{
"type": "integer_mnemonic",
"named": true
},
{
"type": "macro_mnemonic",
"named": true
},
{
"type": "string_mnemonic",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"operands": {
"multiple": false,
"required": false,
"types": [
{
"type": "control_operands",
"named": true
},
{
"type": "float_operands",
"named": true
},
{
"type": "integer_operands",
"named": true
}
]
},
"parameters": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_parameters",
"named": true
}
]
},
"string": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_variable",
"named": true
},
{
"type": "string",
"named": true
}
]
}
}
},
{
"type": "float_mnemonic",
"named": true,
"fields": {}
},
{
"type": "float_operands",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "float",
"named": true
}
]
}
},
{
"type": "instruction",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": false,
"types": [
{
"type": "operands",
"named": true
}
]
},
"opcode": {
"multiple": false,
"required": true,
"types": [
{
"type": "opcode",
"named": true
}
]
},
"operands": {
"multiple": true,
"required": false,
"types": [
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "operands",
"named": true
}
]
}
}
},
{
"type": "integer_mnemonic",
"named": true,
"fields": {}
},
{
"type": "integer_operands",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "macro_parameters",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "macro_variable",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "operands",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "address",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "modulo",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "program",
"named": true,
"root": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "instruction",
"named": true
},
{
"type": "label",
"named": true
}
]
}
},
{
"type": "string_mnemonic",
"named": true,
"fields": {}
},
{
"type": "unary_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "char",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "\t",
"named": false
},
{
"type": "\n",
"named": false
},
{
"type": "\r",
"named": false
},
{
"type": " ",
"named": false
},
{
"type": "!",
"named": false
},
{
"type": "!=",
"named": false
},
{
"type": "%",
"named": false
},
{
"type": "&",
"named": false
},
{
"type": "&&",
"named": false
},
{
"type": "(",
"named": false
},
{
"type": ")",
"named": false
},
{
"type": "*",
"named": false
},
{
"type": "+",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": ".ascii",
"named": false
},
{
"type": ".asciiz",
"named": false
},
{
"type": ".byte",
"named": false
},
{
"type": ".double",
"named": false
},
{
"type": ".dword",
"named": false
},
{
"type": ".float",
"named": false
},
{
"type": ".half",
"named": false
},
{
"type": ".hword",
"named": false
},
{
"type": ".string",
"named": false
},
{
"type": ".word",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": ";",
"named": false
},
{
"type": "<",
"named": false
},
{
"type": "<<",
"named": false
},
{
"type": "<=",
"named": false
},
{
"type": "=",
"named": false
},
{
"type": "==",
"named": false
},
{
"type": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "^",
"named": false
},
{
"type": "char",
"named": true
},
{
"type": "comment",
"named": true
},
{
"type": "decimal",
"named": true
},
{
"type": "float",
"named": true
},
{
"type": "hexadecimal",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "macro_mnemonic",
"named": true
},
{
"type": "macro_variable",
"named": true
},
{
"type": "modulo",
"named": true
},
{
"type": "octal",
"named": true
},
{
"type": "opcode",
"named": true
},
{
"type": "register",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "|",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "~",
"named": false
}
]