Changeset 14952 for branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/FlushExpressions.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/FlushExpressions.cs
r14875 r14952 2 2 using System.Collections.Generic; 3 3 4 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 4 5 using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes; 5 6 … … 11 12 /// </summary> 12 13 /// <typeparam name="T">Stacktype</typeparam> 14 [StorableClass] 13 15 public abstract class FlushExpression<T> : StatelessExpression { 14 public bool Eval(IPushStack<T> stack) { 16 protected FlushExpression() { } 17 [StorableConstructor] 18 protected FlushExpression(bool deserializing) : base(deserializing) { } 19 20 protected void Eval(IPushStack<T> stack) { 15 21 stack.Clear(); 16 return true;17 22 } 18 23 } 19 24 20 25 [PushExpression(StackTypes.Integer, "INTEGER.FLUSH")] 26 [StorableClass] 21 27 public class IntegerFlushExpression : FlushExpression<long> { 22 public override bool Eval(IInternalPushInterpreter interpreter) { 23 return Eval(interpreter.IntegerStack); 28 public IntegerFlushExpression() { } 29 [StorableConstructor] 30 protected IntegerFlushExpression(bool deserializing) : base(deserializing) { } 31 32 public override bool IsNoop(IInternalPushInterpreter interpreter) { 33 return interpreter.IntegerStack.IsEmpty; 34 } 35 36 public override void Eval(IInternalPushInterpreter interpreter) { 37 Eval(interpreter.IntegerStack); 24 38 } 25 39 } 26 40 27 41 [PushExpression(StackTypes.Float, "FLOAT.FLUSH")] 42 [StorableClass] 28 43 public class FloatFlushExpression : FlushExpression<double> { 29 public override bool Eval(IInternalPushInterpreter interpreter) { 30 return Eval(interpreter.FloatStack); 44 public FloatFlushExpression() { } 45 [StorableConstructor] 46 protected FloatFlushExpression(bool deserializing) : base(deserializing) { } 47 48 public override bool IsNoop(IInternalPushInterpreter interpreter) { 49 return interpreter.FloatStack.IsEmpty; 50 } 51 52 public override void Eval(IInternalPushInterpreter interpreter) { 53 Eval(interpreter.FloatStack); 31 54 } 32 55 } 33 56 34 57 [PushExpression(StackTypes.Boolean, "BOOLEAN.FLUSH")] 58 [StorableClass] 35 59 public class BooleanFlushExpression : FlushExpression<bool> { 36 public override bool Eval(IInternalPushInterpreter interpreter) { 37 return Eval(interpreter.BooleanStack); 60 public BooleanFlushExpression() { } 61 [StorableConstructor] 62 protected BooleanFlushExpression(bool deserializing) : base(deserializing) { } 63 64 public override bool IsNoop(IInternalPushInterpreter interpreter) { 65 return interpreter.BooleanStack.IsEmpty; 66 } 67 68 public override void Eval(IInternalPushInterpreter interpreter) { 69 Eval(interpreter.BooleanStack); 38 70 } 39 71 } 40 72 41 73 [PushExpression(StackTypes.Name, "NAME.FLUSH")] 74 [StorableClass] 42 75 public class NameFlushExpression : FlushExpression<string> { 43 public override bool Eval(IInternalPushInterpreter interpreter) { 44 return Eval(interpreter.NameStack); 76 public NameFlushExpression() { } 77 [StorableConstructor] 78 protected NameFlushExpression(bool deserializing) : base(deserializing) { } 79 80 public override bool IsNoop(IInternalPushInterpreter interpreter) { 81 return interpreter.NameStack.IsEmpty; 82 } 83 84 public override void Eval(IInternalPushInterpreter interpreter) { 85 Eval(interpreter.NameStack); 45 86 } 46 87 } 47 88 48 89 [PushExpression(StackTypes.Exec, "EXEC.FLUSH")] 90 [StorableClass] 49 91 public class ExecFlushExpression : FlushExpression<Expression> { 50 public override bool Eval(IInternalPushInterpreter interpreter) { 51 return Eval(interpreter.ExecStack); 92 public ExecFlushExpression() { } 93 [StorableConstructor] 94 protected ExecFlushExpression(bool deserializing) : base(deserializing) { } 95 96 public override bool IsNoop(IInternalPushInterpreter interpreter) { 97 return interpreter.ExecStack.IsEmpty; 98 } 99 100 public override void Eval(IInternalPushInterpreter interpreter) { 101 Eval(interpreter.ExecStack); 52 102 } 53 103 } 54 104 55 105 [PushExpression(StackTypes.Code, "CODE.FLUSH")] 106 [StorableClass] 56 107 public class CodeFlushExpression : FlushExpression<Expression> { 57 public override bool Eval(IInternalPushInterpreter interpreter) { 58 return Eval(interpreter.CodeStack); 108 public CodeFlushExpression() { } 109 [StorableConstructor] 110 protected CodeFlushExpression(bool deserializing) : base(deserializing) { } 111 112 public override bool IsNoop(IInternalPushInterpreter interpreter) { 113 return interpreter.CodeStack.IsEmpty; 114 } 115 116 public override void Eval(IInternalPushInterpreter interpreter) { 117 Eval(interpreter.CodeStack); 59 118 } 60 119 } 61 120 62 121 [PushExpression(StackTypes.Char, "CHAR.FLUSH")] 122 [StorableClass] 63 123 public class CharFlushExpression : FlushExpression<char> { 64 public override bool Eval(IInternalPushInterpreter interpreter) { 65 return Eval(interpreter.CharStack); 124 public CharFlushExpression() { } 125 [StorableConstructor] 126 protected CharFlushExpression(bool deserializing) : base(deserializing) { } 127 128 public override bool IsNoop(IInternalPushInterpreter interpreter) { 129 return interpreter.CharStack.IsEmpty; 130 } 131 132 public override void Eval(IInternalPushInterpreter interpreter) { 133 Eval(interpreter.CharStack); 66 134 } 67 135 } 68 136 69 137 [PushExpression(StackTypes.String, "STRING.FLUSH")] 138 [StorableClass] 70 139 public class StringFlushExpression : FlushExpression<string> { 71 public override bool Eval(IInternalPushInterpreter interpreter) { 72 return Eval(interpreter.StringStack); 140 public StringFlushExpression() { } 141 [StorableConstructor] 142 protected StringFlushExpression(bool deserializing) : base(deserializing) { } 143 144 public override bool IsNoop(IInternalPushInterpreter interpreter) { 145 return interpreter.StringStack.IsEmpty; 146 } 147 148 public override void Eval(IInternalPushInterpreter interpreter) { 149 Eval(interpreter.StringStack); 73 150 } 74 151 } 75 152 76 153 [PushExpression(StackTypes.IntegerVector, "INTEGER[].FLUSH")] 154 [StorableClass] 77 155 public class IntegerVectorFlushExpression : FlushExpression<List<long>> { 78 public override bool Eval(IInternalPushInterpreter interpreter) { 79 return Eval(interpreter.IntegerVectorStack); 156 public IntegerVectorFlushExpression() { } 157 [StorableConstructor] 158 protected IntegerVectorFlushExpression(bool deserializing) : base(deserializing) { } 159 160 public override bool IsNoop(IInternalPushInterpreter interpreter) { 161 return interpreter.IntegerVectorStack.IsEmpty; 162 } 163 164 public override void Eval(IInternalPushInterpreter interpreter) { 165 Eval(interpreter.IntegerVectorStack); 80 166 } 81 167 } 82 168 83 169 [PushExpression(StackTypes.FloatVector, "FLOAT[].FLUSH")] 170 [StorableClass] 84 171 public class FloatVectorFlushExpression : FlushExpression<List<double>> { 85 public override bool Eval(IInternalPushInterpreter interpreter) { 86 return Eval(interpreter.FloatVectorStack); 172 public FloatVectorFlushExpression() { } 173 [StorableConstructor] 174 protected FloatVectorFlushExpression(bool deserializing) : base(deserializing) { } 175 176 public override bool IsNoop(IInternalPushInterpreter interpreter) { 177 return interpreter.FloatVectorStack.IsEmpty; 178 } 179 180 public override void Eval(IInternalPushInterpreter interpreter) { 181 Eval(interpreter.FloatVectorStack); 87 182 } 88 183 } 89 184 90 185 [PushExpression(StackTypes.BooleanVector, "BOOLEAN[].FLUSH")] 186 [StorableClass] 91 187 public class BooleanVectorFlushExpression : FlushExpression<List<bool>> { 92 public override bool Eval(IInternalPushInterpreter interpreter) { 93 return Eval(interpreter.BooleanVectorStack); 188 public BooleanVectorFlushExpression() { } 189 [StorableConstructor] 190 protected BooleanVectorFlushExpression(bool deserializing) : base(deserializing) { } 191 192 public override bool IsNoop(IInternalPushInterpreter interpreter) { 193 return interpreter.BooleanVectorStack.IsEmpty; 194 } 195 196 public override void Eval(IInternalPushInterpreter interpreter) { 197 Eval(interpreter.BooleanVectorStack); 94 198 } 95 199 } 96 200 97 201 [PushExpression(StackTypes.StringVector, "STRING[].FLUSH")] 202 [StorableClass] 98 203 public class StringVectorFlushExpression : FlushExpression<List<string>> { 99 public override bool Eval(IInternalPushInterpreter interpreter) { 100 return Eval(interpreter.StringVectorStack); 204 public StringVectorFlushExpression() { } 205 [StorableConstructor] 206 protected StringVectorFlushExpression(bool deserializing) : base(deserializing) { } 207 208 public override bool IsNoop(IInternalPushInterpreter interpreter) { 209 return interpreter.StringVectorStack.IsEmpty; 210 } 211 212 public override void Eval(IInternalPushInterpreter interpreter) { 213 Eval(interpreter.StringVectorStack); 101 214 } 102 215 }
Note: See TracChangeset
for help on using the changeset viewer.