1" Vim syntax file 2" Language: PIC16F84 Assembler (Microchip's microcontroller) 3" Maintainer: Aleksandar Veselinovic <[email protected]> 4" Last Change: 2003 May 11 5" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim 6" Revision: 1.01 7 8" quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13syn case match 14syn keyword picTodo NOTE TODO XXX contained 15 16syn case ignore 17 18syn match picIdentifier "[a-z_$][a-z0-9_$]*" 19syn match picLabel "^[A-Z_$][A-Z0-9_$]*" 20syn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1 21 22syn match picASCII "A\='.'" 23syn match picBinary "B'[0-1]\+'" 24syn match picDecimal "D'\d\+'" 25syn match picDecimal "\d\+" 26syn match picHexadecimal "0x\x\+" 27syn match picHexadecimal "H'\x\+'" 28syn match picHexadecimal "[0-9]\x*h" 29syn match picOctal "O'[0-7]\o*'" 30 31 32syn match picComment ";.*" contains=picTodo 33 34syn region picString start=+"+ end=+"+ 35 36syn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB 37syn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL 38syn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION 39 40 41" Register --- bits 42 43" STATUS 44syn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C 45 46" PORTA 47syn keyword picRegisterPart T0CKI 48syn match picRegisterPart "RA[0-4]" 49 50" PORTB 51syn keyword picRegisterPart INT 52syn match picRegisterPart "RB[0-7]" 53 54" INTCON 55syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 56 57" OPTION 58syn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 59 60" EECON2 61syn keyword picRegisterPart EEIF WRERR WREN WR RD 62 63" INTCON 64syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF 65 66 67" OpCodes... 68syn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ 69syn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF 70syn keyword picOpcode BCF BSF BTFSC BTFSS 71syn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE 72syn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW 73syn keyword picOpcode GOTO 74 75 76" Directives 77syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG 78syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC 79syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND 80syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF 81syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND 82syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET 83syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR 84syn keyword picDirective VARIABLE WHILE INCLUDE 85syn match picDirective "#\=UNDEFINE" 86syn match picDirective "#\=INCLUDE" 87syn match picDirective "#\=DEFINE" 88 89 90" Define the default highlighting. 91" Only when an item doesn't have highlighting yet 92command -nargs=+ HiLink hi def link <args> 93 94HiLink picTodo Todo 95HiLink picComment Comment 96HiLink picDirective Statement 97HiLink picLabel Label 98HiLink picString String 99 100"HiLink picOpcode Keyword 101"HiLink picRegister Structure 102"HiLink picRegisterPart Special 103 104HiLink picASCII String 105HiLink picBinary Number 106HiLink picDecimal Number 107HiLink picHexadecimal Number 108HiLink picOctal Number 109 110HiLink picIdentifier Identifier 111 112delcommand HiLink 113 114let b:current_syntax = "pic" 115 116" vim: ts=8 117