d
This commit is contained in:
parent
89b6b3436f
commit
e19cae576f
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"comments": {
|
||||
"lineComment": ";"
|
||||
"lineComment": ";",
|
||||
"blockComment": ["/*", "*/"]
|
||||
},
|
||||
"brackets": [
|
||||
["{", "}"],
|
||||
|
|
@ -20,5 +21,12 @@
|
|||
["(", ")"],
|
||||
["\"", "\""],
|
||||
["'", "'"]
|
||||
]
|
||||
}
|
||||
],
|
||||
"folding": {
|
||||
"markers": {
|
||||
"start": "\\.section",
|
||||
"end": "\\.endsection"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
151
package-lock.json
generated
Normal file
151
package-lock.json
generated
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
{
|
||||
"name": "x86-assembly-syntax",
|
||||
"version": "1.0.5",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "x86-assembly-syntax",
|
||||
"version": "1.0.5",
|
||||
"dependencies": {
|
||||
"vscode-languageclient": "^7.0.0",
|
||||
"vscode-languageserver": "^7.0.0",
|
||||
"vscode-languageserver-protocol": "^3.17.5"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.60.0"
|
||||
}
|
||||
},
|
||||
"node_modules/balanced-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
||||
},
|
||||
"node_modules/brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
|
||||
},
|
||||
"node_modules/minimatch": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
|
||||
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.6.3",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
|
||||
"integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-jsonrpc": {
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
|
||||
"integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageclient": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0.tgz",
|
||||
"integrity": "sha512-P9AXdAPlsCgslpP9pRxYPqkNYV7Xq8300/aZDpO35j1fJm/ncize8iGswzYlcvFw5DQUx4eVk+KvfXdL0rehNg==",
|
||||
"dependencies": {
|
||||
"minimatch": "^3.0.4",
|
||||
"semver": "^7.3.4",
|
||||
"vscode-languageserver-protocol": "3.16.0"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.52.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageclient/node_modules/vscode-jsonrpc": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz",
|
||||
"integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==",
|
||||
"engines": {
|
||||
"node": ">=8.0.0 || >=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageclient/node_modules/vscode-languageserver-protocol": {
|
||||
"version": "3.16.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz",
|
||||
"integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==",
|
||||
"dependencies": {
|
||||
"vscode-jsonrpc": "6.0.0",
|
||||
"vscode-languageserver-types": "3.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageclient/node_modules/vscode-languageserver-types": {
|
||||
"version": "3.16.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
|
||||
"integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA=="
|
||||
},
|
||||
"node_modules/vscode-languageserver": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.0.0.tgz",
|
||||
"integrity": "sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==",
|
||||
"dependencies": {
|
||||
"vscode-languageserver-protocol": "3.16.0"
|
||||
},
|
||||
"bin": {
|
||||
"installServerIntoExtension": "bin/installServerIntoExtension"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageserver-protocol": {
|
||||
"version": "3.17.5",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
|
||||
"integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
|
||||
"dependencies": {
|
||||
"vscode-jsonrpc": "8.2.0",
|
||||
"vscode-languageserver-types": "3.17.5"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageserver-types": {
|
||||
"version": "3.17.5",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
|
||||
"integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="
|
||||
},
|
||||
"node_modules/vscode-languageserver/node_modules/vscode-jsonrpc": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz",
|
||||
"integrity": "sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==",
|
||||
"engines": {
|
||||
"node": ">=8.0.0 || >=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageserver/node_modules/vscode-languageserver-protocol": {
|
||||
"version": "3.16.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz",
|
||||
"integrity": "sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==",
|
||||
"dependencies": {
|
||||
"vscode-jsonrpc": "6.0.0",
|
||||
"vscode-languageserver-types": "3.16.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageserver/node_modules/vscode-languageserver-types": {
|
||||
"version": "3.16.0",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
|
||||
"integrity": "sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA=="
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
||||
"name": "x86/x64 Assembly",
|
||||
"name": "x86/x64/ARM Assembly",
|
||||
"patterns": [
|
||||
{ "include": "#comments" },
|
||||
{ "include": "#strings" },
|
||||
|
|
@ -12,7 +12,8 @@
|
|||
{ "include": "#sections" },
|
||||
{ "include": "#symbols" },
|
||||
{ "include": "#functions" },
|
||||
{ "include": "#memory_operands" }
|
||||
{ "include": "#memory_operands" },
|
||||
{ "include": "#jsdoc_comments" }
|
||||
],
|
||||
"repository": {
|
||||
"comments": {
|
||||
|
|
@ -20,17 +21,122 @@
|
|||
{
|
||||
"name": "comment.line.semicolon.x86asm",
|
||||
"match": ";.*$"
|
||||
},
|
||||
{
|
||||
"name": "comment.block.x86asm",
|
||||
"begin": "/\\*",
|
||||
"end": "\\*/"
|
||||
}
|
||||
]
|
||||
},
|
||||
"strings": {
|
||||
"name": "string.quoted.double.x86asm",
|
||||
"begin": "\"",
|
||||
"end": "\"",
|
||||
"jsdoc_comments": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "constant.character.escape.x86asm",
|
||||
"match": "\\\\."
|
||||
"name": "comment.block.documentation.x86asm",
|
||||
"begin": "/\\*\\*",
|
||||
"end": "\\*/",
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.tag.jsdoc.x86asm",
|
||||
"match": "@\\w+"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.type.jsdoc.x86asm",
|
||||
"match": "\\{\\s*\\w+\\s*\\}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"directives": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.directive.define.x86asm",
|
||||
"match": "%define\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.assign.x86asm",
|
||||
"match": "%assign\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.equ.x86asm",
|
||||
"match": "\\bequ\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.x86asm",
|
||||
"match": "\\.(file|section|text|data|bss|tbss|tcomm|comm)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.att.x86asm",
|
||||
"match": "\\.(file|section|text|data|bss|rodata|comment|tbss|init|fini|note|debug)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.arm.x86asm",
|
||||
"match": "\\.(file|section|text|data|bss|rodata|comment|tbss|init|fini|note|debug|thumb|thumb_func|code|code16|arm|arm_func)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"labels": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.function.label.x86asm",
|
||||
"match": "^[a-zA-Z_][a-zA-Z0-9_]*:"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.tag.label.x86asm",
|
||||
"match": "^L[a-zA-Z0-9_]+:"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.function.label.att.x86asm",
|
||||
"match": "^[a-zA-Z_][a-zA-Z0-9_]*:"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.function.label.arm.x86asm",
|
||||
"match": "^[a-zA-Z_][a-zA-Z0-9_]*:"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sections": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.section.x86asm",
|
||||
"match": "\\.(text|data|bss|rdata|rodata|comment|tbss|init|fini|note|debug)\\b"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.section.arm.x86asm",
|
||||
"match": "\\.(text|data|bss|rodata|comment|tbss|init|fini|note|debug|thumb|thumb_func|code|code16|arm|arm_func)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"instructions": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.instruction.x86asm",
|
||||
"match": "\\b(mov|push|pop|call|ret|leave|jmp|je|jne|jz|jnz|add|sub|mul|div|and|or|xor|lea|cmp|test|inc|dec|shl|shr|nop|enter|int|syscall|sysret|hlt|in|out|rdmsr|wrmsr)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.instruction.att.x86asm",
|
||||
"match": "\\b(movl|pushl|popl|call|ret|leave|jmp|je|jne|jz|jnz|addl|subl|mull|divl|andl|orl|xorl|leal|cmpl|testl|incl|decl|shll|shrl|nopl|enter|int|syscall|sysret|hlt|inl|outl|rdmsrl|wrmsrl)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.instruction.arm.x86asm",
|
||||
"match": "\\b(add|sub|mul|div|and|orr|eor|bic|mvn|mov|cmp|cmn|tst|teq|ldr|str|ldrb|strb|ldrh|strh|ldrsh|ldrsb|ldrd|strd|ldm|stm|push|pop|b|bl|bx|blx|swi|svc|nop|yield|wfe|wfi|sev|dbg|bkpt|clrex|dmb|dsb|isb|mcr|mrc|mrs|msr|ldc|stc|cdp|cdp2|mcr2|mrc2|mcrr|mcrr2|mrrc|mrrc2|swp|swpb|strex|ldrex|ldrexb|ldrexh|ldrexd|strexb|strexh|strexd|pld|pldw|pli|clz|rbit|rev|rev16|revsh|sel|qadd|qsub|qdadd|qdsub|smlabb|smlatb|smlabt|smlatt|smlawb|smulwb|smlal|smul|smull|smulw|smlalbb|smlalbt|smlaltb|smlaltt|smlalxy|smulxy|smlawy|smulwy|smulxy|smlsd|smlsld|smmla|smmlar|smmls|smmlsr|smmul|smmulr)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"registers": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "variable.language.register.x86asm",
|
||||
"match": "\\b(rax|rbx|rcx|rdx|rsi|rdi|rbp|rsp|r8|r9|r10|r11|r12|r13|r14|r15|eax|ebx|ecx|edx|esi|edi|ebp|esp|ax|bx|cx|dx|si|di|bp|sp|al|bl|cl|dl|cr[0-4]|dr[0-7]|tr[3-6]|cs|ds|ss|es|fs|gs)\\b"
|
||||
},
|
||||
{
|
||||
"name": "variable.language.register.att.x86asm",
|
||||
"match": "\\b(%rax|%rbx|%rcx|%rdx|%rsi|%rdi|%rbp|%rsp|%r8|%r9|%r10|%r11|%r12|%r13|%r14|%r15|%eax|%ebx|%ecx|%edx|%esi|%edi|%ebp|%esp|%ax|%bx|%cx|%dx|%si|%di|%bp|%sp|%al|%bl|%cl|%dl|%cr[0-4]|%dr[0-7]|%tr[3-6]|%cs|%ds|%ss|%es|%fs|%gs)\\b"
|
||||
},
|
||||
{
|
||||
"name": "variable.language.register.arm.x86asm",
|
||||
"match": "\\b(r0|r1|r2|r3|r4|r5|r6|r7|r8|r9|r10|r11|r12|r13|r14|r15|sp|lr|pc|cpsr|spsr)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -46,67 +152,14 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"registers": {
|
||||
"strings": {
|
||||
"name": "string.quoted.double.x86asm",
|
||||
"begin": "\"",
|
||||
"end": "\"",
|
||||
"patterns": [
|
||||
{
|
||||
"name": "variable.language.register.x86asm",
|
||||
"match": "\\b(rax|rbx|rcx|rdx|rsi|rdi|rbp|rsp|r8|r9|r10|r11|r12|r13|r14|r15|eax|ebx|ecx|edx|esi|edi|ebp|esp|ax|bx|cx|dx|si|di|bp|sp|al|bl|cl|dl|cr[0-4]|dr[0-7]|tr[3-6]|cs|ds|ss|es|fs|gs)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"instructions": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.instruction.x86asm",
|
||||
"match": "\\b(mov|push|pop|call|ret|leave|jmp|je|jne|jz|jnz|add|sub|mul|div|and|or|xor|lea|cmp|test|inc|dec|shl|shr|nop|enter|int|syscall|sysret|hlt|in|out|rdmsr|wrmsr)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"directives": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "keyword.control.directive.x86asm",
|
||||
"match": "\\.(file|intel_syntax|section|text|data|bss|rdata|rodata|globl|local|comm|lcomm|def|scl|type|size|align|ascii|asciz|byte|word|long|quad|space|equ|set|previous|zero|weak|tbss|tcomm|cfi_startproc|cfi_endproc|cfi_def_cfa|cfi_def_cfa_register|cfi_adjust_cfa_offset|cfi_offset|cfi_escape|cfi_restore|ident)\\b"
|
||||
},
|
||||
{
|
||||
"name": "keyword.control.directive.option.x86asm",
|
||||
"match": "\\bnoprefix\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"labels": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.function.label.x86asm",
|
||||
"match": "^[a-zA-Z_][a-zA-Z0-9_]*:"
|
||||
},
|
||||
{
|
||||
"name": "entity.name.tag.label.x86asm",
|
||||
"match": "^L[a-zA-Z0-9_]+:"
|
||||
}
|
||||
]
|
||||
},
|
||||
"sections": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "entity.name.section.x86asm",
|
||||
"match": "\\.(text|data|bss|rdata|rodata|comment|tbss|init|fini|note|debug)\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"symbols": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "variable.other.symbol.x86asm",
|
||||
"match": "\\b__[A-Za-z0-9_]+\\b"
|
||||
}
|
||||
]
|
||||
},
|
||||
"functions": {
|
||||
"patterns": [
|
||||
{
|
||||
"name": "support.function.x86asm",
|
||||
"match": "\\b(_*[a-zA-Z_][a-zA-Z0-9_]*)\\b"
|
||||
"name": "constant.character.escape.x86asm",
|
||||
"match": "\\\\."
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
@ -128,4 +181,5 @@
|
|||
}
|
||||
},
|
||||
"scopeName": "source.x86asm"
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in a new issue