Warning, /frameworks/syntax-highlighting/data/syntax/picsrc.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004 <!ENTITY hex "[0-9a-f]++h?">
0005 <!ENTITY oct_hex "[0-7]++(?:&hex;|[hoq]?)|&hex;">
0006 <!ENTITY bin_oct_hex "[01]++(?:&oct_hex;|[hoqb]?)|&oct_hex;">
0007 ]>
0008 <!-- kate: space-indent on; indent-width 2; -->
0009
0010 <!-- Microchip PIC assembler syntaxfile for gpasm/mpasm assembler by
0011 * Original author: Alain GIBAUD (alain.gibaud@univ-valenciennes.fr)
0012 * Small modifications for the new DTD: Joseph Wenninger <jowenn@kde.org>
0013 * Updated for 16-bit devices, etc.: Laurence Withers <lwithers@users.sf.net>
0014 -->
0015
0016 <language name="PicAsm" version="7" kateversion="5.62" 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">
0017
0018 <highlighting>
0019 <list name="directives">
0020 <item>__BADRAM</item>
0021 <item>__CONFIG</item>
0022 <item>__IDLOCS</item>
0023 <item>__MAXRAM</item>
0024
0025 <item>cblock</item>
0026 <item>constant</item>
0027 <item>da</item>
0028 <item>data</item>
0029 <item>db</item>
0030 <item>de</item>
0031 <item>dt</item>
0032 <item>dw</item>
0033 <item>endc</item>
0034 <item>endm</item>
0035 <item>equ</item>
0036 <item>error</item>
0037 <item>errorlevel</item>
0038 <item>exitm</item>
0039 <item>fill</item>
0040 <item>list</item>
0041 <item>local</item>
0042 <item>macro</item>
0043 <item>messg</item>
0044 <item>noexpand</item>
0045 <item>nolist</item>
0046 <item>org</item>
0047 <item>page</item>
0048 <item>processor</item>
0049 <item>radix</item>
0050 <item>res</item>
0051 <item>set</item>
0052 <item>space</item>
0053 <item>subtitle</item>
0054 <item>title</item>
0055 <item>variable</item>
0056 <item>end</item>
0057 </list>
0058
0059 <list name="conditional">
0060 <item>if</item>
0061 <item>else</item>
0062 <item>idef</item>
0063 <item>ifndef</item>
0064 <item>endif</item>
0065 <item>while</item>
0066 <item>include</item>
0067 <item>endw</item>
0068 </list>
0069
0070 <list name="gpasm_macro">
0071 <item>addcf</item>
0072 <item>b</item>
0073 <item>clrc</item>
0074 <item>clrz</item>
0075 <item>setc</item>
0076 <item>setz</item>
0077 <item>movfw</item>
0078 <item>skpc</item>
0079 <item>skpz</item>
0080 <item>skpnc</item>
0081 <item>skpnz</item>
0082 <item>subcf</item>
0083 <item>tstf</item>
0084 </list>
0085
0086 <list name="branch instructions">
0087 <item>bra</item>
0088 <item>brw</item>
0089 <item>bc</item>
0090 <item>bz</item>
0091 <item>bnc</item>
0092 <item>bnz</item>
0093 <item>call</item>
0094 <item>goto</item>
0095 </list>
0096
0097 <list name="instructions">
0098 <item>addlw</item>
0099 <item>addwf</item>
0100 <item>addwfc</item>
0101 <item>andlw</item>
0102 <item>andwf</item>
0103 <item>bcf</item>
0104 <item>bn</item>
0105 <item>bnov</item>
0106 <item>bov</item>
0107 <item>bsf</item>
0108 <item>btg</item>
0109 <item>btfsc</item>
0110 <item>btfss</item>
0111 <item>clrf</item>
0112 <item>clrw</item>
0113 <item>clrwdt</item>
0114 <item>comf</item>
0115 <item>cpfseq</item>
0116 <item>cpfslt</item>
0117 <item>cpfsgt</item>
0118 <item>daw</item>
0119 <item>decf</item>
0120 <item>dcfsnz</item>
0121 <item>decfsz</item>
0122 <item>incf</item>
0123 <item>incfsz</item>
0124 <item>infsnz</item>
0125 <item>iorlw</item>
0126 <item>iorwf</item>
0127 <item>lfsr</item>
0128 <item>movf</item>
0129 <item>movff</item>
0130 <item>movlb</item>
0131 <item>movlw</item>
0132 <item>movwf</item>
0133 <item>mullw</item>
0134 <item>mulwf</item>
0135 <item>negf</item>
0136 <item>nop</item>
0137 <item>option</item>
0138 <item>pop</item>
0139 <item>push</item>
0140 <item>rcall</item>
0141 <item>reset</item>
0142 <item>retfie</item>
0143 <item>retlw</item>
0144 <item>return</item>
0145 <item>rlcf</item>
0146 <item>rlf</item>
0147 <item>rlncf</item>
0148 <item>rrcf</item>
0149 <item>rrf</item>
0150 <item>rrncf</item>
0151 <item>setf</item>
0152 <item>sleep</item>
0153 <item>subfwb</item>
0154 <item>sublw</item>
0155 <item>subwf</item>
0156 <item>subwfb</item>
0157 <item>swapf</item>
0158 <item>tblrd</item>
0159 <item>tblwt</item>
0160 <item>tstfsz</item>
0161 <item>xorlw</item>
0162 <item>xorwf</item>
0163 </list>
0164
0165 <list name="instruction_attr">
0166 <item>A</item>
0167 <item>ACCESS</item>
0168 <item>BANKED</item>
0169 <item>W</item>
0170 <item>F</item>
0171 </list>
0172
0173 <list name="preprocessor">
0174 <item>define</item>
0175 <item>undefine</item>
0176 <item>v</item>
0177 </list>
0178
0179 <list name="comment instructions">
0180 <item>INPUT</item>
0181 <item>OUTPUT</item>
0182 <item>PARAMETERS</item>
0183 <item>AUTHOR</item>
0184 <item>EMAIL</item>
0185 </list>
0186
0187 <contexts>
0188
0189 <!-- The main ('normal') context -->
0190
0191 <context name="normal" attribute="Normal Text" lineEndContext="#stay">
0192 <DetectSpaces attribute="Normal Text" context="#stay"/>
0193
0194 <keyword attribute="Directives" context="Operands" String="directives" insensitive="1"/>
0195 <keyword attribute="Preprocessor" context="Operands" String="conditional"/>
0196 <DetectIdentifier attribute="Label" context="EndLabel" column="0"/>
0197 <keyword attribute="Instructions" context="Operands" String="instructions" insensitive="1"/>
0198 <keyword attribute="Branch Instructions" context="Operands" String="branch instructions" insensitive="1"/>
0199 <keyword attribute="InstructionAttr" context="Operands" String="instruction_attr" insensitive="1"/>
0200 <keyword attribute="GPASM-macros" context="Operands" String="gpasm_macro" insensitive="1"/>
0201
0202 <DetectIdentifier attribute="Unknown Instructions" context="Operands"/>
0203
0204 <DetectChar attribute="Comment" context="#pop!comment" char=";" />
0205 <DetectChar attribute="Preprocessor" context="preprocessor1" char="#"/>
0206 </context>
0207
0208 <context name="Operands" attribute="Normal Text" lineEndContext="#pop">
0209 <DetectSpaces attribute="Normal Text"/>
0210
0211 <DetectChar attribute="Unbased Numbers" context="Number16or10" char="0" lookAhead="1"/>
0212 <Int attribute="Unbased Numbers" context="CheckNumberSuffix"/>
0213 <DetectChar attribute="Based Numbers" context="Number10" char="."/>
0214
0215 <HlCChar attribute="Char" context="#stay"/>
0216 <Detect2Chars attribute="Char" context="ASCIIChar" char="A" char1="'" />
0217 <Detect2Chars attribute="Char" context="ASCIIChar" char="a" char1="'" />
0218 <Detect2Chars attribute="Based Numbers" context="binaryDigits" char="B" char1="'" />
0219 <Detect2Chars attribute="Based Numbers" context="binaryDigits" char="b" char1="'" />
0220 <Detect2Chars attribute="Based Numbers" context="hexDigits" char="H" char1="'" />
0221 <Detect2Chars attribute="Based Numbers" context="hexDigits" char="h" char1="'" />
0222 <Detect2Chars attribute="Based Numbers" context="octDigits" char="O" char1="'" />
0223 <Detect2Chars attribute="Based Numbers" context="octDigits" char="o" char1="'" />
0224 <Detect2Chars attribute="Based Numbers" context="decimalDigits" char="D" char1="'" />
0225 <Detect2Chars attribute="Based Numbers" context="decimalDigits" char="d" char1="'" />
0226 <DetectChar attribute="String" context="string" char=""" />
0227 <DetectChar attribute="Comment" context="#pop!comment" char=";" />
0228 <DetectChar attribute="Preprocessor" context="preprocessor2" char="#"/>
0229 <AnyChar attribute="Symbol" context="#stay" String=",-/*%+=><&|^!~()" />
0230
0231 <DetectIdentifier attribute="Normal Text"/>
0232 </context>
0233
0234
0235
0236 <!-- Additional contexts -->
0237
0238 <context name="EndLabel" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop">
0239 <Detect2Chars attribute="Char" context="#pop!LabelReplaceMacro" char="#" char1="v" />
0240 <DetectChar attribute="Symbol" context="#pop" char=":"/>
0241 </context>
0242 <context name="LabelReplaceMacro" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop">
0243 <DetectChar attribute="Symbol" context="#pop!ReplaceMacro" char="("/>
0244 </context>
0245 <context name="ReplaceMacro" attribute="Label" lineEndContext="#pop">
0246 <DetectChar attribute="Symbol" context="ReplaceMacro2" char="("/>
0247 <DetectChar attribute="Symbol" context="#pop!ContinueLabel" char=")"/>
0248 <IncludeRules context="Operands"/>
0249 </context>
0250 <context name="ReplaceMacro2" attribute="Label" lineEndContext="#pop">
0251 <DetectChar attribute="Symbol" context="ReplaceMacro" char="("/>
0252 <DetectChar attribute="Symbol" context="#pop" char=")"/>
0253 <IncludeRules context="Operands"/>
0254 </context>
0255 <context name="ContinueLabel" attribute="Label" lineEndContext="#pop" fallthroughContext="#pop">
0256 <DetectIdentifier attribute="Label" context="#pop!EndLabel"/>
0257 <DetectChar attribute="Symbol" context="#pop" char=":"/>
0258 </context>
0259
0260 <context name="string" attribute="String" lineEndContext="#pop">
0261 <LineContinue attribute="String" context="#stay"/>
0262 <HlCStringChar attribute="Char" context="#stay"/>
0263 <DetectChar attribute="String" context="#pop" char="""/>
0264 </context>
0265
0266 <context name="comment" attribute="Comment" lineEndContext="#pop">
0267 <DetectSpaces attribute="Comment"/>
0268 <IncludeRules context="##Comments" />
0269 <keyword attribute="Instructions" context="#stay" String="comment instructions" insensitive="0"/>
0270 <DetectIdentifier attribute="Comment"/>
0271 </context>
0272
0273 <context name="preprocessor1" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!Operands">
0274 <keyword attribute="Preprocessor" context="#pop!Operands" String="preprocessor" insensitive="1"/>
0275 <DetectIdentifier attribute="Error" context="#pop!Operands"/>
0276 </context>
0277 <context name="preprocessor2" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop">
0278 <keyword attribute="Preprocessor" context="#pop" String="preprocessor" insensitive="1"/>
0279 <DetectIdentifier attribute="Error" context="#pop"/>
0280 </context>
0281
0282
0283
0284 <!-- Number -->
0285
0286 <context name="Number10" attribute="Based Numbers" lineEndContext="#pop" fallthroughContext="#pop">
0287 <Int attribute="Unbased Numbers" context="#pop!CheckNumberSuffix"/>
0288 </context>
0289
0290 <context name="Number16or10" attribute="Based Numbers" lineEndContext="#pop" fallthroughContext="#pop">
0291 <Detect2Chars attribute="Based Numbers" context="#pop!Number16" char="0" char1="x"/>
0292 <Detect2Chars attribute="Based Numbers" context="#pop!Number16" char="0" char1="X"/>
0293 <Int attribute="Unbased Numbers" context="#pop!CheckNumberSuffix"/>
0294 </context>
0295
0296 <context name="Number16" attribute="Hex" lineEndContext="#pop" fallthroughContext="#pop">
0297 <RegExpr attribute="Hex" context="#pop!CheckNumberSuffix" String="[0-9A-Fa-f]+"/>
0298 </context>
0299
0300 <context name="CheckNumberSuffix" attribute="Based Numbers" lineEndContext="#pop" fallthroughContext="#pop">
0301 <DetectSpaces attribute="Normal Text" context="#pop"/>
0302 <AnyChar attribute="Symbol" context="#pop" String=",-/*%+=><&|^!~"/>
0303 <RegExpr attribute="Error" context="#pop" String="[\d\w]+"/>
0304 </context>
0305
0306
0307
0308 <!-- Quoted numbers -->
0309
0310 <context name="decimalDigits" attribute="Unbased Numbers" lineEndContext="#pop" fallthroughContext="QuotedNumEnd">
0311 <RegExpr attribute="Unbased Numbers" context="QuotedNumEnd" String="\d+"/>
0312 </context>
0313
0314 <context name="binaryDigits" attribute="Binary" lineEndContext="#pop" fallthroughContext="QuotedNumEnd">
0315 <RegExpr attribute="Binary" context="QuotedNumEnd" String="[01]+"/>
0316 </context>
0317
0318 <context name="hexDigits" attribute="Hex" lineEndContext="#pop" fallthroughContext="QuotedNumEnd">
0319 <RegExpr attribute="Hex" context="QuotedNumEnd" String="[0-9A-Fa-f]+"/>
0320 </context>
0321
0322 <context name="octDigits" attribute="Octal" lineEndContext="#pop" fallthroughContext="QuotedNumEnd">
0323 <RegExpr attribute="Octal" context="QuotedNumEnd" String="[0-7]+" />
0324 </context>
0325
0326 <context name="QuotedNumEnd" attribute="Error" lineEndContext="#pop#pop">
0327 <DetectChar attribute="Based Numbers" context="#pop#pop" char="'"/>
0328 <RegExpr attribute="Error" context="#pop#pop" String="."/>
0329 </context>
0330
0331
0332
0333 <!-- Quoted char -->
0334
0335 <context name="ASCIIChar" attribute="Char" lineEndContext="#pop">
0336 <RegExpr attribute="Char" context="QuotedASCIICharEnd" String="." />
0337 </context>
0338
0339 <context name="QuotedASCIICharEnd" attribute="Error" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
0340 <DetectChar attribute="Char" context="#pop#pop" char="'"/>
0341 <RegExpr attribute="Error" context="#pop#pop" String="."/>
0342 </context>
0343
0344 </contexts>
0345
0346
0347 <itemDatas>
0348 <itemData name="Normal Text" defStyleNum="dsNormal"/>
0349 <itemData name="Label" defStyleNum="dsFunction"/>
0350 <itemData name="Directives" defStyleNum="dsOthers"/>
0351 <itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
0352 <itemData name="Instructions" defStyleNum="dsKeyword"/>
0353 <itemData name="Unknown Instructions" defStyleNum="dsNormal"/>
0354 <itemData name="Branch Instructions" defStyleNum="dsControlFlow"/>
0355 <itemData name="InstructionAttr" defStyleNum="dsNormal" color="#000080" selColor="#000080" bold="0" italic="1"/>
0356 <itemData name="Unbased Numbers" defStyleNum="dsDecVal"/>
0357 <itemData name="Based Numbers" defStyleNum="dsBaseN" />
0358 <itemData name="Hex" defStyleNum="dsBaseN" />
0359 <itemData name="Octal" defStyleNum="dsBaseN" />
0360 <itemData name="Binary" defStyleNum="dsBaseN" />
0361 <itemData name="Char" defStyleNum="dsChar"/>
0362 <itemData name="String" defStyleNum="dsString"/>
0363 <itemData name="Comment" defStyleNum="dsComment" />
0364 <itemData name="Symbol" defStyleNum="dsOperator"/>
0365 <itemData name="GPASM-macros" defStyleNum="dsNormal" color="#000000" selColor="#000000" bold="1" italic="1"/>
0366 <itemData name="Error" defStyleNum="dsError" />
0367 </itemDatas>
0368
0369 </highlighting>
0370
0371
0372 <general>
0373 <comments>
0374 <comment name="singleLine" start=";" />
0375 </comments>
0376 <keywords casesensitive="1" additionalDeliminator="#"/>
0377 </general>
0378
0379 </language>