UNPKG

tree-sitter-mips

Version:

A syntax parser for the MIPS Instruction Set Architecture.

1,499 lines 27.9 kB
[ { "type": "%", "named": false, "fields": {} }, { "type": "address", "named": true, "fields": { "base": { "multiple": false, "required": false, "types": [ { "type": "macro_variable", "named": true }, { "type": "register", "named": true }, { "type": "symbol", "named": true } ] }, "offset": { "multiple": false, "required": false, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] }, "operands": { "multiple": false, "required": false, "types": [ { "type": "operands", "named": true } ] } } }, { "type": "assignment_operator", "named": true, "fields": {} }, { "type": "binary_expression", "named": true, "fields": { "left": { "multiple": false, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "additive_operator", "named": true }, { "type": "assignment_operator", "named": true }, { "type": "bitwise_and_operator", "named": true }, { "type": "bitwise_or_operator", "named": true }, { "type": "bitwise_xor_operator", "named": true }, { "type": "equality_operator", "named": true }, { "type": "logical_and_operator", "named": true }, { "type": "logical_or_operator", "named": true }, { "type": "multiplicative_operator", "named": true }, { "type": "relational_operator", "named": true }, { "type": "shift_operator", "named": true } ] }, "right": { "multiple": false, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] } } }, { "type": "char", "named": true, "fields": {} }, { "type": "control_mnemonic", "named": true, "fields": {} }, { "type": "control_operands", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "comment", "named": true }, { "type": "decimal", "named": true }, { "type": "elf_type_tag", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "option_flag", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "string", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] } }, { "type": "decimal", "named": true, "fields": {} }, { "type": "directive", "named": true, "fields": { "mnemonic": { "multiple": false, "required": true, "types": [ { "type": "control_mnemonic", "named": true }, { "type": "macro_mnemonic", "named": true }, { "type": "numeric_mnemonic", "named": true }, { "type": "string_mnemonic", "named": true } ] }, "name": { "multiple": false, "required": false, "types": [ { "type": "macro_name", "named": true } ] }, "operands": { "multiple": false, "required": false, "types": [ { "type": "control_operands", "named": true }, { "type": "numeric_operands", "named": true }, { "type": "string_operands", "named": true } ] }, "parameters": { "multiple": false, "required": false, "types": [ { "type": "macro_parameters", "named": true } ] } }, "children": { "multiple": false, "required": false, "types": [ { "type": "comment", "named": true } ] } }, { "type": "elf_type_tag", "named": true, "fields": {} }, { "type": "instruction", "named": true, "fields": { "opcode": { "multiple": false, "required": true, "types": [ { "type": "macro_variable", "named": true }, { "type": "opcode", "named": true } ] }, "operands": { "multiple": false, "required": false, "types": [ { "type": "operands", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "comment", "named": true } ] } }, { "type": "local_label_reference", "named": true, "fields": {} }, { "type": "macro_parameter", "named": true, "fields": { "name": { "multiple": false, "required": true, "types": [ { "type": "macro_parameter_name", "named": true } ] }, "qualifier": { "multiple": false, "required": false, "types": [ { "type": "macro_parameter_qualifier", "named": true } ] }, "value": { "multiple": true, "required": false, "types": [ { "type": "=", "named": false }, { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] } } }, { "type": "macro_parameters", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "comment", "named": true }, { "type": "macro_parameter", "named": true } ] } }, { "type": "multiplicative_operator", "named": true, "fields": {} }, { "type": "numeric_mnemonic", "named": true, "fields": {} }, { "type": "numeric_operands", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "comment", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] } }, { "type": "operands", "named": true, "fields": { "operand": { "multiple": true, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "string", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] } }, "children": { "multiple": true, "required": false, "types": [ { "type": "comment", "named": true } ] } }, { "type": "option_flag", "named": true, "fields": {} }, { "type": "parenthesized_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "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": "global_label", "named": true }, { "type": "global_numeric_label", "named": true }, { "type": "instruction", "named": true }, { "type": "local_label", "named": true }, { "type": "local_numeric_label", "named": true }, { "type": "macro_label", "named": true } ] } }, { "type": "relocation_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] }, "type": { "multiple": false, "required": true, "types": [ { "type": "relocation_type", "named": true } ] } } }, { "type": "string", "named": true, "fields": {}, "children": { "multiple": true, "required": false, "types": [ { "type": "string_macro_variable", "named": true } ] } }, { "type": "string_mnemonic", "named": true, "fields": {} }, { "type": "string_operands", "named": true, "fields": {}, "children": { "multiple": true, "required": true, "types": [ { "type": "address", "named": true }, { "type": "comment", "named": true }, { "type": "macro_variable", "named": true }, { "type": "string", "named": true } ] } }, { "type": "symbol", "named": true, "fields": {} }, { "type": "unary_expression", "named": true, "fields": { "argument": { "multiple": false, "required": true, "types": [ { "type": "address", "named": true }, { "type": "binary", "named": true }, { "type": "binary_expression", "named": true }, { "type": "char", "named": true }, { "type": "decimal", "named": true }, { "type": "float", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label_reference", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "parenthesized_expression", "named": true }, { "type": "register", "named": true }, { "type": "relocation_expression", "named": true }, { "type": "symbol", "named": true }, { "type": "unary_expression", "named": true } ] }, "operator": { "multiple": false, "required": true, "types": [ { "type": "bitwise_not_operator", "named": true }, { "type": "logical_not_operator", "named": true }, { "type": "unary_minus_operator", "named": true } ] } } }, { "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": ".2byte", "named": false }, { "type": ".4byte", "named": false }, { "type": ".8byte", "named": false }, { "type": ".align", "named": false }, { "type": ".ascii", "named": false }, { "type": ".asciiz", "named": false }, { "type": ".asciz", "named": false }, { "type": ".balign", "named": false }, { "type": ".byte", "named": false }, { "type": ".comm", "named": false }, { "type": ".double", "named": false }, { "type": ".dtpreldword", "named": false }, { "type": ".dtprelword", "named": false }, { "type": ".dword", "named": false }, { "type": ".float", "named": false }, { "type": ".half", "named": false }, { "type": ".hword", "named": false }, { "type": ".int", "named": false }, { "type": ".lcomm", "named": false }, { "type": ".long", "named": false }, { "type": ".p2align", "named": false }, { "type": ".quad", "named": false }, { "type": ".short", "named": false }, { "type": ".single", "named": false }, { "type": ".skip", "named": false }, { "type": ".sleb128", "named": false }, { "type": ".space", "named": false }, { "type": ".string", "named": false }, { "type": ".stringz", "named": false }, { "type": ".uleb128", "named": false }, { "type": ".word", "named": false }, { "type": "/", "named": false }, { "type": ";", "named": false }, { "type": "=", "named": false }, { "type": "additive_operator", "named": true }, { "type": "binary", "named": true }, { "type": "bitwise_and_operator", "named": true }, { "type": "bitwise_not_operator", "named": true }, { "type": "bitwise_or_operator", "named": true }, { "type": "bitwise_xor_operator", "named": true }, { "type": "comment", "named": true }, { "type": "equality_operator", "named": true }, { "type": "float", "named": true }, { "type": "global_label", "named": true }, { "type": "global_numeric_label", "named": true }, { "type": "hexadecimal", "named": true }, { "type": "local_label", "named": true }, { "type": "local_numeric_label", "named": true }, { "type": "local_numeric_label_reference", "named": true }, { "type": "logical_and_operator", "named": true }, { "type": "logical_not_operator", "named": true }, { "type": "logical_or_operator", "named": true }, { "type": "macro_label", "named": true }, { "type": "macro_mnemonic", "named": true }, { "type": "macro_name", "named": true }, { "type": "macro_parameter_name", "named": true }, { "type": "macro_parameter_qualifier", "named": true }, { "type": "macro_variable", "named": true }, { "type": "octal", "named": true }, { "type": "opcode", "named": true }, { "type": "register", "named": true }, { "type": "relational_operator", "named": true }, { "type": "relocation_type", "named": true }, { "type": "shift_operator", "named": true }, { "type": "string_macro_variable", "named": true }, { "type": "unary_minus_operator", "named": true } ]