Warning, /frameworks/syntax-highlighting/data/syntax/solidity.xml is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" encoding="UTF-8"?>
0002 <!DOCTYPE language
0003 [
0004 ]>
0005 <language name="Solidity" section="Sources"
0006           version="6" kateversion="5.0"
0007           indenter="cstyle"
0008           mimetype=""
0009           extensions="*.sol"
0010           priority="5"
0011           author="Robert Kaiser (kairo@kairo.at)"
0012           license="MIT">
0013 <!--
0014   Solidity 0.5+ support, based on Solidity docs, see https://solidity.readthedocs.io/en/latest/index.html
0015 -->
0016 <highlighting>
0017   <!-- Types, see https://solidity.readthedocs.io/en/latest/types.html -->
0018   <list name="types">
0019     <item>bool</item>
0020     <item>uint</item>
0021     <item>uint8</item>
0022     <item>uint16</item>
0023     <item>uint24</item>
0024     <item>uint32</item>
0025     <item>uint40</item>
0026     <item>uint48</item>
0027     <item>uint56</item>
0028     <item>uint64</item>
0029     <item>uint72</item>
0030     <item>uint80</item>
0031     <item>uint88</item>
0032     <item>uint96</item>
0033     <item>uint104</item>
0034     <item>uint112</item>
0035     <item>uint120</item>
0036     <item>uint128</item>
0037     <item>uint136</item>
0038     <item>uint144</item>
0039     <item>uint152</item>
0040     <item>uint160</item>
0041     <item>uint168</item>
0042     <item>uint176</item>
0043     <item>uint184</item>
0044     <item>uint192</item>
0045     <item>uint200</item>
0046     <item>uint208</item>
0047     <item>uint216</item>
0048     <item>uint224</item>
0049     <item>uint232</item>
0050     <item>uint240</item>
0051     <item>uint248</item>
0052     <item>uint256</item>
0053     <item>int</item>
0054     <item>int8</item>
0055     <item>int16</item>
0056     <item>int24</item>
0057     <item>int32</item>
0058     <item>int40</item>
0059     <item>int48</item>
0060     <item>int56</item>
0061     <item>int64</item>
0062     <item>int72</item>
0063     <item>int80</item>
0064     <item>int88</item>
0065     <item>int96</item>
0066     <item>int104</item>
0067     <item>int112</item>
0068     <item>int120</item>
0069     <item>int128</item>
0070     <item>int136</item>
0071     <item>int144</item>
0072     <item>int152</item>
0073     <item>int160</item>
0074     <item>int168</item>
0075     <item>int176</item>
0076     <item>int184</item>
0077     <item>int192</item>
0078     <item>int200</item>
0079     <item>int208</item>
0080     <item>int216</item>
0081     <item>int224</item>
0082     <item>int232</item>
0083     <item>int240</item>
0084     <item>int248</item>
0085     <item>int256</item>
0086     <!-- the detailed fixed types are not listed for now, as the whole family is not fully supported -->
0087     <item>ufixed</item>
0088     <item>fixed</item>
0089     <item>address</item>
0090     <item>byte</item>
0091     <item>bytes</item>
0092     <item>bytes1</item>
0093     <item>bytes2</item>
0094     <item>bytes3</item>
0095     <item>bytes4</item>
0096     <item>bytes5</item>
0097     <item>bytes6</item>
0098     <item>bytes7</item>
0099     <item>bytes8</item>
0100     <item>bytes9</item>
0101     <item>bytes10</item>
0102     <item>bytes11</item>
0103     <item>bytes12</item>
0104     <item>bytes13</item>
0105     <item>bytes14</item>
0106     <item>bytes15</item>
0107     <item>bytes16</item>
0108     <item>bytes17</item>
0109     <item>bytes18</item>
0110     <item>bytes19</item>
0111     <item>bytes20</item>
0112     <item>bytes21</item>
0113     <item>bytes22</item>
0114     <item>bytes23</item>
0115     <item>bytes24</item>
0116     <item>bytes25</item>
0117     <item>bytes26</item>
0118     <item>bytes27</item>
0119     <item>bytes28</item>
0120     <item>bytes29</item>
0121     <item>bytes30</item>
0122     <item>bytes31</item>
0123     <item>bytes32</item>
0124     <item>string</item>
0125     <item>mapping</item>
0126   </list>
0127 
0128   <!-- Units and global variables, see https://solidity.readthedocs.io/en/latest/units-and-global-variables.html -->
0129   <list name="units">
0130     <item>wei</item>
0131     <item>finney</item>
0132     <item>szabo</item>
0133     <item>ether</item>
0134     <item>seconds</item>
0135     <item>minutes</item>
0136     <item>hours</item>
0137     <item>days</item>
0138     <item>weeks</item>
0139   </list>
0140   <list name="globals">
0141     <item>block</item>
0142     <item>msg</item>
0143     <item>now</item>
0144     <item>tx</item>
0145     <item>this</item>
0146     <item>super</item>
0147     <!-- global functions, do they belong elswhere? -->
0148     <item>blockhash</item>
0149     <item>gasleft</item>
0150     <item>abi</item>
0151     <item>assert</item>
0152     <item>require</item>
0153     <item>revert</item>
0154     <item>addmod</item>
0155     <item>mulmod</item>
0156     <item>keccak256</item>
0157     <item>sha256</item>
0158     <item>ripemd160</item>
0159     <item>ecrecover</item>
0160     <item>selfdestruct</item>
0161     <item>type</item>
0162     <!-- Low-level log functions, see https://solidity.readthedocs.io/en/latest/contracts.html#low-level-interface-to-logs -->
0163     <item>log0</item>
0164     <item>log1</item>
0165     <item>log2</item>
0166     <item>log3</item>
0167     <item>log4</item>
0168   </list>
0169 
0170   <!-- Keywords, see https://solidity.readthedocs.io/en/latest/miscellaneous.html#cheatsheet -->
0171   <!-- Some keywords that are about program flow were moved to control structures. -->
0172   <list name="keywords">
0173     <item>as</item>
0174     <item>from</item>
0175     <item>is</item>
0176     <item>using</item>
0177     <!-- Type-related, see https://solidity.readthedocs.io/en/latest/types.html -->
0178     <item>enum</item>
0179     <item>true</item>
0180     <item>false</item>
0181     <item>new</item>
0182     <item>struct</item>
0183     <item>constant</item>
0184     <!-- Function-related, see https://solidity.readthedocs.io/en/latest/types.html#function-types -->
0185     <item>internal</item>
0186     <item>external</item>
0187     <item>public</item>
0188     <item>private</item>
0189     <item>pure</item>
0190     <item>view</item>
0191     <item>payable</item>
0192     <item>returns</item>
0193     <!-- Data location, see https://solidity.readthedocs.io/en/latest/types.html#data-location -->
0194     <item>memory</item>
0195     <item>storage</item>
0196     <item>calldata</item>
0197     <!-- Operator? Variable-related, see https://solidity.readthedocs.io/en/latest/types.html -->
0198     <item>delete</item>
0199     <!-- Events, see https://solidity.readthedocs.io/en/latest/contracts.html#events -->
0200     <item>event</item>
0201     <item>indexed</item>
0202   </list>
0203 
0204   <!-- Control structures and expressions, see https://solidity.readthedocs.io/en/latest/control-structures.html -->
0205   <list name="controlstructures">
0206     <item>if</item>
0207     <item>else</item>
0208     <item>while</item>
0209     <item>do</item>
0210     <item>for</item>
0211     <item>break</item>
0212     <item>continue</item>
0213     <item>return</item>
0214     <!-- moved from keywords -->
0215     <item>import</item>
0216     <item>contract</item>
0217     <item>library</item>
0218     <item>assembly</item>
0219     <item>function</item>
0220     <item>constructor</item>
0221     <item>modifier</item>
0222     <item>emit</item>
0223   </list>
0224 
0225   <!-- Reserved keywords, see https://solidity.readthedocs.io/en/latest/miscellaneous.html#reserved-keywords -->
0226   <list name="reserved">
0227     <item>abstract</item>
0228     <item>after</item>
0229     <item>alias</item>
0230     <item>apply</item>
0231     <item>auto</item>
0232     <item>case</item>
0233     <item>catch</item>
0234     <item>copyof</item>
0235     <item>default</item>
0236     <item>define</item>
0237     <item>final</item>
0238     <item>immutable</item>
0239     <item>implements</item>
0240     <item>in</item>
0241     <item>inline</item>
0242     <item>let</item>
0243     <item>macro</item>
0244     <item>match</item>
0245     <item>mutable</item>
0246     <item>null</item>
0247     <item>of</item>
0248     <item>override</item>
0249     <item>partial</item>
0250     <item>promise</item>
0251     <item>reference</item>
0252     <item>relocatable</item>
0253     <item>sealed</item>
0254     <item>sizeof</item>
0255     <item>static</item>
0256     <item>supports</item>
0257     <item>switch</item>
0258     <item>try</item>
0259     <item>typedef</item>
0260     <item>typeof</item>
0261     <item>unchecked</item>
0262   </list>
0263 
0264   <contexts>
0265     <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
0266       <DetectSpaces />
0267       <StringDetect attribute="Keyword" String="pragma" context="Pragma" firstNonSpace="true" insensitive="true" />
0268       <keyword attribute="Control Structures" context="#stay" String="controlstructures" />
0269       <keyword attribute="Keyword" context="#stay" String="keywords" />
0270       <keyword attribute="Data Type" context="#stay" String="types" />
0271       <keyword attribute="Unit" context="#stay" String="units" />
0272       <keyword attribute="Built-in" context="#stay" String="globals" />
0273       <keyword attribute="Error" context="#stay" String="reserved" />
0274       <DetectIdentifier />
0275       <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
0276       <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
0277 
0278       <HlCHex attribute="Hex" context="#stay" />
0279       <Float attribute="Decimal" context="#stay" />
0280       <Int attribute="Decimal" context="#stay" />
0281 
0282       <HlCChar attribute="Char" context="#stay"/>
0283       <DetectChar attribute="String" context="String" char="&quot;" />
0284 
0285       <Detect2Chars attribute="Built-in" context="#stay" char="+" char1="+" />
0286       <Detect2Chars attribute="Built-in" context="#stay" char="-" char1="-" />
0287 
0288       <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
0289       <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
0290       <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^;" />
0291     </context>
0292 
0293     <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
0294       <IncludeRules context="##Doxygen" />
0295       <Detect2Chars attribute="Comment" context="#pop!Comment Single" char="/" char1="/" />
0296       <Detect2Chars attribute="Comment" context="#pop!Comment Multi" char="/" char1="*" beginRegion="Comment" />
0297     </context>
0298 
0299     <context name="Pragma" attribute="Normal Text" lineEndContext="#pop">
0300       <WordDetect attribute="Built-in" String="solidity" context="Pragma Solidity" insensitive="true" />
0301       <WordDetect attribute="Built-in" String="experimental" context="Pragma Experimental" insensitive="true" />
0302       <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0303     </context>
0304 
0305     <context name="Pragma Solidity" attribute="Normal Text" lineEndContext="#pop">
0306       <RegExpr attribute="Normal Text" context="#pop" String="[\^\. \-&lt;&gt;=\|\d\w]+" />
0307       <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0308     </context>
0309 
0310     <context name="Pragma Experimental" attribute="Normal Text" lineEndContext="#pop">
0311       <WordDetect attribute="Built-in" context="#pop" String="ABIEncoderV2" />
0312       <WordDetect attribute="Built-in" context="#pop" String="SMTChecker" />
0313       <RegExpr attribute="Error" context="#pop" String="[^\s;]+" />
0314     </context>
0315 
0316     <context name="String" attribute="String" lineEndContext="#pop">
0317       <LineContinue attribute="String" context="#stay" />
0318       <HlCStringChar attribute="String Char" context="#stay" />
0319       <DetectChar attribute="String" context="#pop" char="&quot;"/>
0320     </context>
0321 
0322     <context name="Comment Single" attribute="Comment" lineEndContext="#pop">
0323       <LineContinue attribute="Comment" context="#stay" />
0324       <DetectSpaces />
0325       <IncludeRules context="##Comments" />
0326       <DetectIdentifier />
0327     </context>
0328 
0329     <context name="Comment Multi" attribute="Comment" lineEndContext="#stay">
0330       <DetectSpaces />
0331       <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
0332       <IncludeRules context="##Comments" />
0333       <DetectIdentifier />
0334     </context>
0335   </contexts>
0336 
0337   <itemDatas>
0338     <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
0339     <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
0340     <!-- itemData name="Function" defStyleNum="dsFunction" spellChecking="false" / -->
0341     <itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false" />
0342     <!-- itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" / -->
0343     <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false" />
0344     <itemData name="Built-in" defStyleNum="dsBuiltIn" spellChecking="false" />
0345     <itemData name="Unit" defStyleNum="dsConstant" bold="0" spellChecking="false" />
0346     <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false" />
0347     <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
0348     <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
0349     <itemData name="String" defStyleNum="dsString" />
0350     <itemData name="Char" defStyleNum="dsChar" />
0351     <itemData name="String Char" defStyleNum="dsSpecialChar" />
0352     <itemData name="Comment" defStyleNum="dsComment" />
0353     <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
0354   </itemDatas>
0355 </highlighting>
0356 
0357 <general>
0358   <comments>
0359     <comment name="singleLine" start="//" />
0360     <comment name="multiLine" start="/*" end="*/" region="Comment" />
0361   </comments>
0362   <keywords casesensitive="1" />
0363 </general>
0364 
0365 </language>
0366 <!-- kate: replace-tabs on; indent-width 2; tab-width 2; -->