From c19c4a27f29bbc5a4befb4f0931da74c9138c808 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Fri, 15 Nov 2024 13:36:11 -0800 Subject: Fix 2 small bugs --- .../java/com/seaofnodes/simple/Chapter17Test.java | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'chapter17/src/test/java') diff --git a/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java b/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java index 176a9236..516da849 100644 --- a/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java +++ b/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java @@ -356,7 +356,31 @@ return i; try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Undefined name 'i'",e.getMessage()); } } + @Test + public void testFor5() { + Parser parser = new Parser(""" +for(;;arg++;) {} +"""); + try { parser.parse().iterate(); fail(); } + catch( Exception e ) { assertEquals("Syntax error, expected Unexpected code after expression: ;",e.getMessage()); } + } + + + // --------------------------------------------------------------- + @Test + public void testForward() { + Parser parser = new Parser(""" +struct A{ + B? f1; + B? f2; +}; +return new A; +"""); + StopNode stop = parser.parse().iterate(); + assertEquals("return A;", stop.toString()); + assertEquals("Obj{f1=null,f2=null}", Evaluator.evaluate(stop).toString()); + } // --------------------------------------------------------------- @Test -- cgit v1.2.3