xref: /vim-8.2.3635/runtime/syntax/avra.vim (revision dc083288)
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