mirror of
https://github.com/MorizzG/MLox.git
synced 2025-12-06 04:22:41 +00:00
added lox test files
This commit is contained in:
parent
821f5c62bc
commit
0f3d0a15f0
268 changed files with 7497 additions and 3 deletions
2
lox.t/for/class_in_body.lox
Normal file
2
lox.t/for/class_in_body.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'class': Expect expression.
|
||||
for (;;) class Foo {}
|
||||
22
lox.t/for/closure_in_body.lox
Normal file
22
lox.t/for/closure_in_body.lox
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
var f1;
|
||||
var f2;
|
||||
var f3;
|
||||
|
||||
for (var i = 1; i < 4; i = i + 1) {
|
||||
var j = i;
|
||||
fun f() {
|
||||
print i;
|
||||
print j;
|
||||
}
|
||||
|
||||
if (j == 1) f1 = f;
|
||||
else if (j == 2) f2 = f;
|
||||
else f3 = f;
|
||||
}
|
||||
|
||||
f1(); // expect: 4
|
||||
// expect: 1
|
||||
f2(); // expect: 4
|
||||
// expect: 2
|
||||
f3(); // expect: 4
|
||||
// expect: 3
|
||||
2
lox.t/for/fun_in_body.lox
Normal file
2
lox.t/for/fun_in_body.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'fun': Expect expression.
|
||||
for (;;) fun foo() {}
|
||||
10
lox.t/for/return_closure.lox
Normal file
10
lox.t/for/return_closure.lox
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
fun f() {
|
||||
for (;;) {
|
||||
var i = "i";
|
||||
fun g() { print i; }
|
||||
return g;
|
||||
}
|
||||
}
|
||||
|
||||
var h = f();
|
||||
h(); // expect: i
|
||||
9
lox.t/for/return_inside.lox
Normal file
9
lox.t/for/return_inside.lox
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
fun f() {
|
||||
for (;;) {
|
||||
var i = "i";
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
print f();
|
||||
// expect: i
|
||||
26
lox.t/for/scope.lox
Normal file
26
lox.t/for/scope.lox
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{
|
||||
var i = "before";
|
||||
|
||||
// New variable is in inner scope.
|
||||
for (var i = 0; i < 1; i = i + 1) {
|
||||
print i; // expect: 0
|
||||
|
||||
// Loop body is in second inner scope.
|
||||
var i = -1;
|
||||
print i; // expect: -1
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// New variable shadows outer variable.
|
||||
for (var i = 0; i > 0; i = i + 1) {}
|
||||
|
||||
// Goes out of scope after loop.
|
||||
var i = "after";
|
||||
print i; // expect: after
|
||||
|
||||
// Can reuse an existing variable.
|
||||
for (i = 0; i < 1; i = i + 1) {
|
||||
print i; // expect: 0
|
||||
}
|
||||
}
|
||||
3
lox.t/for/statement_condition.lox
Normal file
3
lox.t/for/statement_condition.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
// [line 3] Error at '{': Expect expression.
|
||||
// [line 3] Error at ')': Expect ';' after expression.
|
||||
for (var a = 1; {}; a = a + 1) {}
|
||||
2
lox.t/for/statement_increment.lox
Normal file
2
lox.t/for/statement_increment.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at '{': Expect expression.
|
||||
for (var a = 1; a < 2; {}) {}
|
||||
3
lox.t/for/statement_initializer.lox
Normal file
3
lox.t/for/statement_initializer.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
// [line 3] Error at '{': Expect expression.
|
||||
// [line 3] Error at ')': Expect ';' after expression.
|
||||
for ({}; a < 2; a = a + 1) {}
|
||||
50
lox.t/for/syntax.lox
Normal file
50
lox.t/for/syntax.lox
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
// 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;
|
||||
2
lox.t/for/var_in_body.lox
Normal file
2
lox.t/for/var_in_body.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'var': Expect expression.
|
||||
for (;;) var foo;
|
||||
Loading…
Add table
Add a link
Reference in a new issue