mirror of
https://github.com/wren-lang/wren.git
synced 2026-01-12 14:48:40 +01:00
In the process, I had to change the grammar. There is now a strong separation between statements and expressions. The code was just wrong before when it popped locals at the end of a block scope because there could be temporaries on the stack if the block was in expression position. This fixes that. Still need to implement closing over `this`.
25 lines
329 B
Plaintext
25 lines
329 B
Plaintext
// Single-expression body.
|
|
var c = 0
|
|
while (c < 3) io.write(c = c + 1)
|
|
// expect: 1
|
|
// expect: 2
|
|
// expect: 3
|
|
|
|
// Block body.
|
|
var a = 0
|
|
while (a < 3) {
|
|
io.write(a)
|
|
a = a + 1
|
|
}
|
|
// expect: 0
|
|
// expect: 1
|
|
// expect: 2
|
|
|
|
// Newline after "while".
|
|
var d = 0
|
|
while
|
|
(d < 3) io.write(d = d + 1)
|
|
// expect: 1
|
|
// expect: 2
|
|
// expect: 3
|