added tests for break and continue

This commit is contained in:
Moritz Gmeiner 2024-08-27 18:59:34 +02:00
commit 54dc78f0b8
7 changed files with 123 additions and 2 deletions

11
lox.t/break/for.lox Normal file
View file

@ -0,0 +1,11 @@
for (var i = 0; i < 10; i = i + 1) {
if (i == 5)
break;
print i;
}
// expect: 0
// expect: 1
// expect: 2
// expect: 3
// expect: 4

View file

@ -0,0 +1,2 @@
break;
// expect: error

15
lox.t/break/while.lox Normal file
View file

@ -0,0 +1,15 @@
var i = 0;
while (i < 10) {
if (i == 5)
break;
print i;
i = i + 1;
}
// expect: 0
// expect: 1
// expect: 2
// expect: 3
// expect: 4

16
lox.t/continue/for.lox Normal file
View file

@ -0,0 +1,16 @@
for (var i = 0; i < 10; i = i + 1) {
if (i == 5)
continue;
print i;
}
// expect: 0
// expect: 1
// expect: 2
// expect: 3
// expect: 4
// expect: 6
// expect: 7
// expect: 8
// expect: 9

View file

@ -0,0 +1,2 @@
continue;
// expect: error

21
lox.t/continue/while.lox Normal file
View file

@ -0,0 +1,21 @@
var i = 0;
while (i < 10) {
if (i == 5) {
i = i + 1;
continue;
}
print i;
i = i + 1;
}
// expect: 0
// expect: 1
// expect: 2
// expect: 3
// expect: 4
// expect: 6
// expect: 7
// expect: 8
// expect: 9

View file

@ -136,6 +136,31 @@ file bool/not.lox
true true
file break/for.lox
$ mlox break/for.lox
0
1
2
3
4
file break/outside_loop.lox
$ mlox break/outside_loop.lox
found 1 ParserError:
ParserError at line 1, column 0: Can use break only in loops
[1]
file break/while.lox
$ mlox break/while.lox
0
1
2
3
4
file call/bool.lox file call/bool.lox
$ mlox call/bool.lox $ mlox call/bool.lox
@ -298,8 +323,37 @@ file constructor/return_value.lox
$ mlox constructor/return_value.lox $ mlox constructor/return_value.lox
file empty_file.lox file continue/for.lox
$ mlox empty_file.lox $ mlox continue/for.lox
0
1
2
3
4
6
7
8
9
file continue/outside_loop.lox
$ mlox continue/outside_loop.lox
found 1 ParserError:
ParserError at line 1, column 0: Can use continue only in loops
[1]
file continue/while.lox
$ mlox continue/while.lox
0
1
2
3
4
6
7
8
9
file expressions/evaluate.lox file expressions/evaluate.lox