[
{
"type": "expression",
"named": true,
"subtypes": [
{
"type": ".",
"named": false
},
{
"type": "binary_expression",
"named": true
},
{
"type": "call_expression",
"named": true
},
{
"type": "conditional_expression",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesized_expression",
"named": true
},
{
"type": "quoted_symbol",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "unary_expression",
"named": true
}
]
},
{
"type": "argument_list",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "input_section",
"named": true
}
]
}
},
{
"type": "assert_command",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "assignment",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "attributes",
"named": true,
"fields": {}
},
{
"type": "binary_expression",
"named": true,
"fields": {
"left": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"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": ">",
"named": false
},
{
"type": ">=",
"named": false
},
{
"type": ">>",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "||",
"named": false
}
]
},
"right": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "call_expression",
"named": true,
"fields": {
"arguments": {
"multiple": false,
"required": true,
"types": [
{
"type": "argument_list",
"named": true
}
]
},
"function": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "conditional_expression",
"named": true,
"fields": {
"alternative": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"condition": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"consequence": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "entry_command",
"named": true,
"fields": {
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "fillexp",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "input_section",
"named": true,
"fields": {
"section": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
},
{
"type": "filename",
"named": true
},
{
"type": "wildcard_pattern",
"named": true
}
]
}
},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "filename",
"named": true
},
{
"type": "symbol",
"named": true
},
{
"type": "wildcard_pattern",
"named": true
}
]
}
},
{
"type": "keep_command",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "input_section",
"named": true
}
]
}
},
{
"type": "linkerscript",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assignment",
"named": true
},
{
"type": "entry_command",
"named": true
},
{
"type": "memory_command",
"named": true
},
{
"type": "phdrs_command",
"named": true
},
{
"type": "sections_command",
"named": true
}
]
}
},
{
"type": "lma_region",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "load_memory_address",
"named": true,
"fields": {
"address": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
}
},
{
"type": "memory_command",
"named": true,
"fields": {
"length": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"origin": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "attributes",
"named": true
}
]
}
},
{
"type": "output_section",
"named": true,
"fields": {
"address": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": false,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "assignment",
"named": true
},
{
"type": "fillexp",
"named": true
},
{
"type": "input_section",
"named": true
},
{
"type": "keep_command",
"named": true
},
{
"type": "lma_region",
"named": true
},
{
"type": "load_memory_address",
"named": true
},
{
"type": "phdr",
"named": true
},
{
"type": "provide_command",
"named": true
},
{
"type": "region",
"named": true
},
{
"type": "section_type",
"named": true
}
]
}
},
{
"type": "overlay_command",
"named": true,
"fields": {
"address": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"start": {
"multiple": false,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assert_command",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "fillexp",
"named": true
},
{
"type": "output_section",
"named": true
},
{
"type": "overlay_command",
"named": true
},
{
"type": "phdr",
"named": true
},
{
"type": "region",
"named": true
}
]
}
},
{
"type": "parenthesized_expression",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "phdr",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "phdrs_command",
"named": true,
"fields": {
"address": {
"multiple": true,
"required": false,
"types": [
{
"type": "expression",
"named": true
}
]
},
"name": {
"multiple": true,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"type": {
"multiple": true,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
}
}
},
{
"type": "provide_command",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
}
},
{
"type": "quoted_symbol",
"named": true,
"fields": {}
},
{
"type": "region",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
{
"type": "section_type",
"named": true,
"fields": {}
},
{
"type": "sections_command",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": false,
"types": [
{
"type": "assert_command",
"named": true
},
{
"type": "assignment",
"named": true
},
{
"type": "output_section",
"named": true
},
{
"type": "overlay_command",
"named": true
}
]
}
},
{
"type": "unary_expression",
"named": true,
"fields": {
"argument": {
"multiple": false,
"required": true,
"types": [
{
"type": "expression",
"named": true
}
]
},
"operator": {
"multiple": false,
"required": true,
"types": [
{
"type": "!",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "~",
"named": false
}
]
}
}
},
{
"type": "wildcard_pattern",
"named": true,
"fields": {},
"children": {
"multiple": false,
"required": false,
"types": [
{
"type": "symbol",
"named": true
}
]
}
},
{
"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": "+=",
"named": false
},
{
"type": ",",
"named": false
},
{
"type": "-",
"named": false
},
{
"type": "-=",
"named": false
},
{
"type": ".",
"named": false
},
{
"type": "/",
"named": false
},
{
"type": "/=",
"named": false
},
{
"type": "/DISCARD/",
"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": "?",
"named": false
},
{
"type": "ASSERT",
"named": false
},
{
"type": "AT",
"named": false
},
{
"type": "COPY",
"named": false
},
{
"type": "DSECT",
"named": false
},
{
"type": "ENTRY",
"named": false
},
{
"type": "FILEHDR",
"named": false
},
{
"type": "INFO",
"named": false
},
{
"type": "KEEP",
"named": false
},
{
"type": "LENGTH",
"named": false
},
{
"type": "MEMORY",
"named": false
},
{
"type": "NOCROSSREFS",
"named": false
},
{
"type": "NOLOAD",
"named": false
},
{
"type": "ORIGIN",
"named": false
},
{
"type": "OVERLAY",
"named": false
},
{
"type": "PHDRS",
"named": false
},
{
"type": "PROVIDE",
"named": false
},
{
"type": "PROVIDE_HIDDEN",
"named": false
},
{
"type": "SECTIONS",
"named": false
},
{
"type": "[",
"named": false
},
{
"type": "]",
"named": false
},
{
"type": "comment",
"named": true
},
{
"type": "filename",
"named": true
},
{
"type": "l",
"named": false
},
{
"type": "len",
"named": false
},
{
"type": "number",
"named": true
},
{
"type": "o",
"named": false
},
{
"type": "org",
"named": false
},
{
"type": "symbol",
"named": true
},
{
"type": "{",
"named": false
},
{
"type": "|",
"named": false
},
{
"type": "|=",
"named": false
},
{
"type": "||",
"named": false
},
{
"type": "}",
"named": false
},
{
"type": "~",
"named": false
}
]