15 #ifndef Om_Language_Operation_ProgramOperation_
24 template <typename ThisProgram>
27 Om::Language::Operation::ProgramOperation<ThisProgram>
32 inline char const * Type_::GetName() {
33 return ThisProgram::GetName();
37 template <
typename TheProgramOperation>
38 inline void Type_::GiveElements(
39 TheProgramOperation &,
40 Consumer & theConsumer
42 theConsumer.TakeElement(
43 DefaultIncompleteOperation<
44 ProgramOperation<ThisProgram>
52 inline bool Type_::ParseQuotedElements(
53 Evaluation & theEvaluation,
56 ThisProgram theProgram;
57 theProgram.ParseElements(theReader);
58 theEvaluation.TakeQuotedProducer(theProgram);
63 template <
typename TheOperand>
64 inline bool Type_::TakeOperand(
65 Evaluation & theEvaluation,
66 TheOperand & theOperand
71 return this->TakeQuotedProducer(
73 *theOperand.GetProgram()
78 template <
typename TheProducer>
79 inline bool Type_::TakeQuotedProducer(
80 Evaluation & theEvaluation,
81 TheProducer & theProducer
83 ThisProgram theProgram;
84 theProgram.TakeElements(theProducer);
85 theEvaluation.TakeQuotedProducer(theProgram);