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('<', '>', '='), 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