blog/syntax/ats.xml

211 lines
7.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd" [
<!ENTITY LETTER "A-Za-z\xc0-\xd6\xd8-\xf6\xf8-\xff">
<!ENTITY IDENT "[&LETTER;_@$][&LETTER;0-9_@$']*">
<!ENTITY ESC "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})">
<!ENTITY DEC "([0-9][0-9_]*)">
<!ENTITY DECEXP "([eE][+-]?&DEC;)">
<!ENTITY HEX "([0-9a-fA-F]+)">
]>
<language name="ATS" section="Sources" extensions="*.sats;*.dats;*.hats"
version="1" kateversion="5.53">
<highlighting>
<list name="decl">
<item>abstype</item> <item>abst@ype</item> <item>absprop</item>
<item>absview</item> <item>absvtype</item> <item>absvt@ype</item>
<item>absviewtype</item> <item>absviewt@ype</item>
<item>exception</item>
<item>datatype</item> <item>dataprop</item> <item>dataview</item>
<item>dataviewtype</item> <item>datavtype</item> <item>datasort</item>
<item>typedef</item> <item>propdef</item> <item>viewdef</item>
<item>vtypedef</item> <item>viewtypedef</item> <item>sortdef</item>
<item>tkindef</item> <item>classdec</item>
<item>macdef</item> <item>macrodef</item>
<item>withtype</item> <item>withprop</item> <item>withview</item>
<item>withvtype</item> <item>withviewtype</item>
<item>val</item> <item>fun</item> <item>fn</item> <item>fnx</item>
<item>prfun</item> <item>prfn</item> <item>praxi</item>
<item>castfn</item>
<item>and</item>
<item>var</item> <item>prvar</item>
<item>infix</item> <item>infixl</item> <item>infixr</item>
<item>prefix</item> <item>postfix</item> <item>nonfix</item>
<item>symintr</item> <item>symelim</item>
<item>sta</item> <item>stacst</item>
<item>stadef</item> <item>static</item>
</list>
<list name="meta">
<item>extern</item> <item>extype</item> <item>extvar</item>
<item>$extern</item> <item>$extype</item> <item>$extkind</item>
<item>$extype_struct</item>
<item>$myfilename</item> <item>$mylocation</item> <item>$myfunction</item>
<item>import</item> <item>staload</item> <item>dynload</item>
</list>
<list name="preproc">
<item>#include</item> <item>#staload</item> <item>#dynload</item>
<item>#require</item>
<item>#if</item> <item>#ifdef</item> <item>#ifndef</item>
<item>#then</item>
<item>#elif</item> <item>#elifdef</item> <item>#elifndef</item>
<item>#else</item> <item>#endif</item>
<item>#error</item> <item>#prerr</item> <item>#print</item>
<item>#assert</item>
<item>#define</item> <item>#undef</item>
<item>#pragma</item> <item>#codegen2</item> <item>#codegen3</item>
</list>
<list name="impl">
<item>assume</item> <item>reassume</item>
<item>implmnt</item> <item>implement</item>
<item>primplmnt</item> <item>primplement</item>
<item>overload</item>
</list>
<list name="expr">
<item>begin</item> <item>end</item>
<item>op</item> <item>as</item>
<item>case</item> <item>prcase</item> <item>of</item> <item>when</item>
<item>scase</item>
<item>let</item> <item>local</item> <item>in</item> <item>rec</item>
<item>if</item> <item>then</item> <item>else</item>
<item>ifcase</item> <item>sif</item>
<item>where</item>
<item>for</item> <item>do</item>
<item>$break</item> <item>$continue</item>
<item>lam</item> <item>llam</item> <item>lam@</item>
<item>fix</item> <item>fix@</item>
<item>try</item> <item>with</item> <item>$raise</item>
<item>$delay</item> <item>$ldelay</item>
<item>$arrpsz</item> <item>$arrptrsize</item>
<item>$tyrep</item> <item>$d2ctype</item>
<item>$effmask</item>
<item>$effmask_ntm</item> <item>$effmask_exn</item>
<item>$effmask_ref</item> <item>$effmask_wrt</item>
<item>$effmask_all</item>
<item>$lst</item> <item>$lst_t</item> <item>$lst_vt</item>
<item>$list</item> <item>$list_t</item> <item>$list_vt</item>
<item>$rec</item> <item>$rec_t</item> <item>$rec_vt</item>
<item>$record</item> <item>$record_t</item> <item>$record_vt</item>
<item>$tup</item> <item>$tup_t</item> <item>$tup_vt</item>
<item>$tuple</item> <item>$tuple_t</item> <item>$tuple_vt</item>
<item>$solver_assert</item>
<item>$solver_verify</item>
<item>$vararg</item>
<item>$showtype</item>
<item>$tempenver</item>
</list>
<list name="prim">
<item>type</item> <item>t@ype</item>
<item>view</item> <item>prop</item>
<item>viewtype</item> <item>viewt@ype</item>
<item>vtype</item> <item>vt@ype</item>
</list>
<list name="const">
<item>bool</item> <item>true</item> <item>false</item>
<item>int</item> <item>nat</item>
</list>
<contexts>
<context attribute="default" lineEndContext="#stay" name="default">
<Detect2Chars attribute="comment" context="comment-1"
char="/" char1="/" />
<Detect2Chars attribute="comment" context="comment-c"
char="/" char1="*" />
<Detect2Chars attribute="comment" context="comment-ml"
char="(" char1="*" />
<keyword attribute="decl" context="#stay" String="decl" />
<keyword attribute="meta" context="#stay" String="meta" />
<keyword attribute="preproc" context="#stay" String="preproc" />
<keyword attribute="impl" context="#stay" String="impl" />
<keyword attribute="expr" context="#stay" String="expr" />
<keyword attribute="prim" context="#stay" String="prim" />
<keyword attribute="const" context="#stay" String="const" />
<RegExpr attribute="arrowlike" context="#stay"
String="[-=&lt;>:]|=/?=>>?|\.&lt;|>\." />
<DetectChar attribute="string" context="string" char="&quot;" />
<RegExpr attribute="decint" context="#stay" String="~?&DEC;" />
<RegExpr attribute="float" context="#stay"
String="~?((&DEC;\.&DEC;?|\.&DEC;)&DECEXP;?|&DEC;&DECEXP;)" />
<RegExpr attribute="hexint" context="#stay" String="~?0[xX]&HEX;" />
</context>
<context attribute="comment" lineEndContext="#pop" name="comment-1" />
<context attribute="comment" lineEndContext="#stay" name="comment-c">
<!-- not nestable -->
<Detect2Chars attribute="comment" context="#pop"
char="*" char1="/" />
</context>
<context attribute="comment" lineEndContext="#stay" name="comment-ml">
<!-- nestable -->
<Detect2Chars attribute="comment" context="comment-ml"
char="(" char1="*" />
<Detect2Chars attribute="comment" context="#pop"
char="*" char1=")" />
</context>
<context attribute="string" lineEndContext="#stay" name="string">
<RegExpr attribute="esc" context="#stay" String="&ESC;" />
<DetectChar attribute="string" context="#pop" char="&quot;" />
</context>
</contexts>
<itemDatas>
<itemData name="default" defStyleNum="dsNormal" />
<itemData name="comment" defStyleNum="dsComment" />
<itemData name="decl" defStyleNum="dsDataType" />
<itemData name="meta" defStyleNum="dsKeyword" />
<itemData name="preproc" defStyleNum="dsPreprocessor" />
<itemData name="impl" defStyleNum="dsFunction" />
<itemData name="expr" defStyleNum="dsControlFlow" />
<itemData name="prim" defStyleNum="dsBuiltIn" />
<itemData name="const" defStyleNum="dsConstant" />
<itemData name="arrowlike" defStyleNum="dsOperator" />
<itemData name="string" defStyleNum="dsString" />
<itemData name="decint" defStyleNum="dsDecVal" />
<itemData name="float" defStyleNum="dsFloat" />
<itemData name="hexint" defStyleNum="dsBaseN" />
<itemData name="esc" defStyleNum="dsSpecialChar" />
</itemDatas>
</highlighting>
</language>