mirror of
https://github.com/MorizzG/rlox.git
synced 2025-12-06 04:12:42 +00:00
50 lines
747 B
Lox
50 lines
747 B
Lox
// Single-expression body.
|
|
for (var c = 0; c < 3;) print c = c + 1;
|
|
// expect: 1
|
|
// expect: 2
|
|
// expect: 3
|
|
|
|
// Block body.
|
|
for (var a = 0; a < 3; a = a + 1) {
|
|
print a;
|
|
}
|
|
// expect: 0
|
|
// expect: 1
|
|
// expect: 2
|
|
|
|
// No clauses.
|
|
fun foo() {
|
|
for (;;) return "done";
|
|
}
|
|
print foo(); // expect: done
|
|
|
|
// No variable.
|
|
var i = 0;
|
|
for (; i < 2; i = i + 1) print i;
|
|
// expect: 0
|
|
// expect: 1
|
|
|
|
// No condition.
|
|
fun bar() {
|
|
for (var i = 0;; i = i + 1) {
|
|
print i;
|
|
if (i >= 2) return;
|
|
}
|
|
}
|
|
bar();
|
|
// expect: 0
|
|
// expect: 1
|
|
// expect: 2
|
|
|
|
// No increment.
|
|
for (var i = 0; i < 2;) {
|
|
print i;
|
|
i = i + 1;
|
|
}
|
|
// expect: 0
|
|
// expect: 1
|
|
|
|
// Statement bodies.
|
|
for (; false;) if (true) 1; else 2;
|
|
for (; false;) while (true) 1;
|
|
for (; false;) for (;;) 1;
|