summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/Parser.java4
-rw-r--r--chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java10
2 files changed, 1 insertions, 13 deletions
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
index a287f997..79b50672 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
@@ -115,9 +115,7 @@ public class Parser {
// Enter a new scope
_scope.push();
Node n = null;
- while (!match("}")) {
- if (_lexer.isEOF()) throw errorSyntax("}");
-
+ while (!match("}") && !_lexer.isEOF()) {
Node n0 = parseStatement();
if (n0 != null) n = n0; // Allow null returns from eg showGraph
}
diff --git a/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java b/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
index 254f4530..ab956e9f 100644
--- a/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
+++ b/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
@@ -429,14 +429,4 @@ return c;
// this test used to fail in chapter 1
assertEquals("return -100;", new Parser("return -100;").parse().print());
}
-
- @Test
- public void testBad6() {
- try {
- new Parser("int a=1; int b=2; int c=0; { int b=3; c=a+b;").parse();
- fail();
- } catch( RuntimeException e ) {
- assertEquals("Syntax error, expected }: ",e.getMessage());
- }
- }
}