Changeset 14744 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/ShoveExpressions.cs
- Timestamp:
- 03/10/17 21:42:09 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/ShoveExpressions.cs
r14733 r14744 6 6 7 7 public abstract class ShoveExpression<T> : StatelessExpression { 8 protected voidEval(IStack<T> stack, IStack<long> integerStack, int count = 1) {8 protected bool Eval(IStack<T> stack, IStack<long> integerStack, int count = 1) { 9 9 if (integerStack.Count == 0 || 10 10 integerStack.Top > stack.Count - count || 11 11 integerStack.Top < 0 || 12 12 stack.Count < 2) 13 return ;13 return false; 14 14 15 15 var index = (int)integerStack.Pop(); … … 17 17 18 18 stack.Insert(index, item); 19 return true; 19 20 } 20 21 } … … 22 23 [PushExpression(StackType.Integer, "INTEGER.SHOVE")] 23 24 public class IntegerShoveExpression : ShoveExpression<long> { 24 public override voidEval(IPushInterpreter interpreter) {25 Eval(interpreter.IntegerStack, interpreter.IntegerStack, 2);25 public override bool Eval(IPushInterpreter interpreter) { 26 return Eval(interpreter.IntegerStack, interpreter.IntegerStack, 2); 26 27 } 27 28 } … … 29 30 [PushExpression(StackType.Float, "FLOAT.SHOVE")] 30 31 public class FloatShoveExpression : ShoveExpression<double> { 31 public override voidEval(IPushInterpreter interpreter) {32 Eval(interpreter.FloatStack, interpreter.IntegerStack);32 public override bool Eval(IPushInterpreter interpreter) { 33 return Eval(interpreter.FloatStack, interpreter.IntegerStack); 33 34 } 34 35 } … … 36 37 [PushExpression(StackType.Boolean, "BOOLEAN.SHOVE")] 37 38 public class BooleanShoveExpression : ShoveExpression<bool> { 38 public override voidEval(IPushInterpreter interpreter) {39 Eval(interpreter.BooleanStack, interpreter.IntegerStack);39 public override bool Eval(IPushInterpreter interpreter) { 40 return Eval(interpreter.BooleanStack, interpreter.IntegerStack); 40 41 } 41 42 } … … 43 44 [PushExpression(StackType.Name, "NAME.SHOVE")] 44 45 public class NameShoveExpression : ShoveExpression<string> { 45 public override voidEval(IPushInterpreter interpreter) {46 Eval(interpreter.NameStack, interpreter.IntegerStack);46 public override bool Eval(IPushInterpreter interpreter) { 47 return Eval(interpreter.NameStack, interpreter.IntegerStack); 47 48 } 48 49 } … … 50 51 [PushExpression(StackType.Exec, "EXEC.SHOVE")] 51 52 public class ExecShoveExpression : ShoveExpression<Expression> { 52 public override voidEval(IPushInterpreter interpreter) {53 Eval(interpreter.ExecStack, interpreter.IntegerStack);53 public override bool Eval(IPushInterpreter interpreter) { 54 return Eval(interpreter.ExecStack, interpreter.IntegerStack); 54 55 } 55 56 } … … 57 58 [PushExpression(StackType.Code, "CODE.SHOVE")] 58 59 public class CodeShoveExpression : ShoveExpression<Expression> { 59 public override voidEval(IPushInterpreter interpreter) {60 Eval(interpreter.CodeStack, interpreter.IntegerStack);60 public override bool Eval(IPushInterpreter interpreter) { 61 return Eval(interpreter.CodeStack, interpreter.IntegerStack); 61 62 } 62 63 }
Note: See TracChangeset
for help on using the changeset viewer.