Om
Public Member Functions | Private Member Functions | List of all members
Om::Language::Consumer Class Referenceabstract

An Element taker; takes at the back. More...

#include "consumer.hpp"

+ Inheritance diagram for Om::Language::Consumer:

Public Member Functions

virtual ~Consumer ()=0
 
template<typename TheOperator , typename TheSeparator >
void Parse (Reader &)
 
virtual void ParseElements (Reader &)=0
 
virtual void ParseQuotedElements (Reader &)=0
 
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 void TakeElement (Operand &)=0
 Takes a non-empty Element, which gets copied or swapped. More...
 
virtual void TakeElement (Operand const &)=0
 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 &)=0
 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 &)=0
 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 &)=0
 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 &)=0
 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 &)=0
 Takes each Element of the argument. More...
 
virtual void TakeElements (Producer const &)=0
 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 &)=0
 Constructs and takes an Operand, which takes each Element from the argument Producer. More...
 
virtual void TakeQuotedElements (Producer const &)=0
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 

Private Member Functions

Consumeroperator= (Consumer const &)
 

Detailed Description

Definition at line 42 of file consumer.hpp.

Constructor & Destructor Documentation

◆ ~Consumer()

virtual Om::Language::Consumer::~Consumer ( )
pure virtual

Member Function Documentation

◆ Parse()

template<typename TheOperator , typename TheSeparator >
void Om::Language::Consumer::Parse ( Reader )

◆ ParseElements()

virtual void Om::Language::Consumer::ParseElements ( Reader )
pure virtual

◆ ParseQuotedElements()

virtual void Om::Language::Consumer::ParseQuotedElements ( Reader )
pure virtual

◆ TakeElement() [1/8]

void Om::Language::Consumer::TakeElement ( Null )

◆ TakeElement() [2/8]

void Om::Language::Consumer::TakeElement ( Null const &  )

◆ TakeElement() [3/8]

virtual void Om::Language::Consumer::TakeElement ( Operand )
pure virtual
Precondition
The Element argument is non-empty.

It is up to the implementation to decide how to process an Element. Each Element is processed eagerly, meaning that two Operators received consecutively may be processed differently than the receipt of one Operator comprised of a concatenation of both.

Implemented in Om::Language::DefaultConsumer< ThisImplementation, ThisInterface >, Om::Language::DefaultConsumer< Writer >, and Om::Language::DefaultConsumer< Evaluator >.

◆ TakeElement() [4/8]

virtual void Om::Language::Consumer::TakeElement ( Operand const &  )
pure virtual

◆ TakeElement() [5/8]

virtual void Om::Language::Consumer::TakeElement ( Operator )
pure virtual

◆ TakeElement() [6/8]

virtual void Om::Language::Consumer::TakeElement ( Operator const &  )
pure virtual

◆ TakeElement() [7/8]

virtual void Om::Language::Consumer::TakeElement ( Separator )
pure virtual

◆ TakeElement() [8/8]

virtual void Om::Language::Consumer::TakeElement ( Separator const &  )
pure virtual

◆ TakeElements() [1/2]

virtual void Om::Language::Consumer::TakeElements ( Producer )
pure virtual

◆ TakeElements() [2/2]

virtual void Om::Language::Consumer::TakeElements ( Producer const &  )
pure virtual

◆ TakeQuotedElements() [1/2]

virtual void Om::Language::Consumer::TakeQuotedElements ( Producer )
pure virtual

◆ TakeQuotedElements() [2/2]

virtual void Om::Language::Consumer::TakeQuotedElements ( Producer const &  )
pure virtual

◆ operator=()

Consumer& Om::Language::Consumer::operator= ( Consumer const &  )
private

The documentation for this class was generated from the following file: