forked from stevenjs/M68k-Assembly
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathM68k-Assembly.JSON-tmLanguage
More file actions
107 lines (105 loc) · 6.08 KB
/
Copy pathM68k-Assembly.JSON-tmLanguage
File metadata and controls
107 lines (105 loc) · 6.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
{ "name": "M68k-Assembly",
"scopeName": "source.asm.m68k",
"fileTypes": ["s", "i", "asm"],
"patterns": [
{ "match": "\"[^\"]*\"",
"name": "string.quoted.double.m68k"
},
{ "match": "'[^']*'",
"name": "string.quoted.single.m68k"
},
{ "match": ";[^\n]*\n",
"name": "comment.line.semicolon"
},
{ "match": "(^|[ \t])\\*(?![+-])[^\n]*\n",
"name": "comment.line.asterisk"
},
{ "match": "(?i)^([a-zA-Z0-9_][a-zA-Z0-9_\\.]*)(?=([ \t]*=|[ \t]+equ[ \t]+))",
"name": "meta.equate.m68k",
"captures": {
"1": { "name": "variable.other.symbol.m68k" }
}
},
{ "match": "(?i)(^([a-zA-Z0-9_\\.]+)(:[ \t]*|[ \t]+)macro|^[ \t]+macro[ \t]+([a-zA-Z0-9_\\.]+))[ \t]*$",
"name": "meta.macro.m68k",
"captures": {
"2": { "name": "variable.other.macro.m68k" },
"4": { "name": "variable.other.macro.m68k" }
}
},
{ "match": "(?i)\\bsection[ \t]+(\"[^\"]+\"|'[^']+'|[^,]+)",
"name": "meta.section.m68k",
"captures": {
"1": { "name": "meta.section.name.m68k" }
}
},
{ "match": "^[a-zA-Z_]([a-zA-Z0-9_]*|[a-zA-Z0-9_\\.%\\$]*[a-zA-Z0-9_])(?=[ \t:])",
"name": "meta.label.global.m68k"
},
{ "match": "(?<![a-zA-Z])\\$[0-9A-Fa-f]+\\b",
"name": "constant.numeric.hex.m68k"
},
{ "match": "(?<![a-zA-Z])@[0-7]+\\b",
"name": "constant.numeric.octal.m68k"
},
{ "match": "(?<![a-zA-Z])%[01]+\\b",
"name": "constant.numeric.binary.m68k"
},
{ "match": "(?<![a-zA-Z])[+-]?[0-9]+\\b",
"name": "constant.numeric.decimal.m68k"
},
{ "match": "(?i)\\b([ad][0-7]|SP|PC|vbr|fp[0-7])\\b",
"name": "variable.language.register.m68k"
},
{ "match": "(?i)\\b(bchg|bclr|bset|btst)(\\.[bl])?\\b",
"name": "keyword.other.opcode.cpu.bl.m68k"
},
{ "match": "(?i)\\b(lsr|move|tst|moves|wddata|neg|negx|not|or|ori|addq|addi|addx|and|andi|asl|asr|cas|chk2|clr|cmp|cmpi|cmpm|cmp2|eor|eori|rol|ror|roxl|roxr|sub|subi|subq|subx|tbls|tblsn|tblu|tblun|add|lsl)(\\.[bwl])?\\b",
"name": "keyword.other.opcode.cpu.bwl.m68k"
},
{ "match": "(?i)\\b(fsincos|ftst)(\\.[bwlsdxp])?\\b",
"name": "keyword.other.opcode.cpu.bwlsdxp.m68k"
},
{ "match": "(?i)\\b(maaac|mac|traplo|masac|trapne|trapeq|movea|movem|traple|movep|movm|msaac|msac|mssac|muls|mulu|pbbs|pbbc|adda|pblc|pbss|pbls|pbsc|pbas|pbac|pbws|pbwc|pbis|pbic|pbgs|pbgc|pbcs|pbcc|cas2|chk|cmpa|ptrapbs|ptrapbc|ptrapls|ptraplc|ptrapss|ptrapsc|ptrapas|ptrapac|ptrapws|ptrapwc|ptrapis|divs|ptrapic|ptrapgs|divu|ptrapgc|ptrapcs|ptrapcc|ext|fbf|fbeq|fbogt|fboge|fbolt|fbole|fbogl|fbor|fbun|fbueq|fbugt|fbuge|fbult|fbule|fbne|fbt|fbsf|fbseq|fbgt|fbge|fblt|fble|fbgl|fbgle|suba|fbngle|fbngl|fbnle|fbnlt|fbnge|fbngt|fbsne|fbst|tpf|trapt|trapf|traphi|trapls|trapcc|traphs|trapcs|trapge|trapmi|trappl|trapvs|trapvc|traplt|link|trapgt|ftrapf|ftrapeq|ftrapogt|ftrapoge|ftrapolt|ftrapole|ftrapogl|ftrapor|ftrapun|ftrapueq|ftrapugt|ftrapuge|ftrapult|ftrapule|ftrapne|ftrapt|ftrapsf|ftrapseq|ftrapgt|ftrapge|ftraplt|ftraple|ftrapgl|ftrapgle|ftrapngle|ftrapngl|ftrapnle|ftrapnlt|ftrapnge|ftrapngt|ftrapsne|ftrapst)(\\.[wl])?\\b",
"name": "keyword.other.opcode.cpu.wl.m68k"
},
{ "match": "(?i)\\b(move16|unlk|unpk|nop|reset|pack|stop|bfchg|pflush|bfclr|pflusha|bfexts|pflushan|bfextu|pflushn|bfffo|pflushr|bfins|pflushs|bfset|ploadr|bftst|ploadw|bgnd|plpar|plpaw|bkpt|callm|prestore|psave|cinvl|cinvp|cinva|cpushl|cpushp|cpusha|ptestr|ptestw|pulse|rtd|rte|rtm|rtr|rts|trap|trapv|fnop|frestore|fsave|halt|illegal|intouch|jmp|jsr|linea|line_a|linef|line_f)\\b",
"name": "keyword.other.opcode.cpu.m68k"
},
{ "match": "(?i)\\b(bhs|blo|bhi|bls|bcc|bcs|bne|beq|bvc|bvs|bpl|bmi|bge|blt|bgt|ble|bra|bsr|jbhs|jblo|jbhi|jbls|jbcc|jbcs|jbne|jbeq|jbvc|jbvs|jbpl|jbmi|jbge|jblt|jbgt|jble|jbra|jbsr)(\\.[bwls])?\\b",
"name": "keyword.other.opcode.cpu.bwls.m68k"
},
{ "match": "(?i)\\b(pmovefd)(\\.[ld])?\\b",
"name": "keyword.other.opcode.cpu.ld.m68k"
},
{ "match": "(?i)\\b(mov3q|movclr|movec|moveq|wdebug|pea|bitrev|byterev|divsl|divul|exg|pvalid|rems|extb|remu|sats|ff1|lea)(\\.[l])?\\b",
"name": "keyword.other.opcode.cpu.l.m68k"
},
{ "match": "(?i)\\b(lpstop|pdbbs|pdbbc|pdbls|pdblc|pdbss|pdbsc|pdbas|pdbac|pdbws|pdbwc|pdbis|pdbic|pdbgs|pdbgc|pdbcs|pdbcc|dbt|dbf|dbra|dbhi|dbls|dbcc|dbhs|dbcs|dblo|dbne|dbvs|dbeq|dbpl|dbvc|dbmi|dbge|dblt|dbgt|dble|strldsr|swap|fdbf|fdbeq|fdbogt|fdboge|fdbolt|fdbole|fdbogl|fdbor|fdbun|fdbueq|fdbugt|fdbuge|fdbult|fdbule|fdbne|fdbt|fdbsf|fdbseq|fdbgt|fdbge|fdblt|fdble|fdbgl|fdbgle|fdbngle|fdbngl|fdbnle|fdbnlt|fdbnge|fdbngt|fdbsne|fdbst)(\\.[w])?\\b",
"name": "keyword.other.opcode.cpu.w.m68k"
},
{ "match": "(?i)\\b(nbcd|abcd|psbs|psbc|psls|pslc|psss|pssc|psas|psac|psws|pswc|psis|psic|psgs|psgc|pscs|pscc|sbcd|st|sf|shi|sls|scc|shs|scs|slo|sne|seq|svc|svs|spl|smi|sge|slt|sgt|sle|tas|fsf|fseq|fsogt|fsoge|fsolt|fsole|fsogl|fsor|fsun|fsueq|fsugt|fsuge|fsult|fsule|fsne|fst|fssf|fsseq|fsgt|fsge|fslt|fsle|fsgl|fsgle|fsngle|fsngl|fsnle|fsnlt|fsnge|fsngt|fssne|fsst)(\\.[b])?\\b",
"name": "keyword.other.opcode.cpu.b.m68k"
},
{ "match": "(?i)\\b(mvs|mvz)(\\.[bw])?\\b",
"name": "keyword.other.opcode.cpu.bw.m68k"
},
{ "match": "(?i)\\b(pmove)(\\.[bwld])?\\b",
"name": "keyword.other.opcode.cpu.bwld.m68k"
},
{ "match": "(?i)\\b(fmovem)(\\.[ldx])?\\b",
"name": "keyword.other.opcode.cpu.ldx.m68k"
},
{ "match": "(?i)\\b(fmovecr)(\\.[x])?\\b",
"name": "keyword.other.opcode.fpu.x.m68k"
},
{ "match": "(?i)\\b(fabs|fsabs|fdabs|facos|fadd|fsadd|fdadd|fasin|fatan|fatanh|fcmp|fcos|fcosh|fdiv|fsdiv|fddiv|fetox|fetoxm1|fgetexp|fgetman|fint|fintrz|flog10|flog2|flogn|flognp1|fmod|fmove|fsmove|fdmove|fmul|fsmul|fdmul|fneg|fsneg|fdneg|frem|fscale|fsgldiv|fsglmul|fsin|fsinh|fsqrt|fssqrt|fdsqrt|fsub|fssub|fdsub|ftan|ftanh|ftentox|ftwotox)(\\.[bwlsdxp])?\\b",
"name": "keyword.other.opcode.fpu.bwlsdxp.m68k"
},
{
"match": "(?i)\\billegal\\b",
"name": "invalid.illegal.opcode.m68k"
}
],
"uuid": "fe8dd09c-dc33-41eb-83d4-4cc6ed720ad2"
}