summaryrefslogtreecommitdiff
path: root/chapter08
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-09-04 08:14:23 -0700
committerThalia Archibald <thalia@archibald.dev>2024-09-07 10:54:48 -0700
commit29db69cb40c2fda992a704a50e9159a1a3e23ac9 (patch)
treee614204f3312a05c26ef1726251929c465903b7c /chapter08
parentfb0315e1d8911534c6ce5a4d3a8b63a2005d6fe5 (diff)
downloadSimple-29db69cb40c2fda992a704a50e9159a1a3e23ac9.tar.gz
Simple-29db69cb40c2fda992a704a50e9159a1a3e23ac9.zip
Backport empty statement fix
Split Ch13 tests from Chapter12Test.java Handle forward refs never defined.
Diffstat (limited to 'chapter08')
-rw-r--r--chapter08/Makefile2
-rw-r--r--chapter08/src/main/java/com/seaofnodes/simple/Parser.java1
2 files changed, 2 insertions, 1 deletions
diff --git a/chapter08/Makefile b/chapter08/Makefile
index 56f69e12..3c271042 100644
--- a/chapter08/Makefile
+++ b/chapter08/Makefile
@@ -36,7 +36,7 @@ main_javas := $(wildcard $(SRC)/$(SIMPLE)/*java $(SRC)/$(SIMPLE)/*/*java)
test_javas := $(wildcard $(TST)/$(SIMPLE)/*java $(TST)/$(SIMPLE)/*/*java)
main_classes := $(patsubst $(SRC)/%java,$(CLZDIR)/main/%class,$(main_javas))
test_classes := $(patsubst $(TST)/%java,$(CLZDIR)/test/%class,$(test_javas))
-test_cp := $(patsubst $(TST)/$(SIMPLE)/%.java,com.seaofnodes.simple.%,$(test_javas))
+test_cp := $(patsubst $(TST)/$(SIMPLE)/%.java,com.seaofnodes.simple.%,$(wildcard $(TST)/$(SIMPLE)/*Test.java))
classes = $(main_classes) $(test_classes)
# All the libraries
libs = $(wildcard lib/*jar)
diff --git a/chapter08/src/main/java/com/seaofnodes/simple/Parser.java b/chapter08/src/main/java/com/seaofnodes/simple/Parser.java
index 47e7c2c4..69796828 100644
--- a/chapter08/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter08/src/main/java/com/seaofnodes/simple/Parser.java
@@ -145,6 +145,7 @@ public class Parser {
else if (matchx("break")) return parseBreak();
else if (matchx("continue")) return parseContinue();
else if (matchx("#showGraph")) return require(showGraph(),";");
+ else if (matchx(";")) return null; // Empty statement
else return parseExpressionStatement();
}