Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/20/16 22:57:11 (7 years ago)
Author:
pkimmesw
Message:

#2665 Added Problem.ProgramSynthesis Project, Fixed Expression Issues, Fixed Code Generation

File:
1 edited

Legend:

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

    r14398 r14513  
    1 using HeuristicLab.Algorithms.PushGP.Interpreter;
    2 using HeuristicLab.Algorithms.PushGP.Stack;
     1namespace HeuristicLab.Algorithms.PushGP.Expressions
     2{
     3  using HeuristicLab.Algorithms.PushGP.Interpreter;
     4  using HeuristicLab.Algorithms.PushGP.Stack;
    35
    4 namespace HeuristicLab.Algorithms.PushGP.Expressions
    5 {
    6     public abstract class PopExpression<T> : StatelessExpression
     6  public abstract class PopExpression<T> : StatelessExpression
     7  {
     8    public void Eval(IStack<T> stack)
    79    {
    8         public void Eval(IStack<T> stack)
    9         {
    10             if (stack.Count == 0)
    11                 return;
     10      if (stack.Count == 0) return;
    1211
    13             stack.Pop();
    14         }
     12      stack.Pop();
     13    }
     14  }
     15
     16  public class IntegerPopExpression : PopExpression<long>
     17  {
     18    protected override string InitStringRepresentation()
     19    {
     20      return "INTEGER.POP";
    1521    }
    1622
    17     public class IntegerPopExpression : PopExpression<long>
     23    public override void Eval(IPushGpInterpreter interpreter)
    1824    {
    19         protected override string InitStringRepresentation() { return "INTEGER.POP"; }
     25      this.Eval(interpreter.IntegerStack);
     26    }
     27  }
    2028
    21         public override void Eval(IInterpreter interpreter)
    22         {
    23             Eval(interpreter.IntegerStack);
    24         }
     29  public class FloatPopExpression : PopExpression<double>
     30  {
     31    protected override string InitStringRepresentation()
     32    {
     33      return "FLOAT.POP";
    2534    }
    2635
    27     public class FloatPopExpression : PopExpression<double>
     36    public override void Eval(IPushGpInterpreter interpreter)
    2837    {
    29         protected override string InitStringRepresentation() { return "FLOAT.POP"; }
     38      this.Eval(interpreter.FloatStack);
     39    }
     40  }
    3041
    31         public override void Eval(IInterpreter interpreter)
    32         {
    33             Eval(interpreter.FloatStack);
    34         }
     42  public class BooleanPopExpression : PopExpression<bool>
     43  {
     44    protected override string InitStringRepresentation()
     45    {
     46      return "BOOLEAN.POP";
    3547    }
    3648
    37     public class BooleanPopExpression : PopExpression<bool>
     49    public override void Eval(IPushGpInterpreter interpreter)
    3850    {
    39         protected override string InitStringRepresentation() { return "BOOLEAN.POP"; }
     51      this.Eval(interpreter.BooleanStack);
     52    }
     53  }
    4054
    41         public override void Eval(IInterpreter interpreter)
    42         {
    43             Eval(interpreter.BooleanStack);
    44         }
     55  public class NamePopExpression : PopExpression<string>
     56  {
     57    protected override string InitStringRepresentation()
     58    {
     59      return "NAME.POP";
    4560    }
    4661
    47     public class NamePopExpression : PopExpression<string>
     62    public override void Eval(IPushGpInterpreter interpreter)
    4863    {
    49         protected override string InitStringRepresentation() { return "NAME.POP"; }
     64      this.Eval(interpreter.NameStack);
     65    }
     66  }
    5067
    51         public override void Eval(IInterpreter interpreter)
    52         {
    53             Eval(interpreter.NameStack);
    54         }
     68  public class ExecPopExpression : PopExpression<Expression>
     69  {
     70    protected override string InitStringRepresentation()
     71    {
     72      return "EXEC.POP";
    5573    }
    5674
    57     public class ExecPopExpression : PopExpression<Expression>
     75    public override void Eval(IPushGpInterpreter interpreter)
    5876    {
    59         protected override string InitStringRepresentation() { return "EXEC.POP"; }
     77      this.Eval(interpreter.ExecStack);
     78    }
     79  }
    6080
    61         public override void Eval(IInterpreter interpreter)
    62         {
    63             Eval(interpreter.ExecStack);
    64         }
     81  public class CodePopExpression : PopExpression<Expression>
     82  {
     83    protected override string InitStringRepresentation()
     84    {
     85      return "CODE.POP";
    6586    }
    6687
    67     public class CodePopExpression : PopExpression<Expression>
     88    public override void Eval(IPushGpInterpreter interpreter)
    6889    {
    69         protected override string InitStringRepresentation() { return "CODE.POP"; }
    70 
    71         public override void Eval(IInterpreter interpreter)
    72         {
    73             Eval(interpreter.CodeStack);
    74         }
     90      this.Eval(interpreter.CodeStack);
    7591    }
     92  }
    7693}
Note: See TracChangeset for help on using the changeset viewer.