Warning, /frameworks/syntax-highlighting/data/syntax/viper.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0" encoding="UTF-8"?> 0002 <!DOCTYPE language [<!ENTITY identifier "[a-zA-Z$_][a-zA-Z0-9$_'\[\]]*">]> 0003 0004 <!-- The Viper intermediate verification language 0005 https://github.com/viperproject/silver --> 0006 <language name="Viper" section="Sources" version="1" kateversion="5.0" indenter="cstyle" 0007 extensions="*.vpr" mimetype="text/x-vpr" author="nishanthkarthik" license="MIT"> 0008 <highlighting> 0009 <list name="blocks"> 0010 <item>domain</item> 0011 <item>axiom</item> 0012 <item>define</item> 0013 <item>function</item> 0014 <item>predicate</item> 0015 <item>method</item> 0016 <item>field</item> 0017 </list> 0018 0019 <list name="constants"> 0020 <item>true</item> 0021 <item>false</item> 0022 <item>null</item> 0023 </list> 0024 0025 <list name="controlFlow"> 0026 <item>goto</item> 0027 <item>label</item> 0028 <item>if</item> 0029 <item>elseif</item> 0030 <item>else</item> 0031 <item>while</item> 0032 </list> 0033 0034 <list name="kw"> 0035 <item>result</item> 0036 <item>old</item> 0037 <item>acc</item> 0038 0039 <item>none</item> 0040 <item>write</item> 0041 <item>epsilon</item> 0042 <item>wildcard</item> 0043 <item>perm</item> 0044 <item>unfolding</item> 0045 <item>folding</item> 0046 <item>applying</item> 0047 <item>packaging</item> 0048 <item>forperm</item> 0049 <item>constraining</item> 0050 0051 <item>let</item> 0052 <item>in</item> 0053 0054 <item>var</item> 0055 <item>fresh</item> 0056 0057 <item>forall</item> 0058 <item>exists</item> 0059 <item>unique</item> 0060 <item>returns</item> 0061 <item>requires</item> 0062 <item>ensures</item> 0063 <item>invariant</item> 0064 0065 <item>assert</item> 0066 <item>assume</item> 0067 <item>inhale</item> 0068 <item>exhale</item> 0069 <item>fold</item> 0070 <item>unfold</item> 0071 0072 <item>wand</item> 0073 <item>package</item> 0074 <item>apply</item> 0075 </list> 0076 0077 <list name="ops"> 0078 <item>==</item> 0079 <item>!=</item> 0080 <item>==></item> 0081 <item><==></item> 0082 <item>||</item> 0083 <item>&&</item> 0084 <item><</item> 0085 <item>></item> 0086 <item><=</item> 0087 <item>>=</item> 0088 <item>+</item> 0089 <item>-</item> 0090 <item>*</item> 0091 <item>/</item> 0092 <item>\\</item> 0093 <item>\%</item> 0094 <item>\/</item> 0095 <item>--*</item> 0096 <item>union</item> 0097 <item>intersection</item> 0098 <item>setminus</item> 0099 <item>++</item> 0100 <item>in</item> 0101 <item>subset</item> 0102 <item>!</item> 0103 <item>+</item> 0104 <item>-</item> 0105 <item>::</item> 0106 </list> 0107 0108 <list name="types"> 0109 <item>Int</item> 0110 <item>Bool</item> 0111 <item>Rational</item> 0112 <item>Perm</item> 0113 <item>Ref</item> 0114 <item>Seq</item> 0115 <item>Set</item> 0116 <item>Multiset</item> 0117 </list> 0118 0119 <contexts> 0120 <context name="normal" attribute="Normal" lineEndContext="#stay"> 0121 <DetectSpaces/> 0122 <WordDetect String="import" lookAhead="true" context="import"/> 0123 <keyword String="blocks" lookAhead="true" context="block"/> 0124 <WordDetect String="/*" lookAhead="true" context="mlComment"/> 0125 <WordDetect String="//" lookAhead="true" context="comment"/> 0126 <keyword String="constants" attribute="Constant"/> 0127 <keyword String="kw" attribute="Keyword"/> 0128 <RegExpr String="([:]{2})" context="quantifier" lookAhead="true"/> 0129 <keyword String="ops" attribute="Operator"/> 0130 <keyword String="types" attribute="DataType"/> 0131 <keyword String="controlFlow" attribute="ControlFlow"/> 0132 <DetectChar char="{" context="#stay" attribute="Operator" beginRegion="regionBraced"/> 0133 <DetectChar char="}" context="#stay" attribute="Operator" endRegion="regionBraced"/> 0134 <RegExpr String="(&identifier;)(\.\b&identifier;)" lookAhead="true" context="fieldAccess"/> 0135 <Int attribute="DecVal"/> 0136 </context> 0137 0138 <context name="quantifier" attribute="Normal" lineEndContext="#stay"> 0139 <StringDetect String="%1" dynamic="true"/> 0140 <IncludeRules context="nextTrigger"/> 0141 </context> 0142 0143 <context name="nextTrigger" attribute="Normal" lineEndContext="#stay"> 0144 <DetectChar char="{" context="#pop!inTrigger" attribute="TriggerZone"/> 0145 <RegExpr String="[^\{\s]" context="#pop#pop"/> 0146 </context> 0147 0148 <context name="inTrigger" attribute="Normal" lineEndContext="#stay"> 0149 <DetectChar char="}" context="#pop!nextTrigger" attribute="TriggerZone"/> 0150 <RegExpr String="[^\}\s]" attribute="Italic"/> 0151 </context> 0152 0153 <context name="import" attribute="Keyword" lineEndContext="#pop"> 0154 <WordDetect String="import" attribute="Keyword"/> 0155 <DetectChar char='"' context="string" attribute="String"/> 0156 </context> 0157 0158 <context name="fieldAccess" attribute="Normal" lineEndContext="#stay"> 0159 <StringDetect String="%1" dynamic="true" context="#stay"/> 0160 <StringDetect String="%2" attribute="Field" dynamic="true" context="#pop"/> 0161 </context> 0162 0163 <context name="block" attribute="Normal" lineEndContext="#stay"> 0164 <keyword String="blocks" attribute="Keyword"/> 0165 <AnyChar String="{[(" lookAhead="true" context="#pop"/> 0166 <RegExpr String="&identifier;" attribute="Declaration" context="#pop"/> 0167 </context> 0168 0169 <context name="string" attribute="String" lineEndContext="#stay"> 0170 <RegExpr String='[^"]+' attribute="String" context="#stay"/> 0171 <DetectChar char='"' attribute="String" context="#pop"/> 0172 </context> 0173 0174 <context name="comment" attribute="Comment" lineEndContext="#pop"> 0175 <Detect2Chars char="/" char1="/"/> 0176 </context> 0177 0178 <context name="mlComment" attribute="Comment" lineEndContext="#stay"> 0179 <Detect2Chars char="/" char1="*"/> 0180 <RegExpr String="[^(*/)]*"/> 0181 <Detect2Chars char="*" char1="/" attribute="Comment" context="#pop"/> 0182 </context> 0183 </contexts> 0184 0185 <itemDatas> 0186 <itemData name="Declaration" defStyleNum="dsFunction"/> 0187 <itemData name="Italic" defStyleNum="dsNormal" italic="true"/> 0188 <itemData name="Field" defStyleNum="dsNormal" italic="true"/> 0189 <itemData name="TriggerZone" defStyleNum="dsSpecialChar"/> 0190 0191 <itemData name="Normal" defStyleNum="dsNormal"/> 0192 <itemData name="Keyword" defStyleNum="dsKeyword"/> 0193 <itemData name="ControlFlow" defStyleNum="dsControlFlow"/> 0194 <itemData name="Operator" defStyleNum="dsOperator"/> 0195 <itemData name="String" defStyleNum="dsString"/> 0196 <itemData name="DataType" defStyleNum="dsDataType"/> 0197 <itemData name="DecVal" defStyleNum="dsDecVal"/> 0198 <itemData name="Constant" defStyleNum="dsConstant"/> 0199 <itemData name="Comment" defStyleNum="dsComment"/> 0200 </itemDatas> 0201 </highlighting> 0202 </language>