1{
2  "name": "Disassembly",
3  "scopeName": "source.disassembly",
4  "uuid": "9ade615f-5d82-4ac5-b22f-a1998c356ebe",
5  "patterns": [
6    {
7      "comment": "x86 Address, bytes and opcode",
8      "name": "meta.instruction",
9      "match": "^([A-Za-z0-9]+):\\s([A-Z0-9]{2}\\s)+>?\\s+(\\w+)",
10      "captures": {
11        "1": {"name": "constant.numeric"},
12        "3": {"name": "keyword.opcode"}
13      }
14    },
15    {
16      "comment": "ARM Address, bytes and opcode",
17      "name": "meta.instruction",
18      "match": "^libIGL.so\\[([A-Za-z0-9]+)\\]\\s+(\\<\\+[0-9]*\\>):\\s+([A-Za-z]+.?[A-Za-z]*)",
19      "captures": {
20        "1": {"name": "constant.numeric"},
21        "3": {"name": "keyword.opcode"}
22      }
23    },
24    {
25      "comment": "ARM64 Address, bytes and opcode",
26      "name": "meta.instruction",
27      "match": "^liblog.so\\[([A-Za-z0-9]+)\\]\\s+(\\<\\+[0-9]*\\>):\\s+([A-Za-z]+.?[A-Za-z]*)",
28      "captures": {
29        "1": {"name": "constant.numeric"},
30        "3": {"name": "keyword.opcode"}
31      }
32    },
33    {
34      "comment": "Numeric constant",
35      "name": "constant.numeric",
36      "match": "(\\$|\\b)((0x)|[0-9])[A-Za-z0-9]+\\b"
37    },
38    {
39      "comment": "x86 Register",
40      "name": "variable.language",
41      "match": "%[A-Za-z][A-Za-z0-9]*"
42    },
43    {
44      "comment": "ARM Register",
45      "name": "variable.language",
46      "match": "r\\d+"
47    },
48    {
49      "comment": "ARM Register Shortnames",
50      "name": "variable.language",
51      "match": "(fp|sp|lr|pc|wzr|xzr)"
52    },
53    {
54      "comment": "ARM64 Register",
55      "name": "variable.language",
56      "match": "(x|w)[0-9]+"
57    },
58    {
59      "comment": "End of line comment",
60      "name": "comment.line.semicolon",
61      "match": ";.*$"
62    }
63  ]
64}
65