summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter12/src/main/java/com/seaofnodes/simple/Parser.java2
-rw-r--r--chapter12/src/main/java/com/seaofnodes/simple/node/DivFNode.java4
-rw-r--r--chapter12/src/test/java/com/seaofnodes/simple/Chapter09Test.java1
-rw-r--r--chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java4
4 files changed, 5 insertions, 6 deletions
diff --git a/chapter12/src/main/java/com/seaofnodes/simple/Parser.java b/chapter12/src/main/java/com/seaofnodes/simple/Parser.java
index f4108461..fd0a63f2 100644
--- a/chapter12/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter12/src/main/java/com/seaofnodes/simple/Parser.java
@@ -510,7 +510,7 @@ public class Parser {
op.setDef(idx,parseAddition());
Node fop = op.widen();
lhs = fop.peephole();
- op.kill();
+ if( op != fop ) op.kill();
if( negate ) // Extra negate for !=
lhs = new NotNode(lhs).peephole();
}
diff --git a/chapter12/src/main/java/com/seaofnodes/simple/node/DivFNode.java b/chapter12/src/main/java/com/seaofnodes/simple/node/DivFNode.java
index 3333b417..36fd4524 100644
--- a/chapter12/src/main/java/com/seaofnodes/simple/node/DivFNode.java
+++ b/chapter12/src/main/java/com/seaofnodes/simple/node/DivFNode.java
@@ -10,12 +10,12 @@ public class DivFNode extends Node {
@Override public String label() { return "DivF"; }
- @Override public String glabel() { return "*"; }
+ @Override public String glabel() { return "/"; }
@Override
StringBuilder _print1(StringBuilder sb, BitSet visited) {
in(1)._print0(sb.append("("), visited);
- in(2)._print0(sb.append("*"), visited);
+ in(2)._print0(sb.append("/"), visited);
return sb.append(")");
}
diff --git a/chapter12/src/test/java/com/seaofnodes/simple/Chapter09Test.java b/chapter12/src/test/java/com/seaofnodes/simple/Chapter09Test.java
index d29de3e3..dba40b8a 100644
--- a/chapter12/src/test/java/com/seaofnodes/simple/Chapter09Test.java
+++ b/chapter12/src/test/java/com/seaofnodes/simple/Chapter09Test.java
@@ -5,7 +5,6 @@ import com.seaofnodes.simple.node.*;
import com.seaofnodes.simple.type.Type;
import com.seaofnodes.simple.type.TypeInteger;
import org.junit.Assert;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.Ignore;
diff --git a/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java b/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
index c5ea883e..bfd6c309 100644
--- a/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
+++ b/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
@@ -32,7 +32,7 @@ while( 1 ) {
return guess;
""");
StopNode stop = parser.parse(false).iterate(true);
- assertEquals("return Phi(Loop9,(flt)arg,(((ToFloat*Phi_guess)+Phi_guess)*2.0));", stop.toString());
+ assertEquals("return Phi(Loop9,(flt)arg,(((ToFloat/Phi_guess)+Phi_guess)/2.0));", stop.toString());
assertEquals(3.0, Evaluator.evaluate(stop, 9));
assertEquals(1.414213562373095, Evaluator.evaluate(stop, 2));
}
@@ -46,7 +46,7 @@ return x+1==x;
""");
StopNode stop = parser.parse(false).iterate(true);
assertEquals("return (((flt)arg+1.0)==ToFloat);", stop.toString());
- assertEquals(0, Evaluator.evaluate(stop, 1));
+ assertEquals(0L, Evaluator.evaluate(stop, 1));
}
}