32 #ifndef Om_Language_Lexicon_
34 #define Om_Language_Lexicon_ \
42 #ifndef Om_Macro_Precompilation_
44 #include "boost/ptr_container/ptr_map.hpp"
48 #define Om_Language_Lexicon_GetName_() \
95 virtual std::auto_ptr<
111 template <
typename TheOperand>
114 template <
typename TheOperator>
117 template <
typename TheProducer>
120 template <
typename TheSeparator>
132 typedef boost::ptr_map<
145 template <
typename TheNode>
147 TheNode * theFirstNode,
167 template <
typename TheOperator>
An Element taker; takes at the back.
A partial implementation of Program.
A Program that contains a single elemental item (or none, when IsEmpty() returns true).
virtual void Pop()
Pops the current item.
char thisOffset
The Element offset in the current Node.
bool Equals(ElementRange const &) const
PairList::Node const * thisNode
The current Node, or null if none.
virtual bool operator!() const
virtual Element const & operator*() const
ElementRange(Lexicon const &)
The Lexicon Program implementation.
virtual void GiveElements(Consumer &)
virtual void GiveElements(Consumer &) const
Lexicon & operator=(Lexicon)
virtual bool IsEmpty() const
PairList::Node & GetOperandTaker(TheOperator &)
Ensures that there is a last Node with an empty Operand, and the given Operator, and returns a refere...
void TakeOperator(TheOperator &)
Pair const & Find(Operator const &) const
virtual bool Translate(Evaluation &, Operator const &) const
Translates the Operator to an object that is then given to the Evaluation.
void TakeOperand(TheOperand &)
virtual std::auto_ptr< Om::Source::Source< Element const > > GetElementRange() const
boost::ptr_map< std::string, PairList::Node > Map
virtual void ParseElements(Reader &)
void TakeQuotedProducer(TheProducer &)
static void GiveElements(TheNode *theFirstNode, Consumer &theConsumer)
Gives each Element in the Lexicon.
void GivePair(PairList::NodeIndex const, Consumer &)
void FrontGivePair(Consumer &)
virtual void ParseQuotedElements(Reader &)
static char const * GetName()
void BackGivePair(Consumer &)
PairList::Node & GetOperandTaker()
Ensures that there is a last Node with an empty Operand, and with any Operator, and returns a referen...
void TakeSeparator(TheSeparator &)
The Operator implementation.
An Operator and an Operand.
Produces each CodePoint until the end of the Source.
An Operator lookup for use by an Evaluator.
A partial implementation of Source.
Any object that items can be pulled from.
bool operator!=(DefaultAtom< TheImplementation > const &, DefaultAtom< TheImplementation > const &)
bool operator==(DefaultAtom< TheImplementation > const &, DefaultAtom< TheImplementation > const &)
void swap(Om::Language::Expression &, Om::Language::Expression &)