15 #ifndef Om_Language_Operation_SkipOperation_
21 #ifndef Om_Macro_Precompilation_
23 #include "boost/test/unit_test.hpp"
33 BOOST_AUTO_TEST_SUITE(SkipOperationTest)
35 BOOST_AUTO_TEST_CASE(DefinitionTest) {
42 BOOST_AUTO_TEST_CASE(GeneralTest) {
59 BOOST_AUTO_TEST_SUITE_END()
74 Om::Language::Operation::SkipOperation
78 inline char const * Type_::GetName() {
82 template <
typename TheSkipOperation>
83 inline void Type_::GiveElements(
84 TheSkipOperation & theSkipOperation,
85 Consumer & theConsumer
87 theConsumer.TakeElement(
91 !theSkipOperation.thisExpression.IsEmpty()
93 theConsumer.TakeQuotedElements(theSkipOperation.thisExpression);
99 inline Type_::SkipOperation():
102 template <
typename TheOperand>
103 inline bool Type_::TakeOperand(
104 Evaluation & theEvaluation,
105 TheOperand & theOperand
108 !theOperand.IsEmpty()
110 return this->TakeQuotedProducer(
112 *theOperand.GetProgram()
116 template <
typename TheProducer>
117 inline bool Type_::TakeQuotedProducer(
118 Evaluation & theEvaluation,
119 TheProducer & theProducer
122 this->thisExpression.IsEmpty()
124 this->thisExpression.TakeElements(theProducer);
125 return this->thisExpression.IsEmpty();
127 theEvaluation.TakeProducer(this->thisExpression);
128 theEvaluation.TakeQuotedProducer(theProducer);
#define Om_Language_Operation_SkipOperation_GetName_()