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
3
lox.t/variable/collide_with_parameter.lox
Normal file
3
lox.t/variable/collide_with_parameter.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fun foo(a) {
|
||||
var a; // Error at 'a': Already a variable with this name in this scope.
|
||||
}
|
||||
4
lox.t/variable/duplicate_local.lox
Normal file
4
lox.t/variable/duplicate_local.lox
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
var a = "value";
|
||||
var a = "other"; // Error at 'a': Already a variable with this name in this scope.
|
||||
}
|
||||
4
lox.t/variable/duplicate_parameter.lox
Normal file
4
lox.t/variable/duplicate_parameter.lox
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
fun foo(arg,
|
||||
arg) { // Error at 'arg': Already a variable with this name in this scope.
|
||||
"body";
|
||||
}
|
||||
10
lox.t/variable/early_bound.lox
Normal file
10
lox.t/variable/early_bound.lox
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
var a = "outer";
|
||||
{
|
||||
fun foo() {
|
||||
print a;
|
||||
}
|
||||
|
||||
foo(); // expect: outer
|
||||
var a = "inner";
|
||||
foo(); // expect: outer
|
||||
}
|
||||
10
lox.t/variable/in_middle_of_block.lox
Normal file
10
lox.t/variable/in_middle_of_block.lox
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
var a = "a";
|
||||
print a; // expect: a
|
||||
var b = a + " b";
|
||||
print b; // expect: a b
|
||||
var c = a + " c";
|
||||
print c; // expect: a c
|
||||
var d = b + " d";
|
||||
print d; // expect: a b d
|
||||
}
|
||||
6
lox.t/variable/in_nested_block.lox
Normal file
6
lox.t/variable/in_nested_block.lox
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
var a = "outer";
|
||||
{
|
||||
print a; // expect: outer
|
||||
}
|
||||
}
|
||||
9
lox.t/variable/local_from_method.lox
Normal file
9
lox.t/variable/local_from_method.lox
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
var foo = "variable";
|
||||
|
||||
class Foo {
|
||||
method() {
|
||||
print foo;
|
||||
}
|
||||
}
|
||||
|
||||
Foo().method(); // expect: variable
|
||||
3
lox.t/variable/redeclare_global.lox
Normal file
3
lox.t/variable/redeclare_global.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
var a = "1";
|
||||
var a;
|
||||
print a; // expect: nil
|
||||
3
lox.t/variable/redefine_global.lox
Normal file
3
lox.t/variable/redefine_global.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
var a = "1";
|
||||
var a = "2";
|
||||
print a; // expect: 2
|
||||
9
lox.t/variable/scope_reuse_in_different_blocks.lox
Normal file
9
lox.t/variable/scope_reuse_in_different_blocks.lox
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
var a = "first";
|
||||
print a; // expect: first
|
||||
}
|
||||
|
||||
{
|
||||
var a = "second";
|
||||
print a; // expect: second
|
||||
}
|
||||
8
lox.t/variable/shadow_and_local.lox
Normal file
8
lox.t/variable/shadow_and_local.lox
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
var a = "outer";
|
||||
{
|
||||
print a; // expect: outer
|
||||
var a = "inner";
|
||||
print a; // expect: inner
|
||||
}
|
||||
}
|
||||
6
lox.t/variable/shadow_global.lox
Normal file
6
lox.t/variable/shadow_global.lox
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
var a = "global";
|
||||
{
|
||||
var a = "shadow";
|
||||
print a; // expect: shadow
|
||||
}
|
||||
print a; // expect: global
|
||||
8
lox.t/variable/shadow_local.lox
Normal file
8
lox.t/variable/shadow_local.lox
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
var a = "local";
|
||||
{
|
||||
var a = "shadow";
|
||||
print a; // expect: shadow
|
||||
}
|
||||
print a; // expect: local
|
||||
}
|
||||
1
lox.t/variable/undefined_global.lox
Normal file
1
lox.t/variable/undefined_global.lox
Normal file
|
|
@ -0,0 +1 @@
|
|||
print notDefined; // expect runtime error: Undefined variable 'notDefined'.
|
||||
3
lox.t/variable/undefined_local.lox
Normal file
3
lox.t/variable/undefined_local.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
print notDefined; // expect runtime error: Undefined variable 'notDefined'.
|
||||
}
|
||||
2
lox.t/variable/uninitialized.lox
Normal file
2
lox.t/variable/uninitialized.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
var a;
|
||||
print a; // expect: nil
|
||||
5
lox.t/variable/unreached_undefined.lox
Normal file
5
lox.t/variable/unreached_undefined.lox
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
if (false) {
|
||||
print notDefined;
|
||||
}
|
||||
|
||||
print "ok"; // expect: ok
|
||||
2
lox.t/variable/use_false_as_var.lox
Normal file
2
lox.t/variable/use_false_as_var.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'false': Expect variable name.
|
||||
var false = "value";
|
||||
3
lox.t/variable/use_global_in_initializer.lox
Normal file
3
lox.t/variable/use_global_in_initializer.lox
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
var a = "value";
|
||||
var a = a;
|
||||
print a; // expect: value
|
||||
4
lox.t/variable/use_local_in_initializer.lox
Normal file
4
lox.t/variable/use_local_in_initializer.lox
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
var a = "outer";
|
||||
{
|
||||
var a = a; // Error at 'a': Can't read local variable in its own initializer.
|
||||
}
|
||||
2
lox.t/variable/use_nil_as_var.lox
Normal file
2
lox.t/variable/use_nil_as_var.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'nil': Expect variable name.
|
||||
var nil = "value";
|
||||
2
lox.t/variable/use_this_as_var.lox
Normal file
2
lox.t/variable/use_this_as_var.lox
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
// [line 2] Error at 'this': Expect variable name.
|
||||
var this = "value";
|
||||
Loading…
Add table
Add a link
Reference in a new issue