UNPKG

tree-sitter-mips

Version:

A syntax parser for the MIPS Instruction Set Architecture.

873 lines 15.2 kB
[ { "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 } ]