Home | History | Annotate | Download | only in geshi
      1 <?php
      2 /******************************************************************************
      3  * providex.php
      4  * ----------
      5  * Author: Jeff Wilder (jeff (at) coastallogix.com)
      6  * Copyright:  (c) 2008 Coastal Logix (http://www.coastallogix.com)
      7  * Release Version: 1.0.8.3
      8  * Date Started: 2008/10/18
      9  *
     10  * ProvideX language file for GeSHi.
     11  *
     12  * CHANGES
     13  * -------
     14  * 2008/10/21 (1.0.0)
     15  *  - First Release
     16  *
     17  * TODO
     18  * -------------------------
     19  * 1. Create a regexp for numeric global variables (ex: %VarName = 3)
     20  * 2. Add standard object control properties
     21  *
     22  ******************************************************************************
     23  *
     24  *     This file is part of GeSHi.
     25  *
     26  *   GeSHi is free software; you can redistribute it and/or modify
     27  *   it under the terms of the GNU General Public License as published by
     28  *   the Free Software Foundation; either version 2 of the License, or
     29  *   (at your option) any later version.
     30  *
     31  *   GeSHi is distributed in the hope that it will be useful,
     32  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
     33  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     34  *   GNU General Public License for more details.
     35  *
     36  *   You should have received a copy of the GNU General Public License
     37  *   along with GeSHi; if not, write to the Free Software
     38  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     39  *
     40  *****************************************************************************/
     41 $language_data = array (
     42     'LANG_NAME' => 'ProvideX',
     43     'COMMENT_SINGLE' => array(1 => '!'),
     44     'COMMENT_MULTI' => array('/*' => '*/'),
     45     'COMMENT_REGEXP' => array(
     46         // Single-Line Comments using REM command
     47         2 => "/\bREM\b.*?$/i"
     48         ),
     49     'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
     50     'QUOTEMARKS' => array('"'),
     51     'ESCAPE_CHAR' => '',
     52     'KEYWORDS' => array(
     53         1 => array(
     54             // Directives
     55             '*break', '*continue', '*end', '*escape', '*next', '*proceed',
     56             '*retry', '*return', '*same', 'accept', 'add index', 'addr',
     57             'auto', 'begin', 'break', 'button', 'bye', 'call', 'case',
     58             'chart', 'check_box', 'class', 'clear', 'clip_board', 'close',
     59             'continue', 'control', 'create required', 'create table',
     60             'cwdir', 'data', 'day_format', 'def', 'default', 'defctl',
     61             'defprt', 'deftty', 'delete required', 'dictionary', 'dim', 'direct',
     62             'directory', 'disable', 'drop', 'drop_box', 'dump', 'edit',
     63             'else', 'enable', 'end switch', 'end', 'end_if', 'endtrace',
     64             'enter', 'erase', 'error_handler', 'escape', 'event', 'execute',
     65             'exit', 'exitto', 'extract', 'file', 'find', 'floating point',
     66             'for', 'function', 'get_file_box', 'gosub', 'goto', 'grid',
     67             'h_scrollbar', 'hide', 'if', 'index', 'indexed', 'input',
     68             'insert', 'invoke', 'iolist', 'keyed', 'let', 'like',
     69             'line_switch', 'list', 'list_box', 'load', 'local', 'lock',
     70             'long_form', 'menu_bar', 'merge', 'message_lib', 'mnemonic',
     71             'msgbox', 'multi_line', 'multi_media', 'next', 'object', 'obtain',
     72             'on', 'open', 'password', 'perform', 'pop', 'popup_menu',
     73             'precision', 'prefix', 'preinput', 'print', 'process', 'program',
     74             'property', 'purge', 'quit', 'radio_button', 'randomize',
     75             'read', 'record', 'redim', 'refile', 'release', 'rem', 'remove',
     76             'rename', 'renumber', 'repeat', 'reset', 'restore', 'retry',
     77             'return', 'round', 'run', 'save', 'select', 'serial', 'server',
     78             'set_focus', 'set_nbf', 'set_param', 'setctl', 'setday', 'setdev',
     79             'setdrive', 'seterr', 'setesc', 'setfid', 'setmouse', 'settime',
     80             'settrace', 'short_form', 'show', 'sort', 'start', 'static',
     81             'step', 'stop', 'switch', 'system_help', 'system_jrnl', 'table',
     82             'then', 'to', 'translate', 'tristate_box', 'unlock', 'until',
     83             'update', 'user_lex', 'v_scrollbar', 'vardrop_box', 'varlist_box',
     84             'via', 'video_palette', 'wait', 'wend', 'while', 'winprt_setup',
     85             'with', 'write'
     86             ),
     87         2 => array(
     88             // System Functions
     89             '@x', '@y', 'abs', 'acs', 'and', 'arg', 'asc', 'asn', 'ath',
     90             'atn', 'bin', 'bsz', 'chg', 'chr', 'cmp', 'cos', 'cpl',
     91             'crc', 'cse', 'ctl', 'cvs', 'dec', 'dir', 'dll', 'dsk',
     92             'dte', 'env', 'ept', 'err', 'evn', 'evs', 'exp', 'ffn',
     93             'fib', 'fid', 'fin', 'fpt', 'gap', 'gbl', 'gep', 'hsa',
     94             'hsh', 'hta', 'hwn', 'i3e', 'ind', 'int', 'iol', 'ior',
     95             'jul', 'jst', 'kec', 'kef', 'kel', 'ken', 'kep', 'key',
     96             'kgn', 'lcs', 'len', 'lno', 'log', 'lrc', 'lst', 'max',
     97             'mem', 'mid', 'min', 'mnm', 'mod', 'msg', 'msk', 'mxc',
     98             'mxl', 'new', 'not', 'nul', 'num', 'obj', 'opt', 'pad',
     99             'pck', 'pfx', 'pgm', 'pos', 'prc', 'prm', 'pth', 'pub',
    100             'rcd', 'rdx', 'rec', 'ref', 'rnd', 'rno', 'sep', 'sgn',
    101             'sin', 'sqr', 'srt', 'ssz', 'stk', 'stp', 'str', 'sub',
    102             'swp', 'sys', 'tan', 'tbl', 'tcb', 'tmr', 'trx', 'tsk',
    103             'txh', 'txw', 'ucp', 'ucs', 'upk', 'vin', 'vis', 'xeq',
    104             'xfa', 'xor', '_obj'
    105             ),
    106         3 => array(
    107             // System Variables
    108             // Vars that are duplicates of functions
    109             // 'ctl', 'err', 'pfx', 'prm', 'rnd', 'sep', 'sys',
    110             'bkg', 'chn', 'day', 'dlm', 'dsz', 'eom', 'ers', 'esc',
    111             'gfn', 'gid', 'hfn', 'hlp', 'hwd', 'lfa', 'lfo', 'lip',
    112             'lpg', 'lwd', 'mse', 'msl', 'nar', 'nid', 'pgn', 'psz',
    113             'quo', 'ret', 'sid', 'ssn', 'tim', 'tme', 'tms', 'tsm',
    114             'uid', 'unt', 'who'
    115 
    116             ),
    117         4 => array(
    118             // Nomads Variables
    119             '%Flmaint_Lib$', '%Flmaint_Msg$', '%Nomads_Activation_Ok',
    120             '%Nomads_Auto_Qry', '%Nomads_Disable_Debug',
    121             '%Nomads_Disable_Trace', '%Nomads_Fkey_Handler$',
    122             '%Nomads_Fkey_Tbl$', '%Nomads_Notest', '%Nomads_Onexit$',
    123             '%Nomads_Post_Display', '%Nomads_Pre_Display$',
    124             '%Nomads_Process$', '%Nomads_Trace_File$',
    125             '%Nomad_Actv_Folder_Colors$', '%Nomad_Automation_Enabled',
    126             '%Nomad_Auto_Close', '%Nomad_Center_Wdw', '%Nomad_Concurrent_Wdw',
    127             '%Nomad_Custom_Define', '%Nomad_Custom_Dir$',
    128             '%Nomad_Custom_Genmtc', '%Nomad_Custom_Skip_Definition',
    129             '%Nomad_Def_Sfx$', '%Nomad_Enter_Tab', '%Nomad_Esc_Sel',
    130             '%Nomad_Isjavx', '%Nomad_Iswindx', '%Nomad_Iswindx$',
    131             '%Nomad_Menu$', '%Nomad_Menu_Leftedge_Clr$',
    132             '%Nomad_Menu_Textbackground_Clr$', '%Nomad_Mln_Sep$',
    133             '%Nomad_Msgmnt$', '%Nomad_Noplusw', '%Nomad_No_Customize',
    134             '%Nomad_Object_Persistence', '%Nomad_Object_Resize',
    135             '%Nomad_Open_Load', '%Nomad_Override_Font$',
    136             '%Nomad_Palette_Loaded', '%Nomad_Panel_Info_Force',
    137             '%Nomad_Panel_Info_Prog$', '%Nomad_Pnl_Def_Colour$',
    138             '%Nomad_Pnl_Def_Font$', '%Nomad_Prg_Cache', '%Nomad_Qry_Attr$',
    139             '%Nomad_Qry_Btn$', '%Nomad_Qry_Clear_Start', '%Nomad_Qry_Tip$',
    140             '%Nomad_Qry_Wide', '%Nomad_Query_Clear_Status', '%Nomad_Query_Kno',
    141             '%Nomad_Query_No_Gray', '%Nomad_Query_Odb_Ignore',
    142             '%Nomad_Query_Retkno', '%Nomad_Query_Sbar_Max',
    143             '%Nomad_Relative_Wdw', '%Nomad_Save_Qry_Path', '%Nomad_Script_Fn',
    144             '%Nomad_Script_Log', '%Nomad_Script_Wdw',
    145             '%Nomad_Skip_Change_Logic', '%Nomad_Skip_Onselect_Logic',
    146             '%Nomad_Stk$', '%Nomad_Tab_Dir', '%Nomad_Timeout',
    147             '%Nomad_Turbo_Off', '%Nomad_Visual_Effect',
    148             '%Nomad_Visual_Override', '%Nomad_Win_Ver', '%Nomad_Xchar',
    149             '%Nomad_Xmax', '%Nomad_Ychar', '%Nomad_Ymax', '%Scr_Def_Attr$',
    150             '%Scr_Def_H_Fl$', '%Scr_Def_H_Id$', '%Scr_Lib', '%Scr_Lib$',
    151             '%Z__Usr_Sec$', 'Alternate_Panel$', 'Alternate_Panel_Type$',
    152             'Arg_1$', 'Arg_10$', 'Arg_11$', 'Arg_12$', 'Arg_13$', 'Arg_14$',
    153             'Arg_15$', 'Arg_16$', 'Arg_17$', 'Arg_18$', 'Arg_19$', 'Arg_2$',
    154             'Arg_20$', 'Arg_3$', 'Arg_4$', 'Arg_5$', 'Arg_6$', 'Arg_7$',
    155             'Arg_8$', 'Arg_9$', 'Change_Flg', 'Cmd_Str$', 'Default_Prog$',
    156             'Disp_Cmd$', 'Entire_Record$', 'Exit_Cmd$', 'Fldr_Default_Prog$',
    157             'Folder_Id$', 'Id', 'Id$', 'Ignore_Exit', 'Initialize_Flg',
    158             'Init_Text$', 'Init_Val$', 'Main_Scrn_K$', 'Mnu_Ln$',
    159             'Next_Folder', 'Next_Id', 'Next_Id$', 'No_Flush', 'Prime_Key$',
    160             'Prior_Val', 'Prior_Val$', 'Qry_Val$', 'Refresh_Flg',
    161             'Replacement_Folder$', 'Replacement_Lib$', 'Replacement_Scrn$',
    162             'Scrn_Id$', 'Scrn_K$', 'Scrn_Lib$', 'Tab_Table$', '_Eom$'
    163             ),
    164         5 => array(
    165             // Mnemonics
    166             "'!w'", "'*c'", "'*h'", "'*i'", "'*o'", "'*r'", "'*x'",
    167             "'+b'", "'+d'", "'+e'", "'+f'", "'+i'", "'+n'",
    168             "'+p'", "'+s'", "'+t'", "'+u'", "'+v'", "'+w'", "'+x'",
    169             "'+z'", "'-b'", "'-d'", "'-e'", "'-f'", "'-i'",
    170             "'-n'", "'-p'", "'-s'", "'-t'", "'-u'", "'-v'", "'-w'",
    171             "'-x'", "'-z'", "'2d'", "'3d'", "'4d'", "'@@'", "'ab'",
    172             "'arc'", "'at'", "'backgr'", "'bb'", "'be'", "'beep'",
    173             "'bg'", "'bi'", "'bj'", "'bk'", "'black'", "'blue'",
    174             "'bm'", "'bo'", "'box'", "'br'", "'bs'", "'bt'", "'bu'",
    175             "'bw'", "'bx'", "'caption'", "'ce'", "'cf'", "'ch'",
    176             "'ci'", "'circle'", "'cl'", "'colour'", "'cp'", "'cpi'",
    177             "'cr'", "'cs'", "'cursor'", "'cyan''_cyan'", "'dc'",
    178             "'default'", "'df'", "'dialogue'", "'dn'", "'do'",
    179             "'drop'", "'eb'", "'ee'", "'ef'", "'eg'", "'ei'", "'ej'",
    180             "'el'", "'em'", "'eo'", "'ep'", "'er'", "'es'", "'et'",
    181             "'eu'", "'ew'", "'ff'", "'fill'", "'fl'", "'font'",
    182             "'frame'", "'gd'", "'ge'", "'gf'", "'goto'", "'green'",
    183             "'gs'", "'hide'", "'ic'", "'image'", "'jc'",
    184             "'jd'", "'jl'", "'jn'", "'jr'", "'js'", "'l6'", "'l8'",
    185             "'lc'", "'ld'", "'lf'", "'li'", "'line'", "'lm'",
    186             "'lpi'", "'lt'", "'magenta'", "'maxsize'", "'me'",
    187             "'message'", "'minsize'", "'mn'", "'mode'",
    188             "'move'", "'mp'", "'ms'", "'ni'", "'offset'", "'option'",
    189             "'pe'", "'pen'", "'picture'", "'pie'", "'pm'", "'polygon'",
    190             "'pop'", "'ps'", "'push'", "'rb'", "'rc'", "'rectangle'",
    191             "'red'", "'rl'", "'rm'", "'rp'", "'rs'", "'rt'", "'sb'",
    192             "'scroll'", "'sd'", "'se'", "'sf'", "'show'", "'size'",
    193             "'sl'", "'sn'", "'sp'", "'sr'", "'swap'", "'sx'", "'text'",
    194             "'textwdw'", "'tr'", "'tw'", "'uc'", "'up'", "'vt'", "'wa'",
    195             "'wc'", "'wd'", "'wg'", "'white'", "'window'", "'wm'",
    196             "'wp'", "'wr'", "'wrap'", "'ws'", "'wx'", "'xp'", "'yellow'",
    197             "'zx'", "'_black'", "'_blue'", "'_colour'", "'_green'",
    198             "'_magenta'", "'_red'", "'_white'", "'_yellow'"
    199             ),
    200         ),
    201     'SYMBOLS' => array(
    202         0 => array('+', '-', '*', '/', '^', '|'),
    203         1 => array('++', '--', '+=', '-=', '*=', '/=', '^=', '|='),
    204         2 => array('&lt;', '&gt;', '='),
    205         3 => array('(', ')', '[', ']', '{', '}'),
    206         4 => array(',', '@', ';', '\\')
    207         ),
    208     'CASE_SENSITIVE' => array(
    209         GESHI_COMMENTS => false,
    210         1 => false,
    211         2 => false,
    212         3 => false,
    213         4 => false,
    214         5 => false,
    215         ),
    216     'STYLES' => array(
    217         'KEYWORDS' => array(
    218             1 => 'color: navy;', // Directives
    219             2 => 'color: blue;', // System Functions
    220             3 => 'color: blue;', // System Variables
    221             4 => 'color: #6A5ACD; font-style: italic;', // Nomads Global Variables
    222             5 => 'color: #BDB76B;', // Mnemonics
    223             ),
    224         'COMMENTS' => array(
    225             1 => 'color: #008080; font-style: italic;',
    226             2 => 'color: #008080;',
    227             'MULTI' => 'color: #008080; font-style: italic;'
    228             ),
    229         'BRACKETS' => array(
    230             0 => 'color: #000066;'
    231             ),
    232         'STRINGS' => array(
    233             0 => 'color: green;'
    234             ),
    235         'NUMBERS' => array(
    236             0 => 'color: #00008B;'
    237             ),
    238         'METHODS' => array(
    239             ),
    240         'SYMBOLS' => array(
    241             0 => 'color: #008000;',
    242             1 => 'color: #000099;',
    243             2 => 'color: #000099;',
    244             3 => 'color: #0000C9;',
    245             4 => 'color: #000099;'
    246             ),
    247         'ESCAPE_CHAR' => array(
    248             0 => 'color: #000099;'
    249             ),
    250         'SCRIPT' => array(
    251             ),
    252         'REGEXPS' => array(
    253             1 => 'color: #006400; font-weight: bold',
    254             2 => 'color: #6A5ACD;'
    255             )
    256         ),
    257     'URLS' => array(
    258         1 => 'http://www.allbasic.info./wiki/index.php/PX:Directive_{FNAME}',
    259         2 => 'http://www.allbasic.info./wiki/index.php/PX:System_function_{FNAME}',
    260         3 => 'http://www.allbasic.info./wiki/index.php/PX:System_variable_{FNAME}',
    261         4 => 'http://www.allbasic.info./wiki/index.php/PX:Nomads_{FNAME}',
    262         5 => 'http://www.allbasic.info./wiki/index.php/PX:Mnemonic_{FNAMEU}'
    263         ),
    264     'OOLANG' => true,
    265     'OBJECT_SPLITTERS' => array(
    266         1 => "'"
    267         ),
    268     'REGEXPS' => array(
    269         1 => array(
    270             // Line Labels
    271             GESHI_SEARCH => '([[:space:]])([a-zA-Z_][a-zA-Z0-9_]+)(:)',
    272             GESHI_REPLACE => '\\2',
    273             GESHI_MODIFIERS => '',
    274             GESHI_BEFORE => '\\1',
    275             GESHI_AFTER => '\\3'
    276             ),
    277         2 => array(
    278             // Global String Variables
    279             GESHI_SEARCH => '(\%)([a-zA-Z_][a-zA-Z0-9_]+)(\$)',
    280             GESHI_REPLACE => '\\1\\2\\3',
    281             GESHI_MODIFIERS => '',
    282             GESHI_BEFORE => '',
    283             GESHI_AFTER => ''
    284             )
    285         ),
    286     'STRICT_MODE_APPLIES' => GESHI_NEVER,
    287     'SCRIPT_DELIMITERS' => array(
    288         ),
    289     'HIGHLIGHT_STRICT_BLOCK' => array(
    290         ),
    291     'PARSER_CONTROL' => array(
    292         'ENABLE_FLAGS' => array(
    293             'NUMBERS' => GESHI_NEVER
    294             )
    295         ),
    296     'TAB_WIDTH' => 4
    297 );
    298 
    299 ?>
    300