<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language
[
<!ENTITY unum "\d+">
<!ENTITY anum "[a-z\d]+">
<!ENTITY bnum "\b&unum;b_?&anum;(\.&anum;)\b">
<!ENTITY inum "_?&unum;">
<!ENTITY xnum "\b&inum;x\b">
<!ENTITY rnum "\b&inum;r&inum;\b">
<!ENTITY fnum "&inum;(\.&unum;)?">
<!ENTITY enum "(&fnum;(e&inum;)?|_?_|_\.)">
<!ENTITY cnum "&enum;((j|a[dr])&enum;)?">
<!ENTITY pnum "\b&cnum;([px]&cnum;)?(?![a-z\d_.])">
<!ENTITY name "[a-zA-Z][a-zA-Z\d_]*">
<!ENTITY lname "\b&name;_(&name;)?_\b">
<!ENTITY ilname "\b&name;__&name;\b">
]>
<language name="J"
section="Scripts"
version="5"
kateversion="5.0"
extensions="*.ijs;*.ijt;*.IJS;*.IJT"
mimetype="text/x-j;text/x-jsrc"
author="Igor Zhuravlov (zhuravlov.ip@ya.ru), greg heil (gheil.j@gmail.com)"
indenter="normal"
license="GPL">
<highlighting>
<contexts>
<context attribute="Sentence" lineEndContext="#pop" name="sentence">
<DetectSpaces/>
<RegExpr attribute="Foldable" context="#stay" String=":\s*0|\bdefine\b" beginRegion="Fold"/>
<LineContinue attribute="Foldable" context="#stay" char=")" endRegion="Fold" column="0"/>
<StringDetect attribute="Comment" context="#stay" String="NB.(" beginRegion="Fold"/>
<StringDetect attribute="Comment" context="#stay" String="NB.)" endRegion="Fold"/>
<StringDetect attribute="Comment" context="comment line" String="NB."/>
<RegExpr attribute="String" context="#stay" String="'([^']|'')*'"/>
<RegExpr attribute="Adverb" context="#stay" String="([/\\]\.|\b[bfMt]\.|\bt:|[~/\\}])(?![.:])"/>
<RegExpr attribute="Verb" context="#stay" String="(_?\d:|p\.\.|[ACeEIjLor]\.|[_/\\iqsux]:|\{::|[=!\]]|[-<>+*%$|,#\{][.:]?|[;\[]:?|[~}"ip][.:]|[?^]\.?)(?![.:])"/>
<RegExpr attribute="Number" context="#stay" String="&bnum;|&xnum;|&rnum;|&pnum;"/>
<AnyChar attribute="Parens" context="#stay" String="()"/>
<RegExpr attribute="Conjunction" context="#stay" String="("|[@&][.:]?|[.:][.:]?|[!D][.:]|&\.:|[;dHT]\.|`:?|[LS^]:)(?![.:])"/>
<RegExpr attribute="Control" context="#stay" String="\b(assert|break|f?case|catch[dt]?|continue|do|else(if)?|end|for(_&name;)?|(goto|label)_&name;|if|return|select|throw|try|whil(e|st))\.(?![.:])"/>
<Detect2Chars attribute="Copulae Global" context="#stay" char="=" char1=":"/>
<Detect2Chars attribute="Copulae Local" context="#stay" char="=" char1="."/>
<RegExpr attribute="ExpArg" context="#stay" String="\b[nmuvxy](?![\w:.])"/>
<RegExpr attribute="Noun" context="#stay" String="\ba[.:](?![.:])"/>
</context>
<context attribute="Comment" lineEndContext="#pop" name="comment line">
<DetectSpaces />
<IncludeRules context="##Comments"/>
</context>
</contexts>
<itemDatas>
<itemData name="Sentence" defStyleNum="dsNormal"/>
<itemData name="Adverb" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
<itemData name="Conjunction" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Control" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Copulae Global" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="Copulae Local" defStyleNum="dsKeyword" spellChecking="false"/>
<itemData name="ExpArg" defStyleNum="dsKeyword" spellChecking="false" italic="true"/>
<itemData name="Foldable" defStyleNum="dsRegionMarker" spellChecking="false"/>
<itemData name="Noun" defStyleNum="dsKeyword" spellChecking="false" bold="true"/>
<itemData name="Number" defStyleNum="dsDecVal" spellChecking="false"/>
<itemData name="Parens" defStyleNum="dsRegionMarker" spellChecking="false"/>
<itemData name="String" defStyleNum="dsString" spellChecking="false"/>
<itemData name="Verb" defStyleNum="dsKeyword" spellChecking="false"/>
</itemDatas>
</highlighting>
<general>
<comments>
<comment name="multiLine" start="NB.(" end="NB.)" region="Fold"/>
<comment name="singleLine" start="NB."/>
</comments>
<folding indentationsensitive="true"/>
</general>
</language>