home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / p2demo21.exe / PEL / REXX.PEL < prev    next >
Text File  |  1995-03-22  |  20KB  |  347 lines

  1. # $Header:   P:\source\wmacros\rexx.pev   1.4   22 Mar 1995 10:56:16   PFHJXM0  $
  2.  
  3. ##############################################################################
  4. #
  5. #       Compuware Corporation
  6. #         31440 Northwestern Highway
  7. #           Farmington Hills, Michigan 48334-2564
  8. #
  9. #   This source code listing contains information that is
  10. #   proprietary to Compuware Corporation and may not be copied
  11. #   duplicated, translated, transmitted, stored, retrieved
  12. #   or in any manner or by any method conveyed or disclosed
  13. #   to a third party or parties without express written
  14. #   permission from Compuware Corporation.
  15. #
  16. #  
  17. ##############################################################################
  18.  
  19. #### $Workfile:   rexx.pel  $: REXX support
  20.  
  21. function setup_rexx_template()
  22. {
  23.    delete( language_template );    # delete last template and start over
  24.  
  25.    ELEC_LANG = "rexx"
  26.  
  27.    language_template[ "do" ]= "\tdo `var-1` = `start-1` to `end-1`\n" \
  28.                               "\t`statement-1`\n" \
  29.                               "\bend" 
  30.    language_template[ "du" ]= "\tdo until ( `condition-1` )\n" \
  31.                               "\t`statement-1`\n" \
  32.                               "\bend" 
  33.    language_template[ "dv" ]= "\tdo `value-1`\n" \
  34.                               "\t`statement-1`\n" \
  35.                               "\bend" 
  36.    language_template[ "dw" ]= "\tdo while ( `condition-1` )\n"  \
  37.                               "\t`statement-1`\n" \
  38.                               "\bend" 
  39.    language_template[ "df" ]= "\tdo forever \n" \
  40.                               "\t`statement-1`\n" \
  41.                               "SIGNAL `label-1`\n" \
  42.                               "\bend" 
  43.    language_template[ "if" ]= "if ( `condition-1` ) then \n" \
  44.                               "\tdo \n" \
  45.                               "\t`statement-1`\n" \
  46.                               "\bend" 
  47.    language_template[ "ie" ]= "if ( `condition-1` ) then \n" \
  48.                               "\tdo \n" \
  49.                               "\t`statement-1`\n" \
  50.                               "\bend\n" \
  51.                               "\belse\n" \
  52.                               "\tdo \n" \
  53.                               "\t`statement-2`\n" \
  54.                               "\bend" 
  55.    language_template[ "sw" ]= "\tselect\n" \
  56.                         "\twhen `expression` THEN\n" \
  57.                         "\t`instruction`\n" \
  58.                         "end\n" \
  59.                         "\botherwise\n" \
  60.                         "\t`instruction`\n" \
  61.                         "\bend"
  62.    language_template[ "ae" ] = "\taddress `environment` `expression`\n"
  63.    language_template[ "ar" ] = "\targ `templatelist` \n"
  64.    language_template[ "av" ] = "\taddress VALUE `expression`\n"
  65.    language_template[ "ba" ] = "\tBITAND(`string`, string`, `pad`)\n"
  66.    language_template[ "bo" ] = "\tBITOR(`string`, `string`, `pad`)\n"
  67.    language_template[ "br" ] = "\tBITXOR(`string`, `string`, pad`)\n"
  68.    language_template[ "bx" ] = "\tB2X(`binarystring`)\n"
  69.    language_template[ "ca" ] = "\tcall `name` `expression` \n"
  70.    language_template[ "cd" ] = "\tC2D(`string`, `n`)\n"
  71.    language_template[ "ce" ] = "\tCENTER(`string`, `length`, `pad`)\n"
  72.    language_template[ "ch" ] = "\tCHARS(`name`)\n"
  73.    language_template[ "ci" ] = "\tCHARIN(`name`, `start`, `length`)\n"
  74.    language_template[ "cm" ] = "\tCOMPARE(`string`, `string`, `pad`)\n"
  75.    language_template[ "cn" ] = "\tCONDITION(`option`)\n"
  76.    language_template[ "co" ] = "\tCHAROUT(`name`, `string`, `start`)\n"
  77.    language_template[ "cp" ] = "\tCOPIES(`string`, `n`)\n"
  78.    language_template[ "cx" ] = "\tC2X(`string`)\n"
  79.    language_template[ "da" ] = "\tDATE(`option`)\n"
  80.    language_template[ "dc" ] = "\tD2C(`wholenumber`, `n`)\n"
  81.    language_template[ "de" ] = "\tDIRECTORY(`newdirectory`)\n"
  82.    language_template[ "di" ] = "\tDIGITS()\n"
  83.    language_template[ "dn" ] = "\tdrop `name`\n"
  84.    language_template[ "dr" ] = "\tDELWORD(`string`, `n`, `length`)\n"
  85.    language_template[ "ds" ] = "\tDELSTRING(`string`, `n`, `length` )\n"
  86.    language_template[ "dt" ] = "\tDATATYPE(`string`, `type`)\n"
  87.    language_template[ "dx" ] = "\tD2X(`wholenumber`, `n`)\n"
  88.    language_template[ "el" ] = "\tENDLOCAL()\n"
  89.    language_template[ "er" ] = "\tERRORTEXT(`n`)\n"
  90.    language_template[ "ex" ] = "\texit `expression`\n"
  91.    language_template[ "fi" ] = "\tFILESPEC(`option`, `filespec`)\n"
  92.    language_template[ "fo" ] = "\tFORM()\n"
  93.    language_template[ "fr" ] = "\tFORMAT(`number`, `before`, `after`, `expp`, `expt`)\n"
  94.    language_template[ "fz" ] = "\tFUZZ()\n"
  95.    language_template[ "in" ] = "\titerate `name`\n"
  96.    language_template[ "is" ] = "\tINSERT(`new`, `target`, `n`, `length`, `pad`)\n"
  97.    language_template[ "ix" ] = "\tinterpret `expression`\n"
  98.    language_template[ "le" ] = "\tLENGTH(`string`)\n"
  99.    language_template[ "lf" ] = "\tLEFT(`string`, `length`, `pad`)\n"
  100.    language_template[ "li" ] = "\tLINEIN(`name`, `line`, `count`)\n"
  101.    language_template[ "ln" ] = "\tLINES(`name`)\n"
  102.    language_template[ "lo" ] = "\tLINEOUT(`name`, `string`, `line`)\n"
  103.    language_template[ "lp" ] = "\tLASTPOS(`needle`, `haystack`, `start`)\n"
  104.    language_template[ "lv" ] = "\tleave `name`\n"
  105.    language_template[ "mn" ] = "\tMIN(`number`, `number`)\n"
  106.    language_template[ "mx" ] = "\tMAX(`number`, `number')\n"
  107.    language_template[ "nd" ] = "\tnumeric DIGITS `expression`\n"
  108.    language_template[ "nf" ] = "\tnumeric FORM `expression`\n"
  109.    language_template[ "nz" ] = "\tnumeric FUZZ `expression`\n"
  110.    language_template[ "ov" ] = "\tOVERLAY(`new`, `target`, `n`, `length`, `pad`)\n"
  111.    language_template[ "pe" ] = "\tprocedure EXPOSE `name`\n"
  112.    language_template[ "po" ] = "\tPOS(`needle`, `haystack`, `start`)\n"
  113.    language_template[ "pt" ] = "\tpull `templatelist`\n"
  114.    language_template[ "pu" ] = "\tparse UPPER 'options`\n"
  115.    language_template[ "px" ] = "\tpush `expression`\n"
  116.    language_template[ "qe" ] = "\tqueue `expression`\n"
  117.    language_template[ "qu" ] = "\tQUEUED()\n"
  118.    language_template[ "ra" ] = "\tRXFUNCADD(`name`, `module`, `procedure`)\n"
  119.    language_template[ "rd" ] = "\tRXFUNCDROP(`name`)\n"
  120.    language_template[ "re" ] = "\treturn `expression`\n"
  121.    language_template[ "ri" ] = "\tRIGHT(`string`, `length`, `pad`)\n"
  122.    language_template[ "rm" ] = "\tRxMessageBox(`text`, `title`, `button`, `icon`)\n"
  123.    language_template[ "rn" ] = "\tRANDOM('min`, 'max`, `seed`)\n"
  124.    language_template[ "rq" ] = "\tRXFUNCQUERY(`name`)\n"
  125.    language_template[ "ru" ] = "\tRXQUEUE(`options`)\n"
  126.    language_template[ "rv" ] = "\tREVERSE(`string`)\n"
  127.    language_template[ "sa" ] = "\tsay `string`\n"
  128.    language_template[ "sb" ] = "\tSUBWORD(`string`, `n`, `length`)\n"
  129.    language_template[ "scl" ] = "\tSysCls()\n"
  130.    language_template[ "scp" ] = "\tSysCurPos(`row`, `col`)\n"
  131.    language_template[ "scr" ] = "\tSysCreateObject(`classname`, `title`, `location`, `icon`)\n"
  132.    language_template[ "scs" ] = "\tSysCurState `state`\n"
  133.    language_template[ "sdf" ] = "\tcall SysDropFuncs\n"
  134.    language_template[ "sdi" ] = "\tSysDriveInfo(`drive`)\n"
  135.    language_template[ "sdm" ] = "\tSysDriveMap(`drive`, `opt`)\n"
  136.    language_template[ "sdo" ] = "\tSysDeregisterObjectClass(`classname`)\n"
  137.    language_template[ "se" ] = "\tSETLOCAL()\n"
  138.    language_template[ "sf" ] = "\tsignal OFF `value`\n"
  139.    language_template[ "sfd" ] = "\tSysFileDelete(`file`)\n"
  140.    language_template[ "sfs" ] = "\tcall SysFileSearch `target`, `file`, `stem`, `options`\n"
  141.    language_template[ "sft" ] = "\tSysFileTree(`filespec`, `stem`, `options`, `tattrib`, nattrib`)\n"
  142.    language_template[ "sge" ] = "\tSysGetEA(`file`, `name`, `variable`)\n"
  143.    language_template[ "sgk" ] = "\tSysGetKey(`opt`)\n"
  144.    language_template[ "sgm" ] = "\tSysGetMessage(`num`, `file`, `options`)\n"
  145.    language_template[ "si" ] = "\tSIGN(`number`)\n"
  146.    language_template[ "sin" ] = "\tSysIni(`inifile`, `app`, `key`, `val`, `stem`)\n"
  147.    language_template[ "sl" ] = "\tsignal `lablename`\n"
  148.    language_template[ "smd" ] = "\tSysMkDir(`dirspec`)\n"
  149.    language_template[ "so" ] = "\tsignal ON `value`\n"
  150.    language_template[ "sov" ] = "\tSysOS2Ver()\n"
  151.    language_template[ "sp" ] = "\tSPACE(`string`, `n`, `pad`)\n"
  152.    language_template[ "spe" ] = "\tSysPutEA(`file`, `name`, `value`)\n"
  153.    language_template[ "sqc" ] = "\tcall SysQueryClassList `stem`\n"
  154.    language_template[ "sr" ] = "\tSOURCELINE(`n`)\n"
  155.    language_template[ "srd" ] = "\tSysRmDir(`dirspec`)\n"
  156.    language_template[ "sro" ] = "\tSysRegisterObjectClass(`classname`, `modulename`)\n"
  157.    language_template[ "ssi" ] = "\tSysSetIcon(`filename`, `iconfilename`)\n"
  158.    language_template[ "ssl" ] = "\tcall SysSleep `secs`\n"
  159.    language_template[ "ssp" ] = "\tSysSearchPath(`path`, `filename`)\n"
  160.    language_template[ "st" ] = "\tSTREAM(`name`, `options`)\n"
  161.    language_template[ "stf" ] = "\tSysTempFileName(`template`, `filter`)\n"
  162.    language_template[ "str" ] = "\tSysTextScreenRead(`row`, `col`, `len`)\n"
  163.    language_template[ "sts" ] = "\tSysTextScreenSize()\n"
  164.    language_template[ "su" ] = "\tSUBSTR(`string`, `n`, `length`, `pad`)\n"
  165.    language_template[ "sv" ] = "\tsignal VALUE `expression`\n"
  166.    language_template[ "swp" ] = "\tSysWaitNamedPipe(`name`, `timeout`)\n"
  167.    language_template[ "sy" ] = "\tSYMBOL(`name`)\n"
  168.    language_template[ "ti" ] = "\tTIME(`option`)\n"
  169.    language_template[ "tn" ] = "\tTRANSLATE(`string`, `tableo`, `tablei`, `pad`)\n"
  170.    language_template[ "tr" ] = "\tTRACE(`option`)\n"
  171.    language_template[ "ts" ] = "\ttrace `string`\n"
  172.    language_template[ "tu" ] = "\tTRUNC(`number`, `n`)\n"
  173.    language_template[ "tv" ] = "\ttrace VALUE `expression`\n"
  174.    language_template[ "ty" ] = "\ttrace `symbol`\n"
  175.    language_template[ "va" ] = "\tVALUE(`name`, `newvalue`, `selector`)\n"
  176.    language_template[ "ve" ] = "\tVERIFY(`string`, `reference`, `option`, `start`)\n"
  177.    language_template[ "wi" ] = "\tWORDINDEX(`string`, `n`)\n"
  178.    language_template[ "wl" ] = "\tWORDLENGTH(`string`, `n`)\n"
  179.    language_template[ "wo" ] = "\tWORD(`string`, `n`)\n"
  180.    language_template[ "wp" ] = "\tWORDPOS(`phrase`, `string`, `start`)\n"
  181.    language_template[ "ws" ] = "\tWORDS(`string`)\n"
  182.    language_template[ "xb" ] = "\tX2B(`hexstring`)\n"
  183.    language_template[ "xc" ] = "\tX2C(`hexstring`)\n"
  184.    language_template[ "xd" ] = "\tX2D(`hexstring`, `n`)\n"
  185.    language_template[ "xr" ] = "\tXRANGE(`start`, `end`)\n"
  186. }
  187.  
  188. global function add_rexx_type()
  189. {
  190.    add_type("rexx", "", "rexx", "4 7", "1 77", "{ } [ ] ( )", "\\",
  191.             default_buffer_flags, 0, 1, "()[];:,=", 0, 1);
  192. }
  193.  
  194. global function load_factory_rexx_syntax()
  195. {
  196.    local type = "rexx"
  197.  
  198.    set_factory_categories( type );
  199.  
  200.    add_syntax_item(type, KEYWORD, "address", CATEGORY_RESERVED);
  201.    add_syntax_item(type, KEYWORD, "arg", CATEGORY_RESERVED);
  202.    add_syntax_item(type, KEYWORD, "call", CATEGORY_RESERVED);
  203.    add_syntax_item(type, KEYWORD, "do", CATEGORY_RESERVED);
  204.    add_syntax_item(type, KEYWORD, "end", CATEGORY_RESERVED);
  205.    add_syntax_item(type, KEYWORD, "while", CATEGORY_RESERVED);
  206.    add_syntax_item(type, KEYWORD, "to", CATEGORY_RESERVED);
  207.    add_syntax_item(type, KEYWORD, "until", CATEGORY_RESERVED);
  208.    add_syntax_item(type, KEYWORD, "by", CATEGORY_RESERVED);
  209.    add_syntax_item(type, KEYWORD, "for", CATEGORY_RESERVED);
  210.    add_syntax_item(type, KEYWORD, "drop", CATEGORY_RESERVED);
  211.    add_syntax_item(type, KEYWORD, "exit", CATEGORY_RESERVED);
  212.    add_syntax_item(type, KEYWORD, "if", CATEGORY_RESERVED);
  213.    add_syntax_item(type, KEYWORD, "then", CATEGORY_RESERVED);
  214.    add_syntax_item(type, KEYWORD, "else", CATEGORY_RESERVED);
  215.    add_syntax_item(type, KEYWORD, "interpret", CATEGORY_RESERVED);
  216.    add_syntax_item(type, KEYWORD, "iterate", CATEGORY_RESERVED);
  217.    add_syntax_item(type, KEYWORD, "leave", CATEGORY_RESERVED);
  218.    add_syntax_item(type, KEYWORD, "nop", CATEGORY_RESERVED);
  219.    add_syntax_item(type, KEYWORD, "numeric", CATEGORY_RESERVED);
  220.    add_syntax_item(type, KEYWORD, "options", CATEGORY_RESERVED);
  221.    add_syntax_item(type, KEYWORD, "parse", CATEGORY_RESERVED);
  222.    add_syntax_item(type, KEYWORD, "upper", CATEGORY_RESERVED);
  223.    add_syntax_item(type, KEYWORD, "arg", CATEGORY_RESERVED);
  224.    add_syntax_item(type, KEYWORD, "linein", CATEGORY_RESERVED);
  225.    add_syntax_item(type, KEYWORD, "pull", CATEGORY_RESERVED);
  226.    add_syntax_item(type, KEYWORD, "source", CATEGORY_RESERVED);
  227.    add_syntax_item(type, KEYWORD, "value", CATEGORY_RESERVED);
  228.    add_syntax_item(type, KEYWORD, "with", CATEGORY_RESERVED);
  229.    add_syntax_item(type, KEYWORD, "var", CATEGORY_RESERVED);
  230.    add_syntax_item(type, KEYWORD, "version", CATEGORY_RESERVED);
  231.    add_syntax_item(type, KEYWORD, "procedure", CATEGORY_RESERVED);
  232.    add_syntax_item(type, KEYWORD, "expose", CATEGORY_RESERVED);
  233.    add_syntax_item(type, KEYWORD, "pull", CATEGORY_RESERVED);
  234.    add_syntax_item(type, KEYWORD, "push", CATEGORY_RESERVED);
  235.    add_syntax_item(type, KEYWORD, "queue", CATEGORY_RESERVED);
  236.    add_syntax_item(type, KEYWORD, "return", CATEGORY_RESERVED);
  237.    add_syntax_item(type, KEYWORD, "say", CATEGORY_RESERVED);
  238.    add_syntax_item(type, KEYWORD, "select", CATEGORY_RESERVED);
  239.    add_syntax_item(type, KEYWORD, "when", CATEGORY_RESERVED);
  240.    add_syntax_item(type, KEYWORD, "otherwise", CATEGORY_RESERVED);
  241.    add_syntax_item(type, KEYWORD, "signal", CATEGORY_RESERVED);
  242.    add_syntax_item(type, KEYWORD, "off", CATEGORY_RESERVED);
  243.    add_syntax_item(type, KEYWORD, "value", CATEGORY_RESERVED);
  244.    add_syntax_item(type, KEYWORD, "error", CATEGORY_RESERVED);
  245.    add_syntax_item(type, KEYWORD, "failure", CATEGORY_RESERVED);
  246.    add_syntax_item(type, KEYWORD, "halt", CATEGORY_RESERVED);
  247.    add_syntax_item(type, KEYWORD, "notready", CATEGORY_RESERVED);
  248.    add_syntax_item(type, KEYWORD, "novalue", CATEGORY_RESERVED);
  249.    add_syntax_item(type, KEYWORD, "syntax", CATEGORY_RESERVED);
  250.    add_syntax_item(type, KEYWORD, "name", CATEGORY_RESERVED);
  251.    add_syntax_item(type, KEYWORD, "trace", CATEGORY_RESERVED);
  252.    add_syntax_item(type, KEYWORD, "abbrev", CATEGORY_FUNCTIONS);
  253.    add_syntax_item(type, KEYWORD, "abs", CATEGORY_FUNCTIONS);
  254.    add_syntax_item(type, KEYWORD, "address", CATEGORY_FUNCTIONS);
  255.    add_syntax_item(type, KEYWORD, "arg", CATEGORY_FUNCTIONS);
  256.    add_syntax_item(type, KEYWORD, "beep", CATEGORY_FUNCTIONS);
  257.    add_syntax_item(type, KEYWORD, "bitand", CATEGORY_FUNCTIONS);
  258.    add_syntax_item(type, KEYWORD, "bitor", CATEGORY_FUNCTIONS);
  259.    add_syntax_item(type, KEYWORD, "bitxor", CATEGORY_FUNCTIONS);
  260.    add_syntax_item(type, KEYWORD, "b2x", CATEGORY_FUNCTIONS);
  261.    add_syntax_item(type, KEYWORD, "center", CATEGORY_FUNCTIONS);
  262.    add_syntax_item(type, KEYWORD, "centre", CATEGORY_FUNCTIONS);
  263.    add_syntax_item(type, KEYWORD, "charin", CATEGORY_FUNCTIONS);
  264.    add_syntax_item(type, KEYWORD, "charout", CATEGORY_FUNCTIONS);
  265.    add_syntax_item(type, KEYWORD, "chars", CATEGORY_FUNCTIONS);
  266.    add_syntax_item(type, KEYWORD, "compare", CATEGORY_FUNCTIONS);
  267.    add_syntax_item(type, KEYWORD, "condition", CATEGORY_FUNCTIONS);
  268.    add_syntax_item(type, KEYWORD, "copies", CATEGORY_FUNCTIONS);
  269.    add_syntax_item(type, KEYWORD, "c2d", CATEGORY_FUNCTIONS);
  270.    add_syntax_item(type, KEYWORD, "c2x", CATEGORY_FUNCTIONS);
  271.    add_syntax_item(type, KEYWORD, "datatype", CATEGORY_FUNCTIONS);
  272.    add_syntax_item(type, KEYWORD, "date", CATEGORY_FUNCTIONS);
  273.    add_syntax_item(type, KEYWORD, "dbadjust", CATEGORY_FUNCTIONS);
  274.    add_syntax_item(type, KEYWORD, "dbright", CATEGORY_FUNCTIONS);
  275.    add_syntax_item(type, KEYWORD, "dbtosbcs", CATEGORY_FUNCTIONS);
  276.    add_syntax_item(type, KEYWORD, "dbbracket", CATEGORY_FUNCTIONS);
  277.    add_syntax_item(type, KEYWORD, "dbrleft", CATEGORY_FUNCTIONS);
  278.    add_syntax_item(type, KEYWORD, "dbunbracket", CATEGORY_FUNCTIONS);
  279.    add_syntax_item(type, KEYWORD, "dbcenter", CATEGORY_FUNCTIONS);
  280.    add_syntax_item(type, KEYWORD, "dbrright", CATEGORY_FUNCTIONS);
  281.    add_syntax_item(type, KEYWORD, "dbvalidate", CATEGORY_FUNCTIONS);
  282.    add_syntax_item(type, KEYWORD, "dbleft", CATEGORY_FUNCTIONS);
  283.    add_syntax_item(type, KEYWORD, "dbtodbcs", CATEGORY_FUNCTIONS);
  284.    add_syntax_item(type, KEYWORD, "dbwidth", CATEGORY_FUNCTIONS);
  285.    add_syntax_item(type, KEYWORD, "delstr", CATEGORY_FUNCTIONS);
  286.    add_syntax_item(type, KEYWORD, "delword", CATEGORY_FUNCTIONS);
  287.    add_syntax_item(type, KEYWORD, "digits", CATEGORY_FUNCTIONS);
  288.    add_syntax_item(type, KEYWORD, "directory", CATEGORY_FUNCTIONS);
  289.    add_syntax_item(type, KEYWORD, "d2c", CATEGORY_FUNCTIONS);
  290.    add_syntax_item(type, KEYWORD, "d2x", CATEGORY_FUNCTIONS);
  291.    add_syntax_item(type, KEYWORD, "endlocal", CATEGORY_FUNCTIONS);
  292.    add_syntax_item(type, KEYWORD, "errortext", CATEGORY_FUNCTIONS);
  293.    add_syntax_item(type, KEYWORD, "filespec", CATEGORY_FUNCTIONS);
  294.    add_syntax_item(type, KEYWORD, "form", CATEGORY_FUNCTIONS);
  295.    add_syntax_item(type, KEYWORD, "format", CATEGORY_FUNCTIONS);
  296.    add_syntax_item(type, KEYWORD, "fuzz", CATEGORY_FUNCTIONS);
  297.    add_syntax_item(type, KEYWORD, "insert", CATEGORY_FUNCTIONS);
  298.    add_syntax_item(type, KEYWORD, "lastpos", CATEGORY_FUNCTIONS);
  299.    add_syntax_item(type, KEYWORD, "left", CATEGORY_FUNCTIONS);
  300.    add_syntax_item(type, KEYWORD, "length", CATEGORY_FUNCTIONS);
  301.    add_syntax_item(type, KEYWORD, "linein", CATEGORY_FUNCTIONS);
  302.    add_syntax_item(type, KEYWORD, "lineout", CATEGORY_FUNCTIONS);
  303.    add_syntax_item(type, KEYWORD, "lines", CATEGORY_FUNCTIONS);
  304.    add_syntax_item(type, KEYWORD, "max", CATEGORY_FUNCTIONS);
  305.    add_syntax_item(type, KEYWORD, "min", CATEGORY_FUNCTIONS);
  306.    add_syntax_item(type, KEYWORD, "overlay", CATEGORY_FUNCTIONS);
  307.    add_syntax_item(type, KEYWORD, "pos", CATEGORY_FUNCTIONS);
  308.    add_syntax_item(type, KEYWORD, "queued", CATEGORY_FUNCTIONS);
  309.    add_syntax_item(type, KEYWORD, "random", CATEGORY_FUNCTIONS);
  310.    add_syntax_item(type, KEYWORD, "reverse", CATEGORY_FUNCTIONS);
  311.    add_syntax_item(type, KEYWORD, "right", CATEGORY_FUNCTIONS);
  312.    add_syntax_item(type, KEYWORD, "setlocal", CATEGORY_FUNCTIONS);
  313.    add_syntax_item(type, KEYWORD, "sign", CATEGORY_FUNCTIONS);
  314.    add_syntax_item(type, KEYWORD, "sourceline", CATEGORY_FUNCTIONS);
  315.    add_syntax_item(type, KEYWORD, "space", CATEGORY_FUNCTIONS);
  316.    add_syntax_item(type, KEYWORD, "stream", CATEGORY_FUNCTIONS);
  317.    add_syntax_item(type, KEYWORD, "strip", CATEGORY_FUNCTIONS);
  318.    add_syntax_item(type, KEYWORD, "substr", CATEGORY_FUNCTIONS);
  319.    add_syntax_item(type, KEYWORD, "subword", CATEGORY_FUNCTIONS);
  320.    add_syntax_item(type, KEYWORD, "symbol", CATEGORY_FUNCTIONS);
  321.    add_syntax_item(type, KEYWORD, "time", CATEGORY_FUNCTIONS);
  322.    add_syntax_item(type, KEYWORD, "trace", CATEGORY_FUNCTIONS);
  323.    add_syntax_item(type, KEYWORD, "translate", CATEGORY_FUNCTIONS);
  324.    add_syntax_item(type, KEYWORD, "trunc", CATEGORY_FUNCTIONS);
  325.    add_syntax_item(type, KEYWORD, "value", CATEGORY_FUNCTIONS);
  326.    add_syntax_item(type, KEYWORD, "verify", CATEGORY_FUNCTIONS);
  327.    add_syntax_item(type, KEYWORD, "word", CATEGORY_FUNCTIONS);
  328.    add_syntax_item(type, KEYWORD, "wordindex", CATEGORY_FUNCTIONS);
  329.    add_syntax_item(type, KEYWORD, "wordlength", CATEGORY_FUNCTIONS);
  330.    add_syntax_item(type, KEYWORD, "wordpos", CATEGORY_FUNCTIONS);
  331.    add_syntax_item(type, KEYWORD, "words", CATEGORY_FUNCTIONS);
  332.    add_syntax_item(type, KEYWORD, "xrange", CATEGORY_FUNCTIONS);
  333.    add_syntax_item(type, KEYWORD, "x2b", CATEGORY_FUNCTIONS);
  334.    add_syntax_item(type, KEYWORD, "x2c", CATEGORY_FUNCTIONS);
  335.    add_syntax_item(type, KEYWORD, "x2d", CATEGORY_FUNCTIONS);
  336.  
  337.    add_syntax_item(type, LINE, "\" \"", CATEGORY_LITERAL);
  338.    add_syntax_item(type, LINE, "' '", CATEGORY_LITERAL);
  339.  
  340.    add_syntax_item(type, BLOCK, "/* */", CATEGORY_COMMENT);
  341.  
  342.    set_escape_character(type, "\\")
  343.    set_style_delimiters(type, ".();,=:")
  344.  
  345.    set_case_sensitive(type, 0)
  346. }
  347.