INTEGRATION: CWS jl5vba (1.8.94); FILE MERGED
2004/01/21 09:03:01 ab 1.8.94.1: #111934# Merge to src680, for tasks see message INTEGRATION: CWS ab02vba (1.8.6)
This commit is contained in:
@@ -2,9 +2,9 @@
|
||||
*
|
||||
* $RCSfile: scanner.cxx,v $
|
||||
*
|
||||
* $Revision: 1.8 $
|
||||
* $Revision: 1.9 $
|
||||
*
|
||||
* last change: $Author: rt $ $Date: 2003-04-23 16:57:09 $
|
||||
* last change: $Author: obo $ $Date: 2004-03-17 13:33:38 $
|
||||
*
|
||||
* The Contents of this file are made available subject to the terms of
|
||||
* either of the following licenses
|
||||
@@ -95,7 +95,8 @@ SbiScanner::SbiScanner( const ::rtl::OUString& rBuf, StarBASIC* p ) : aBuf( rBuf
|
||||
bSpaces =
|
||||
bNumber =
|
||||
bSymbol =
|
||||
bUsedForHilite = FALSE;
|
||||
bUsedForHilite =
|
||||
bCompatible = FALSE;
|
||||
bHash =
|
||||
bErrors = TRUE;
|
||||
}
|
||||
@@ -230,7 +231,7 @@ BOOL SbiScanner::NextSym()
|
||||
if( *pLine == '#' ) pLine++, nCol++, bHash = TRUE;
|
||||
|
||||
// Symbol? Dann Zeichen kopieren.
|
||||
if( BasicSimpleCharClass::isAlpha( *pLine & 0xFF ) || *pLine == '_' )
|
||||
if( BasicSimpleCharClass::isAlpha( *pLine & 0xFF, bCompatible ) || *pLine == '_' )
|
||||
{
|
||||
// Wenn nach '_' nichts kommt, ist es ein Zeilenabschluss!
|
||||
if( *pLine == '_' && !*(pLine+1) )
|
||||
@@ -238,7 +239,7 @@ BOOL SbiScanner::NextSym()
|
||||
goto eoln; }
|
||||
bSymbol = TRUE;
|
||||
short n = nCol;
|
||||
for ( ; (BasicSimpleCharClass::isAlphaNumeric( *pLine & 0xFF ) || ( *pLine == '_' ) ); pLine++ )
|
||||
for ( ; (BasicSimpleCharClass::isAlphaNumeric( *pLine & 0xFF, bCompatible ) || ( *pLine == '_' ) ); pLine++ )
|
||||
nCol++;
|
||||
aSym = aLine.copy( n, nCol - n );
|
||||
// Abschliessendes '_' durch Space ersetzen, wenn Zeilenende folgt
|
||||
@@ -248,7 +249,7 @@ BOOL SbiScanner::NextSym()
|
||||
// Typkennung?
|
||||
// Das Ausrufezeichen bitte nicht testen, wenn
|
||||
// danach noch ein Symbol anschliesst
|
||||
else if( *pLine != '!' || !BasicSimpleCharClass::isAlpha( pLine[ 1 ] & 0xFF ) )
|
||||
else if( *pLine != '!' || !BasicSimpleCharClass::isAlpha( pLine[ 1 ] & 0xFF, bCompatible ) )
|
||||
{
|
||||
SbxDataType t = GetSuffixType( *pLine );
|
||||
if( t != SbxVARIANT )
|
||||
@@ -376,7 +377,7 @@ BOOL SbiScanner::NextSym()
|
||||
long l = 0;
|
||||
int i;
|
||||
BOOL bBufOverflow = FALSE;
|
||||
while( BasicSimpleCharClass::isAlphaNumeric( *pLine & 0xFF ) )
|
||||
while( BasicSimpleCharClass::isAlphaNumeric( *pLine & 0xFF, bCompatible ) )
|
||||
{
|
||||
sal_Unicode ch = toupper( *pLine & 0xFF );
|
||||
pLine++; nCol++;
|
||||
@@ -431,11 +432,16 @@ BOOL SbiScanner::NextSym()
|
||||
// Doppelte Stringbegrenzer raus
|
||||
String s( cSep );
|
||||
s += cSep;
|
||||
USHORT nIdx;
|
||||
do {
|
||||
nIdx = aSym.Search( s );
|
||||
USHORT nIdx = 0;
|
||||
do
|
||||
{
|
||||
nIdx = aSym.Search( s, nIdx );
|
||||
if( nIdx == STRING_NOTFOUND )
|
||||
break;
|
||||
aSym.Erase( nIdx, 1 );
|
||||
} while( nIdx != STRING_NOTFOUND );
|
||||
nIdx++;
|
||||
}
|
||||
while( true );
|
||||
if( cSep != ']' )
|
||||
eScanType = ( cSep == '#' ) ? SbxDATE : SbxSTRING;
|
||||
}
|
||||
@@ -489,3 +495,73 @@ eoln:
|
||||
}
|
||||
}
|
||||
|
||||
IsoLatinLetterTable BasicSimpleCharClass::aLetterTable;
|
||||
|
||||
IsoLatinLetterTable::IsoLatinLetterTable( void )
|
||||
{
|
||||
for( int i = 0 ; i < 256 ; ++i )
|
||||
IsLetterTab[i] = false;
|
||||
|
||||
IsLetterTab[0xC0] = true; // <20> , CAPITAL LETTER A WITH GRAVE ACCENT
|
||||
IsLetterTab[0xC1] = true; // <20> , CAPITAL LETTER A WITH ACUTE ACCENT
|
||||
IsLetterTab[0xC2] = true; // <20> , CAPITAL LETTER A WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xC3] = true; // <20> , CAPITAL LETTER A WITH TILDE
|
||||
IsLetterTab[0xC4] = true; // <20> , CAPITAL LETTER A WITH DIAERESIS
|
||||
IsLetterTab[0xC5] = true; // <20> , CAPITAL LETTER A WITH RING ABOVE
|
||||
IsLetterTab[0xC6] = true; // <20> , CAPITAL LIGATURE AE
|
||||
IsLetterTab[0xC7] = true; // <20> , CAPITAL LETTER C WITH CEDILLA
|
||||
IsLetterTab[0xC8] = true; // <20> , CAPITAL LETTER E WITH GRAVE ACCENT
|
||||
IsLetterTab[0xC9] = true; // <20> , CAPITAL LETTER E WITH ACUTE ACCENT
|
||||
IsLetterTab[0xCA] = true; // <20> , CAPITAL LETTER E WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xCB] = true; // <20> , CAPITAL LETTER E WITH DIAERESIS
|
||||
IsLetterTab[0xCC] = true; // <20> , CAPITAL LETTER I WITH GRAVE ACCENT
|
||||
IsLetterTab[0xCD] = true; // <20> , CAPITAL LETTER I WITH ACUTE ACCENT
|
||||
IsLetterTab[0xCE] = true; // <20> , CAPITAL LETTER I WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xCF] = true; // <20> , CAPITAL LETTER I WITH DIAERESIS
|
||||
IsLetterTab[0xD0] = true; // <20> , CAPITAL LETTER ETH
|
||||
IsLetterTab[0xD1] = true; // <20> , CAPITAL LETTER N WITH TILDE
|
||||
IsLetterTab[0xD2] = true; // <20> , CAPITAL LETTER O WITH GRAVE ACCENT
|
||||
IsLetterTab[0xD3] = true; // <20> , CAPITAL LETTER O WITH ACUTE ACCENT
|
||||
IsLetterTab[0xD4] = true; // <20> , CAPITAL LETTER O WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xD5] = true; // <20> , CAPITAL LETTER O WITH TILDE
|
||||
IsLetterTab[0xD6] = true; // <20> , CAPITAL LETTER O WITH DIAERESIS
|
||||
IsLetterTab[0xD8] = true; // <20> , CAPITAL LETTER O WITH STROKE
|
||||
IsLetterTab[0xD9] = true; // <20> , CAPITAL LETTER U WITH GRAVE ACCENT
|
||||
IsLetterTab[0xDA] = true; // <20> , CAPITAL LETTER U WITH ACUTE ACCENT
|
||||
IsLetterTab[0xDB] = true; // <20> , CAPITAL LETTER U WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xDC] = true; // <20> , CAPITAL LETTER U WITH DIAERESIS
|
||||
IsLetterTab[0xDD] = true; // <20> , CAPITAL LETTER Y WITH ACUTE ACCENT
|
||||
IsLetterTab[0xDE] = true; // <20> , CAPITAL LETTER THORN
|
||||
IsLetterTab[0xDF] = true; // <20> , SMALL LETTER SHARP S
|
||||
IsLetterTab[0xE0] = true; // <20> , SMALL LETTER A WITH GRAVE ACCENT
|
||||
IsLetterTab[0xE1] = true; // <20> , SMALL LETTER A WITH ACUTE ACCENT
|
||||
IsLetterTab[0xE2] = true; // <20> , SMALL LETTER A WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xE3] = true; // <20> , SMALL LETTER A WITH TILDE
|
||||
IsLetterTab[0xE4] = true; // <20> , SMALL LETTER A WITH DIAERESIS
|
||||
IsLetterTab[0xE5] = true; // <20> , SMALL LETTER A WITH RING ABOVE
|
||||
IsLetterTab[0xE6] = true; // <20> , SMALL LIGATURE AE
|
||||
IsLetterTab[0xE7] = true; // <20> , SMALL LETTER C WITH CEDILLA
|
||||
IsLetterTab[0xE8] = true; // <20> , SMALL LETTER E WITH GRAVE ACCENT
|
||||
IsLetterTab[0xE9] = true; // <20> , SMALL LETTER E WITH ACUTE ACCENT
|
||||
IsLetterTab[0xEA] = true; // <20> , SMALL LETTER E WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xEB] = true; // <20> , SMALL LETTER E WITH DIAERESIS
|
||||
IsLetterTab[0xEC] = true; // <20> , SMALL LETTER I WITH GRAVE ACCENT
|
||||
IsLetterTab[0xED] = true; // <20> , SMALL LETTER I WITH ACUTE ACCENT
|
||||
IsLetterTab[0xEE] = true; // <20> , SMALL LETTER I WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xEF] = true; // <20> , SMALL LETTER I WITH DIAERESIS
|
||||
IsLetterTab[0xF0] = true; // <20> , SMALL LETTER ETH
|
||||
IsLetterTab[0xF1] = true; // <20> , SMALL LETTER N WITH TILDE
|
||||
IsLetterTab[0xF2] = true; // <20> , SMALL LETTER O WITH GRAVE ACCENT
|
||||
IsLetterTab[0xF3] = true; // <20> , SMALL LETTER O WITH ACUTE ACCENT
|
||||
IsLetterTab[0xF4] = true; // <20> , SMALL LETTER O WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xF5] = true; // <20> , SMALL LETTER O WITH TILDE
|
||||
IsLetterTab[0xF6] = true; // <20> , SMALL LETTER O WITH DIAERESIS
|
||||
IsLetterTab[0xF8] = true; // <20> , SMALL LETTER O WITH OBLIQUE BAR
|
||||
IsLetterTab[0xF9] = true; // <20> , SMALL LETTER U WITH GRAVE ACCENT
|
||||
IsLetterTab[0xFA] = true; // <20> , SMALL LETTER U WITH ACUTE ACCENT
|
||||
IsLetterTab[0xFB] = true; // <20> , SMALL LETTER U WITH CIRCUMFLEX ACCENT
|
||||
IsLetterTab[0xFC] = true; // <20> , SMALL LETTER U WITH DIAERESIS
|
||||
IsLetterTab[0xFD] = true; // <20> , SMALL LETTER Y WITH ACUTE ACCENT
|
||||
IsLetterTab[0xFE] = true; // <20> , SMALL LETTER THORN
|
||||
IsLetterTab[0xFF] = true; // <20> , SMALL LETTER Y WITH DIAERESIS
|
||||
}
|
||||
|
Reference in New Issue
Block a user