xref: /vim-8.2.3635/runtime/syntax/pic.vim (revision 89bcfda6)
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