15 #ifndef Om_Language_Operation_PullOperation_
25 typename ThisProgram, \
26 typename ThisImplementation \
30 Om::Language::Operation::PullOperation< \
38 template <
typename ThePullOperation>
39 inline void Type_::GiveElements(
41 Consumer & theConsumer
43 theConsumer.TakeElement(
51 inline bool Type_::ParseQuotedElements(
52 Evaluation & theEvaluation,
55 ThisProgram theProgram;
56 theProgram.ParseElements(theReader);
57 return this->TakeQuotedElements(
64 template <
typename TheOperand>
65 inline bool Type_::TakeOperand(
66 Evaluation & theEvaluation,
67 TheOperand & theOperand
72 return this->TakeQuotedProducer(
74 *theOperand.GetProgram()
79 template <
typename TheProducer>
80 inline bool Type_::TakeQuotedProducer(
81 Evaluation & theEvaluation,
82 TheProducer & theProducer
84 ThisProgram theProgramToPullFrom;
85 theProgramToPullFrom.TakeElements(theProducer);
87 ThisProgram thePulledProgram;
88 ThisImplementation::Pull(
93 theEvaluation.TakeQuotedProducer(theProgramToPullFrom);
94 theEvaluation.TakeQuotedProducer(thePulledProgram);
102 static Operator
const theOperator(
103 ThisImplementation::GetName()
The Operator implementation.