24#include <rtl/character.hxx>
25#include <rtl/ustrbuf.hxx>
50 while( *
p && *
p !=
']' )
74 if( *
p && (*
p ==
'%' || *
p ==
'&' || *
p ==
'!' || *
p ==
'#' || *
p ==
'$' ) )
80 rSym = rSym.copy( 0, nLen );
95 refVar =
Element( pObj, pGbl, &
p,
t, bCompatible );
96 while( refVar.
is() && (*
p ==
'.' || *
p ==
'!') )
103 pObj =
dynamic_cast<SbxObject*
>( refVar->GetObject() );
109 refVar =
Element( pObj, pGbl, &
p,
t, bCompatible );
126 if( !bVar && ( rtl::isAsciiDigit( *
p )
127 || ( *
p ==
'.' && rtl::isAsciiDigit( *(
p+1 ) ) )
133 if( !refVar->Scan( OUString(
p ), &nLen ) )
142 else if( !bVar && *
p ==
'"' )
145 OUStringBuffer aString;
155 if( *
p ==
'"' && (*++
p) !=
'"' )
159 aString.append(*
p++);
161 refVar->PutString( aString.makeStringAndClear() );
179 while( refVar.
is() && ( *
p ==
'*' || *
p ==
'/' ) )
209 while( refVar.
is() && ( *
p ==
'+' || *
p ==
'-' ) )
264 refVar->Broadcast( SfxHintId::BasicDataWanted );
281 if( !aSym.isEmpty() )
288 refVar = pObj->
Find( aSym,
t );
292 refVar->SetParameters(
nullptr );
298 auto refPar = tools::make_ref<SbxArray>();
303 while( *
p && *
p !=
')' && *
p !=
']' )
309 refVar.
clear();
break;
325 refVar->SetParameters( refPar.get() );
387 return pObj->IsOptionCompatible();
static void SetError(ErrCode)
void SetFlags(SbxFlagBits n)
void SetFlag(SbxFlagBits n)
SbxFlagBits GetFlags() const
SbxVariable * Execute(const OUString &)
virtual bool IsOptionCompatible() const
virtual SbxVariable * Find(const OUString &, SbxClassType)
SbxVariable * FindQualified(const OUString &, SbxClassType)
const SbxObject * GetParent() const
void SetParameters(SbxArray *p)
bool isAlpha(sal_Unicode c, bool bCompatible)
bool isWhitespace(sal_Unicode c)
bool isAlphaNumeric(sal_Unicode c, bool bCompatible)
#define ERRCODE_BASIC_BAD_ACTION
#define ERRCODE_BASIC_NO_METHOD
#define ERRCODE_BASIC_SYNTAX
static SbxVariableRef PlusMinus(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, bool bCompatible)
static SbxVariableRef MulDiv(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, bool bCompatible)
static const sal_Unicode * SkipWhitespace(const sal_Unicode *p)
static SbxVariableRef Assign(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, bool bCompatible)
static SbxVariableRef Operand(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, bool bVar, bool bCompatible)
static const sal_Unicode * Symbol(const sal_Unicode *p, OUString &rSym, bool bCompatible)
static SbxVariableRef Element(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, SbxClassType, bool bCompatible)
static SbxVariableRef QualifiedName(SbxObject *pObj, SbxObject *pGbl, const sal_Unicode **ppBuf, SbxClassType t, bool bCompatible)