Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/10/17 21:42:09 (7 years ago)
Author:
pkimmesw
Message:

#2665 Renamings due to typos, ManagedPool tests, Skip Noops in Debugger

File:
1 edited

Legend:

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

    r14733 r14744  
    33  using System.Collections.Generic;
    44
    5   using HeuristicLab.Problems.ProgramSynthesis.Push.Attributes;
    6   using HeuristicLab.Problems.ProgramSynthesis.Push.Interpreter;
    7   using HeuristicLab.Problems.ProgramSynthesis.Push.Stack;
     5  using Attributes;
     6  using Interpreter;
     7  using Stack;
    88
    99  /// <summary>
     
    1313  /// <typeparam name="T">Stacktype</typeparam>
    1414  public abstract class DefineExpression<T> : StatelessExpression {
    15     protected void Eval(
     15    protected bool Eval(
    1616      IStack<T> stack,
    1717      IStack<string> nameStack,
     
    1919      Func<T, Expression> creator) {
    2020      // not enough arguments on stack
    21       if ((nameStack.Count == 0) || (stack.Count < 1)) return;
     21      if ((nameStack.Count == 0) || (stack.Count < 1)) return false;
    2222
    2323      var name = nameStack.Pop();
     
    2626      if (customExpressions.ContainsKey(name)) customExpressions[name] = expression;
    2727      else customExpressions.Add(name, expression);
     28
     29      return true;
    2830    }
    2931  }
     
    3133  [PushExpression(StackType.Code, "CODE.DEFINE")]
    3234  public class CodeDefineExpression : DefineExpression<Expression> {
    33     public override void Eval(IPushInterpreter interpreter) {
    34       if (interpreter.Configuration.TopLevelPushCode && (interpreter.CodeStack.Count < 2)) return;
     35    public override bool Eval(IPushInterpreter interpreter) {
     36      if (interpreter.Configuration.TopLevelPushCode && (interpreter.CodeStack.Count < 2)) return false;
    3537
    3638      this.Eval(
     
    4143
    4244      interpreter.CodeStack.Pop();
     45
     46      return true;
    4347    }
    4448  }
     
    4650  [PushExpression(StackType.Exec, "EXEC.DEFINE")]
    4751  public class ExecDefineExpression : DefineExpression<Expression> {
    48     public override void Eval(IPushInterpreter interpreter) {
    49       if (interpreter.ExecStack.Count < 2) return;
     52    public override bool Eval(IPushInterpreter interpreter) {
     53      if (interpreter.ExecStack.Count < 2) return false;
    5054
    51       this.Eval(
     55      var noop = this.Eval(
    5256        interpreter.ExecStack,
    5357        interpreter.NameStack,
     
    5559        v => new ExecPushExpression(v));
    5660
    57       interpreter.ExecStack.Pop();
     61      if (!noop)
     62        interpreter.ExecStack.Pop();
     63
     64      return noop;
    5865    }
    5966  }
     
    6269  public class FloatDefineExpression : DefineExpression<double> {
    6370
    64     public override void Eval(IPushInterpreter interpreter) {
    65       this.Eval(
     71    public override bool Eval(IPushInterpreter interpreter) {
     72      return this.Eval(
    6673        interpreter.FloatStack,
    6774        interpreter.NameStack,
     
    7380  [PushExpression(StackType.Integer, "INTEGER.DEFINE")]
    7481  public class IntegerDefineExpression : DefineExpression<long> {
    75     public override void Eval(IPushInterpreter interpreter) {
    76       this.Eval(
     82    public override bool Eval(IPushInterpreter interpreter) {
     83      return this.Eval(
    7784        interpreter.IntegerStack,
    7885        interpreter.NameStack,
     
    8491  [PushExpression(StackType.Boolean, "BOOLEAN.DEFINE")]
    8592  public class BooleanDefineExpression : DefineExpression<bool> {
    86     public override void Eval(IPushInterpreter interpreter) {
    87       this.Eval(
     93    public override bool Eval(IPushInterpreter interpreter) {
     94      return this.Eval(
    8895        interpreter.BooleanStack,
    8996        interpreter.NameStack,
Note: See TracChangeset for help on using the changeset viewer.