1407 lines
38 KiB
PHP
1407 lines
38 KiB
PHP
<?php
|
|
/*************************************************************************************
|
|
* abap.php
|
|
* --------
|
|
* Author: Andres Picazo (andres@andrespicazo.com)
|
|
* Contributors:
|
|
* - Sandra Rossi (sandra.rossi@gmail.com)
|
|
* - Jacob Laursen (jlu@kmd.dk)
|
|
* Copyright: (c) 2007 Andres Picazo
|
|
* Release Version: 1.0.8.12
|
|
* Date Started: 2004/06/04
|
|
*
|
|
* 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.
|
|
* Control, declarative and other statements are assigned URLs to sap documentation website:
|
|
* http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm
|
|
*
|
|
* 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)
|
|
* - First Release
|
|
*
|
|
* 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.
|
|
*
|
|
* GeSHi is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* GeSHi is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with GeSHi; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*
|
|
************************************************************************************/
|
|
|
|
$language_data = array(
|
|
'LANG_NAME' => 'ABAP',
|
|
'COMMENT_SINGLE' => array(
|
|
1 => '"'
|
|
),
|
|
'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,
|
|
'QUOTEMARKS' => array(
|
|
1 => "'",
|
|
2 => "`"
|
|
),
|
|
'ESCAPE_CHAR' => '',
|
|
|
|
'KEYWORDS' => array(
|
|
//***********************************************
|
|
// Section 2 : process sequences of several tokens
|
|
//***********************************************
|
|
|
|
7 => array(
|
|
'at new',
|
|
'at end of',
|
|
'at first',
|
|
'at last',
|
|
'loop at',
|
|
'loop at screen',
|
|
),
|
|
|
|
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(
|
|
'add',
|
|
'add-corresponding',
|
|
'aliases',
|
|
'append',
|
|
'assign',
|
|
'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(
|
|
'abbreviated',
|
|
'abstract',
|
|
'accept',
|
|
'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',
|
|
|
|
'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',
|
|
'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',
|
|
|
|
'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',
|
|
|
|
'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',
|
|
|
|
'giving',
|
|
'ge',
|
|
'gt',
|
|
|
|
'handle',
|
|
'harmless',
|
|
'having',
|
|
'head-lines',
|
|
'help-id',
|
|
'help-request',
|
|
'high',
|
|
'hold',
|
|
'hotspot',
|
|
|
|
'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',
|
|
'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',
|
|
|
|
'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',
|
|
|
|
'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',
|
|
|
|
'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(
|
|
0 => array(
|
|
'->*', '->', '=>',
|
|
'(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', '.'
|
|
),
|
|
1 => array(
|
|
'>=', '<=', '<', '>', '='
|
|
),
|
|
2 => array(
|
|
'?='
|
|
)
|
|
),
|
|
'CASE_SENSITIVE' => array(
|
|
GESHI_COMMENTS => false,
|
|
1 => false,
|
|
2 => false,
|
|
3 => false,
|
|
4 => false,
|
|
5 => false,
|
|
6 => false,
|
|
7 => false,
|
|
8 => false,
|
|
9 => false,
|
|
),
|
|
'STYLES' => array(
|
|
'KEYWORDS' => array(
|
|
1 => 'color: #000066; font-weight: bold; zzz:control;', //control statements
|
|
2 => 'color: #cc4050; font-weight: bold; zzz:data;', //data statements
|
|
3 => 'color: #005066; font-weight: bold; zzz:statement;', //first token of other statements
|
|
4 => 'color: #500066; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
|
|
5 => 'color: #005066; font-weight: bold; zzz:statement;',
|
|
6 => 'color: #000066; font-weight: bold; zzz:control;',
|
|
7 => 'color: #000066; font-weight: bold; zzz:control;',
|
|
8 => 'color: #005066; font-weight: bold; zzz:statement;',
|
|
9 => 'color: #500066; font-weight: bold; zzz:keyword;'
|
|
),
|
|
'COMMENTS' => array(
|
|
1 => 'color: #808080; font-style: italic;',
|
|
2 => 'color: #339933;',
|
|
'MULTI' => 'color: #808080; font-style: italic;'
|
|
),
|
|
'ESCAPE_CHAR' => array(
|
|
0 => 'color: #000099; font-weight: bold;'
|
|
),
|
|
'BRACKETS' => array(
|
|
0 => 'color: #808080;'
|
|
),
|
|
'STRINGS' => array(
|
|
0 => 'color: #4da619;'
|
|
),
|
|
'NUMBERS' => array(
|
|
0 => 'color: #3399ff;'
|
|
),
|
|
'METHODS' => array(
|
|
1 => 'color: #202020;',
|
|
2 => 'color: #202020;'
|
|
),
|
|
'SYMBOLS' => array(
|
|
0 => 'color: #808080;',
|
|
1 => 'color: #800080;',
|
|
2 => 'color: #0000ff;'
|
|
),
|
|
'REGEXPS' => array(
|
|
),
|
|
'SCRIPT' => array(
|
|
)
|
|
),
|
|
'URLS' => array(
|
|
1 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
|
2 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
|
3 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
|
|
4 => '',
|
|
5 => '',
|
|
6 => '',
|
|
7 => '',
|
|
8 => '',
|
|
9 => ''
|
|
),
|
|
'OOLANG' => true,
|
|
'OBJECT_SPLITTERS' => array(
|
|
1 => '->',
|
|
2 => '=>'
|
|
),
|
|
'REGEXPS' => array(
|
|
),
|
|
'STRICT_MODE_APPLIES' => GESHI_NEVER,
|
|
'SCRIPT_DELIMITERS' => 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
|
|
);
|