blog/syntax/quox.xml

168 lines
6.6 KiB
XML
Raw Normal View History

2023-12-27 19:00:25 -05:00
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd" [
<!ENTITY tok_start "(?&lt;=^|\s|[(\[{}\]),:.])">
<!ENTITY tok_end "(?=$|\s|[(\[{}\]),:.])">
<!ENTITY hexit "[0-9a-fA-F]">
]>
<language name="quox" section="Sources" extensions="*.quox"
version="1" kateversion="5.53">
<highlighting>
<list name="load"> <item>load</item> </list>
<list name="types">
<item>String</item>
<item>IOState</item>
<item></item> <item>Nat</item>
<item>Eq</item>
<item>Type</item>
</list>
<list name="exprs">
<item>fst</item> <item>snd</item>
<item>coe</item> <item>comp</item>
<item>λ</item> <item>fun</item>
<item>δ</item> <item>dfun</item>
<item>return</item> <item>of</item>
<item>return</item> <item>of</item>
<item>zero</item> <item>succ</item>
</list>
<list name="attrs">
<item>fail</item>
<item>main</item>
<item>compile-scheme</item>
</list>
<contexts>
<context attribute="default" lineEndContext="#stay" name="Default">
<keyword attribute="load" context="#stay" String="load" />
<RegExpr attribute="defs" context="qty_suffix"
String="\b(def|postulate)(?=([01#]|ω)?\b)" />
<keyword attribute="types" context="#stay" String="types" />
<DetectChar attribute="types" context="#stay" char="★" />
<DetectChar attribute="types" context="#stay" char="×" />
<Detect2Chars attribute="types" context="#stay" char="*" char1="*" />
<DetectChar attribute="types" context="#stay" char="→" />
<Detect2Chars attribute="types" context="#stay" char="-" char1=">" />
<DetectChar attribute="types" context="#stay" char="≡" />
<Detect2Chars attribute="types" context="#stay" char="=" char1="=" />
<keyword attribute="exprs" context="#stay" String="exprs" />
<DetectChar attribute="exprs" context="#stay" char="∷" />
<Detect2Chars attribute="exprs" context="#stay" char=":" char1=":" />
<DetectChar attribute="exprs" context="#stay" char="," />
<DetectChar attribute="exprs" context="#stay" char="⇒" />
<Detect2Chars attribute="exprs" context="#stay" char="=" char1=">" />
<RegExpr attribute="exprs" context="qty_suffix"
String="\bcase(?=([01#]|ω)?\b)" />
<RegExpr attribute="hex_nat" context="#stay"
String="\b0[xX]&hexit;((&hexit;|_)*&hexit;)?\b(?!\.)" />
<RegExpr attribute="dec_nat" context="#stay"
String="\b\d((\d|_)*\d)?\b(?!\.)" />
<DetectChar attribute="string" context="String" char="&quot;" />
<Detect2Chars attribute="tag" context="Tag"
char="'" char1="&quot;" />
<RegExpr attribute="tag" context="#stay"
String="(?&lt;!\w|-|')'(\w|-|')+" />
<RegExpr attribute="qty" context="#stay"
String="\b([01#]|ω)\.(?!\d)" />
<DetectChar attribute="punc" context="#stay" char="=" />
<DetectChar attribute="punc" context="#stay" char="@" />
<Detect2Chars attribute="attr" context="attr" char="#" char1="[" />
<Detect2Chars attribute="comment" context="comment_s"
char="-" char1="-" />
<Detect2Chars attribute="comment" context="comment_m"
char="{" char1="-" />
</context>
<context attribute="qty" lineEndContext="#pop" name="qty_suffix">
<RegExpr attribute="qty" context="#stay" String="([01#]|ω)?\b" />
<RegExpr attribute="normal" context="#pop" String="\s|$" />
</context>
<context attribute="string" lineEndContext="#stay" name="String">
<Detect2Chars attribute="string_esc" context="#stay"
char="\" char1="&quot;" />
<Detect2Chars attribute="string_esc" context="#stay"
char="\" char1="\" />
<Detect2Chars attribute="string_esc" context="#stay"
char="\" char1="n" />
<Detect2Chars attribute="string_esc" context="#stay"
char="\" char1="t" />
<RegExpr attribute="string_esc" context="#stay"
String="\\x&hexit;+;" />
<DetectChar attribute="string" context="#pop" char="&quot;" />
</context>
<context attribute="tag" lineEndContext="#stay" name="Tag">
<Detect2Chars attribute="tag_esc" context="#stay"
char="\" char1="&quot;" />
<Detect2Chars attribute="tag_esc" context="#stay"
char="\" char1="\" />
<Detect2Chars attribute="tag_esc" context="#stay"
char="\" char1="n" />
<Detect2Chars attribute="tag_esc" context="#stay"
char="\" char1="t" />
<RegExpr attribute="tag_esc" context="#stay"
String="\\x&hexit;+;" />
<DetectChar attribute="tag" context="#pop" char="&quot;" />
</context>
<context attribute="attr" lineEndContext="#stay" name="attr">
<DetectChar attribute="string" context="String" char="&quot;" />
<DetectChar attribute="attr" context="attr" char="[" />
<DetectChar attribute="attr" context="#pop" char="]" />
<keyword attribute="attr_name" context="#stay" String="attrs" />
</context>
<context attribute="comment" lineEndContext="#pop" name="comment_s" />
<context attribute="comment" lineEndContext="#stay" name="comment_m">
<Detect2Chars attribute="comment" context="comment_m"
char="{" char1="-" />
<Detect2Chars attribute="comment" context="#pop"
char="-" char1="}" />
</context>
</contexts>
<itemDatas>
<itemData name="default" defStyleNum="dsNormal" />
<itemData name="load" defStyleNum="dsPreprocessor" />
<itemData name="defs" defStyleNum="dsFunction" />
<itemData name="types" defStyleNum="dsDataType" />
<itemData name="exprs" defStyleNum="dsControlFlow" />
<itemData name="dec_nat" defStyleNum="dsDecVal" />
<itemData name="hex_nat" defStyleNum="dsBaseN" />
<itemData name="string" defStyleNum="dsString" />
<itemData name="string_esc" defStyleNum="dsSpecialChar" />
<itemData name="tag" defStyleNum="dsSpecialString" />
<itemData name="tag_esc" defStyleNum="dsSpecialChar" />
<itemData name="qty" defStyleNum="dsBuiltIn" />
<itemData name="punc" defStyleNum="dsNormal" />
<itemData name="attr" defStyleNum="dsNormal" />
<itemData name="attr_name" defStyleNum="dsAttribute" />
<itemData name="comment" defStyleNum="dsComment" />
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="true" weakDeliminator="-'" />
</general>
</language>