15 #ifndef Om_Language_Evaluator_
17 #define Om_Language_Evaluator_ \
18 Om::Language::Evaluator
23 #ifndef Om_Macro_Precompilation_
25 #include "boost/ptr_container/ptr_vector.hpp"
38 class IncompleteOperation;
114 template <
typename TheOperand>
117 template <
typename TheOperand>
123 template <
typename TheOperation>
125 std::auto_ptr<TheOperation>
134 template <
typename TheOperator>
137 template <
typename TheOperator>
143 template <
typename TheProducer>
146 template <
typename TheProducer>
152 template <
typename TheSeparator>
163 template <
typename TheIterator>
170 template <
typename TheEvaluator>
An Element taker; takes at the back.
A partial implementation of Consumer.
A Consumer that evaluates Program instances.
Consumer & thisOutput
The output Consumer.
static void GiveElements(TheIterator, TheIterator const, Consumer &)
virtual void GiveElements(Consumer &)
Gives to the argument each Element currently contained in the Evaluator.
void TakeOperator(TheOperator &)
void Evaluate(Evaluation &)
virtual bool IsEmpty() const
boost::ptr_vector< Operation::IncompleteOperation > IncompleteOperationVector
An IncompleteOperation vector.
virtual std::auto_ptr< Program > GiveProgram() const
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void GiveElements(Consumer &) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
void TakeQuotedProducer(Evaluation &, TheProducer &)
void TakeOperation(std::auto_ptr< TheOperation >)
virtual ~Evaluator()
Flushes the contents.
static std::auto_ptr< Program > GiveProgram(TheEvaluator &)
Evaluator const & operator=(Evaluator const &)
void TakeOperand(TheOperand &)
void TakeQuotedProducer(TheProducer &)
bool thisGaveElementToOutput
True if an Element has been given to the output Consumer.
virtual void ParseElements(Reader &)
virtual std::auto_ptr< Program > GiveProgram()
Returns a new Program populated with the contents of this.
Evaluator(Evaluator const &)
IncompleteOperationVector thisIncompleteOperationVector
A vector of IncompleteOperation with the most current at the back.
void TakeOperator(Evaluation &, TheOperator &)
virtual void ParseQuotedElements(Reader &)
Translator const & thisTranslator
The Translator used for resolving Operator to Operation.
void ParseQuotedElements(Evaluation &, Reader &)
void TakeOperand(Evaluation &, TheOperand &)
Evaluator(Consumer &theOutput, Translator const &theTranslator)
void TakeSeparator(TheSeparator &)
Translator const & GetTranslator() const
An Element giver; gives from the front.
Produces each CodePoint until the end of the Source.
An Operator lookup for use by an Evaluator.