diff options
Diffstat (limited to 'runtime/syntax/pic.vim')
-rw-r--r-- | runtime/syntax/pic.vim | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/runtime/syntax/pic.vim b/runtime/syntax/pic.vim new file mode 100644 index 000000000..adc964ea9 --- /dev/null +++ b/runtime/syntax/pic.vim @@ -0,0 +1,127 @@ +" Vim syntax file +" Language: PIC16F84 Assembler (Microchip's microcontroller) +" Maintainer: Aleksandar Veselinovic <aleksa@cs.cmu.com> +" Last Change: 2003 May 11 +" URL: http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim +" Revision: 1.01 + +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case match +syn keyword picTodo NOTE TODO XXX contained + +syn case ignore + +syn match picIdentifier "[a-z_$][a-z0-9_$]*" +syn match picLabel "^[A-Z_$][A-Z0-9_$]*" +syn match picLabel "^[A-Z_$][A-Z0-9_$]*:"me=e-1 + +syn match picASCII "A\='.'" +syn match picBinary "B'[0-1]\+'" +syn match picDecimal "D'\d\+'" +syn match picDecimal "\d\+" +syn match picHexadecimal "0x\x\+" +syn match picHexadecimal "H'\x\+'" +syn match picHexadecimal "[0-9]\x*h" +syn match picOctal "O'[0-7]\o*'" + + +syn match picComment ";.*" contains=picTodo + +syn region picString start=+"+ end=+"+ + +syn keyword picRegister INDF TMR0 PCL STATUS FSR PORTA PORTB +syn keyword picRegister EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL +syn keyword picRegister FSR TRISA TRISB EECON1 EECON2 INTCON OPTION + + +" Register --- bits + +" STATUS +syn keyword picRegisterPart IRP RP1 RP0 TO PD Z DC C + +" PORTA +syn keyword picRegisterPart T0CKI +syn match picRegisterPart "RA[0-4]" + +" PORTB +syn keyword picRegisterPart INT +syn match picRegisterPart "RB[0-7]" + +" INTCON +syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF + +" OPTION +syn keyword picRegisterPart RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 + +" EECON2 +syn keyword picRegisterPart EEIF WRERR WREN WR RD + +" INTCON +syn keyword picRegisterPart GIE EEIE T0IE INTE RBIE T0IF INTF RBIF + + +" OpCodes... +syn keyword picOpcode ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ +syn keyword picOpcode IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF +syn keyword picOpcode BCF BSF BTFSC BTFSS +syn keyword picOpcode ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE +syn keyword picOpcode RETLW RETURN SLEEP SUBLW XORLW +syn keyword picOpcode GOTO + + +" Directives +syn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG +syn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC +syn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND +syn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF +syn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND +syn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET +syn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR +syn keyword picDirective VARIABLE WHILE INCLUDE +syn match picDirective "#\=UNDEFINE" +syn match picDirective "#\=INCLUDE" +syn match picDirective "#\=DEFINE" + + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_pic16f84_syntax_inits") + if version < 508 + let did_pic16f84_syntax_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink picTodo Todo + HiLink picComment Comment + HiLink picDirective Statement + HiLink picLabel Label + HiLink picString String + + "HiLink picOpcode Keyword + "HiLink picRegister Structure + "HiLink picRegisterPart Special + + HiLink picASCII String + HiLink picBinary Number + HiLink picDecimal Number + HiLink picHexadecimal Number + HiLink picOctal Number + + HiLink picIdentifier Identifier + + delcommand HiLink +endif + +let b:current_syntax = "pic" + +" vim: ts=8 |