blob: bcb01f4dbd196f8e3206985bb9bdb46d0768c8eb [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" 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 Moolenaar89bcfda2016-08-30 23:26:57 +02008" quit when a syntax file was already loaded
9if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000010 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020091" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +000092
Bram Moolenaarf37506f2016-08-31 22:22:10 +020093hi def link picTodo Todo
94hi def link picComment Comment
95hi def link picDirective Statement
96hi def link picLabel Label
97hi def link picString String
Bram Moolenaar071d4272004-06-13 20:20:40 +000098
Bram Moolenaarf37506f2016-08-31 22:22:10 +020099"hi def link picOpcode Keyword
100"hi def link picRegister Structure
101"hi def link picRegisterPart Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000102
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200103hi def link picASCII String
104hi def link picBinary Number
105hi def link picDecimal Number
106hi def link picHexadecimal Number
107hi def link picOctal Number
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200109hi def link picIdentifier Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110
Bram Moolenaar071d4272004-06-13 20:20:40 +0000111
112let b:current_syntax = "pic"
113
114" vim: ts=8