diff options
Diffstat (limited to 'kspread/formula.cc')
-rw-r--r-- | kspread/formula.cc | 134 |
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; |