diff options
| author | Cliff Click <cliffc@acm.org> | 2024-11-13 20:53:05 -0800 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-11-23 09:03:20 -0800 |
| commit | 477c71d89d107936cd0c4776bb2d5ff37cb91539 (patch) | |
| tree | d2f4dcec5620a757b44615c0db515e5142900f49 /chapter17/src/test/java/com/seaofnodes | |
| parent | 3652f49f679de25a2544225d6a3600a63b693ba0 (diff) | |
| download | Simple-477c71d89d107936cd0c4776bb2d5ff37cb91539.tar.gz Simple-477c71d89d107936cd0c4776bb2d5ff37cb91539.zip | |
Allow oper-assign, += -= etc
Diffstat (limited to 'chapter17/src/test/java/com/seaofnodes')
| -rw-r--r-- | chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java b/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java index b1f7eb43..176a9236 100644 --- a/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java +++ b/chapter17/src/test/java/com/seaofnodes/simple/Chapter17Test.java @@ -105,6 +105,14 @@ return s.x; assertEquals(255L, Evaluator.evaluate(stop, 0)); } + @Test + public void testInc8() { + Parser parser = new Parser("int x; x+=2; return x+=3;"); + StopNode stop = parser.parse().iterate(); + assertEquals("return 5;", stop.toString()); + assertEquals(5L, Evaluator.evaluate(stop, 0)); + } + // --------------------------------------------------------------- @Test public void testVar0() { Parser parser = new Parser("var d; return d;"); @@ -288,7 +296,7 @@ return b ? b.next ? b.next.x : b.x; // parses "b ? (b.next ? b.next.x : b.x) : 0 Parser parser = new Parser(""" int sum=0; for( int i=0; i<arg; i++ ) - sum = sum + i; + sum += i; return sum; """); StopNode stop = parser.parse().iterate(); @@ -301,7 +309,7 @@ return sum; Parser parser = new Parser(""" int sum=0, i=0; for( ; i<arg; i++ ) - sum = sum + i; + sum += i; return sum; """); StopNode stop = parser.parse().iterate(); @@ -315,7 +323,7 @@ return sum; int sum=0; for( int i=0; ; i++ ) { if( i>=arg ) break; - sum = sum + i; + sum += i; } return sum; """); @@ -329,7 +337,7 @@ return sum; Parser parser = new Parser(""" int sum=0; for( int i=0; i<arg; ) - sum = sum + i++; + sum += i++; return sum; """); StopNode stop = parser.parse().iterate(); @@ -342,7 +350,7 @@ return sum; Parser parser = new Parser(""" int sum=0; for( int i=0; i<arg; i++ ) - sum = sum + i; + sum += i; return i; """); try { parser.parse().iterate(); fail(); } @@ -361,7 +369,7 @@ while( arg-- ) int sum=0; var ptr = head; // A read-only ptr, to be assigned from read-only next fields for( ; ptr; ptr = ptr.next ) - sum = sum + ptr.i; + sum += ptr.i; return sum; """); StopNode stop = parser.parse().iterate(); @@ -382,7 +390,7 @@ for( p=2; p*p < arg; p++ ) { // p is now a prime primes[nprimes++] = p; // Mark out the rest non-primes - for( int i = p + p; i < ary#; i = i + p ) + for( int i = p + p; i < ary#; i += p ) ary[i] = true; } // Now just collect the remaining primes, no more marking |
