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