From 29431d0cdb7ca48d7d4b81f3942f666b6a48f97d Mon Sep 17 00:00:00 2001 From: Moritz Gmeiner Date: Sun, 25 Aug 2024 21:22:30 +0200 Subject: [PATCH] moved benchmark lox files to separate folder --- .../benchmark => benchmark}/binary_trees.lox | 0 {lox.t/benchmark => benchmark}/equality.lox | 0 benchmark/fib.lox | 8 + .../benchmark => benchmark}/instantiation.lox | 0 {lox.t/benchmark => benchmark}/invocation.lox | 0 .../benchmark => benchmark}/method_call.lox | 0 {lox.t/benchmark => benchmark}/properties.lox | 0 .../string_equality.lox | 0 {lox.t/benchmark => benchmark}/trees.lox | 0 {lox.t/benchmark => benchmark}/zoo.lox | 0 {lox.t/benchmark => benchmark}/zoo_batch.lox | 0 lox.t/{benchmark => }/fib.lox | 4 +- lox.t/run.t | 634 +++++++++--------- 13 files changed, 344 insertions(+), 302 deletions(-) rename {lox.t/benchmark => benchmark}/binary_trees.lox (100%) rename {lox.t/benchmark => benchmark}/equality.lox (100%) create mode 100644 benchmark/fib.lox rename {lox.t/benchmark => benchmark}/instantiation.lox (100%) rename {lox.t/benchmark => benchmark}/invocation.lox (100%) rename {lox.t/benchmark => benchmark}/method_call.lox (100%) rename {lox.t/benchmark => benchmark}/properties.lox (100%) rename {lox.t/benchmark => benchmark}/string_equality.lox (100%) rename {lox.t/benchmark => benchmark}/trees.lox (100%) rename {lox.t/benchmark => benchmark}/zoo.lox (100%) rename {lox.t/benchmark => benchmark}/zoo_batch.lox (100%) rename lox.t/{benchmark => }/fib.lox (51%) diff --git a/lox.t/benchmark/binary_trees.lox b/benchmark/binary_trees.lox similarity index 100% rename from lox.t/benchmark/binary_trees.lox rename to benchmark/binary_trees.lox diff --git a/lox.t/benchmark/equality.lox b/benchmark/equality.lox similarity index 100% rename from lox.t/benchmark/equality.lox rename to benchmark/equality.lox diff --git a/benchmark/fib.lox b/benchmark/fib.lox new file mode 100644 index 0000000..95c2085 --- /dev/null +++ b/benchmark/fib.lox @@ -0,0 +1,8 @@ +fun fib(n) { + if (n < 2) return n; + return fib(n - 2) + fib(n - 1); +} + +// var start = clock(); +print fib(35); // expect: 9227465 +// print clock() - start; diff --git a/lox.t/benchmark/instantiation.lox b/benchmark/instantiation.lox similarity index 100% rename from lox.t/benchmark/instantiation.lox rename to benchmark/instantiation.lox diff --git a/lox.t/benchmark/invocation.lox b/benchmark/invocation.lox similarity index 100% rename from lox.t/benchmark/invocation.lox rename to benchmark/invocation.lox diff --git a/lox.t/benchmark/method_call.lox b/benchmark/method_call.lox similarity index 100% rename from lox.t/benchmark/method_call.lox rename to benchmark/method_call.lox diff --git a/lox.t/benchmark/properties.lox b/benchmark/properties.lox similarity index 100% rename from lox.t/benchmark/properties.lox rename to benchmark/properties.lox diff --git a/lox.t/benchmark/string_equality.lox b/benchmark/string_equality.lox similarity index 100% rename from lox.t/benchmark/string_equality.lox rename to benchmark/string_equality.lox diff --git a/lox.t/benchmark/trees.lox b/benchmark/trees.lox similarity index 100% rename from lox.t/benchmark/trees.lox rename to benchmark/trees.lox diff --git a/lox.t/benchmark/zoo.lox b/benchmark/zoo.lox similarity index 100% rename from lox.t/benchmark/zoo.lox rename to benchmark/zoo.lox diff --git a/lox.t/benchmark/zoo_batch.lox b/benchmark/zoo_batch.lox similarity index 100% rename from lox.t/benchmark/zoo_batch.lox rename to benchmark/zoo_batch.lox diff --git a/lox.t/benchmark/fib.lox b/lox.t/fib.lox similarity index 51% rename from lox.t/benchmark/fib.lox rename to lox.t/fib.lox index 94b7f96..9e4b114 100644 --- a/lox.t/benchmark/fib.lox +++ b/lox.t/fib.lox @@ -3,6 +3,4 @@ fun fib(n) { return fib(n - 2) + fib(n - 1); } -var start = clock(); -print fib(35) == 9227465; -print clock() - start; +print fib(35); // expect: 9227465 diff --git a/lox.t/run.t b/lox.t/run.t index 7044854..6b45990 100644 --- a/lox.t/run.t +++ b/lox.t/run.t @@ -1,5 +1,5 @@ $ for lox_file in *.lox **/*.lox; do -> mlox $lox_file > /dev/null || echo $lox_file failed +> mlox $lox_file || echo $lox_file failed > done unexpected_character.lox failed string/unterminated.lox failed @@ -7,11 +7,29 @@ string/unterminated.lox failed file empty_file.lox - $ mlox empty_file.lox > /dev/null + $ mlox empty_file.lox + + +file fib.lox + $ mlox fib.lox + 9227465 file precedence.lox - $ mlox precedence.lox > /dev/null + $ mlox precedence.lox + 14 + 8 + 4 + 0 + true + true + true + true + 0 + 0 + 0 + 0 + 4 file unexpected_character.lox @@ -22,835 +40,853 @@ file unexpected_character.lox file assignment/associativity.lox - $ mlox assignment/associativity.lox > /dev/null + $ mlox assignment/associativity.lox + c + c + c file assignment/global.lox - $ mlox assignment/global.lox > /dev/null + $ mlox assignment/global.lox + before + after + arg + arg file assignment/grouping.lox - $ mlox assignment/grouping.lox > /dev/null + $ mlox assignment/grouping.lox + [1] file assignment/infix_operator.lox - $ mlox assignment/infix_operator.lox > /dev/null + $ mlox assignment/infix_operator.lox + [1] file assignment/local.lox - $ mlox assignment/local.lox > /dev/null + $ mlox assignment/local.lox + before + after + arg + arg file assignment/prefix_operator.lox - $ mlox assignment/prefix_operator.lox > /dev/null + $ mlox assignment/prefix_operator.lox + [1] file assignment/syntax.lox - $ mlox assignment/syntax.lox > /dev/null + $ mlox assignment/syntax.lox + var + var file assignment/to_this.lox - $ mlox assignment/to_this.lox > /dev/null + $ mlox assignment/to_this.lox + [1] file assignment/undefined.lox - $ mlox assignment/undefined.lox > /dev/null - - -file benchmark/binary_trees.lox - $ mlox benchmark/binary_trees.lox > /dev/null - - -file benchmark/equality.lox - $ mlox benchmark/equality.lox > /dev/null - - -file benchmark/fib.lox - $ mlox benchmark/fib.lox > /dev/null - - -file benchmark/instantiation.lox - $ mlox benchmark/instantiation.lox > /dev/null - - -file benchmark/invocation.lox - $ mlox benchmark/invocation.lox > /dev/null - - -file benchmark/method_call.lox - $ mlox benchmark/method_call.lox > /dev/null - - -file benchmark/properties.lox - $ mlox benchmark/properties.lox > /dev/null - - -file benchmark/string_equality.lox - $ mlox benchmark/string_equality.lox > /dev/null - - -file benchmark/trees.lox - $ mlox benchmark/trees.lox > /dev/null - - -file benchmark/zoo.lox - $ mlox benchmark/zoo.lox > /dev/null - - -file benchmark/zoo_batch.lox - $ mlox benchmark/zoo_batch.lox > /dev/null + $ mlox assignment/undefined.lox + [1] file block/empty.lox - $ mlox block/empty.lox > /dev/null + $ mlox block/empty.lox + ok file block/scope.lox - $ mlox block/scope.lox > /dev/null + $ mlox block/scope.lox + inner + outer file bool/equality.lox - $ mlox bool/equality.lox > /dev/null + $ mlox bool/equality.lox + true + false + false + true + false + false + false + false + false + false + true + true + false + true + true + true + true + true file bool/not.lox - $ mlox bool/not.lox > /dev/null + $ mlox bool/not.lox + false + true + true file call/bool.lox - $ mlox call/bool.lox > /dev/null + $ mlox call/bool.lox + [1] file call/nil.lox - $ mlox call/nil.lox > /dev/null + $ mlox call/nil.lox + [1] file call/num.lox - $ mlox call/num.lox > /dev/null + $ mlox call/num.lox + [1] file call/object.lox - $ mlox call/object.lox > /dev/null + $ mlox call/object.lox + [1] file call/string.lox - $ mlox call/string.lox > /dev/null + $ mlox call/string.lox + [1] file class/empty.lox - $ mlox class/empty.lox > /dev/null + $ mlox class/empty.lox + Foo file class/inherit_self.lox - $ mlox class/inherit_self.lox > /dev/null + $ mlox class/inherit_self.lox + [1] file class/inherited_method.lox - $ mlox class/inherited_method.lox > /dev/null + $ mlox class/inherited_method.lox + in foo + in bar + in baz file class/local_inherit_other.lox - $ mlox class/local_inherit_other.lox > /dev/null + $ mlox class/local_inherit_other.lox + B file class/local_inherit_self.lox - $ mlox class/local_inherit_self.lox > /dev/null + $ mlox class/local_inherit_self.lox + [1] file class/local_reference_self.lox - $ mlox class/local_reference_self.lox > /dev/null + $ mlox class/local_reference_self.lox + Foo file class/reference_self.lox - $ mlox class/reference_self.lox > /dev/null + $ mlox class/reference_self.lox + Foo file closure/assign_to_closure.lox - $ mlox closure/assign_to_closure.lox > /dev/null + $ mlox closure/assign_to_closure.lox + local + after f + after f + after g file closure/assign_to_shadowed_later.lox - $ mlox closure/assign_to_shadowed_later.lox > /dev/null + $ mlox closure/assign_to_shadowed_later.lox + inner + assigned file closure/close_over_function_parameter.lox - $ mlox closure/close_over_function_parameter.lox > /dev/null + $ mlox closure/close_over_function_parameter.lox file closure/close_over_later_variable.lox - $ mlox closure/close_over_later_variable.lox > /dev/null + $ mlox closure/close_over_later_variable.lox file closure/close_over_method_parameter.lox - $ mlox closure/close_over_method_parameter.lox > /dev/null + $ mlox closure/close_over_method_parameter.lox file closure/closed_closure_in_function.lox - $ mlox closure/closed_closure_in_function.lox > /dev/null + $ mlox closure/closed_closure_in_function.lox file closure/nested_closure.lox - $ mlox closure/nested_closure.lox > /dev/null + $ mlox closure/nested_closure.lox file closure/open_closure_in_function.lox - $ mlox closure/open_closure_in_function.lox > /dev/null + $ mlox closure/open_closure_in_function.lox file closure/reference_closure_multiple_times.lox - $ mlox closure/reference_closure_multiple_times.lox > /dev/null + $ mlox closure/reference_closure_multiple_times.lox file closure/reuse_closure_slot.lox - $ mlox closure/reuse_closure_slot.lox > /dev/null + $ mlox closure/reuse_closure_slot.lox file closure/shadow_closure_with_local.lox - $ mlox closure/shadow_closure_with_local.lox > /dev/null + $ mlox closure/shadow_closure_with_local.lox file closure/unused_closure.lox - $ mlox closure/unused_closure.lox > /dev/null + $ mlox closure/unused_closure.lox file closure/unused_later_closure.lox - $ mlox closure/unused_later_closure.lox > /dev/null + $ mlox closure/unused_later_closure.lox file comments/line_at_eof.lox - $ mlox comments/line_at_eof.lox > /dev/null + $ mlox comments/line_at_eof.lox file comments/only_line_comment.lox - $ mlox comments/only_line_comment.lox > /dev/null + $ mlox comments/only_line_comment.lox file comments/only_line_comment_and_line.lox - $ mlox comments/only_line_comment_and_line.lox > /dev/null + $ mlox comments/only_line_comment_and_line.lox file comments/unicode.lox - $ mlox comments/unicode.lox > /dev/null + $ mlox comments/unicode.lox file constructor/arguments.lox - $ mlox constructor/arguments.lox > /dev/null + $ mlox constructor/arguments.lox file constructor/call_init_early_return.lox - $ mlox constructor/call_init_early_return.lox > /dev/null + $ mlox constructor/call_init_early_return.lox file constructor/call_init_explicitly.lox - $ mlox constructor/call_init_explicitly.lox > /dev/null + $ mlox constructor/call_init_explicitly.lox file constructor/default.lox - $ mlox constructor/default.lox > /dev/null + $ mlox constructor/default.lox file constructor/default_arguments.lox - $ mlox constructor/default_arguments.lox > /dev/null + $ mlox constructor/default_arguments.lox file constructor/early_return.lox - $ mlox constructor/early_return.lox > /dev/null + $ mlox constructor/early_return.lox file constructor/extra_arguments.lox - $ mlox constructor/extra_arguments.lox > /dev/null + $ mlox constructor/extra_arguments.lox file constructor/init_not_method.lox - $ mlox constructor/init_not_method.lox > /dev/null + $ mlox constructor/init_not_method.lox file constructor/missing_arguments.lox - $ mlox constructor/missing_arguments.lox > /dev/null + $ mlox constructor/missing_arguments.lox file constructor/return_in_nested_function.lox - $ mlox constructor/return_in_nested_function.lox > /dev/null + $ mlox constructor/return_in_nested_function.lox file constructor/return_value.lox - $ mlox constructor/return_value.lox > /dev/null + $ mlox constructor/return_value.lox file empty_file.lox - $ mlox empty_file.lox > /dev/null + $ mlox empty_file.lox file expressions/evaluate.lox - $ mlox expressions/evaluate.lox > /dev/null + $ mlox expressions/evaluate.lox file expressions/parse.lox - $ mlox expressions/parse.lox > /dev/null + $ mlox expressions/parse.lox file field/call_function_field.lox - $ mlox field/call_function_field.lox > /dev/null + $ mlox field/call_function_field.lox file field/call_nonfunction_field.lox - $ mlox field/call_nonfunction_field.lox > /dev/null + $ mlox field/call_nonfunction_field.lox file field/get_and_set_method.lox - $ mlox field/get_and_set_method.lox > /dev/null + $ mlox field/get_and_set_method.lox file field/get_on_bool.lox - $ mlox field/get_on_bool.lox > /dev/null + $ mlox field/get_on_bool.lox file field/get_on_class.lox - $ mlox field/get_on_class.lox > /dev/null + $ mlox field/get_on_class.lox file field/get_on_function.lox - $ mlox field/get_on_function.lox > /dev/null + $ mlox field/get_on_function.lox file field/get_on_nil.lox - $ mlox field/get_on_nil.lox > /dev/null + $ mlox field/get_on_nil.lox file field/get_on_num.lox - $ mlox field/get_on_num.lox > /dev/null + $ mlox field/get_on_num.lox file field/get_on_string.lox - $ mlox field/get_on_string.lox > /dev/null + $ mlox field/get_on_string.lox file field/many.lox - $ mlox field/many.lox > /dev/null + $ mlox field/many.lox file field/method.lox - $ mlox field/method.lox > /dev/null + $ mlox field/method.lox file field/method_binds_this.lox - $ mlox field/method_binds_this.lox > /dev/null + $ mlox field/method_binds_this.lox file field/on_instance.lox - $ mlox field/on_instance.lox > /dev/null + $ mlox field/on_instance.lox file field/set_evaluation_order.lox - $ mlox field/set_evaluation_order.lox > /dev/null + $ mlox field/set_evaluation_order.lox file field/set_on_bool.lox - $ mlox field/set_on_bool.lox > /dev/null + $ mlox field/set_on_bool.lox file field/set_on_class.lox - $ mlox field/set_on_class.lox > /dev/null + $ mlox field/set_on_class.lox file field/set_on_function.lox - $ mlox field/set_on_function.lox > /dev/null + $ mlox field/set_on_function.lox file field/set_on_nil.lox - $ mlox field/set_on_nil.lox > /dev/null + $ mlox field/set_on_nil.lox file field/set_on_num.lox - $ mlox field/set_on_num.lox > /dev/null + $ mlox field/set_on_num.lox file field/set_on_string.lox - $ mlox field/set_on_string.lox > /dev/null + $ mlox field/set_on_string.lox file field/undefined.lox - $ mlox field/undefined.lox > /dev/null + $ mlox field/undefined.lox file for/class_in_body.lox - $ mlox for/class_in_body.lox > /dev/null + $ mlox for/class_in_body.lox file for/closure_in_body.lox - $ mlox for/closure_in_body.lox > /dev/null + $ mlox for/closure_in_body.lox file for/fun_in_body.lox - $ mlox for/fun_in_body.lox > /dev/null + $ mlox for/fun_in_body.lox file for/return_closure.lox - $ mlox for/return_closure.lox > /dev/null + $ mlox for/return_closure.lox file for/return_inside.lox - $ mlox for/return_inside.lox > /dev/null + $ mlox for/return_inside.lox file for/scope.lox - $ mlox for/scope.lox > /dev/null + $ mlox for/scope.lox file for/statement_condition.lox - $ mlox for/statement_condition.lox > /dev/null + $ mlox for/statement_condition.lox file for/statement_increment.lox - $ mlox for/statement_increment.lox > /dev/null + $ mlox for/statement_increment.lox file for/statement_initializer.lox - $ mlox for/statement_initializer.lox > /dev/null + $ mlox for/statement_initializer.lox file for/syntax.lox - $ mlox for/syntax.lox > /dev/null + $ mlox for/syntax.lox file for/var_in_body.lox - $ mlox for/var_in_body.lox > /dev/null + $ mlox for/var_in_body.lox file function/body_must_be_block.lox - $ mlox function/body_must_be_block.lox > /dev/null + $ mlox function/body_must_be_block.lox file function/empty_body.lox - $ mlox function/empty_body.lox > /dev/null + $ mlox function/empty_body.lox file function/extra_arguments.lox - $ mlox function/extra_arguments.lox > /dev/null + $ mlox function/extra_arguments.lox file function/local_mutual_recursion.lox - $ mlox function/local_mutual_recursion.lox > /dev/null + $ mlox function/local_mutual_recursion.lox file function/local_recursion.lox - $ mlox function/local_recursion.lox > /dev/null + $ mlox function/local_recursion.lox file function/missing_arguments.lox - $ mlox function/missing_arguments.lox > /dev/null + $ mlox function/missing_arguments.lox file function/missing_comma_in_parameters.lox - $ mlox function/missing_comma_in_parameters.lox > /dev/null + $ mlox function/missing_comma_in_parameters.lox file function/mutual_recursion.lox - $ mlox function/mutual_recursion.lox > /dev/null + $ mlox function/mutual_recursion.lox file function/nested_call_with_arguments.lox - $ mlox function/nested_call_with_arguments.lox > /dev/null + $ mlox function/nested_call_with_arguments.lox file function/parameters.lox - $ mlox function/parameters.lox > /dev/null + $ mlox function/parameters.lox file function/print.lox - $ mlox function/print.lox > /dev/null + $ mlox function/print.lox file function/recursion.lox - $ mlox function/recursion.lox > /dev/null + $ mlox function/recursion.lox file function/too_many_arguments.lox - $ mlox function/too_many_arguments.lox > /dev/null + $ mlox function/too_many_arguments.lox file function/too_many_parameters.lox - $ mlox function/too_many_parameters.lox > /dev/null + $ mlox function/too_many_parameters.lox file if/class_in_else.lox - $ mlox if/class_in_else.lox > /dev/null + $ mlox if/class_in_else.lox file if/class_in_then.lox - $ mlox if/class_in_then.lox > /dev/null + $ mlox if/class_in_then.lox file if/dangling_else.lox - $ mlox if/dangling_else.lox > /dev/null + $ mlox if/dangling_else.lox file if/else.lox - $ mlox if/else.lox > /dev/null + $ mlox if/else.lox file if/fun_in_else.lox - $ mlox if/fun_in_else.lox > /dev/null + $ mlox if/fun_in_else.lox file if/fun_in_then.lox - $ mlox if/fun_in_then.lox > /dev/null + $ mlox if/fun_in_then.lox file if/if.lox - $ mlox if/if.lox > /dev/null + $ mlox if/if.lox file if/truth.lox - $ mlox if/truth.lox > /dev/null + $ mlox if/truth.lox file if/var_in_else.lox - $ mlox if/var_in_else.lox > /dev/null + $ mlox if/var_in_else.lox file if/var_in_then.lox - $ mlox if/var_in_then.lox > /dev/null + $ mlox if/var_in_then.lox file inheritance/constructor.lox - $ mlox inheritance/constructor.lox > /dev/null + $ mlox inheritance/constructor.lox file inheritance/inherit_from_function.lox - $ mlox inheritance/inherit_from_function.lox > /dev/null + $ mlox inheritance/inherit_from_function.lox file inheritance/inherit_from_nil.lox - $ mlox inheritance/inherit_from_nil.lox > /dev/null + $ mlox inheritance/inherit_from_nil.lox file inheritance/inherit_from_number.lox - $ mlox inheritance/inherit_from_number.lox > /dev/null + $ mlox inheritance/inherit_from_number.lox file inheritance/inherit_methods.lox - $ mlox inheritance/inherit_methods.lox > /dev/null + $ mlox inheritance/inherit_methods.lox file inheritance/parenthesized_superclass.lox - $ mlox inheritance/parenthesized_superclass.lox > /dev/null + $ mlox inheritance/parenthesized_superclass.lox file inheritance/set_fields_from_base_class.lox - $ mlox inheritance/set_fields_from_base_class.lox > /dev/null + $ mlox inheritance/set_fields_from_base_class.lox file limit/loop_too_large.lox - $ mlox limit/loop_too_large.lox > /dev/null + $ mlox limit/loop_too_large.lox file limit/no_reuse_constants.lox - $ mlox limit/no_reuse_constants.lox > /dev/null + $ mlox limit/no_reuse_constants.lox file limit/stack_overflow.lox - $ mlox limit/stack_overflow.lox > /dev/null + $ mlox limit/stack_overflow.lox file limit/too_many_constants.lox - $ mlox limit/too_many_constants.lox > /dev/null + $ mlox limit/too_many_constants.lox file limit/too_many_locals.lox - $ mlox limit/too_many_locals.lox > /dev/null + $ mlox limit/too_many_locals.lox file limit/too_many_upvalues.lox - $ mlox limit/too_many_upvalues.lox > /dev/null + $ mlox limit/too_many_upvalues.lox file logical_operator/and.lox - $ mlox logical_operator/and.lox > /dev/null + $ mlox logical_operator/and.lox file logical_operator/and_truth.lox - $ mlox logical_operator/and_truth.lox > /dev/null + $ mlox logical_operator/and_truth.lox file logical_operator/or.lox - $ mlox logical_operator/or.lox > /dev/null + $ mlox logical_operator/or.lox file logical_operator/or_truth.lox - $ mlox logical_operator/or_truth.lox > /dev/null + $ mlox logical_operator/or_truth.lox file method/arity.lox - $ mlox method/arity.lox > /dev/null + $ mlox method/arity.lox file method/empty_block.lox - $ mlox method/empty_block.lox > /dev/null + $ mlox method/empty_block.lox file method/extra_arguments.lox - $ mlox method/extra_arguments.lox > /dev/null + $ mlox method/extra_arguments.lox file method/missing_arguments.lox - $ mlox method/missing_arguments.lox > /dev/null + $ mlox method/missing_arguments.lox file method/not_found.lox - $ mlox method/not_found.lox > /dev/null + $ mlox method/not_found.lox file method/print_bound_method.lox - $ mlox method/print_bound_method.lox > /dev/null + $ mlox method/print_bound_method.lox file method/refer_to_name.lox - $ mlox method/refer_to_name.lox > /dev/null + $ mlox method/refer_to_name.lox file method/too_many_arguments.lox - $ mlox method/too_many_arguments.lox > /dev/null + $ mlox method/too_many_arguments.lox file method/too_many_parameters.lox - $ mlox method/too_many_parameters.lox > /dev/null + $ mlox method/too_many_parameters.lox file nil/literal.lox - $ mlox nil/literal.lox > /dev/null + $ mlox nil/literal.lox file number/decimal_point_at_eof.lox - $ mlox number/decimal_point_at_eof.lox > /dev/null + $ mlox number/decimal_point_at_eof.lox file number/leading_dot.lox - $ mlox number/leading_dot.lox > /dev/null + $ mlox number/leading_dot.lox file number/literals.lox - $ mlox number/literals.lox > /dev/null + $ mlox number/literals.lox file number/nan_equality.lox - $ mlox number/nan_equality.lox > /dev/null + $ mlox number/nan_equality.lox file number/trailing_dot.lox - $ mlox number/trailing_dot.lox > /dev/null + $ mlox number/trailing_dot.lox file operator/add.lox - $ mlox operator/add.lox > /dev/null + $ mlox operator/add.lox file operator/add_bool_nil.lox - $ mlox operator/add_bool_nil.lox > /dev/null + $ mlox operator/add_bool_nil.lox file operator/add_bool_num.lox - $ mlox operator/add_bool_num.lox > /dev/null + $ mlox operator/add_bool_num.lox file operator/add_bool_string.lox - $ mlox operator/add_bool_string.lox > /dev/null + $ mlox operator/add_bool_string.lox file operator/add_nil_nil.lox - $ mlox operator/add_nil_nil.lox > /dev/null + $ mlox operator/add_nil_nil.lox file operator/add_num_nil.lox - $ mlox operator/add_num_nil.lox > /dev/null + $ mlox operator/add_num_nil.lox file operator/add_string_nil.lox - $ mlox operator/add_string_nil.lox > /dev/null + $ mlox operator/add_string_nil.lox file operator/comparison.lox - $ mlox operator/comparison.lox > /dev/null + $ mlox operator/comparison.lox file operator/divide.lox - $ mlox operator/divide.lox > /dev/null + $ mlox operator/divide.lox file operator/divide_nonnum_num.lox - $ mlox operator/divide_nonnum_num.lox > /dev/null + $ mlox operator/divide_nonnum_num.lox file operator/divide_num_nonnum.lox - $ mlox operator/divide_num_nonnum.lox > /dev/null + $ mlox operator/divide_num_nonnum.lox file operator/equals.lox - $ mlox operator/equals.lox > /dev/null + $ mlox operator/equals.lox file operator/equals_class.lox - $ mlox operator/equals_class.lox > /dev/null + $ mlox operator/equals_class.lox file operator/equals_method.lox - $ mlox operator/equals_method.lox > /dev/null + $ mlox operator/equals_method.lox file operator/greater_nonnum_num.lox - $ mlox operator/greater_nonnum_num.lox > /dev/null + $ mlox operator/greater_nonnum_num.lox file operator/greater_num_nonnum.lox - $ mlox operator/greater_num_nonnum.lox > /dev/null + $ mlox operator/greater_num_nonnum.lox file operator/greater_or_equal_nonnum_num.lox - $ mlox operator/greater_or_equal_nonnum_num.lox > /dev/null + $ mlox operator/greater_or_equal_nonnum_num.lox file operator/greater_or_equal_num_nonnum.lox - $ mlox operator/greater_or_equal_num_nonnum.lox > /dev/null + $ mlox operator/greater_or_equal_num_nonnum.lox file operator/less_nonnum_num.lox - $ mlox operator/less_nonnum_num.lox > /dev/null + $ mlox operator/less_nonnum_num.lox file operator/less_num_nonnum.lox - $ mlox operator/less_num_nonnum.lox > /dev/null + $ mlox operator/less_num_nonnum.lox file operator/less_or_equal_nonnum_num.lox - $ mlox operator/less_or_equal_nonnum_num.lox > /dev/null + $ mlox operator/less_or_equal_nonnum_num.lox file operator/less_or_equal_num_nonnum.lox - $ mlox operator/less_or_equal_num_nonnum.lox > /dev/null + $ mlox operator/less_or_equal_num_nonnum.lox file operator/multiply.lox - $ mlox operator/multiply.lox > /dev/null + $ mlox operator/multiply.lox file operator/multiply_nonnum_num.lox - $ mlox operator/multiply_nonnum_num.lox > /dev/null + $ mlox operator/multiply_nonnum_num.lox file operator/multiply_num_nonnum.lox - $ mlox operator/multiply_num_nonnum.lox > /dev/null + $ mlox operator/multiply_num_nonnum.lox file operator/negate.lox - $ mlox operator/negate.lox > /dev/null + $ mlox operator/negate.lox file operator/negate_nonnum.lox - $ mlox operator/negate_nonnum.lox > /dev/null + $ mlox operator/negate_nonnum.lox file operator/not.lox - $ mlox operator/not.lox > /dev/null + $ mlox operator/not.lox file operator/not_class.lox - $ mlox operator/not_class.lox > /dev/null + $ mlox operator/not_class.lox file operator/not_equals.lox - $ mlox operator/not_equals.lox > /dev/null + $ mlox operator/not_equals.lox file operator/subtract.lox - $ mlox operator/subtract.lox > /dev/null + $ mlox operator/subtract.lox file operator/subtract_nonnum_num.lox - $ mlox operator/subtract_nonnum_num.lox > /dev/null + $ mlox operator/subtract_nonnum_num.lox file operator/subtract_num_nonnum.lox - $ mlox operator/subtract_num_nonnum.lox > /dev/null + $ mlox operator/subtract_num_nonnum.lox file precedence.lox - $ mlox precedence.lox > /dev/null + $ mlox precedence.lox file print/missing_argument.lox - $ mlox print/missing_argument.lox > /dev/null + $ mlox print/missing_argument.lox file regression/40.lox - $ mlox regression/40.lox > /dev/null + $ mlox regression/40.lox file regression/394.lox - $ mlox regression/394.lox > /dev/null + $ mlox regression/394.lox file return/after_else.lox - $ mlox return/after_else.lox > /dev/null + $ mlox return/after_else.lox file return/after_if.lox - $ mlox return/after_if.lox > /dev/null + $ mlox return/after_if.lox file return/after_while.lox - $ mlox return/after_while.lox > /dev/null + $ mlox return/after_while.lox file return/at_top_level.lox - $ mlox return/at_top_level.lox > /dev/null + $ mlox return/at_top_level.lox file return/in_function.lox - $ mlox return/in_function.lox > /dev/null + $ mlox return/in_function.lox file return/in_method.lox - $ mlox return/in_method.lox > /dev/null + $ mlox return/in_method.lox file return/return_nil_if_no_value.lox - $ mlox return/return_nil_if_no_value.lox > /dev/null + $ mlox return/return_nil_if_no_value.lox file scanning/identifiers.lox - $ mlox scanning/identifiers.lox > /dev/null + $ mlox scanning/identifiers.lox file scanning/keywords.lox - $ mlox scanning/keywords.lox > /dev/null + $ mlox scanning/keywords.lox file scanning/numbers.lox - $ mlox scanning/numbers.lox > /dev/null + $ mlox scanning/numbers.lox file scanning/punctuators.lox - $ mlox scanning/punctuators.lox > /dev/null + $ mlox scanning/punctuators.lox file scanning/strings.lox - $ mlox scanning/strings.lox > /dev/null + $ mlox scanning/strings.lox file scanning/whitespace.lox - $ mlox scanning/whitespace.lox > /dev/null + $ mlox scanning/whitespace.lox file string/error_after_multiline.lox - $ mlox string/error_after_multiline.lox > /dev/null + $ mlox string/error_after_multiline.lox file string/literals.lox - $ mlox string/literals.lox > /dev/null + $ mlox string/literals.lox file string/multiline.lox - $ mlox string/multiline.lox > /dev/null + $ mlox string/multiline.lox file string/unterminated.lox @@ -861,222 +897,222 @@ file string/unterminated.lox file super/bound_method.lox - $ mlox super/bound_method.lox > /dev/null + $ mlox super/bound_method.lox file super/call_other_method.lox - $ mlox super/call_other_method.lox > /dev/null + $ mlox super/call_other_method.lox file super/call_same_method.lox - $ mlox super/call_same_method.lox > /dev/null + $ mlox super/call_same_method.lox file super/closure.lox - $ mlox super/closure.lox > /dev/null + $ mlox super/closure.lox file super/constructor.lox - $ mlox super/constructor.lox > /dev/null + $ mlox super/constructor.lox file super/extra_arguments.lox - $ mlox super/extra_arguments.lox > /dev/null + $ mlox super/extra_arguments.lox file super/indirectly_inherited.lox - $ mlox super/indirectly_inherited.lox > /dev/null + $ mlox super/indirectly_inherited.lox file super/missing_arguments.lox - $ mlox super/missing_arguments.lox > /dev/null + $ mlox super/missing_arguments.lox file super/no_superclass_bind.lox - $ mlox super/no_superclass_bind.lox > /dev/null + $ mlox super/no_superclass_bind.lox file super/no_superclass_call.lox - $ mlox super/no_superclass_call.lox > /dev/null + $ mlox super/no_superclass_call.lox file super/no_superclass_method.lox - $ mlox super/no_superclass_method.lox > /dev/null + $ mlox super/no_superclass_method.lox file super/parenthesized.lox - $ mlox super/parenthesized.lox > /dev/null + $ mlox super/parenthesized.lox file super/reassign_superclass.lox - $ mlox super/reassign_superclass.lox > /dev/null + $ mlox super/reassign_superclass.lox file super/super_at_top_level.lox - $ mlox super/super_at_top_level.lox > /dev/null + $ 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 > /dev/null + $ mlox super/super_in_closure_in_inherited_method.lox file super/super_in_inherited_method.lox - $ mlox super/super_in_inherited_method.lox > /dev/null + $ mlox super/super_in_inherited_method.lox file super/super_in_top_level_function.lox - $ mlox super/super_in_top_level_function.lox > /dev/null + $ mlox super/super_in_top_level_function.lox file super/super_without_dot.lox - $ mlox super/super_without_dot.lox > /dev/null + $ mlox super/super_without_dot.lox file super/super_without_name.lox - $ mlox super/super_without_name.lox > /dev/null + $ mlox super/super_without_name.lox file super/this_in_superclass_method.lox - $ mlox super/this_in_superclass_method.lox > /dev/null + $ mlox super/this_in_superclass_method.lox file this/closure.lox - $ mlox this/closure.lox > /dev/null + $ mlox this/closure.lox file this/nested_class.lox - $ mlox this/nested_class.lox > /dev/null + $ mlox this/nested_class.lox file this/nested_closure.lox - $ mlox this/nested_closure.lox > /dev/null + $ mlox this/nested_closure.lox file this/this_at_top_level.lox - $ mlox this/this_at_top_level.lox > /dev/null + $ mlox this/this_at_top_level.lox file this/this_in_method.lox - $ mlox this/this_in_method.lox > /dev/null + $ mlox this/this_in_method.lox file this/this_in_top_level_function.lox - $ mlox this/this_in_top_level_function.lox > /dev/null + $ mlox this/this_in_top_level_function.lox file variable/collide_with_parameter.lox - $ mlox variable/collide_with_parameter.lox > /dev/null + $ mlox variable/collide_with_parameter.lox file variable/duplicate_local.lox - $ mlox variable/duplicate_local.lox > /dev/null + $ mlox variable/duplicate_local.lox file variable/duplicate_parameter.lox - $ mlox variable/duplicate_parameter.lox > /dev/null + $ mlox variable/duplicate_parameter.lox file variable/early_bound.lox - $ mlox variable/early_bound.lox > /dev/null + $ mlox variable/early_bound.lox file variable/in_middle_of_block.lox - $ mlox variable/in_middle_of_block.lox > /dev/null + $ mlox variable/in_middle_of_block.lox file variable/in_nested_block.lox - $ mlox variable/in_nested_block.lox > /dev/null + $ mlox variable/in_nested_block.lox file variable/local_from_method.lox - $ mlox variable/local_from_method.lox > /dev/null + $ mlox variable/local_from_method.lox file variable/redeclare_global.lox - $ mlox variable/redeclare_global.lox > /dev/null + $ mlox variable/redeclare_global.lox file variable/redefine_global.lox - $ mlox variable/redefine_global.lox > /dev/null + $ mlox variable/redefine_global.lox file variable/scope_reuse_in_different_blocks.lox - $ mlox variable/scope_reuse_in_different_blocks.lox > /dev/null + $ mlox variable/scope_reuse_in_different_blocks.lox file variable/shadow_and_local.lox - $ mlox variable/shadow_and_local.lox > /dev/null + $ mlox variable/shadow_and_local.lox file variable/shadow_global.lox - $ mlox variable/shadow_global.lox > /dev/null + $ mlox variable/shadow_global.lox file variable/shadow_local.lox - $ mlox variable/shadow_local.lox > /dev/null + $ mlox variable/shadow_local.lox file variable/undefined_global.lox - $ mlox variable/undefined_global.lox > /dev/null + $ mlox variable/undefined_global.lox file variable/undefined_local.lox - $ mlox variable/undefined_local.lox > /dev/null + $ mlox variable/undefined_local.lox file variable/uninitialized.lox - $ mlox variable/uninitialized.lox > /dev/null + $ mlox variable/uninitialized.lox file variable/unreached_undefined.lox - $ mlox variable/unreached_undefined.lox > /dev/null + $ mlox variable/unreached_undefined.lox file variable/use_false_as_var.lox - $ mlox variable/use_false_as_var.lox > /dev/null + $ mlox variable/use_false_as_var.lox file variable/use_global_in_initializer.lox - $ mlox variable/use_global_in_initializer.lox > /dev/null + $ mlox variable/use_global_in_initializer.lox file variable/use_local_in_initializer.lox - $ mlox variable/use_local_in_initializer.lox > /dev/null + $ mlox variable/use_local_in_initializer.lox file variable/use_nil_as_var.lox - $ mlox variable/use_nil_as_var.lox > /dev/null + $ mlox variable/use_nil_as_var.lox file variable/use_this_as_var.lox - $ mlox variable/use_this_as_var.lox > /dev/null + $ mlox variable/use_this_as_var.lox file while/class_in_body.lox - $ mlox while/class_in_body.lox > /dev/null + $ mlox while/class_in_body.lox file while/closure_in_body.lox - $ mlox while/closure_in_body.lox > /dev/null + $ mlox while/closure_in_body.lox file while/fun_in_body.lox - $ mlox while/fun_in_body.lox > /dev/null + $ mlox while/fun_in_body.lox file while/return_closure.lox - $ mlox while/return_closure.lox > /dev/null + $ mlox while/return_closure.lox file while/return_inside.lox - $ mlox while/return_inside.lox > /dev/null + $ mlox while/return_inside.lox file while/syntax.lox - $ mlox while/syntax.lox > /dev/null + $ mlox while/syntax.lox file while/var_in_body.lox - $ mlox while/var_in_body.lox > /dev/null + $ mlox while/var_in_body.lox