xref: /vim-8.2.3635/runtime/syntax/pic.vim (revision bb76f24a)
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
92
93hi def link picTodo		Todo
94hi def link picComment		Comment
95hi def link picDirective		Statement
96hi def link picLabel		Label
97hi def link picString		String
98
99"hi def link picOpcode		Keyword
100"hi def link picRegister		Structure
101"hi def link picRegisterPart	Special
102
103hi def link picASCII		String
104hi def link picBinary		Number
105hi def link picDecimal		Number
106hi def link picHexadecimal		Number
107hi def link picOctal		Number
108
109hi def link picIdentifier		Identifier
110
111
112let b:current_syntax = "pic"
113
114" vim: ts=8
115