31struct TokenTable {
SbiToken t;
const char *s; };
186 std::array<bool,VBASUPPORT+1> m_pTokenCanBeLabelTab;
191 bool canTokenBeLabel(
SbiToken eTok )
192 {
return m_pTokenCanBeLabelTab[eTok]; }
198TokenLabelInfo::TokenLabelInfo()
200 m_pTokenCanBeLabelTab.fill(
false);
208 m_pTokenCanBeLabelTab[eTok] =
true;
223 , bErrorIsSymbol(true)
252 sal_Int32 nOldLine =
nLine;
253 sal_Int32 nOldCol1 =
nCol1;
254 sal_Int32 nOldCol2 =
nCol2;
271 aSym = OUString(sal::static_int_cast<sal_Unicode>(
t));
292 aSym = OStringToOUString(rTok.s, RTL_TEXTENCODING_ASCII_US);
326 const TokenTable *tp;
335 if(
aSym.startsWith(
"\n") )
353 else if(
aSym.isEmpty() )
362 else if(
aSym[0] ==
'^' )
367 else if(
aSym[0] ==
'\\' )
385 delta = (ub - lb) >> 1;
387 sal_Int32 res =
aSym.compareToIgnoreAsciiCaseAscii( tp->s );
431 if( !bStartOfLine && (tp->t ==
NAME || tp->t ==
LINE) )
436 else if( tp->t ==
TEXT )
460 sal_Int32 nOldLine =
nLine;
461 sal_Int32 nOldCol =
nCol;
462 sal_Int32 nOldCol1 =
nCol1;
463 sal_Int32 nOldCol2 =
nCol2;
464 OUString aOldSym =
aSym;
518 if( eTok ==
STOP &&
aSym.equalsIgnoreAsciiCase(
"system") )
522 if( eTok ==
GET && bStartOfLine )
547 static TokenLabelInfo gaStaticTokenLabelInfo;
567 return OStringToOUString(rTok.s, RTL_TEXTENCODING_ASCII_US);
static OUString GetKeywordCase(std::u16string_view sKeyword)
bool MayBeLabel(bool=false)
static bool IsEoln(SbiToken t)
const OUString & Symbol(SbiToken)
SbiTokenizer(const OUString &, StarBASIC *=nullptr)
bool isAlpha(sal_Unicode c, bool bCompatible)
bool equalsIgnoreAsciiCase(std::u16string_view s1, std::u16string_view s2)
#define ERRCODE_BASIC_INTERNAL_ERROR
const TokenTable aTokTable_Basic[]