blob: 0e02bd83979dce8b874cc2096dfc9210ef5535cb [file] [log] [blame]
Bram Moolenaar0c1ff162016-04-21 18:01:28 +02001" Vim syntax file
2" Language: AVR Assembler (AVRA)
3" AVRA Home: http://avra.sourceforge.net/index.html
4" AVRA Version: 1.3.0
Bram Moolenaardc083282016-10-11 08:57:33 +02005" Last Update: 2016 Oct 7
Bram Moolenaar0c1ff162016-04-21 18:01:28 +02006" Maintainer: Marius Ghita <mhitza@gmail.com>
7
8let s:cpo_save = &cpo
9set cpo&vim
10
Bram Moolenaar0c1ff162016-04-21 18:01:28 +020011syn case ignore
12
13syn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14
14syn keyword avraRegister r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27
15syn keyword avraRegister r28 r29 r30 r31
16
17syn keyword avraInstr add adc adiw sub subi sbc sbci sbiw and andi or ori eor
18syn keyword avraInstr com neg sbr cbr inc dec tst clr ser mul muls mulsu fmul
19syn keyword avraInstr fmuls fmulsu des rjmp ijmp eijmp jmp rcall icall eicall
20syn keyword avraInstr call ret reti cpse cp cpc cpi sbrc sbrs sbic sbis brbs
21syn keyword avraInstr brbc breq brne brcs brcc brsh brlo brmi brpl brge brlt
22syn keyword avraInstr brhs brhc brts brtc brvs brvc brie brid mov movw ldi lds
23syn keyword avraInstr ld ldd sts st std lpm elpm spm in out push pop xch las
24syn keyword avraInstr lac lat lsl lsr rol ror asr swap bset bclr sbi cbi bst bld
25syn keyword avraInstr sec clc sen cln sez clz sei cli ses cls sev clv set clt
26syn keyword avraInstr seh clh break nop sleep wdr
27
28syn keyword avraDirective .byte .cseg .db .def .device .dseg .dw .endmacro .equ
29syn keyword avraDirective .eseg .exit .include .list .listmac .macro .nolist
30syn keyword avraDirective .org .set .define .undef .ifdef .ifndef .if .else
31syn keyword avraDirective .elif .elseif .warning
32
33syn keyword avraOperator low high byte2 byte3 byte4 lwrd hwrd page exp2 log2
34
35syn match avraNumericOperator "[-*/+]"
36syn match avraUnaryOperator "!"
37syn match avraBinaryOperator "<<\|>>\|<\|<=\|>\|>=\|==\|!="
38syn match avraBitwiseOperator "[~&^|]\|&&\|||"
39
40syn match avraBinaryNumber "\<0[bB][0-1]*\>"
41syn match avraHexNumber "\<0[xX][0-9a-fA-F]\+\>"
42syn match avraDecNumber "\<\(0\|[1-9]\d*\)\>"
43
44syn region avraComment start=";" end="$"
45syn region avraString start="\"" end="\"\|$"
46
47syn match avraLabel "^\s*[^; \t]\+:"
48
49hi def link avraBinaryNumber avraNumber
50hi def link avraHexNumber avraNumber
51hi def link avraDecNumber avraNumber
52
53hi def link avraNumericOperator avraOperator
54hi def link avraUnaryOperator avraOperator
55hi def link avraBinaryOperator avraOperator
56hi def link avraBitwiseOperator avraOperator
57
58
59hi def link avraOperator operator
60hi def link avraComment comment
61hi def link avraDirective preproc
62hi def link avraRegister type
63hi def link avraNumber constant
64hi def link avraString String
65hi def link avraInstr keyword
66hi def link avraLabel label
67
68let b:current_syntax = "avra"
69
70let &cpo = s:cpo_save
71unlet s:cpo_save