Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
| 2 | " Language: Z80 assembler asz80 |
| 3 | " Maintainer: Milan Pikula <www@fornax.elf.stuba.sk> |
| 4 | " Last Change: 2003 May 11 |
| 5 | |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 6 | " quit when a syntax file was already loaded |
| 7 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 8 | finish |
| 9 | endif |
| 10 | |
| 11 | syn case ignore |
| 12 | |
| 13 | " Common Z80 Assembly instructions |
| 14 | syn keyword z8aInstruction adc add and bit ccf cp cpd cpdr cpi cpir cpl |
| 15 | syn keyword z8aInstruction daa di djnz ei exx halt im in |
| 16 | syn keyword z8aInstruction ind ini indr inir jp jr ld ldd lddr ldi ldir |
| 17 | syn keyword z8aInstruction neg nop or otdr otir out outd outi |
| 18 | syn keyword z8aInstruction res rl rla rlc rlca rld |
| 19 | syn keyword z8aInstruction rr rra rrc rrca rrd sbc scf set sla sra |
| 20 | syn keyword z8aInstruction srl sub xor |
| 21 | " syn keyword z8aInstruction push pop call ret reti retn inc dec ex rst |
| 22 | |
| 23 | " Any other stuff |
| 24 | syn match z8aIdentifier "[a-z_][a-z0-9_]*" |
| 25 | |
| 26 | " Instructions changing stack |
| 27 | syn keyword z8aSpecInst push pop call ret reti retn rst |
| 28 | syn match z8aInstruction "\<inc\>" |
| 29 | syn match z8aInstruction "\<dec\>" |
| 30 | syn match z8aInstruction "\<ex\>" |
| 31 | syn match z8aSpecInst "\<inc\s\+sp\>"me=s+3 |
| 32 | syn match z8aSpecInst "\<dec\s\+sp\>"me=s+3 |
| 33 | syn match z8aSpecInst "\<ex\s\+(\s*sp\s*)\s*,\s*hl\>"me=s+2 |
| 34 | |
| 35 | "Labels |
| 36 | syn match z8aLabel "[a-z_][a-z0-9_]*:" |
| 37 | syn match z8aSpecialLabel "[a-z_][a-z0-9_]*::" |
| 38 | |
| 39 | " PreProcessor commands |
| 40 | syn match z8aPreProc "\.org" |
| 41 | syn match z8aPreProc "\.globl" |
| 42 | syn match z8aPreProc "\.db" |
| 43 | syn match z8aPreProc "\.dw" |
| 44 | syn match z8aPreProc "\.ds" |
| 45 | syn match z8aPreProc "\.byte" |
| 46 | syn match z8aPreProc "\.word" |
| 47 | syn match z8aPreProc "\.blkb" |
| 48 | syn match z8aPreProc "\.blkw" |
| 49 | syn match z8aPreProc "\.ascii" |
| 50 | syn match z8aPreProc "\.asciz" |
| 51 | syn match z8aPreProc "\.module" |
| 52 | syn match z8aPreProc "\.title" |
| 53 | syn match z8aPreProc "\.sbttl" |
| 54 | syn match z8aPreProc "\.even" |
| 55 | syn match z8aPreProc "\.odd" |
| 56 | syn match z8aPreProc "\.area" |
| 57 | syn match z8aPreProc "\.page" |
| 58 | syn match z8aPreProc "\.setdp" |
| 59 | syn match z8aPreProc "\.radix" |
| 60 | syn match z8aInclude "\.include" |
| 61 | syn match z8aPreCondit "\.if" |
| 62 | syn match z8aPreCondit "\.else" |
| 63 | syn match z8aPreCondit "\.endif" |
| 64 | |
| 65 | " Common strings |
| 66 | syn match z8aString "\".*\"" |
| 67 | syn match z8aString "\'.*\'" |
| 68 | |
| 69 | " Numbers |
| 70 | syn match z8aNumber "[0-9]\+" |
| 71 | syn match z8aNumber "0[xXhH][0-9a-fA-F]\+" |
| 72 | syn match z8aNumber "0[bB][0-1]*" |
| 73 | syn match z8aNumber "0[oO\@qQ][0-7]\+" |
| 74 | syn match z8aNumber "0[dD][0-9]\+" |
| 75 | |
| 76 | " Character constant |
| 77 | syn match z8aString "\#\'."hs=s+1 |
| 78 | |
| 79 | " Comments |
| 80 | syn match z8aComment ";.*" |
| 81 | |
| 82 | syn case match |
| 83 | |
| 84 | " Define the default highlighting. |
Bram Moolenaar | 89bcfda | 2016-08-30 23:26:57 +0200 | [diff] [blame] | 85 | " Only when an item doesn't have highlighting yet |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 86 | |
Bram Moolenaar | f37506f | 2016-08-31 22:22:10 +0200 | [diff] [blame] | 87 | hi def link z8aSection Special |
| 88 | hi def link z8aLabel Label |
| 89 | hi def link z8aSpecialLabel Label |
| 90 | hi def link z8aComment Comment |
| 91 | hi def link z8aInstruction Statement |
| 92 | hi def link z8aSpecInst Statement |
| 93 | hi def link z8aInclude Include |
| 94 | hi def link z8aPreCondit PreCondit |
| 95 | hi def link z8aPreProc PreProc |
| 96 | hi def link z8aNumber Number |
| 97 | hi def link z8aString String |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 98 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 99 | |
| 100 | let b:current_syntax = "z8a" |
| 101 | " vim: ts=8 |