示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}
示例#4
0
inline void Type_::Give(Evaluation & theEvaluation) {
    Lexicon theLexicon;
    theEvaluation.GetTranslator().GiveElements(theLexicon);
    theEvaluation.TakeQuotedProducer(theLexicon);
}