You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kate/data/ilerpg.xml

726 lines
29 KiB

<!DOCTYPE language SYSTEM "language.dtd">
<!--
*************************************************************************
* *
* Syntax highlighting for IBM iSeries ILE RPG *
* Copyright (C) 2003, Nick Roux *
* *
*************************************************************************
Updated: Nick Roux <nick@sundown.homeip.net>
Date: 2006/04/12
Version: 1.05
Added support for compiler directives and especially /free
Added positional check for opcodes and validation of conditioning indicators
Author: Nick Roux <nick@sundown.homeip.net>
Date: Sometime during 2003
Version: 1.0
This file contains the XML syntax highlighting description for the IBM
iSeries ILE RPG, for KATE, the TDE Advanced Editor.
Based on information from IBM publication SC09-2508-05
Known problems:
1) Calculation Specification Factor1 does not get highlighted
2) Calculation Specification Extended Factor2 Continuation Line does not work correctly
3) Everything from the start of Factor2 is assumed free format
4) Will make a total mess of compile time array data, but that seems rather fitting
5) Operation Code Extenders are not check/highlighted
6) It is slow
This program, including associated files, is free software. You may
distribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either Version 2 of
the license, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-->
<language name="ILERPG" version="2-1" kateversion="2.2" section="Sources" extensions="QRPG*.*;qrpg*.*" mimetype="text/x-ilerpg-src" casesensitive="0">
<highlighting>
<list name="dkeywords">
<item> EXTPROC </item>
<item> EXTPGM </item>
<item> OPDESC </item>
<item> DATFMT </item>
<item> DIM </item>
<item> LIKEDS </item>
<item> LIKEREC </item>
<item> LIKE </item>
<item> PROCPTR </item>
<item> TIMFMT </item>
<item> VARYING </item>
<item> ASCEND </item>
<item> CONST </item>
<item> NOOPT </item>
<item> OPTIONS </item>
<item> VALUE </item>
<item> QUALIFIED </item>
<item> INZ </item>
<item> BASED </item>
</list>
<list name="pkeywords">
<item> DATFMT </item>
<item> DIM </item>
<item> LIKE </item>
<item> LIKEDS </item>
<item> LIKEREC </item>
<item> PROCPTR </item>
<item> TIMFMT </item>
</list>
<list name="directives">
<item> FREE </item>
<item> END-FREE </item>
<item> TITLE </item>
<item> EJECT </item>
<item> SPACE </item>
<item> COPY </item>
<item> INCLUDE </item>
<item> DEFINE </item>
<item> UNDEFINE </item>
<item> IF </item>
<item> ELSE </item>
<item> EXEC </item>
<item> END-EXEC </item>
<item> ELSEIF </item>
<item> ENDIF </item>
<item> EOF </item>
</list>
<list name="directives2">
<item> NOT </item>
<item> DEFINED </item>
</list>
<list name="directives3">
<item> DEFINED </item>
</list>
<list name="biffs">
<item> ABS </item>
<item> ADDR </item>
<item> ALLOC </item>
<item> BITAND </item>
<item> BITNOT </item>
<item> BITOR </item>
<item> BITXOR </item>
<item> CHAR </item>
<item> CHECK </item>
<item> CHECKR </item>
<item> DATE </item>
<item> DAYS </item>
<item> DEC </item>
<item> DECH </item>
<item> DECPOS </item>
<item> DIFF </item>
<item> DIV </item>
<item> EDITC </item>
<item> EDITFLT </item>
<item> EDITW </item>
<item> ELEM </item>
<item> EOF </item>
<item> EQUAL </item>
<item> ERROR </item>
<item> FIELDS </item>
<item> FLOAT </item>
<item> FOUND </item>
<item> GRAPH </item>
<item> HOURS </item>
<item> INT </item>
<item> INTH </item>
<item> KDS </item>
<item> LEN </item>
<item> LOOKUP </item>
<item> LOOKUPLT </item>
<item> LOOKUPLE </item>
<item> LOOKUPGT </item>
<item> LOOKUPGE </item>
<item> MINUTES </item>
<item> MONTHS </item>
<item> MSECONDS </item>
<item> NULLIND </item>
<item> OCCUR </item>
<item> OPEN </item>
<item> PADDR </item>
<item> PARMS </item>
<item> REALLOC </item>
<item> REM </item>
<item> REPLACE </item>
<item> SCAN </item>
<item> SECONDS </item>
<item> SHTDN </item>
<item> SIZE </item>
<item> SQRT </item>
<item> STATUS </item>
<item> STR </item>
<item> SUBARR </item>
<item> SUBDT </item>
<item> SUBST </item>
<item> THIS </item>
<item> TIME </item>
<item> TIMESTAMP </item>
<item> TLOOKUP </item>
<item> TLOOKUPLT </item>
<item> TLOOKUPLE </item>
<item> TLOOKUPGT </item>
<item> TLOOKUPGE </item>
<item> TRIM </item>
<item> TRIML </item>
<item> TRIMR </item>
<item> UCS2 </item>
<item> UNS </item>
<item> UNSH </item>
<item> XFOOT </item>
<item> XLATE </item>
<item> YEARS </item>
</list>
<list name="evalopcodes2">
<item> IF </item>
</list>
<list name="evalopcodes3">
<item> DOW </item>
<item> DOU </item>
<item> FOR </item>
</list>
<list name="evalopcodes4">
<item> WHEN </item>
<item> EVAL </item>
</list>
<list name="evalopcodes5">
<item> EVALR </item>
</list>
<list name="evalopcodes6">
<item> RETURN </item>
</list>
<list name="evalopcodes8">
<item> ON-ERROR </item>
</list>
<list name="nonevalopcodes2">
<item> DO </item>
<item> IN </item>
<item> OR </item>
</list>
<list name="nonevalopcodes3">
<item> ACQ </item>
<item> ADD </item>
<item> AND </item>
<item> CAB </item>
<item> CAS </item>
<item> CAT </item>
<item> DIV </item>
<item> DOU </item>
<item> END </item>
<item> MVR </item>
<item> OUT </item>
<item> REL </item>
<item> SUB </item>
<item> TAG </item>
</list>
<list name="nonevalopcodes4">
<item> CALL </item>
<item> COMP </item>
<item> DUMP </item>
<item> ELSE </item>
<item> EXSR </item>
<item> FEOD </item>
<item> GOTO </item>
<item> IFGT </item>
<item> IFLT </item>
<item> IFEQ </item>
<item> IFNE </item>
<item> IFGE </item>
<item> IFLE </item>
<item> ITER </item>
<item> KFLD </item>
<item> MOVE </item>
<item> MULT </item>
<item> NEXT </item>
<item> OPEN </item>
<item> ORGT </item>
<item> ORLT </item>
<item> OREQ </item>
<item> ORNE </item>
<item> ORGE </item>
<item> ORLE </item>
<item> PARM </item>
<item> POST </item>
<item> READ </item>
<item> SCAN </item>
<item> SQRT </item>
<item> TEST </item>
<item> TIME </item>
</list>
<list name="nonevalopcodes5">
<item> ALLOC </item>
<item> ANDGT </item>
<item> ANDLT </item>
<item> ANDEQ </item>
<item> ANDNE </item>
<item> ANDGE </item>
<item> ANDLE </item>
<item> BEGSR </item>
<item> BITON </item>
<item> CABGT </item>
<item> CABLT </item>
<item> CABEQ </item>
<item> CABNE </item>
<item> CABGE </item>
<item> CABLE </item>
<item> CALLB </item>
<item> CALLP </item>
<item> CASGT </item>
<item> CASLT </item>
<item> CASEQ </item>
<item> CASNE </item>
<item> CASGE </item>
<item> CASLE </item>
<item> CHAIN </item>
<item> CHECK </item>
<item> CLEAR </item>
<item> CLOSE </item>
<item> CHECK </item>
<item> CLEAR </item>
<item> CLOSE </item>
<item> DOWGT </item>
<item> DOWLT </item>
<item> DOWEQ </item>
<item> DOWNE </item>
<item> DOWGE </item>
<item> DOWLE </item>
<item> DOUGT </item>
<item> DOULT </item>
<item> DOUEQ </item>
<item> DOUNE </item>
<item> DOUGE </item>
<item> DOULE </item>
<item> DSPLY </item>
<item> ENDCS </item>
<item> ENDDO </item>
<item> ENDIF </item>
<item> ENDSL </item>
<item> ENDSR </item>
<item> EXFMT </item>
<item> FORCE </item>
<item> KLIST </item>
<item> LEAVE </item>
<item> MHHZO </item>
<item> MHLZO </item>
<item> MLHZO </item>
<item> MLLZO </item>
<item> MOVEA </item>
<item> MOVEL </item>
<item> OCCUR </item>
<item> OTHER </item>
<item> PLIST </item>
<item> READC </item>
<item> READE </item>
<item> READP </item>
<item> RESET </item>
<item> ROLBK </item>
<item> SETGT </item>
<item> SETLL </item>
<item> SETON </item>
<item> SHTDN </item>
<item> SORTA </item>
<item> SUBST </item>
<item> TESTB </item>
<item> TESTN </item>
<item> TESTZ </item>
<item> WRITE </item>
<item> XFOOT </item>
<item> XLATE </item>
</list>
<list name="nonevalopcodes6">
<item> ADDDUR </item>
<item> BITOFF </item>
<item> CHECKR </item>
<item> COMMIT </item>
<item> DEFINE </item>
<item> DELETE </item>
<item> EXCEPT </item>
<item> EXTRCT </item>
<item> LOOKUP </item>
<item> READPE </item>
<item> RETURN </item>
<item> SELECT </item>
<item> SETOFF </item>
<item> SUBDUR </item>
<item> UNLOCK </item>
<item> UPDATE </item>
<item> WHENGT </item>
<item> WHENLT </item>
<item> WHENEQ </item>
<item> WHENNR </item>
<item> WHENGE </item>
<item> WHENLE </item>
</list>
<list name="nonevalopcodes7">
<item> DEALLOC </item>
<item> REALLOC </item>
</list>
<list name="freeopcodes">
<item> ACQ </item>
<item> BEGSR </item>
<item> CALLP </item>
<item> CHAIN </item>
<item> CLEAR </item>
<item> CLOSE </item>
<item> COMMIT </item>
<item> DEALLOC </item>
<item> DELETE </item>
<item> DOU </item>
<item> DOW </item>
<item> DSPLY </item>
<item> DUMP </item>
<item> ELSE </item>
<item> ELSEIF</item>
<item> ENDDO </item>
<item> ENDFOR </item>
<item> ENDIF </item>
<item> ENDMON </item>
<item> ENDSL </item>
<item> ENDSR </item>
<item> EVAL </item>
<item> EVALR </item>
<item> EXCEPT </item>
<item> EXFMT </item>
<item> EXSR </item>
<item> FEOD </item>
<item> FOR </item>
<item> FORCE </item>
<item> IF </item>
<item> IN </item>
<item> ITER </item>
<item> LEAVE </item>
<item> LEAVESR</item>
<item> MONITOR </item>
<item> NEXT </item>
<item> ON-ERROR </item>
<item> OPEN </item>
<item> OTHER </item>
<item> OUT </item>
<item> POST </item>
<item> READ </item>
<item> READC </item>
<item> READE </item>
<item> READP </item>
<item> READPE </item>
<item> REL </item>
<item> RESET </item>
<item> RETURN </item>
<item> ROLBK </item>
<item> SELECT </item>
<item> SETGT </item>
<item> SETLL </item>
<item> SORTA </item>
<item> TEST </item>
<item> UNLOCK </item>
<item> UPDATE </item>
<item> WHEN </item>
<item> WRITE </item>
</list>
<contexts>
<!-- Start here -->
<!-- Form Type -->
<context name="Default" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Comment" context="Comments" String="[PpOoIiHhFfDdCc ]?\*"/>
<RegExpr attribute="Directive" context="Directives" String="[PpOoIiHhFfDdCc ]?/"/>
<AnyChar attribute="Keyword" context="AnyCode" String="OoIiHhFf"/>
<AnyChar attribute="Keyword" context="D" String="Dd"/>
<AnyChar attribute="Keyword" context="P" String="Pp"/>
<AnyChar attribute="Keyword" context="CControlLevel" String="Cc"/>
</context>
<!-- Calculation Specifications -->
<!-- Control Level -->
<context name="CControlLevel" attribute="Normal Text" lineEndContext="#pop">
<RegExpr attribute="Indicator" context="CIndicators" String="\ {2}"/>
<RegExpr attribute="Indicator" context="CIndicators" String="[L|l][0-9]"/>
<RegExpr attribute="Indicator" context="CIndicators" String="[O|o|L|l|S|s][R|r]"/>
<RegExpr attribute="Indicator" context="CIndicators" String="[A|a][N|n]"/>
<RegExpr attribute="Indicator" context="CIndicators" String="[L|l|S|s][R|r]"/>
<RegExpr attribute="Alert" context="CIndicators" String=".{2}"/>
</context>
<!-- Indicators -->
<context name="CIndicators" attribute="Normal Text" lineEndContext="#pop#pop">
<RegExpr attribute="Indicator" context="CFactor1" String="\ {3}"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][0-9]{2}"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][K|k][A-N|p-y]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][K|k][P-Y|p-y]}"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][L|l][1-9]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][L|l|M|m][R|r]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][R|r][T|t]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][U|u][1-8]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][O|o][A-G|a-g]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][O|o][V|v]"/>
<RegExpr attribute="Indicator" context="CFactor1" String="[\ |N|n][H|h][1-9]"/>
<RegExpr attribute="Alert" context="CFactor1" String=".{3}"/>
</context>
<!-- Factor1 -->
<context name="CFactor1" attribute="Normal Text" lineEndContext="#pop#pop#pop">
<!-- TODO -->
<RegExpr attribute="Normal Text" context="FindOC" String=".{14}"/>
</context>
<!-- FindOpcode -->
<context name="FindOC" attribute="Normal Text" lineEndContext="#pop#pop#pop#pop">
<keyword attribute="Keyword" context="NonEvalOC2" String="nonevalopcodes2"/>
<keyword attribute="Keyword" context="NonEvalOC3" String="nonevalopcodes3"/>
<keyword attribute="Keyword" context="NonEvalOC4" String="nonevalopcodes4"/>
<keyword attribute="Keyword" context="NonEvalOC5" String="nonevalopcodes5"/>
<keyword attribute="Keyword" context="NonEvalOC6" String="nonevalopcodes6"/>
<keyword attribute="Keyword" context="NonEvalOC7" String="nonevalopcodes7"/>
<RegExpr attribute="Keyword" context="NonEvalOC5" String="[Z|z]-([A|a][D|d]{2}|[S|s][U|u][B|b])"/>
<keyword attribute="Keyword" context="EvalOC2" String="evalopcodes2"/>
<keyword attribute="Keyword" context="EvalOC3" String="evalopcodes3"/>
<keyword attribute="Keyword" context="EvalOC4" String="evalopcodes4"/>
<keyword attribute="Keyword" context="EvalOC5" String="evalopcodes5"/>
<keyword attribute="Keyword" context="EvalOC6" String="evalopcodes6"/>
<RegExpr attribute="Keyword" context="EvalOC8" String="[O|o][N|n]-([E|e][R|r]{2}|[O|o][R|r])"/>
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {10}"/>
<RegExpr attribute="Alert" context="CFactor2" String=".{10}"/>
</context>
<!-- Opcodes that can NOT be followed by evaluation expressions -->
<context name="NonEvalOC2" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {8}"/>
</context>
<context name="NonEvalOC3" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {7}"/>
</context>
<context name="NonEvalOC4" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {6}"/>
</context>
<context name="NonEvalOC5" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {5}"/>
</context>
<context name="NonEvalOC6" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {4}"/>
</context>
<context name="NonEvalOC7" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CFactor2" String="\ {3}"/>
</context>
<context name="CFactor2" attribute="Normal Text" lineEndContext="Default">
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<IncludeRules context="CommonCode" />
</context>
<!-- Opcodes that can be followed by evaluation expressions -->
<context name="EvalOC2" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {8}"/>
</context>
<context name="EvalOC3" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {7}"/>
</context>
<context name="EvalOC4" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {6}"/>
</context>
<context name="EvalOC5" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {5}"/>
</context>
<context name="EvalOC6" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {4}"/>
</context>
<context name="EvalOC8" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Normal Text" context="CExFactor2" String="\ {2}"/>
</context>
<context name="CExFactor2" attribute="Normal Text" lineEndContext="Default">
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<IncludeRules context="CommonCode" />
</context>
<!-- Check for continuation of eval -->
<context name="EvalOCCont" attribute="Normal Text" lineEndContext="#stay">
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<IncludeRules context="CommonCode" />
</context>
<!-- Comments -->
<context name="Comments" attribute="Comment" lineEndContext="#pop">
<RegExpr attribute="BoldComment" context="#stay" String="\(*(FIXME|TODO)\)*" />
<RegExpr attribute="BoldComment" context="#stay" String="\(*(NOTE:)\)*" />
<RegExpr attribute="DivideComment" context="#stay" String="-|="/>
</context>
<!-- String Constants -->
<context name="StringConstants" attribute="ConstantChar" lineEndContext="#pop">
<DetectChar attribute="ConstantChar" context="#pop" char="'"/>
</context>
<!-- Compiler Directives -->
<context name="Directives" attribute="Normal Text" lineEndContext="Default">
<RegExpr attribute="Directive" context="Free" String="[F|f][R|r][E|e][E|e]"/>
<RegExpr attribute="Directive" context="Exec" String="[E|e][X|x][E|e][C|c]"/>
<keyword attribute="Directive" context="Directives2" String="directives"/>
</context>
<context name="Directives2" attribute="Normal Text" lineEndContext="Default">
<keyword attribute="Directive" context="Directives3" String="directives2"/>
</context>
<context name="Directives3" attribute="Normal Text" lineEndContext="Default">
<keyword attribute="Directive" context="#stay" String="directives3"/>
</context>
<!-- Free -->
<context name="Free" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Directive" context="#pop" String="[POIHFDC ]?/[E|e][N|n][D|d]-[F|f][R|r][E|e][E|e]"/>
<IncludeRules context="CommonCode" />
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<RegExpr attribute="Comment" context="Comments" String="//"/>
<keyword attribute="Keyword" context="#stay" String="freeopcodes"/>
</context>
<!-- Exec -->
<context name="Exec" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Directive" context="#pop" String="[POIHFDC ]?/[E|e][N|n][D|d]-[E|e][X|x][E|e][C|c]"/>
</context>
<context name="Biffs" attribute="Biff" lineEndContext="#pop">
<keyword attribute="Biff" context="#pop" String="biffs"/>
<RegExpr attribute="Normal Text" context="#pop" String="."/>
</context>
<!-- Stuff common to all code Use as Include -->
<context name="CommonCode" attribute="Normal Text" lineEndContext="#stay">
<IncludeRules context="ReservedWords" />
<IncludeRules context="Indicators" />
<DetectChar attribute="ConstantChar" context="StringConstants" char="'"/>
<Float attribute="Float" context="#stay"/>
<RegExpr attribute="Hex" context="#stay" String="[Xx]'[0-9a-fA-F]{2,}'"/>
<Int attribute="Decimal" context="#stay">
<StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
</Int>
</context>
<!-- Reserved words - Use as include -->
<context name="Indicators" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[0-9][0-9]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?1[P|p]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[H|h|L|l][1-9]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[L|l|M|m][R|r]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[O|o][A-G|a-g|V|v]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[U|u][1-8]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[K|k][A-N|a-n|P-Y|p-y]\)?"/>
<RegExpr attribute="Indicator" context="#stay" String="\*[I|i][N|n]\(?[R|r][T|t]\)?"/>
</context>
<!-- Reserved words - Use as include -->
<context name="ReservedWords" attribute="Normal Text" lineEndContext="#stay">
<RegExpr attribute="Reserved" context="#stay" String="[\*|U|u][D|d][A|a][T|t][E|e]"/>
<RegExpr attribute="Reserved" context="#stay" String="[\*|U|u][M|m][O|o][N|n][T|t][H|h]"/>
<RegExpr attribute="Reserved" context="#stay" String="[\*|U|u][Y|y][E|e][A|a][R|r]"/>
<RegExpr attribute="Reserved" context="#stay" String="[\*|U|u][D|d][A|a][Y|y]"/>
<RegExpr attribute="Reserved" context="#stay" String="\ [P|p][A|a][G|g][E|e][1-7]?"/>
<!-- *ALL(X/G) *BLANKS *ON *OFF *NULL *ZERO(s) *HIVAL *LOVAL *PSSR *END *START-->
<RegExpr attribute="Constant" context="#stay" String="\*([A|a][A|l]{2}[X|x|G|g]?|[B|b][L|l][A|a][N|n][K|k][S|s]?|[O|o][N|n]|[O|o][F|f]{2}|[N|n][U|u][L|l]{2}|[Z|z][E|e][R|r][O|o][S|s]?|[H|h][I|i][V|v][A|a][L|l]|[L|l][O|o][V|v][A|a][L|l]|[P|p][S|s]{2}[R|r]|[E|e][N|n][D|d]|[S|s][T|t][A|a][R|r][T|t])"/>
<!-- Date stuff -->
<RegExpr attribute="Reserved" context="#stay" String="\*[C|c][D|d][M|m][Y|y]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[C|c][M|m][D|d][Y|y]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[C|c][Y|y][M|m][D|d]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[D|d][M|m][Y|y]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[E|e][U|u][R|r]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[H|h][M|m][S|s]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[I|i][S|s][O|o]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[J|j][I|i][S|s]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[J|j][O|o][B|b]([R|r][U|u][N|n])?"/>
<RegExpr attribute="Reserved" context="#stay" String="\*([L|l][O|o][N|n][G|g])?[J|j][U|u][L|l]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[M|m][D|d][Y|y]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[S|s][Y|y][S|s]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[U|u][S|s][A|a]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[Y|y][M|m][D|d]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[A|a][L|l][T|t][S|s][E|e][Q|q]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[E|e][Q|q][U|u][A|a][T|t][E|e]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[F|f][I|i][L|l][E|e]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[F|f][T|t][R|r][A|a][N|n][S|s]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[I|i][L|l][E|e][R|r][P|p][G|g]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[C|c][R|r][T|t][B|b][N|n][D|d][R|r][P|p][G|g]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[C|c][R|r][T|t][R|r][P|p][G|g][M|m][O|o][D|d]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[V|v][0-9][R|r][0-9][M|m][0-9]"/>
</context>
<!-- AnyCode -->
<context name="AnyCode" attribute="Normal Text" lineEndContext="#pop">
<IncludeRules context="CommonCode" />
</context>
<!-- D -->
<context name="D" attribute="Normal Text" lineEndContext="#pop">
<keyword attribute="Keyword" context="#stay" String="dkeywords"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[N|n][O|o][P|p][A|a][S|s]{2}"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[O|o][M|m][I|i][T|t]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[V|v][A|a][R|r][S|s][I|i][Z|z][E|e]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[R|r][I|i][G|g][H|h][T|t][A|a][D|d][J|j]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[S|s][T|t][R|r][I|i][N|n][G|g]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[T|t][R|r][I|i][M|m]"/>
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<IncludeRules context="CommonCode" />
</context>
<!-- P -->
<context name="P" attribute="Normal Text" lineEndContext="#pop">
<keyword attribute="Keyword" context="#stay" String="dkeywords"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[N|n][O|o][P|p][A|a][S|s]{2}"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[O|o][M|m][I|i][T|t]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[V|v][A|a][R|r][S|s][I|i][Z|z][E|e]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[R|r][I|i][G|g][H|h][T|t][A|a][D|d][J|j]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[S|s][T|t][R|r][I|i][N|n][G|g]"/>
<RegExpr attribute="Reserved" context="#stay" String="\*[T|t][R|r][I|i][M|m]"/>
<DetectChar attribute="Biff" context="Biffs" char="%"/>
<IncludeRules context="CommonCode" />
</context>
</contexts>
<itemDatas>
<itemData name="Alert" defStyleNum="dsAlert" />
<itemData name="Normal Text" defStyleNum="dsNormal" />
<itemData name="Keyword" defStyleNum="dsKeyword" />
<itemData name="Biff" defStyleNum="dsKeyword" />
<itemData name="RegExpr" defStyleNum="dsBaseN" />
<itemData name="Symbol" defStyleNum="dsNormal"/>
<itemData name="Decimal" defStyleNum="dsDecVal" />
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Octal" defStyleNum="dsBaseN"/>
<itemData name="Hex" defStyleNum="dsBaseN"/>
<itemData name="Float" defStyleNum="dsFloat"/>
<itemData name="Base-N" defStyleNum="dsBaseN" />
<itemData name="Float" defStyleNum="dsFloat" />
<itemData name="Char" defStyleNum="dsChar" />
<itemData name="ConstantChar" defStyleNum="dsNormal" color="#DD0022" selColor="#000000" bold="0" italic="0"/>
<itemData name="Constant" defStyleNum="dsNormal" color="#CC2222" selColor="#000000" bold="0" italic="0"/>
<itemData name="Reserved" defStyleNum="dsNormal" color="#BB1133" selColor="#000000" bold="0" italic="0"/>
<itemData name="Indicator" defStyleNum="dsNormal" color="#CC0000" selColor="#000000" bold="0" italic="0"/>
<itemData name="Fill" defStyleNum="dsNormal" color="#FF6347" selColor="#000000" bold="0" italic="0"/>
<itemData name="Comment" defStyleNum="dsComment"/>
<itemData name="BoldComment" defStyleNum="dsNormal" color="#CD853F" selColor="#808080" bold="1" italic="1"/>
<itemData name="DivideComment" defStyleNum="dsComment" bold="1"/>
<itemData name="Directive" defStyleNum="dsOthers"/>
</itemDatas>
</highlighting>
<general>
<keywords casesensitive="0" />
</general>
</language>