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/CodeExpressions.cs

    r14733 r14744  
    2222  [PushExpression(StackType.Code, "CODE.DO")]
    2323  public class CodeDoExpression : StatelessExpression {
    24     public override void Eval(IPushInterpreter interpreter) {
     24    public override bool Eval(IPushInterpreter interpreter) {
    2525      // not enough arguments on stack
    26       if (interpreter.CodeStack.Count == 0) return;
     26      if (interpreter.CodeStack.Count == 0) return false;
    2727
    2828      var codePopExpression = ExpressionTable.GetStatelessExpression<CodePopExpression>();
    2929      interpreter.ExecStack.Push(codePopExpression, interpreter.CodeStack.Top);
     30
     31      return true;
    3032    }
    3133  }
     
    3638  [PushExpression(StackType.Code, "CODE.DO*")]
    3739  public class CodeDoXExpression : StatelessExpression {
    38     public override void Eval(IPushInterpreter interpreter) {
     40    public override bool Eval(IPushInterpreter interpreter) {
    3941      // not enough arguments on stack
    40       if (interpreter.CodeStack.Count == 0) return;
     42      if (interpreter.CodeStack.Count == 0) return false;
    4143
    4244      var expression = interpreter.CodeStack.Pop();
    4345      interpreter.ExecStack.Push(expression);
     46
     47      return true;
    4448    }
    4549  }
     
    5054  [PushExpression(StackType.Code, "CODE.NOOP")]
    5155  public class CodeNoopExpression : StatelessExpression {
    52     public override void Eval(IPushInterpreter interpreter) {
    53       // nothing to do
     56    public override bool Eval(IPushInterpreter interpreter) {
     57      return false;
    5458    }
    5559  }
     
    6165  [PushExpression(StackType.Code, "CODE.QUOTE")]
    6266  public class CodeQuoteExpression : StatelessExpression {
    63     public override void Eval(IPushInterpreter interpreter) {
     67    public override bool Eval(IPushInterpreter interpreter) {
    6468      // not enough arguments on stack
    65       if (interpreter.ExecStack.Count == 0) return;
     69      if (interpreter.ExecStack.Count == 0) return false;
    6670
    6771      var expression = interpreter.ExecStack.Pop();
    6872      interpreter.CodeStack.Push(expression);
     73
     74      return true;
    6975    }
    7076  }
     
    7783  [PushExpression(StackType.Code, "CODE.IF")]
    7884  public class CodeIfExpression : StatelessExpression {
    79     public override void Eval(IPushInterpreter interpreter) {
     85    public override bool Eval(IPushInterpreter interpreter) {
    8086      // not enough arguments on stack
    81       if ((interpreter.BooleanStack.Count == 0) || (interpreter.CodeStack.Count < 2)) return;
     87      if ((interpreter.BooleanStack.Count == 0) || (interpreter.CodeStack.Count < 2)) return false;
    8288
    8389      var condition = interpreter.BooleanStack.Pop();
     
    8591
    8692      interpreter.ExecStack.Push(condition ? items[0] : items[1]);
     93
     94      return true;
    8795    }
    8896  }
     
    94102  [PushExpression(StackType.Code, "CODE.APPEND")]
    95103  public class CodeAppendExpression : StatelessExpression {
    96     public override void Eval(IPushInterpreter interpreter) {
    97       if (interpreter.CodeStack.Count < 2) return;
     104    public override bool Eval(IPushInterpreter interpreter) {
     105      if (interpreter.CodeStack.Count < 2) return false;
    98106
    99107      var first = interpreter.CodeStack.Pop();
     
    113121
    114122          // if size > maxPointsInProgram this expressions results in a NOOP
    115           if (size > interpreter.Configuration.MaxPointsInProgram) return;
     123          if (size > interpreter.Configuration.MaxPointsInProgram) return false;
    116124
    117125          result = new Expression[size];
     
    128136
    129137          // if size > maxPointsInProgram this expressions results in a NOOP
    130           if (size > interpreter.Configuration.MaxPointsInProgram) return;
     138          if (size > interpreter.Configuration.MaxPointsInProgram) return false;
    131139
    132140          result = new Expression[size];
     
    141149
    142150        // if size > maxPointsInProgram this expressions results in a NOOP
    143         if (size > interpreter.Configuration.MaxPointsInProgram) return;
     151        if (size > interpreter.Configuration.MaxPointsInProgram) return false;
    144152
    145153        result = new Expression[size];
     
    154162
    155163      interpreter.CodeStack.SetTop(expression);
     164
     165      return true;
    156166    }
    157167  }
     
    163173  [PushExpression(StackType.Code, "CODE.ATOM")]
    164174  public class CodeAtomExpression : StatelessExpression {
    165     public override void Eval(IPushInterpreter interpreter) {
    166       if (interpreter.CodeStack.Count == 0) return;
     175    public override bool Eval(IPushInterpreter interpreter) {
     176      if (interpreter.CodeStack.Count == 0) return false;
    167177
    168178      var expression = interpreter.CodeStack.Pop();
     
    170180
    171181      interpreter.BooleanStack.Push(!isExpandExpression);
     182      return true;
    172183    }
    173184  }
     
    181192  [PushExpression(StackType.Code, "CODE.CAR")]
    182193  public class CodeCarExpression : StatelessExpression {
    183     public override void Eval(IPushInterpreter interpreter) {
    184       if ((interpreter.CodeStack.Count == 0) || (interpreter.CodeStack.Top.GetType() !=
    185                                                  typeof(ExecExpandExpression))) return;
     194    public override bool Eval(IPushInterpreter interpreter) {
     195      if ((interpreter.CodeStack.Count == 0) ||
     196          (interpreter.CodeStack.Top.GetType() != typeof(ExecExpandExpression))) return false;
    186197
    187198      var expand = interpreter.CodeStack.Top as ExecExpandExpression;
    188199
    189       if (expand.State.IsEmpty) return;
     200      if (expand.State.IsEmpty) return false;
    190201      var first = expand.State.Expressions[expand.State.Expressions.Count - 1];
    191202
    192203      interpreter.CodeStack.SetTop(first);
     204      return true;
    193205    }
    194206  }
     
    202214  [PushExpression(StackType.Code, "CODE.CDR")]
    203215  public class CodeCdrExpression : StatelessExpression {
    204     public override void Eval(IPushInterpreter interpreter) {
    205       if (interpreter.CodeStack.Count == 0) return;
    206 
    207       Expression expandExpression = null;
     216    public override bool Eval(IPushInterpreter interpreter) {
     217      if (interpreter.CodeStack.Count == 0) return false;
     218
     219      ExecExpandExpression expandExpression;
    208220      var top = interpreter.CodeStack.Top;
    209221
     
    211223        var expand = (ExecExpandExpression)top;
    212224
    213         if (expand.State.IsEmpty) return;
     225        if (expand.State.IsEmpty) return false;
    214226        var length = expand.State.Expressions.Count - 1;
    215227        var newExpressions = new Expression[length];
     
    223235
    224236      interpreter.CodeStack.SetTop(expandExpression);
     237      return true;
    225238    }
    226239  }
     
    233246  [PushExpression(StackType.Code, "CODE.CONS")]
    234247  public class CodeConsExpression : StatelessExpression {
    235     public override void Eval(IPushInterpreter interpreter) {
     248    public override bool Eval(IPushInterpreter interpreter) {
    236249      if (interpreter.CodeStack.Count < 2)
    237         return;
     250        return false;
    238251
    239252      ExecExpandExpression result;
     
    243256        var size = first.State.Expressions.Count + 1;
    244257
    245         if (size > interpreter.Configuration.MaxPointsInProgram) return;
     258        if (size > interpreter.Configuration.MaxPointsInProgram) return false;
    246259
    247260        var expressions = new Expression[size];
     
    256269
    257270      interpreter.CodeStack.SetTop(result);
     271      return true;
    258272    }
    259273  }
     
    269283  [PushExpression(StackType.Code, "CODE.CONTAINER")]
    270284  public class CodeContainerExpression : StatelessExpression {
    271     public override void Eval(IPushInterpreter interpreter) {
     285    public override bool Eval(IPushInterpreter interpreter) {
    272286      if ((interpreter.CodeStack.Count < 2) ||
    273287          (interpreter.CodeStack[interpreter.CodeStack.Count - 2].GetType() !=
    274            typeof(ExecExpandExpression))) return;
     288           typeof(ExecExpandExpression))) return false;
    275289
    276290      var target = interpreter.CodeStack.Pop();
     
    281295
    282296      interpreter.CodeStack.SetTop(result);
     297      return true;
    283298    }
    284299
     
    307322  [PushExpression(StackType.Code, "CODE.CONTAINS")]
    308323  public class CodeContainsExpression : StatelessExpression {
    309     public override void Eval(IPushInterpreter interpreter) {
     324    public override bool Eval(IPushInterpreter interpreter) {
    310325      if (interpreter.CodeStack.Count < 2 ||
    311326         !interpreter.CodeStack[interpreter.CodeStack.Count - 2].CanExpand)
    312         return;
     327        return false;
    313328
    314329      var values = interpreter.CodeStack.Pop(2);
     
    317332
    318333      interpreter.BooleanStack.Push(contains);
     334
     335      return true;
    319336    }
    320337  }
     
    327344  [PushExpression(StackType.Code, "CODE.DEFINITION")]
    328345  public class CodeDefinitionExpression : StatelessExpression {
    329     public override void Eval(IPushInterpreter interpreter) {
     346    public override bool Eval(IPushInterpreter interpreter) {
    330347      if ((interpreter.NameStack.Count == 0) ||
    331           !interpreter.CustomExpressions.ContainsKey(interpreter.NameStack.Top)) return;
     348          !interpreter.CustomExpressions.ContainsKey(interpreter.NameStack.Top)) return false;
    332349
    333350      var name = interpreter.NameStack.Pop();
     
    335352
    336353      interpreter.CodeStack.Push(definition);
     354
     355      return true;
    337356    }
    338357  }
     
    363382  [PushExpression(StackType.Code, "CODE.DISCREPANCY")]
    364383  public class CodeDiscrepancyExpression : StatelessExpression {
    365     public override void Eval(IPushInterpreter interpreter) {
    366       if (interpreter.CodeStack.Count < 2) return;
     384    public override bool Eval(IPushInterpreter interpreter) {
     385      if (interpreter.CodeStack.Count < 2) return false;
    367386
    368387      var expressions = interpreter.CodeStack.Pop(2);
     
    376395
    377396      interpreter.IntegerStack.Push(discrepancy);
     397
     398      return true;
    378399    }
    379400
     
    418439  [PushExpression(StackType.Code, "CODE.EXTRACT")]
    419440  public class CodeExtractExpression : StatelessExpression {
    420     public override void Eval(IPushInterpreter interpreter) {
     441    public override bool Eval(IPushInterpreter interpreter) {
    421442      if (interpreter.IntegerStack.Count == 0 ||
    422443          interpreter.CodeStack.Count == 0 ||
    423444          !interpreter.CodeStack.Top.CanExpand)
    424         return;
     445        return false;
    425446
    426447      var expression = (ExecExpandExpression)interpreter.CodeStack.Top;
     
    429450
    430451      interpreter.CodeStack.SetTop(result);
     452
     453      return true;
    431454    }
    432455  }
     
    437460  [PushExpression(StackType.Code, "CODE.FROMBOOLEAN")]
    438461  public class CodeFromBooleanExpression : StatelessExpression {
    439     public override void Eval(IPushInterpreter interpreter) {
    440       if (interpreter.BooleanStack.Count == 0) return;
     462    public override bool Eval(IPushInterpreter interpreter) {
     463      if (interpreter.BooleanStack.Count == 0) return false;
    441464
    442465      var value = interpreter.BooleanStack.Pop();
     
    444467
    445468      interpreter.CodeStack.Push(expression);
     469
     470      return true;
    446471    }
    447472  }
     
    452477  [PushExpression(StackType.Code, "CODE.FROMFLOAT")]
    453478  public class CodeFromFloatExpression : StatelessExpression {
    454     public override void Eval(IPushInterpreter interpreter) {
    455       if (interpreter.FloatStack.Count == 0) return;
     479    public override bool Eval(IPushInterpreter interpreter) {
     480      if (interpreter.FloatStack.Count == 0) return false;
    456481
    457482      var value = interpreter.FloatStack.Pop();
     
    459484
    460485      interpreter.CodeStack.Push(expression);
     486
     487      return true;
    461488    }
    462489  }
     
    467494  [PushExpression(StackType.Code, "CODE.FROMINTEGER")]
    468495  public class CodeFromIntegerExpression : StatelessExpression {
    469     public override void Eval(IPushInterpreter interpreter) {
    470       if (interpreter.IntegerStack.Count == 0) return;
     496    public override bool Eval(IPushInterpreter interpreter) {
     497      if (interpreter.IntegerStack.Count == 0) return false;
    471498
    472499      var value = interpreter.IntegerStack.Pop();
     
    474501
    475502      interpreter.CodeStack.Push(expression);
     503
     504      return true;
    476505    }
    477506  }
     
    482511  [PushExpression(StackType.Code, "CODE.FROMNAME")]
    483512  public class CodeFromNameExpression : StatelessExpression {
    484     public override void Eval(IPushInterpreter interpreter) {
    485       if (interpreter.NameStack.Count == 0) return;
     513    public override bool Eval(IPushInterpreter interpreter) {
     514      if (interpreter.NameStack.Count == 0) return false;
    486515
    487516      var value = interpreter.NameStack.Pop();
     
    489518
    490519      interpreter.CodeStack.Push(expression);
     520
     521      return true;
    491522    }
    492523  }
     
    498529  [PushExpression(StackType.Code, "CODE.CODEINSERT")]
    499530  public class CodeInsertExpression : StatelessExpression {
    500     public override void Eval(IPushInterpreter interpreter) {
     531    public override bool Eval(IPushInterpreter interpreter) {
    501532      if (interpreter.IntegerStack.Count == 0 ||
    502533          interpreter.CodeStack.Count < 2 ||
    503534          !interpreter.CodeStack.Top.CanExpand)
    504         return;
     535        return false;
    505536
    506537      var source = interpreter.CodeStack[interpreter.CodeStack.Count - 2];
     
    522553      var result = new ExecExpandExpression(newExpressions);
    523554      interpreter.CodeStack.SetTop(result);
     555
     556      return true;
    524557    }
    525558  }
     
    533566  [PushExpression(StackType.Code, "CODE.LENGTH")]
    534567  public class CodeLengthExpression : StatelessExpression {
    535     public override void Eval(IPushInterpreter interpreter) {
    536       if (interpreter.CodeStack.Count == 0) return;
     568    public override bool Eval(IPushInterpreter interpreter) {
     569      if (interpreter.CodeStack.Count == 0) return false;
    537570
    538571      var expression = interpreter.CodeStack.Pop();
     
    543576
    544577      interpreter.IntegerStack.Push(count);
     578
     579      return true;
    545580    }
    546581  }
     
    551586  [PushExpression(StackType.Code, "CODE.LIST")]
    552587  public class CodeListExpression : StatelessExpression {
    553     public override void Eval(IPushInterpreter interpreter) {
    554       if (interpreter.CodeStack.Count < 2) return;
     588    public override bool Eval(IPushInterpreter interpreter) {
     589      if (interpreter.CodeStack.Count < 2) return false;
    555590
    556591      var first = interpreter.CodeStack.Pop();
     
    559594
    560595      interpreter.CodeStack.SetTop(expandExpression);
     596
     597      return true;
    561598    }
    562599  }
     
    568605  [PushExpression(StackType.Code, "CODE.MEMBER")]
    569606  public class CodeMemberExpression : StatelessExpression {
    570     public override void Eval(IPushInterpreter interpreter) {
    571       if (interpreter.CodeStack.Count < 2) return;
     607    public override bool Eval(IPushInterpreter interpreter) {
     608      if (interpreter.CodeStack.Count < 2) return false;
    572609
    573610      var expressions = interpreter.CodeStack.Pop(2);
     
    578615
    579616      interpreter.BooleanStack.Push(contains);
     617
     618      return true;
    580619    }
    581620  }
     
    588627  [PushExpression(StackType.Code, "CODE.NTH")]
    589628  public class CodeNthExpression : StatelessExpression {
    590     public override void Eval(IPushInterpreter interpreter) {
    591       if ((interpreter.CodeStack.Count == 0) || (interpreter.IntegerStack.Count == 0)) return;
     629    public override bool Eval(IPushInterpreter interpreter) {
     630      if ((interpreter.CodeStack.Count == 0) || (interpreter.IntegerStack.Count == 0)) return false;
    592631
    593632      var n = interpreter.IntegerStack.Pop();
    594633      var expression = interpreter.CodeStack.Top;
    595634
    596       Expression nthExpression = null;
     635      Expression nthExpression;
    597636
    598637      if (expression.CanExpand) {
     
    612651
    613652      interpreter.CodeStack.SetTop(nthExpression);
     653
     654      return true;
    614655    }
    615656  }
     
    625666  [PushExpression(StackType.Code, "CODE.NTHCDR")]
    626667  public class CodeNthCdrExpression : StatelessExpression {
    627     public override void Eval(IPushInterpreter interpreter) {
    628       if ((interpreter.CodeStack.Count == 0) || (interpreter.IntegerStack.Count == 0)) return;
     668    public override bool Eval(IPushInterpreter interpreter) {
     669      if ((interpreter.CodeStack.Count == 0) || (interpreter.IntegerStack.Count == 0)) return false;
    629670
    630671      var n = interpreter.IntegerStack.Pop();
     
    648689
    649690      interpreter.CodeStack.SetTop(nthExpression);
     691
     692      return true;
    650693    }
    651694  }
     
    656699  [PushExpression(StackType.Code, "CODE.NULL")]
    657700  public class CodeNullExpression : StatelessExpression {
    658     public override void Eval(IPushInterpreter interpreter) {
    659       if (interpreter.CodeStack.Count == 0) return;
     701    public override bool Eval(IPushInterpreter interpreter) {
     702      if (interpreter.CodeStack.Count == 0) return false;
    660703
    661704      var result = interpreter.CodeStack.Pop().Equals(ExecExpandExpression.Empty);
    662 
    663705      interpreter.BooleanStack.Push(result);
     706
     707      return true;
    664708    }
    665709  }
     
    671715  [PushExpression(StackType.Code, "CODE.POSITION")]
    672716  public class CodePositionExpression : StatelessExpression {
    673     public override void Eval(IPushInterpreter interpreter) {
    674       if (interpreter.CodeStack.Count < 2) return;
     717    public override bool Eval(IPushInterpreter interpreter) {
     718      if (interpreter.CodeStack.Count < 2) return false;
    675719
    676720      var expressions = interpreter.CodeStack.Pop(2);
     
    688732
    689733      interpreter.IntegerStack.Push(position);
     734
     735      return true;
    690736    }
    691737  }
     
    697743  [PushExpression(StackType.Code, "CODE.SIZE")]
    698744  public class CodeSizeExpression : StatelessExpression {
    699     public override void Eval(IPushInterpreter interpreter) {
    700       if (interpreter.CodeStack.Count == 0) return;
     745    public override bool Eval(IPushInterpreter interpreter) {
     746      if (interpreter.CodeStack.Count == 0) return false;
    701747
    702748      var expression = interpreter.CodeStack.Pop();
     
    706752
    707753      interpreter.IntegerStack.Push(points);
     754
     755      return true;
    708756    }
    709757  }
     
    717765  [PushExpression(StackType.Code, "CODE.SUBST")]
    718766  public class CodeSubstitutionExpression : StatelessExpression {
    719     public override void Eval(IPushInterpreter interpreter) {
     767    public override bool Eval(IPushInterpreter interpreter) {
    720768      if ((interpreter.CodeStack.Count < 3) || (interpreter.CodeStack.Top.GetType() !=
    721                                                 typeof(ExecExpandExpression))) return;
     769                                                typeof(ExecExpandExpression))) return false;
    722770
    723771      var expressions = interpreter.CodeStack.Pop(2);
     
    736784
    737785      interpreter.CodeStack.SetTop(result);
     786
     787      return true;
    738788    }
    739789  }
Note: See TracChangeset for help on using the changeset viewer.