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