Changeset 14952 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/DoCountExpressions.cs
- Timestamp:
- 05/10/17 11:23:05 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/DoCountExpressions.cs
r14908 r14952 2 2 using System; 3 3 4 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 4 5 using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes; 5 6 using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter; … … 7 8 8 9 [Serializable] 10 [StorableClass] 9 11 public abstract class DoCountExpression : LoopExpression { 10 12 11 13 protected DoCountExpression() { } 12 14 protected DoCountExpression(LoopState state) : base(state) { } 15 [StorableConstructor] 16 protected DoCountExpression(bool deserializing) : base(deserializing) { } 13 17 protected override bool HasInsufficientArguments(IInternalPushInterpreter interpreter, IPushStack<Expression> sourceStack) { 14 18 return interpreter.IntegerStack.Count < 1 || … … 44 48 /// </summary> 45 49 [Serializable] 50 [StorableClass] 46 51 [PushExpression(StackTypes.Code, "CODE.DO*COUNT", StackTypes.Integer)] 47 52 public class CodeDoCountExpression : DoCountExpression { 48 53 49 54 public CodeDoCountExpression() { } 55 public CodeDoCountExpression(LoopState state) : base(state) { } 56 [StorableConstructor] 57 protected CodeDoCountExpression(bool deserializing) : base(deserializing) { } 58 public override bool IsNoop(IInternalPushInterpreter interpreter) { 59 return State.Body == null && HasInsufficientArguments(interpreter, interpreter.CodeStack); 60 } 50 61 51 public CodeDoCountExpression(LoopState state) : base(state) { } 52 53 public override bool Eval(IInternalPushInterpreter interpreter) { 54 return Eval(interpreter, interpreter.CodeStack); 62 public override void Eval(IInternalPushInterpreter interpreter) { 63 Eval(interpreter, interpreter.CodeStack); 55 64 } 56 65 … … 78 87 /// </summary> 79 88 [Serializable] 89 [StorableClass] 80 90 [PushExpression(StackTypes.Exec, "EXEC.DO*COUNT", StackTypes.Integer)] 81 91 public class ExecDoCountExpression : DoCountExpression { 82 92 public ExecDoCountExpression() { } 83 93 public ExecDoCountExpression(LoopState state) : base(state) { } 94 [StorableConstructor] 95 protected ExecDoCountExpression(bool deserializing) : base(deserializing) { } 84 96 85 public override bool Eval(IInternalPushInterpreter interpreter) { 86 return Eval(interpreter, interpreter.ExecStack); 97 public override void Eval(IInternalPushInterpreter interpreter) { 98 Eval(interpreter, interpreter.ExecStack); 99 } 100 101 public override bool IsNoop(IInternalPushInterpreter interpreter) { 102 return State.Body == null && HasInsufficientArguments(interpreter, interpreter.ExecStack); 87 103 } 88 104
Note: See TracChangeset
for help on using the changeset viewer.