|
virtual | ~Evaluator () |
| Flushes the contents. More...
|
|
| Evaluator (Consumer &theOutput, Translator const &theTranslator) |
|
virtual void | Clear () |
|
Translator const & | GetTranslator () const |
|
virtual void | GiveElements (Consumer &) |
| Gives to the argument each Element currently contained in the Evaluator. More...
|
|
virtual void | GiveElements (Consumer &) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual std::auto_ptr< Program > | GiveProgram () |
| Returns a new Program populated with the contents of this. More...
|
|
virtual std::auto_ptr< Program > | GiveProgram () const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual bool | IsEmpty () const |
|
virtual void | ParseElements (Reader &) |
|
virtual void | ParseQuotedElements (Reader &) |
|
void | ParseQuotedElements (Evaluation &, Reader &) |
|
template<typename TheOperand > |
void | TakeOperand (TheOperand &) |
|
template<typename TheOperand > |
void | TakeOperand (Evaluation &, TheOperand &) |
|
template<typename TheOperation > |
void | TakeOperation (std::auto_ptr< TheOperation >) |
|
template<typename TheOperator > |
void | TakeOperator (TheOperator &) |
|
template<typename TheOperator > |
void | TakeOperator (Evaluation &, TheOperator &) |
|
template<typename TheProducer > |
void | TakeQuotedProducer (TheProducer &) |
|
template<typename TheProducer > |
void | TakeQuotedProducer (Evaluation &, TheProducer &) |
|
template<typename TheSeparator > |
void | TakeSeparator (TheSeparator &) |
|
virtual | ~DefaultConsumer ()=0 |
|
virtual void | TakeElement (Operand &) |
| Takes a non-empty Element, which gets copied or swapped. More...
|
|
virtual void | TakeElement (Operand const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeElement (Operator &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeElement (Operator const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeElement (Separator &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeElement (Separator const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeElements (Producer &) |
| Takes each Element of the argument. More...
|
|
virtual void | TakeElements (Producer const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual void | TakeQuotedElements (Producer &) |
| Constructs and takes an Operand, which takes each Element from the argument Producer. More...
|
|
virtual void | TakeQuotedElements (Producer const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual | ~Consumer ()=0 |
|
template<typename TheOperator , typename TheSeparator > |
void | Parse (Reader &) |
|
void | TakeElement (Null &) |
| Takes a Null Element, which is disregarded. More...
|
|
void | TakeElement (Null const &) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
|
|
virtual | ~Producer ()=0 |
|
The Evaluator interprets each Element as follows:
- When an Operator is taken, the Translator is queried for the corresponding Operation. If found, its implementation is given to the Evaluator for further evaluation; otherwise, the IncompleteOperation vector is flushed and the Operator is given to the output Consumer.
- When a Operand is taken, it is given to the most current IncompleteOperation in the IncompleteOperation vector. If none, it is given to the output Consumer.
- When a Separator is taken, it is disregarded.
The program output by the Evaluator is an Expression. Note that if each line in the Expression was terminated by Symbol::theLineSeparatorSymbol, more than one Evaluator could not be connected in sequence without each contributing Symbol::theLineSeparatorSymbol to the final output.
Definition at line 58 of file evaluator.hpp.