Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/14/13 11:03:13 (11 years ago)
Author:
ascheibe
Message:

#2069 fixed cloning constructors and formatting

Location:
branches/Robocode/HeuristicLab.Problems.Robocode/Symbols/Branches
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/Robocode/HeuristicLab.Problems.Robocode/Symbols/Branches/ElseStatement.cs

    r9565 r9630  
    33using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    44
    5 namespace HeuristicLab.Problems.Robocode
    6 {
    7     [StorableClass]
    8     public class ElseStatement : CodeNode
    9     {
    10         public override int MinimumArity { get { return 1; } }
    11         public override int MaximumArity { get { return 1; } }
     5namespace HeuristicLab.Problems.Robocode {
     6  [StorableClass]
     7  public class ElseStatement : CodeNode {
     8    public override int MinimumArity { get { return 1; } }
     9    public override int MaximumArity { get { return 1; } }
    1210
    13         [Storable]
    14         public override string Prefix { get; set; }
     11    [Storable]
     12    public override string Prefix { get; set; }
    1513
    16         [Storable]
    17         public override string Suffix { get; set; }
     14    [Storable]
     15    public override string Suffix { get; set; }
    1816
    19         [StorableConstructor]
    20         private ElseStatement(bool deserializing) : base(deserializing) { }
    21         private ElseStatement(ElseStatement original, Cloner cloner)
    22             : base(original, cloner)
    23         {
    24             this.Prefix = "else";
    25             this.Suffix = "";
    26         }
     17    [StorableConstructor]
     18    private ElseStatement(bool deserializing) : base(deserializing) { }
     19    private ElseStatement(ElseStatement original, Cloner cloner)
     20      : base(original, cloner) {
    2721
    28         public ElseStatement()
    29             : base("ElseStatement", "An ElseStatement.")
    30         {
    31             this.Prefix = "else";
    32             this.Suffix = "";
    33         }
     22    }
    3423
    35         public override IDeepCloneable Clone(Cloner cloner)
    36         {
    37             return new ElseStatement(this, cloner);
    38         }
     24    public ElseStatement()
     25      : base("ElseStatement", "An ElseStatement.") {
     26      this.Prefix = "else";
     27      this.Suffix = "";
     28    }
    3929
    40         public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children)
    41         {
    42             string result = "";
    43             foreach (ISymbolicExpressionTreeNode c in children)
    44                 result += "\r\n" + ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    45             return (result == "")? "" : this.Prefix + "\r\n" + result + "\r\n" + this.Suffix;
    46         }
     30    public override IDeepCloneable Clone(Cloner cloner) {
     31      return new ElseStatement(this, cloner);
    4732    }
     33
     34    public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children) {
     35      string result = "";
     36      foreach (ISymbolicExpressionTreeNode c in children)
     37        result += "\r\n" + ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     38      return (result == "") ? "" : this.Prefix + "\r\n" + result + "\r\n" + this.Suffix;
     39    }
     40  }
    4841}
  • branches/Robocode/HeuristicLab.Problems.Robocode/Symbols/Branches/IfStatement.cs

    r9565 r9630  
    33using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    44
    5 namespace HeuristicLab.Problems.Robocode
    6 {
    7     [StorableClass]
    8     public class IfStatement : CodeNode
    9     {
    10         public override int MinimumArity { get { return 2; } }
    11         public override int MaximumArity { get { return 3; } }
     5namespace HeuristicLab.Problems.Robocode {
     6  [StorableClass]
     7  public class IfStatement : CodeNode {
     8    public override int MinimumArity { get { return 2; } }
     9    public override int MaximumArity { get { return 3; } }
    1210
    13         [Storable]
    14         public override string Prefix { get; set; }
     11    [Storable]
     12    public override string Prefix { get; set; }
    1513
    16         [Storable]
    17         public override string Suffix { get; set; }
     14    [Storable]
     15    public override string Suffix { get; set; }
    1816
    19         [StorableConstructor]
    20         private IfStatement(bool deserializing) : base(deserializing) { }
    21         private IfStatement(IfStatement original, Cloner cloner)
    22             : base(original, cloner)
    23         {
    24             this.Prefix = "if(";
    25             this.Suffix = ")";
    26         }
     17    [StorableConstructor]
     18    private IfStatement(bool deserializing) : base(deserializing) { }
     19    private IfStatement(IfStatement original, Cloner cloner)
     20      : base(original, cloner) {
     21    }
    2722
    28         public IfStatement()
    29             : base("IfStatement", "An IfStatement.")
    30         {
    31             this.Prefix = "if(";
    32             this.Suffix = ")";
    33         }
     23    public IfStatement()
     24      : base("IfStatement", "An IfStatement.") {
     25      this.Prefix = "if(";
     26      this.Suffix = ")";
     27    }
    3428
    35         public override IDeepCloneable Clone(Cloner cloner)
    36         {
    37             return new IfStatement(this, cloner);
    38         }
     29    public override IDeepCloneable Clone(Cloner cloner) {
     30      return new IfStatement(this, cloner);
     31    }
    3932
    40         public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children)
    41         {
    42             string condition = "", ifTrue = "", ifElse = "";
    43             foreach (ISymbolicExpressionTreeNode c in children)
    44             {
    45                 if(c.Symbol is LogicalExpression)
    46                     condition = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    47                 else if(c.Symbol is Block)
    48                     ifTrue = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    49                 else if(c.Symbol is ElseStatement || c.Symbol is DoNothing)
    50                     ifElse = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    51                 else
    52                     throw new System.Exception("Unexpected Child node.");
    53             }
    54             return this.Prefix + " " + condition + " " + this.Suffix +
    55                 "\r\n" + ifTrue + "\r\n" + ifElse + "\r\n";
    56         }
     33    public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children) {
     34      string condition = "", ifTrue = "", ifElse = "";
     35      foreach (ISymbolicExpressionTreeNode c in children) {
     36        if (c.Symbol is LogicalExpression)
     37          condition = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     38        else if (c.Symbol is Block)
     39          ifTrue = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     40        else if (c.Symbol is ElseStatement || c.Symbol is DoNothing)
     41          ifElse = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     42        else
     43          throw new System.Exception("Unexpected Child node.");
     44      }
     45      return this.Prefix + " " + condition + " " + this.Suffix +
     46          "\r\n" + ifTrue + "\r\n" + ifElse + "\r\n";
    5747    }
     48  }
    5849}
  • branches/Robocode/HeuristicLab.Problems.Robocode/Symbols/Branches/WhileLoop.cs

    r9565 r9630  
    33using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    44
    5 namespace HeuristicLab.Problems.Robocode
    6 {
    7     [StorableClass]
    8     public class WhileLoop : CodeNode
    9     {
    10         public override int MinimumArity { get { return 2; } }
    11         public override int MaximumArity { get { return 2; } }
     5namespace HeuristicLab.Problems.Robocode {
     6  [StorableClass]
     7  public class WhileLoop : CodeNode {
     8    public override int MinimumArity { get { return 2; } }
     9    public override int MaximumArity { get { return 2; } }
    1210
    13         [Storable]
    14         public override string Prefix { get; set; }
     11    [Storable]
     12    public override string Prefix { get; set; }
    1513
    16         [Storable]
    17         public override string Suffix { get; set; }
     14    [Storable]
     15    public override string Suffix { get; set; }
    1816
    19         [StorableConstructor]
    20         private WhileLoop(bool deserializing) : base(deserializing) { }
    21         private WhileLoop(WhileLoop original, Cloner cloner)
    22             : base(original, cloner)
    23         {
    24             this.Prefix = "while(";
    25             this.Suffix = ")";
    26         }
     17    [StorableConstructor]
     18    private WhileLoop(bool deserializing) : base(deserializing) { }
     19    private WhileLoop(WhileLoop original, Cloner cloner)
     20      : base(original, cloner) {
    2721
    28         public WhileLoop()
    29             : base("WhileLoop", "A WhileLoop.")
    30         {
    31             this.Prefix = "while(";
    32             this.Suffix = ")";
    33         }
     22    }
    3423
    35         public override IDeepCloneable Clone(Cloner cloner)
    36         {
    37             return new WhileLoop(this, cloner);
    38         }
     24    public WhileLoop()
     25      : base("WhileLoop", "A WhileLoop.") {
     26      this.Prefix = "while(";
     27      this.Suffix = ")";
     28    }
    3929
    40         public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children)
    41         {
    42             string condition = "", ifTrue = "";
    43             foreach (ISymbolicExpressionTreeNode c in children)
    44             {
    45                 if (c.Symbol is LogicalExpression)
    46                     condition = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    47                 else if (c.Symbol is Block)
    48                     ifTrue = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
    49                 else
    50                     throw new System.Exception("Unexpected Child node.");
    51             }
    52             return this.Prefix + " " + condition + " " + this.Suffix +
    53                 "\r\n" + ifTrue + "\r\n";
    54         }
     30    public override IDeepCloneable Clone(Cloner cloner) {
     31      return new WhileLoop(this, cloner);
    5532    }
     33
     34    public override string Interpret(ISymbolicExpressionTreeNode node, System.Collections.Generic.IEnumerable<ISymbolicExpressionTreeNode> children) {
     35      string condition = "", ifTrue = "";
     36      foreach (ISymbolicExpressionTreeNode c in children) {
     37        if (c.Symbol is LogicalExpression)
     38          condition = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     39        else if (c.Symbol is Block)
     40          ifTrue = ((CodeNode)c.Symbol).Interpret(c, c.Subtrees);
     41        else
     42          throw new System.Exception("Unexpected Child node.");
     43      }
     44      return this.Prefix + " " + condition + " " + this.Suffix +
     45          "\r\n" + ifTrue + "\r\n";
     46    }
     47  }
    5648}
Note: See TracChangeset for help on using the changeset viewer.