1 <?php |
1 <?php |
2 /************************************************************************************* |
2 /************************************************************************************* |
3 * abap.php |
3 * abap.php |
4 * -------- |
4 * -------- |
5 * Author: Andres Picazo (andres@andrespicazo.com) |
5 * Author: Andres Picazo (andres@andrespicazo.com) |
|
6 * Contributors: |
|
7 * - Sandra Rossi (sandra.rossi@gmail.com) |
|
8 * - Jacob Laursen (jlu@kmd.dk) |
6 * Copyright: (c) 2007 Andres Picazo |
9 * Copyright: (c) 2007 Andres Picazo |
7 * Release Version: 1.0.8.2 |
10 * Release Version: 1.0.8.4 |
8 * Date Started: 2004/06/04 |
11 * Date Started: 2004/06/04 |
9 * |
12 * |
10 * ABAP language file for GeSHi. |
13 * ABAP language file for GeSHi. |
11 * |
14 * |
|
15 * Reference abap language documentation (abap 7.1) : http://help.sap.com/abapdocu/en/ABENABAP_INDEX.htm |
|
16 * |
|
17 * ABAP syntax is highly complex, several problems could not be addressed, see TODO below if you dare ;-) |
|
18 * Be aware that in ABAP language, keywords may be composed of several tokens, |
|
19 * separated by one or more spaces or carriage returns |
|
20 * (for example CONCATENATE 'hello' 'world' INTO string SEPARATED BY ' ') |
|
21 * it's why we must decode them with REGEXPS. As there are many keywords with several tokens, |
|
22 * I had to create a separate section in the code to simplify the reading. |
|
23 * Be aware that some words may be highlighted several times like for "ref to data", which is first |
|
24 * highlighted for "ref to data", then secondly for "ref to". It is very important to |
|
25 * position "ref to" after "ref to data" otherwise "data" wouldn't be highlighted because |
|
26 * of the previous highlight. |
|
27 * Control, declarative and other statements are assigned URLs to sap documentation website: |
|
28 * http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm |
|
29 * |
12 * CHANGES |
30 * CHANGES |
13 * ------- |
31 * ------- |
|
32 * 2009/02/25 (1.0.8.3) |
|
33 * - Some more rework of the language file |
|
34 * 2009/01/04 (1.0.8.2) |
|
35 * - Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi) |
14 * 2007/06/27 (1.0.0) |
36 * 2007/06/27 (1.0.0) |
15 * - First Release |
37 * - First Release |
16 * |
38 * |
17 * TODO |
39 * TODO |
18 * ---- |
40 * ---- |
|
41 * - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data |
|
42 * style, but should be ignored. Same problem for all words!!! This is quite impossible to |
|
43 * solve it as we should define syntaxes of all statements (huge effort!) and use a lex |
|
44 * or something like that instead of regexp I guess. |
|
45 * - Some words are considered as being statement names (report, tables, etc.) though they |
|
46 * are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was |
|
47 * arbitrary decided to define them as statement instead of keyword, because it may be |
|
48 * useful to have the URL to SAP help for some of them. |
|
49 * - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY), |
|
50 * it is not considered as a keyword, but it should! |
|
51 * - for statements like "READ DATASET", GeSHi does not allow to set URLs because these |
|
52 * statements are determined by REGEXPS. For "READ DATASET", the URL should be |
|
53 * ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs |
|
54 * are sometimes not valid because the URL does not exist. For example, for "AT NEW" |
|
55 * statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm). |
|
56 * There are many other exceptions. |
|
57 * Note: for adding this functionality within your php program, you can execute this code: |
|
58 * function add_urls_to_multi_tokens( $matches ) { |
|
59 * $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] ); |
|
60 * if( $url == $matches[3] ) return $matches[0] ; |
|
61 * else return $matches[1]."<a href=\"http://help.sap.com/abapdocu/en/ABAP".strtoupper($url).".htm\">".$matches[3]."</a>".$matches[4]; |
|
62 * } |
|
63 * $html = $geshi->parse_code(); |
|
64 * $html = preg_replace_callback( "£(zzz:(control|statement|data);\">)(.+?)(</span>)£s", "add_urls_to_multi_tokens", $html ); |
|
65 * echo $html; |
|
66 * - Numbers followed by a dot terminating the statement are not properly recognized |
19 * |
67 * |
20 ************************************************************************************* |
68 ************************************************************************************* |
21 * |
69 * |
22 * This file is part of GeSHi. |
70 * This file is part of GeSHi. |
23 * |
71 * |
35 * along with GeSHi; if not, write to the Free Software |
83 * along with GeSHi; if not, write to the Free Software |
36 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
84 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
37 * |
85 * |
38 ************************************************************************************/ |
86 ************************************************************************************/ |
39 |
87 |
40 $language_data = array ( |
88 $language_data = array( |
41 'LANG_NAME' => 'ABAP', |
89 'LANG_NAME' => 'ABAP', |
42 'COMMENT_SINGLE' => array(1 => '"', 2 => '*'), |
90 'COMMENT_SINGLE' => array( |
|
91 1 => '"' |
|
92 ), |
43 'COMMENT_MULTI' => array(), |
93 'COMMENT_MULTI' => array(), |
|
94 'COMMENT_REGEXP' => array( |
|
95 // lines beginning with star at 1st position are comments |
|
96 // (star anywhere else is not a comment, especially be careful with |
|
97 // "assign dref->* to <fs>" statement) |
|
98 2 => '/^\*.*?$/m' |
|
99 ), |
44 'CASE_KEYWORDS' => 0, |
100 'CASE_KEYWORDS' => 0, |
45 'QUOTEMARKS' => array("'"), |
101 'QUOTEMARKS' => array( |
|
102 1 => "'", |
|
103 2 => "`" |
|
104 ), |
46 'ESCAPE_CHAR' => '', |
105 'ESCAPE_CHAR' => '', |
|
106 |
47 'KEYWORDS' => array( |
107 'KEYWORDS' => array( |
|
108 //*********************************************** |
|
109 // Section 2 : process sequences of several tokens |
|
110 //*********************************************** |
|
111 |
|
112 7 => array( |
|
113 'at new', |
|
114 'at end of', |
|
115 'at first', |
|
116 'at last', |
|
117 'loop at', |
|
118 'loop at screen', |
|
119 ), |
|
120 |
|
121 8 => array( |
|
122 'private section', |
|
123 'protected section', |
|
124 'public section', |
|
125 'at line-selection', |
|
126 'at selection-screen', |
|
127 'at user-command', |
|
128 'assign component', |
|
129 'assign table field', |
|
130 'call badi', |
|
131 'call customer-function', |
|
132 'call customer subscreen', |
|
133 'call dialog', |
|
134 'call function', |
|
135 'call method', |
|
136 'call screen', |
|
137 'call selection-screen', |
|
138 'call transaction', |
|
139 'call transformation', |
|
140 'close cursor', |
|
141 'close dataset', |
|
142 'commit work', |
|
143 'convert date', |
|
144 'convert text', |
|
145 'convert time stamp', |
|
146 'create data', |
|
147 'create object', |
|
148 'delete dataset', |
|
149 'delete from', |
|
150 'describe distance', |
|
151 'describe field', |
|
152 'describe list', |
|
153 'describe table', |
|
154 'exec sql', |
|
155 'exit from sql', |
|
156 'exit from step-loop', |
|
157 'export dynpro', |
|
158 'export nametab', |
|
159 'free memory', |
|
160 'generate subroutine-pool', |
|
161 'get badi', |
|
162 'get bit', |
|
163 'get cursor', |
|
164 'get dataset', |
|
165 'get locale', |
|
166 'get parameter', |
|
167 'get pf-status', |
|
168 'get property', |
|
169 'get reference', |
|
170 'get run time', |
|
171 'get time', |
|
172 'get time stamp', |
|
173 'import directory', |
|
174 'insert report', |
|
175 'insert text-pool', |
|
176 'leave list-processing', |
|
177 'leave program', |
|
178 'leave screen', |
|
179 'leave to list-processing', |
|
180 'leave to transaction', |
|
181 'modify line', |
|
182 'modify screen', |
|
183 'move percentage', |
|
184 'open cursor', |
|
185 'open dataset', |
|
186 'raise event', |
|
187 'raise exception', |
|
188 'read dataset', |
|
189 'read line', |
|
190 'read report', |
|
191 'read table', |
|
192 'read textpool', |
|
193 'receive results from function', |
|
194 'refresh control', |
|
195 'rollback work', |
|
196 'set bit', |
|
197 'set blank lines', |
|
198 'set country', |
|
199 'set cursor', |
|
200 'set dataset', |
|
201 'set extended check', |
|
202 'set handler', |
|
203 'set hold data', |
|
204 'set language', |
|
205 'set left scroll-boundary', |
|
206 'set locale', |
|
207 'set margin', |
|
208 'set parameter', |
|
209 'set pf-status', |
|
210 'set property', |
|
211 'set run time analyzer', |
|
212 'set run time clock', |
|
213 'set screen', |
|
214 'set titlebar', |
|
215 'set update task', |
|
216 'set user-command', |
|
217 'suppress dialog', |
|
218 'truncate dataset', |
|
219 'wait until', |
|
220 'wait up to', |
|
221 ), |
|
222 |
|
223 9 => array( |
|
224 'accepting duplicate keys', |
|
225 'accepting padding', |
|
226 'accepting truncation', |
|
227 'according to', |
|
228 'actual length', |
|
229 'adjacent duplicates', |
|
230 'after input', |
|
231 'all blob columns', |
|
232 'all clob columns', |
|
233 'all fields', |
|
234 'all methods', |
|
235 'all other columns', |
|
236 'and mark', |
|
237 'and return to screen', |
|
238 'and return', |
|
239 'and skip first screen', |
|
240 'and wait', |
|
241 'any table', |
|
242 'appendage type', |
|
243 'archive mode', |
|
244 'archiving parameters', |
|
245 'area handle', |
|
246 'as checkbox', |
|
247 'as icon', |
|
248 'as line', |
|
249 'as listbox', |
|
250 'as person table', |
|
251 'as search patterns', |
|
252 'as separate unit', |
|
253 'as subscreen', |
|
254 'as symbol', |
|
255 'as text', |
|
256 'as window', |
|
257 'at cursor-selection', |
|
258 'at exit-command', |
|
259 'at next application statement', |
|
260 'at position', |
|
261 |
|
262 'backup into', |
|
263 'before output', |
|
264 'before unwind', |
|
265 'begin of block', |
|
266 'begin of common part', |
|
267 'begin of line', |
|
268 'begin of screen', |
|
269 'begin of tabbed block', |
|
270 'begin of version', |
|
271 'begin of', |
|
272 'big endian', |
|
273 'binary mode', |
|
274 'binary search', |
|
275 'by kernel module', |
|
276 'bypassing buffer', |
|
277 |
|
278 'client specified', |
|
279 'code page', |
|
280 'code page hint', |
|
281 'code page into', |
|
282 'color black', |
|
283 'color blue', |
|
284 'color green', |
|
285 'color pink', |
|
286 'color red', |
|
287 'color yellow', |
|
288 'compression off', |
|
289 'compression on', |
|
290 'connect to', |
|
291 'corresponding fields of table', |
|
292 'corresponding fields of', |
|
293 'cover page', |
|
294 'cover text', |
|
295 'create package', |
|
296 'create private', |
|
297 'create protected', |
|
298 'create public', |
|
299 'current position', |
|
300 |
|
301 'data buffer', |
|
302 'data values', |
|
303 'dataset expiration', |
|
304 'daylight saving time', |
|
305 'default key', |
|
306 'default program', |
|
307 'default screen', |
|
308 'defining database', |
|
309 'deleting leading', |
|
310 'deleting trailing', |
|
311 'directory entry', |
|
312 'display like', |
|
313 'display offset', |
|
314 'during line-selection', |
|
315 'dynamic selections', |
|
316 |
|
317 'edit mask', |
|
318 'end of block', |
|
319 'end of common part', |
|
320 'end of file', |
|
321 'end of line', |
|
322 'end of screen', |
|
323 'end of tabbed block', |
|
324 'end of version', |
|
325 'end of', |
|
326 'endian into', |
|
327 'ending at', |
|
328 'enhancement options into', |
|
329 'enhancement into', |
|
330 'environment time format', |
|
331 'execute procedure', |
|
332 'exporting list to memory', |
|
333 'extension type', |
|
334 |
|
335 'field format', |
|
336 'field selection', |
|
337 'field value into', |
|
338 'final methods', |
|
339 'first occurrence of', |
|
340 'fixed-point arithmetic', |
|
341 'for all entries', |
|
342 'for all instances', |
|
343 'for appending', |
|
344 'for columns', |
|
345 'for event of', |
|
346 'for field', |
|
347 'for high', |
|
348 'for input', |
|
349 'for lines', |
|
350 'for low', |
|
351 'for node', |
|
352 'for output', |
|
353 'for select', |
|
354 'for table', |
|
355 'for testing', |
|
356 'for update', |
|
357 'for user', |
|
358 'frame entry', |
|
359 'frame program from', |
|
360 'from code page', |
|
361 'from context', |
|
362 'from database', |
|
363 'from logfile id', |
|
364 'from number format', |
|
365 'from screen', |
|
366 'from table', |
|
367 'function key', |
|
368 |
|
369 'get connection', |
|
370 'global friends', |
|
371 'group by', |
|
372 |
|
373 'hashed table of', |
|
374 'hashed table', |
|
375 |
|
376 'if found', |
|
377 'ignoring case', |
|
378 'ignoring conversion errors', |
|
379 'ignoring structure boundaries', |
|
380 'implementations from', |
|
381 'in background', |
|
382 'in background task', |
|
383 'in background unit', |
|
384 'in binary mode', |
|
385 'in byte mode', |
|
386 'in char-to-hex mode', |
|
387 'in character mode', |
|
388 'in group', |
|
389 'in legacy binary mode', |
|
390 'in legacy text mode', |
|
391 'in program', |
|
392 'in remote task', |
|
393 'in text mode', |
|
394 'in table', |
|
395 'in update task', |
|
396 'include bound', |
|
397 'include into', |
|
398 'include program from', |
|
399 'include structure', |
|
400 'include type', |
|
401 'including gaps', |
|
402 'index table', |
|
403 'inheriting from', |
|
404 'init destination', |
|
405 'initial line of', |
|
406 'initial line', |
|
407 'initial size', |
|
408 'internal table', |
|
409 'into sortable code', |
|
410 |
|
411 'keep in spool', |
|
412 'keeping directory entry', |
|
413 'keeping logical unit of work', |
|
414 'keeping task', |
|
415 'keywords from', |
|
416 |
|
417 'left margin', |
|
418 'left outer', |
|
419 'levels into', |
|
420 'line format', |
|
421 'line into', |
|
422 'line of', |
|
423 'line page', |
|
424 'line value from', |
|
425 'line value into', |
|
426 'lines of', |
|
427 'list authority', |
|
428 'list dataset', |
|
429 'list name', |
|
430 'little endian', |
|
431 'lob handle for', |
|
432 'local friends', |
|
433 'locator for', |
|
434 'lower case', |
|
435 |
|
436 'main table field', |
|
437 'match count', |
|
438 'match length', |
|
439 'match line', |
|
440 'match offset', |
|
441 'matchcode object', |
|
442 'maximum length', |
|
443 'maximum width into', |
|
444 'memory id', |
|
445 'message into', |
|
446 'messages into', |
|
447 'modif id', |
|
448 |
|
449 'nesting level', |
|
450 'new list identification', |
|
451 'next cursor', |
|
452 'no database selection', |
|
453 'no dialog', |
|
454 'no end of line', |
|
455 'no fields', |
|
456 'no flush', |
|
457 'no intervals', |
|
458 'no intervals off', |
|
459 'no standard page heading', |
|
460 'no-extension off', |
|
461 'non-unique key', |
|
462 'non-unique sorted key', |
|
463 'not at end of mode', |
|
464 'number of lines', |
|
465 'number of pages', |
|
466 |
|
467 'object key', |
|
468 'obligatory off', |
|
469 'of current page', |
|
470 'of page', |
|
471 'of program', |
|
472 'offset into', |
|
473 'on block', |
|
474 'on commit', |
|
475 'on end of task', |
|
476 'on end of', |
|
477 'on exit-command', |
|
478 'on help-request for', |
|
479 'on radiobutton group', |
|
480 'on rollback', |
|
481 'on value-request for', |
|
482 'open for package', |
|
483 'option class-coding', |
|
484 'option class', |
|
485 'option coding', |
|
486 'option expand', |
|
487 'option syncpoints', |
|
488 'options from', |
|
489 'order by', |
|
490 'overflow into', |
|
491 |
|
492 'package section', |
|
493 'package size', |
|
494 'preferred parameter', |
|
495 'preserving identifier escaping', |
|
496 'primary key', |
|
497 'print off', |
|
498 'print on', |
|
499 'program from', |
|
500 'program type', |
|
501 |
|
502 'radiobutton groups', |
|
503 'radiobutton group', |
|
504 'range of', |
|
505 'reader for', |
|
506 'receive buffer', |
|
507 'reduced functionality', |
|
508 'ref to data', |
|
509 'ref to object', |
|
510 'ref to', |
|
511 |
|
512 'reference into', |
|
513 'renaming with suffix', |
|
514 'replacement character', |
|
515 'replacement count', |
|
516 'replacement length', |
|
517 'replacement line', |
|
518 'replacement offset', |
|
519 'respecting blanks', |
|
520 'respecting case', |
|
521 'result into', |
|
522 'risk level', |
|
523 |
|
524 'sap cover page', |
|
525 'search fkeq', |
|
526 'search fkge', |
|
527 'search gkeq', |
|
528 'search gkge', |
|
529 'section of', |
|
530 'send buffer', |
|
531 'separated by', |
|
532 'shared buffer', |
|
533 'shared memory', |
|
534 'shared memory enabled', |
|
535 'skipping byte-order mark', |
|
536 'sorted by', |
|
537 'sorted table of', |
|
538 'sorted table', |
|
539 'spool parameters', |
|
540 'standard table of', |
|
541 'standard table', |
|
542 'starting at', |
|
543 'starting new task', |
|
544 'statements into', |
|
545 'structure default', |
|
546 'structures into', |
|
547 |
|
548 'table field', |
|
549 'table of', |
|
550 'text mode', |
|
551 'time stamp', |
|
552 'time zone', |
|
553 'to code page', |
|
554 'to column', |
|
555 'to context', |
|
556 'to first page', |
|
557 'to last page', |
|
558 'to last line', |
|
559 'to line', |
|
560 'to lower case', |
|
561 'to number format', |
|
562 'to page', |
|
563 'to sap spool', |
|
564 'to upper case', |
|
565 'tokens into', |
|
566 'transporting no fields', |
|
567 'type tableview', |
|
568 'type tabstrip', |
|
569 |
|
570 'unicode enabling', |
|
571 'up to', |
|
572 'upper case', |
|
573 'using edit mask', |
|
574 'using key', |
|
575 'using no edit mask', |
|
576 'using screen', |
|
577 'using selection-screen', |
|
578 'using selection-set', |
|
579 'using selection-sets of program', |
|
580 |
|
581 'valid between', |
|
582 'valid from', |
|
583 'value check', |
|
584 'via job', |
|
585 'via selection-screen', |
|
586 'visible length', |
|
587 |
|
588 'whenever found', |
|
589 'with analysis', |
|
590 'with byte-order mark', |
|
591 'with comments', |
|
592 'with current switchstates', |
|
593 'with explicit enhancements', |
|
594 'with frame', |
|
595 'with free selections', |
|
596 'with further secondary keys', |
|
597 'with header line', |
|
598 'with hold', |
|
599 'with implicit enhancements', |
|
600 'with inactive enhancements', |
|
601 'with includes', |
|
602 'with key', |
|
603 'with linefeed', |
|
604 'with list tokenization', |
|
605 'with native linefeed', |
|
606 'with non-unique key', |
|
607 'with null', |
|
608 'with pragmas', |
|
609 'with precompiled headers', |
|
610 'with selection-table', |
|
611 'with smart linefeed', |
|
612 'with table key', |
|
613 'with test code', |
|
614 'with type-pools', |
|
615 'with unique key', |
|
616 'with unix linefeed', |
|
617 'with windows linefeed', |
|
618 'without further secondary keys', |
|
619 'without selection-screen', |
|
620 'without spool dynpro', |
|
621 'without trmac', |
|
622 'word into', |
|
623 'writer for' |
|
624 ), |
|
625 |
|
626 //********************************************************** |
|
627 // Other abap statements |
|
628 //********************************************************** |
|
629 3 => array( |
|
630 'add', |
|
631 'add-corresponding', |
|
632 'aliases', |
|
633 'append', |
|
634 'assign', |
|
635 'at', |
|
636 'authority-check', |
|
637 |
|
638 'break-point', |
|
639 |
|
640 'clear', |
|
641 'collect', |
|
642 'compute', |
|
643 'concatenate', |
|
644 'condense', |
|
645 'class', |
|
646 'class-events', |
|
647 'class-methods', |
|
648 'class-pool', |
|
649 |
|
650 'define', |
|
651 'delete', |
|
652 'demand', |
|
653 'detail', |
|
654 'divide', |
|
655 'divide-corresponding', |
|
656 |
|
657 'editor-call', |
|
658 'end-of-file', |
|
659 'end-enhancement-section', |
|
660 'end-of-definition', |
|
661 'end-of-page', |
|
662 'end-of-selection', |
|
663 'endclass', |
|
664 'endenhancement', |
|
665 'endexec', |
|
666 'endform', |
|
667 'endfunction', |
|
668 'endinterface', |
|
669 'endmethod', |
|
670 'endmodule', |
|
671 'endon', |
|
672 'endprovide', |
|
673 'endselect', |
|
674 'enhancement', |
|
675 'enhancement-point', |
|
676 'enhancement-section', |
|
677 'export', |
|
678 'extract', |
|
679 'events', |
|
680 |
|
681 'fetch', |
|
682 'field-groups', |
|
683 'find', |
|
684 'format', |
|
685 'form', |
|
686 'free', |
|
687 'function-pool', |
|
688 'function', |
|
689 |
|
690 'get', |
|
691 |
|
692 'hide', |
|
693 |
|
694 'import', |
|
695 'infotypes', |
|
696 'input', |
|
697 'insert', |
|
698 'include', |
|
699 'initialization', |
|
700 'interface', |
|
701 'interface-pool', |
|
702 'interfaces', |
|
703 |
|
704 'leave', |
|
705 'load-of-program', |
|
706 'log-point', |
|
707 |
|
708 'maximum', |
|
709 'message', |
|
710 'methods', |
|
711 'method', |
|
712 'minimum', |
|
713 'modify', |
|
714 'move', |
|
715 'move-corresponding', |
|
716 'multiply', |
|
717 'multiply-corresponding', |
|
718 |
|
719 'new-line', |
|
720 'new-page', |
|
721 'new-section', |
|
722 |
|
723 'overlay', |
|
724 |
|
725 'pack', |
|
726 'perform', |
|
727 'position', |
|
728 'print-control', |
|
729 'program', |
|
730 'provide', |
|
731 'put', |
|
732 |
|
733 'raise', |
|
734 'refresh', |
|
735 'reject', |
|
736 'replace', |
|
737 'report', |
|
738 'reserve', |
|
739 |
|
740 'scroll', |
|
741 'search', |
|
742 'select', |
|
743 'selection-screen', |
|
744 'shift', |
|
745 'skip', |
|
746 'sort', |
|
747 'split', |
|
748 'start-of-selection', |
|
749 'submit', |
|
750 'subtract', |
|
751 'subtract-corresponding', |
|
752 'sum', |
|
753 'summary', |
|
754 'summing', |
|
755 'supply', |
|
756 'syntax-check', |
|
757 |
|
758 'top-of-page', |
|
759 'transfer', |
|
760 'translate', |
|
761 'type-pool', |
|
762 |
|
763 'uline', |
|
764 'unpack', |
|
765 'update', |
|
766 |
|
767 'window', |
|
768 'write' |
|
769 |
|
770 ), |
|
771 |
|
772 //********************************************************** |
|
773 // keywords |
|
774 //********************************************************** |
|
775 |
|
776 4 => array( |
|
777 'abbreviated', |
|
778 'abstract', |
|
779 'accept', |
|
780 'acos', |
|
781 'activation', |
|
782 'alias', |
|
783 'align', |
|
784 'all', |
|
785 'allocate', |
|
786 'and', |
|
787 'assigned', |
|
788 'any', |
|
789 'appending', |
|
790 'area', |
|
791 'as', |
|
792 'ascending', |
|
793 'asin', |
|
794 'assigning', |
|
795 'atan', |
|
796 'attributes', |
|
797 'avg', |
|
798 |
|
799 'backward', |
|
800 'between', |
|
801 'bit-and', |
|
802 'bit-not', |
|
803 'bit-or', |
|
804 'bit-set', |
|
805 'bit-xor', |
|
806 'boolc', |
|
807 'boolx', |
|
808 'bound', |
|
809 'bt', |
|
810 'blocks', |
|
811 'bounds', |
|
812 'boxed', |
|
813 'by', |
|
814 'byte-ca', |
|
815 'byte-cn', |
|
816 'byte-co', |
|
817 'byte-cs', |
|
818 'byte-na', |
|
819 'byte-ns', |
|
820 |
|
821 'ca', |
|
822 'calling', |
|
823 'casting', |
|
824 'ceil', |
|
825 'center', |
|
826 'centered', |
|
827 'changing', |
|
828 'char_off', |
|
829 'charlen', |
|
830 'circular', |
|
831 'class_constructor', |
|
832 'client', |
|
833 'clike', |
|
834 'close', |
|
835 'cmax', |
|
836 'cmin', |
|
837 'cn', |
|
838 'cnt', |
|
839 'co', |
|
840 'col_background', |
|
841 'col_group', |
|
842 'col_heading', |
|
843 'col_key', |
|
844 'col_negative', |
|
845 'col_normal', |
|
846 'col_positive', |
|
847 'col_total', |
|
848 'color', |
|
849 'column', |
|
850 'comment', |
|
851 'comparing', |
|
852 'components', |
|
853 'condition', |
|
854 'context', |
|
855 'copies', |
|
856 'count', |
|
857 'country', |
|
858 'cpi', |
|
859 'creating', |
|
860 'critical', |
|
861 'concat_lines_of', |
|
862 'cos', |
|
863 'cosh', |
|
864 'count_any_not_of', |
|
865 'count_any_of', |
|
866 'cp', |
|
867 'cs', |
|
868 'csequence', |
|
869 'currency', |
|
870 'current', |
|
871 'cx_static_check', |
|
872 'cx_root', |
|
873 'cx_dynamic_check', |
|
874 |
|
875 'dangerous', |
|
876 'database', |
|
877 'datainfo', |
|
878 'date', |
|
879 'dbmaxlen', |
|
880 'dd/mm/yy', |
|
881 'dd/mm/yyyy', |
|
882 'ddmmyy', |
|
883 'deallocate', |
|
884 'decfloat', |
|
885 'decfloat16', |
|
886 'decfloat34', |
|
887 'decimals', |
|
888 'default', |
|
889 'deferred', |
|
890 'definition', |
|
891 'department', |
|
892 'descending', |
|
893 'destination', |
|
894 'disconnect', |
|
895 'display-mode', |
|
896 'distance', |
|
897 'distinct', |
|
898 'div', |
|
899 'dummy', |
|
900 |
|
901 'encoding', |
|
902 'end-lines', |
|
903 'engineering', |
|
904 'environment', |
|
905 'eq', |
|
906 'equiv', |
|
907 'error_message', |
|
908 'errormessage', |
|
909 'escape', |
|
910 'exact', |
|
911 'exception-table', |
|
912 'exceptions', |
|
913 'exclude', |
|
914 'excluding', |
|
915 'exists', |
|
916 'exp', |
|
917 'exponent', |
|
918 'exporting', |
|
919 'extended_monetary', |
|
920 |
|
921 'field', |
|
922 'filter-table', |
|
923 'filters', |
|
924 'filter', |
|
925 'final', |
|
926 'find_any_not_of', |
|
927 'find_any_of', |
|
928 'find_end', |
|
929 'floor', |
|
930 'first-line', |
|
931 'font', |
|
932 'forward', |
|
933 'for', |
|
934 'frac', |
|
935 'from_mixed', |
|
936 'friends', |
|
937 'from', |
|
938 |
|
939 'giving', |
|
940 'ge', |
|
941 'gt', |
|
942 |
|
943 'handle', |
|
944 'harmless', |
|
945 'having', |
|
946 'head-lines', |
|
947 'help-id', |
|
948 'help-request', |
|
949 'high', |
|
950 'hold', |
|
951 'hotspot', |
|
952 |
|
953 'id', |
|
954 'ids', |
|
955 'immediately', |
|
956 'implementation', |
|
957 'importing', |
|
958 'in', |
|
959 'initial', |
|
960 'incl', |
|
961 'including', |
|
962 'increment', |
|
963 'index', |
|
964 'index-line', |
|
965 'inner', |
|
966 'inout', |
|
967 'intensified', |
|
968 'into', |
|
969 'inverse', |
|
970 'is', |
|
971 'iso', |
|
972 |
|
973 'join', |
|
974 |
|
975 'key', |
|
976 'kind', |
|
977 |
|
978 'log10', |
|
979 'language', |
|
980 'late', |
|
981 'layout', |
|
982 'le', |
|
983 'lt', |
|
984 'left-justified', |
|
985 'leftplus', |
|
986 'leftspace', |
|
987 'left', |
|
988 'length', |
|
989 'level', |
|
990 'like', |
|
991 'line-count', |
|
992 'line-size', |
|
993 'lines', |
|
994 'line', |
|
995 'load', |
|
996 'long', |
|
997 'lower', |
|
998 'low', |
|
999 'lpi', |
|
1000 |
|
1001 'matches', |
|
1002 'match', |
|
1003 'mail', |
|
1004 'major-id', |
|
1005 'max', |
|
1006 'medium', |
|
1007 'memory', |
|
1008 'message-id', |
|
1009 'module', |
|
1010 'minor-id', |
|
1011 'min', |
|
1012 'mm/dd/yyyy', |
|
1013 'mm/dd/yy', |
|
1014 'mmddyy', |
|
1015 'mode', |
|
1016 'modifier', |
|
1017 'mod', |
|
1018 'monetary', |
|
1019 |
|
1020 'name', |
|
1021 'nb', |
|
1022 'ne', |
|
1023 'next', |
|
1024 'no-display', |
|
1025 'no-extension', |
|
1026 'no-gap', |
|
1027 'no-gaps', |
|
1028 'no-grouping', |
|
1029 'no-heading', |
|
1030 'no-scrolling', |
|
1031 'no-sign', |
|
1032 'no-title', |
|
1033 'no-topofpage', |
|
1034 'no-zero', |
|
1035 'nodes', |
|
1036 'non-unicode', |
|
1037 'no', |
|
1038 'number', |
|
1039 'nmax', |
|
1040 'nmin', |
|
1041 'not', |
|
1042 'null', |
|
1043 'numeric', |
|
1044 'numofchar', |
|
1045 |
|
1046 'o', |
|
1047 'objects', |
|
1048 'obligatory', |
|
1049 'occurs', |
|
1050 'offset', |
|
1051 'off', |
|
1052 'of', |
|
1053 'only', |
|
1054 'open', |
|
1055 'option', |
|
1056 'optional', |
|
1057 'options', |
|
1058 'output-length', |
|
1059 'output', |
|
1060 'out', |
|
1061 'on change of', |
|
1062 'or', |
|
1063 'others', |
|
1064 |
|
1065 'pad', |
|
1066 'page', |
|
1067 'pages', |
|
1068 'parameter-table', |
|
1069 'part', |
|
1070 'performing', |
|
1071 'pos_high', |
|
1072 'pos_low', |
|
1073 'priority', |
|
1074 'public', |
|
1075 'pushbutton', |
|
1076 |
|
1077 'queue-only', |
|
1078 'quickinfo', |
|
1079 |
|
1080 'raising', |
|
1081 'range', |
|
1082 'read-only', |
|
1083 'received', |
|
1084 'receiver', |
|
1085 'receiving', |
|
1086 'redefinition', |
|
1087 'reference', |
|
1088 'regex', |
|
1089 'replacing', |
|
1090 'reset', |
|
1091 'responsible', |
|
1092 'result', |
|
1093 'results', |
|
1094 'resumable', |
|
1095 'returncode', |
|
1096 'returning', |
|
1097 'right', |
|
1098 'right-specified', |
|
1099 'rightplus', |
|
1100 'rightspace', |
|
1101 'round', |
|
1102 'rows', |
|
1103 'repeat', |
|
1104 'requested', |
|
1105 'rescale', |
|
1106 'reverse', |
|
1107 |
|
1108 'scale_preserving', |
|
1109 'scale_preserving_scientific', |
|
1110 'scientific', |
|
1111 'scientific_with_leading_zero', |
|
1112 'screen', |
|
1113 'scrolling', |
|
1114 'seconds', |
|
1115 'segment', |
|
1116 'shift_left', |
|
1117 'shift_right', |
|
1118 'sign', |
|
1119 'simple', |
|
1120 'sin', |
|
1121 'sinh', |
|
1122 'short', |
|
1123 'shortdump-id', |
|
1124 'sign_as_postfix', |
|
1125 'single', |
|
1126 'size', |
|
1127 'some', |
|
1128 'source', |
|
1129 'space', |
|
1130 'spots', |
|
1131 'stable', |
|
1132 'state', |
|
1133 'static', |
|
1134 'statusinfo', |
|
1135 'sqrt', |
|
1136 'string', |
|
1137 'strlen', |
|
1138 'structure', |
|
1139 'style', |
|
1140 'subkey', |
|
1141 'submatches', |
|
1142 'substring', |
|
1143 'substring_after', |
|
1144 'substring_before', |
|
1145 'substring_from', |
|
1146 'substring_to', |
|
1147 'super', |
|
1148 'supplied', |
|
1149 'switch', |
|
1150 |
|
1151 'tan', |
|
1152 'tanh', |
|
1153 'table_line', |
|
1154 'table', |
|
1155 'tab', |
|
1156 'then', |
|
1157 'timestamp', |
|
1158 'times', |
|
1159 'time', |
|
1160 'timezone', |
|
1161 'title-lines', |
|
1162 'title', |
|
1163 'top-lines', |
|
1164 'to', |
|
1165 'to_lower', |
|
1166 'to_mixed', |
|
1167 'to_upper', |
|
1168 'trace-file', |
|
1169 'trace-table', |
|
1170 'transporting', |
|
1171 'trunc', |
|
1172 'type', |
|
1173 |
|
1174 'under', |
|
1175 'unique', |
|
1176 'unit', |
|
1177 'user-command', |
|
1178 'using', |
|
1179 'utf-8', |
|
1180 |
|
1181 'valid', |
|
1182 'value', |
|
1183 'value-request', |
|
1184 'values', |
|
1185 'vary', |
|
1186 'varying', |
|
1187 'version', |
|
1188 |
|
1189 'warning', |
|
1190 'where', |
|
1191 'width', |
|
1192 'with', |
|
1193 'word', |
|
1194 'with-heading', |
|
1195 'with-title', |
|
1196 |
|
1197 'xsequence', |
|
1198 'xstring', |
|
1199 'xstrlen', |
|
1200 |
|
1201 'yes', |
|
1202 'yymmdd', |
|
1203 |
|
1204 'z', |
|
1205 'zero' |
|
1206 |
|
1207 ), |
|
1208 |
|
1209 //********************************************************** |
|
1210 // screen statements |
|
1211 //********************************************************** |
|
1212 |
|
1213 5 => array( |
|
1214 'call subscreen', |
|
1215 'chain', |
|
1216 'endchain', |
|
1217 'on chain-input', |
|
1218 'on chain-request', |
|
1219 'on help-request', |
|
1220 'on input', |
|
1221 'on request', |
|
1222 'on value-request', |
|
1223 'process' |
|
1224 ), |
|
1225 |
|
1226 //********************************************************** |
|
1227 // internal statements |
|
1228 //********************************************************** |
|
1229 |
|
1230 6 => array( |
|
1231 'generate dynpro', |
|
1232 'generate report', |
|
1233 'import dynpro', |
|
1234 'import nametab', |
|
1235 'include methods', |
|
1236 'load report', |
|
1237 'scan abap-source', |
|
1238 'scan and check abap-source', |
|
1239 'syntax-check for dynpro', |
|
1240 'syntax-check for program', |
|
1241 'syntax-trace', |
|
1242 'system-call', |
|
1243 'system-exit', |
|
1244 'verification-message' |
|
1245 ), |
|
1246 |
|
1247 //********************************************************** |
|
1248 // Control statements |
|
1249 //********************************************************** |
|
1250 |
48 1 => array( |
1251 1 => array( |
49 'if', 'return', 'while', 'case', 'default', |
1252 'assert', |
50 'do', 'else', 'for', 'endif', 'elseif', 'eq', |
1253 'case', |
51 'not', 'and' |
1254 'catch', |
52 ), |
1255 'check', |
|
1256 'cleanup', |
|
1257 'continue', |
|
1258 'do', |
|
1259 'else', |
|
1260 'elseif', |
|
1261 'endat', |
|
1262 'endcase', |
|
1263 'endcatch', |
|
1264 'endif', |
|
1265 'enddo', |
|
1266 'endloop', |
|
1267 'endtry', |
|
1268 'endwhile', |
|
1269 'exit', |
|
1270 'if', |
|
1271 'loop', |
|
1272 'resume', |
|
1273 'retry', |
|
1274 'return', |
|
1275 'stop', |
|
1276 'try', |
|
1277 'when', |
|
1278 'while' |
|
1279 |
|
1280 ), |
|
1281 |
|
1282 //********************************************************** |
|
1283 // variable declaration statements |
|
1284 //********************************************************** |
|
1285 |
53 2 => array( |
1286 2 => array( |
54 'data', 'types', 'seletion-screen', 'parameters', 'field-symbols', 'extern', 'inline' |
1287 'class-data', |
55 ), |
1288 'controls', |
56 3 => array( |
1289 'constants', |
57 'report', 'write', 'append', 'select', 'endselect', 'call method', 'call function', |
1290 'data', |
58 'loop', 'endloop', 'raise', 'read table', 'concatenate', 'split', 'shift', |
1291 'field-symbols', |
59 'condense', 'describe', 'clear', 'endfunction', 'assign', 'create data', 'translate', |
1292 'fields', |
60 'continue', 'start-of-selection', 'at selection-screen', 'modify', 'call screen', |
1293 'local', |
61 'create object', 'perform', 'form', 'endform', |
1294 'parameters', |
62 'reuse_alv_block_list_init', 'zbcialv', 'include' |
1295 'ranges', |
63 ), |
1296 'select-options', |
64 4 => array( |
1297 'statics', |
65 'type ref to', 'type', 'begin of', 'end of', 'like', 'into', |
1298 'tables', |
66 'from', 'where', 'order by', 'with key', 'string', 'separated by', |
1299 'type-pools', |
67 'exporting', 'importing', 'to upper case', 'to', 'exceptions', 'tables', |
1300 'types' |
68 'using', 'changing' |
1301 ) |
69 ), |
|
70 ), |
1302 ), |
71 'SYMBOLS' => array( |
1303 'SYMBOLS' => array( |
72 '(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':' |
1304 0 => array( |
|
1305 '->*', '->', '=>', |
|
1306 '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', '.' |
|
1307 ), |
|
1308 1 => array( |
|
1309 '>=', '<=', '<', '>', '=' |
|
1310 ), |
|
1311 2 => array( |
|
1312 '?=' |
|
1313 ) |
73 ), |
1314 ), |
74 'CASE_SENSITIVE' => array( |
1315 'CASE_SENSITIVE' => array( |
75 GESHI_COMMENTS => false, |
1316 GESHI_COMMENTS => false, |
76 1 => false, |
1317 1 => false, |
77 2 => false, |
1318 2 => false, |
78 3 => false, |
1319 3 => false, |
79 4 => false, |
1320 4 => false, |
|
1321 5 => false, |
|
1322 6 => false, |
|
1323 7 => false, |
|
1324 8 => false, |
|
1325 9 => false, |
80 ), |
1326 ), |
81 'STYLES' => array( |
1327 'STYLES' => array( |
82 'KEYWORDS' => array( |
1328 'KEYWORDS' => array( |
83 1 => 'color: #b1b100;', |
1329 1 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', //control statements |
84 2 => 'color: #000000; font-weight: bold;', |
1330 2 => 'color: #cc4050; text-transform: uppercase; font-weight: bold; zzz:data;', //data statements |
85 3 => 'color: #000066;', |
1331 3 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', //first token of other statements |
86 4 => 'color: #993333;' |
1332 4 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords") |
|
1333 5 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', |
|
1334 6 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', |
|
1335 7 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', |
|
1336 8 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', |
|
1337 9 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;' |
87 ), |
1338 ), |
88 'COMMENTS' => array( |
1339 'COMMENTS' => array( |
89 1 => 'color: #808080; font-style: italic;', |
1340 1 => 'color: #808080; font-style: italic;', |
90 2 => 'color: #339933;', |
1341 2 => 'color: #339933;', |
91 'MULTI' => 'color: #808080; font-style: italic;' |
1342 'MULTI' => 'color: #808080; font-style: italic;' |
92 ), |
1343 ), |
93 'ESCAPE_CHAR' => array( |
1344 'ESCAPE_CHAR' => array( |
94 0 => 'color: #000099; font-weight: bold;' |
1345 0 => 'color: #000099; font-weight: bold;' |
95 ), |
1346 ), |
96 'BRACKETS' => array( |
1347 'BRACKETS' => array( |
97 0 => 'color: #66cc66;' |
1348 0 => 'color: #808080;' |
98 ), |
1349 ), |
99 'STRINGS' => array( |
1350 'STRINGS' => array( |
100 0 => 'color: #ff0000;' |
1351 0 => 'color: #4da619;' |
101 ), |
1352 ), |
102 'NUMBERS' => array( |
1353 'NUMBERS' => array( |
103 0 => 'color: #cc66cc;' |
1354 0 => 'color: #3399ff;' |
104 ), |
1355 ), |
105 'METHODS' => array( |
1356 'METHODS' => array( |
106 1 => 'color: #202020;', |
1357 1 => 'color: #202020;', |
107 2 => 'color: #202020;' |
1358 2 => 'color: #202020;' |
108 ), |
1359 ), |
109 'SYMBOLS' => array( |
1360 'SYMBOLS' => array( |
110 0 => 'color: #66cc66;' |
1361 0 => 'color: #808080;', |
|
1362 1 => 'color: #800080;', |
|
1363 2 => 'color: #0000ff;' |
111 ), |
1364 ), |
112 'REGEXPS' => array( |
1365 'REGEXPS' => array( |
113 ), |
1366 ), |
114 'SCRIPT' => array( |
1367 'SCRIPT' => array( |
115 ) |
1368 ) |
116 ), |
1369 ), |
117 'URLS' => array( |
1370 'URLS' => array( |
118 1 => '', |
1371 1 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
119 2 => '', |
1372 2 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
120 3 => 'http://sap4.com/wiki/index.php?title={FNAMEL}', |
1373 3 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
121 4 => '' |
1374 4 => '', |
|
1375 5 => '', |
|
1376 6 => '', |
|
1377 7 => '', |
|
1378 8 => '', |
|
1379 9 => '' |
122 ), |
1380 ), |
123 'OOLANG' => true, |
1381 'OOLANG' => true, |
124 'OBJECT_SPLITTERS' => array( |
1382 'OBJECT_SPLITTERS' => array( |
125 1 => '.', |
1383 1 => '->', |
126 2 => '::' |
1384 2 => '=>' |
127 ), |
1385 ), |
128 'REGEXPS' => array( |
1386 'REGEXPS' => array( |
129 ), |
1387 ), |
130 'STRICT_MODE_APPLIES' => GESHI_NEVER, |
1388 'STRICT_MODE_APPLIES' => GESHI_NEVER, |
131 'SCRIPT_DELIMITERS' => array( |
1389 'SCRIPT_DELIMITERS' => array( |
132 ), |
1390 ), |
133 'HIGHLIGHT_STRICT_BLOCK' => array( |
1391 'HIGHLIGHT_STRICT_BLOCK' => array( |
134 ) |
1392 ), |
|
1393 'PARSER_CONTROL' => array( |
|
1394 'KEYWORDS' => array( |
|
1395 7 => array( |
|
1396 'SPACE_AS_WHITESPACE' => true |
|
1397 ), |
|
1398 8 => array( |
|
1399 'SPACE_AS_WHITESPACE' => true |
|
1400 ), |
|
1401 9 => array( |
|
1402 'SPACE_AS_WHITESPACE' => true |
|
1403 ) |
|
1404 ) |
|
1405 ), |
|
1406 'TAB_WIDTH' => 4 |
135 ); |
1407 ); |
136 |
1408 |
137 ?> |
1409 ?> |