xref: /vim-8.2.3635/runtime/syntax/pic.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     PIC16F84 Assembler (Microchip's microcontroller)
3071d4279SBram Moolenaar" Maintainer:   Aleksandar Veselinovic <[email protected]>
4071d4279SBram Moolenaar" Last Change:  2003 May 11
5071d4279SBram Moolenaar" URL:		http://galeb.etf.bg.ac.yu/~alexa/vim/syntax/pic.vim
6071d4279SBram Moolenaar" Revision:     1.01
7071d4279SBram Moolenaar
889bcfda6SBram Moolenaar" quit when a syntax file was already loaded
989bcfda6SBram Moolenaarif exists("b:current_syntax")
10071d4279SBram Moolenaar  finish
11071d4279SBram Moolenaarendif
12071d4279SBram Moolenaar
13071d4279SBram Moolenaarsyn case match
14071d4279SBram Moolenaarsyn keyword picTodo NOTE TODO XXX contained
15071d4279SBram Moolenaar
16071d4279SBram Moolenaarsyn case ignore
17071d4279SBram Moolenaar
18071d4279SBram Moolenaarsyn match picIdentifier "[a-z_$][a-z0-9_$]*"
19071d4279SBram Moolenaarsyn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
20071d4279SBram Moolenaarsyn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1
21071d4279SBram Moolenaar
22071d4279SBram Moolenaarsyn match picASCII      "A\='.'"
23071d4279SBram Moolenaarsyn match picBinary     "B'[0-1]\+'"
24071d4279SBram Moolenaarsyn match picDecimal    "D'\d\+'"
25071d4279SBram Moolenaarsyn match picDecimal    "\d\+"
26071d4279SBram Moolenaarsyn match picHexadecimal "0x\x\+"
27071d4279SBram Moolenaarsyn match picHexadecimal "H'\x\+'"
28071d4279SBram Moolenaarsyn match picHexadecimal "[0-9]\x*h"
29071d4279SBram Moolenaarsyn match picOctal      "O'[0-7]\o*'"
30071d4279SBram Moolenaar
31071d4279SBram Moolenaar
32071d4279SBram Moolenaarsyn match picComment    ";.*" contains=picTodo
33071d4279SBram Moolenaar
34071d4279SBram Moolenaarsyn region picString    start=+"+ end=+"+
35071d4279SBram Moolenaar
36071d4279SBram Moolenaarsyn keyword picRegister		INDF TMR0 PCL STATUS FSR PORTA PORTB
37071d4279SBram Moolenaarsyn keyword picRegister		EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL
38071d4279SBram Moolenaarsyn keyword picRegister		FSR TRISA TRISB EECON1 EECON2 INTCON OPTION
39071d4279SBram Moolenaar
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" Register --- bits
42071d4279SBram Moolenaar
43071d4279SBram Moolenaar" STATUS
44071d4279SBram Moolenaarsyn keyword picRegisterPart     IRP RP1 RP0 TO PD Z DC C
45071d4279SBram Moolenaar
46071d4279SBram Moolenaar" PORTA
47071d4279SBram Moolenaarsyn keyword picRegisterPart     T0CKI
48071d4279SBram Moolenaarsyn match   picRegisterPart     "RA[0-4]"
49071d4279SBram Moolenaar
50071d4279SBram Moolenaar" PORTB
51071d4279SBram Moolenaarsyn keyword picRegisterPart     INT
52071d4279SBram Moolenaarsyn match   picRegisterPart     "RB[0-7]"
53071d4279SBram Moolenaar
54071d4279SBram Moolenaar" INTCON
55071d4279SBram Moolenaarsyn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
56071d4279SBram Moolenaar
57071d4279SBram Moolenaar" OPTION
58071d4279SBram Moolenaarsyn keyword picRegisterPart     RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0
59071d4279SBram Moolenaar
60071d4279SBram Moolenaar" EECON2
61071d4279SBram Moolenaarsyn keyword picRegisterPart     EEIF WRERR WREN WR RD
62071d4279SBram Moolenaar
63071d4279SBram Moolenaar" INTCON
64071d4279SBram Moolenaarsyn keyword picRegisterPart     GIE EEIE T0IE INTE RBIE T0IF INTF RBIF
65071d4279SBram Moolenaar
66071d4279SBram Moolenaar
67071d4279SBram Moolenaar" OpCodes...
68071d4279SBram Moolenaarsyn keyword picOpcode  ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ
69071d4279SBram Moolenaarsyn keyword picOpcode  IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF
70071d4279SBram Moolenaarsyn keyword picOpcode  BCF BSF BTFSC BTFSS
71071d4279SBram Moolenaarsyn keyword picOpcode  ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE
72071d4279SBram Moolenaarsyn keyword picOpcode  RETLW RETURN SLEEP SUBLW XORLW
73071d4279SBram Moolenaarsyn keyword picOpcode  GOTO
74071d4279SBram Moolenaar
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" Directives
77071d4279SBram Moolenaarsyn keyword picDirective __BADRAM BANKISEL BANKSEL CBLOCK CODE __CONFIG
78071d4279SBram Moolenaarsyn keyword picDirective CONSTANT DATA DB DE DT DW ELSE END ENDC
79071d4279SBram Moolenaarsyn keyword picDirective ENDIF ENDM ENDW EQU ERROR ERRORLEVEL EXITM EXPAND
80071d4279SBram Moolenaarsyn keyword picDirective EXTERN FILL GLOBAL IDATA __IDLOCS IF IFDEF IFNDEF
81071d4279SBram Moolenaarsyn keyword picDirective INCLUDE LIST LOCAL MACRO __MAXRAM MESSG NOEXPAND
82071d4279SBram Moolenaarsyn keyword picDirective NOLIST ORG PAGE PAGESEL PROCESSOR RADIX RES SET
83071d4279SBram Moolenaarsyn keyword picDirective SPACE SUBTITLE TITLE UDATA UDATA_OVR UDATA_SHR
84071d4279SBram Moolenaarsyn keyword picDirective VARIABLE WHILE INCLUDE
85071d4279SBram Moolenaarsyn match picDirective   "#\=UNDEFINE"
86071d4279SBram Moolenaarsyn match picDirective   "#\=INCLUDE"
87071d4279SBram Moolenaarsyn match picDirective   "#\=DEFINE"
88071d4279SBram Moolenaar
89071d4279SBram Moolenaar
90071d4279SBram Moolenaar" Define the default highlighting.
9189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
92071d4279SBram Moolenaar
93*f37506f6SBram Moolenaarhi def link picTodo		Todo
94*f37506f6SBram Moolenaarhi def link picComment		Comment
95*f37506f6SBram Moolenaarhi def link picDirective		Statement
96*f37506f6SBram Moolenaarhi def link picLabel		Label
97*f37506f6SBram Moolenaarhi def link picString		String
98071d4279SBram Moolenaar
99*f37506f6SBram Moolenaar"hi def link picOpcode		Keyword
100*f37506f6SBram Moolenaar"hi def link picRegister		Structure
101*f37506f6SBram Moolenaar"hi def link picRegisterPart	Special
102071d4279SBram Moolenaar
103*f37506f6SBram Moolenaarhi def link picASCII		String
104*f37506f6SBram Moolenaarhi def link picBinary		Number
105*f37506f6SBram Moolenaarhi def link picDecimal		Number
106*f37506f6SBram Moolenaarhi def link picHexadecimal		Number
107*f37506f6SBram Moolenaarhi def link picOctal		Number
108071d4279SBram Moolenaar
109*f37506f6SBram Moolenaarhi def link picIdentifier		Identifier
110071d4279SBram Moolenaar
111071d4279SBram Moolenaar
112071d4279SBram Moolenaarlet b:current_syntax = "pic"
113071d4279SBram Moolenaar
114071d4279SBram Moolenaar" vim: ts=8
115