BASIC : Remove SbiExprList::pParser

Change-Id: Ib9386d97ddb12f148cf76dc71aa8c41003286f50
Reviewed-on: https://gerrit.libreoffice.org/21534
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
This commit is contained in:
Arnaud Versini
2016-01-17 14:28:13 +01:00
committed by Noel Grandin
parent 31504c85f1
commit 49b5eed56c
3 changed files with 13 additions and 17 deletions

View File

@@ -184,7 +184,7 @@ void SbiExprNode::GenElement( SbiCodeGen& rGen, SbiOpcode eOp )
if( aVar.pPar && aVar.pPar->GetSize() ) if( aVar.pPar && aVar.pPar->GetSize() )
{ {
nId |= 0x8000; nId |= 0x8000;
aVar.pPar->Gen(); aVar.pPar->Gen(rGen);
} }
rGen.Gen( eOp, nId, sal::static_int_cast< sal_uInt16 >( GetType() ) ); rGen.Gen( eOp, nId, sal::static_int_cast< sal_uInt16 >( GetType() ) );
@@ -193,7 +193,7 @@ void SbiExprNode::GenElement( SbiCodeGen& rGen, SbiOpcode eOp )
{ {
for( auto& pExprList: *aVar.pvMorePar ) for( auto& pExprList: *aVar.pvMorePar )
{ {
pExprList->Gen(); pExprList->Gen(rGen);
rGen.Gen( _ARRAYACCESS ); rGen.Gen( _ARRAYACCESS );
} }
} }
@@ -203,11 +203,11 @@ void SbiExprNode::GenElement( SbiCodeGen& rGen, SbiOpcode eOp )
// The first element remain available for return value etc. // The first element remain available for return value etc.
// See as well SbiProcDef::SbiProcDef() in symtbl.cxx // See as well SbiProcDef::SbiProcDef() in symtbl.cxx
void SbiExprList::Gen() void SbiExprList::Gen(SbiCodeGen& rGen)
{ {
if( pFirst ) if( pFirst )
{ {
pParser->aGen.Gen( _ARGC ); rGen.Gen( _ARGC );
// Type adjustment at DECLARE // Type adjustment at DECLARE
sal_uInt16 nCount = 1; sal_uInt16 nCount = 1;
@@ -217,8 +217,8 @@ void SbiExprList::Gen()
if( !pExpr->GetName().isEmpty() ) if( !pExpr->GetName().isEmpty() )
{ {
// named arg // named arg
sal_uInt16 nSid = pParser->aGblStrings.Add( pExpr->GetName() ); sal_uInt16 nSid = rGen.GetParser()->aGblStrings.Add( pExpr->GetName() );
pParser->aGen.Gen( _ARGN, nSid ); rGen.Gen( _ARGN, nSid );
/* TODO: Check after Declare concept change /* TODO: Check after Declare concept change
// From 1996-01-10: Type adjustment at named -> search suitable parameter // From 1996-01-10: Type adjustment at named -> search suitable parameter
@@ -247,7 +247,7 @@ void SbiExprList::Gen()
} }
else else
{ {
pParser->aGen.Gen( _ARGV ); rGen.Gen( _ARGV );
} }
} }
} }

View File

@@ -920,9 +920,8 @@ short SbiConstExpression::GetShortValue()
|* |*
***************************************************************************/ ***************************************************************************/
SbiExprList::SbiExprList( SbiParser* p ) SbiExprList::SbiExprList( )
{ {
pParser = p;
pFirst = nullptr; pFirst = nullptr;
nExpr = nExpr =
nDim = 0; nDim = 0;
@@ -984,8 +983,7 @@ void SbiExprList::addExpression( SbiExpression* pExpr )
// #i79918/#i80532: bConst has never been set to true // #i79918/#i80532: bConst has never been set to true
// -> reused as bStandaloneExpression // -> reused as bStandaloneExpression
//SbiParameters::SbiParameters( SbiParser* p, sal_Bool bConst, sal_Bool bPar) : //SbiParameters::SbiParameters( SbiParser* p, sal_Bool bConst, sal_Bool bPar) :
SbiParameters::SbiParameters( SbiParser* p, bool bStandaloneExpression, bool bPar) : SbiParameters::SbiParameters( SbiParser* pParser, bool bStandaloneExpression, bool bPar)
SbiExprList( p )
{ {
if( !bPar ) if( !bPar )
{ {
@@ -1150,9 +1148,9 @@ SbiParameters::SbiParameters( SbiParser* p, bool bStandaloneExpression, bool bPa
// A list of array dimensions is parsed. The expressions are tested for being // A list of array dimensions is parsed. The expressions are tested for being
// numeric. The bCONST-Bit is reset when all expressions are Integer constants. // numeric. The bCONST-Bit is reset when all expressions are Integer constants.
SbiDimList::SbiDimList( SbiParser* p ) : SbiExprList( p ) SbiDimList::SbiDimList( SbiParser* pParser )
{ {
bConst = true; bool bConst = true;// true: everything integer constants
if( pParser->Next() != LPAREN ) if( pParser->Next() != LPAREN )
{ {

View File

@@ -223,21 +223,20 @@ public: // numeric constant
class SbiExprList { // base class for parameters and dims class SbiExprList { // base class for parameters and dims
protected: protected:
SbiParser* pParser;
SbiExpression* pFirst; SbiExpression* pFirst;
short nExpr; short nExpr;
short nDim; short nDim;
bool bError; bool bError;
bool bBracket; bool bBracket;
public: public:
SbiExprList( SbiParser* ); SbiExprList();
virtual ~SbiExprList(); virtual ~SbiExprList();
bool IsBracket() { return bBracket; } bool IsBracket() { return bBracket; }
bool IsValid() { return !bError; } bool IsValid() { return !bError; }
short GetSize() { return nExpr; } short GetSize() { return nExpr; }
short GetDims() { return nDim; } short GetDims() { return nDim; }
SbiExpression* Get( short ); SbiExpression* Get( short );
void Gen(); // code generation void Gen( SbiCodeGen& rGen); // code generation
void addExpression( SbiExpression* pExpr ); void addExpression( SbiExpression* pExpr );
}; };
@@ -247,7 +246,6 @@ public:
}; };
class SbiDimList : public SbiExprList { class SbiDimList : public SbiExprList {
bool bConst; // true: everything integer constants
public: public:
SbiDimList( SbiParser* ); // parsing Ctor SbiDimList( SbiParser* ); // parsing Ctor
}; };