Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/16/16 23:14:01 (8 years ago)
Author:
pkimmesw
Message:

#2665 Expressions are splitted into StatefullExpressions and StatelessExpressions, Added traits for tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.Algorithms.PushGP/HeuristicLab.Algorithms.PushGP/Expressions/YankExpressions.cs

    r14392 r14398  
    99    /// </summary>
    1010    /// <typeparam name="T">Stacktype</typeparam>
    11     public abstract class YankExpression<T> : Expression
     11    public abstract class YankExpression<T> : StatelessExpression
    1212    {
    13         public YankExpression(string stringRepresentation) : base(stringRepresentation)
    14         { }
    15 
    1613        public void Eval(IStack<T> stack, IStack<long> integerStack, int count = 1)
    1714        {
     
    3330    public class IntegerYankExpression : YankExpression<long>
    3431    {
    35         public IntegerYankExpression() : base("INTEGER.YANK")
    36         { }
     32        protected override string InitStringRepresentation() { return "INTEGER.YANK"; }
    3733
    3834        public override void Eval(IInterpreter interpreter)
    3935        {
    40             this.Eval(interpreter.IntegerStack, interpreter.IntegerStack, 2);
     36            Eval(interpreter.IntegerStack, interpreter.IntegerStack, 2);
    4137        }
    4238    }
     
    4440    public class FloatYankExpression : YankExpression<double>
    4541    {
    46         public FloatYankExpression() : base("FLOAT.YANK")
    47         { }
     42        protected override string InitStringRepresentation() { return "FLOAT.YANK"; }
    4843
    4944        public override void Eval(IInterpreter interpreter)
    5045        {
    51             this.Eval(interpreter.FloatStack, interpreter.IntegerStack);
     46            Eval(interpreter.FloatStack, interpreter.IntegerStack);
    5247        }
    5348    }
     
    5550    public class BooleanYankExpression : YankExpression<bool>
    5651    {
    57         public BooleanYankExpression() : base("BOOLEAN.YANK")
    58         { }
     52        protected override string InitStringRepresentation() { return "BOOLEAN.YANK"; }
    5953
    6054        public override void Eval(IInterpreter interpreter)
    6155        {
    62             this.Eval(interpreter.BooleanStack, interpreter.IntegerStack);
     56            Eval(interpreter.BooleanStack, interpreter.IntegerStack);
    6357        }
    6458    }
     
    6660    public class NameYankExpression : YankExpression<string>
    6761    {
    68         public NameYankExpression() : base("NAME.YANK")
    69         { }
     62        protected override string InitStringRepresentation() { return "NAME.YANK"; }
    7063
    7164        public override void Eval(IInterpreter interpreter)
    7265        {
    73             this.Eval(interpreter.NameStack, interpreter.IntegerStack);
     66            Eval(interpreter.NameStack, interpreter.IntegerStack);
    7467        }
    7568    }
     
    7770    public class ExecYankExpression : YankExpression<Expression>
    7871    {
    79         public ExecYankExpression() : base("EXEC.YANK")
    80         { }
     72        protected override string InitStringRepresentation() { return "EXEC.YANK"; }
    8173
    8274        public override void Eval(IInterpreter interpreter)
    8375        {
    84             this.Eval(interpreter.ExecStack, interpreter.IntegerStack);
     76            Eval(interpreter.ExecStack, interpreter.IntegerStack);
    8577        }
    8678    }
     
    8880    public class CodeYankExpression : YankExpression<Expression>
    8981    {
    90         public CodeYankExpression() : base("CODE.YANK")
    91         { }
     82        protected override string InitStringRepresentation() { return "CODE.YANK"; }
    9283
    9384        public override void Eval(IInterpreter interpreter)
    9485        {
    95             this.Eval(interpreter.CodeStack, interpreter.IntegerStack);
     86            Eval(interpreter.CodeStack, interpreter.IntegerStack);
    9687        }
    9788    }
Note: See TracChangeset for help on using the changeset viewer.