Adapt syntax coloring to abap 7.40
This commit is contained in:
@@ -56,7 +56,7 @@ class Reader extends PhpObject
|
||||
'ENDON','ENDPROVIDE','ENDSELECT','ENDTRY','ENDWHILE','END-OF_FILE','END-OF-DEFINITION','END-OF-PAGE',
|
||||
'END-OF-SELECTION','ENTRIES','EQ','ERRORS','EVENT','EVENTS','EXCEPTION','EXCEPTIONS','EXCEPTION-TABLE','EXCLUDE',
|
||||
'EXCLUDING','EXEC','EXIT','EXIT-COMMAND','EXPORT','EXPORTING','EXTENDED','EXTRACT','FETCH','FIELD','FIELD-GROUPS',
|
||||
'FIELDSNO','FIELD-SYMBOLS','FILTER','FINAL','FIND','FIRST','FOR','FORM','FORMAT','FORWARDBACKWARD','FOUND','FRAME',
|
||||
'FIELDSNO','FIELD-SYMBOL','FIELD-SYMBOLS','FILTER','FINAL','FIND','FIRST','FOR','FORM','FORMAT','FORWARDBACKWARD','FOUND','FRAME',
|
||||
'FREE','FRIENDS','FROM','FUNCTION','FUNCTION-POOL','GE','GET','GIVING','GROUP','GT','HANDLER','HASHED','HAVING',
|
||||
'HEADER','HEADING','HELP-ID','HIDE','HIGHLOW','HOLD','HOTSPOT','ID','IF','IGNORING','IMMEDIATELY','IMPLEMENTATION',
|
||||
'IMPORT','IMPORTING','IN','INCREMENT','INDEX','INDEX-LINE','INHERITING','INIT','INITIAL','INITIALIZATION','INNER',
|
||||
@@ -96,11 +96,16 @@ class Reader extends PhpObject
|
||||
'RIGHT','SIGN','SIN','SINH','SQRT','TABLE','TABLENAME','TAN','TANH','TITLE','TO','TRAILING','TRUNC','TYPE','UPPER',
|
||||
'USING','VALUE','WITH', 'TRANSPORTING', 'TYPE-POOLS'),
|
||||
'wBwCore'=>array('SOURCE_PACKAGE', 'RESULT_PACKAGE', '<SOURCE_FIELDS>', '<RESULT_FIELDS>'),
|
||||
'cOperator'=>array('(', ')', ',', '.', ':', '-', '~', '[', ']', '<', '>'),
|
||||
'cOperator'=>array('(', ')', ',', '.', ':', '-', '~', '[', ']', '<', '>', '|', '{', '}', '@'),
|
||||
'cCalculation'=>array('+', '-', '*', '/', '=', '(', ')'),
|
||||
'cComment'=>array('*'),
|
||||
'cPartComment'=>array('"'),
|
||||
'cString'=>array('"', '''),
|
||||
'cString'=>array(
|
||||
'quote' => array('"', '"'),
|
||||
'quot2' => array(''', '''),
|
||||
'pipe' => array('|', '|'),
|
||||
'curly' => array('{', '}')
|
||||
),
|
||||
'iNumber'=>array('1', '2', '3', '4', '5', '6', '7', '8', '9', '0'),
|
||||
'wExpand'=>array('loop'=>'endloop', 'if'=>'endif'),
|
||||
'wGlobal'=>array('SY'),
|
||||
@@ -208,10 +213,12 @@ class Reader extends PhpObject
|
||||
$sCode = mb_strtolower(implode('', $asColoredLines));
|
||||
|
||||
//Strings
|
||||
foreach($this->getWords('cString') as $sStringWord)
|
||||
foreach($this->getWords('cString') as $sDelName=>$asDels)
|
||||
{
|
||||
$sPattern = '/>([^<]*?)'.$sStringWord.'([^<]*?)'.$sStringWord.'/u';
|
||||
$sCode = preg_replace($sPattern, '>$1<span class="string">'.$sStringWord.'$2'.$sStringWord.'</span>', $sCode);
|
||||
$sDelStart = $asDels[0];
|
||||
$sDelEnd = $asDels[1];
|
||||
$sPattern = '/([^<]*?)'.preg_quote($sDelStart).'([^<]*?)'.preg_quote($sDelEnd).'/u';
|
||||
$sCode = preg_replace($sPattern, '$1<span class="string '.$sDelName.'">'.$sDelStart.'$2'.$sDelEnd.'</span>', $sCode);
|
||||
}
|
||||
|
||||
//Part comment
|
||||
@@ -223,10 +230,12 @@ class Reader extends PhpObject
|
||||
$sCode = preg_replace($sPattern, '><span class="code_part">> $1</span>', $sCode);
|
||||
|
||||
//Core Words
|
||||
foreach($this->getWords('wCore') as $sCoreWord)
|
||||
$asCoreWords = $this->getWords('wCore');
|
||||
rsort($asCoreWords);
|
||||
foreach($asCoreWords as $sCoreWord)
|
||||
{
|
||||
$sCoreWord = mb_strtolower($sCoreWord);
|
||||
$sPattern = '/>(([^<]*)([^\w&<]{1})|.{0})('.$sCoreWord.')([\W])/u';
|
||||
$sPattern = '/>(([^<]*)([^\w&<-]{1})|.{0})('.$sCoreWord.')([\W])/u';
|
||||
$sCode = preg_replace($sPattern, '>$1<span class="core">$4</span>$5', $sCode);
|
||||
}
|
||||
//$sCoreWords = str_replace(' ', '\ ', implode('|', array_map('mb_strtolower', $this->getWords('wCore'))));
|
||||
@@ -238,8 +247,14 @@ class Reader extends PhpObject
|
||||
$asOperators = array_unique(array_merge($this->getWords('cOperator'), $this->getWords('cCalculation')));
|
||||
foreach($asOperators as $sOpWord)
|
||||
{
|
||||
$sOpName = '';
|
||||
switch($sOpWord) {
|
||||
case '|': $sOpName = 'pipe'; break;
|
||||
case '{':
|
||||
case '}': $sOpName = 'curly'; break;
|
||||
}
|
||||
$sPattern = '/>([^<]*)\\'.$sOpWord.'/u';
|
||||
$sCode = preg_replace($sPattern, '>$1<span class="operator">'.$sOpWord.'</span>', $sCode);
|
||||
$sCode = preg_replace($sPattern, '>$1<span class="'.trim('operator '.$sOpName).'">'.$sOpWord.'</span>', $sCode);
|
||||
}
|
||||
//$sPattern = '/>([^<]*)['.implode(array_map('mb_strtolower', ($this->getWords('cOperator')))).']/';
|
||||
//echo $sPattern;
|
||||
|
||||
Reference in New Issue
Block a user