inline bool Type_::TakeQuotedProducer( Evaluation & theEvaluation, TheProducer & theProducer ) { if ( this->thisExpression.IsEmpty() ) { this->thisExpression.TakeElements(theProducer); if ( this->thisExpression.IsEmpty() ) { QuoteOperation::Give(theEvaluation); return true; } return false; } this->thisExpression.TakeQuotedProducer(theProducer); theEvaluation.TakeQuotedProducer(this->thisExpression); return true; }
inline bool Type_::TakeQuotedProducer( Evaluation & theEvaluation, TheProducer & theProducer ) { if ( this->thisProgram.IsEmpty() ) { this->thisProgram.TakeElements(theProducer); if ( this->thisProgram.IsEmpty() ) { ProgramOperation<ThisProgram>::Give(theEvaluation); return true; } return false; } this->thisProgram.TakeElements(theProducer); theEvaluation.TakeQuotedProducer(this->thisProgram); return true; }
inline bool Type_::TakeOperand( Evaluation & theEvaluation, TheOperand & theOperand ) { assert( !theOperand.IsEmpty() ); if ( this->thisExpression.IsEmpty() ) { this->thisExpression.TakeElements(*theOperand); if ( this->thisExpression.IsEmpty() ) { QuoteOperation::Give(theEvaluation); return true; } return false; } this->thisExpression.TakeOperand(theOperand); theEvaluation.TakeQuotedProducer(this->thisExpression); return true; }
inline void Type_::Give(Evaluation & theEvaluation) { Lexicon theLexicon; theEvaluation.GetTranslator().GiveElements(theLexicon); theEvaluation.TakeQuotedProducer(theLexicon); }