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

A Program that contains a single elemental item (or none, when IsEmpty() returns true). More...

#include "element.hpp"

+ Inheritance diagram for Om::Language::Element:
+ Collaboration diagram for Om::Language::Element:

Public Member Functions

virtual ~Element ()=0
 
virtual Programoperator * ()=0
 
virtual Program const & operator * () const =0
 
Programoperator -> ()
 
Program const * operator -> () const
 
virtual bool Equals (Element const &) const =0
 
virtual std::auto_ptr< Om::Source::Source< Element > > GetElementRange ()=0
 
virtual bool Merge (Operator &)
 
virtual bool Merge (Operator const &)
 
virtual bool Merge (Separator &)
 
virtual bool Merge (Separator const &)
 
virtual bool Equals (Program const &) const=0
 
virtual std::auto_ptr< Om::Source::Source< Element const > > GetElementRange () const=0
 
- Public Member Functions inherited from Om::Language::Program
virtual ~Program ()=0
 
virtual void Clear ()=0
 
virtual bool Equals (Program const &) const =0
 
virtual std::auto_ptr< Om::Source::Source< Element const > > GetElementRange () const =0
 
virtual std::auto_ptr< ProgramGiveProgram ()
 Returns a new Program populated with the contents of this. More...
 
virtual std::auto_ptr< ProgramGiveProgram () 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 =0
 
- Public Member Functions inherited from Om::Language::Consumer
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...
 
- Public Member Functions inherited from Om::Giveable
virtual ~Giveable ()=0
 
- Public Member Functions inherited from Om::Copyable
virtual ~Copyable ()=0
 
virtual std::auto_ptr< CopyableCopy () const =0
 
- Public Member Functions inherited from Om::Moveable
virtual ~Moveable ()=0
 
virtual std::auto_ptr< MoveableMove ()=0
 
- Public Member Functions inherited from Om::Language::Producer
virtual ~Producer ()=0
 
virtual void GiveElements (Consumer &)=0
 Gives each contained Element to the argument. More...
 
virtual void GiveElements (Consumer &) 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...
 
- Public Member Functions inherited from Om::Shareable<>
virtual ~Shareable ()=0
 
size_t GetOwnerCount () const
 

Private Member Functions

Elementoperator= (Element const &)
 

Additional Inherited Members

- Protected Member Functions inherited from Om::Shareable<>
 Shareable ()
 
 Shareable (Shareable const &)
 
Shareableoperator= (Shareable const &)
 

Detailed Description

Definition at line 32 of file element.hpp.

Constructor & Destructor Documentation

◆ ~Element()

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

Member Function Documentation

◆ operator *() [1/2]

virtual Program& Om::Language::Element::operator * ( )
pure virtual
Returns
The wrapped Program (Null if none).

Implemented in Om::Language::Null, Om::Language::Operand, and Om::Language::Atom.

◆ operator *() [2/2]

virtual Program const& Om::Language::Element::operator * ( ) const
pure virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Implemented in Om::Language::Null, Om::Language::Operand, and Om::Language::Atom.

◆ operator ->() [1/2]

Program* Om::Language::Element::operator -> ( )

◆ operator ->() [2/2]

Program const* Om::Language::Element::operator -> ( ) const

◆ Equals() [1/2]

virtual bool Om::Language::Element::Equals ( Element const &  ) const
pure virtual

◆ GetElementRange() [1/2]

virtual std::auto_ptr< Om::Source::Source<Element> > Om::Language::Element::GetElementRange ( )
pure virtual

◆ Merge() [1/4]

virtual bool Om::Language::Element::Merge ( Operator )
virtual
Returns
True if the Element could be merged.

Reimplemented in Om::Language::Null, and Om::Language::DefaultAtom< Operator >.

◆ Merge() [2/4]

virtual bool Om::Language::Element::Merge ( Operator const &  )
virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Reimplemented in Om::Language::DefaultAtom< Operator >, and Om::Language::Null.

◆ Merge() [3/4]

virtual bool Om::Language::Element::Merge ( Separator )
virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Reimplemented in Om::Language::Null, and Om::Language::DefaultAtom< Separator >.

◆ Merge() [4/4]

virtual bool Om::Language::Element::Merge ( Separator const &  )
virtual

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Reimplemented in Om::Language::Null, and Om::Language::DefaultAtom< Separator >.

◆ operator=()

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

◆ Equals() [2/2]

virtual bool Om::Language::Program::Equals

◆ GetElementRange() [2/2]

virtual std::auto_ptr< Om::Source::Source<Element const> > Om::Language::Program::GetElementRange
Returns
A non-null owner pointer to a new Element range.

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