mlox/lox.t/for/syntax.lox

50 lines
747 B
Lox
Raw Permalink Normal View History

2024-08-03 02:44:12 +02:00
// 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;