tree-sitter-m68k
Version:
Motorola 68000 family assembly grammar for tree-sitter
2,513 lines (2,512 loc) • 77.5 kB
JSON
[
{
"type": "absolute_value",
"named": true,
"fields": {
"size": {
"multiple": false,
"required": true,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
},
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "argument_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "absolute_value",
"named": true
},
{
"type": "address_register",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "data_register",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "float_register",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "immediate_value",
"named": true
},
{
"type": "indirect_address",
"named": true
},
{
"type": "indirect_address_postinc",
"named": true
},
{
"type": "indirect_address_predec",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "offset_address",
"named": true
},
{
"type": "offset_address_idx",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "quoted_arg",
"named": true
},
{
"type": "register_list",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"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": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "operator",
"named": true
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "comment",
"named": true,
"fields": {}
},
{
"type": "conditional",
"named": true,
"fields": {
"alternate": {
"multiple": false,
"required": false,
"types": [
{
"type": "element_list",
"named": true
}
]
},
"consequent": {
"multiple": false,
"required": false,
"types": [
{
"type": "element_list",
"named": true
}
]
},
"left": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "control_mnemonic",
"named": true
}
]
},
"right": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"test": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "control_mnemonic",
"named": true
},
{
"type": "external_label",
"named": true
},
{
"type": "label",
"named": true
}
]
}
},
{
"type": "conditional_instruction",
"named": true,
"fields": {
"consequent": {
"multiple": false,
"required": true,
"types": [
{
"type": "instruction",
"named": true
}
]
},
"test": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "control_mnemonic",
"named": true
}
]
}
},
{
"type": "data_constant",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
},
"values": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression_list",
"named": true
}
]
}
}
},
{
"type": "data_space",
"named": true,
"fields": {
"fill": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"length": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
}
}
},
{
"type": "decimal_literal",
"named": true,
"fields": {}
},
{
"type": "directive",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
},
"operands": {
"multiple": false,
"required": false,
"types": [
{
"type": "operand_list",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
}
}
},
{
"type": "element_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "conditional",
"named": true
},
{
"type": "conditional_instruction",
"named": true
},
{
"type": "data_constant",
"named": true
},
{
"type": "data_space",
"named": true
},
{
"type": "directive",
"named": true
},
{
"type": "end",
"named": true
},
{
"type": "external_definition",
"named": true
},
{
"type": "external_label",
"named": true
},
{
"type": "external_reference",
"named": true
},
{
"type": "include",
"named": true
},
{
"type": "include_bin",
"named": true
},
{
"type": "include_dir",
"named": true
},
{
"type": "instruction",
"named": true
},
{
"type": "label",
"named": true
},
{
"type": "macro_call",
"named": true
},
{
"type": "macro_definition",
"named": true
},
{
"type": "offset_definition",
"named": true
},
{
"type": "opt",
"named": true
},
{
"type": "register_definition",
"named": true
},
{
"type": "register_list_definition",
"named": true
},
{
"type": "rem",
"named": true
},
{
"type": "repeat",
"named": true
},
{
"type": "section",
"named": true
},
{
"type": "symbol_assignment",
"named": true
},
{
"type": "symbol_definition",
"named": true
}
]
}
},
{
"type": "end",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "control_mnemonic",
"named": true
},
{
"type": "external_label",
"named": true
},
{
"type": "label",
"named": true
}
]
}
},
{
"type": "expression_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
},
{
"type": "external_definition",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
},
"symbols": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol_list",
"named": true
}
]
}
}
},
{
"type": "external_label",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "external_reference",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
},
"symbols": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol_list",
"named": true
}
]
}
}
},
{
"type": "idx",
"named": true,
"fields": {
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "data_register",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
"scale": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
}
}
},
{
"type": "immediate_value",
"named": true,
"fields": {
"value": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "include",
"named": true,
"fields": {
"path": {
"multiple": false,
"required": true,
"types": [
{
"type": "path",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
}
},
{
"type": "include_bin",
"named": true,
"fields": {
"length": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"offset": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"path": {
"multiple": false,
"required": true,
"types": [
{
"type": "path",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
}
},
{
"type": "include_dir",
"named": true,
"fields": {
"path": {
"multiple": false,
"required": true,
"types": [
{
"type": "path",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "directive_mnemonic",
"named": true
}
]
}
},
{
"type": "indirect_address",
"named": true,
"fields": {
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "indirect_address_postinc",
"named": true,
"fields": {
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "indirect_address_predec",
"named": true,
"fields": {
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "instruction",
"named": true,
"fields": {
"mnemonic": {
"multiple": false,
"required": true,
"types": [
{
"type": "instruction_mnemonic",
"named": true
}
]
},
"operands": {
"multiple": false,
"required": false,
"types": [
{
"type": "operand_list",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
}
}
},
{
"type": "interpolated",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "macro_arg",
"named": true
}
]
}
},
{
"type": "label",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "macro_arg",
"named": true,
"fields": {}
},
{
"type": "macro_call",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": false,
"types": [
{
"type": "argument_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
"qualifier": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
}
}
},
{
"type": "macro_definition",
"named": true,
"fields": {
"body": {
"multiple": false,
"required": false,
"types": [
{
"type": "element_list",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "control_mnemonic",
"named": true
},
{
"type": "external_label",
"named": true
},
{
"type": "label",
"named": true
}
]
}
},
{
"type": "memory_type",
"named": true,
"fields": {}
},
{
"type": "named_register",
"named": true,
"fields": {}
},
{
"type": "offset_address",
"named": true,
"fields": {
"offset": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "offset_address_idx",
"named": true,
"fields": {
"idx": {
"multiple": false,
"required": true,
"types": [
{
"type": "idx",
"named": true
}
]
},
"offset": {
"multiple": false,
"required": false,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"register": {
"multiple": false,
"required": true,
"types": [
{
"type": "address_register",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "named_register",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "offset_definition",
"named": true,
"fields": {
"length": {
"multiple": false,
"required": true,
"types": [
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{
"type": "carg",
"named": true
},
{
"type": "decimal_literal",
"named": true
},
{
"type": "hexadecimal_literal",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "octal_literal",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "string_literal",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "carg",
"named": true
},
{
"type": "interpolated",
"named": true
},
{
"type": "macro_arg",
"named": true
},
{
"type": "narg",
"named": true
},
{
"type": "pc",
"named": true
},
{
"type": "reptn",
"named": true
},
{
"type": "symbol",
"named": true
}
]
},
"size": {
"multiple": false,
"required": false,
"types": [
{
"type": "macro_arg",
"named": true
},
{
"type": "size",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "comment",
"named": true
},
{
"type": "directive_mnemonic",
"named": true
}
]
}
},
{
"type": "operand_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "absolute_value",
"named": true
},
{
"type": "address_register",
"named": true
},
{
"type": "binary_expression",
"named": true
},
{
"type": "binary_literal",
"named": true
},
{