1 | 5 | simandl | <?php |
2 | | | /****************************************************************************** |
3 | | | * providex.php |
4 | | | * ---------- |
5 | | | * Author: Jeff Wilder (jeff@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 | | | |
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 | | | |
231 | | | ), |
232 | | | 'STRINGS' => array( |
233 | | | |
234 | | | ), |
235 | | | 'NUMBERS' => array( |
236 | | | |
237 | | | ), |
238 | | | 'METHODS' => array( |
239 | | | ), |
240 | | | 'SYMBOLS' => array( |
241 | | | |
242 | | | 1 => 'color: #000099;', |
243 | | | 2 => 'color: #000099;', |
244 | | | 3 => 'color: #0000C9;', |
245 | | | 4 => 'color: #000099;' |
246 | | | ), |
247 | | | 'ESCAPE_CHAR' => array( |
248 | | | |
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 | | | ?> |