10c1ff16bSBram Moolenaar" Vim syntax file 20c1ff16bSBram Moolenaar" Language: AVR Assembler (AVRA) 30c1ff16bSBram Moolenaar" AVRA Home: http://avra.sourceforge.net/index.html 40c1ff16bSBram Moolenaar" AVRA Version: 1.3.0 5*dc083288SBram Moolenaar" Last Update: 2016 Oct 7 60c1ff16bSBram Moolenaar" Maintainer: Marius Ghita <[email protected]> 70c1ff16bSBram Moolenaar 80c1ff16bSBram Moolenaarlet s:cpo_save = &cpo 90c1ff16bSBram Moolenaarset cpo&vim 100c1ff16bSBram Moolenaar 110c1ff16bSBram Moolenaarsyn case ignore 120c1ff16bSBram Moolenaar 130c1ff16bSBram Moolenaarsyn keyword avraRegister r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 140c1ff16bSBram Moolenaarsyn keyword avraRegister r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 150c1ff16bSBram Moolenaarsyn keyword avraRegister r28 r29 r30 r31 160c1ff16bSBram Moolenaar 170c1ff16bSBram Moolenaarsyn keyword avraInstr add adc adiw sub subi sbc sbci sbiw and andi or ori eor 180c1ff16bSBram Moolenaarsyn keyword avraInstr com neg sbr cbr inc dec tst clr ser mul muls mulsu fmul 190c1ff16bSBram Moolenaarsyn keyword avraInstr fmuls fmulsu des rjmp ijmp eijmp jmp rcall icall eicall 200c1ff16bSBram Moolenaarsyn keyword avraInstr call ret reti cpse cp cpc cpi sbrc sbrs sbic sbis brbs 210c1ff16bSBram Moolenaarsyn keyword avraInstr brbc breq brne brcs brcc brsh brlo brmi brpl brge brlt 220c1ff16bSBram Moolenaarsyn keyword avraInstr brhs brhc brts brtc brvs brvc brie brid mov movw ldi lds 230c1ff16bSBram Moolenaarsyn keyword avraInstr ld ldd sts st std lpm elpm spm in out push pop xch las 240c1ff16bSBram Moolenaarsyn keyword avraInstr lac lat lsl lsr rol ror asr swap bset bclr sbi cbi bst bld 250c1ff16bSBram Moolenaarsyn keyword avraInstr sec clc sen cln sez clz sei cli ses cls sev clv set clt 260c1ff16bSBram Moolenaarsyn keyword avraInstr seh clh break nop sleep wdr 270c1ff16bSBram Moolenaar 280c1ff16bSBram Moolenaarsyn keyword avraDirective .byte .cseg .db .def .device .dseg .dw .endmacro .equ 290c1ff16bSBram Moolenaarsyn keyword avraDirective .eseg .exit .include .list .listmac .macro .nolist 300c1ff16bSBram Moolenaarsyn keyword avraDirective .org .set .define .undef .ifdef .ifndef .if .else 310c1ff16bSBram Moolenaarsyn keyword avraDirective .elif .elseif .warning 320c1ff16bSBram Moolenaar 330c1ff16bSBram Moolenaarsyn keyword avraOperator low high byte2 byte3 byte4 lwrd hwrd page exp2 log2 340c1ff16bSBram Moolenaar 350c1ff16bSBram Moolenaarsyn match avraNumericOperator "[-*/+]" 360c1ff16bSBram Moolenaarsyn match avraUnaryOperator "!" 370c1ff16bSBram Moolenaarsyn match avraBinaryOperator "<<\|>>\|<\|<=\|>\|>=\|==\|!=" 380c1ff16bSBram Moolenaarsyn match avraBitwiseOperator "[~&^|]\|&&\|||" 390c1ff16bSBram Moolenaar 400c1ff16bSBram Moolenaarsyn match avraBinaryNumber "\<0[bB][0-1]*\>" 410c1ff16bSBram Moolenaarsyn match avraHexNumber "\<0[xX][0-9a-fA-F]\+\>" 420c1ff16bSBram Moolenaarsyn match avraDecNumber "\<\(0\|[1-9]\d*\)\>" 430c1ff16bSBram Moolenaar 440c1ff16bSBram Moolenaarsyn region avraComment start=";" end="$" 450c1ff16bSBram Moolenaarsyn region avraString start="\"" end="\"\|$" 460c1ff16bSBram Moolenaar 470c1ff16bSBram Moolenaarsyn match avraLabel "^\s*[^; \t]\+:" 480c1ff16bSBram Moolenaar 490c1ff16bSBram Moolenaarhi def link avraBinaryNumber avraNumber 500c1ff16bSBram Moolenaarhi def link avraHexNumber avraNumber 510c1ff16bSBram Moolenaarhi def link avraDecNumber avraNumber 520c1ff16bSBram Moolenaar 530c1ff16bSBram Moolenaarhi def link avraNumericOperator avraOperator 540c1ff16bSBram Moolenaarhi def link avraUnaryOperator avraOperator 550c1ff16bSBram Moolenaarhi def link avraBinaryOperator avraOperator 560c1ff16bSBram Moolenaarhi def link avraBitwiseOperator avraOperator 570c1ff16bSBram Moolenaar 580c1ff16bSBram Moolenaar 590c1ff16bSBram Moolenaarhi def link avraOperator operator 600c1ff16bSBram Moolenaarhi def link avraComment comment 610c1ff16bSBram Moolenaarhi def link avraDirective preproc 620c1ff16bSBram Moolenaarhi def link avraRegister type 630c1ff16bSBram Moolenaarhi def link avraNumber constant 640c1ff16bSBram Moolenaarhi def link avraString String 650c1ff16bSBram Moolenaarhi def link avraInstr keyword 660c1ff16bSBram Moolenaarhi def link avraLabel label 670c1ff16bSBram Moolenaar 680c1ff16bSBram Moolenaarlet b:current_syntax = "avra" 690c1ff16bSBram Moolenaar 700c1ff16bSBram Moolenaarlet &cpo = s:cpo_save 710c1ff16bSBram Moolenaarunlet s:cpo_save 72