Rev 1 |
|
Rev 3 |
Line 1... |
|
Line 1... |
<?php |
|
<?php |
/************************************************************************************* |
|
/************************************************************************************* |
* abap.php |
|
* abap.php |
* -------- |
|
* -------- |
* Author: Andres Picazo (andres@andrespicazo.com) |
|
* Author: Andres Picazo (andres@andrespicazo.com) |
|
|
* Contributors: |
|
|
* - Sandra Rossi (sandra.rossi@gmail.com) |
|
|
* - Jacob Laursen (jlu@kmd.dk) |
* Copyright: (c) 2007 Andres Picazo |
|
* Copyright: (c) 2007 Andres Picazo |
* Release Version: 1.0.8.1 |
|
* Release Version: 1.0.8.3 |
* Date Started: 2004/06/04 |
|
* Date Started: 2004/06/04 |
* |
|
* |
* ABAP language file for GeSHi. |
|
* ABAP language file for GeSHi. |
|
|
* |
|
|
* Reference abap language documentation (abap 7.1) : http://help.sap.com/abapdocu/en/ABENABAP_INDEX.htm |
|
|
* |
|
|
* ABAP syntax is highly complex, several problems could not be addressed, see TODO below if you dare ;-) |
|
|
* Be aware that in ABAP language, keywords may be composed of several tokens, |
|
|
* separated by one or more spaces or carriage returns |
|
|
* (for example CONCATENATE 'hello' 'world' INTO string SEPARATED BY ' ') |
|
|
* it's why we must decode them with REGEXPS. As there are many keywords with several tokens, |
|
|
* I had to create a separate section in the code to simplify the reading. |
|
|
* Be aware that some words may be highlighted several times like for "ref to data", which is first |
|
|
* highlighted for "ref to data", then secondly for "ref to". It is very important to |
|
|
* position "ref to" after "ref to data" otherwise "data" wouldn't be highlighted because |
|
|
* of the previous highlight. |
|
|
* Styles used : keywords are all displayed in upper case, and they are organized into 4 categories : |
|
|
* 1) control statements (blue), 2) declarative statements (red-maroon), |
|
|
* 3) other statements (blue-green), 4) keywords (violet). |
|
|
* + GeSHi : literals (red) + symbols (green) + methods/attributes (mauve) |
|
|
* + unchanged style for other words. |
|
|
* Control, declarative and other statements are assigned URLs to sap documentation website: |
|
|
* http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm |
* |
|
* |
* CHANGES |
|
* CHANGES |
* ------- |
|
* ------- |
|
|
* 2009/02/25 (1.0.8.3) |
|
|
* - Some more rework of the language file |
|
|
* 2009/01/04 (1.0.8.2) |
|
|
* - Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi) |
* 2007/06/27 (1.0.0) |
|
* 2007/06/27 (1.0.0) |
* - First Release |
|
* - First Release |
* |
|
* |
* TODO |
|
* TODO |
* ---- |
|
* ---- |
|
|
* - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data |
|
|
* style, but should be ignored. Same problem for all words!!! This is quite impossible to |
|
|
* solve it as we should define syntaxes of all statements (huge effort!) and use a lex |
|
|
* or something like that instead of regexp I guess. |
|
|
* - Some words are considered as being statement names (report, tables, etc.) though they |
|
|
* are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was |
|
|
* arbitrary decided to define them as statement instead of keyword, because it may be |
|
|
* useful to have the URL to SAP help for some of them. |
|
|
* - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY), |
|
|
* it is not considered as a keyword, but it should! |
|
|
* - for statements like "READ DATASET", GeSHi does not allow to set URLs because these |
|
|
* statements are determined by REGEXPS. For "READ DATASET", the URL should be |
|
|
* ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs |
|
|
* are sometimes not valid because the URL does not exist. For example, for "AT NEW" |
|
|
* statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm). |
|
|
* There are many other exceptions. |
|
|
* Note: for adding this functionality within your php program, you can execute this code: |
|
|
* function add_urls_to_multi_tokens( $matches ) { |
|
|
* $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] ); |
|
|
* if( $url == $matches[3] ) return $matches[0] ; |
|
|
* else return $matches[1]."<a href=\"http://help.sap.com/abapdocu/en/ABAP".strtoupper($url).".htm\">".$matches[3]."</a>".$matches[4]; |
|
|
* } |
|
|
* $html = $geshi->parse_code(); |
|
|
* $html = preg_replace_callback( "ÂŁ(zzz:(control|statement|data);\">)(.+?)(</span>)ÂŁs", "add_urls_to_multi_tokens", $html ); |
|
|
* echo $html; |
|
|
* - Numbers followed by a dot terminating the statement are not properly recognized |
* |
|
* |
************************************************************************************* |
|
************************************************************************************* |
* |
|
* |
* This file is part of GeSHi. |
|
* This file is part of GeSHi. |
* |
|
* |
Line 35... |
|
Line 88... |
* along with GeSHi; if not, write to the Free Software |
|
* along with GeSHi; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* |
|
* |
************************************************************************************/ |
|
************************************************************************************/ |
|
|
|
$language_data = array ( |
|
$language_data = array( |
'LANG_NAME' => 'ABAP', |
|
'LANG_NAME' => 'ABAP', |
'COMMENT_SINGLE' => array(1 => '"', 2 => '*'), |
|
'COMMENT_SINGLE' => array( |
|
|
1 => '"' |
|
|
), |
'COMMENT_MULTI' => array(), |
|
'COMMENT_MULTI' => array(), |
|
|
'COMMENT_REGEXP' => array( |
|
|
// lines beginning with star at 1st position are comments |
|
|
// (star anywhere else is not a comment, especially be careful with |
|
|
// "assign dref->* to <fs>" statement) |
|
|
2 => '/^\*.*?$/m' |
|
|
), |
'CASE_KEYWORDS' => 0, |
|
'CASE_KEYWORDS' => 0, |
'QUOTEMARKS' => array("'"), |
|
'QUOTEMARKS' => array( |
|
|
1 => "'", |
|
|
2 => "`" |
|
|
), |
'ESCAPE_CHAR' => '', |
|
'ESCAPE_CHAR' => '', |
|
|
|
'KEYWORDS' => array( |
|
'KEYWORDS' => array( |
1 => array( |
|
//*********************************************** |
'if', 'return', 'while', 'case', 'default', |
|
// Section 2 : process sequences of several tokens |
'do', 'else', 'for', 'endif', 'elseif', 'eq', |
|
//*********************************************** |
'not', 'and' |
|
|
|
|
7 => array( |
|
|
'at new', |
|
|
'at end of', |
|
|
'at first', |
|
|
'at last', |
|
|
'loop at', |
|
|
'loop at screen', |
), |
|
), |
2 => array( |
|
|
'data', 'types', 'seletion-screen', 'parameters', 'field-symbols', 'extern', 'inline' |
|
8 => array( |
|
|
'private section', |
|
|
'protected section', |
|
|
'public section', |
|
|
'at line-selection', |
|
|
'at selection-screen', |
|
|
'at user-command', |
|
|
'assign component', |
|
|
'assign table field', |
|
|
'call badi', |
|
|
'call customer-function', |
|
|
'call customer subscreen', |
|
|
'call dialog', |
|
|
'call function', |
|
|
'call method', |
|
|
'call screen', |
|
|
'call selection-screen', |
|
|
'call transaction', |
|
|
'call transformation', |
|
|
'close cursor', |
|
|
'close dataset', |
|
|
'commit work', |
|
|
'convert date', |
|
|
'convert text', |
|
|
'convert time stamp', |
|
|
'create data', |
|
|
'create object', |
|
|
'delete dataset', |
|
|
'delete from', |
|
|
'describe distance', |
|
|
'describe field', |
|
|
'describe list', |
|
|
'describe table', |
|
|
'exec sql', |
|
|
'exit from sql', |
|
|
'exit from step-loop', |
|
|
'export dynpro', |
|
|
'export nametab', |
|
|
'free memory', |
|
|
'generate subroutine-pool', |
|
|
'get badi', |
|
|
'get bit', |
|
|
'get cursor', |
|
|
'get dataset', |
|
|
'get locale', |
|
|
'get parameter', |
|
|
'get pf-status', |
|
|
'get property', |
|
|
'get reference', |
|
|
'get run time', |
|
|
'get time', |
|
|
'get time stamp', |
|
|
'import directory', |
|
|
'insert report', |
|
|
'insert text-pool', |
|
|
'leave list-processing', |
|
|
'leave program', |
|
|
'leave screen', |
|
|
'leave to list-processing', |
|
|
'leave to transaction', |
|
|
'modify line', |
|
|
'modify screen', |
|
|
'move percentage', |
|
|
'open cursor', |
|
|
'open dataset', |
|
|
'raise event', |
|
|
'raise exception', |
|
|
'read dataset', |
|
|
'read line', |
|
|
'read report', |
|
|
'read table', |
|
|
'read textpool', |
|
|
'receive results from function', |
|
|
'refresh control', |
|
|
'rollback work', |
|
|
'set bit', |
|
|
'set blank lines', |
|
|
'set country', |
|
|
'set cursor', |
|
|
'set dataset', |
|
|
'set extended check', |
|
|
'set handler', |
|
|
'set hold data', |
|
|
'set language', |
|
|
'set left scroll-boundary', |
|
|
'set locale', |
|
|
'set margin', |
|
|
'set parameter', |
|
|
'set pf-status', |
|
|
'set property', |
|
|
'set run time analyzer', |
|
|
'set run time clock', |
|
|
'set screen', |
|
|
'set titlebar', |
|
|
'set update task', |
|
|
'set user-command', |
|
|
'suppress dialog', |
|
|
'truncate dataset', |
|
|
'wait until', |
|
|
'wait up to', |
), |
|
), |
|
|
|
|
|
9 => array( |
|
|
'accepting duplicate keys', |
|
|
'accepting padding', |
|
|
'accepting truncation', |
|
|
'according to', |
|
|
'actual length', |
|
|
'adjacent duplicates', |
|
|
'after input', |
|
|
'all blob columns', |
|
|
'all clob columns', |
|
|
'all fields', |
|
|
'all methods', |
|
|
'all other columns', |
|
|
'and mark', |
|
|
'and return to screen', |
|
|
'and return', |
|
|
'and skip first screen', |
|
|
'and wait', |
|
|
'any table', |
|
|
'appendage type', |
|
|
'archive mode', |
|
|
'archiving parameters', |
|
|
'area handle', |
|
|
'as checkbox', |
|
|
'as icon', |
|
|
'as line', |
|
|
'as listbox', |
|
|
'as person table', |
|
|
'as search patterns', |
|
|
'as separate unit', |
|
|
'as subscreen', |
|
|
'as symbol', |
|
|
'as text', |
|
|
'as window', |
|
|
'at cursor-selection', |
|
|
'at exit-command', |
|
|
'at next application statement', |
|
|
'at position', |
|
|
|
|
|
'backup into', |
|
|
'before output', |
|
|
'before unwind', |
|
|
'begin of block', |
|
|
'begin of common part', |
|
|
'begin of line', |
|
|
'begin of screen', |
|
|
'begin of tabbed block', |
|
|
'begin of version', |
|
|
'begin of', |
|
|
'big endian', |
|
|
'binary mode', |
|
|
'binary search', |
|
|
'by kernel module', |
|
|
'bypassing buffer', |
|
|
|
|
|
'client specified', |
|
|
'code page', |
|
|
'code page hint', |
|
|
'code page into', |
|
|
'color black', |
|
|
'color blue', |
|
|
'color green', |
|
|
'color pink', |
|
|
'color red', |
|
|
'color yellow', |
|
|
'compression off', |
|
|
'compression on', |
|
|
'connect to', |
|
|
'corresponding fields of table', |
|
|
'corresponding fields of', |
|
|
'cover page', |
|
|
'cover text', |
|
|
'create package', |
|
|
'create private', |
|
|
'create protected', |
|
|
'create public', |
|
|
'current position', |
|
|
|
|
|
'data buffer', |
|
|
'data values', |
|
|
'dataset expiration', |
|
|
'daylight saving time', |
|
|
'default key', |
|
|
'default program', |
|
|
'default screen', |
|
|
'defining database', |
|
|
'deleting leading', |
|
|
'deleting trailing', |
|
|
'directory entry', |
|
|
'display like', |
|
|
'display offset', |
|
|
'during line-selection', |
|
|
'dynamic selections', |
|
|
|
|
|
'edit mask', |
|
|
'end of block', |
|
|
'end of common part', |
|
|
'end of file', |
|
|
'end of line', |
|
|
'end of screen', |
|
|
'end of tabbed block', |
|
|
'end of version', |
|
|
'end of', |
|
|
'endian into', |
|
|
'ending at', |
|
|
'enhancement options into', |
|
|
'enhancement into', |
|
|
'environment time format', |
|
|
'execute procedure', |
|
|
'exporting list to memory', |
|
|
'extension type', |
|
|
|
|
|
'field format', |
|
|
'field selection', |
|
|
'field value into', |
|
|
'final methods', |
|
|
'first occurrence of', |
|
|
'fixed-point arithmetic', |
|
|
'for all entries', |
|
|
'for all instances', |
|
|
'for appending', |
|
|
'for columns', |
|
|
'for event of', |
|
|
'for field', |
|
|
'for high', |
|
|
'for input', |
|
|
'for lines', |
|
|
'for low', |
|
|
'for node', |
|
|
'for output', |
|
|
'for select', |
|
|
'for table', |
|
|
'for testing', |
|
|
'for update', |
|
|
'for user', |
|
|
'frame entry', |
|
|
'frame program from', |
|
|
'from code page', |
|
|
'from context', |
|
|
'from database', |
|
|
'from logfile id', |
|
|
'from number format', |
|
|
'from screen', |
|
|
'from table', |
|
|
'function key', |
|
|
|
|
|
'get connection', |
|
|
'global friends', |
|
|
'group by', |
|
|
|
|
|
'hashed table of', |
|
|
'hashed table', |
|
|
|
|
|
'if found', |
|
|
'ignoring case', |
|
|
'ignoring conversion errors', |
|
|
'ignoring structure boundaries', |
|
|
'implementations from', |
|
|
'in background', |
|
|
'in background task', |
|
|
'in background unit', |
|
|
'in binary mode', |
|
|
'in byte mode', |
|
|
'in char-to-hex mode', |
|
|
'in character mode', |
|
|
'in group', |
|
|
'in legacy binary mode', |
|
|
'in legacy text mode', |
|
|
'in program', |
|
|
'in remote task', |
|
|
'in text mode', |
|
|
'in table', |
|
|
'in update task', |
|
|
'include bound', |
|
|
'include into', |
|
|
'include program from', |
|
|
'include structure', |
|
|
'include type', |
|
|
'including gaps', |
|
|
'index table', |
|
|
'inheriting from', |
|
|
'init destination', |
|
|
'initial line of', |
|
|
'initial line', |
|
|
'initial size', |
|
|
'internal table', |
|
|
'into sortable code', |
|
|
|
|
|
'keep in spool', |
|
|
'keeping directory entry', |
|
|
'keeping logical unit of work', |
|
|
'keeping task', |
|
|
'keywords from', |
|
|
|
|
|
'left margin', |
|
|
'left outer', |
|
|
'levels into', |
|
|
'line format', |
|
|
'line into', |
|
|
'line of', |
|
|
'line page', |
|
|
'line value from', |
|
|
'line value into', |
|
|
'lines of', |
|
|
'list authority', |
|
|
'list dataset', |
|
|
'list name', |
|
|
'little endian', |
|
|
'lob handle for', |
|
|
'local friends', |
|
|
'locator for', |
|
|
'lower case', |
|
|
|
|
|
'main table field', |
|
|
'match count', |
|
|
'match length', |
|
|
'match line', |
|
|
'match offset', |
|
|
'matchcode object', |
|
|
'maximum length', |
|
|
'maximum width into', |
|
|
'memory id', |
|
|
'message into', |
|
|
'messages into', |
|
|
'modif id', |
|
|
|
|
|
'nesting level', |
|
|
'new list identification', |
|
|
'next cursor', |
|
|
'no database selection', |
|
|
'no dialog', |
|
|
'no end of line', |
|
|
'no fields', |
|
|
'no flush', |
|
|
'no intervals', |
|
|
'no intervals off', |
|
|
'no standard page heading', |
|
|
'no-extension off', |
|
|
'non-unique key', |
|
|
'non-unique sorted key', |
|
|
'not at end of mode', |
|
|
'number of lines', |
|
|
'number of pages', |
|
|
|
|
|
'object key', |
|
|
'obligatory off', |
|
|
'of current page', |
|
|
'of page', |
|
|
'of program', |
|
|
'offset into', |
|
|
'on block', |
|
|
'on commit', |
|
|
'on end of task', |
|
|
'on end of', |
|
|
'on exit-command', |
|
|
'on help-request for', |
|
|
'on radiobutton group', |
|
|
'on rollback', |
|
|
'on value-request for', |
|
|
'open for package', |
|
|
'option class-coding', |
|
|
'option class', |
|
|
'option coding', |
|
|
'option expand', |
|
|
'option syncpoints', |
|
|
'options from', |
|
|
'order by', |
|
|
'overflow into', |
|
|
|
|
|
'package section', |
|
|
'package size', |
|
|
'preferred parameter', |
|
|
'preserving identifier escaping', |
|
|
'primary key', |
|
|
'print off', |
|
|
'print on', |
|
|
'program from', |
|
|
'program type', |
|
|
|
|
|
'radiobutton groups', |
|
|
'radiobutton group', |
|
|
'range of', |
|
|
'reader for', |
|
|
'receive buffer', |
|
|
'reduced functionality', |
|
|
'ref to data', |
|
|
'ref to object', |
|
|
'ref to', |
|
|
|
|
|
'reference into', |
|
|
'renaming with suffix', |
|
|
'replacement character', |
|
|
'replacement count', |
|
|
'replacement length', |
|
|
'replacement line', |
|
|
'replacement offset', |
|
|
'respecting blanks', |
|
|
'respecting case', |
|
|
'result into', |
|
|
'risk level', |
|
|
|
|
|
'sap cover page', |
|
|
'search fkeq', |
|
|
'search fkge', |
|
|
'search gkeq', |
|
|
'search gkge', |
|
|
'section of', |
|
|
'send buffer', |
|
|
'separated by', |
|
|
'shared buffer', |
|
|
'shared memory', |
|
|
'shared memory enabled', |
|
|
'skipping byte-order mark', |
|
|
'sorted by', |
|
|
'sorted table of', |
|
|
'sorted table', |
|
|
'spool parameters', |
|
|
'standard table of', |
|
|
'standard table', |
|
|
'starting at', |
|
|
'starting new task', |
|
|
'statements into', |
|
|
'structure default', |
|
|
'structures into', |
|
|
|
|
|
'table field', |
|
|
'table of', |
|
|
'text mode', |
|
|
'time stamp', |
|
|
'time zone', |
|
|
'to code page', |
|
|
'to column', |
|
|
'to context', |
|
|
'to first page', |
|
|
'to last page', |
|
|
'to last line', |
|
|
'to line', |
|
|
'to lower case', |
|
|
'to number format', |
|
|
'to page', |
|
|
'to sap spool', |
|
|
'to upper case', |
|
|
'tokens into', |
|
|
'transporting no fields', |
|
|
'type tableview', |
|
|
'type tabstrip', |
|
|
|
|
|
'unicode enabling', |
|
|
'up to', |
|
|
'upper case', |
|
|
'using edit mask', |
|
|
'using key', |
|
|
'using no edit mask', |
|
|
'using screen', |
|
|
'using selection-screen', |
|
|
'using selection-set', |
|
|
'using selection-sets of program', |
|
|
|
|
|
'valid between', |
|
|
'valid from', |
|
|
'value check', |
|
|
'via job', |
|
|
'via selection-screen', |
|
|
'visible length', |
|
|
|
|
|
'whenever found', |
|
|
'with analysis', |
|
|
'with byte-order mark', |
|
|
'with comments', |
|
|
'with current switchstates', |
|
|
'with explicit enhancements', |
|
|
'with frame', |
|
|
'with free selections', |
|
|
'with further secondary keys', |
|
|
'with header line', |
|
|
'with hold', |
|
|
'with implicit enhancements', |
|
|
'with inactive enhancements', |
|
|
'with includes', |
|
|
'with key', |
|
|
'with linefeed', |
|
|
'with list tokenization', |
|
|
'with native linefeed', |
|
|
'with non-unique key', |
|
|
'with null', |
|
|
'with pragmas', |
|
|
'with precompiled headers', |
|
|
'with selection-table', |
|
|
'with smart linefeed', |
|
|
'with table key', |
|
|
'with test code', |
|
|
'with type-pools', |
|
|
'with unique key', |
|
|
'with unix linefeed', |
|
|
'with windows linefeed', |
|
|
'without further secondary keys', |
|
|
'without selection-screen', |
|
|
'without spool dynpro', |
|
|
'without trmac', |
|
|
'word into', |
|
|
'writer for' |
|
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// Other abap statements |
|
|
//********************************************************** |
3 => array( |
|
3 => array( |
'report', 'write', 'append', 'select', 'endselect', 'call method', 'call function', |
|
'add', |
'loop', 'endloop', 'raise', 'read table', 'concatenate', 'split', 'shift', |
|
'add-corresponding', |
'condense', 'describe', 'clear', 'endfunction', 'assign', 'create data', 'translate', |
|
'aliases', |
'continue', 'start-of-selection', 'at selection-screen', 'modify', 'call screen', |
|
'append', |
'create object', 'perform', 'form', 'endform', |
|
'assign', |
'reuse_alv_block_list_init', 'zbcialv', 'include' |
|
'at', |
|
|
'authority-check', |
|
|
|
|
|
'break-point', |
|
|
|
|
|
'clear', |
|
|
'collect', |
|
|
'compute', |
|
|
'concatenate', |
|
|
'condense', |
|
|
'class', |
|
|
'class-events', |
|
|
'class-methods', |
|
|
'class-pool', |
|
|
|
|
|
'define', |
|
|
'delete', |
|
|
'demand', |
|
|
'detail', |
|
|
'divide', |
|
|
'divide-corresponding', |
|
|
|
|
|
'editor-call', |
|
|
'end-of-file', |
|
|
'end-enhancement-section', |
|
|
'end-of-definition', |
|
|
'end-of-page', |
|
|
'end-of-selection', |
|
|
'endclass', |
|
|
'endenhancement', |
|
|
'endexec', |
|
|
'endform', |
|
|
'endfunction', |
|
|
'endinterface', |
|
|
'endmethod', |
|
|
'endmodule', |
|
|
'endon', |
|
|
'endprovide', |
|
|
'endselect', |
|
|
'enhancement', |
|
|
'enhancement-point', |
|
|
'enhancement-section', |
|
|
'export', |
|
|
'extract', |
|
|
'events', |
|
|
|
|
|
'fetch', |
|
|
'field-groups', |
|
|
'find', |
|
|
'format', |
|
|
'form', |
|
|
'free', |
|
|
'function-pool', |
|
|
'function', |
|
|
|
|
|
'get', |
|
|
|
|
|
'hide', |
|
|
|
|
|
'import', |
|
|
'infotypes', |
|
|
'input', |
|
|
'insert', |
|
|
'include', |
|
|
'initialization', |
|
|
'interface', |
|
|
'interface-pool', |
|
|
'interfaces', |
|
|
|
|
|
'leave', |
|
|
'load-of-program', |
|
|
'log-point', |
|
|
|
|
|
'maximum', |
|
|
'message', |
|
|
'methods', |
|
|
'method', |
|
|
'minimum', |
|
|
'modify', |
|
|
'move', |
|
|
'move-corresponding', |
|
|
'multiply', |
|
|
'multiply-corresponding', |
|
|
|
|
|
'new-line', |
|
|
'new-page', |
|
|
'new-section', |
|
|
|
|
|
'overlay', |
|
|
|
|
|
'pack', |
|
|
'perform', |
|
|
'position', |
|
|
'print-control', |
|
|
'program', |
|
|
'provide', |
|
|
'put', |
|
|
|
|
|
'raise', |
|
|
'refresh', |
|
|
'reject', |
|
|
'replace', |
|
|
'report', |
|
|
'reserve', |
|
|
|
|
|
'scroll', |
|
|
'search', |
|
|
'select', |
|
|
'selection-screen', |
|
|
'shift', |
|
|
'skip', |
|
|
'sort', |
|
|
'split', |
|
|
'start-of-selection', |
|
|
'submit', |
|
|
'subtract', |
|
|
'subtract-corresponding', |
|
|
'sum', |
|
|
'summary', |
|
|
'summing', |
|
|
'supply', |
|
|
'syntax-check', |
|
|
|
|
|
'top-of-page', |
|
|
'transfer', |
|
|
'translate', |
|
|
'type-pool', |
|
|
|
|
|
'uline', |
|
|
'unpack', |
|
|
'update', |
|
|
|
|
|
'window', |
|
|
'write' |
|
|
|
), |
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// keywords |
|
|
//********************************************************** |
|
|
|
4 => array( |
|
4 => array( |
'type ref to', 'type', 'begin of', 'end of', 'like', 'into', |
|
'abbreviated', |
'from', 'where', 'order by', 'with key', 'string', 'separated by', |
|
'abstract', |
'exporting', 'importing', 'to upper case', 'to', 'exceptions', 'tables', |
|
'accept', |
'using', 'changing' |
|
'acos', |
|
|
'activation', |
|
|
'alias', |
|
|
'align', |
|
|
'all', |
|
|
'allocate', |
|
|
'and', |
|
|
'assigned', |
|
|
'any', |
|
|
'appending', |
|
|
'area', |
|
|
'as', |
|
|
'ascending', |
|
|
'asin', |
|
|
'assigning', |
|
|
'atan', |
|
|
'attributes', |
|
|
'avg', |
|
|
|
|
|
'backward', |
|
|
'between', |
|
|
'bit-and', |
|
|
'bit-not', |
|
|
'bit-or', |
|
|
'bit-set', |
|
|
'bit-xor', |
|
|
'boolc', |
|
|
'boolx', |
|
|
'bound', |
|
|
'bt', |
|
|
'blocks', |
|
|
'bounds', |
|
|
'boxed', |
|
|
'by', |
|
|
'byte-ca', |
|
|
'byte-cn', |
|
|
'byte-co', |
|
|
'byte-cs', |
|
|
'byte-na', |
|
|
'byte-ns', |
|
|
|
|
|
'c', |
|
|
'ca', |
|
|
'calling', |
|
|
'casting', |
|
|
'ceil', |
|
|
'center', |
|
|
'centered', |
|
|
'changing', |
|
|
'char_off', |
|
|
'charlen', |
|
|
'circular', |
|
|
'class_constructor', |
|
|
'client', |
|
|
'clike', |
|
|
'close', |
|
|
'cmax', |
|
|
'cmin', |
|
|
'cn', |
|
|
'cnt', |
|
|
'co', |
|
|
'col_background', |
|
|
'col_group', |
|
|
'col_heading', |
|
|
'col_key', |
|
|
'col_negative', |
|
|
'col_normal', |
|
|
'col_positive', |
|
|
'col_total', |
|
|
'color', |
|
|
'column', |
|
|
'comment', |
|
|
'comparing', |
|
|
'components', |
|
|
'condition', |
|
|
'constructor', |
|
|
'context', |
|
|
'copies', |
|
|
'count', |
|
|
'country', |
|
|
'cpi', |
|
|
'creating', |
|
|
'critical', |
|
|
'concat_lines_of', |
|
|
'cos', |
|
|
'cosh', |
|
|
'count_any_not_of', |
|
|
'count_any_of', |
|
|
'cp', |
|
|
'cs', |
|
|
'csequence', |
|
|
'currency', |
|
|
'current', |
|
|
'cx_static_check', |
|
|
'cx_root', |
|
|
'cx_dynamic_check', |
|
|
|
|
|
'd', |
|
|
'dangerous', |
|
|
'database', |
|
|
'datainfo', |
|
|
'date', |
|
|
'dbmaxlen', |
|
|
'dd/mm/yy', |
|
|
'dd/mm/yyyy', |
|
|
'ddmmyy', |
|
|
'deallocate', |
|
|
'decfloat', |
|
|
'decfloat16', |
|
|
'decfloat34', |
|
|
'decimals', |
|
|
'default', |
|
|
'deferred', |
|
|
'definition', |
|
|
'department', |
|
|
'descending', |
|
|
'destination', |
|
|
'disconnect', |
|
|
'display-mode', |
|
|
'distance', |
|
|
'distinct', |
|
|
'div', |
|
|
'dummy', |
|
|
|
|
|
'e', |
|
|
'encoding', |
|
|
'end-lines', |
|
|
'engineering', |
|
|
'environment', |
|
|
'eq', |
|
|
'equiv', |
|
|
'error_message', |
|
|
'errormessage', |
|
|
'escape', |
|
|
'exact', |
|
|
'exception-table', |
|
|
'exceptions', |
|
|
'exclude', |
|
|
'excluding', |
|
|
'exists', |
|
|
'exp', |
|
|
'exponent', |
|
|
'exporting', |
|
|
'extended_monetary', |
|
|
|
|
|
'field', |
|
|
'filter-table', |
|
|
'filters', |
|
|
'filter', |
|
|
'final', |
|
|
'find_any_not_of', |
|
|
'find_any_of', |
|
|
'find_end', |
|
|
'floor', |
|
|
'first-line', |
|
|
'font', |
|
|
'forward', |
|
|
'for', |
|
|
'frac', |
|
|
'from_mixed', |
|
|
'friends', |
|
|
'from', |
|
|
'f', |
|
|
|
|
|
'giving', |
|
|
'ge', |
|
|
'gt', |
|
|
|
|
|
'handle', |
|
|
'harmless', |
|
|
'having', |
|
|
'head-lines', |
|
|
'help-id', |
|
|
'help-request', |
|
|
'high', |
|
|
'hold', |
|
|
'hotspot', |
|
|
|
|
|
'i', |
|
|
'id', |
|
|
'ids', |
|
|
'immediately', |
|
|
'implementation', |
|
|
'importing', |
|
|
'in', |
|
|
'initial', |
|
|
'incl', |
|
|
'including', |
|
|
'increment', |
|
|
'index', |
|
|
'index-line', |
|
|
'inner', |
|
|
'inout', |
|
|
'intensified', |
|
|
'into', |
|
|
'inverse', |
|
|
'is', |
|
|
'iso', |
|
|
|
|
|
'join', |
|
|
|
|
|
'key', |
|
|
'kind', |
|
|
|
|
|
'log10', |
|
|
'language', |
|
|
'late', |
|
|
'layout', |
|
|
'le', |
|
|
'lt', |
|
|
'left-justified', |
|
|
'leftplus', |
|
|
'leftspace', |
|
|
'left', |
|
|
'length', |
|
|
'level', |
|
|
'like', |
|
|
'line-count', |
|
|
'line-size', |
|
|
'lines', |
|
|
'line', |
|
|
'load', |
|
|
'long', |
|
|
'lower', |
|
|
'low', |
|
|
'lpi', |
|
|
|
|
|
'matches', |
|
|
'match', |
|
|
'mail', |
|
|
'major-id', |
|
|
'max', |
|
|
'medium', |
|
|
'memory', |
|
|
'message-id', |
|
|
'module', |
|
|
'minor-id', |
|
|
'min', |
|
|
'mm/dd/yyyy', |
|
|
'mm/dd/yy', |
|
|
'mmddyy', |
|
|
'mode', |
|
|
'modifier', |
|
|
'mod', |
|
|
'monetary', |
|
|
|
|
|
'name', |
|
|
'nb', |
|
|
'ne', |
|
|
'next', |
|
|
'no-display', |
|
|
'no-extension', |
|
|
'no-gap', |
|
|
'no-gaps', |
|
|
'no-grouping', |
|
|
'no-heading', |
|
|
'no-scrolling', |
|
|
'no-sign', |
|
|
'no-title', |
|
|
'no-topofpage', |
|
|
'no-zero', |
|
|
'nodes', |
|
|
'non-unicode', |
|
|
'no', |
|
|
'number', |
|
|
'n', |
|
|
'nmax', |
|
|
'nmin', |
|
|
'not', |
|
|
'null', |
|
|
'numeric', |
|
|
'numofchar', |
|
|
|
|
|
'o', |
|
|
'objects', |
|
|
'obligatory', |
|
|
'occurs', |
|
|
'offset', |
|
|
'off', |
|
|
'of', |
|
|
'only', |
|
|
'open', |
|
|
'option', |
|
|
'optional', |
|
|
'options', |
|
|
'output-length', |
|
|
'output', |
|
|
'out', |
|
|
'on change of', |
|
|
'or', |
|
|
'others', |
|
|
|
|
|
'pad', |
|
|
'page', |
|
|
'pages', |
|
|
'parameter-table', |
|
|
'part', |
|
|
'performing', |
|
|
'pos_high', |
|
|
'pos_low', |
|
|
'priority', |
|
|
'public', |
|
|
'pushbutton', |
|
|
'p', |
|
|
|
|
|
'queue-only', |
|
|
'quickinfo', |
|
|
|
|
|
'raising', |
|
|
'range', |
|
|
'read-only', |
|
|
'received', |
|
|
'receiver', |
|
|
'receiving', |
|
|
'redefinition', |
|
|
'reference', |
|
|
'regex', |
|
|
'replacing', |
|
|
'reset', |
|
|
'responsible', |
|
|
'result', |
|
|
'results', |
|
|
'resumable', |
|
|
'returncode', |
|
|
'returning', |
|
|
'right', |
|
|
'right-specified', |
|
|
'rightplus', |
|
|
'rightspace', |
|
|
'round', |
|
|
'rows', |
|
|
'repeat', |
|
|
'requested', |
|
|
'rescale', |
|
|
'reverse', |
|
|
|
|
|
'scale_preserving', |
|
|
'scale_preserving_scientific', |
|
|
'scientific', |
|
|
'scientific_with_leading_zero', |
|
|
'screen', |
|
|
'scrolling', |
|
|
'seconds', |
|
|
'segment', |
|
|
'shift_left', |
|
|
'shift_right', |
|
|
'sign', |
|
|
'simple', |
|
|
'sin', |
|
|
'sinh', |
|
|
'short', |
|
|
'shortdump-id', |
|
|
'sign_as_postfix', |
|
|
'single', |
|
|
'size', |
|
|
'some', |
|
|
'source', |
|
|
'space', |
|
|
'spots', |
|
|
'stable', |
|
|
'state', |
|
|
'static', |
|
|
'statusinfo', |
|
|
'sqrt', |
|
|
'string', |
|
|
'strlen', |
|
|
'structure', |
|
|
'style', |
|
|
'subkey', |
|
|
'submatches', |
|
|
'substring', |
|
|
'substring_after', |
|
|
'substring_before', |
|
|
'substring_from', |
|
|
'substring_to', |
|
|
'super', |
|
|
'supplied', |
|
|
'switch', |
|
|
|
|
|
't', |
|
|
'tan', |
|
|
'tanh', |
|
|
'table_line', |
|
|
'table', |
|
|
'tab', |
|
|
'then', |
|
|
'timestamp', |
|
|
'times', |
|
|
'time', |
|
|
'timezone', |
|
|
'title-lines', |
|
|
'title', |
|
|
'top-lines', |
|
|
'to', |
|
|
'to_lower', |
|
|
'to_mixed', |
|
|
'to_upper', |
|
|
'trace-file', |
|
|
'trace-table', |
|
|
'transporting', |
|
|
'trunc', |
|
|
'type', |
|
|
|
|
|
'under', |
|
|
'unique', |
|
|
'unit', |
|
|
'user-command', |
|
|
'using', |
|
|
'utf-8', |
|
|
|
|
|
'valid', |
|
|
'value', |
|
|
'value-request', |
|
|
'values', |
|
|
'vary', |
|
|
'varying', |
|
|
'version', |
|
|
|
|
|
'warning', |
|
|
'where', |
|
|
'width', |
|
|
'with', |
|
|
'word', |
|
|
'with-heading', |
|
|
'with-title', |
|
|
|
|
|
'x', |
|
|
'xsequence', |
|
|
'xstring', |
|
|
'xstrlen', |
|
|
|
|
|
'yes', |
|
|
'yymmdd', |
|
|
|
|
|
'z', |
|
|
'zero' |
|
|
|
), |
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// screen statements |
|
|
//********************************************************** |
|
|
|
|
|
5 => array( |
|
|
'call subscreen', |
|
|
'chain', |
|
|
'endchain', |
|
|
'on chain-input', |
|
|
'on chain-request', |
|
|
'on help-request', |
|
|
'on input', |
|
|
'on request', |
|
|
'on value-request', |
|
|
'process' |
|
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// internal statements |
|
|
//********************************************************** |
|
|
|
|
|
6 => array( |
|
|
'generate dynpro', |
|
|
'generate report', |
|
|
'import dynpro', |
|
|
'import nametab', |
|
|
'include methods', |
|
|
'load report', |
|
|
'scan abap-source', |
|
|
'scan and check abap-source', |
|
|
'syntax-check for dynpro', |
|
|
'syntax-check for program', |
|
|
'syntax-trace', |
|
|
'system-call', |
|
|
'system-exit', |
|
|
'verification-message' |
|
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// Control statements |
|
|
//********************************************************** |
|
|
|
|
|
1 => array( |
|
|
'assert', |
|
|
'case', |
|
|
'catch', |
|
|
'check', |
|
|
'cleanup', |
|
|
'continue', |
|
|
'do', |
|
|
'else', |
|
|
'elseif', |
|
|
'endat', |
|
|
'endcase', |
|
|
'endcatch', |
|
|
'endif', |
|
|
'enddo', |
|
|
'endloop', |
|
|
'endtry', |
|
|
'endwhile', |
|
|
'exit', |
|
|
'if', |
|
|
'loop', |
|
|
'resume', |
|
|
'retry', |
|
|
'return', |
|
|
'stop', |
|
|
'try', |
|
|
'when', |
|
|
'while' |
|
|
|
|
|
), |
|
|
|
|
|
//********************************************************** |
|
|
// variable declaration statements |
|
|
//********************************************************** |
|
|
|
|
|
2 => array( |
|
|
'class-data', |
|
|
'controls', |
|
|
'constants', |
|
|
'data', |
|
|
'field-symbols', |
|
|
'fields', |
|
|
'local', |
|
|
'parameters', |
|
|
'ranges', |
|
|
'select-options', |
|
|
'statics', |
|
|
'tables', |
|
|
'type-pools', |
|
|
'types' |
|
|
) |
), |
|
), |
'SYMBOLS' => array( |
|
'SYMBOLS' => array( |
'(', ')', '{', '}', '[', ']', '=', '+', '-', '*', '/', '!', '%', '^', '&', ':' |
|
0 => array( |
|
|
'=' |
|
|
), |
|
|
1 => array( |
|
|
'(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':' |
|
|
) |
), |
|
), |
'CASE_SENSITIVE' => array( |
|
'CASE_SENSITIVE' => array( |
GESHI_COMMENTS => false, |
|
GESHI_COMMENTS => false, |
1 => false, |
|
1 => false, |
2 => false, |
|
2 => false, |
3 => false, |
|
3 => false, |
4 => false, |
|
4 => false, |
|
|
5 => false, |
|
|
6 => false, |
|
|
7 => false, |
|
|
8 => false, |
|
|
9 => false, |
), |
|
), |
'STYLES' => array( |
|
'STYLES' => array( |
'KEYWORDS' => array( |
|
'KEYWORDS' => array( |
1 => 'color: #b1b100;', |
|
1 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', //control statements |
2 => 'color: #000000; font-weight: bold;', |
|
2 => 'color: #cc4050; text-transform: uppercase; font-weight: bold; zzz:data;', //data statements |
3 => 'color: #000066;', |
|
3 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', //first token of other statements |
4 => 'color: #993333;' |
|
4 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords") |
|
|
5 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', |
|
|
6 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', |
|
|
7 => 'color: #000066; text-transform: uppercase; font-weight: bold; zzz:control;', |
|
|
8 => 'color: #005066; text-transform: uppercase; font-weight: bold; zzz:statement;', |
|
|
9 => 'color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;' |
), |
|
), |
'COMMENTS' => array( |
|
'COMMENTS' => array( |
1 => 'color: #808080; font-style: italic;', |
|
1 => 'color: #808080; font-style: italic;', |
2 => 'color: #339933;', |
|
2 => 'color: #339933;', |
'MULTI' => 'color: #808080; font-style: italic;' |
|
'MULTI' => 'color: #808080; font-style: italic;' |
), |
|
), |
'ESCAPE_CHAR' => array( |
|
'ESCAPE_CHAR' => array( |
0 => 'color: #000099; font-weight: bold;' |
|
0 => 'color: #000099; font-weight: bold;' |
), |
|
), |
'BRACKETS' => array( |
|
'BRACKETS' => array( |
0 => 'color: #66cc66;' |
|
0 => 'color: #808080;' |
), |
|
), |
'STRINGS' => array( |
|
'STRINGS' => array( |
0 => 'color: #ff0000;' |
|
0 => 'color: #4da619;' |
), |
|
), |
'NUMBERS' => array( |
|
'NUMBERS' => array( |
0 => 'color: #cc66cc;' |
|
0 => 'color: #3399ff;' |
), |
|
), |
'METHODS' => array( |
|
'METHODS' => array( |
1 => 'color: #202020;', |
|
1 => 'color: #202020;', |
2 => 'color: #202020;' |
|
2 => 'color: #202020;' |
), |
|
), |
'SYMBOLS' => array( |
|
'SYMBOLS' => array( |
0 => 'color: #66cc66;' |
|
0 => 'color: #800080;', |
|
|
1 => 'color: #808080;' |
), |
|
), |
'REGEXPS' => array( |
|
'REGEXPS' => array( |
), |
|
), |
'SCRIPT' => array( |
|
'SCRIPT' => array( |
) |
|
) |
), |
|
), |
'URLS' => array( |
|
'URLS' => array( |
1 => '', |
|
1 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
2 => '', |
|
2 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
3 => 'http://sap4.com/wiki/index.php?title={FNAMEL}', |
|
3 => 'http://help.sap.com/abapdocu/en/ABAP{FNAMEU}.htm', |
4 => '' |
|
4 => '', |
|
|
5 => '', |
|
|
6 => '', |
|
|
7 => '', |
|
|
8 => '', |
|
|
9 => '' |
), |
|
), |
'OOLANG' => true, |
|
'OOLANG' => true, |
'OBJECT_SPLITTERS' => array( |
|
'OBJECT_SPLITTERS' => array( |
1 => '.', |
|
1 => '->', |
2 => '::' |
|
2 => '=>' |
), |
|
), |
'REGEXPS' => array( |
|
'REGEXPS' => array( |
), |
|
), |
'STRICT_MODE_APPLIES' => GESHI_NEVER, |
|
'STRICT_MODE_APPLIES' => GESHI_NEVER, |
'SCRIPT_DELIMITERS' => array( |
|
'SCRIPT_DELIMITERS' => array( |
), |
|
), |
'HIGHLIGHT_STRICT_BLOCK' => array( |
|
'HIGHLIGHT_STRICT_BLOCK' => array( |
) |
|
), |
|
|
'PARSER_CONTROL' => array( |
|
|
'KEYWORDS' => array( |
|
|
7 => array( |
|
|
'SPACE_AS_WHITESPACE' => true |
|
|
), |
|
|
8 => array( |
|
|
'SPACE_AS_WHITESPACE' => true |
|
|
), |
|
|
9 => array( |
|
|
'SPACE_AS_WHITESPACE' => true |
|
|
) |
|
|
) |
|
|
), |
|
|
'TAB_WIDTH' => 4 |
); |
|
); |
|
|
|
?> |
|
?> |
|
|
|