using HeuristicLab.Algorithms.PushGP.Interpreter; namespace HeuristicLab.Algorithms.PushGP.Expressions.Name { public class NameDefineXExecExpression : Expression { private readonly string name; public NameDefineXExecExpression(string name) { this.name = name; } public override bool IsCodeOp { get { return false; } } public override void Eval(IInterpreter interpreter) { Expression expression; if (interpreter.CustomExpressions.TryGetValue(this.name, out expression)) { interpreter.ExecStack.Push(expression); } else { interpreter.NameStack.Push(this.name); } } public override string ToString() { return this.name; } } }