diff options
Diffstat (limited to 'kate/data/ilerpg.xml')
-rw-r--r-- | kate/data/ilerpg.xml | 725 |
1 files changed, 725 insertions, 0 deletions
diff --git a/kate/data/ilerpg.xml b/kate/data/ilerpg.xml new file mode 100644 index 000000000..a7060f609 --- /dev/null +++ b/kate/data/ilerpg.xml @@ -0,0 +1,725 @@ +<!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 KDE 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="1.05" kateversion="2.1" 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> + |