26 #ifndef Om_Language_Operand_
28 #define Om_Language_Operand_ \
34 #ifndef Om_Macro_Precompilation_
36 #include "boost/swap.hpp"
40 #define Om_Language_Operand_GetName_() \
66 template <
typename TheProgram>
68 std::auto_ptr<TheProgram>
115 template <
typename TheProgram>
117 std::auto_ptr<TheProgram>
126 template <
typename TheOperand>
129 template <
typename TheOperator>
132 template <
typename TheProducer>
135 template <
typename TheSeparator>
A partial implementation of Element.
The Operand implementation.
bool Equals(Operand const &) const
void SetProgram(std::auto_ptr< TheProgram >)
Replaces the Program owned by this Operand with the argument.
virtual bool IsEmpty() const
void TakeOperator(TheOperator &)
Operand & operator=(Operand)
static char const * GetName()
Operand(std::auto_ptr< TheProgram >)
virtual void TakeElements(Producer &)
Takes each Element of the argument.
void TakeSeparator(TheSeparator &)
Program const * GetProgram() const
void TakeQuotedProducer(TheProducer &)
Owner< Program > thisProgram
virtual Program & operator*()
virtual void TakeElements(Producer const &)
This is an overloaded member function, provided for convenience. It differs from the above function o...
virtual void ParseElements(Reader &)
void TakeOperand(TheOperand &)
virtual void ParseQuotedElements(Reader &)
An Element giver; gives from the front.
The Program implementation.
Produces each CodePoint until the end of the Source.
A polymorphic object with value semantics.
bool operator!=(DefaultAtom< TheImplementation > const &, DefaultAtom< TheImplementation > const &)
bool operator==(DefaultAtom< TheImplementation > const &, DefaultAtom< TheImplementation > const &)
void swap(Om::Language::Expression &, Om::Language::Expression &)