# Rexx language definition file
#
# Author: Andre Simon
#   Mail: andre.simon1@gmx.de
#   Date: 21.11.2002
#         22.02.2010 added TSO/E Commands / DBCS Functions
# ------------------------------------------
# This file is a part of highlight, a free source code converter released under the GPL.
#
# The file is used to describe keywords and special symbols of programming languages.
# See README in the highlight directory for details.
#
# New definition files for future releases of highlight are always appreciated ;)
#
# ----------
# andre.simon1@gmx.de
# http:/www.andre-simon.de/

$DESCRIPTION=Rexx

$KEYWORDS(kwa)=address additional any arg arguments array by call caseless
continue class description digits do drop end engineering error exit expose
else failure for forever form forward fuzz guard halt if interpret iterate
leave lower lostdigits message name nop nomethod nostring notready novalue
numeric on off otherwise parse procedure pull push propagate queue raise reply
return ret rc result say scientific select sigl signal source syntax then to trace
upper until use user version when while with

# built in functions:
$KEYWORDS(kwb)=abbrev abs append beep binary bitand bitor bitxor both b2x center centre
changestr char charin charout chars compare condition copies countstr close c2d
c2x datetime datatype date delstr delword directory d2c d2x errortext exists
filespec flush format handle insert lastpos left length line linein lineout
lines max min nobuffer open overlay pos position queued query random reclength
read replace reverse right seek sign size shared shareread sharewrite
sourceline space stream streamtype strip subword substr symbol sys time
timestamp translate trunc var value verify word wordindex wordlength wordpos
words write xrange x2b x2c x2d pid pprio ptime rxfuncadd rxfuncdrop rxfuncquery
rxqueue rxmessagebox rxwinexec sysaddrexxmacro sysbootdrive
sysclearrexxmacrospace syscloseeventsem sysclosemutexsem syscls
syscreateeventsem syscreatemutexsem syscurpos syscurstate sysdriveinfo
sysdrivemap sysdropfuncs sysdroprexxmacro sysdumpvariables sysfiledelete
sysfilesearch sysfilesystemtype sysgetfiledatetime sysfiletree sysgetkey sysini
sysloadfuncs sysloadrexxmacrospace sysmkdir sysopeneventsem sysopenmutexsem
sysposteventsem syspulseeventsem sysqueryprocess sysqueryrexxmacro
sysreleasemutexsem sysreorderrexxmacro sysrequestmutexsem sysreseteventsem
sysrmdir syssaverexxmacrospace syssearchpath syssetfiledatetime syssetpriority
syssleep sysstemcopy sysstemdelete syssteminsert sysstemsort sysswitchsession
syssystemdirectory systempfilename systextscreenread systextscreensize
sysutilversion sysvolumelabel syswaiteventsem syswaitnamedpipe sysversion
syswinver

# TSO/E Commands / DBCS Functions
$KEYWORDS(kwc)=externals find getmsg index justify linesize listdsi msg mvsvar outtrap 
prompt setlang storage syscpus sysdsn sysvar userid dbadjust dbbracket 
dbcenter dbcjustify dbcs dbleft dbright dbrleft dbrright dbtodbcs 
dbtosbcs dbunbracket dbvalidate dbwidth delstack dropbuf execio executil 
he hi ht makebuf newstack qbuf qelem qstack rt subcom te ts 

$KEYWORDS(kwd)=regex((\w+)\s*\:)

$STRINGDELIMITERS=" '

$ML_COMMENT=/* */

$SL_COMMENT=-- #!

# avoid highlighting of "attribute numbers"
$DIGIT=regex((?:0x|0X)[0-9a-fA-F]+|\d+[\.]?\d+(?:[eE][\-\+]\d+)?[lLuU]*)

$IGNORECASE=true

$SYMBOLS= ( ) [ ] . , ; : & | < > ! = / * %  + -