diff options
| author | Cliff Click <cliffc@acm.org> | 2024-11-15 13:36:11 -0800 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-11-23 09:03:20 -0800 |
| commit | c19c4a27f29bbc5a4befb4f0931da74c9138c808 (patch) | |
| tree | 1557448987d35b534166d7e32538ae81b685bd0f /chapter17/src/test | |
| parent | b8d64b4c4c7b83794b5317a3d1135be38cd88ac8 (diff) | |
| download | Simple-c19c4a27f29bbc5a4befb4f0931da74c9138c808.tar.gz Simple-c19c4a27f29bbc5a4befb4f0931da74c9138c808.zip | |
Fix 2 small bugs
Diffstat (limited to 'chapter17/src/test')
| -rw-r--r-- | chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java | 24 |
1 files changed, 24 insertions, 0 deletions
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<A>{f1=null,f2=null}", Evaluator.evaluate(stop).toString()); + } // --------------------------------------------------------------- @Test |
