summaryrefslogtreecommitdiff
path: root/basic/source/comp
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2008-02-27 09:33:36 +0000
committerOliver Bolte <obo@openoffice.org>2008-02-27 09:33:36 +0000
commita3dda5596a8e24e0ba1a36f0fd45db1fc118d6d5 (patch)
treedcb7a65b007896c732829986360e4707a80c9d2d /basic/source/comp
parenta90c5fa073903bb79880cd96dde9018c4cc4abe5 (diff)
INTEGRATION: CWS ab47_DEV300 (1.19.58.1.4); FILE MERGED
2008/02/22 08:35:03 ab 1.19.58.1.4.1: #i86265# Removed patches i79918, i80532
Diffstat (limited to 'basic/source/comp')
-rw-r--r--basic/source/comp/exprtree.cxx81
1 files changed, 24 insertions, 57 deletions
diff --git a/basic/source/comp/exprtree.cxx b/basic/source/comp/exprtree.cxx
index ebce5dba7e9e..5e2e1ac83cfa 100644
--- a/basic/source/comp/exprtree.cxx
+++ b/basic/source/comp/exprtree.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: exprtree.cxx,v $
*
- * $Revision: 1.20 $
+ * $Revision: 1.21 $
*
- * last change: $Author: vg $ $Date: 2008-01-28 14:00:19 $
+ * last change: $Author: obo $ $Date: 2008-02-27 10:33:36 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -46,10 +46,9 @@
|*
***************************************************************************/
-SbiExpression::SbiExpression( SbiParser* p, SbiExprType t, BOOL bNested )
+SbiExpression::SbiExpression( SbiParser* p, SbiExprType t )
{
pParser = p;
- mbNested = bNested;
bError = bByVal = bBased = FALSE;
eCurExpr = t;
pNext = NULL;
@@ -62,10 +61,9 @@ SbiExpression::SbiExpression( SbiParser* p, SbiExprType t, BOOL bNested )
p->Error( SbERR_VAR_EXPECTED );
}
-SbiExpression::SbiExpression( SbiParser* p, double n, SbxDataType t, BOOL bNested )
+SbiExpression::SbiExpression( SbiParser* p, double n, SbxDataType t )
{
pParser = p;
- mbNested = bNested;
eCurExpr = SbOPERAND;
pNext = NULL;
bError = bByVal = bBased = FALSE;
@@ -73,30 +71,27 @@ SbiExpression::SbiExpression( SbiParser* p, double n, SbxDataType t, BOOL bNeste
pExpr->Optimize();
}
-SbiExpression::SbiExpression( SbiParser* p, const String& r, BOOL bNested )
+SbiExpression::SbiExpression( SbiParser* p, const String& r )
{
pParser = p;
- mbNested = bNested;
pNext = NULL;
bError = bByVal = bBased = FALSE;
eCurExpr = SbOPERAND;
pExpr = new SbiExprNode( pParser, r );
}
-SbiExpression::SbiExpression( SbiParser* p, const SbiSymDef& r, SbiExprList* pPar, BOOL bNested )
+SbiExpression::SbiExpression( SbiParser* p, const SbiSymDef& r, SbiExprList* pPar )
{
pParser = p;
- mbNested = bNested;
pNext = NULL;
bError = bByVal = bBased = FALSE;
eCurExpr = SbOPERAND;
pExpr = new SbiExprNode( pParser, r, SbxVARIANT, pPar );
}
-SbiExpression::SbiExpression( SbiParser* p, SbiToken t, BOOL bNested )
+SbiExpression::SbiExpression( SbiParser* p, SbiToken t )
{
pParser = p;
- mbNested = bNested;
pNext = NULL;
bError = bByVal = bBased = FALSE;
eCurExpr = SbOPERAND;
@@ -117,7 +112,7 @@ SbiExpression::~SbiExpression()
// Folgen Parameter ohne Klammer? Dies kann eine Zahl, ein String,
// ein Symbol oder auch ein Komma sein (wenn der 1. Parameter fehlt)
-static BOOL DoParametersFollow( SbiParser* p, SbiExprType eCurExpr, SbiToken eTok, bool bNested )
+static BOOL DoParametersFollow( SbiParser* p, SbiExprType eCurExpr, SbiToken eTok )
{
if( eTok == LPAREN )
return TRUE;
@@ -130,15 +125,11 @@ static BOOL DoParametersFollow( SbiParser* p, SbiExprType eCurExpr, SbiToken eTo
return TRUE;
}
else // check for default params with reserved names ( e.g. names of tokens )
- // also cater for aFuncCall -10 ( where we need to handle the minus )
{
SbiTokenizer tokens( *(SbiTokenizer*)p );
// Urk the Next() / Peek() symantics are... weird
tokens.Next();
- SbiToken eNext = tokens.Peek();
- if ( !bNested && eTok == MINUS && ( eNext == NUMBER || eNext == FIXSTRING || eNext == SYMBOL ) ) // note vba will strip a leadin +
- return TRUE;
- if ( eNext == ASSIGN )
+ if ( tokens.Peek() == ASSIGN )
return TRUE;
}
return FALSE;
@@ -249,9 +240,9 @@ SbiExprNode* SbiExpression::Term()
}
}
- if( DoParametersFollow( pParser, eCurExpr, eTok = eNextTok, mbNested ) )
+ if( DoParametersFollow( pParser, eCurExpr, eTok = eNextTok ) )
{
- pPar = new SbiParameters( pParser, FALSE, TRUE, mbNested );
+ pPar = new SbiParameters( pParser );
bError |= !pPar->IsValid();
eTok = pParser->Peek();
}
@@ -357,7 +348,7 @@ SbiExprNode* SbiExpression::Term()
}
SbiExprNode* pNd = new SbiExprNode( pParser, *pDef, eType );
if( !pPar )
- pPar = new SbiParameters( pParser,FALSE,FALSE, mbNested );
+ pPar = new SbiParameters( pParser,FALSE,FALSE );
pNd->aVar.pPar = pPar;
if( bObj )
{
@@ -412,9 +403,9 @@ SbiExprNode* SbiExpression::ObjTerm( SbiSymDef& rObj )
SbiParameters* pPar = NULL;
eTok = pParser->Peek();
// Parameter?
- if( DoParametersFollow( pParser, eCurExpr, eTok, mbNested ) )
+ if( DoParametersFollow( pParser, eCurExpr, eTok ) )
{
- pPar = new SbiParameters( pParser, FALSE, TRUE, mbNested );
+ pPar = new SbiParameters( pParser );
bError |= !pPar->IsValid();
eTok = pParser->Peek();
}
@@ -822,10 +813,9 @@ void SbiExprList::addExpression( SbiExpression* pExpr )
// Dann handelt es sich um eine Funktion ohne Parameter
// respektive um die Angabe eines Arrays als Prozedurparameter.
-SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar, BOOL bNested ) :
+SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar) :
SbiExprList( p )
{
- (void)bNested;
if (bPar)
{
SbiExpression *pExpr;
@@ -853,7 +843,7 @@ SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar, BOOL bNested
// Fehlendes Argument
if( eTok == COMMA )
{
- pExpr = new SbiExpression( pParser, 0, SbxEMPTY, TRUE );
+ pExpr = new SbiExpression( pParser, 0, SbxEMPTY );
if( bConst )
pParser->Error( SbERR_SYNTAX ), bError = TRUE;
}
@@ -861,7 +851,7 @@ SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar, BOOL bNested
else
{
pExpr = bConst ? new SbiConstExpression( pParser )
- : new SbiExpression( pParser, SbSTDEXPR, TRUE );
+ : new SbiExpression( pParser );
if( pParser->Peek() == ASSIGN )
{
// VBA mode: name:=
@@ -869,7 +859,7 @@ SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar, BOOL bNested
aName = pExpr->GetString();
delete pExpr;
pParser->Next();
- pExpr = new SbiExpression( pParser, SbSTDEXPR, TRUE );
+ pExpr = new SbiExpression( pParser );
if( bConst )
pParser->Error( SbERR_SYNTAX ), bError = TRUE;
}
@@ -886,37 +876,14 @@ SbiParameters::SbiParameters( SbiParser* p, BOOL bConst, BOOL bPar, BOOL bNested
eTok = pParser->Peek();
if( eTok != COMMA )
{
- if ( bBracket && eTok == RPAREN )
- {
- if ( !bNested )
- {
- SbiTokenizer tokens( *(SbiTokenizer*)pParser );
- tokens.Next();
- if ( tokens.Peek() == COMMA )
- {
- // advance the parser to the comma
- pParser->Next();
- pParser->Peek();
- }
- else
- break;
- }
- else
- break;
- }
- else if( pParser->IsEoln( eTok ) )
- {
+ if( ( bBracket && eTok == RPAREN ) || pParser->IsEoln( eTok ) )
break;
- }
- else
- {
- pParser->Error( bBracket
- ? SbERR_BAD_BRACKETS
- : SbERR_EXPECTED, COMMA );
- bError = TRUE;
- }
+ pParser->Error( bBracket
+ ? SbERR_BAD_BRACKETS
+ : SbERR_EXPECTED, COMMA );
+ bError = TRUE;
}
- if ( !bError )
+ else
{
pParser->Next();
eTok = pParser->Peek();