From 6de93de5297766d4c171ced32c74ac4a476a2d27 Mon Sep 17 00:00:00 2001 From: Moritz Gmeiner Date: Mon, 26 Aug 2024 17:27:12 +0200 Subject: [PATCH] finished test suite up to current state --- lox.t/run.t | 566 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 370 insertions(+), 196 deletions(-) diff --git a/lox.t/run.t b/lox.t/run.t index 11cafd4..6761b01 100644 --- a/lox.t/run.t +++ b/lox.t/run.t @@ -11,8 +11,8 @@ file empty_file.lox file fib.lox - $ mlox fib.lox - 9227465 +$ mlox fib.lox +9227465 file precedence.lox @@ -60,7 +60,6 @@ file assignment/grouping.lox file assignment/infix_operator.lox $ mlox assignment/infix_operator.lox - Invalid assignment target found 1 ParserError: ParserError at line 3, column 6: Invalid assignment target [1] @@ -76,7 +75,6 @@ file assignment/local.lox file assignment/prefix_operator.lox $ mlox assignment/prefix_operator.lox - Invalid assignment target found 1 ParserError: ParserError at line 2, column 3: Invalid assignment target [1] @@ -89,8 +87,7 @@ file assignment/syntax.lox file assignment/to_this.lox - $ mlox assignment/to_this.lox - [1] +$ mlox assignment/to_this.lox file assignment/undefined.lox @@ -140,127 +137,108 @@ file bool/not.lox file call/bool.lox - $ mlox call/bool.lox - [1] +$ mlox call/bool.lox file call/nil.lox - $ mlox call/nil.lox - [1] +$ mlox call/nil.lox file call/num.lox - $ mlox call/num.lox - [1] +$ mlox call/num.lox file call/object.lox - $ mlox call/object.lox - [1] +$ mlox call/object.lox file call/string.lox - $ mlox call/string.lox - [1] +$ mlox call/string.lox file class/empty.lox - $ mlox class/empty.lox - Foo +$ mlox class/empty.lox file class/inherit_self.lox - $ mlox class/inherit_self.lox - [1] +$ mlox class/inherit_self.lox file class/inherited_method.lox - $ mlox class/inherited_method.lox - in foo - in bar - in baz +$ mlox class/inherited_method.lox file class/local_inherit_other.lox - $ mlox class/local_inherit_other.lox - B +$ mlox class/local_inherit_other.lox file class/local_inherit_self.lox - $ mlox class/local_inherit_self.lox - [1] + $ mlox class/local_inherit_self.lox file class/local_reference_self.lox - $ mlox class/local_reference_self.lox - Foo + $ mlox class/local_reference_self.lox file class/reference_self.lox - $ mlox class/reference_self.lox - Foo +$ mlox class/reference_self.lox file closure/assign_to_closure.lox - $ mlox closure/assign_to_closure.lox - local - after f - after f - after g +$ mlox closure/assign_to_closure.lox file closure/assign_to_shadowed_later.lox - $ mlox closure/assign_to_shadowed_later.lox - inner - assigned +$ mlox closure/assign_to_shadowed_later.lox file closure/close_over_function_parameter.lox - $ mlox closure/close_over_function_parameter.lox +$ mlox closure/close_over_function_parameter.lox file closure/close_over_later_variable.lox - $ mlox closure/close_over_later_variable.lox +$ mlox closure/close_over_later_variable.lox file closure/close_over_method_parameter.lox - $ mlox closure/close_over_method_parameter.lox +$ mlox closure/close_over_method_parameter.lox file closure/closed_closure_in_function.lox - $ mlox closure/closed_closure_in_function.lox +$ mlox closure/closed_closure_in_function.lox file closure/nested_closure.lox - $ mlox closure/nested_closure.lox +$ mlox closure/nested_closure.lox file closure/open_closure_in_function.lox - $ mlox closure/open_closure_in_function.lox +$ mlox closure/open_closure_in_function.lox file closure/reference_closure_multiple_times.lox - $ mlox closure/reference_closure_multiple_times.lox +$ mlox closure/reference_closure_multiple_times.lox file closure/reuse_closure_slot.lox - $ mlox closure/reuse_closure_slot.lox +$ mlox closure/reuse_closure_slot.lox file closure/shadow_closure_with_local.lox - $ mlox closure/shadow_closure_with_local.lox +$ mlox closure/shadow_closure_with_local.lox file closure/unused_closure.lox - $ mlox closure/unused_closure.lox +$ mlox closure/unused_closure.lox file closure/unused_later_closure.lox - $ mlox closure/unused_later_closure.lox +$ mlox closure/unused_later_closure.lox file comments/line_at_eof.lox $ mlox comments/line_at_eof.lox + ok file comments/only_line_comment.lox @@ -273,50 +251,51 @@ file comments/only_line_comment_and_line.lox file comments/unicode.lox $ mlox comments/unicode.lox + ok file constructor/arguments.lox - $ mlox constructor/arguments.lox +$ mlox constructor/arguments.lox file constructor/call_init_early_return.lox - $ mlox constructor/call_init_early_return.lox +$ mlox constructor/call_init_early_return.lox file constructor/call_init_explicitly.lox - $ mlox constructor/call_init_explicitly.lox +$ mlox constructor/call_init_explicitly.lox file constructor/default.lox - $ mlox constructor/default.lox +$ mlox constructor/default.lox file constructor/default_arguments.lox - $ mlox constructor/default_arguments.lox +$ mlox constructor/default_arguments.lox file constructor/early_return.lox - $ mlox constructor/early_return.lox +$ mlox constructor/early_return.lox file constructor/extra_arguments.lox - $ mlox constructor/extra_arguments.lox +$ mlox constructor/extra_arguments.lox file constructor/init_not_method.lox - $ mlox constructor/init_not_method.lox +$ mlox constructor/init_not_method.lox file constructor/missing_arguments.lox - $ mlox constructor/missing_arguments.lox +$ mlox constructor/missing_arguments.lox file constructor/return_in_nested_function.lox - $ mlox constructor/return_in_nested_function.lox +$ mlox constructor/return_in_nested_function.lox file constructor/return_value.lox - $ mlox constructor/return_value.lox +$ mlox constructor/return_value.lox file empty_file.lox @@ -324,359 +303,420 @@ file empty_file.lox file expressions/evaluate.lox - $ mlox expressions/evaluate.lox +$ mlox expressions/evaluate.lox file expressions/parse.lox - $ mlox expressions/parse.lox +$ mlox expressions/parse.lox file field/call_function_field.lox - $ mlox field/call_function_field.lox +$ mlox field/call_function_field.lox file field/call_nonfunction_field.lox - $ mlox field/call_nonfunction_field.lox +$ mlox field/call_nonfunction_field.lox file field/get_and_set_method.lox - $ mlox field/get_and_set_method.lox +$ mlox field/get_and_set_method.lox file field/get_on_bool.lox - $ mlox field/get_on_bool.lox +$ mlox field/get_on_bool.lox file field/get_on_class.lox - $ mlox field/get_on_class.lox +$ mlox field/get_on_class.lox file field/get_on_function.lox - $ mlox field/get_on_function.lox +$ mlox field/get_on_function.lox file field/get_on_nil.lox - $ mlox field/get_on_nil.lox +$ mlox field/get_on_nil.lox file field/get_on_num.lox - $ mlox field/get_on_num.lox +$ mlox field/get_on_num.lox file field/get_on_string.lox - $ mlox field/get_on_string.lox +$ mlox field/get_on_string.lox file field/many.lox - $ mlox field/many.lox +$ mlox field/many.lox file field/method.lox - $ mlox field/method.lox +$ mlox field/method.lox file field/method_binds_this.lox - $ mlox field/method_binds_this.lox +$ mlox field/method_binds_this.lox file field/on_instance.lox - $ mlox field/on_instance.lox +$ mlox field/on_instance.lox file field/set_evaluation_order.lox - $ mlox field/set_evaluation_order.lox +$ mlox field/set_evaluation_order.lox file field/set_on_bool.lox - $ mlox field/set_on_bool.lox +$ mlox field/set_on_bool.lox file field/set_on_class.lox - $ mlox field/set_on_class.lox +$ mlox field/set_on_class.lox file field/set_on_function.lox - $ mlox field/set_on_function.lox +$ mlox field/set_on_function.lox file field/set_on_nil.lox - $ mlox field/set_on_nil.lox +$ mlox field/set_on_nil.lox file field/set_on_num.lox - $ mlox field/set_on_num.lox +$ mlox field/set_on_num.lox file field/set_on_string.lox - $ mlox field/set_on_string.lox +$ mlox field/set_on_string.lox file field/undefined.lox - $ mlox field/undefined.lox +$ mlox field/undefined.lox file for/class_in_body.lox - $ mlox for/class_in_body.lox +$ mlox for/class_in_body.lox file for/closure_in_body.lox - $ mlox for/closure_in_body.lox +$ mlox for/closure_in_body.lox file for/fun_in_body.lox - $ mlox for/fun_in_body.lox +$ mlox for/fun_in_body.lox file for/return_closure.lox - $ mlox for/return_closure.lox +$ mlox for/return_closure.lox file for/return_inside.lox - $ mlox for/return_inside.lox +$ mlox for/return_inside.lox file for/scope.lox - $ mlox for/scope.lox +$ mlox for/scope.lox file for/statement_condition.lox - $ mlox for/statement_condition.lox +$ mlox for/statement_condition.lox file for/statement_increment.lox - $ mlox for/statement_increment.lox +$ mlox for/statement_increment.lox file for/statement_initializer.lox - $ mlox for/statement_initializer.lox +$ mlox for/statement_initializer.lox file for/syntax.lox - $ mlox for/syntax.lox +$ mlox for/syntax.lox file for/var_in_body.lox - $ mlox for/var_in_body.lox +$ mlox for/var_in_body.lox file function/body_must_be_block.lox - $ mlox function/body_must_be_block.lox +$ mlox function/body_must_be_block.lox file function/empty_body.lox - $ mlox function/empty_body.lox +$ mlox function/empty_body.lox file function/extra_arguments.lox - $ mlox function/extra_arguments.lox +$ mlox function/extra_arguments.lox file function/local_mutual_recursion.lox - $ mlox function/local_mutual_recursion.lox +$ mlox function/local_mutual_recursion.lox file function/local_recursion.lox - $ mlox function/local_recursion.lox +$ mlox function/local_recursion.lox file function/missing_arguments.lox - $ mlox function/missing_arguments.lox +$ mlox function/missing_arguments.lox file function/missing_comma_in_parameters.lox - $ mlox function/missing_comma_in_parameters.lox +$ mlox function/missing_comma_in_parameters.lox file function/mutual_recursion.lox - $ mlox function/mutual_recursion.lox +$ mlox function/mutual_recursion.lox file function/nested_call_with_arguments.lox - $ mlox function/nested_call_with_arguments.lox +$ mlox function/nested_call_with_arguments.lox file function/parameters.lox - $ mlox function/parameters.lox +$ mlox function/parameters.lox file function/print.lox - $ mlox function/print.lox +$ mlox function/print.lox file function/recursion.lox - $ mlox function/recursion.lox +$ mlox function/recursion.lox file function/too_many_arguments.lox - $ mlox function/too_many_arguments.lox +$ mlox function/too_many_arguments.lox file function/too_many_parameters.lox - $ mlox function/too_many_parameters.lox +$ mlox function/too_many_parameters.lox file if/class_in_else.lox - $ mlox if/class_in_else.lox +$ mlox if/class_in_else.lox file if/class_in_then.lox - $ mlox if/class_in_then.lox +$ mlox if/class_in_then.lox file if/dangling_else.lox $ mlox if/dangling_else.lox + good file if/else.lox $ mlox if/else.lox + good + good + block file if/fun_in_else.lox - $ mlox if/fun_in_else.lox +$ mlox if/fun_in_else.lox file if/fun_in_then.lox - $ mlox if/fun_in_then.lox +$ mlox if/fun_in_then.lox file if/if.lox $ mlox if/if.lox + good + block + true file if/truth.lox $ mlox if/truth.lox + false + nil + true + 0 + empty file if/var_in_else.lox $ mlox if/var_in_else.lox + found 1 ParserError: + ParserError at line 2, column 21: Expected valid expression, got Var instead + [1] file if/var_in_then.lox $ mlox if/var_in_then.lox + found 1 ParserError: + ParserError at line 2, column 10: Expected valid expression, got Var instead + [1] file inheritance/constructor.lox - $ mlox inheritance/constructor.lox +$ mlox inheritance/constructor.lox file inheritance/inherit_from_function.lox - $ mlox inheritance/inherit_from_function.lox +$ mlox inheritance/inherit_from_function.lox file inheritance/inherit_from_nil.lox - $ mlox inheritance/inherit_from_nil.lox +$ mlox inheritance/inherit_from_nil.lox file inheritance/inherit_from_number.lox - $ mlox inheritance/inherit_from_number.lox +$ mlox inheritance/inherit_from_number.lox file inheritance/inherit_methods.lox - $ mlox inheritance/inherit_methods.lox +$ mlox inheritance/inherit_methods.lox file inheritance/parenthesized_superclass.lox - $ mlox inheritance/parenthesized_superclass.lox +$ mlox inheritance/parenthesized_superclass.lox file inheritance/set_fields_from_base_class.lox - $ mlox inheritance/set_fields_from_base_class.lox +$ mlox inheritance/set_fields_from_base_class.lox file limit/loop_too_large.lox - $ mlox limit/loop_too_large.lox +$ mlox limit/loop_too_large.lox file limit/no_reuse_constants.lox - $ mlox limit/no_reuse_constants.lox +$ mlox limit/no_reuse_constants.lox file limit/stack_overflow.lox - $ mlox limit/stack_overflow.lox +$ mlox limit/stack_overflow.lox file limit/too_many_constants.lox - $ mlox limit/too_many_constants.lox +$ mlox limit/too_many_constants.lox file limit/too_many_locals.lox - $ mlox limit/too_many_locals.lox +$ mlox limit/too_many_locals.lox file limit/too_many_upvalues.lox - $ mlox limit/too_many_upvalues.lox +$ mlox limit/too_many_upvalues.lox file logical_operator/and.lox $ mlox logical_operator/and.lox + false + 1 + false + true + 3 + true + false file logical_operator/and_truth.lox $ mlox logical_operator/and_truth.lox + false + nil + ok + ok + ok file logical_operator/or.lox $ mlox logical_operator/or.lox + 1 + 1 + true + false + false + false + true file logical_operator/or_truth.lox $ mlox logical_operator/or_truth.lox + ok + ok + true + 0 + s file method/arity.lox - $ mlox method/arity.lox +$ mlox method/arity.lox file method/empty_block.lox - $ mlox method/empty_block.lox +$ mlox method/empty_block.lox file method/extra_arguments.lox - $ mlox method/extra_arguments.lox +$ mlox method/extra_arguments.lox file method/missing_arguments.lox - $ mlox method/missing_arguments.lox +$ mlox method/missing_arguments.lox file method/not_found.lox - $ mlox method/not_found.lox +$ mlox method/not_found.lox file method/print_bound_method.lox - $ mlox method/print_bound_method.lox +$ mlox method/print_bound_method.lox file method/refer_to_name.lox - $ mlox method/refer_to_name.lox +$ mlox method/refer_to_name.lox file method/too_many_arguments.lox - $ mlox method/too_many_arguments.lox +$ mlox method/too_many_arguments.lox file method/too_many_parameters.lox - $ mlox method/too_many_parameters.lox +$ mlox method/too_many_parameters.lox file nil/literal.lox $ mlox nil/literal.lox + nil file number/decimal_point_at_eof.lox $ mlox number/decimal_point_at_eof.lox + found 1 ParserError: + ParserError at line 2, column 4: Expected Semicolon, but got Eof + [1] file number/leading_dot.lox $ mlox number/leading_dot.lox + found 1 ParserError: + ParserError at line 2, column 0: Expected valid expression, got Dot instead + [1] file number/literals.lox $ mlox number/literals.lox + 123 + 987654 + 0 + 0 + 123.456 + -0.001 file number/nan_equality.lox $ mlox number/nan_equality.lox + RuntimeError at line 1, column 11: Division by 0 + [1] +false +true +false +true file number/trailing_dot.lox @@ -685,214 +725,314 @@ file number/trailing_dot.lox file operator/add.lox $ mlox operator/add.lox + 579 + string file operator/add_bool_nil.lox $ mlox operator/add_bool_nil.lox + RuntimeError at line 1, column 5: Invalid operands of type Bool and Nil to operator Plus + [1] file operator/add_bool_num.lox $ mlox operator/add_bool_num.lox + RuntimeError at line 1, column 5: Invalid operands of type Bool and Number to operator Plus + [1] file operator/add_bool_string.lox $ mlox operator/add_bool_string.lox + RuntimeError at line 1, column 5: Invalid operands of type Bool and String to operator Plus + [1] file operator/add_nil_nil.lox $ mlox operator/add_nil_nil.lox + RuntimeError at line 1, column 4: Invalid operands of type Nil and Nil to operator Plus + [1] file operator/add_num_nil.lox $ mlox operator/add_num_nil.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and Nil to operator Plus + [1] file operator/add_string_nil.lox $ mlox operator/add_string_nil.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Nil to operator Plus + [1] file operator/comparison.lox $ mlox operator/comparison.lox + true + false + false + true + true + false + false + false + true + false + true + true + false + false + false + false + true + true + true + true file operator/divide.lox $ mlox operator/divide.lox + 4 + 1 file operator/divide_nonnum_num.lox $ mlox operator/divide_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator Div + [1] file operator/divide_num_nonnum.lox $ mlox operator/divide_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator Div + [1] file operator/equals.lox $ mlox operator/equals.lox + true + true + false + true + false + true + false + false + false + false file operator/equals_class.lox - $ mlox operator/equals_class.lox +$ mlox operator/equals_class.lox file operator/equals_method.lox - $ mlox operator/equals_method.lox +$ mlox operator/equals_method.lox file operator/greater_nonnum_num.lox $ mlox operator/greater_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator Greater + [1] file operator/greater_num_nonnum.lox $ mlox operator/greater_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator Greater + [1] file operator/greater_or_equal_nonnum_num.lox $ mlox operator/greater_or_equal_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator GreaterEqual + [1] file operator/greater_or_equal_num_nonnum.lox $ mlox operator/greater_or_equal_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator GreaterEqual + [1] file operator/less_nonnum_num.lox $ mlox operator/less_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator Less + [1] file operator/less_num_nonnum.lox $ mlox operator/less_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator Less + [1] file operator/less_or_equal_nonnum_num.lox $ mlox operator/less_or_equal_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator LessEqual + [1] file operator/less_or_equal_num_nonnum.lox $ mlox operator/less_or_equal_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator LessEqual + [1] file operator/multiply.lox $ mlox operator/multiply.lox + 15 + 3.702 file operator/multiply_nonnum_num.lox $ mlox operator/multiply_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator Mul + [1] file operator/multiply_num_nonnum.lox $ mlox operator/multiply_num_nonnum.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator Mul + [1] file operator/negate.lox $ mlox operator/negate.lox + -3 + 3 + -3 file operator/negate_nonnum.lox $ mlox operator/negate_nonnum.lox + RuntimeError at line 1, column 0: Invalid operant of type String to operator Neg + [1] file operator/not.lox - $ mlox operator/not.lox +$ mlox operator/not.lox file operator/not_class.lox - $ mlox operator/not_class.lox +$ mlox operator/not_class.lox file operator/not_equals.lox $ mlox operator/not_equals.lox + false + false + true + false + true + false + true + true + true + true file operator/subtract.lox $ mlox operator/subtract.lox + 1 + 0 file operator/subtract_nonnum_num.lox $ mlox operator/subtract_nonnum_num.lox + RuntimeError at line 1, column 4: Invalid operands of type String and Number to operator Minus + [1] file operator/subtract_num_nonnum.lox $ mlox operator/subtract_num_nonnum.lox - - -file precedence.lox - $ mlox precedence.lox + RuntimeError at line 1, column 2: Invalid operands of type Number and String to operator Minus + [1] file print/missing_argument.lox $ mlox print/missing_argument.lox + found 1 ParserError: + ParserError at line 2, column 5: Expected valid expression, got Semicolon instead + [1] file regression/40.lox - $ mlox regression/40.lox +$ mlox regression/40.lox file regression/394.lox - $ mlox regression/394.lox +$ mlox regression/394.lox file return/after_else.lox - $ mlox return/after_else.lox +$ mlox return/after_else.lox file return/after_if.lox - $ mlox return/after_if.lox +$ mlox return/after_if.lox file return/after_while.lox - $ mlox return/after_while.lox +$ mlox return/after_while.lox file return/at_top_level.lox - $ mlox return/at_top_level.lox +$ mlox return/at_top_level.lox file return/in_function.lox - $ mlox return/in_function.lox +$ mlox return/in_function.lox file return/in_method.lox - $ mlox return/in_method.lox +$ mlox return/in_method.lox file return/return_nil_if_no_value.lox - $ mlox return/return_nil_if_no_value.lox +$ mlox return/return_nil_if_no_value.lox file scanning/identifiers.lox - $ mlox scanning/identifiers.lox +$ mlox scanning/identifiers.lox file scanning/keywords.lox - $ mlox scanning/keywords.lox +$ mlox scanning/keywords.lox file scanning/numbers.lox - $ mlox scanning/numbers.lox +$ mlox scanning/numbers.lox file scanning/punctuators.lox - $ mlox scanning/punctuators.lox +$ mlox scanning/punctuators.lox file scanning/strings.lox - $ mlox scanning/strings.lox +$ mlox scanning/strings.lox file scanning/whitespace.lox - $ mlox scanning/whitespace.lox +$ mlox scanning/whitespace.lox file string/error_after_multiline.lox $ mlox string/error_after_multiline.lox + RuntimeError at line 7, column 0: name "err" is not defined + [1] file string/literals.lox $ mlox string/literals.lox + () + a string + A~¶Þॐஃ file string/multiline.lox $ mlox string/multiline.lox + 1 + 2 + 3 file string/unterminated.lox @@ -903,222 +1043,256 @@ file string/unterminated.lox file super/bound_method.lox - $ mlox super/bound_method.lox +$ mlox super/bound_method.lox file super/call_other_method.lox - $ mlox super/call_other_method.lox +$ mlox super/call_other_method.lox file super/call_same_method.lox - $ mlox super/call_same_method.lox +$ mlox super/call_same_method.lox file super/closure.lox - $ mlox super/closure.lox +$ mlox super/closure.lox file super/constructor.lox - $ mlox super/constructor.lox +$ mlox super/constructor.lox file super/extra_arguments.lox - $ mlox super/extra_arguments.lox +$ mlox super/extra_arguments.lox file super/indirectly_inherited.lox - $ mlox super/indirectly_inherited.lox +$ mlox super/indirectly_inherited.lox file super/missing_arguments.lox - $ mlox super/missing_arguments.lox +$ mlox super/missing_arguments.lox file super/no_superclass_bind.lox - $ mlox super/no_superclass_bind.lox +$ mlox super/no_superclass_bind.lox file super/no_superclass_call.lox - $ mlox super/no_superclass_call.lox +$ mlox super/no_superclass_call.lox file super/no_superclass_method.lox - $ mlox super/no_superclass_method.lox +$ mlox super/no_superclass_method.lox file super/parenthesized.lox - $ mlox super/parenthesized.lox +$ mlox super/parenthesized.lox file super/reassign_superclass.lox - $ mlox super/reassign_superclass.lox +$ mlox super/reassign_superclass.lox file super/super_at_top_level.lox - $ mlox super/super_at_top_level.lox +$ mlox super/super_at_top_level.lox file super/super_in_closure_in_inherited_method.lox - $ mlox super/super_in_closure_in_inherited_method.lox +$ mlox super/super_in_closure_in_inherited_method.lox file super/super_in_inherited_method.lox - $ mlox super/super_in_inherited_method.lox +$ mlox super/super_in_inherited_method.lox file super/super_in_top_level_function.lox - $ mlox super/super_in_top_level_function.lox +$ mlox super/super_in_top_level_function.lox file super/super_without_dot.lox - $ mlox super/super_without_dot.lox +$ mlox super/super_without_dot.lox file super/super_without_name.lox - $ mlox super/super_without_name.lox +$ mlox super/super_without_name.lox file super/this_in_superclass_method.lox - $ mlox super/this_in_superclass_method.lox +$ mlox super/this_in_superclass_method.lox file this/closure.lox - $ mlox this/closure.lox +$ mlox this/closure.lox file this/nested_class.lox - $ mlox this/nested_class.lox +$ mlox this/nested_class.lox file this/nested_closure.lox - $ mlox this/nested_closure.lox +$ mlox this/nested_closure.lox file this/this_at_top_level.lox - $ mlox this/this_at_top_level.lox +$ mlox this/this_at_top_level.lox file this/this_in_method.lox - $ mlox this/this_in_method.lox +$ mlox this/this_in_method.lox file this/this_in_top_level_function.lox - $ mlox this/this_in_top_level_function.lox +$ mlox this/this_in_top_level_function.lox file variable/collide_with_parameter.lox - $ mlox variable/collide_with_parameter.lox +$ mlox variable/collide_with_parameter.lox file variable/duplicate_local.lox $ mlox variable/duplicate_local.lox + RuntimeError at line 3, column 2: Tried to define a, but was already defined + [1] file variable/duplicate_parameter.lox - $ mlox variable/duplicate_parameter.lox +$ mlox variable/duplicate_parameter.lox file variable/early_bound.lox - $ mlox variable/early_bound.lox +$ mlox variable/early_bound.lox file variable/in_middle_of_block.lox $ mlox variable/in_middle_of_block.lox + a + a b + a c + a b d file variable/in_nested_block.lox $ mlox variable/in_nested_block.lox + outer file variable/local_from_method.lox - $ mlox variable/local_from_method.lox +$ mlox variable/local_from_method.lox file variable/redeclare_global.lox $ mlox variable/redeclare_global.lox + nil file variable/redefine_global.lox $ mlox variable/redefine_global.lox + 2 file variable/scope_reuse_in_different_blocks.lox $ mlox variable/scope_reuse_in_different_blocks.lox + first + second file variable/shadow_and_local.lox $ mlox variable/shadow_and_local.lox + outer + inner file variable/shadow_global.lox $ mlox variable/shadow_global.lox + shadow + global file variable/shadow_local.lox $ mlox variable/shadow_local.lox + shadow + local file variable/undefined_global.lox $ mlox variable/undefined_global.lox + RuntimeError at line 1, column 6: name "notDefined" is not defined + [1] file variable/undefined_local.lox $ mlox variable/undefined_local.lox + RuntimeError at line 2, column 8: name "notDefined" is not defined + [1] file variable/uninitialized.lox $ mlox variable/uninitialized.lox + nil file variable/unreached_undefined.lox $ mlox variable/unreached_undefined.lox + ok file variable/use_false_as_var.lox $ mlox variable/use_false_as_var.lox + found 1 ParserError: + ParserError at line 2, column 4: Expected identifier, but got False + [1] file variable/use_global_in_initializer.lox $ mlox variable/use_global_in_initializer.lox + value +TODO: what to do here? file variable/use_local_in_initializer.lox $ mlox variable/use_local_in_initializer.lox file variable/use_nil_as_var.lox $ mlox variable/use_nil_as_var.lox + found 1 ParserError: + ParserError at line 2, column 4: Expected identifier, but got Nil + [1] file variable/use_this_as_var.lox $ mlox variable/use_this_as_var.lox + found 1 ParserError: + ParserError at line 2, column 4: Expected identifier, but got This + [1] file while/class_in_body.lox - $ mlox while/class_in_body.lox +$ mlox while/class_in_body.lox file while/closure_in_body.lox - $ mlox while/closure_in_body.lox +$ mlox while/closure_in_body.lox file while/fun_in_body.lox - $ mlox while/fun_in_body.lox +$ mlox while/fun_in_body.lox file while/return_closure.lox - $ mlox while/return_closure.lox +$ mlox while/return_closure.lox file while/return_inside.lox - $ mlox while/return_inside.lox +$ mlox while/return_inside.lox file while/syntax.lox - $ mlox while/syntax.lox +$ mlox while/syntax.lox file while/var_in_body.lox - $ mlox while/var_in_body.lox +$ mlox while/var_in_body.lox