summaryrefslogtreecommitdiffstats
path: root/kspread/formula.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kspread/formula.cc')
-rw-r--r--kspread/formula.cc134
1 files changed, 67 insertions, 67 deletions
diff --git a/kspread/formula.cc b/kspread/formula.cc
index 73b4ffdf..17b95497 100644
--- a/kspread/formula.cc
+++ b/kspread/formula.cc
@@ -34,10 +34,10 @@
#include <limits.h>
-#include <qregexp.h>
-#include <qstring.h>
-#include <qvaluevector.h>
-#include <qvaluestack.h>
+#include <tqregexp.h>
+#include <tqstring.h>
+#include <tqvaluevector.h>
+#include <tqvaluestack.h>
#include <klocale.h>
@@ -98,12 +98,12 @@ public:
Sheet *sheet;
bool dirty;
bool valid;
- QString expression;
- QValueVector<Opcode> codes;
- QValueVector<Value> constants;
+ TQString expression;
+ TQValueVector<Opcode> codes;
+ TQValueVector<Value> constants;
};
-class TokenStack : public QValueVector<Token>
+class TokenStack : public TQValueVector<Token>
{
public:
TokenStack();
@@ -127,14 +127,14 @@ const Token Token::null;
// helper function: return operator of given token text
// e.g. "*" yields Operator::Asterisk, and so on
-Token::Op KSpread::matchOperator( const QString& text )
+Token::Op KSpread::matchOperator( const TQString& text )
{
Token::Op result = Token::InvalidOp;
if( text.length() == 1 )
{
- QChar p = text[0];
- switch( p.unicode() )
+ TQChar p = text[0];
+ switch( p.tqunicode() )
{
case '+': result = Token::Plus; break;
case '-': result = Token::Minus; break;
@@ -209,7 +209,7 @@ static Value tokenAsValue( const Token& token )
**********************/
// creates a token
-Token::Token( Type type, const QString& text, int pos )
+Token::Token( Type type, const TQString& text, int pos )
{
m_type = type;
m_text = text;
@@ -252,10 +252,10 @@ double Token::asFloat() const
else return 0.0;
}
-QString Token::asString() const
+TQString Token::asString() const
{
if( isString() ) return m_text.mid( 1, m_text.length()-2 );
- else return QString::null;
+ else return TQString();
}
Token::Op Token::asOperator() const
@@ -264,18 +264,18 @@ Token::Op Token::asOperator() const
else return InvalidOp;
}
-QString Token::sheetName() const
+TQString Token::sheetName() const
{
- if( !isCell() && !isRange() ) return QString::null;
- int i = m_text.find( '!' );
- if( i < 0 ) return QString();
- QString sheet = m_text.left( i );
+ if( !isCell() && !isRange() ) return TQString();
+ int i = m_text.tqfind( '!' );
+ if( i < 0 ) return TQString();
+ TQString sheet = m_text.left( i );
return sheet;
}
-QString Token::description() const
+TQString Token::description() const
{
- QString desc;
+ TQString desc;
switch (m_type )
{
@@ -292,7 +292,7 @@ QString Token::description() const
while( desc.length() < 10 ) desc.prepend( ' ' );
desc.prepend( " " );
- desc.prepend( QString::number( m_pos ) );
+ desc.prepend( TQString::number( m_pos ) );
desc.append( " : " ).append( m_text );
return desc;
@@ -303,7 +303,7 @@ QString Token::description() const
TokenStack
**********************/
-TokenStack::TokenStack(): QValueVector<Token>()
+TokenStack::TokenStack(): TQValueVector<Token>()
{
topIndex = 0;
ensureSpace();
@@ -353,9 +353,9 @@ void TokenStack::ensureSpace()
**********************/
// helper function: return true for valid identifier character
-bool KSpread::isIdentifier( QChar ch )
+bool KSpread::isIdentifier( TQChar ch )
{
- return ( ch.unicode() == '_' ) || (ch.unicode() == '$' ) || ( ch.isLetter() );
+ return ( ch.tqunicode() == '_' ) || (ch.tqunicode() == '$' ) || ( ch.isLetter() );
}
@@ -404,7 +404,7 @@ Sheet* Formula::sheet() const
// note that both the real lex and parse processes will happen later on
// when needed (i.e. "lazy parse"), for example during formula evaluation.
-void Formula::setExpression( const QString& expr )
+void Formula::setExpression( const TQString& expr )
{
d->expression = expr;
d->dirty = true;
@@ -413,7 +413,7 @@ void Formula::setExpression( const QString& expr )
// Returns the expression associated with this formula.
-QString Formula::expression() const
+TQString Formula::expression() const
{
return d->expression;
}
@@ -441,7 +441,7 @@ bool Formula::isValid() const
void Formula::clear()
{
- d->expression = QString::null;
+ d->expression = TQString();
d->dirty = true;
d->valid = false;
d->constants.clear();
@@ -461,7 +461,7 @@ Tokens Formula::tokens() const
return scan( d->expression, locale );
}
-Tokens Formula::scan( const QString& expr, KLocale* locale ) const
+Tokens Formula::scan( const TQString& expr, KLocale* locale ) const
{
// to hold the result
Tokens tokens;
@@ -471,14 +471,14 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
InString, InIdentifier, InCell, InRange, InSheetOrAreaName } state;
// use locale settings if specified
- QString thousand = locale ? locale->thousandsSeparator() : "";
- QString decimal = locale ? locale->decimalSymbol() : ".";
+ TQString thousand = locale ? locale->thousandsSeparator() : "";
+ TQString decimal = locale ? locale->decimalSymbol() : ".";
// initialize variables
state = Start;
unsigned int i = 0;
- QString ex = expr;
- QString tokenText;
+ TQString ex = expr;
+ TQString tokenText;
int tokenStart = 0;
// first character must be equal sign (=)
@@ -489,12 +489,12 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
ex.remove( 0, 1 );
// force a terminator
- ex.append( QChar() );
+ ex.append( TQChar() );
// main loop
while( (state != Bad) && (state != Finish) && (i < ex.length()) )
{
- QChar ch = ex[i];
+ TQChar ch = ex[i];
switch( state )
{
@@ -527,7 +527,7 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
}
// aposthrophe (') marks sheet name for 3-d cell, e.g 'Sales Q3'!A4, or a named range
- else if ( ch.unicode() == '\'' )
+ else if ( ch.tqunicode() == '\'' )
{
i++;
state = InSheetOrAreaName;
@@ -541,14 +541,14 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
}
// terminator character
- else if ( ch == QChar::null )
+ else if ( ch == TQChar::null )
state = Finish;
// look for operator match
else
{
int op;
- QString s;
+ TQString s;
// check for two-chars operator, such as '<=', '>=', etc
s.append( ch ).append( ex[i+1] );
@@ -557,7 +557,7 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
// check for one-char operator, such as '+', ';', etc
if( op == Token::InvalidOp )
{
- s = QString( ch );
+ s = TQString( ch );
op = matchOperator( s );
}
@@ -597,7 +597,7 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
else
{
// check for cell reference, e.g A1, VV123, ...
- QRegExp exp("(\\$?)([a-zA-Z]+)(\\$?)([0-9]+)$");
+ TQRegExp exp("(\\$?)([a-zA-Z]+)(\\$?)([0-9]+)$");
int n = exp.search( tokenText );
if( n >= 0 )
state = InCell;
@@ -625,13 +625,13 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
{
// check if it's a cell ref like A32, not named area
- QString cell;
+ TQString cell;
for( int j = tokenText.length()-1; j>=0; j-- )
if( tokenText[j] == '!' )
break;
else
cell.prepend( tokenText[j] );
- QRegExp exp("(\\$?)([a-zA-Z]+)(\\$?)([0-9]+)$");
+ TQRegExp exp("(\\$?)([a-zA-Z]+)(\\$?)([0-9]+)$");
if( exp.search( cell ) != 0 )
{
@@ -680,7 +680,7 @@ Tokens Formula::scan( const QString& expr, KLocale* locale ) const
case InSheetOrAreaName:
// consume until '
- if ( ch.unicode() != '\'' )
+ if ( ch.tqunicode() != '\'' )
tokenText.append( ex[i++] );
else
@@ -842,7 +842,7 @@ void Formula::compile( const Tokens& tokens ) const
if( tokens.count() == 0 ) return;
TokenStack syntaxStack;
- QValueStack<int> argStack;
+ TQValueStack<int> argStack;
unsigned argCount = 1;
for( unsigned i = 0; i <= tokens.count(); i++ )
@@ -966,7 +966,7 @@ void Formula::compile( const Tokens& tokens ) const
}
}
- // rule for function call with parentheses, but without argument
+ // rule for function call with tqparentheses, but without argument
// e.g. "2*PI()"
if( !ruleFound )
if( syntaxStack.itemCount() >= 3 )
@@ -987,7 +987,7 @@ void Formula::compile( const Tokens& tokens ) const
}
}
- // rule for parenthesis: ( Y ) -> Y
+ // rule for tqparenthesis: ( Y ) -> Y
if( !ruleFound )
if( syntaxStack.itemCount() >= 3 )
{
@@ -1143,13 +1143,13 @@ void Formula::compile( const Tokens& tokens ) const
}
}
-bool Formula::isNamedArea( const QString& expr ) const
+bool Formula::isNamedArea( const TQString& expr ) const
{
- QString tokenText( expr );
+ TQString tokenText( expr );
// check for named areas ...
if (d->sheet) {
- const QValueList<Reference> areas = d->sheet->doc()->listArea();
- QValueList<Reference>::const_iterator it;
+ const TQValueList<Reference> areas = d->sheet->doc()->listArea();
+ TQValueList<Reference>::const_iterator it;
for (it = areas.begin(); it != areas.end(); ++it) {
if ((*it).ref_name.lower() == tokenText.lower()) {
// we got a named area
@@ -1171,12 +1171,12 @@ struct stackEntry {
Value Formula::eval() const
{
- QValueStack<stackEntry> stack;
+ TQValueStack<stackEntry> stack;
stackEntry entry;
unsigned index;
Value val1, val2;
- QString c;
- QValueVector<Value> args;
+ TQString c;
+ TQValueVector<Value> args;
Sheet *sheet = 0;
ValueParser* parser = 0;
@@ -1469,9 +1469,9 @@ Value Formula::eval() const
// Debugging aid
-QString Formula::dump() const
+TQString Formula::dump() const
{
- QString result;
+ TQString result;
if( d->dirty )
{
@@ -1479,36 +1479,36 @@ QString Formula::dump() const
compile( tokens );
}
- result = QString("Expression: [%1]\n").arg( d->expression );
+ result = TQString("Expression: [%1]\n").tqarg( d->expression );
#if 0
Value value = eval();
- result.append( QString("Result: %1\n").arg(
+ result.append( TQString("Result: %1\n").tqarg(
converter->asString(value).asString() ) );
#endif
result.append(" Constants:\n");
for( unsigned c = 0; c < d->constants.count(); c++ )
{
- QString vtext;
+ TQString vtext;
Value val = d->constants[c];
- if( val.isString() ) vtext = QString("[%1]").arg( val.asString() );
- else if( val.isNumber() ) vtext = QString("%1").arg( val.asFloat() );
- else if( val.isBoolean() ) vtext = QString("%1").arg( val.asBoolean() ? "True":"False");
+ if( val.isString() ) vtext = TQString("[%1]").tqarg( val.asString() );
+ else if( val.isNumber() ) vtext = TQString("%1").tqarg( val.asFloat() );
+ else if( val.isBoolean() ) vtext = TQString("%1").tqarg( val.asBoolean() ? "True":"False");
else if( val.isError() ) vtext = "error";
else vtext = "???";
- result += QString(" #%1 = %2\n").arg(c).arg( vtext );
+ result += TQString(" #%1 = %2\n").tqarg(c).tqarg( vtext );
}
result.append("\n");
result.append(" Code:\n");
for( unsigned i = 0; i < d->codes.count(); i++ )
{
- QString ctext;
+ TQString ctext;
switch( d->codes[i].type )
{
- case Opcode::Load: ctext = QString("Load #%1").arg( d->codes[i].index ); break;
- case Opcode::Ref: ctext = QString("Ref #%1").arg( d->codes[i].index ); break;
- case Opcode::Function: ctext = QString("Function (%1)").arg( d->codes[i].index ); break;
+ case Opcode::Load: ctext = TQString("Load #%1").tqarg( d->codes[i].index ); break;
+ case Opcode::Ref: ctext = TQString("Ref #%1").tqarg( d->codes[i].index ); break;
+ case Opcode::Function: ctext = TQString("Function (%1)").tqarg( d->codes[i].index ); break;
case Opcode::Add: ctext = "Add"; break;
case Opcode::Sub: ctext = "Sub"; break;
case Opcode::Mul: ctext = "Mul"; break;
@@ -1528,7 +1528,7 @@ QString Formula::dump() const
return result;
}
-QTextStream& operator<<( QTextStream& ts, Formula formula )
+TQTextStream& operator<<( TQTextStream& ts, Formula formula )
{
ts << formula.dump();
return ts;