<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language>
<language name="Modula-2" mimetype="text/x-modula2" version="8"
kateversion="5.0" section="Sources" priority="5" extensions="*.mod;*.def"
casesensitive="1" author="B. Kowarsch (trijezdci@github)" license="MIT">
<highlighting>
<list name="workaround">
<item>???</item>
</list>
<list name="common-keywords">
<item>AND</item>
<item>ARRAY</item>
<item>BEGIN</item>
<item>BY</item>
<item>CASE</item>
<item>CONST</item>
<item>DEFINITION</item>
<item>DIV</item>
<item>DO</item>
<item>ELSE</item>
<item>ELSIF</item>
<item>END</item>
<item>EXIT</item>
<item>FOR</item>
<item>FROM</item>
<item>IF</item>
<item>IMPLEMENTATION</item>
<item>IMPORT</item>
<item>IN</item>
<item>LOOP</item>
<item>MOD</item>
<item>MODULE</item>
<item>NOT</item>
<item>OF</item>
<item>OR</item>
<item>POINTER</item>
<item>PROCEDURE</item>
<item>RECORD</item>
<item>REPEAT</item>
<item>RETURN</item>
<item>SET</item>
<item>THEN</item>
<item>TO</item>
<item>TYPE</item>
<item>UNTIL</item>
<item>VAR</item>
<item>WHILE</item>
</list>
<list name="common-constants">
<item>FALSE</item>
<item>NIL</item>
<item>TRUE</item>
</list>
<list name="common-types">
<item>BOOLEAN</item>
<item>CARDINAL</item>
<item>CHAR</item>
<item>INTEGER</item>
<item>LONGREAL</item>
<item>REAL</item>
</list>
<list name="common-procedures">
<item>ABS</item>
<item>CHR</item>
<item>MAX</item>
<item>MIN</item>
<item>ODD</item>
<item>ORD</item>
</list>
<list name="common-unsafe">
<item>ADDRESS</item>
<item>WORD</item>
<item>ADR</item>
</list>
<list name="pim-only-libraries">
<item>InOut</item>
<item>MathLib0</item>
</list>
<list name="iso-only-keywords">
<item>EXCEPT</item>
<item>FINALLY</item>
<item>PACKEDSET</item>
<item>REM</item>
<item>RETRY</item>
</list>
<list name="iso-only-constants">
<item>INTERRUPTIBLE</item>
<item>UNINTERRUPTIBLE</item>
</list>
<list name="iso-only-types">
<item>PROTECTION</item>
</list>
<list name="iso-only-procedures">
<item>CMPLX</item>
<item>IM</item>
<item>LFLOAT</item>
<item>RE</item>
</list>
<list name="iso-only-unsafe">
<item>BITSPERLOC</item>
<item>BITSPERWORD</item>
<item>LOC</item>
<item>ADDADR</item>
<item>DIFADR</item>
<item>MAKEADR</item>
<item>ROTATE</item>
<item>SHIFT</item>
<item>SUBADR</item>
</list>
<list name="iso-only-libraries">
<item>IOConsts</item>
<item>IOLink</item>
<item>IOResult</item>
<item>LongIO</item>
<item>WholeIO</item>
<item>RawIO</item>
<item>SIOResult</item>
<item>SLongIO</item>
<item>SWholeIO</item>
<item>SRealIO</item>
<item>SRawIO</item>
<item>ConvTypes</item>
<item>RealStr</item>
<item>WholeStr</item>
<item>WholeConv</item>
</list>
<list name="r10-only-keywords">
<item>ALIAS</item>
<item>ARGLIST</item>
<item>BLUEPRINT</item>
<item>COPY</item>
<item>GENLIB</item>
<item>OPAQUE</item>
<item>READ</item>
<item>REFERENTIAL</item>
<item>RELEASE</item>
<item>RETAIN</item>
<item>WRITE</item>
<item>YIELD</item>
</list>
<list name="r10-only-types">
<item>OCTET</item>
<item>UNICHAR</item>
</list>
<list name="r10-only-procedures">
<item>APPEND</item>
<item>CAPACITY</item>
<item>COUNT</item>
<item>INSERT</item>
<item>LOG2</item>
<item>POW2</item>
<item>PRED</item>
<item>PTR</item>
<item>REMOVE</item>
<item>SGN</item>
<item>SUCC</item>
</list>
<list name="r10-only-macros">
<item>TLIMIT</item>
<item>TMAX</item>
<item>TMIN</item>
</list>
<list name="r10-only-unsafe">
<item>UNSAFE</item>
<item>LONGWORD</item>
<item>OCTETSEQ</item>
<item>BIT</item>
<item>BWAND</item>
<item>BWNOT</item>
<item>BWOR</item>
<item>SETBIT</item>
<item>SHL</item>
<item>SHR</item>
</list>
<list name="r10-only-libraries">
<item>PervasiveIO</item>
<item>UnsafeIO</item>
</list>
<list name="pim-keywords">
<item>AND</item>
<item>ARRAY</item>
<item>BEGIN</item>
<item>BY</item>
<item>CASE</item>
<item>CONST</item>
<item>DEFINITION</item>
<item>DIV</item>
<item>DO</item>
<item>ELSE</item>
<item>ELSIF</item>
<item>END</item>
<item>EXIT</item>
<item>EXPORT</item>
<item>FOR</item>
<item>FROM</item>
<item>IF</item>
<item>IMPLEMENTATION</item>
<item>IMPORT</item>
<item>IN</item>
<item>LOOP</item>
<item>MOD</item>
<item>MODULE</item>
<item>NOT</item>
<item>OF</item>
<item>OR</item>
<item>POINTER</item>
<item>PROCEDURE</item>
<item>QUALIFIED</item>
<item>RECORD</item>
<item>REPEAT</item>
<item>RETURN</item>
<item>SET</item>
<item>THEN</item>
<item>TO</item>
<item>TYPE</item>
<item>UNTIL</item>
<item>VAR</item>
<item>WHILE</item>
<item>WITH</item>
</list>
<list name="pim-constants">
<item>FALSE</item>
<item>NIL</item>
<item>TRUE</item>
</list>
<list name="pim-types">
<item>BOOLEAN</item>
<item>BITSET</item>
<item>CARDINAL</item>
<item>CHAR</item>
<item>INTEGER</item>
<item>LONGINT</item>
<item>LONGREAL</item>
<item>PROC</item>
<item>REAL</item>
</list>
<list name="pim-procedures">
<item>ABS</item>
<item>CAP</item>
<item>CHR</item>
<item>DEC</item>
<item>EXCL</item>
<item>FLOAT</item>
<item>HALT</item>
<item>HIGH</item>
<item>INC</item>
<item>INCL</item>
<item>MAX</item>
<item>MIN</item>
<item>ODD</item>
<item>ORD</item>
<item>SIZE</item>
<item>TRUNC</item>
<item>VAL</item>
</list>
<list name="pim-macros">
<item>NEW</item>
<item>ALLOCATE</item>
<item>DISPOSE</item>
<item>DEALLOCATE</item>
</list>
<list name="pim-unsafe">
<item>SYSTEM</item>
<item>ADDRESS</item>
<item>PROCESS</item>
<item>WORD</item>
<item>ADR</item>
<item>NEWPROCESS</item>
<item>TRANSFER</item>
<item>TSIZE</item>
</list>
<list name="iso-keywords">
<item>AND</item>
<item>ARRAY</item>
<item>BEGIN</item>
<item>BY</item>
<item>CASE</item>
<item>CONST</item>
<item>DEFINITION</item>
<item>DIV</item>
<item>DO</item>
<item>ELSE</item>
<item>ELSIF</item>
<item>END</item>
<item>EXIT</item>
<item>EXCEPT</item>
<item>EXPORT</item>
<item>FINALLY</item>
<item>FOR</item>
<item>FORWARD</item>
<item>FROM</item>
<item>IF</item>
<item>IMPLEMENTATION</item>
<item>IMPORT</item>
<item>IN</item>
<item>LOOP</item>
<item>MOD</item>
<item>MODULE</item>
<item>NOT</item>
<item>OF</item>
<item>OR</item>
<item>PACKEDSET</item>
<item>POINTER</item>
<item>PROCEDURE</item>
<item>QUALIFIED</item>
<item>RECORD</item>
<item>REM</item>
<item>REPEAT</item>
<item>RETRY</item>
<item>RETURN</item>
<item>SET</item>
<item>THEN</item>
<item>TO</item>
<item>TYPE</item>
<item>UNTIL</item>
<item>VAR</item>
<item>WHILE</item>
<item>WITH</item>
</list>
<list name="iso-constants">
<item>FALSE</item>
<item>INTERRUPTIBLE</item>
<item>NIL</item>
<item>TRUE</item>
<item>UNINTERRUPTIBLE</item>
</list>
<list name="iso-types">
<item>BOOLEAN</item>
<item>BITSET</item>
<item>CARDINAL</item>
<item>COMPLEX</item>
<item>CHAR</item>
<item>INTEGER</item>
<item>LONGCOMPLEX</item>
<item>LONGREAL</item>
<item>PROC</item>
<item>PROTECTION</item>
<item>REAL</item>
</list>
<list name="iso-procedures">
<item>ABS</item>
<item>CAP</item>
<item>CHR</item>
<item>CMPLX</item>
<item>DEC</item>
<item>EXCL</item>
<item>FLOAT</item>
<item>HALT</item>
<item>HIGH</item>
<item>IM</item>
<item>INC</item>
<item>INCL</item>
<item>INT</item>
<item>LENGTH</item>
<item>LFLOAT</item>
<item>MAX</item>
<item>MIN</item>
<item>ODD</item>
<item>ORD</item>
<item>RE</item>
<item>SIZE</item>
<item>TRUNC</item>
<item>VAL</item>
</list>
<list name="iso-macros">
<item>NEW</item>
<item>ALLOCATE</item>
<item>DISPOSE</item>
<item>DEALLOCATE</item>
</list>
<list name="iso-unsafe">
<item>SYSTEM</item>
<item>BITSPERLOC</item>
<item>BITSPERWORD</item>
<item>ADDRESS</item>
<item>LOC</item>
<item>WORD</item>
<item>ADDADR</item>
<item>ADR</item>
<item>CAST</item>
<item>DIFADR</item>
<item>MAKEADR</item>
<item>ROTATE</item>
<item>SHIFT</item>
<item>SUBADR</item>
<item>TSIZE</item>
</list>
<list name="r10-keywords">
<item>ALIAS</item>
<item>AND</item>
<item>ARGLIST</item>
<item>ARRAY</item>
<item>BEGIN</item>
<item>BLUEPRINT</item>
<item>BY</item>
<item>CASE</item>
<item>CONST</item>
<item>COPY</item>
<item>DEFINITION</item>
<item>DIV</item>
<item>DO</item>
<item>ELSE</item>
<item>ELSIF</item>
<item>END</item>
<item>EXIT</item>
<item>FOR</item>
<item>FROM</item>
<item>GENLIB</item>
<item>IF</item>
<item>IMPLEMENTATION</item>
<item>IMPORT</item>
<item>IN</item>
<item>LOOP</item>
<item>MOD</item>
<item>MODULE</item>
<item>NEW</item>
<item>NOT</item>
<item>OF</item>
<item>OPAQUE</item>
<item>OR</item>
<item>POINTER</item>
<item>PROCEDURE</item>
<item>READ</item>
<item>RECORD</item>
<item>REFERENTIAL</item>
<item>RELEASE</item>
<item>REPEAT</item>
<item>RETAIN</item>
<item>RETURN</item>
<item>SET</item>
<item>THEN</item>
<item>TO</item>
<item>TYPE</item>
<item>UNTIL</item>
<item>VAR</item>
<item>WHILE</item>
<item>WRITE</item>
<item>YIELD</item>
</list>
<list name="r10-constants">
<item>FALSE</item>
<item>NIL</item>
<item>TRUE</item>
</list>
<list name="r10-types">
<item>BOOLEAN</item>
<item>CARDINAL</item>
<item>CHAR</item>
<item>INTEGER</item>
<item>LONGCARD</item>
<item>LONGINT</item>
<item>LONGREAL</item>
<item>OCTET</item>
<item>REAL</item>
<item>UNICHAR</item>
</list>
<list name="r10-procedures">
<item>ABS</item>
<item>APPEND</item>
<item>CAPACITY</item>
<item>CHR</item>
<item>COUNT</item>
<item>ENTIER</item>
<item>INSERT</item>
<item>LENGTH</item>
<item>LOG2</item>
<item>MAX</item>
<item>MIN</item>
<item>ODD</item>
<item>ORD</item>
<item>POW2</item>
<item>PRED</item>
<item>PTR</item>
<item>REMOVE</item>
<item>SGN</item>
<item>SUCC</item>
</list>
<list name="r10-macros">
<item>TLIMIT</item>
<item>TMAX</item>
<item>TMIN</item>
<item>TSIZE</item>
</list>
<list name="r10-unsafe">
<item>CAST</item>
<item>UNSAFE</item>
<item>BitsPerAddress</item>
<item>BitsPerByte</item>
<item>BytesPerWord</item>
<item>BytesPerLongWord</item>
<item>ADDRESS</item>
<item>BYTE</item>
<item>LONGWORD</item>
<item>OCTETSEQ</item>
<item>WORD</item>
<item>ADD</item>
<item>ADR</item>
<item>BIT</item>
<item>BWAND</item>
<item>BWNOT</item>
<item>BWOR</item>
<item>HALT</item>
<item>SETBIT</item>
<item>SHL</item>
<item>SHR</item>
<item>SUB</item>
<item>NOP</item>
</list>
<contexts>
<context name="Common" attribute="Plain Source" lineEndContext="#stay">
<keyword attribute="Dummy" context="#stay" String="workaround"/>
<RegExpr attribute="DialectTag" context="PIM"
String="\(\*\!m2pim(\+[a-z][a-z0-9]*)?\*\)"/>
<RegExpr attribute="DialectTag" context="ISO"
String="\(\*\!m2iso(\+[a-z][a-z0-9]*)?\*\)"/>
<RegExpr attribute="DialectTag" context="R10"
String="\(\*\!m2r10(\+[a-z][a-z0-9]*)?\*\)"/>
<keyword attribute="Keyword"
context="#stay" String="common-keywords"/>
<keyword attribute="Const"
context="#stay" String="common-constants"/>
<keyword attribute="Const"
context="#stay" String="common-types"/>
<keyword attribute="Builtin"
context="#stay" String="common-procedures"/>
<keyword attribute="Unsafe"
context="#stay" String="common-unsafe"/>
<keyword attribute="Keyword"
context="ISO" String="iso-only-keywords"/>
<keyword attribute="Keyword"
context="R10" String="r10-only-keywords"/>
<keyword attribute="Const"
context="ISO" String="iso-only-constants"/>
<keyword attribute="Type"
context="ISO" String="iso-only-types"/>
<keyword attribute="Type"
context="R10" String="r10-only-types"/>
<keyword attribute="Builtin"
context="ISO" String="iso-only-procedures"/>
<keyword attribute="Builtin"
context="R10" String="r10-only-procedures"/>
<keyword attribute="Builtin"
context="R10" String="r10-only-macros"/>
<keyword attribute="Unsafe" context="ISO" String="iso-only-unsafe"/>
<keyword attribute="Unsafe" context="R10" String="r10-only-unsafe"/>
<keyword attribute="Plain Source"
context="PIM" String="pim-only-libraries"/>
<keyword attribute="Plain Source"
context="ISO" String="iso-only-libraries"/>
<keyword attribute="Plain Source"
context="R10" String="r10-only-libraries"/>
<Float attribute="Number" context="#stay"/>
<Int attribute="Number" context="#stay"/>
<DetectChar attribute="String" context="DoubleQuoted" char="""/>
<DetectChar attribute="String" context="SingleQuoted" char="'"/>
<Detect2Chars attribute="Comment" context="BlockComment"
char="(" char1="*" beginRegion="FoldableComment"/>
</context>
<context name="PIM" attribute="Plain Source" lineEndContext="#stay">
<keyword attribute="Keyword" context="#stay" String="pim-keywords"/>
<keyword attribute="Const" context="#stay" String="pim-constants"/>
<keyword attribute="Type" context="#stay" String="pim-types"/>
<keyword attribute="Builtin" context="#stay" String="pim-procedures"/>
<keyword attribute="Builtin" context="#stay" String="pim-macros"/>
<keyword attribute="Unsafe" context="#stay" String="pim-unsafe"/>
<RegExpr attribute="Number" context="#stay" String="0[0-9A-F]*H|[0-7]+[BC]"/>
<Float attribute="Number" context="#stay"/>
<Int attribute="Number" context="#stay"/>
<DetectChar attribute="String" context="DoubleQuoted" char="""/>
<DetectChar attribute="String" context="SingleQuoted" char="'"/>
<StringDetect attribute="Pragma" context="PIM-Pragma" String="(*$"/>
<Detect2Chars attribute="Comment" context="BlockComment"
char="(" char1="*" beginRegion="FoldableComment"/>
</context>
<context name="ISO" attribute="Plain Source" lineEndContext="#stay">
<keyword attribute="Keyword" context="#stay" String="iso-keywords"/>
<keyword attribute="Const" context="#stay" String="iso-constants"/>
<keyword attribute="Type" context="#stay" String="iso-types"/>
<keyword attribute="Builtin" context="#stay" String="iso-procedures"/>
<keyword attribute="Builtin" context="#stay" String="iso-macros"/>
<keyword attribute="Unsafe" context="#stay" String="iso-unsafe"/>
<RegExpr attribute="Number" context="#stay" String="0[0-9A-F]*H|[0-7]+[BC]"/>
<Float attribute="Number" context="#stay"/>
<Int attribute="Number" context="#stay"/>
<DetectChar attribute="String" context="DoubleQuoted" char="""/>
<DetectChar attribute="String" context="SingleQuoted" char="'"/>
<Detect2Chars attribute="Pragma"
context="ISO-Pragma" char="<" char1="*"/>
<Detect2Chars attribute="Comment" context="BlockComment"
char="(" char1="*" beginRegion="FoldableComment"/>
</context>
<context name="R10" attribute="Plain Source" lineEndContext="#stay">
<keyword attribute="Keyword" context="#stay" String="r10-keywords"/>
<keyword attribute="Const" context="#stay" String="r10-constants"/>
<keyword attribute="Type" context="#stay" String="r10-types"/>
<keyword attribute="Builtin" context="#stay" String="r10-procedures"/>
<keyword attribute="Builtin" context="#stay" String="r10-macros"/>
<keyword attribute="Unsafe" context="#stay" String="r10-unsafe"/>
<RegExpr attribute="Number" context="#stay"
String="0b([01]+('[01]+)?)+|0[ux]([0-9A-F]+('[0-9A-F]+)?)+"/>
<Float attribute="Number" context="#stay"/>
<RegExpr attribute="Number" context="#stay"
String="([1-9][0-9]*('[0-9]+)*)|0"/>
<DetectChar attribute="String" context="DoubleQuoted" char="""/>
<DetectChar attribute="String" context="SingleQuoted" char="'"/>
<Detect2Chars attribute="Pragma"
context="ISO-Pragma" char="<" char1="*"/>
<DetectChar attribute ="Comment" context="LineComment" char="!"/>
<Detect2Chars attribute="Comment" context="BlockComment"
char="(" char1="*" beginRegion="FoldableComment"/>
</context>
<context name="DoubleQuoted" attribute="String" lineEndContext="#pop">
<DetectChar attribute="String" context="#pop" char="""/>
</context>
<context name="SingleQuoted" attribute="String" lineEndContext="#pop">
<DetectChar attribute="String" context="#pop" char="'" />
</context>
<context name="PIM-Pragma" attribute="Pragma" lineEndContext="#stay">
<Detect2Chars attribute="Pragma" context="#pop" char="*" char1=")"/>
</context>
<context name="ISO-Pragma" attribute="Pragma" lineEndContext="#stay">
<Detect2Chars attribute="Pragma"
context="#pop" char="*" char1=">"/>
</context>
<context name="LineComment" attribute="Comment" lineEndContext="#pop">
<DetectSpaces />
<IncludeRules context="##Comments"/>
</context>
<context name="BlockComment" attribute="Comment" lineEndContext="#stay">
<Detect2Chars attribute="Comment" context="BlockComment"
char="(" char1="*" beginRegion="FoldableComment"/>
<Detect2Chars attribute="Comment" context="#pop"
char="*" char1=")" endRegion="FoldableComment"/>
<DetectSpaces />
<IncludeRules context="##Comments"/>
</context>
</contexts>
<itemDatas>
<itemData name="Plain Source"
defStyleNum="dsNormal" bold="0" italic="0"/>
<itemData name="Keyword"
defStyleNum="dsKeyword" bold="1" italic="0"/>
<itemData name="Const"
defStyleNum="dsBuiltIn" bold="1" italic="0"/>
<itemData name="Type"
defStyleNum="dsDataType" bold="1" italic="0"/>
<itemData name="Builtin"
defStyleNum="dsBuiltIn" bold="1" italic="0"/>
<itemData name="Unsafe"
defStyleNum="dsWarning" bold="1" italic="0"/>
<itemData name="Number"
defStyleNum="dsDecVal" bold="0" italic="0"/>
<itemData name="String"
defStyleNum="dsString" bold="0" italic="0"/>
<itemData name="DialectTag"
defStyleNum="dsComment" bold="1" italic="0"/>
<itemData name="Pragma"
defStyleNum="dsPreprocessor" bold="1" italic="0"/>
<itemData name="Comment"
defStyleNum="dsComment" bold="0" italic="1"/>
<itemData name="Dummy" defStyleNum="dsError"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="1" />
<comments>
<comment name="multiLine" start="(*" end="*)" region="FoldableComment"/>
</comments>
</general>
</language>