23 #ifndef libmath_reader_h
24 #define libmath_reader_h
26 #include <math++/error.h>
32 template<
class>
class TNode;
55 tkNumber = 1000, tkSymbol,
56 tkUnEqu, tkLess, tkGreater, tkLessEqu, tkGreaterEqu,
57 tkVeryLess, tkVeryGreat,
58 tkEqu =
'=', tkComma =
',',
59 tkPlus =
'+', tkMinus =
'-', tkMul =
'*', tkDiv =
'/', tkPow =
'^',
60 tkRndOpen =
'(', tkRndClose =
')', tkBrOpen =
'[', tkBrClose =
']',
61 tkAngOpen =
'<', tkAngClose =
'>', tkSetOpen =
'{', tkSetClose =
'}'
65 std::string::size_type FPos;
72 TReader(
const std::string& AInput);
105 static std::string tok2str(TToken AToken);
107 void consume(TToken AToken);
114 static TNode<T> *
parse(
const std::string& AInput,
bool AEquation =
false);
119 #include <math++/reader.tcc>
static TNode< T > * parse(const std::string &AInput, bool AEquation=false)