AIMA.Core.Logic.FOL.SubstVisitor.visitQuantifiedSentence C# (CSharp) Метод

visitQuantifiedSentence() публичный Метод

public visitQuantifiedSentence ( QuantifiedSentence sentence, Object arg ) : Object
sentence AIMA.Core.Logic.FOL.Parsing.AST.QuantifiedSentence
arg Object
Результат Object
        public override Object visitQuantifiedSentence(QuantifiedSentence sentence,
                Object arg) {

                    Dictionary<Variable, Term> substitution = (Dictionary<Variable, Term>)arg;

		Sentence quantified = sentence.getQuantified();
		Sentence quantifiedAfterSubs = (Sentence) quantified.accept(this, arg);

		List<Variable> variables = new List<Variable>();
		foreach (Variable v in sentence.getVariables()) {

			if (substitution.ContainsKey(v)) {
                Term st = substitution[v];
				if (st is Variable) {
					// Only if it is a variable to I replace it, otherwise
					// I drop it.
					variables.Add((Variable) st.copy());
				}
			} else {
				// No substitution for the quantified variable, so
				// keep it.
				variables.Add((Variable)v.copy());
			}
		}

		// If not variables remaining on the quantifier, then drop it
		if (variables.Count == 0) {
			return quantifiedAfterSubs;
		}

		return new QuantifiedSentence(sentence.getQuantifier(), variables,
				quantifiedAfterSubs);
	}
    }