-{"name":"LinkerScript","scopeName":"source.ld","fileTypes":["ld"],"patterns":[{"include":"#comments"},{"include":"#simple_commands"},{"include":"#assignments"},{"include":"#sections"},{"include":"#memory"},{"include":"#phdrs"},{"include":"#version"},{"include":"#expressions"}],"repository":{"comments":{"name":"comment.block.ld","begin":"/\\*","beginCaptures":{"0":{"name":"punctuation.definition.comment.begin.ld"}},"end":"\\*/","endCaptures":{"0":{"name":"punctuation.definition.comment.end.ld"}}},"simple_commands":{"patterns":[{"name":"support.function.builtin.ld","match":"(?x) \\b(?: ENTRY )\\b"},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: INCLUDE |INPUT |GROUP |OUTPUT |SEARCH_DIR |STARTUP )\\b"},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: OUTPUT_FORMAT |TARGET )\\b"},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: ASSERT |EXTERN |FORCE_COMMON_ALLOCATION |INHIBIT_COMMON_ALLOCATION |NOCROSSREFS |OUTPUT_ARCH )\\b"}]},"assignments":{"patterns":[{"name":"keyword.operand.ld","match":"=|\\+=|-=|\\*=|/=|<<=|>>=|&=|\\|="},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: PROVIDE |HIDDEN |PROVIDE_HIDDEN )\\b"}]},"sections":{"patterns":[{"name":"support.function.builtin.ld","match":"(?x) \\b(?:SECTIONS)\\b"},{"name":"section.input.ld","match":"(?x) (\\S+)((?:\\s*\\(\\s*)(((\\.[\\.\\*\\w]+)(?:\\s*))+)(?:\\s*\\)))","captures":{"1":{"name":"support.function.builtin.ld"},"3":{"name":"variable.other.ld"}}},{"name":"section.output.prepart.ld","match":"(?mx) (\\B\\.[\\.\\*\\w]+\\b)(?:\\s*)(\\w*)(?:\\s*)((\\(\\s*[\\w]*\\s*\\))?)(?:\\s*)(\\:)(?:\\s*)((AT)?)(?:\\s*\\(?)(\\w*)(?:\\s*\\)?)","captures":{"1":{"name":"variable.other.ld"},"2":{"name":"constant.numeric.ld"},"4":{"name":"keyword.control.ld"},"5":{"name":"keyword.operand.ld"},"7":{"name":"support.function.builtin.ld"},"8":{"name":"constant.numeric.ld"}}},{"name":"section.output.postpart.ld","match":"(?:\\}\\s*)((\\>)(\\s*\\w*)?)(?:\\s*)((AT)(?:\\s*)(\\>)(?:\\s*)(\\w*))?(?:\\s*)(((\\:\\w*)(?:\\s*))*)(((\\=)(?:\\s*)(\\w*))?)","captures":{"2":{"name":"keyword.operand.ld"},"3":{"name":"variable.other.ld"},"5":{"name":"support.function.builtin.ld"},"6":{"name":"keyword.operand.ld"},"7":{"name":"variable.other.ld"},"8":{"name":"keyword.control.ld"},"13":{"name":"keyword.operand.ld"},"14":{"name":"constant.numeric.ld"}}},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: EXCLUDE_FILE |CREATE_OBJECT_SYMBOLS |CONSTRUCTORS )\\b"},{"name":"datatypes.ld","match":"(?x) (BYTE|SHORT|LONG|QUAD|SQUAD)(?:\\s*\\(\\s*)([^\\(\\)]*)(?:\\s*\\))","captures":{"1":{"name":"support.type.ld"},"2":{"name":"constant.numeric.ld"}}},{"name":"section.discard.ld","match":"(/DISCARD/)(?:\\s*)(\\:)","captures":{"1":{"name":"variable.other.ld"},"2":{"name":"keyword.operand.ld"}}}]},"memory":{"patterns":[{"name":"support.function.builtin.ld","match":"(?x) \\b(?:MEMORY)\\b"},{"name":"memory.config.ld","match":"(\\S*)(?:\\s*\\(\\s*)((R|r|W|w|X|x|A|a|I|i|L|l|\\!)+)(?:\\s*\\)\\s*)(\\:)((?:\\s*)(ORIGIN|org|o|LENGTH|len|l)(?:\\s*)(\\=)(?:\\s*)(\\w*)(,?))((?:\\s*)(ORIGIN|org|o|LENGTH|len|l)(?:\\s*)(\\=)(?:\\s*)(\\w*))","captures":{"1":{"name":"variable.other.ld"},"2":{"name":"keyword.control.ld"},"4":{"name":"keyword.operand.ld"},"6":{"name":"support.variable.ld"},"7":{"name":"keyword.operand.ld"},"8":{"name":"constant.numeric.ld"},"11":{"name":"support.variable.ld"},"12":{"name":"keyword.operand.ld"},"13":{"name":"constant.numeric.ld"}}},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: LENGTH |len |l |ORIGIN |org |o )\\b"}]},"phdrs":{"patterns":[{"name":"support.function.builtin.ld","match":"(?x) \\b(?:PHDRS)\\b"},{"name":"phdrs.config.ld","match":"(\\w*)(?:\\s*)(PT_NULL|PT_LOAD|PT_DYNAMIC|PT_INTERP|PT_NOTE|PT_SHLIB|PT_PHDR)(?:\\s*)((FILEHDR)?)(?:\\s*)((PHDRS)?)(?:\\s*)((((AT)?)(?:\\s*\\(\\s*)(\\w*)(?:\\s*\\)\\s*))?)((((FLAGS)?)(?:\\s*\\(\\s*)(\\w*)(?:\\s*\\)\\s*))?)(\\;)","captures":{"1":{"name":"variable.other.ld"},"2":{"name":"constant.numeric.ld"},"4":{"name":"keyword.control.ld"},"6":{"name":"keyword.control.ld"},"10":{"name":"support.function.builtin.ld"},"11":{"name":"constant.numeric.ld"},"15":{"name":"support.function.builtin.ld"},"16":{"name":"constant.numeric.ld"}}}]},"version":{"patterns":[{"name":"support.function.builtin.ld","match":"(?x) \\b(?:VERSION)\\b"}]},"expressions":{"patterns":[{"name":"expression.ld","match":"(\\w*)(?:\\s*)(=|\\+=|-=|\\*=|/=|<<=|>>=|&=|\\|=)","captures":{"1":{"name":"variable.other.ld"},"2":{"name":"keyword.operand.ld"}}},{"name":"constant.numeric.ld","match":"(?x) \\b(?:(MAXPAGESIZE)|(COMMONPAGESIZE))\\b"},{"name":"variable.other.ld","match":"\\."},{"name":"keyword.operand.ld","match":"!|-|~"},{"name":"keyword.operand.ld","match":"\\*|/|%"},{"name":"keyword.operand.ld","match":"\\+|\\-"},{"name":"keyword.operand.ld","match":"<<|>>"},{"name":"keyword.operand.ld","match":"==|!=|>|<|>=|<="},{"name":"keyword.operand.ld","match":"&"},{"name":"keyword.operand.ld","match":"\\|"},{"name":"keyword.operand.ld","match":"&&"},{"name":"keyword.operand.ld","match":"\\|\\|"},{"name":"keyword.operand.ld","match":"\\?|\\:"},{"name":"support.function.builtin.ld","match":"(?x) \\b(?: ABSOLUTE |ADDR |ALIGN |BLOCK |DATA_SEGMENT_ALIGN |DATA_SEGMENT_END |DEFINED |LOADADDR |MAX |MIN |NEXT |SIZEOF |SIZEOF_HEADERS |sizeof_headers )\\b"}]}}}
0 commit comments