コード例 #1
0
ファイル: pair_operation.cpp プロジェクト: sparist/Om
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
ファイル: front_push_operation.cpp プロジェクト: sparist/Om
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
ファイル: pair_operation.cpp プロジェクト: sparist/Om
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
ファイル: environment_operation.cpp プロジェクト: sparist/Om
inline void Type_::Give(Evaluation & theEvaluation) {
    Lexicon theLexicon;
    theEvaluation.GetTranslator().GiveElements(theLexicon);
    theEvaluation.TakeQuotedProducer(theLexicon);
}