avra.vim 2.6 KB

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