Warning, /frameworks/syntax-highlighting/data/syntax/smali.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 "[\da-fA-F]"> 0005 <!ENTITY label "(?<=^|\s|{)\:\w+"> 0006 <!ENTITY typeIdentifiers "ZBSCIJFD"> 0007 <!ENTITY fieldTypeLookBehind "\w\:"> 0008 <!ENTITY fieldLookBehind "[\s,;\(\)]"> 0009 <!ENTITY builtin "(javax?|dalvik|android)/[\w\$/]+"> 0010 0011 <!ENTITY float1 "\-?\d*(\d+\.|\.\d+|\d+)\d*[eE][\-\+]?\d+[dDfF]?\b"> 0012 <!ENTITY float2 "\-?\d*(\d+\.|\.\d+)\d*[dDfF]?"> 0013 <!ENTITY float3 "\-?\d+[dDfF]\b"> 0014 <!ENTITY float4 "\-?0x&hex;*(\.|&hex;+)&hex;*[pP]\-?\d+[dDfF]?\b"> 0015 ]> 0016 <language name="Smali" version="4" kateversion="5.0" section="Sources" extensions="*.smali" mimetype="text/x-smali" license="MIT"> 0017 <highlighting> 0018 <list name="mnemonics"> 0019 <item>nop</item> 0020 <item>move</item> 0021 <item>move/from16</item> 0022 <item>move/16</item> 0023 <item>move-wide</item> 0024 <item>move-wide/from16</item> 0025 <item>move-wide/16</item> 0026 <item>move-object</item> 0027 <item>move-object/from16</item> 0028 <item>move-object/16</item> 0029 <item>move-result</item> 0030 <item>move-result-wide</item> 0031 <item>move-result-object</item> 0032 <item>move-exception</item> 0033 <item>return-void</item> 0034 <item>return</item> 0035 <item>return-wide</item> 0036 <item>return-object</item> 0037 <item>const/4</item> 0038 <item>const/16</item> 0039 <item>const</item> 0040 <item>const/high16</item> 0041 <item>const-wide/16</item> 0042 <item>const-wide/32</item> 0043 <item>const-wide</item> 0044 <item>const-wide/high16</item> 0045 <item>const-string</item> 0046 <item>const-string/jumbo</item> 0047 <item>const-class</item> 0048 <item>monitor-enter</item> 0049 <item>monitor-exit</item> 0050 <item>check-cast</item> 0051 <item>instance-of</item> 0052 <item>array-length</item> 0053 <item>new-instance</item> 0054 <item>new-array</item> 0055 <item>filled-new-array</item> 0056 <item>filled-new-array/range</item> 0057 <item>fill-array-data</item> 0058 <item>throw</item> 0059 <item>goto</item> 0060 <item>goto/16</item> 0061 <item>goto/32</item> 0062 <item>packed-switch</item> 0063 <item>sparse-switch</item> 0064 <item>cmpl-float</item> 0065 <item>cmpg-float</item> 0066 <item>cmpl-double</item> 0067 <item>cmpg-double</item> 0068 <item>cmp-long</item> 0069 <item>if-eq</item> 0070 <item>if-ne</item> 0071 <item>if-lt</item> 0072 <item>if-ge</item> 0073 <item>if-gt</item> 0074 <item>if-le</item> 0075 <item>if-eqz</item> 0076 <item>if-nez</item> 0077 <item>if-ltz</item> 0078 <item>if-gez</item> 0079 <item>if-gtz</item> 0080 <item>if-lez</item> 0081 <item>aget</item> 0082 <item>aget-wide</item> 0083 <item>aget-object</item> 0084 <item>aget-boolean</item> 0085 <item>aget-byte</item> 0086 <item>aget-char</item> 0087 <item>aget-short</item> 0088 <item>aput</item> 0089 <item>aput-wide</item> 0090 <item>aput-object</item> 0091 <item>aput-boolean</item> 0092 <item>aput-byte</item> 0093 <item>aput-char</item> 0094 <item>aput-short</item> 0095 <item>iget</item> 0096 <item>iget-wide</item> 0097 <item>iget-object</item> 0098 <item>iget-boolean</item> 0099 <item>iget-byte</item> 0100 <item>iget-char</item> 0101 <item>iget-short</item> 0102 <item>iput</item> 0103 <item>iput-wide</item> 0104 <item>iput-object</item> 0105 <item>iput-boolean</item> 0106 <item>iput-byte</item> 0107 <item>iput-char</item> 0108 <item>iput-short</item> 0109 <item>sget</item> 0110 <item>sget-wide</item> 0111 <item>sget-object</item> 0112 <item>sget-boolean</item> 0113 <item>sget-byte</item> 0114 <item>sget-char</item> 0115 <item>sget-short</item> 0116 <item>sput</item> 0117 <item>sput-wide</item> 0118 <item>sput-object</item> 0119 <item>sput-boolean</item> 0120 <item>sput-byte</item> 0121 <item>sput-char</item> 0122 <item>sput-short</item> 0123 <item>invoke-virtual</item> 0124 <item>invoke-super</item> 0125 <item>invoke-direct</item> 0126 <item>invoke-static</item> 0127 <item>invoke-interface</item> 0128 <item>invoke-virtual/range</item> 0129 <item>invoke-super/range</item> 0130 <item>invoke-direct/range</item> 0131 <item>invoke-static/range</item> 0132 <item>invoke-interface/range</item> 0133 <item>neg-int</item> 0134 <item>not-int</item> 0135 <item>neg-long</item> 0136 <item>not-long</item> 0137 <item>neg-float</item> 0138 <item>neg-double</item> 0139 <item>int-to-long</item> 0140 <item>int-to-float</item> 0141 <item>int-to-double</item> 0142 <item>long-to-int</item> 0143 <item>long-to-float</item> 0144 <item>long-to-double</item> 0145 <item>float-to-int</item> 0146 <item>float-to-long</item> 0147 <item>float-to-double</item> 0148 <item>double-to-int</item> 0149 <item>double-to-long</item> 0150 <item>double-to-float</item> 0151 <item>int-to-byte</item> 0152 <item>int-to-char</item> 0153 <item>int-to-short</item> 0154 <item>add-int</item> 0155 <item>sub-int</item> 0156 <item>mul-int</item> 0157 <item>div-int</item> 0158 <item>rem-int</item> 0159 <item>and-int</item> 0160 <item>or-int</item> 0161 <item>xor-int</item> 0162 <item>shl-int</item> 0163 <item>shr-int</item> 0164 <item>ushr-int</item> 0165 <item>add-long</item> 0166 <item>sub-long</item> 0167 <item>mul-long</item> 0168 <item>div-long</item> 0169 <item>rem-long</item> 0170 <item>and-long</item> 0171 <item>or-long</item> 0172 <item>xor-long</item> 0173 <item>shl-long</item> 0174 <item>shr-long</item> 0175 <item>ushr-long</item> 0176 <item>add-float</item> 0177 <item>sub-float</item> 0178 <item>mul-float</item> 0179 <item>div-float</item> 0180 <item>rem-float</item> 0181 <item>add-double</item> 0182 <item>sub-double</item> 0183 <item>mul-double</item> 0184 <item>div-double</item> 0185 <item>rem-double</item> 0186 <item>add-int/2addr</item> 0187 <item>sub-int/2addr</item> 0188 <item>mul-int/2addr</item> 0189 <item>div-int/2addr</item> 0190 <item>rem-int/2addr</item> 0191 <item>and-int/2addr</item> 0192 <item>or-int/2addr</item> 0193 <item>xor-int/2addr</item> 0194 <item>shl-int/2addr</item> 0195 <item>shr-int/2addr</item> 0196 <item>ushr-int/2addr</item> 0197 <item>add-long/2addr</item> 0198 <item>sub-long/2addr</item> 0199 <item>mul-long/2addr</item> 0200 <item>div-long/2addr</item> 0201 <item>rem-long/2addr</item> 0202 <item>and-long/2addr</item> 0203 <item>or-long/2addr</item> 0204 <item>xor-long/2addr</item> 0205 <item>shl-long/2addr</item> 0206 <item>shr-long/2addr</item> 0207 <item>ushr-long/2addr</item> 0208 <item>add-float/2addr</item> 0209 <item>sub-float/2addr</item> 0210 <item>mul-float/2addr</item> 0211 <item>div-float/2addr</item> 0212 <item>rem-float/2addr</item> 0213 <item>add-double/2addr</item> 0214 <item>sub-double/2addr</item> 0215 <item>mul-double/2addr</item> 0216 <item>div-double/2addr</item> 0217 <item>rem-double/2addr</item> 0218 <item>add-int/lit16</item> 0219 <item>rsub-int</item> 0220 <item>mul-int/lit16</item> 0221 <item>div-int/lit16</item> 0222 <item>rem-int/lit16</item> 0223 <item>and-int/lit16</item> 0224 <item>or-int/lit16</item> 0225 <item>xor-int/lit16</item> 0226 <item>add-int/lit8</item> 0227 <item>rsub-int/lit8</item> 0228 <item>mul-int/lit8</item> 0229 <item>div-int/lit8</item> 0230 <item>rem-int/lit8</item> 0231 <item>and-int/lit8</item> 0232 <item>or-int/lit8</item> 0233 <item>xor-int/lit8</item> 0234 <item>shl-int/lit8</item> 0235 <item>shr-int/lit8</item> 0236 <item>ushr-int/lit8</item> 0237 <item>iget-volatile</item> 0238 <item>iput-volatile</item> 0239 <item>sget-volatile</item> 0240 <item>sput-volatile</item> 0241 <item>iget-object-volatile</item> 0242 <item>iget-wide-volatile</item> 0243 <item>iput-wide-volatile</item> 0244 <item>sget-wide-volatile</item> 0245 <item>sput-wide-volatile</item> 0246 <item>sget-object-volatile</item> 0247 <item>throw-verification-error</item> 0248 <item>execute-inline</item> 0249 <item>execute-inline/range</item> 0250 <item>invoke-object-init/range</item> 0251 <item>return-void-barrier</item> 0252 <item>iget-quick</item> 0253 <item>invoke-polymorphic</item> 0254 <item>invoke-polymorphic/range</item> 0255 <item>invoke-custom</item> 0256 <item>invoke-custom/range</item> 0257 <item>const-method-handle</item> 0258 <item>const-method-type</item> 0259 </list> 0260 <list name="keywords"> 0261 <!-- Access flags --> 0262 <item>public</item> 0263 <item>private</item> 0264 <item>protected</item> 0265 <item>static</item> 0266 <item>final</item> 0267 <item>synchronized</item> 0268 <item>volatile</item> 0269 <item>bridge</item> 0270 <item>transient</item> 0271 <item>varargs</item> 0272 <item>native</item> 0273 <item>interface</item> 0274 <item>abstract</item> 0275 <item>strictfp</item> 0276 <item>synthetic</item> 0277 <item>annotation</item> 0278 <item>enum</item> 0279 <item>constructor</item> 0280 <item>declared-synchronized</item> 0281 0282 <!-- Visibility values --> 0283 <item>build</item> 0284 <item>runtime</item> 0285 <item>system</item> 0286 </list> 0287 <contexts> 0288 <context attribute="Normal Text" lineEndContext="#stay" name="Normal"> 0289 <WordDetect attribute="Attribute" String=".class" context="#stay" /> 0290 <WordDetect attribute="Attribute" String=".super" context="#stay" /> 0291 <WordDetect attribute="Attribute" String=".implements" context="#stay" /> 0292 <WordDetect attribute="Attribute" String=".source" context="#stay" /> 0293 <WordDetect attribute="Attribute" String=".field" context="#stay" /> 0294 <RegExpr attribute="Attribute" String="\.end\s+field" firstNonSpace="true" context="#stay" /> 0295 <WordDetect attribute="Attribute" String=".annotation" context="Annotation" beginRegion="Annotation" /> 0296 <WordDetect attribute="Attribute" String=".subannotation" context="#stay" /> 0297 <RegExpr attribute="Attribute" String="\.end\s+subannotation" firstNonSpace="true" context="#stay" /> 0298 <WordDetect attribute="Attribute" String=".enum" context="#stay" /> 0299 <WordDetect attribute="Attribute" String=".method" context="MethodDeclaration" beginRegion="Method" /> 0300 <keyword attribute="Keyword" context="#stay" String="keywords" /> 0301 <IncludeRules context="Global" /> 0302 </context> 0303 <context attribute="Normal Text" lineEndContext="#stay" name="Literal"> 0304 <WordDetect attribute="Bool" String="true" context="#stay" /> 0305 <WordDetect attribute="Bool" String="false" context="#stay" /> 0306 <WordDetect attribute="Float" String="-infinity" insensitive="true" context="#stay" /> 0307 <WordDetect attribute="Float" String="infinity" insensitive="true" context="#stay" /> 0308 <WordDetect attribute="Float" String="-infinityD" insensitive="true" context="#stay" /> 0309 <WordDetect attribute="Float" String="infinityD" insensitive="true" context="#stay" /> 0310 <WordDetect attribute="Float" String="-infinityF" insensitive="true" context="#stay" /> 0311 <WordDetect attribute="Float" String="infinityF" insensitive="true" context="#stay" /> 0312 <WordDetect attribute="Float" String="NaN" insensitive="true" context="#stay" /> 0313 <WordDetect attribute="Float" String="NaND" insensitive="true" context="#stay" /> 0314 <WordDetect attribute="Float" String="NaNF" insensitive="true" context="#stay" /> 0315 <RegExpr attribute="Float" context="#stay" String="&float1;|&float2;|&float3;|&float4;" /> 0316 <RegExpr attribute="Hex" context="#stay" String="\-?0x&hex;+[LtTsS]?\b" /> 0317 <RegExpr attribute="Decimal" context="#stay" String="\-?\d+[tTLsS]?\b" /> 0318 <HlCChar attribute="Char" context="#stay" /> 0319 <RegExpr attribute="Char" context="#stay" String="'\\u&hex;{4}'" /> 0320 <DetectChar attribute="String" context="String" char=""" /> 0321 </context> 0322 <context attribute="Normal Text" lineEndContext="#stay" name="Global"> 0323 <DetectChar attribute="Comment" context="Comment" char="#" /> 0324 <RegExpr attribute="Method" context="#stay" String="\b[\w\$]+\s*(?=\s*>?\s*\()" /> 0325 <RegExpr attribute="Field" context="#stay" String="\b[\w\$]+\s*(?=\:)" /> 0326 <IncludeRules context="Literal" /> 0327 <RegExpr attribute="Built-in" context="#stay" String="((?<=&fieldTypeLookBehind;L)|(?<=&fieldLookBehind;L)|(?<=\[L)|(?<=[&typeIdentifiers;]L))&builtin;" /> 0328 <RegExpr attribute="Data Type" context="#stay" String="((?<=&fieldTypeLookBehind;L)|(?<=&fieldLookBehind;L)|(?<=\[L)|(?<=[&typeIdentifiers;]L))[\w/\$]+" /> 0329 <RegExpr attribute="Type Identifier" context="#stay" String="((?<=&fieldTypeLookBehind;)|(?<=&fieldLookBehind;)(\[*[&typeIdentifiers;])*)\[*([&typeIdentifiers;]|L)|(?<=[;&typeIdentifiers;\(]\))V" /> 0330 <Detect2Chars attribute="Operator" context="#stay" char="." char1="." /> 0331 <AnyChar attribute="Symbol" context="#stay" String="{}<>:;=()" /> 0332 </context> 0333 <context attribute="Normal Text" lineEndContext="Method" name="MethodDeclaration"> 0334 <keyword attribute="Keyword" context="#stay" String="keywords" /> 0335 <IncludeRules context="Global" /> 0336 </context> 0337 <context attribute="Normal Text" lineEndContext="#stay" name="Method"> 0338 <WordDetect attribute="Attribute" String=".registers" context="#stay" /> 0339 <WordDetect attribute="Attribute" String=".locals" context="#stay" /> 0340 <WordDetect attribute="Attribute" String=".annotation" context="Annotation" beginRegion="Annotation" /> 0341 <WordDetect attribute="Attribute" String=".array-data" context="ArrayData" beginRegion="ArrayData" /> 0342 <WordDetect attribute="Attribute" String=".packed-switch" context="PackedSwitch" beginRegion="PackedSwitch" /> 0343 <WordDetect attribute="Attribute" String=".sparse-switch" context="SparseSwitch" beginRegion="SparseSwitch" /> 0344 <WordDetect attribute="Attribute" String=".catch" context="#stay" /> 0345 <WordDetect attribute="Attribute" String=".catchall" context="#stay" /> 0346 <WordDetect attribute="Attribute" String=".line" context="#stay" /> 0347 <WordDetect attribute="Attribute" String=".param" context="Param" /> 0348 <WordDetect attribute="Attribute" String=".local" context="#stay" /> 0349 <RegExpr attribute="Attribute" String="\.end\s+param|\.(end|restart)\s+local" firstNonSpace="true" context="#stay" /> 0350 <RegExpr attribute="Attribute" String="\.end\s+method" firstNonSpace="true" context="#pop#pop" endRegion="Method" /> 0351 <WordDetect attribute="Attribute" String=".prologue" context="#stay" /> 0352 <WordDetect attribute="Attribute" String=".epilogue" context="#stay" /> 0353 <keyword attribute="Mnemonic" context="#stay" String="mnemonics" /> 0354 <RegExpr attribute="Register" context="#stay" String="\b(v|p)[0-9]+\b" /> 0355 <RegExpr attribute="Label" context="#stay" String="&label;" /> 0356 <Detect2Chars attribute="Operator" context="#stay" char="-" char1=">" /> 0357 <IncludeRules context="Global" /> 0358 </context> 0359 <context attribute="Annotation" lineEndContext="AnnotationBody" name="Annotation"> 0360 <IncludeRules context="Global" /> 0361 <keyword attribute="Keyword" context="#stay" String="keywords" /> 0362 </context> 0363 <context attribute="Attribute" lineEndContext="#stay" name="AnnotationBody"> 0364 <IncludeRules context="Global" /> 0365 <RegExpr attribute="Attribute" String="\.end\s+annotation" firstNonSpace="true" context="#pop#pop" endRegion="Annotation" /> 0366 </context> 0367 <context attribute="Attribute" lineEndContext="PackedSwitchBody" name="PackedSwitch"> 0368 <IncludeRules context="Literal" /> 0369 </context> 0370 <context attribute="Normal Text" lineEndContext="#stay" name="PackedSwitchBody"> 0371 <DetectChar attribute="Comment" context="Comment" char="#" /> 0372 <RegExpr attribute="Label" context="#stay" String="&label;" /> 0373 <RegExpr attribute="Attribute" String="\.end\s+packed\-switch" firstNonSpace="true" context="#pop#pop" endRegion="PackedSwitch" /> 0374 </context> 0375 <context attribute="Attribute" lineEndContext="SparseSwitchBody" name="SparseSwitch"> 0376 <IncludeRules context="Literal" /> 0377 </context> 0378 <context attribute="Normal Text" lineEndContext="#stay" name="SparseSwitchBody"> 0379 <DetectChar attribute="Comment" context="Comment" char="#" /> 0380 <IncludeRules context="Literal" /> 0381 <RegExpr attribute="Label" context="#stay" String="&label;" /> 0382 <Detect2Chars attribute="Operator" context="#stay" char="-" char1=">" /> 0383 <RegExpr attribute="Attribute" String="\.end\s+sparse\-switch" firstNonSpace="true" context="#pop#pop" endRegion="SparseSwitch" /> 0384 </context> 0385 <context attribute="Normal Text" lineEndContext="ArrayDataBody" name="ArrayData"> 0386 <IncludeRules context="Literal" /> 0387 </context> 0388 <context attribute="Normal Text" lineEndContext="#stay" name="ArrayDataBody"> 0389 <DetectChar attribute="Comment" context="Comment" char="#" /> 0390 <IncludeRules context="Literal" /> 0391 <RegExpr attribute="Attribute" String="\.end\s+array\-data" firstNonSpace="true" context="#pop#pop" endRegion="ArrayData" /> 0392 </context> 0393 <context attribute="Normal Text" lineEndContext="#pop" name="Param"> 0394 <RegExpr attribute="Register" context="#stay" String="\bp[0-9]+\b" /> 0395 <RegExpr attribute="Variable" context="#stay" String="(?<=,)\s*[\w]+" /> 0396 <IncludeRules context="Literal" /> 0397 </context> 0398 <context attribute="String" lineEndContext="#pop" name="String"> 0399 <LineContinue attribute="String" context="#stay"/> 0400 <HlCStringChar attribute="String Char" context="#stay"/> 0401 <RegExpr attribute="String Char" context="#stay" String="\\u[0-9a-fA-F]{4}"/> 0402 <DetectChar attribute="String" context="#pop" char="""/> 0403 </context> 0404 <context attribute="Comment" lineEndContext="#pop" name="Comment"> 0405 <DetectSpaces /> 0406 <IncludeRules context="##Comments"/> 0407 </context> 0408 </contexts> 0409 <itemDatas> 0410 <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" /> 0411 <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false" /> 0412 <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false" /> 0413 <itemData name="Mnemonic" defStyleNum="dsKeyword" spellChecking="false" /> 0414 <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" /> 0415 <itemData name="Method" defStyleNum="dsFunction" spellChecking="false" /> 0416 <itemData name="Register" defStyleNum="dsVariable" spellChecking="false" /> 0417 <itemData name="Field" defStyleNum="dsVariable" spellChecking="false" /> 0418 <itemData name="Variable" defStyleNum="dsVariable" /> 0419 <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" /> 0420 <itemData name="Type Identifier" defStyleNum="dsDataType" italic="true" spellChecking="false" /> 0421 <itemData name="Data Type" defStyleNum="dsDataType" italic="false" spellChecking="false" /> 0422 <itemData name="Label" defStyleNum="dsOthers" spellChecking="false" /> 0423 <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" /> 0424 <itemData name="Bool" defStyleNum="dsBaseN" spellChecking="false" /> 0425 <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" /> 0426 <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" /> 0427 <itemData name="Char" defStyleNum="dsChar" spellChecking="false" /> 0428 <itemData name="String" defStyleNum="dsString" /> 0429 <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false" /> 0430 <itemData name="Comment" defStyleNum="dsComment" /> 0431 <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false" /> 0432 <itemData name="Built-in" defStyleNum="dsBuiltIn" spellChecking="false" /> 0433 </itemDatas> 0434 </highlighting> 0435 <general> 0436 <comments> 0437 <comment name="singleLine" start="#" position="afterwhitespace"/> 0438 </comments> 0439 <keywords casesensitive="1" weakDeliminator="-/[$" /> 0440 </general> 0441 </language> 0442 <!-- kate: replace-tabs on; tab-width 4; indent-width 4; -->