summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter04/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter05/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter06/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter07/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter08/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter09/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter10/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter11/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter12/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter13/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter15/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter16/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter17/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter18/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter19/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter20/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter21/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter22/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter23/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter24/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
-rw-r--r--chapter25/src/test/java/com/seaofnodes/simple/Chapter04Test.java28
22 files changed, 616 insertions, 0 deletions
diff --git a/chapter04/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter04/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 28912d5d..74682310 100644
--- a/chapter04/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter04/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ ReturnNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ ReturnNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ ReturnNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ ReturnNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ", TypeInteger.BOT);
ReturnNode ret = parser.parse();
diff --git a/chapter05/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter05/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 2e2abb25..f1603cc4 100644
--- a/chapter05/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter05/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter06/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter06/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 98878ca6..e5840622 100644
--- a/chapter06/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter06/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg;");
StopNode stop = parser.parse();
diff --git a/chapter07/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter07/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 98878ca6..e5840622 100644
--- a/chapter07/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter07/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg;");
StopNode stop = parser.parse();
diff --git a/chapter08/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter08/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 2e2abb25..f1603cc4 100644
--- a/chapter08/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter08/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter09/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter09/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 2e2abb25..f1603cc4 100644
--- a/chapter09/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter09/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter10/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter10/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 2e2abb25..f1603cc4 100644
--- a/chapter10/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter10/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter11/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter11/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter11/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter11/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter12/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter12/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter12/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter12/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter13/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter13/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter13/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter13/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter15/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter15/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter15/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter15/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter16/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter16/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 80cdb3f2..a3109ff7 100644
--- a/chapter16/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter16/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter17/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter17/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 0db3afde..dfd3569f 100644
--- a/chapter17/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter17/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -51,6 +51,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ Parser parser = new Parser("return arg-0;");
+ StopNode ret = parser.parse();
+ assertEquals("return arg;", ret.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ Parser parser = new Parser("return 0-arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-arg);", ret.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ Parser parser = new Parser("return 3--arg;");
+ StopNode ret = parser.parse();
+ assertEquals("return (arg+3);", ret.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ Parser parser = new Parser("return -arg-3;");
+ StopNode ret = parser.parse();
+ assertEquals("return (-(arg+3));", ret.print());
+ }
+
+ @Test
public void testVarArg() {
Parser parser = new Parser("return arg; ");
StopNode stop = parser.parse();
diff --git a/chapter18/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter18/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index afed67d1..d2260e1f 100644
--- a/chapter18/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter18/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -52,6 +52,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter19/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter19/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index d09b1748..934e794f 100644
--- a/chapter19/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter19/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -52,6 +52,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter20/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter20/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index c6199193..e5a16680 100644
--- a/chapter20/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter20/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter21/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter21/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index c6199193..e5a16680 100644
--- a/chapter21/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter21/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter22/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter22/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index c6199193..e5a16680 100644
--- a/chapter22/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter22/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter23/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter23/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 1361d8b6..ce808084 100644
--- a/chapter23/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter23/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter24/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter24/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index 1361d8b6..ce808084 100644
--- a/chapter24/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter24/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();
diff --git a/chapter25/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter25/src/test/java/com/seaofnodes/simple/Chapter04Test.java
index eaa959cb..1132375e 100644
--- a/chapter25/src/test/java/com/seaofnodes/simple/Chapter04Test.java
+++ b/chapter25/src/test/java/com/seaofnodes/simple/Chapter04Test.java
@@ -53,6 +53,34 @@ public class Chapter04Test {
}
@Test
+ public void testSub0() {
+ CodeGen code = new CodeGen("return arg-0;");
+ code.parse();
+ assertEquals("return arg;", code.print());
+ }
+
+ @Test
+ public void test0Sub() {
+ CodeGen code = new CodeGen("return 0-arg;");
+ code.parse();
+ assertEquals("return (-arg);", code.print());
+ }
+
+ @Test
+ public void testSubNeg() {
+ CodeGen code = new CodeGen("return 3--arg;");
+ code.parse();
+ assertEquals("return (arg+3);", code.print());
+ }
+
+ @Test
+ public void testNegSub() {
+ CodeGen code = new CodeGen("return -arg-3;");
+ code.parse();
+ assertEquals("return (-(arg+3));", code.print());
+ }
+
+ @Test
public void testVarArg() {
CodeGen code = new CodeGen("return arg; ");
code.parse();