<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE language><language name="Viper" section="Sources" version="2" kateversion="5.62" indenter="cstyle" extensions="*.vpr" mimetype="text/x-vpr" author="nishanthkarthik" license="MIT"><highlighting><list name="blocks"><item>axiom</item><item>define</item><item>domain</item><item>field</item><item>function</item><item>method</item><item>predicate</item></list><list name="constants"><item>false</item><item>null</item><item>true</item></list><list name="controlFlow"><item>else</item><item>elseif</item><item>goto</item><item>if</item><item>label</item><item>while</item></list><list name="kw"><item>acc</item><item>apply</item><item>applying</item><item>assert</item><item>assume</item><item>constraining</item><item>ensures</item><item>epsilon</item><item>exhale</item><item>exists</item><item>fold</item><item>folding</item><item>forall</item><item>forperm</item><item>fresh</item><item>in</item><item>inhale</item><item>invariant</item><item>let</item><item>none</item><item>old</item><item>package</item><item>packaging</item><item>perm</item><item>requires</item><item>result</item><item>returns</item><item>unfold</item><item>unfolding</item><item>unique</item><item>var</item><item>wand</item><item>wildcard</item><item>write</item></list><list name="ops"><item>!</item><item>!=</item><item>&amp;&amp;</item><item>*</item><item>+</item><item>++</item><item>-</item><item>--*</item><item>/</item><item>::</item><item>&lt;</item><item>&lt;=</item><item>&lt;==></item><item>==</item><item>==></item><item>></item><item>>=</item><item>\%</item><item>\/</item><item>\\</item><item>in</item><item>intersection</item><item>setminus</item><item>subset</item><item>union</item><item>||</item></list><list name="types"><item>Bool</item><item>Int</item><item>Multiset</item><item>Perm</item><item>Rational</item><item>Ref</item><item>Seq</item><item>Set</item></list><contexts><context name="normal" attribute="Normal"><DetectSpaces/><WordDetect String="import" context="import" lookAhead="1"/><keyword String="blocks" context="block" lookAhead="1"/><WordDetect String="/*" context="mlComment" lookAhead="1"/><WordDetect String="//" context="comment" lookAhead="1"/><keyword String="constants" attribute="Constant"/><keyword String="kw" attribute="Keyword"/><RegExpr String="([:]{2})" context="quantifier" lookAhead="1"/><keyword String="ops" attribute="Operator"/><keyword String="types" attribute="DataType"/><keyword String="controlFlow" attribute="ControlFlow"/><DetectChar char="{" attribute="Operator" beginRegion="regionBraced"/><DetectChar char="}" attribute="Operator" endRegion="regionBraced"/><RegExpr String="([a-zA-Z$_][a-zA-Z0-9$_'\[\]]*)(\.\b[a-zA-Z$_][a-zA-Z0-9$_'\[\]]*)" context="fieldAccess" lookAhead="1"/><Int attribute="DecVal"/></context><context name="nextTrigger" attribute="Normal"><DetectChar char="{" attribute="TriggerZone" context="#pop!inTrigger"/><RegExpr String="[^\{\s]" context="#pop#pop"/></context><context name="block" attribute="Normal"><keyword String="blocks" attribute="Keyword"/><AnyChar String="{[(" context="#pop" lookAhead="1"/><RegExpr String="[a-zA-Z$_][a-zA-Z0-9$_'\[\]]*" attribute="Declaration" context="#pop"/></context><context name="comment" attribute="Comment" lineEndContext="#pop"><StringDetect String="//"/></context><context name="fieldAccess" attribute="Normal"><StringDetect String="%1" dynamic="1"/><StringDetect String="%2" attribute="Field" context="#pop" dynamic="1"/></context><context name="import" attribute="Keyword" lineEndContext="#pop"><WordDetect String="import" attribute="Keyword"/><DetectChar char='"' attribute="String" context="string"/></context><context name="inTrigger" attribute="Normal"><DetectChar char="}" attribute="TriggerZone" context="#pop!nextTrigger"/><RegExpr String="[^\}\s]" attribute="Italic"/></context><context name="mlComment" attribute="Comment"><StringDetect String="/*"/><RegExpr String="[^(*/)]*"/><StringDetect String="*/" attribute="Comment" context="#pop"/></context><context name="quantifier" attribute="Normal"><StringDetect String="%1" dynamic="1"/><IncludeRules context="nextTrigger"/></context><context name="string" attribute="String"><RegExpr String='[^"]+' attribute="String"/><DetectChar char='"' attribute="String" context="#pop"/></context></contexts><itemDatas><itemData name="Declaration" defStyleNum="dsFunction"/><itemData name="Italic" defStyleNum="dsNormal" italic="1"/><itemData name="Field" defStyleNum="dsNormal" italic="1"/><itemData name="TriggerZone" defStyleNum="dsSpecialChar"/><itemData name="Normal" defStyleNum="dsNormal"/><itemData name="Keyword" defStyleNum="dsKeyword"/><itemData name="ControlFlow" defStyleNum="dsControlFlow"/><itemData name="Operator" defStyleNum="dsOperator"/><itemData name="String" defStyleNum="dsString"/><itemData name="DataType" defStyleNum="dsDataType"/><itemData name="DecVal" defStyleNum="dsDecVal"/><itemData name="Constant" defStyleNum="dsConstant"/><itemData name="Comment" defStyleNum="dsComment"/></itemDatas></highlighting></language>