Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/10/17 00:27:31 (7 years ago)
Author:
pkimmesw
Message:

#2665 LexicaseSelector, Performance improvements, UI Fixes, Debugger only shows used stacks, fixed Debugger stepping, Added vector expressions, ERCOptions,

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PushGP/HeuristicLab.PushGP/HeuristicLab.Problems.ProgramSynthesis/Push/Expressions/PopExpressions.cs

    r14777 r14834  
    11namespace HeuristicLab.Problems.ProgramSynthesis.Push.Expressions {
     2  using System.Collections.Generic;
     3
    24  using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes;
    35
     
    68
    79  public abstract class PopExpression<T> : StatelessExpression {
    8     public bool Eval(IStack<T> stack) {
     10    public bool Eval(IPushStack<T> stack) {
    911      if (stack.Count == 0) return false;
    1012
     
    1618  [PushExpression(StackTypes.Integer, "INTEGER.POP")]
    1719  public class IntegerPopExpression : PopExpression<long> {
    18     public override bool Eval(IPushInterpreter interpreter) {
     20    public override bool Eval(IInternalPushInterpreter interpreter) {
    1921      return Eval(interpreter.IntegerStack);
    2022    }
     
    2325  [PushExpression(StackTypes.Float, "FLOAT.POP")]
    2426  public class FloatPopExpression : PopExpression<double> {
    25     public override bool Eval(IPushInterpreter interpreter) {
     27    public override bool Eval(IInternalPushInterpreter interpreter) {
    2628      return Eval(interpreter.FloatStack);
    2729    }
     
    3032  [PushExpression(StackTypes.Boolean, "BOOLEAN.POP")]
    3133  public class BooleanPopExpression : PopExpression<bool> {
    32     public override bool Eval(IPushInterpreter interpreter) {
     34    public override bool Eval(IInternalPushInterpreter interpreter) {
    3335      return Eval(interpreter.BooleanStack);
    3436    }
     
    3739  [PushExpression(StackTypes.Name, "NAME.POP")]
    3840  public class NamePopExpression : PopExpression<string> {
    39     public override bool Eval(IPushInterpreter interpreter) {
     41    public override bool Eval(IInternalPushInterpreter interpreter) {
    4042      return Eval(interpreter.NameStack);
    4143    }
     
    4446  [PushExpression(StackTypes.Exec, "EXEC.POP")]
    4547  public class ExecPopExpression : PopExpression<Expression> {
    46     public override bool Eval(IPushInterpreter interpreter) {
     48    public override bool Eval(IInternalPushInterpreter interpreter) {
    4749      return Eval(interpreter.ExecStack);
    4850    }
     
    5153  [PushExpression(StackTypes.Code, "CODE.POP")]
    5254  public class CodePopExpression : PopExpression<Expression> {
    53     public override bool Eval(IPushInterpreter interpreter) {
     55    public override bool Eval(IInternalPushInterpreter interpreter) {
    5456      return Eval(interpreter.CodeStack);
    5557    }
     
    5860  [PushExpression(StackTypes.Char, "CHAR.POP")]
    5961  public class CharPopExpression : PopExpression<char> {
    60     public override bool Eval(IPushInterpreter interpreter) {
     62    public override bool Eval(IInternalPushInterpreter interpreter) {
    6163      return Eval(interpreter.CharStack);
    6264    }
     
    6567  [PushExpression(StackTypes.String, "STRING.POP")]
    6668  public class StringPopExpression : PopExpression<string> {
    67     public override bool Eval(IPushInterpreter interpreter) {
     69    public override bool Eval(IInternalPushInterpreter interpreter) {
    6870      return Eval(interpreter.StringStack);
    6971    }
    7072  }
     73
     74  [PushExpression(StackTypes.IntegerVector, "INTEGER[].POP")]
     75  public class IntegerVectorPopExpression : PopExpression<List<long>> {
     76    public override bool Eval(IInternalPushInterpreter interpreter) {
     77      return Eval(interpreter.IntegerVectorStack);
     78    }
     79  }
    7180}
Note: See TracChangeset for help on using the changeset viewer.