xref: /vim-8.2.3635/runtime/syntax/jal.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	JAL
3071d4279SBram Moolenaar" Version: 0.1
4071d4279SBram Moolenaar" Last Change:	2003 May 11
5071d4279SBram Moolenaar" Maintainer:  Mark Gross <[email protected]>
6071d4279SBram Moolenaar" This is a syntax definition for the JAL language.
7071d4279SBram Moolenaar" It is based on the Source Forge compiler source code.
8071d4279SBram Moolenaar" https://sourceforge.net/projects/jal/
9071d4279SBram Moolenaar"
10071d4279SBram Moolenaar" TODO test.
11071d4279SBram Moolenaar
1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1389bcfda6SBram Moolenaarif exists("b:current_syntax")
14071d4279SBram Moolenaar  finish
15071d4279SBram Moolenaarendif
16071d4279SBram Moolenaar
17071d4279SBram Moolenaarsyn case ignore
18071d4279SBram Moolenaarsyn sync lines=250
19071d4279SBram Moolenaar
20071d4279SBram Moolenaarsyn keyword picTodo NOTE TODO XXX contained
21071d4279SBram Moolenaar
22071d4279SBram Moolenaarsyn match picIdentifier "[a-z_$][a-z0-9_$]*"
23071d4279SBram Moolenaarsyn match picLabel      "^[A-Z_$][A-Z0-9_$]*"
24071d4279SBram Moolenaarsyn match picLabel      "^[A-Z_$][A-Z0-9_$]*:"me=e-1
25071d4279SBram Moolenaar
26071d4279SBram Moolenaarsyn match picASCII      "A\='.'"
27071d4279SBram Moolenaarsyn match picBinary     "B'[0-1]\+'"
28071d4279SBram Moolenaarsyn match picDecimal    "D'\d\+'"
29071d4279SBram Moolenaarsyn match picDecimal    "\d\+"
30071d4279SBram Moolenaarsyn match picHexadecimal "0x\x\+"
31071d4279SBram Moolenaarsyn match picHexadecimal "H'\x\+'"
32071d4279SBram Moolenaarsyn match picHexadecimal "[0-9]\x*h"
33071d4279SBram Moolenaarsyn match picOctal      "O'[0-7]\o*'"
34071d4279SBram Moolenaar
35071d4279SBram Moolenaarsyn match picComment    ";.*" contains=picTodo
36071d4279SBram Moolenaar
37071d4279SBram Moolenaarsyn region picString    start=+"+ end=+"+
38071d4279SBram Moolenaar
39071d4279SBram Moolenaarsyn keyword picRegister indf tmr0 pcl status fsr port_a port_b port_c port_d port_e x84_eedata x84_eeadr pclath intcon
40071d4279SBram Moolenaarsyn keyword picRegister f877_tmr1l   f877_tmr1h   f877_t1con   f877_t2con   f877_ccpr1l  f877_ccpr1h  f877_ccp1con
41071d4279SBram Moolenaarsyn keyword picRegister f877_pir1    f877_pir2    f877_pie1    f877_adcon1  f877_adcon0  f877_pr2     f877_adresl  f877_adresh
42071d4279SBram Moolenaarsyn keyword picRegister f877_eeadr   f877_eedath  f877_eeadrh  f877_eedata  f877_eecon1  f877_eecon2  f628_EECON2
43071d4279SBram Moolenaarsyn keyword picRegister f877_rcsta   f877_txsta   f877_spbrg   f877_txreg   f877_rcreg   f628_EEDATA  f628_EEADR   f628_EECON1
44071d4279SBram Moolenaar
45071d4279SBram Moolenaar" Register --- bits
46071d4279SBram Moolenaar" STATUS
47071d4279SBram Moolenaarsyn keyword picRegisterPart status_c status_dc status_z status_pd
48071d4279SBram Moolenaarsyn keyword picRegisterPart status_to status_rp0 status_rp1 status_irp
49071d4279SBram Moolenaar
50071d4279SBram Moolenaar" pins
51071d4279SBram Moolenaarsyn keyword picRegisterPart pin_a0 pin_a1 pin_a2 pin_a3 pin_a4 pin_a5
52071d4279SBram Moolenaarsyn keyword picRegisterPart pin_b0 pin_b1 pin_b2 pin_b3 pin_b4 pin_b5 pin_b6 pin_b7
53071d4279SBram Moolenaarsyn keyword picRegisterPart pin_c0 pin_c1 pin_c2 pin_c3 pin_c4 pin_c5 pin_c6 pin_c7
54071d4279SBram Moolenaarsyn keyword picRegisterPart pin_d0 pin_d1 pin_d2 pin_d3 pin_d4 pin_d5 pin_d6 pin_d7
55071d4279SBram Moolenaarsyn keyword picRegisterPart pin_e0 pin_e1 pin_e2
56071d4279SBram Moolenaar
57071d4279SBram Moolenaarsyn keyword picPortDir port_a_direction  port_b_direction  port_c_direction  port_d_direction  port_e_direction
58071d4279SBram Moolenaar
59071d4279SBram Moolenaarsyn match picPinDir "pin_a[012345]_direction"
60071d4279SBram Moolenaarsyn match picPinDir "pin_b[01234567]_direction"
61071d4279SBram Moolenaarsyn match picPinDir "pin_c[01234567]_direction"
62071d4279SBram Moolenaarsyn match picPinDir "pin_d[01234567]_direction"
63071d4279SBram Moolenaarsyn match picPinDir "pin_e[012]_direction"
64071d4279SBram Moolenaar
65071d4279SBram Moolenaar
66071d4279SBram Moolenaar" INTCON
67071d4279SBram Moolenaarsyn keyword picRegisterPart intcon_gie intcon_eeie intcon_peie intcon_t0ie intcon_inte
68071d4279SBram Moolenaarsyn keyword picRegisterPart intcon_rbie intcon_t0if intcon_intf intcon_rbif
69071d4279SBram Moolenaar
70071d4279SBram Moolenaar" TIMER
71071d4279SBram Moolenaarsyn keyword picRegisterPart t1ckps1 t1ckps0 t1oscen t1sync tmr1cs tmr1on tmr1ie tmr1if
72071d4279SBram Moolenaar
73071d4279SBram Moolenaar"cpp bits
74071d4279SBram Moolenaarsyn keyword picRegisterPart ccp1x ccp1y
75071d4279SBram Moolenaar
76071d4279SBram Moolenaar" adcon bits
77071d4279SBram Moolenaarsyn keyword picRegisterPart adcon0_go adcon0_ch0 adcon0_ch1 adcon0_ch2
78071d4279SBram Moolenaar
79071d4279SBram Moolenaar" EECON
80071d4279SBram Moolenaarsyn keyword picRegisterPart  eecon1_rd eecon1_wr eecon1_wren eecon1_wrerr eecon1_eepgd
81071d4279SBram Moolenaarsyn keyword picRegisterPart f628_eecon1_rd f628_eecon1_wr f628_eecon1_wren f628_eecon1_wrerr
82071d4279SBram Moolenaar
83071d4279SBram Moolenaar" usart
84071d4279SBram Moolenaarsyn keyword picRegisterPart tx9 txen sync brgh tx9d
85071d4279SBram Moolenaarsyn keyword picRegisterPart spen rx9 cren ferr oerr rx9d
86071d4279SBram Moolenaarsyn keyword picRegisterPart TXIF RCIF
87071d4279SBram Moolenaar
88071d4279SBram Moolenaar" OpCodes...
89071d4279SBram Moolenaarsyn keyword picOpcode addlw andlw call clrwdt goto iorlw movlw option retfie retlw return sleep sublw tris
90071d4279SBram Moolenaarsyn keyword picOpcode xorlw addwf andwf clrf clrw comf decf decfsz incf incfsz retiw iorwf movf movwf nop
91071d4279SBram Moolenaarsyn keyword picOpcode rlf rrf subwf swapf xorwf bcf bsf btfsc btfss skpz skpnz setz clrz skpc skpnc setc clrc
92071d4279SBram Moolenaarsyn keyword picOpcode skpdc skpndc setdc clrdc movfw tstf bank page HPAGE mullw mulwf cpfseq cpfsgt cpfslt banka bankb
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar
95071d4279SBram Moolenaarsyn keyword jalBoolean		true false
96071d4279SBram Moolenaarsyn keyword jalBoolean		off on
97071d4279SBram Moolenaarsyn keyword jalBit		high low
98071d4279SBram Moolenaarsyn keyword jalConstant		Input Output all_input all_output
99071d4279SBram Moolenaarsyn keyword jalConditional	if else then elsif end if
100071d4279SBram Moolenaarsyn keyword jalLabel		goto
101071d4279SBram Moolenaarsyn keyword jalRepeat		for while forever loop
102071d4279SBram Moolenaarsyn keyword jalStatement	procedure function
103071d4279SBram Moolenaarsyn keyword jalStatement	return end volatile const var
104071d4279SBram Moolenaarsyn keyword jalType		bit byte
105071d4279SBram Moolenaar
106071d4279SBram Moolenaarsyn keyword jalModifier		interrupt assembler asm put get
107071d4279SBram Moolenaarsyn keyword jalStatement	out in is begin at
108071d4279SBram Moolenaarsyn keyword jalDirective	pragma jump_table target target_clock target_chip name error test assert
109071d4279SBram Moolenaarsyn keyword jalPredefined       hs xt rc lp internal 16c84 16f84 16f877 sx18 sx28 12c509a 12c508
110071d4279SBram Moolenaarsyn keyword jalPredefined       12ce674 16f628 18f252 18f242 18f442 18f452 12f629 12f675 16f88
111071d4279SBram Moolenaarsyn keyword jalPredefined	16f876 16f873 sx_12 sx18 sx28 pic_12 pic_14 pic_16
112071d4279SBram Moolenaar
113071d4279SBram Moolenaarsyn keyword jalDirective chip osc clock  fuses  cpu watchdog powerup protection
114071d4279SBram Moolenaar
115071d4279SBram Moolenaarsyn keyword jalFunction		bank_0 bank_1 bank_2 bank_3 bank_4 bank_5 bank_6 bank_7 trisa trisb trisc trisd trise
116071d4279SBram Moolenaarsyn keyword jalFunction		_trisa_flush _trisb_flush _trisc_flush _trisd_flush _trise_flush
117071d4279SBram Moolenaar
118071d4279SBram Moolenaarsyn keyword jalPIC		local idle_loop
119071d4279SBram Moolenaar
120071d4279SBram Moolenaarsyn region  jalAsm		matchgroup=jalAsmKey start="\<assembler\>" end="\<end assembler\>" contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC
121071d4279SBram Moolenaarsyn region  jalAsm		matchgroup=jalAsmKey start="\<asm\>" end=/$/ contains=jalComment,jalPreProc,jalLabel,picIdentifier, picLabel,picASCII,picDecimal,picHexadecimal,picOctal,picComment,picString,picRegister,picRigisterPart,picOpcode,picDirective,jalPIC
122071d4279SBram Moolenaar
123071d4279SBram Moolenaarsyn region  jalPsudoVars matchgroup=jalPsudoVarsKey start="\<'put\>" end="/<is/>"  contains=jalComment
124071d4279SBram Moolenaar
125071d4279SBram Moolenaarsyn match  jalStringEscape	contained "#[12][0-9]\=[0-9]\="
126071d4279SBram Moolenaarsyn match   jalIdentifier		"\<[a-zA-Z_][a-zA-Z0-9_]*\>"
127071d4279SBram Moolenaarsyn match   jalSymbolOperator		"[+\-/*=]"
128071d4279SBram Moolenaarsyn match   jalSymbolOperator		"!"
129071d4279SBram Moolenaarsyn match   jalSymbolOperator		"<"
130071d4279SBram Moolenaarsyn match   jalSymbolOperator		">"
131071d4279SBram Moolenaarsyn match   jalSymbolOperator		"<="
132071d4279SBram Moolenaarsyn match   jalSymbolOperator		">="
133071d4279SBram Moolenaarsyn match   jalSymbolOperator		"!="
134071d4279SBram Moolenaarsyn match   jalSymbolOperator		"=="
135071d4279SBram Moolenaarsyn match   jalSymbolOperator		"<<"
136071d4279SBram Moolenaarsyn match   jalSymbolOperator		">>"
137071d4279SBram Moolenaarsyn match   jalSymbolOperator		"|"
138071d4279SBram Moolenaarsyn match   jalSymbolOperator		"&"
139071d4279SBram Moolenaarsyn match   jalSymbolOperator		"%"
140071d4279SBram Moolenaarsyn match   jalSymbolOperator		"?"
141071d4279SBram Moolenaarsyn match   jalSymbolOperator		"[()]"
142071d4279SBram Moolenaarsyn match   jalSymbolOperator		"[\^.]"
143071d4279SBram Moolenaarsyn match   jalLabel			"[\^]*:"
144071d4279SBram Moolenaar
145071d4279SBram Moolenaarsyn match  jalNumber		"-\=\<\d[0-9_]\+\>"
146071d4279SBram Moolenaarsyn match  jalHexNumber		"0x[0-9A-Fa-f_]\+\>"
147071d4279SBram Moolenaarsyn match  jalBinNumber		"0b[01_]\+\>"
148071d4279SBram Moolenaar
149071d4279SBram Moolenaar" String
150071d4279SBram Moolenaar"wrong strings
151071d4279SBram Moolenaarsyn region  jalStringError matchgroup=jalStringError start=+"+ end=+"+ end=+$+ contains=jalStringEscape
152071d4279SBram Moolenaar
153071d4279SBram Moolenaar"right strings
154071d4279SBram Moolenaarsyn region  jalString matchgroup=jalString start=+'+ end=+'+ oneline contains=jalStringEscape
155071d4279SBram Moolenaar" To see the start and end of strings:
156071d4279SBram Moolenaarsyn region  jalString matchgroup=jalString start=+"+ end=+"+ oneline contains=jalStringEscapeGPC
157071d4279SBram Moolenaar
158071d4279SBram Moolenaarsyn keyword jalTodo contained	TODO
159071d4279SBram Moolenaarsyn region jalComment		start=/-- /  end=/$/ oneline contains=jalTodo
160071d4279SBram Moolenaarsyn region jalComment		start=/--\t/  end=/$/ oneline contains=jalTodo
161071d4279SBram Moolenaarsyn match  jalComment		/--\_$/
162071d4279SBram Moolenaarsyn region jalPreProc		start="include"  end=/$/ contains=JalComment,jalToDo
163071d4279SBram Moolenaar
164071d4279SBram Moolenaar
165071d4279SBram Moolenaarif exists("jal_no_tabs")
166071d4279SBram Moolenaar	syn match jalShowTab "\t"
167071d4279SBram Moolenaarendif
168071d4279SBram Moolenaar
169071d4279SBram Moolenaar
170071d4279SBram Moolenaar" Define the default highlighting.
17189bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
172071d4279SBram Moolenaar
173*f37506f6SBram Moolenaarhi def link jalAcces		jalStatement
174*f37506f6SBram Moolenaarhi def link jalBoolean		Boolean
175*f37506f6SBram Moolenaarhi def link jalBit			Boolean
176*f37506f6SBram Moolenaarhi def link jalComment		Comment
177*f37506f6SBram Moolenaarhi def link jalConditional		Conditional
178*f37506f6SBram Moolenaarhi def link jalConstant		Constant
179*f37506f6SBram Moolenaarhi def link jalDelimiter		Identifier
180*f37506f6SBram Moolenaarhi def link jalDirective		PreProc
181*f37506f6SBram Moolenaarhi def link jalException		Exception
182*f37506f6SBram Moolenaarhi def link jalFloat		Float
183*f37506f6SBram Moolenaarhi def link jalFunction		Function
184*f37506f6SBram Moolenaarhi def link jalPsudoVarsKey	Function
185*f37506f6SBram Moolenaarhi def link jalLabel		Label
186*f37506f6SBram Moolenaarhi def link jalMatrixDelimiter	Identifier
187*f37506f6SBram Moolenaarhi def link jalModifier		Type
188*f37506f6SBram Moolenaarhi def link jalNumber		Number
189*f37506f6SBram Moolenaarhi def link jalBinNumber		Number
190*f37506f6SBram Moolenaarhi def link jalHexNumber		Number
191*f37506f6SBram Moolenaarhi def link jalOperator		Operator
192*f37506f6SBram Moolenaarhi def link jalPredefined		Constant
193*f37506f6SBram Moolenaarhi def link jalPreProc		PreProc
194*f37506f6SBram Moolenaarhi def link jalRepeat		Repeat
195*f37506f6SBram Moolenaarhi def link jalStatement		Statement
196*f37506f6SBram Moolenaarhi def link jalString		String
197*f37506f6SBram Moolenaarhi def link jalStringEscape	Special
198*f37506f6SBram Moolenaarhi def link jalStringEscapeGPC	Special
199*f37506f6SBram Moolenaarhi def link jalStringError		Error
200*f37506f6SBram Moolenaarhi def link jalStruct		jalStatement
201*f37506f6SBram Moolenaarhi def link jalSymbolOperator	jalOperator
202*f37506f6SBram Moolenaarhi def link jalTodo		Todo
203*f37506f6SBram Moolenaarhi def link jalType		Type
204*f37506f6SBram Moolenaarhi def link jalUnclassified	Statement
205*f37506f6SBram Moolenaarhi def link jalAsm			Assembler
206*f37506f6SBram Moolenaarhi def link jalError		Error
207*f37506f6SBram Moolenaarhi def link jalAsmKey		Statement
208*f37506f6SBram Moolenaarhi def link jalPIC			Statement
209071d4279SBram Moolenaar
210*f37506f6SBram Moolenaarhi def link jalShowTab		Error
211071d4279SBram Moolenaar
212*f37506f6SBram Moolenaarhi def link picTodo		Todo
213*f37506f6SBram Moolenaarhi def link picComment		Comment
214*f37506f6SBram Moolenaarhi def link picDirective		Statement
215*f37506f6SBram Moolenaarhi def link picLabel		Label
216*f37506f6SBram Moolenaarhi def link picString		String
217071d4279SBram Moolenaar
218*f37506f6SBram Moolenaarhi def link picOpcode		Keyword
219*f37506f6SBram Moolenaarhi def link picRegister		Structure
220*f37506f6SBram Moolenaarhi def link picRegisterPart	Special
221*f37506f6SBram Moolenaarhi def link picPinDir		SPecial
222*f37506f6SBram Moolenaarhi def link picPortDir		SPecial
223071d4279SBram Moolenaar
224*f37506f6SBram Moolenaarhi def link picASCII		String
225*f37506f6SBram Moolenaarhi def link picBinary		Number
226*f37506f6SBram Moolenaarhi def link picDecimal		Number
227*f37506f6SBram Moolenaarhi def link picHexadecimal		Number
228*f37506f6SBram Moolenaarhi def link picOctal		Number
229071d4279SBram Moolenaar
230*f37506f6SBram Moolenaarhi def link picIdentifier		Identifier
231071d4279SBram Moolenaar
232071d4279SBram Moolenaar
233071d4279SBram Moolenaar
234071d4279SBram Moolenaarlet b:current_syntax = "jal"
235071d4279SBram Moolenaar
236071d4279SBram Moolenaar" vim: ts=8 sw=2
237