24#include <tqstringlist.h>
27namespace KFormula { class SymbolTable; }
33class FormulaStringParser {
35 FormulaStringParser( const KFormula::SymbolTable& symbolTable, TQString formula );
36 ~FormulaStringParser();
38 TQDomDocument parse();
40 TQStringList errorList() const { return m_errorList; }
44 enum TokenType { NUMBER, NAME, PLUS, SUB, MUL, DIV, POW, INDEX, LP, RP, LB, RB,
45 ASSIGN, COMMA, SEMIC, NEWLINE, OTHER, EOL };
47 ParserNode* parseAssign();
48 ParserNode* parseExpr();
49 ParserNode* parseTerm();
50 ParserNode* parsePower();
51 ParserNode* parsePrimary();
52 void expect( TokenType type, TQString msg );
55 bool eol() { return m_formula.length() == pos; }
60 void error( TQString err );
61 TQStringList m_errorList;
63 const KFormula::SymbolTable& m_symbolTable;
68 bool m_newlineIsSpace;
70 TokenType currentType;
|