1
<?xml version="1.0" encoding="UTF-8"?>
2
<!DOCTYPE language SYSTEM "language.dtd">
3
<!-- kate: space-indent on; indent-width 2; -->
5
<!-- Microchip PIC assembler syntaxfile for gpasm/mpasm assembler by
6
* Original author: Alain GIBAUD (alain.gibaud@univ-valenciennes.fr)
7
* Small modifications for the new DTD: Joseph Wenninger <jowenn@kde.org>
8
* Updated for 16-bit devices, etc.: Laurence Withers <lwithers@users.sf.net>
11
<language name="PicAsm" version="1.07" kateversion="2.3" section="Assembler" extensions="*.src;*.SRC;*.asm;*.ASM;*.pic;*.PIC" mimetype="text/x-PicSrc;text/x-PicHdr" author="Alain GIBAUD (alain.gibaud@univ-valenciennes.fr)" license="LGPL">
14
<list name="directives">
15
<item> __BADRAM </item>
16
<item> __CONFIG </item>
17
<item> __IDLOCS </item>
18
<item> __MAXRAM </item>
21
<item> constant </item>
32
<item> errorlevel </item>
39
<item> noexpand </item>
43
<item> processor </item>
48
<item> subtitle </item>
50
<item> variable </item>
54
<item> CONSTANT </item>
65
<item> ERRORLEVEL </item>
72
<item> NOEXPAND </item>
76
<item> PROCESSOR </item>
81
<item> SUBTITLE </item>
83
<item> VARIABLE </item>
87
<list name="conditional">
94
<item> include </item>
100
<list name="gpasm_macro">
130
<list name="instructions">
133
<item> addwfc </item>
152
<item> clrwdt </item>
154
<item> cpfseq </item>
155
<item> cpfslt </item>
156
<item> cpfsgt </item>
159
<item> dcfsnz </item>
160
<item> decfsz </item>
163
<item> incfsz </item>
164
<item> infsnz </item>
177
<item> option </item>
182
<item> retfie </item>
184
<item> return </item>
193
<item> subfwb </item>
196
<item> subwfb </item>
200
<item> tstfsz </item>
206
<item> ADDWFC </item>
225
<item> CLRWDT </item>
227
<item> CPFSEQ </item>
228
<item> CPFSLT </item>
229
<item> CPFSGT </item>
231
<item> DCFSNZ </item>
233
<item> DECFSZ </item>
236
<item> INCFSZ </item>
237
<item> INFSNZ </item>
250
<item> OPTION </item>
255
<item> RETFIE </item>
257
<item> RETURN </item>
266
<item> SUBFWB </item>
269
<item> SUBWFB </item>
273
<item> TSTFSZ </item>
278
<list name="instruction_attr">
280
<item> ACCESS </item>
281
<item> BANKED </item>
288
<!-- The main ('normal') context -->
290
<context name="normal" attribute="Normal Text" lineEndContext="#stay">
291
<keyword attribute="Directives" context="#stay" String="directives"/>
292
<keyword attribute="Instructions" context="#stay" String="instructions"/>
293
<keyword attribute="InstructionAttr" context="#stay" String="instruction_attr"/>
294
<keyword attribute="Preprocessor" context="#stay" String="conditional"/>
295
<keyword attribute="GPASM-macros" context="#stay" String="gpasm_macro"/>
296
<HlCHex attribute="Based Numbers" context="#stay"/>
297
<RegExpr attribute="Based Numbers" context="#stay" String="([ \t,][0-9A-F]+H[ \t,])" insensitive="TRUE" />
298
<RegExpr attribute="Based Numbers" context="#stay" String="([ \t,][0-9A-F]+H)$" insensitive="TRUE" />
299
<RegExpr attribute="Based Numbers" context="#stay" String="([ \t,][0-9]+D)" insensitive="TRUE" />
300
<RegExpr attribute="Based Numbers" context="#stay" String="([ \t,][0-7]+O)" insensitive="TRUE" />
301
<RegExpr attribute="Based Numbers" context="#stay" String="([ \t,][0-1]+B)" insensitive="TRUE" />
302
<Int attribute="Non Based Numbers" context="#stay" />
303
<HlCChar attribute="Char" context="#stay"/>
304
<Detect2Chars attribute="Char" context="ASCIIChar" char="A" char1="'" />
305
<Detect2Chars attribute="Char" context="ASCIIChar" char="a" char1="'" />
306
<Detect2Chars attribute="Based Numbers" context="binaryDigits" char="B" char1="'" />
307
<Detect2Chars attribute="Based Numbers" context="binaryDigits" char="b" char1="'" />
308
<Detect2Chars attribute="Based Numbers" context="hexDigits" char="H" char1="'" />
309
<Detect2Chars attribute="Based Numbers" context="hexDigits" char="h" char1="'" />
310
<Detect2Chars attribute="Based Numbers" context="octDigits" char="O" char1="'" />
311
<Detect2Chars attribute="Based Numbers" context="octDigits" char="o" char1="'" />
312
<Detect2Chars attribute="Based Numbers" context="decimalDigits" char="D" char1="'" />
313
<Detect2Chars attribute="Based Numbers" context="decimalDigits" char="d" char1="'" />
314
<DetectChar attribute="String" context="string" char=""" />
315
<DetectChar attribute="Comment" context="comment" char=";" />
316
<AnyChar attribute="Symbol" context="#stay" String="-/*%+=><&|^!~" />
317
<StringDetect attribute="Preprocessor" context="#stay" String="#define" />
318
<StringDetect attribute="Preprocessor" context="#stay" String="#undefine" />
319
<StringDetect attribute="Preprocessor" context="#stay" String="#v" />
324
<!-- Additional contexts -->
326
<context name="string" attribute="String" lineEndContext="#pop">
327
<LineContinue attribute="String" context="#stay"/>
328
<HlCStringChar attribute="Char" context="#stay"/>
329
<DetectChar attribute="String" context="#pop" char="""/>
332
<context name="comment" attribute="Comment" lineEndContext="#pop">
333
<RegExpr attribute="Instructions" context="#stay"
334
String="(INPUT|OUTPUT|PARAMETERS|AUTHOR|EMAIL)" />
335
<RegExpr attribute="Alert" context="#stay" String="(FIXME|TODO)" />
340
<!-- Quoted numbers -->
342
<context name="decimalDigits" attribute="Based Numbers" lineEndContext="#pop">
343
<DetectChar attribute="Based Numbers" context="#pop" char="'"/>
344
<RegExpr attribute="Error" context="QuotedNumError" String="\D" />
347
<context name="binaryDigits" attribute="Based Numbers" lineEndContext="#pop">
348
<DetectChar attribute="Based Numbers" context="#pop" char="'"/>
349
<RegExpr attribute="Error" context="QuotedNumError" String="[^0-1]" />
352
<context name="hexDigits" attribute="Based Numbers" lineEndContext="#pop">
353
<DetectChar attribute="Based Numbers" context="#pop" char="'"/>
354
<RegExpr attribute="Error" context="QuotedNumError" String="[^0-9A-Fa-f]" />
357
<context name="octDigits" attribute="Based Numbers" lineEndContext="#pop">
358
<DetectChar attribute="Based Numbers" context="#pop" char="'"/>
359
<RegExpr attribute="Error" context="QuotedNumError" String="[^0-7]" />
362
<context name="ASCIIChar" attribute="Char" lineEndContext="#pop">
363
<DetectChar attribute="Char" context="#pop" char="'"/>
364
<RegExpr attribute="Error" context="QuotedNumError" String=".[^']" />
367
<context name="QuotedNumError" attribute="Error" lineEndContext="#pop#pop">
368
<DetectChar attribute="Error" context="#pop#pop" char="'" />
375
<itemData name="Normal Text" defStyleNum="dsNormal"/>
376
<itemData name="Directives" defStyleNum="dsOthers"/>
377
<itemData name="Preprocessor" defStyleNum="dsOthers"/>
378
<itemData name="Instructions" defStyleNum="dsKeyword"/>
379
<itemData name="InstructionAttr" defStyleNum="dsNormal" color="#000080" selColor="#000080" bold="0" italic="1"/>
380
<itemData name="Unbased Numbers" defStyleNum="dsDecVal"/>
381
<itemData name="Char" defStyleNum="dsChar"/>
382
<itemData name="String" defStyleNum="dsString"/>
383
<itemData name="Comment" defStyleNum="dsComment" />
384
<itemData name="Symbol" defStyleNum="dsNormal" color="#FF0000" selColor="#083194" bold="0" italic="0"/>
385
<itemData name="Prep. Lib" defStyleNum="dsOthers"/>
386
<itemData name="Based Numbers" defStyleNum="dsBaseN" />
387
<itemData name="GPASM-macros" defStyleNum="dsNormal" color="#000000" selColor="#000000" bold="1" italic="1"/>
388
<itemData name="Alert" defStyleNum="dsAlert" />
389
<itemData name="Error" defStyleNum="dsError" />
397
<comment name="singleLine" start=";" />
399
<keywords casesensitive="1" />